From 6472cbf1d3a8edc8a92ef22c465fc6bc5182256f Mon Sep 17 00:00:00 2001 From: team3 Date: Wed, 3 Jun 2026 22:07:43 +0200 Subject: [PATCH] projects/ aus Git-Tracking entfernen und ignorieren Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 1 + projects/aak/Skript.pdf | 4456 ------------ projects/priceservice/.env | 46 - projects/priceservice/.env.local | 40 - projects/priceservice/.gitignore | 0 projects/priceservice/bin/console | 17 - projects/priceservice/composer.json | 80 - projects/priceservice/composer.lock | 5697 --------------- projects/priceservice/config/bundles.php | 10 - .../priceservice/config/mitho/settings.yaml | 25 - .../priceservice/config/packages/cache.yaml | 6 - .../config/packages/doctrine.yaml | 61 - .../config/packages/doctrine_migrations.yaml | 6 - .../config/packages/framework.yaml | 25 - .../priceservice/config/packages/lock.yaml | 2 - .../config/packages/messenger.yaml | 13 - .../priceservice/config/packages/monolog.yaml | 48 - .../config/packages/rate_limiter.yaml | 6 - .../priceservice/config/packages/routing.yaml | 12 - .../config/packages/security.yaml | 15 - .../priceservice/config/packages/uid.yaml | 4 - projects/priceservice/config/preload.php | 5 - projects/priceservice/config/routes.yaml | 5 - .../priceservice/config/routes/framework.yaml | 4 - .../priceservice/config/routes/security.yaml | 3 - projects/priceservice/config/services.yaml | 32 - projects/priceservice/migrations/.gitignore | 0 projects/priceservice/public/index.php | 9 - .../src/Command/RedisImportCommand.php | 60 - .../src/Command/RedisReadCommand.php | 52 - .../src/Command/TriggerTestCommand.php | 34 - .../priceservice/src/Controller/.gitignore | 0 .../src/Controller/Api/PricesController.php | 56 - .../Trigger/PriceTriggerController.php | 75 - projects/priceservice/src/Entity/.gitignore | 0 projects/priceservice/src/Kernel.php | 49 - .../src/Message/SendNotification.php | 11 - .../src/Message/TriggerPriceImport.php | 11 - .../TriggerPriceImportHandler.php | 45 - .../priceservice/src/Repository/.gitignore | 0 .../priceservice/src/Service/Adapter/Orm.php | 210 - .../Service/Adapter/RedisClientService.php | 65 - .../src/Service/Prices/RedisImportService.php | 483 -- .../src/Service/Prices/RedisReadService.php | 200 - projects/priceservice/symfony.lock | 164 - .../cache/dev/App_KernelDevDebugContainer.php | 22 - .../dev/App_KernelDevDebugContainer.php.lock | 0 .../dev/App_KernelDevDebugContainer.php.meta | Bin 16316 -> 0 bytes .../App_KernelDevDebugContainer.preload.php | 335 - .../cache/dev/App_KernelDevDebugContainer.xml | 6097 ----------------- .../dev/App_KernelDevDebugContainer.xml.meta | Bin 15864 -> 0 bytes .../App_KernelDevDebugContainerCompiler.log | 645 -- ...pp_KernelDevDebugContainerDeprecations.log | 1 - .../var/cache/dev/ContainerGfxmI0x.legacy | 0 .../App_KernelDevDebugContainer.php | 1118 --- .../EntityManagerGhostEbeb667.php | 45 - ...equestPayloadValueResolverGhost3590451.php | 28 - .../getCacheWarmerService.php | 30 - .../getCache_AppClearerService.php | 26 - .../ContainerGfxmI0x/getCache_AppService.php | 44 - .../getCache_App_TaggableService.php | 36 - .../getCache_GlobalClearerService.php | 33 - ..._Messenger_RestartWorkersSignalService.php | 44 - .../getCache_RateLimiterService.php | 42 - ...ntedAttributeExpressionLanguageService.php | 34 - .../getCache_SystemClearerService.php | 26 - .../getCache_SystemService.php | 34 - .../getConfigBuilder_WarmerService.php | 26 - .../getConsole_CommandLoaderService.php | 210 - .../getConsole_Command_AboutService.php | 31 - ...etConsole_Command_AssetsInstallService.php | 32 - .../getConsole_Command_CacheClearService.php | 34 - ...tConsole_Command_CachePoolClearService.php | 31 - ...Console_Command_CachePoolDeleteService.php | 31 - ...Command_CachePoolInvalidateTagsService.php | 37 - ...etConsole_Command_CachePoolListService.php | 31 - ...tConsole_Command_CachePoolPruneService.php | 34 - .../getConsole_Command_CacheWarmupService.php | 31 - .../getConsole_Command_ConfigDebugService.php | 34 - ...ole_Command_ConfigDumpReferenceService.php | 34 - ...tConsole_Command_ContainerDebugService.php | 32 - ...etConsole_Command_ContainerLintService.php | 31 - ...Console_Command_DebugAutowiringService.php | 34 - .../getConsole_Command_DotenvDebugService.php | 31 - ...le_Command_EventDispatcherDebugService.php | 31 - ...ommand_MessengerConsumeMessagesService.php | 33 - ...tConsole_Command_MessengerDebugService.php | 31 - ...ommand_MessengerSetupTransportsService.php | 31 - ...tConsole_Command_MessengerStatsService.php | 31 - ...le_Command_MessengerStopWorkersService.php | 31 - .../getConsole_Command_RouterDebugService.php | 33 - .../getConsole_Command_RouterMatchService.php | 31 - ...e_Command_SecretsDecryptToLocalService.php | 33 - ...Command_SecretsEncryptFromLocalService.php | 33 - ...sole_Command_SecretsGenerateKeyService.php | 33 - .../getConsole_Command_SecretsListService.php | 33 - ...etConsole_Command_SecretsRemoveService.php | 33 - .../getConsole_Command_SecretsSetService.php | 33 - .../getConsole_Command_YamlLintService.php | 32 - .../getConsole_ErrorListenerService.php | 30 - .../getContainer_EnvVarProcessorService.php | 28 - ...ntainer_EnvVarProcessorsLocatorService.php | 65 - ...iner_GetRoutingConditionServiceService.php | 23 - ...tDebug_ErrorHandlerConfiguratorService.php | 30 - ...rity_Firewall_Authenticator_DevService.php | 29 - ...ity_Firewall_Authenticator_MainService.php | 29 - ...bug_Security_Voter_VoteListenerService.php | 31 - ...ctrineMigrations_CurrentCommandService.php | 32 - ...tDoctrineMigrations_DiffCommandService.php | 32 - ...ineMigrations_DumpSchemaCommandService.php | 32 - ...ctrineMigrations_ExecuteCommandService.php | 32 - ...trineMigrations_GenerateCommandService.php | 32 - ...octrineMigrations_LatestCommandService.php | 32 - ...ctrineMigrations_MigrateCommandService.php | 32 - ...octrineMigrations_RollupCommandService.php | 32 - ...octrineMigrations_StatusCommandService.php | 32 - ...eMigrations_SyncMetadataCommandService.php | 32 - ...trineMigrations_UpToDateCommandService.php | 32 - ...ctrineMigrations_VersionCommandService.php | 32 - ...trineMigrations_VersionsCommandService.php | 32 - .../ContainerGfxmI0x/getDoctrineService.php | 29 - ...trine_CacheClearMetadataCommandService.php | 31 - ...ine_CacheClearQueryCacheCommandService.php | 31 - ...octrine_CacheClearResultCommandService.php | 31 - ...ne_CacheCollectionRegionCommandService.php | 31 - ...ctrine_ClearEntityRegionCommandService.php | 31 - ...octrine_ClearQueryRegionCommandService.php | 31 - ...tDoctrine_DatabaseCreateCommandService.php | 31 - ...getDoctrine_DatabaseDropCommandService.php | 31 - ...Doctrine_Dbal_DefaultConnectionService.php | 52 - ..._DefaultConnection_EventManagerService.php | 38 - .../getDoctrine_MappingInfoCommandService.php | 31 - ...ContainerAwareMigrationsFactoryService.php | 32 - ...ne_Migrations_DependencyFactoryService.php | 43 - ...m_Command_EntityManagerProviderService.php | 26 - ...ctrine_Orm_DefaultConfigurationService.php | 82 - ...ctrine_Orm_DefaultEntityManagerService.php | 37 - ...Listeners_AttachEntityListenersService.php | 25 - ...eDbalCacheAdapterSchemaListenerService.php | 26 - ...rineTokenProviderSchemaListenerService.php | 26 - ...steners_LockStoreSchemaListenerService.php | 28 - ...PdoSessionHandlerSchemaListenerService.php | 26 - ...iber_DoctrineClearEntityManagerService.php | 25 - ...etDoctrine_Orm_ProxyCacheWarmerService.php | 26 - .../getDoctrine_QueryDqlCommandService.php | 31 - .../getDoctrine_QuerySqlCommandService.php | 31 - ...getDoctrine_SchemaCreateCommandService.php | 32 - .../getDoctrine_SchemaDropCommandService.php | 32 - ...getDoctrine_SchemaUpdateCommandService.php | 32 - ...tDoctrine_SchemaValidateCommandService.php | 31 - .../getDoctrine_UlidGeneratorService.php | 27 - .../getDoctrine_UuidGeneratorService.php | 27 - .../getErrorControllerService.php | 30 - .../getHttpClient_TransportService.php | 35 - .../getHttpClient_UriTemplateService.php | 27 - .../getLoaderInterfaceService.php | 23 - .../getMaker_AutoCommand_MakeAuthService.php | 40 - ...etMaker_AutoCommand_MakeCommandService.php | 35 - ...aker_AutoCommand_MakeControllerService.php | 36 - .../getMaker_AutoCommand_MakeCrudService.php | 36 - ..._AutoCommand_MakeDockerDatabaseService.php | 37 - ...getMaker_AutoCommand_MakeEntityService.php | 40 - ...tMaker_AutoCommand_MakeFixturesService.php | 35 - .../getMaker_AutoCommand_MakeFormService.php | 35 - ...tMaker_AutoCommand_MakeListenerService.php | 37 - ...etMaker_AutoCommand_MakeMessageService.php | 37 - ...Command_MakeMessengerMiddlewareService.php | 35 - ...Maker_AutoCommand_MakeMigrationService.php | 36 - ...utoCommand_MakeRegistrationFormService.php | 38 - ...r_AutoCommand_MakeResetPasswordService.php | 39 - ...tMaker_AutoCommand_MakeScheduleService.php | 37 - ..._AutoCommand_MakeSecurityCustomService.php | 39 - ...toCommand_MakeSecurityFormLoginService.php | 40 - ...toCommand_MakeSerializerEncoderService.php | 35 - ...ommand_MakeSerializerNormalizerService.php | 35 - ...oCommand_MakeStimulusControllerService.php | 35 - .../getMaker_AutoCommand_MakeTestService.php | 37 - ...r_AutoCommand_MakeTwigComponentService.php | 37 - ...r_AutoCommand_MakeTwigExtensionService.php | 35 - .../getMaker_AutoCommand_MakeUserService.php | 40 - ...Maker_AutoCommand_MakeValidatorService.php | 35 - .../getMaker_AutoCommand_MakeVoterService.php | 35 - ...etMaker_AutoCommand_MakeWebhookService.php | 40 - .../getMaker_DoctrineHelperService.php | 29 - .../getMaker_EntityClassGeneratorService.php | 25 - .../getMaker_FileLinkFormatterService.php | 26 - .../getMaker_FileManagerService.php | 28 - .../getMaker_GeneratorService.php | 26 - ...Maker_Renderer_FormTypeRendererService.php | 25 - ...RegistryAwareConnectionProviderService.php | 31 - ...efault_Middleware_HandleMessageService.php | 44 - ..._Default_Middleware_SendMessageService.php | 44 - ...us_Default_Middleware_TraceableService.php | 26 - .../getMessenger_DefaultBusService.php | 34 - ...opWorkerOnRestartSignalListenerService.php | 25 - .../getMessenger_ReceiverLocatorService.php | 29 - ...y_MultiplierRetryStrategy_AsyncService.php | 26 - ...ndFailedMessageForRetryListenerService.php | 40 - ...getMessenger_RoutableMessageBusService.php | 36 - .../getMessenger_Transport_AsyncService.php | 35 - ...essenger_Transport_Sync_FactoryService.php | 32 - .../getMonolog_Handler_DeprecationService.php | 27 - .../getMonolog_Logger_CacheService.php | 29 - .../getMonolog_Logger_DeprecationService.php | 30 - .../getMonolog_Logger_MessengerService.php | 29 - .../getPriceTriggerControllerService.php | 45 - .../getPricesControllerService.php | 30 - .../getRedirectControllerService.php | 27 - .../getRedisImportCommandService.php | 31 - .../getRedisImportCommand_LazyService.php | 26 - .../getRedisImportServiceService.php | 30 - .../getRedisReadCommandService.php | 31 - .../getRedisReadCommand_LazyService.php | 26 - .../getRedisReadServiceService.php | 26 - .../getRouter_CacheWarmerService.php | 30 - .../getRouting_LoaderService.php | 72 - .../getRunSqlCommandService.php | 30 - .../getSecrets_VaultService.php | 28 - .../getSecurity_AccessListenerService.php | 31 - .../getSecurity_AccessMapService.php | 37 - ..._Authentication_SessionStrategyService.php | 26 - .../getSecurity_ChannelListenerService.php | 27 - ...tSecurity_Command_DebugFirewallService.php | 31 - ...curity_Command_UserPasswordHashService.php | 31 - .../getSecurity_Csrf_TokenManagerService.php | 28 - .../getSecurity_Csrf_TokenStorageService.php | 27 - ...curity_Firewall_Map_Context_DevService.php | 33 - ...urity_Firewall_Map_Context_MainService.php | 33 - .../getSecurity_HttpUtilsService.php | 27 - ...r_CheckAuthenticatorCredentialsService.php | 25 - ...ecurity_Listener_CsrfProtectionService.php | 25 - ...rity_Listener_PasswordMigratingService.php | 25 - ...etSecurity_Listener_Session_DevService.php | 25 - ...tSecurity_Listener_Session_MainService.php | 25 - ...curity_Listener_UserChecker_DevService.php | 27 - ...urity_Listener_UserChecker_MainService.php | 27 - ...gout_Listener_CsrfTokenClearingService.php | 25 - ...tSecurity_PasswordHasherFactoryService.php | 26 - .../getSecurity_RouteLoader_LogoutService.php | 25 - .../getServicesResetterService.php | 110 - .../getSession_FactoryService.php | 36 - .../getSession_Handler_NativeService.php | 26 - .../getTemplateControllerService.php | 25 - .../getTriggerPriceImportHandlerService.php | 25 - .../getTriggerTestCommandService.php | 31 - .../getTriggerTestCommand_LazyService.php | 26 - .../get_Cache_RateLimiter_TaggableService.php | 36 - .../get_Console_Command_About_LazyService.php | 26 - ...sole_Command_AssetsInstall_LazyService.php | 26 - ...Console_Command_CacheClear_LazyService.php | 26 - ...ole_Command_CachePoolClear_LazyService.php | 26 - ...le_Command_CachePoolDelete_LazyService.php | 26 - ...nd_CachePoolInvalidateTags_LazyService.php | 26 - ...sole_Command_CachePoolList_LazyService.php | 26 - ...ole_Command_CachePoolPrune_LazyService.php | 26 - ...onsole_Command_CacheWarmup_LazyService.php | 26 - ...onsole_Command_ConfigDebug_LazyService.php | 26 - ...ommand_ConfigDumpReference_LazyService.php | 26 - ...ole_Command_ContainerDebug_LazyService.php | 26 - ...sole_Command_ContainerLint_LazyService.php | 26 - ...le_Command_DebugAutowiring_LazyService.php | 26 - ...onsole_Command_DotenvDebug_LazyService.php | 26 - ...mmand_EventDispatcherDebug_LazyService.php | 26 - ...d_MessengerConsumeMessages_LazyService.php | 26 - ...ole_Command_MessengerDebug_LazyService.php | 26 - ...d_MessengerSetupTransports_LazyService.php | 26 - ...ole_Command_MessengerStats_LazyService.php | 26 - ...mmand_MessengerStopWorkers_LazyService.php | 26 - ...onsole_Command_RouterDebug_LazyService.php | 26 - ...onsole_Command_RouterMatch_LazyService.php | 26 - ...mand_SecretsDecryptToLocal_LazyService.php | 26 - ...nd_SecretsEncryptFromLocal_LazyService.php | 26 - ...Command_SecretsGenerateKey_LazyService.php | 26 - ...onsole_Command_SecretsList_LazyService.php | 26 - ...sole_Command_SecretsRemove_LazyService.php | 26 - ...Console_Command_SecretsSet_LazyService.php | 26 - ...t_Console_Command_YamlLint_LazyService.php | 26 - ...urity_Access_AuthenticatedVoterService.php | 34 - ...urity_Access_RoleHierarchyVoterService.php | 37 - ...mentResolver_BackedEnumResolverService.php | 28 - ...olver_ArgumentResolver_DatetimeService.php | 31 - ...solver_ArgumentResolver_DefaultService.php | 28 - ...entResolver_NotTaggedControllerService.php | 28 - ...ver_QueryParameterValueResolverService.php | 28 - ...gumentResolver_RequestAttributeService.php | 28 - ...ArgumentResolver_RequestPayloadService.php | 28 - ...solver_ArgumentResolver_RequestService.php | 28 - ...solver_ArgumentResolver_ServiceService.php | 28 - ...solver_ArgumentResolver_SessionService.php | 28 - ...ueResolver_ArgumentResolver_UidService.php | 28 - ...olver_ArgumentResolver_VariadicService.php | 28 - ...octrine_Orm_EntityValueResolverService.php | 30 - ...rity_SecurityTokenValueResolverService.php | 28 - ...lver_Security_UserValueResolverService.php | 28 - ...eMigrations_CurrentCommand_LazyService.php | 26 - ...rineMigrations_DiffCommand_LazyService.php | 26 - ...grations_DumpSchemaCommand_LazyService.php | 26 - ...eMigrations_ExecuteCommand_LazyService.php | 26 - ...Migrations_GenerateCommand_LazyService.php | 26 - ...neMigrations_LatestCommand_LazyService.php | 26 - ...eMigrations_MigrateCommand_LazyService.php | 26 - ...neMigrations_RollupCommand_LazyService.php | 26 - ...neMigrations_StatusCommand_LazyService.php | 26 - ...ations_SyncMetadataCommand_LazyService.php | 26 - ...Migrations_UpToDateCommand_LazyService.php | 26 - ...eMigrations_VersionCommand_LazyService.php | 26 - ...Migrations_VersionsCommand_LazyService.php | 26 - .../get_Lock_Default_Store_TTEhGTService.php | 26 - ...Maker_AutoCommand_MakeAuth_LazyService.php | 26 - ...er_AutoCommand_MakeCommand_LazyService.php | 26 - ...AutoCommand_MakeController_LazyService.php | 26 - ...Maker_AutoCommand_MakeCrud_LazyService.php | 26 - ...Command_MakeDockerDatabase_LazyService.php | 26 - ...ker_AutoCommand_MakeEntity_LazyService.php | 26 - ...r_AutoCommand_MakeFixtures_LazyService.php | 26 - ...Maker_AutoCommand_MakeForm_LazyService.php | 26 - ...r_AutoCommand_MakeListener_LazyService.php | 26 - ...er_AutoCommand_MakeMessage_LazyService.php | 26 - ...nd_MakeMessengerMiddleware_LazyService.php | 26 - ..._AutoCommand_MakeMigration_LazyService.php | 26 - ...mmand_MakeRegistrationForm_LazyService.php | 26 - ...oCommand_MakeResetPassword_LazyService.php | 26 - ...r_AutoCommand_MakeSchedule_LazyService.php | 26 - ...Command_MakeSecurityCustom_LazyService.php | 26 - ...mand_MakeSecurityFormLogin_LazyService.php | 26 - ...mand_MakeSerializerEncoder_LazyService.php | 26 - ...d_MakeSerializerNormalizer_LazyService.php | 26 - ...and_MakeStimulusController_LazyService.php | 26 - ...Maker_AutoCommand_MakeTest_LazyService.php | 26 - ...oCommand_MakeTwigComponent_LazyService.php | 26 - ...oCommand_MakeTwigExtension_LazyService.php | 26 - ...Maker_AutoCommand_MakeUser_LazyService.php | 26 - ..._AutoCommand_MakeValidator_LazyService.php | 26 - ...aker_AutoCommand_MakeVoter_LazyService.php | 26 - ...er_AutoCommand_MakeWebhook_LazyService.php | 26 - ...enger_HandlerDescriptor_6kVvRT_Service.php | 26 - ...enger_HandlerDescriptor_F4AMIZdService.php | 25 - ...enger_HandlerDescriptor_KEzMhfsService.php | 31 - ...enger_HandlerDescriptor_P4QvabmService.php | 32 - ...enger_HandlerDescriptor_QXXNQ9dService.php | 26 - ...rity_Command_DebugFirewall_LazyService.php | 26 - ...y_Command_UserPasswordHash_LazyService.php | 26 - .../get_ServiceLocator_B4dyivWService.php | 29 - .../get_ServiceLocator_HBdvAhpService.php | 37 - .../get_ServiceLocator_O2p6Lk7Service.php | 39 - .../get_ServiceLocator_SPNPNE7Service.php | 31 - .../get_ServiceLocator_Y4Zrx_Service.php | 27 - .../dev/ContainerGfxmI0x/removed-ids.php | 836 --- .../App_KernelDevDebugContainer.php | 1118 --- .../EntityManagerGhostEbeb667.php | 45 - ...equestPayloadValueResolverGhost3590451.php | 28 - .../getCacheWarmerService.php | 30 - .../getCache_AppClearerService.php | 26 - .../ContainerJu8t4eN/getCache_AppService.php | 44 - .../getCache_App_TaggableService.php | 36 - .../getCache_GlobalClearerService.php | 33 - ..._Messenger_RestartWorkersSignalService.php | 44 - .../getCache_RateLimiterService.php | 42 - ...ntedAttributeExpressionLanguageService.php | 34 - .../getCache_SystemClearerService.php | 26 - .../getCache_SystemService.php | 34 - .../getConfigBuilder_WarmerService.php | 26 - .../getConsole_CommandLoaderService.php | 210 - .../getConsole_Command_AboutService.php | 31 - ...etConsole_Command_AssetsInstallService.php | 32 - .../getConsole_Command_CacheClearService.php | 34 - ...tConsole_Command_CachePoolClearService.php | 31 - ...Console_Command_CachePoolDeleteService.php | 31 - ...Command_CachePoolInvalidateTagsService.php | 37 - ...etConsole_Command_CachePoolListService.php | 31 - ...tConsole_Command_CachePoolPruneService.php | 34 - .../getConsole_Command_CacheWarmupService.php | 31 - .../getConsole_Command_ConfigDebugService.php | 34 - ...ole_Command_ConfigDumpReferenceService.php | 34 - ...tConsole_Command_ContainerDebugService.php | 32 - ...etConsole_Command_ContainerLintService.php | 31 - ...Console_Command_DebugAutowiringService.php | 34 - .../getConsole_Command_DotenvDebugService.php | 31 - ...le_Command_EventDispatcherDebugService.php | 31 - ...ommand_MessengerConsumeMessagesService.php | 33 - ...tConsole_Command_MessengerDebugService.php | 31 - ...ommand_MessengerSetupTransportsService.php | 31 - ...tConsole_Command_MessengerStatsService.php | 31 - ...le_Command_MessengerStopWorkersService.php | 31 - .../getConsole_Command_RouterDebugService.php | 33 - .../getConsole_Command_RouterMatchService.php | 31 - ...e_Command_SecretsDecryptToLocalService.php | 33 - ...Command_SecretsEncryptFromLocalService.php | 33 - ...sole_Command_SecretsGenerateKeyService.php | 33 - .../getConsole_Command_SecretsListService.php | 33 - ...etConsole_Command_SecretsRemoveService.php | 33 - .../getConsole_Command_SecretsSetService.php | 33 - .../getConsole_Command_YamlLintService.php | 32 - .../getConsole_ErrorListenerService.php | 30 - .../getContainer_EnvVarProcessorService.php | 28 - ...ntainer_EnvVarProcessorsLocatorService.php | 65 - ...iner_GetRoutingConditionServiceService.php | 23 - ...tDebug_ErrorHandlerConfiguratorService.php | 30 - ...rity_Firewall_Authenticator_DevService.php | 29 - ...ity_Firewall_Authenticator_MainService.php | 29 - ...bug_Security_Voter_VoteListenerService.php | 31 - ...ctrineMigrations_CurrentCommandService.php | 32 - ...tDoctrineMigrations_DiffCommandService.php | 32 - ...ineMigrations_DumpSchemaCommandService.php | 32 - ...ctrineMigrations_ExecuteCommandService.php | 32 - ...trineMigrations_GenerateCommandService.php | 32 - ...octrineMigrations_LatestCommandService.php | 32 - ...ctrineMigrations_MigrateCommandService.php | 32 - ...octrineMigrations_RollupCommandService.php | 32 - ...octrineMigrations_StatusCommandService.php | 32 - ...eMigrations_SyncMetadataCommandService.php | 32 - ...trineMigrations_UpToDateCommandService.php | 32 - ...ctrineMigrations_VersionCommandService.php | 32 - ...trineMigrations_VersionsCommandService.php | 32 - .../ContainerJu8t4eN/getDoctrineService.php | 29 - ...trine_CacheClearMetadataCommandService.php | 31 - ...ine_CacheClearQueryCacheCommandService.php | 31 - ...octrine_CacheClearResultCommandService.php | 31 - ...ne_CacheCollectionRegionCommandService.php | 31 - ...ctrine_ClearEntityRegionCommandService.php | 31 - ...octrine_ClearQueryRegionCommandService.php | 31 - ...tDoctrine_DatabaseCreateCommandService.php | 31 - ...getDoctrine_DatabaseDropCommandService.php | 31 - ...Doctrine_Dbal_DefaultConnectionService.php | 52 - ..._DefaultConnection_EventManagerService.php | 38 - .../getDoctrine_MappingInfoCommandService.php | 31 - ...ContainerAwareMigrationsFactoryService.php | 32 - ...ne_Migrations_DependencyFactoryService.php | 43 - ...m_Command_EntityManagerProviderService.php | 26 - ...ctrine_Orm_DefaultConfigurationService.php | 82 - ...ctrine_Orm_DefaultEntityManagerService.php | 37 - ...Listeners_AttachEntityListenersService.php | 25 - ...eDbalCacheAdapterSchemaListenerService.php | 26 - ...rineTokenProviderSchemaListenerService.php | 26 - ...steners_LockStoreSchemaListenerService.php | 28 - ...PdoSessionHandlerSchemaListenerService.php | 26 - ...iber_DoctrineClearEntityManagerService.php | 25 - ...etDoctrine_Orm_ProxyCacheWarmerService.php | 26 - .../getDoctrine_QueryDqlCommandService.php | 31 - .../getDoctrine_QuerySqlCommandService.php | 31 - ...getDoctrine_SchemaCreateCommandService.php | 32 - .../getDoctrine_SchemaDropCommandService.php | 32 - ...getDoctrine_SchemaUpdateCommandService.php | 32 - ...tDoctrine_SchemaValidateCommandService.php | 31 - .../getDoctrine_UlidGeneratorService.php | 27 - .../getDoctrine_UuidGeneratorService.php | 27 - .../getErrorControllerService.php | 30 - .../getHttpClient_TransportService.php | 35 - .../getHttpClient_UriTemplateService.php | 27 - .../getLoaderInterfaceService.php | 23 - .../getMaker_AutoCommand_MakeAuthService.php | 40 - ...etMaker_AutoCommand_MakeCommandService.php | 35 - ...aker_AutoCommand_MakeControllerService.php | 36 - .../getMaker_AutoCommand_MakeCrudService.php | 36 - ..._AutoCommand_MakeDockerDatabaseService.php | 37 - ...getMaker_AutoCommand_MakeEntityService.php | 40 - ...tMaker_AutoCommand_MakeFixturesService.php | 35 - .../getMaker_AutoCommand_MakeFormService.php | 35 - ...tMaker_AutoCommand_MakeListenerService.php | 37 - ...etMaker_AutoCommand_MakeMessageService.php | 37 - ...Command_MakeMessengerMiddlewareService.php | 35 - ...Maker_AutoCommand_MakeMigrationService.php | 36 - ...utoCommand_MakeRegistrationFormService.php | 38 - ...r_AutoCommand_MakeResetPasswordService.php | 39 - ...tMaker_AutoCommand_MakeScheduleService.php | 37 - ..._AutoCommand_MakeSecurityCustomService.php | 39 - ...toCommand_MakeSecurityFormLoginService.php | 40 - ...toCommand_MakeSerializerEncoderService.php | 35 - ...ommand_MakeSerializerNormalizerService.php | 35 - ...oCommand_MakeStimulusControllerService.php | 35 - .../getMaker_AutoCommand_MakeTestService.php | 37 - ...r_AutoCommand_MakeTwigComponentService.php | 37 - ...r_AutoCommand_MakeTwigExtensionService.php | 35 - .../getMaker_AutoCommand_MakeUserService.php | 40 - ...Maker_AutoCommand_MakeValidatorService.php | 35 - .../getMaker_AutoCommand_MakeVoterService.php | 35 - ...etMaker_AutoCommand_MakeWebhookService.php | 40 - .../getMaker_DoctrineHelperService.php | 29 - .../getMaker_EntityClassGeneratorService.php | 25 - .../getMaker_FileLinkFormatterService.php | 26 - .../getMaker_FileManagerService.php | 28 - .../getMaker_GeneratorService.php | 26 - ...Maker_Renderer_FormTypeRendererService.php | 25 - ...RegistryAwareConnectionProviderService.php | 31 - ...efault_Middleware_HandleMessageService.php | 44 - ..._Default_Middleware_SendMessageService.php | 44 - ...us_Default_Middleware_TraceableService.php | 26 - .../getMessenger_DefaultBusService.php | 34 - ...opWorkerOnRestartSignalListenerService.php | 25 - .../getMessenger_ReceiverLocatorService.php | 29 - ...y_MultiplierRetryStrategy_AsyncService.php | 26 - ...ndFailedMessageForRetryListenerService.php | 40 - ...getMessenger_RoutableMessageBusService.php | 36 - .../getMessenger_Transport_AsyncService.php | 35 - ...essenger_Transport_Sync_FactoryService.php | 32 - .../getMonolog_Handler_DeprecationService.php | 27 - .../getMonolog_Logger_CacheService.php | 29 - .../getMonolog_Logger_DeprecationService.php | 30 - .../getMonolog_Logger_MessengerService.php | 29 - .../getPriceTriggerControllerService.php | 45 - .../getPricesControllerService.php | 30 - .../getRedirectControllerService.php | 27 - .../getRedisImportCommandService.php | 31 - .../getRedisImportCommand_LazyService.php | 26 - .../getRedisImportServiceService.php | 30 - .../getRedisReadCommandService.php | 31 - .../getRedisReadCommand_LazyService.php | 26 - .../getRedisReadServiceService.php | 26 - .../getRouter_CacheWarmerService.php | 30 - .../getRouting_LoaderService.php | 72 - .../getRunSqlCommandService.php | 30 - .../getSecrets_VaultService.php | 28 - .../getSecurity_AccessListenerService.php | 31 - .../getSecurity_AccessMapService.php | 37 - ..._Authentication_SessionStrategyService.php | 26 - .../getSecurity_ChannelListenerService.php | 27 - ...tSecurity_Command_DebugFirewallService.php | 31 - ...curity_Command_UserPasswordHashService.php | 31 - .../getSecurity_Csrf_TokenManagerService.php | 28 - .../getSecurity_Csrf_TokenStorageService.php | 27 - ...curity_Firewall_Map_Context_DevService.php | 33 - ...urity_Firewall_Map_Context_MainService.php | 33 - .../getSecurity_HttpUtilsService.php | 27 - ...r_CheckAuthenticatorCredentialsService.php | 25 - ...ecurity_Listener_CsrfProtectionService.php | 25 - ...rity_Listener_PasswordMigratingService.php | 25 - ...etSecurity_Listener_Session_DevService.php | 25 - ...tSecurity_Listener_Session_MainService.php | 25 - ...curity_Listener_UserChecker_DevService.php | 27 - ...urity_Listener_UserChecker_MainService.php | 27 - ...gout_Listener_CsrfTokenClearingService.php | 25 - ...tSecurity_PasswordHasherFactoryService.php | 26 - .../getSecurity_RouteLoader_LogoutService.php | 25 - .../getServicesResetterService.php | 110 - .../getSession_FactoryService.php | 36 - .../getSession_Handler_NativeService.php | 26 - .../getTemplateControllerService.php | 25 - .../getTriggerPriceImportHandlerService.php | 25 - .../getTriggerTestCommandService.php | 31 - .../getTriggerTestCommand_LazyService.php | 26 - .../get_Cache_RateLimiter_TaggableService.php | 36 - .../get_Console_Command_About_LazyService.php | 26 - ...sole_Command_AssetsInstall_LazyService.php | 26 - ...Console_Command_CacheClear_LazyService.php | 26 - ...ole_Command_CachePoolClear_LazyService.php | 26 - ...le_Command_CachePoolDelete_LazyService.php | 26 - ...nd_CachePoolInvalidateTags_LazyService.php | 26 - ...sole_Command_CachePoolList_LazyService.php | 26 - ...ole_Command_CachePoolPrune_LazyService.php | 26 - ...onsole_Command_CacheWarmup_LazyService.php | 26 - ...onsole_Command_ConfigDebug_LazyService.php | 26 - ...ommand_ConfigDumpReference_LazyService.php | 26 - ...ole_Command_ContainerDebug_LazyService.php | 26 - ...sole_Command_ContainerLint_LazyService.php | 26 - ...le_Command_DebugAutowiring_LazyService.php | 26 - ...onsole_Command_DotenvDebug_LazyService.php | 26 - ...mmand_EventDispatcherDebug_LazyService.php | 26 - ...d_MessengerConsumeMessages_LazyService.php | 26 - ...ole_Command_MessengerDebug_LazyService.php | 26 - ...d_MessengerSetupTransports_LazyService.php | 26 - ...ole_Command_MessengerStats_LazyService.php | 26 - ...mmand_MessengerStopWorkers_LazyService.php | 26 - ...onsole_Command_RouterDebug_LazyService.php | 26 - ...onsole_Command_RouterMatch_LazyService.php | 26 - ...mand_SecretsDecryptToLocal_LazyService.php | 26 - ...nd_SecretsEncryptFromLocal_LazyService.php | 26 - ...Command_SecretsGenerateKey_LazyService.php | 26 - ...onsole_Command_SecretsList_LazyService.php | 26 - ...sole_Command_SecretsRemove_LazyService.php | 26 - ...Console_Command_SecretsSet_LazyService.php | 26 - ...t_Console_Command_YamlLint_LazyService.php | 26 - ...urity_Access_AuthenticatedVoterService.php | 34 - ...urity_Access_RoleHierarchyVoterService.php | 37 - ...mentResolver_BackedEnumResolverService.php | 28 - ...olver_ArgumentResolver_DatetimeService.php | 31 - ...solver_ArgumentResolver_DefaultService.php | 28 - ...entResolver_NotTaggedControllerService.php | 28 - ...ver_QueryParameterValueResolverService.php | 28 - ...gumentResolver_RequestAttributeService.php | 28 - ...ArgumentResolver_RequestPayloadService.php | 28 - ...solver_ArgumentResolver_RequestService.php | 28 - ...solver_ArgumentResolver_ServiceService.php | 28 - ...solver_ArgumentResolver_SessionService.php | 28 - ...ueResolver_ArgumentResolver_UidService.php | 28 - ...olver_ArgumentResolver_VariadicService.php | 28 - ...octrine_Orm_EntityValueResolverService.php | 30 - ...rity_SecurityTokenValueResolverService.php | 28 - ...lver_Security_UserValueResolverService.php | 28 - ...eMigrations_CurrentCommand_LazyService.php | 26 - ...rineMigrations_DiffCommand_LazyService.php | 26 - ...grations_DumpSchemaCommand_LazyService.php | 26 - ...eMigrations_ExecuteCommand_LazyService.php | 26 - ...Migrations_GenerateCommand_LazyService.php | 26 - ...neMigrations_LatestCommand_LazyService.php | 26 - ...eMigrations_MigrateCommand_LazyService.php | 26 - ...neMigrations_RollupCommand_LazyService.php | 26 - ...neMigrations_StatusCommand_LazyService.php | 26 - ...ations_SyncMetadataCommand_LazyService.php | 26 - ...Migrations_UpToDateCommand_LazyService.php | 26 - ...eMigrations_VersionCommand_LazyService.php | 26 - ...Migrations_VersionsCommand_LazyService.php | 26 - .../get_Lock_Default_Store_TTEhGTService.php | 26 - ...Maker_AutoCommand_MakeAuth_LazyService.php | 26 - ...er_AutoCommand_MakeCommand_LazyService.php | 26 - ...AutoCommand_MakeController_LazyService.php | 26 - ...Maker_AutoCommand_MakeCrud_LazyService.php | 26 - ...Command_MakeDockerDatabase_LazyService.php | 26 - ...ker_AutoCommand_MakeEntity_LazyService.php | 26 - ...r_AutoCommand_MakeFixtures_LazyService.php | 26 - ...Maker_AutoCommand_MakeForm_LazyService.php | 26 - ...r_AutoCommand_MakeListener_LazyService.php | 26 - ...er_AutoCommand_MakeMessage_LazyService.php | 26 - ...nd_MakeMessengerMiddleware_LazyService.php | 26 - ..._AutoCommand_MakeMigration_LazyService.php | 26 - ...mmand_MakeRegistrationForm_LazyService.php | 26 - ...oCommand_MakeResetPassword_LazyService.php | 26 - ...r_AutoCommand_MakeSchedule_LazyService.php | 26 - ...Command_MakeSecurityCustom_LazyService.php | 26 - ...mand_MakeSecurityFormLogin_LazyService.php | 26 - ...mand_MakeSerializerEncoder_LazyService.php | 26 - ...d_MakeSerializerNormalizer_LazyService.php | 26 - ...and_MakeStimulusController_LazyService.php | 26 - ...Maker_AutoCommand_MakeTest_LazyService.php | 26 - ...oCommand_MakeTwigComponent_LazyService.php | 26 - ...oCommand_MakeTwigExtension_LazyService.php | 26 - ...Maker_AutoCommand_MakeUser_LazyService.php | 26 - ..._AutoCommand_MakeValidator_LazyService.php | 26 - ...aker_AutoCommand_MakeVoter_LazyService.php | 26 - ...er_AutoCommand_MakeWebhook_LazyService.php | 26 - ...enger_HandlerDescriptor_6kVvRT_Service.php | 26 - ...enger_HandlerDescriptor_F4AMIZdService.php | 25 - ...enger_HandlerDescriptor_KEzMhfsService.php | 31 - ...enger_HandlerDescriptor_P4QvabmService.php | 32 - ...enger_HandlerDescriptor_QXXNQ9dService.php | 26 - ...rity_Command_DebugFirewall_LazyService.php | 26 - ...y_Command_UserPasswordHash_LazyService.php | 26 - .../get_ServiceLocator_B4dyivWService.php | 29 - .../get_ServiceLocator_HBdvAhpService.php | 37 - .../get_ServiceLocator_O2p6Lk7Service.php | 39 - .../get_ServiceLocator_SPNPNE7Service.php | 31 - .../get_ServiceLocator_Y4Zrx_Service.php | 27 - .../dev/ContainerJu8t4eN/removed-ids.php | 836 --- .../Config/Doctrine/Dbal/ConnectionConfig.php | 1275 ---- .../Dbal/ConnectionConfig/ReplicaConfig.php | 743 -- .../Dbal/ConnectionConfig/SlaveConfig.php | 743 -- .../Config/Doctrine/Dbal/TypeConfig.php | 76 - .../Symfony/Config/Doctrine/DbalConfig.php | 146 - .../Doctrine/Orm/ControllerResolverConfig.php | 100 - .../Doctrine/Orm/EntityManagerConfig.php | 662 -- .../Orm/EntityManagerConfig/DqlConfig.php | 92 - .../EntityListeners/EntityConfig.php | 52 - .../EntityConfig/ListenerConfig.php | 47 - .../ListenerConfig/EventConfig.php | 75 - .../EntityListenersConfig.php | 52 - .../Orm/EntityManagerConfig/FilterConfig.php | 96 - .../Orm/EntityManagerConfig/MappingConfig.php | 167 - .../MetadataCacheDriverConfig.php | 98 - .../QueryCacheDriverConfig.php | 98 - .../ResultCacheDriverConfig.php | 98 - .../SecondLevelCache/LoggerConfig.php | 75 - .../RegionCacheDriverConfig.php | 98 - .../SecondLevelCache/RegionConfig.php | 205 - .../RegionConfig/CacheDriverConfig.php | 98 - .../SecondLevelCacheConfig.php | 228 - .../dev/Symfony/Config/Doctrine/OrmConfig.php | 217 - .../dev/Symfony/Config/DoctrineConfig.php | 106 - .../Storage/TableStorageConfig.php | 144 - .../DoctrineMigrations/StorageConfig.php | 56 - .../Config/DoctrineMigrationsConfig.php | 340 - .../Config/Framework/AnnotationsConfig.php | 121 - .../Config/Framework/AssetMapperConfig.php | 330 - .../Config/Framework/Assets/PackageConfig.php | 190 - .../Symfony/Config/Framework/AssetsConfig.php | 237 - .../Config/Framework/Cache/PoolConfig.php | 194 - .../Symfony/Config/Framework/CacheConfig.php | 277 - .../Config/Framework/CsrfProtectionConfig.php | 52 - .../Symfony/Config/Framework/EsiConfig.php | 52 - .../Config/Framework/ExceptionConfig.php | 77 - .../Framework/Form/CsrfProtectionConfig.php | 75 - .../Symfony/Config/Framework/FormConfig.php | 103 - .../Config/Framework/FragmentsConfig.php | 98 - .../HtmlSanitizer/SanitizerConfig.php | 445 -- .../Config/Framework/HtmlSanitizerConfig.php | 76 - .../Config/Framework/HttpCacheConfig.php | 305 - .../DefaultOptions/PeerFingerprintConfig.php | 101 - .../RetryFailed/HttpCodeConfig.php | 75 - .../DefaultOptions/RetryFailedConfig.php | 233 - .../HttpClient/DefaultOptionsConfig.php | 565 -- .../HttpClient/ScopedClientConfig.php | 683 -- .../PeerFingerprintConfig.php | 101 - .../RetryFailed/HttpCodeConfig.php | 75 - .../ScopedClientConfig/RetryFailedConfig.php | 233 - .../Config/Framework/HttpClientConfig.php | 160 - .../Symfony/Config/Framework/LockConfig.php | 73 - .../Framework/Mailer/EnvelopeConfig.php | 75 - .../Config/Framework/Mailer/HeaderConfig.php | 53 - .../Symfony/Config/Framework/MailerConfig.php | 183 - .../Config/Framework/Messenger/BusConfig.php | 95 - .../BusConfig/DefaultMiddlewareConfig.php | 98 - .../Messenger/BusConfig/MiddlewareConfig.php | 75 - .../Framework/Messenger/RoutingConfig.php | 52 - .../Serializer/SymfonySerializerConfig.php | 74 - .../Framework/Messenger/SerializerConfig.php | 80 - .../Framework/Messenger/TransportConfig.php | 185 - .../TransportConfig/RetryStrategyConfig.php | 148 - .../Config/Framework/MessengerConfig.php | 272 - .../Notifier/AdminRecipientConfig.php | 74 - .../Config/Framework/NotifierConfig.php | 181 - .../Config/Framework/PhpErrorsConfig.php | 79 - .../Config/Framework/ProfilerConfig.php | 192 - .../Config/Framework/PropertyAccessConfig.php | 167 - .../Config/Framework/PropertyInfoConfig.php | 52 - .../Framework/RateLimiter/LimiterConfig.php | 200 - .../RateLimiter/LimiterConfig/RateConfig.php | 77 - .../Config/Framework/RateLimiterConfig.php | 76 - .../Config/Framework/RemoteeventConfig.php | 52 - .../Config/Framework/RequestConfig.php | 73 - .../Symfony/Config/Framework/RouterConfig.php | 241 - .../Config/Framework/SchedulerConfig.php | 52 - .../Config/Framework/SecretsConfig.php | 121 - .../Config/Framework/SemaphoreConfig.php | 73 - .../Framework/Serializer/MappingConfig.php | 52 - .../Config/Framework/SerializerConfig.php | 217 - .../Config/Framework/SessionConfig.php | 444 -- .../Symfony/Config/Framework/SsiConfig.php | 52 - .../Framework/Translator/ProviderConfig.php | 98 - .../Translator/PseudoLocalizationConfig.php | 167 - .../Config/Framework/TranslatorConfig.php | 255 - .../Symfony/Config/Framework/UidConfig.php | 167 - .../Validation/AutoMappingConfig.php | 52 - .../Framework/Validation/MappingConfig.php | 52 - .../NotCompromisedPasswordConfig.php | 77 - .../Config/Framework/ValidationConfig.php | 282 - .../Config/Framework/WebLinkConfig.php | 52 - .../Framework/Webhook/RoutingConfig.php | 74 - .../Config/Framework/WebhookConfig.php | 100 - .../Framework/Workflows/WorkflowsConfig.php | 290 - .../WorkflowsConfig/AuditTrailConfig.php | 52 - .../WorkflowsConfig/MarkingStoreConfig.php | 98 - .../Workflows/WorkflowsConfig/PlaceConfig.php | 75 - .../WorkflowsConfig/TransitionConfig.php | 146 - .../Config/Framework/WorkflowsConfig.php | 89 - .../dev/Symfony/Config/FrameworkConfig.php | 1662 ----- .../cache/dev/Symfony/Config/MakerConfig.php | 103 - .../Symfony/Config/Monolog/HandlerConfig.php | 2437 ------- .../Monolog/HandlerConfig/ChannelsConfig.php | 75 - .../HandlerConfig/ElasticsearchConfig.php | 167 - .../HandlerConfig/EmailPrototypeConfig.php | 75 - .../HandlerConfig/ExcludedHttpCodeConfig.php | 75 - .../Monolog/HandlerConfig/MongoConfig.php | 190 - .../Monolog/HandlerConfig/PredisConfig.php | 75 - .../ProcessPsr3MessagesConfig.php | 98 - .../Monolog/HandlerConfig/PublisherConfig.php | 121 - .../Monolog/HandlerConfig/RedisConfig.php | 167 - .../HandlerConfig/VerbosityLevelsConfig.php | 144 - .../dev/Symfony/Config/MonologConfig.php | 120 - .../Config/Security/AccessControlConfig.php | 282 - .../Security/AccessDecisionManagerConfig.php | 144 - .../Config/Security/FirewallConfig.php | 712 -- .../AccessToken/TokenHandler/OidcConfig.php | 148 - .../TokenHandler/OidcUserInfoConfig.php | 101 - .../AccessToken/TokenHandlerConfig.php | 112 - .../FirewallConfig/AccessTokenConfig.php | 205 - .../FirewallConfig/FormLoginConfig.php | 559 -- .../FirewallConfig/FormLoginLdapConfig.php | 672 -- .../FirewallConfig/HttpBasicConfig.php | 75 - .../FirewallConfig/HttpBasicLdapConfig.php | 188 - .../FirewallConfig/JsonLoginConfig.php | 260 - .../FirewallConfig/JsonLoginLdapConfig.php | 373 - .../FirewallConfig/LoginLinkConfig.php | 428 -- .../FirewallConfig/LoginThrottlingConfig.php | 123 - .../Logout/DeleteCookieConfig.php | 144 - .../Security/FirewallConfig/LogoutConfig.php | 274 - .../TokenProvider/DoctrineConfig.php | 75 - .../RememberMe/TokenProviderConfig.php | 91 - .../FirewallConfig/RememberMeConfig.php | 412 -- .../FirewallConfig/RemoteUserConfig.php | 75 - .../FirewallConfig/SwitchUserConfig.php | 121 - .../Security/FirewallConfig/X509Config.php | 121 - .../Config/Security/PasswordHasherConfig.php | 283 - .../Config/Security/ProviderConfig.php | 145 - .../Security/ProviderConfig/ChainConfig.php | 52 - .../Security/ProviderConfig/EntityConfig.php | 99 - .../Security/ProviderConfig/LdapConfig.php | 236 - .../ProviderConfig/Memory/UserConfig.php | 75 - .../Security/ProviderConfig/MemoryConfig.php | 52 - .../dev/Symfony/Config/SecurityConfig.php | 305 - .../var/cache/dev/annotations.map | 3 - .../var/cache/dev/url_generating_routes.php | 13 - .../cache/dev/url_generating_routes.php.meta | Bin 3228 -> 0 bytes .../var/cache/dev/url_matching_routes.php | 30 - .../cache/dev/url_matching_routes.php.meta | Bin 3228 -> 0 bytes projects/priceservice/var/log/cron-import.log | 1665 ----- .../priceservice/var/log/dev-2026-06-03.log | 16 - projects/priceservice/var/log/dev.log | 243 - projects/priceservice/vendor/autoload.php | 22 - .../priceservice/vendor/autoload_runtime.php | 30 - .../vendor/bin/doctrine-migrations | 119 - .../vendor/bin/patch-type-declarations | 119 - projects/priceservice/vendor/bin/php-parse | 119 - .../priceservice/vendor/bin/sql-formatter | 119 - .../priceservice/vendor/bin/var-dump-server | 119 - projects/priceservice/vendor/bin/yaml-lint | 119 - .../vendor/composer/ClassLoader.php | 579 -- .../vendor/composer/InstalledVersions.php | 396 -- projects/priceservice/vendor/composer/LICENSE | 21 - .../vendor/composer/autoload_classmap.php | 24 - .../vendor/composer/autoload_files.php | 19 - .../vendor/composer/autoload_namespaces.php | 9 - .../vendor/composer/autoload_psr4.php | 82 - .../vendor/composer/autoload_real.php | 50 - .../vendor/composer/autoload_static.php | 435 -- .../vendor/composer/installed.json | 5896 ---------------- .../vendor/composer/installed.php | 783 --- .../vendor/composer/platform_check.php | 25 - .../doctrine/collections/CONTRIBUTING.md | 44 - .../vendor/doctrine/collections/LICENSE | 19 - .../vendor/doctrine/collections/README.md | 6 - .../vendor/doctrine/collections/UPGRADE.md | 112 - .../vendor/doctrine/collections/composer.json | 63 - .../docs/en/derived-collections.rst | 26 - .../docs/en/expression-builder.rst | 195 - .../collections/docs/en/expressions.rst | 117 - .../doctrine/collections/docs/en/index.rst | 360 - .../collections/docs/en/lazy-collections.rst | 26 - .../collections/docs/en/serialization.rst | 29 - .../doctrine/collections/docs/en/sidebar.rst | 11 - .../src/AbstractLazyCollection.php | 414 -- .../collections/src/ArrayCollection.php | 482 -- .../doctrine/collections/src/Collection.php | 117 - .../doctrine/collections/src/Criteria.php | 285 - .../src/Expr/ClosureExpressionVisitor.php | 214 - .../collections/src/Expr/Comparison.php | 62 - .../src/Expr/CompositeExpression.php | 70 - .../collections/src/Expr/Expression.php | 14 - .../src/Expr/ExpressionVisitor.php | 52 - .../doctrine/collections/src/Expr/Value.php | 26 - .../collections/src/ExpressionBuilder.php | 128 - .../vendor/doctrine/collections/src/Order.php | 11 - .../collections/src/ReadableCollection.php | 242 - .../doctrine/collections/src/Selectable.php | 32 - .../vendor/doctrine/dbal/CONTRIBUTING.md | 6 - .../priceservice/vendor/doctrine/dbal/LICENSE | 19 - .../vendor/doctrine/dbal/README.md | 47 - .../vendor/doctrine/dbal/composer.json | 68 - .../doctrine/dbal/phpstan-baseline.neon | 91 - .../doctrine/dbal/src/ArrayParameterType.php | 39 - .../dbal/src/ArrayParameters/Exception.php | 12 - .../Exception/MissingNamedParameter.php | 20 - .../Exception/MissingPositionalParameter.php | 21 - .../doctrine/dbal/src/Cache/ArrayResult.php | 136 - .../dbal/src/Cache/CacheException.php | 11 - .../dbal/src/Cache/Exception/NoCacheKey.php | 15 - .../Exception/NoResultDriverConfigured.php | 15 - .../dbal/src/Cache/QueryCacheProfile.php | 92 - .../vendor/doctrine/dbal/src/ColumnCase.php | 21 - .../doctrine/dbal/src/Configuration.php | 151 - .../vendor/doctrine/dbal/src/Connection.php | 1464 ---- .../StaticServerVersionProvider.php | 20 - .../doctrine/dbal/src/ConnectionException.php | 9 - .../PrimaryReadReplicaConnection.php | 332 - .../vendor/doctrine/dbal/src/Driver.php | 51 - .../src/Driver/API/ExceptionConverter.php | 25 - .../Driver/API/IBMDB2/ExceptionConverter.php | 47 - .../Driver/API/MySQL/ExceptionConverter.php | 94 - .../src/Driver/API/OCI/ExceptionConverter.php | 80 - .../API/PostgreSQL/ExceptionConverter.php | 87 - .../Driver/API/SQLSrv/ExceptionConverter.php | 49 - .../Driver/API/SQLite/ExceptionConverter.php | 85 - .../dbal/src/Driver/AbstractDB2Driver.php | 27 - .../dbal/src/Driver/AbstractException.php | 34 - .../dbal/src/Driver/AbstractMySQLDriver.php | 109 - .../dbal/src/Driver/AbstractOracleDriver.php | 38 - .../EasyConnectString.php | 112 - .../src/Driver/AbstractPostgreSQLDriver.php | 57 - .../src/Driver/AbstractSQLServerDriver.php | 27 - .../Exception/PortWithoutHost.php | 16 - .../dbal/src/Driver/AbstractSQLiteDriver.php | 27 - .../Middleware/EnableForeignKeys.php | 33 - .../doctrine/dbal/src/Driver/Connection.php | 93 - .../doctrine/dbal/src/Driver/Exception.php | 23 - .../Exception/IdentityColumnsNotSupported.php | 17 - .../src/Driver/Exception/NoIdentityValue.php | 17 - .../doctrine/dbal/src/Driver/FetchUtils.php | 69 - .../dbal/src/Driver/IBMDB2/Connection.php | 131 - .../dbal/src/Driver/IBMDB2/DataSourceName.php | 80 - .../dbal/src/Driver/IBMDB2/Driver.php | 41 - .../Exception/CannotCopyStreamToStream.php | 23 - .../Exception/CannotCreateTemporaryFile.php | 23 - .../IBMDB2/Exception/ConnectionError.php | 25 - .../IBMDB2/Exception/ConnectionFailed.php | 24 - .../src/Driver/IBMDB2/Exception/Factory.php | 31 - .../Driver/IBMDB2/Exception/PrepareFailed.php | 21 - .../IBMDB2/Exception/StatementError.php | 30 - .../dbal/src/Driver/IBMDB2/Result.php | 119 - .../dbal/src/Driver/IBMDB2/Statement.php | 156 - .../doctrine/dbal/src/Driver/Middleware.php | 12 - .../AbstractConnectionMiddleware.php | 69 - .../Middleware/AbstractDriverMiddleware.php | 39 - .../Middleware/AbstractResultMiddleware.php | 85 - .../AbstractStatementMiddleware.php | 26 - .../dbal/src/Driver/Mysqli/Connection.php | 114 - .../dbal/src/Driver/Mysqli/Driver.php | 117 - .../Mysqli/Exception/ConnectionError.php | 26 - .../Mysqli/Exception/ConnectionFailed.php | 31 - .../Exception/FailedReadingStreamOffset.php | 18 - .../Driver/Mysqli/Exception/HostRequired.php | 16 - .../Mysqli/Exception/InvalidCharset.php | 37 - .../Driver/Mysqli/Exception/InvalidOption.php | 20 - .../NonStreamResourceUsedAsLargeObject.php | 20 - .../Mysqli/Exception/StatementError.php | 26 - .../dbal/src/Driver/Mysqli/Initializer.php | 14 - .../src/Driver/Mysqli/Initializer/Charset.php | 32 - .../src/Driver/Mysqli/Initializer/Options.php | 28 - .../src/Driver/Mysqli/Initializer/Secure.php | 27 - .../dbal/src/Driver/Mysqli/Result.php | 177 - .../dbal/src/Driver/Mysqli/Statement.php | 159 - .../dbal/src/Driver/OCI8/Connection.php | 125 - .../ConvertPositionalToNamedPlaceholders.php | 58 - .../doctrine/dbal/src/Driver/OCI8/Driver.php | 58 - .../OCI8/Exception/ConnectionFailed.php | 22 - .../dbal/src/Driver/OCI8/Exception/Error.php | 23 - .../OCI8/Exception/InvalidConfiguration.php | 16 - .../Exception/NonTerminatedStringLiteral.php | 23 - .../OCI8/Exception/UnknownParameterIndex.php | 20 - .../dbal/src/Driver/OCI8/ExecutionMode.php | 30 - .../OCI8/Middleware/InitializeSession.php | 40 - .../doctrine/dbal/src/Driver/OCI8/Result.php | 136 - .../dbal/src/Driver/OCI8/Statement.php | 103 - .../dbal/src/Driver/PDO/Connection.php | 133 - .../dbal/src/Driver/PDO/Exception.php | 26 - .../PDO/Exception/InvalidConfiguration.php | 22 - .../dbal/src/Driver/PDO/MySQL/Driver.php | 88 - .../dbal/src/Driver/PDO/OCI/Driver.php | 73 - .../dbal/src/Driver/PDO/PDOConnect.php | 27 - .../dbal/src/Driver/PDO/PgSQL/Driver.php | 125 - .../doctrine/dbal/src/Driver/PDO/Result.php | 130 - .../dbal/src/Driver/PDO/SQLSrv/Connection.php | 29 - .../dbal/src/Driver/PDO/SQLSrv/Driver.php | 119 - .../dbal/src/Driver/PDO/SQLSrv/Statement.php | 46 - .../dbal/src/Driver/PDO/SQLite/Driver.php | 65 - .../dbal/src/Driver/PDO/Statement.php | 80 - .../dbal/src/Driver/PgSQL/Connection.php | 132 - .../src/Driver/PgSQL/ConvertParameters.php | 49 - .../doctrine/dbal/src/Driver/PgSQL/Driver.php | 98 - .../dbal/src/Driver/PgSQL/Exception.php | 27 - .../PgSQL/Exception/UnexpectedValue.php | 27 - .../PgSQL/Exception/UnknownParameter.php | 19 - .../doctrine/dbal/src/Driver/PgSQL/Result.php | 255 - .../dbal/src/Driver/PgSQL/Statement.php | 97 - .../doctrine/dbal/src/Driver/Result.php | 95 - .../dbal/src/Driver/SQLSrv/Connection.php | 108 - .../dbal/src/Driver/SQLSrv/Driver.php | 73 - .../src/Driver/SQLSrv/Exception/Error.php | 40 - .../dbal/src/Driver/SQLSrv/Result.php | 117 - .../dbal/src/Driver/SQLSrv/Statement.php | 140 - .../dbal/src/Driver/SQLite3/Connection.php | 109 - .../dbal/src/Driver/SQLite3/Driver.php | 48 - .../dbal/src/Driver/SQLite3/Exception.php | 16 - .../dbal/src/Driver/SQLite3/Result.php | 104 - .../dbal/src/Driver/SQLite3/Statement.php | 61 - .../doctrine/dbal/src/Driver/Statement.php | 39 - .../doctrine/dbal/src/DriverManager.php | 191 - .../vendor/doctrine/dbal/src/Exception.php | 11 - .../Exception/CommitFailedRollbackOnly.php | 15 - .../src/Exception/ConnectionException.php | 12 - .../dbal/src/Exception/ConnectionLost.php | 9 - .../ConstraintViolationException.php | 12 - .../src/Exception/DatabaseDoesNotExist.php | 9 - .../DatabaseObjectExistsException.php | 16 - .../DatabaseObjectNotFoundException.php | 16 - .../dbal/src/Exception/DatabaseRequired.php | 22 - .../dbal/src/Exception/DeadlockException.php | 12 - .../dbal/src/Exception/DriverException.php | 47 - .../dbal/src/Exception/DriverRequired.php | 29 - ...ForeignKeyConstraintViolationException.php | 12 - .../Exception/InvalidArgumentException.php | 14 - .../Exception/InvalidColumnDeclaration.php | 18 - .../dbal/src/Exception/InvalidColumnIndex.php | 19 - .../dbal/src/Exception/InvalidColumnType.php | 12 - .../ColumnLengthRequired.php | 30 - .../ColumnPrecisionRequired.php | 16 - .../InvalidColumnType/ColumnScaleRequired.php | 16 - .../ColumnValuesRequired.php | 29 - .../dbal/src/Exception/InvalidDriverClass.php | 23 - .../Exception/InvalidFieldNameException.php | 12 - .../src/Exception/InvalidWrapperClass.php | 23 - .../Exception/LockWaitTimeoutException.php | 12 - .../src/Exception/MalformedDsnException.php | 13 - .../src/Exception/NoActiveTransaction.php | 15 - .../dbal/src/Exception/NoKeyValue.php | 23 - .../Exception/NonUniqueFieldNameException.php | 12 - .../NotNullConstraintViolationException.php | 12 - .../dbal/src/Exception/ParseError.php | 17 - .../dbal/src/Exception/ReadOnlyException.php | 12 - .../dbal/src/Exception/RetryableException.php | 14 - .../src/Exception/SavepointsNotSupported.php | 15 - .../dbal/src/Exception/SchemaDoesNotExist.php | 9 - .../dbal/src/Exception/ServerException.php | 12 - .../src/Exception/SyntaxErrorException.php | 12 - .../src/Exception/TableExistsException.php | 12 - .../src/Exception/TableNotFoundException.php | 12 - .../src/Exception/TransactionRolledBack.php | 9 - .../UniqueConstraintViolationException.php | 12 - .../dbal/src/Exception/UnknownDriver.php | 23 - .../dbal/src/ExpandArrayParameters.php | 128 - .../vendor/doctrine/dbal/src/LockMode.php | 16 - .../doctrine/dbal/src/Logging/Connection.php | 69 - .../doctrine/dbal/src/Logging/Driver.php | 50 - .../doctrine/dbal/src/Logging/Middleware.php | 21 - .../doctrine/dbal/src/Logging/Statement.php | 48 - .../doctrine/dbal/src/ParameterType.php | 46 - .../src/Platforms/AbstractMySQLPlatform.php | 923 --- .../dbal/src/Platforms/AbstractPlatform.php | 2438 ------- .../dbal/src/Platforms/DB2Platform.php | 596 -- .../dbal/src/Platforms/DateIntervalUnit.php | 17 - .../Exception/InvalidPlatformVersion.php | 27 - .../Exception/NoColumnsSpecifiedForTable.php | 17 - .../src/Platforms/Exception/NotSupported.php | 17 - .../Platforms/Exception/PlatformException.php | 11 - .../src/Platforms/Keywords/DB2Keywords.php | 416 -- .../src/Platforms/Keywords/KeywordList.php | 56 - .../Platforms/Keywords/MariaDBKeywords.php | 265 - .../Platforms/Keywords/MySQL80Keywords.php | 61 - .../Platforms/Keywords/MySQL84Keywords.php | 48 - .../src/Platforms/Keywords/MySQLKeywords.php | 259 - .../src/Platforms/Keywords/OracleKeywords.php | 135 - .../Platforms/Keywords/PostgreSQLKeywords.php | 121 - .../Platforms/Keywords/SQLServerKeywords.php | 209 - .../src/Platforms/Keywords/SQLiteKeywords.php | 143 - .../src/Platforms/MariaDB1010Platform.php | 50 - .../src/Platforms/MariaDB1052Platform.php | 40 - .../src/Platforms/MariaDB1060Platform.php | 20 - .../dbal/src/Platforms/MariaDBPlatform.php | 176 - .../MySQL/CharsetMetadataProvider.php | 12 - .../CachingCharsetMetadataProvider.php | 29 - .../ConnectionCharsetMetadataProvider.php | 37 - .../MySQL/CollationMetadataProvider.php | 16 - .../CachingCollationMetadataProvider.php | 29 - .../ConnectionCollationMetadataProvider.php | 37 - .../dbal/src/Platforms/MySQL/Comparator.php | 99 - .../Platforms/MySQL/DefaultTableOptions.php | 23 - .../dbal/src/Platforms/MySQL80Platform.php | 41 - .../dbal/src/Platforms/MySQL84Platform.php | 30 - .../dbal/src/Platforms/MySQLPlatform.php | 65 - .../dbal/src/Platforms/OraclePlatform.php | 865 --- .../src/Platforms/PostgreSQL120Platform.php | 32 - .../dbal/src/Platforms/PostgreSQLPlatform.php | 829 --- .../src/Platforms/SQLServer/Comparator.php | 54 - .../SQL/Builder/SQLServerSelectSQLBuilder.php | 84 - .../dbal/src/Platforms/SQLServerPlatform.php | 1339 ---- .../dbal/src/Platforms/SQLite/Comparator.php | 53 - .../dbal/src/Platforms/SQLitePlatform.php | 983 --- .../doctrine/dbal/src/Platforms/TrimMode.php | 13 - .../dbal/src/Portability/Connection.php | 41 - .../dbal/src/Portability/Converter.php | 294 - .../doctrine/dbal/src/Portability/Driver.php | 74 - .../dbal/src/Portability/Middleware.php | 25 - .../dbal/src/Portability/OptimizeFlags.php | 42 - .../doctrine/dbal/src/Portability/Result.php | 75 - .../dbal/src/Portability/Statement.php | 31 - .../vendor/doctrine/dbal/src/Query.php | 41 - .../dbal/src/Query/CommonTableExpression.php | 27 - .../src/Query/Exception/NonUniqueAlias.php | 26 - .../dbal/src/Query/Exception/UnknownAlias.php | 26 - .../Query/Expression/CompositeExpression.php | 98 - .../Query/Expression/ExpressionBuilder.php | 247 - .../doctrine/dbal/src/Query/ForUpdate.php | 21 - .../ForUpdate/ConflictResolutionMode.php | 18 - .../vendor/doctrine/dbal/src/Query/From.php | 15 - .../vendor/doctrine/dbal/src/Query/Join.php | 32 - .../vendor/doctrine/dbal/src/Query/Limit.php | 30 - .../doctrine/dbal/src/Query/QueryBuilder.php | 1620 ----- .../dbal/src/Query/QueryException.php | 11 - .../doctrine/dbal/src/Query/QueryType.php | 15 - .../doctrine/dbal/src/Query/SelectQuery.php | 78 - .../vendor/doctrine/dbal/src/Query/Union.php | 15 - .../doctrine/dbal/src/Query/UnionQuery.php | 38 - .../doctrine/dbal/src/Query/UnionType.php | 11 - .../vendor/doctrine/dbal/src/Result.php | 297 - .../Builder/CreateSchemaObjectsSQLBuilder.php | 73 - .../SQL/Builder/DefaultSelectSQLBuilder.php | 94 - .../SQL/Builder/DefaultUnionSQLBuilder.php | 48 - .../Builder/DropSchemaObjectsSQLBuilder.php | 54 - .../dbal/src/SQL/Builder/SelectSQLBuilder.php | 14 - .../dbal/src/SQL/Builder/UnionSQLBuilder.php | 14 - .../dbal/src/SQL/Builder/WithSQLBuilder.php | 31 - .../vendor/doctrine/dbal/src/SQL/Parser.php | 116 - .../dbal/src/SQL/Parser/Exception.php | 11 - .../Exception/RegularExpressionError.php | 19 - .../doctrine/dbal/src/SQL/Parser/Visitor.php | 28 - .../dbal/src/Schema/AbstractAsset.php | 422 -- .../dbal/src/Schema/AbstractNamedObject.php | 58 - .../Schema/AbstractOptionallyNamedObject.php | 46 - .../dbal/src/Schema/AbstractSchemaManager.php | 1021 --- .../dbal/src/Schema/Collections/Exception.php | 12 - .../Exception/ObjectAlreadyExists.php | 30 - .../Exception/ObjectDoesNotExist.php | 30 - .../dbal/src/Schema/Collections/ObjectSet.php | 69 - .../OptionallyUnqualifiedNamedObjectSet.php | 164 - .../Collections/UnqualifiedNamedObjectSet.php | 139 - .../doctrine/dbal/src/Schema/Column.php | 420 -- .../doctrine/dbal/src/Schema/ColumnDiff.php | 141 - .../doctrine/dbal/src/Schema/ColumnEditor.php | 271 - .../doctrine/dbal/src/Schema/Comparator.php | 457 -- .../dbal/src/Schema/ComparatorConfig.php | 58 - .../dbal/src/Schema/DB2SchemaManager.php | 374 - .../Schema/DefaultSchemaManagerFactory.php | 20 - .../Schema/Exception/ColumnAlreadyExists.php | 18 - .../Schema/Exception/ColumnDoesNotExist.php | 18 - .../Exception/ForeignKeyDoesNotExist.php | 20 - .../Schema/Exception/IndexAlreadyExists.php | 20 - .../Schema/Exception/IndexDoesNotExist.php | 18 - .../src/Schema/Exception/IndexNameInvalid.php | 18 - .../Exception/InvalidColumnDefinition.php | 25 - .../InvalidForeignKeyConstraintDefinition.php | 43 - .../Schema/Exception/InvalidIdentifier.php | 16 - .../Exception/InvalidIndexDefinition.php | 33 - .../dbal/src/Schema/Exception/InvalidName.php | 16 - .../InvalidPrimaryKeyConstraintDefinition.php | 16 - .../src/Schema/Exception/InvalidState.php | 92 - .../Exception/InvalidTableDefinition.php | 24 - .../Exception/InvalidTableModification.php | 184 - .../src/Schema/Exception/InvalidTableName.php | 18 - .../InvalidUniqueConstraintDefinition.php | 22 - .../Exception/NamespaceAlreadyExists.php | 18 - .../src/Schema/Exception/NotImplemented.php | 18 - .../Exception/PrimaryKeyAlreadyExists.php | 20 - .../Exception/SequenceAlreadyExists.php | 18 - .../Schema/Exception/SequenceDoesNotExist.php | 18 - .../Schema/Exception/TableAlreadyExists.php | 18 - .../Schema/Exception/TableDoesNotExist.php | 18 - .../UniqueConstraintDoesNotExist.php | 20 - .../Schema/Exception/UnknownColumnOption.php | 20 - .../dbal/src/Schema/ForeignKeyConstraint.php | 799 --- .../ForeignKeyConstraint/Deferrability.php | 23 - .../Schema/ForeignKeyConstraint/MatchType.php | 33 - .../ReferentialAction.php | 38 - .../src/Schema/ForeignKeyConstraintEditor.php | 261 - .../doctrine/dbal/src/Schema/Identifier.php | 42 - .../vendor/doctrine/dbal/src/Schema/Index.php | 761 -- .../dbal/src/Schema/Index/IndexType.php | 13 - .../dbal/src/Schema/Index/IndexedColumn.php | 34 - .../doctrine/dbal/src/Schema/IndexEditor.php | 178 - .../dbal/src/Schema/MySQLSchemaManager.php | 537 -- .../vendor/doctrine/dbal/src/Schema/Name.php | 25 - .../dbal/src/Schema/Name/GenericName.php | 51 - .../dbal/src/Schema/Name/Identifier.php | 91 - .../Schema/Name/OptionallyQualifiedName.php | 78 - .../doctrine/dbal/src/Schema/Name/Parser.php | 25 - .../dbal/src/Schema/Name/Parser/Exception.php | 11 - .../Name/Parser/Exception/ExpectedDot.php | 19 - .../Exception/ExpectedNextIdentifier.php | 17 - .../Name/Parser/Exception/InvalidName.php | 26 - .../Exception/UnableToParseIdentifier.php | 19 - .../Schema/Name/Parser/GenericNameParser.php | 100 - .../Parser/OptionallyQualifiedNameParser.php | 35 - .../Name/Parser/UnqualifiedNameParser.php | 35 - .../doctrine/dbal/src/Schema/Name/Parsers.php | 43 - .../dbal/src/Schema/Name/UnqualifiedName.php | 53 - .../Schema/Name/UnquotedIdentifierFolding.php | 45 - .../doctrine/dbal/src/Schema/NamedObject.php | 22 - .../dbal/src/Schema/OptionallyNamedObject.php | 22 - .../dbal/src/Schema/OracleSchemaManager.php | 489 -- .../src/Schema/PostgreSQLSchemaManager.php | 542 -- .../dbal/src/Schema/PrimaryKeyConstraint.php | 76 - .../src/Schema/PrimaryKeyConstraintEditor.php | 108 - .../src/Schema/SQLServerSchemaManager.php | 515 -- .../dbal/src/Schema/SQLiteSchemaManager.php | 622 -- .../doctrine/dbal/src/Schema/Schema.php | 481 -- .../doctrine/dbal/src/Schema/SchemaConfig.php | 74 - .../doctrine/dbal/src/Schema/SchemaDiff.php | 111 - .../dbal/src/Schema/SchemaException.php | 11 - .../dbal/src/Schema/SchemaManagerFactory.php | 17 - .../doctrine/dbal/src/Schema/Sequence.php | 120 - .../vendor/doctrine/dbal/src/Schema/Table.php | 1199 ---- .../dbal/src/Schema/TableConfiguration.php | 30 - .../doctrine/dbal/src/Schema/TableDiff.php | 249 - .../doctrine/dbal/src/Schema/TableEditor.php | 561 -- .../dbal/src/Schema/UniqueConstraint.php | 359 - .../src/Schema/UniqueConstraintEditor.php | 110 - .../vendor/doctrine/dbal/src/Schema/View.php | 32 - .../dbal/src/ServerVersionProvider.php | 13 - .../vendor/doctrine/dbal/src/Statement.php | 143 - .../Tools/Console/Command/RunSqlCommand.php | 119 - .../src/Tools/Console/ConnectionNotFound.php | 11 - .../src/Tools/Console/ConnectionProvider.php | 15 - .../SingleConnectionProvider.php | 34 - .../doctrine/dbal/src/Tools/DsnParser.php | 223 - .../dbal/src/TransactionIsolationLevel.php | 13 - .../dbal/src/Types/AsciiStringType.php | 24 - .../doctrine/dbal/src/Types/BigIntType.php | 64 - .../doctrine/dbal/src/Types/BinaryType.php | 49 - .../doctrine/dbal/src/Types/BlobType.php | 56 - .../doctrine/dbal/src/Types/BooleanType.php | 44 - .../dbal/src/Types/ConversionException.php | 14 - .../dbal/src/Types/DateImmutableType.php | 74 - .../dbal/src/Types/DateIntervalType.php | 84 - .../dbal/src/Types/DateTimeImmutableType.php | 80 - .../doctrine/dbal/src/Types/DateTimeType.php | 80 - .../src/Types/DateTimeTzImmutableType.php | 74 - .../dbal/src/Types/DateTimeTzType.php | 87 - .../doctrine/dbal/src/Types/DateType.php | 69 - .../doctrine/dbal/src/Types/DecimalType.php | 35 - .../doctrine/dbal/src/Types/EnumType.php | 18 - .../src/Types/Exception/InvalidFormat.php | 37 - .../dbal/src/Types/Exception/InvalidType.php | 51 - .../Types/Exception/SerializationFailed.php | 28 - .../Types/Exception/TypeAlreadyRegistered.php | 24 - .../Exception/TypeArgumentCountError.php | 24 - .../dbal/src/Types/Exception/TypeNotFound.php | 17 - .../src/Types/Exception/TypeNotRegistered.php | 24 - .../Types/Exception/TypesAlreadyExists.php | 17 - .../src/Types/Exception/TypesException.php | 11 - .../src/Types/Exception/UnknownColumnType.php | 28 - .../Types/Exception/ValueNotConvertible.php | 42 - .../doctrine/dbal/src/Types/FloatType.php | 30 - .../doctrine/dbal/src/Types/GuidType.php | 21 - .../doctrine/dbal/src/Types/IntegerType.php | 39 - .../doctrine/dbal/src/Types/JsonType.php | 69 - .../doctrine/dbal/src/Types/JsonbType.php | 21 - .../doctrine/dbal/src/Types/NumberType.php | 54 - .../dbal/src/Types/PhpDateMappingType.php | 14 - .../dbal/src/Types/PhpDateTimeMappingType.php | 14 - .../dbal/src/Types/PhpIntegerMappingType.php | 14 - .../dbal/src/Types/PhpTimeMappingType.php | 14 - .../dbal/src/Types/SimpleArrayType.php | 51 - .../dbal/src/Types/SmallFloatType.php | 30 - .../doctrine/dbal/src/Types/SmallIntType.php | 39 - .../doctrine/dbal/src/Types/StringType.php | 21 - .../doctrine/dbal/src/Types/TextType.php | 29 - .../dbal/src/Types/TimeImmutableType.php | 74 - .../doctrine/dbal/src/Types/TimeType.php | 69 - .../vendor/doctrine/dbal/src/Types/Type.php | 243 - .../doctrine/dbal/src/Types/TypeRegistry.php | 136 - .../vendor/doctrine/dbal/src/Types/Types.php | 44 - .../src/Types/VarDateTimeImmutableType.php | 63 - .../dbal/src/Types/VarDateTimeType.php | 42 - .../vendor/doctrine/deprecations/LICENSE | 19 - .../vendor/doctrine/deprecations/README.md | 218 - .../doctrine/deprecations/composer.json | 39 - .../doctrine/deprecations/src/Deprecation.php | 309 - .../src/PHPUnit/VerifyDeprecations.php | 66 - .../vendor/doctrine/doctrine-bundle/LICENSE | 13 - .../vendor/doctrine/doctrine-bundle/README.md | 24 - .../doctrine/doctrine-bundle/UPGRADE-2.10.md | 27 - .../doctrine/doctrine-bundle/UPGRADE-2.12.md | 13 - .../doctrine/doctrine-bundle/UPGRADE-2.13.md | 13 - .../doctrine/doctrine-bundle/UPGRADE-3.0.md | 19 - .../doctrine/doctrine-bundle/composer.json | 109 - .../doctrine/doctrine-bundle/config/dbal.xml | 114 - .../doctrine-bundle/config/messenger.xml | 60 - .../doctrine-bundle/config/middlewares.xml | 26 - .../doctrine/doctrine-bundle/config/orm.xml | 271 - .../config/schema/doctrine-1.0.xsd | 296 - .../src/Attribute/AsDoctrineListener.php | 19 - .../src/Attribute/AsEntityListener.php | 22 - .../src/Attribute/AsMiddleware.php | 16 - .../DoctrineMetadataCacheWarmer.php | 47 - .../Command/CreateDatabaseDoctrineCommand.php | 101 - .../src/Command/DoctrineCommand.php | 83 - .../Command/DropDatabaseDoctrineCommand.php | 131 - .../Command/ImportMappingDoctrineCommand.php | 166 - .../ClearMetadataCacheDoctrineCommand.php | 31 - .../Proxy/ClearQueryCacheDoctrineCommand.php | 31 - .../Proxy/ClearResultCacheDoctrineCommand.php | 31 - .../Proxy/CollectionRegionDoctrineCommand.php | 30 - .../Proxy/ConvertMappingDoctrineCommand.php | 58 - .../Proxy/CreateSchemaDoctrineCommand.php | 32 - .../Command/Proxy/DoctrineCommandHelper.php | 43 - .../Proxy/DropSchemaDoctrineCommand.php | 31 - ...nsureProductionSettingsDoctrineCommand.php | 32 - .../EntityRegionCacheDoctrineCommand.php | 30 - .../src/Command/Proxy/InfoDoctrineCommand.php | 28 - .../src/Command/Proxy/OrmProxyCommand.php | 40 - .../Proxy/QueryRegionCacheDoctrineCommand.php | 30 - .../Command/Proxy/RunDqlDoctrineCommand.php | 46 - .../Command/Proxy/RunSqlDoctrineCommand.php | 43 - .../Proxy/UpdateSchemaDoctrineCommand.php | 31 - .../Command/Proxy/ValidateSchemaCommand.php | 30 - .../doctrine-bundle/src/ConnectionFactory.php | 294 - .../src/Controller/ProfilerController.php | 128 - .../DataCollector/DoctrineDataCollector.php | 332 - .../src/Dbal/BlacklistSchemaAssetFilter.php | 27 - ...ManagerRegistryAwareConnectionProvider.php | 25 - .../src/Dbal/RegexSchemaAssetFilter.php | 24 - .../src/Dbal/SchemaAssetsFilterManager.php | 29 - .../Compiler/CacheCompatibilityPass.php | 125 - .../Compiler/CacheSchemaSubscriberPass.php | 43 - .../Compiler/DbalSchemaFilterPass.php | 53 - .../Compiler/DoctrineOrmMappingsPass.php | 185 - .../Compiler/EntityListenerPass.php | 151 - .../Compiler/IdGeneratorPass.php | 78 - .../Compiler/MiddlewaresPass.php | 88 - .../Compiler/RemoveLoggingMiddlewarePass.php | 19 - .../Compiler/RemoveProfilerControllerPass.php | 20 - .../ServiceRepositoryCompilerPass.php | 33 - .../src/DependencyInjection/Configuration.php | 885 --- .../DependencyInjection/DoctrineExtension.php | 1251 ---- .../doctrine-bundle/src/DoctrineBundle.php | 173 - .../EventSubscriberInterface.php | 10 - .../src/ManagerConfigurator.php | 62 - .../src/Mapping/ClassMetadataCollection.php | 47 - .../src/Mapping/ClassMetadataFactory.php | 34 - .../ContainerEntityListenerResolver.php | 98 - .../Mapping/DisconnectedMetadataFactory.php | 174 - .../Mapping/EntityListenerServiceResolver.php | 15 - .../src/Mapping/MappingDriver.php | 62 - .../Middleware/BacktraceDebugDataHolder.php | 88 - .../ConnectionNameAwareInterface.php | 8 - .../src/Middleware/DebugMiddleware.php | 30 - .../Middleware/IdleConnectionMiddleware.php | 38 - ...agerRegistryAwareEntityManagerProvider.php | 41 - .../doctrine/doctrine-bundle/src/Registry.php | 90 - .../Repository/ContainerRepositoryFactory.php | 109 - .../LazyServiceEntityRepository.php | 75 - .../RepositoryFactoryCompatibility.php | 41 - .../Repository/ServiceEntityRepository.php | 53 - .../ServiceEntityRepositoryInterface.php | 10 - .../ServiceEntityRepositoryProxy.php | 138 - .../src/Twig/DoctrineExtension.php | 205 - .../templates/Collector/database.svg | 6 - .../templates/Collector/db.html.twig | 558 -- .../templates/Collector/explain.html.twig | 28 - .../templates/Collector/icon.svg | 4 - .../.symfony.bundle.yaml | 4 - .../doctrine-migrations-bundle/LICENSE | 19 - .../README.markdown | 9 - .../doctrine-migrations-bundle/UPGRADE.md | 86 - .../doctrine-migrations-bundle/composer.json | 61 - .../config/schema/doctrine_migrations-3.0.xsd | 73 - .../config/services.xml | 156 - .../src/Collector/MigrationsCollector.php | 95 - .../src/Collector/MigrationsFlattener.php | 73 - .../ConfigureDependencyFactoryPass.php | 115 - .../src/DependencyInjection/Configuration.php | 172 - .../DoctrineMigrationsExtension.php | 211 - .../src/DoctrineMigrationsBundle.php | 25 - .../EventListener/SchemaFilterListener.php | 54 - .../ContainerAwareMigrationFactory.php | 41 - .../templates/Collector/icon-v3.svg | 6 - .../templates/Collector/icon.svg | 7 - .../templates/Collector/migrations.html.twig | 252 - .../vendor/doctrine/event-manager/LICENSE | 19 - .../vendor/doctrine/event-manager/README.md | 13 - .../vendor/doctrine/event-manager/UPGRADE.md | 15 - .../doctrine/event-manager/composer.json | 68 - .../doctrine/event-manager/psalm-baseline.xml | 8 - .../doctrine/event-manager/src/EventArgs.php | 37 - .../event-manager/src/EventManager.php | 129 - .../event-manager/src/EventSubscriber.php | 21 - .../vendor/doctrine/inflector/LICENSE | 19 - .../vendor/doctrine/inflector/README.md | 7 - .../vendor/doctrine/inflector/composer.json | 41 - .../doctrine/inflector/docs/en/index.rst | 226 - .../Inflector/CachedWordInflector.php | 24 - .../GenericLanguageInflectorFactory.php | 66 - .../lib/Doctrine/Inflector/Inflector.php | 507 -- .../Doctrine/Inflector/InflectorFactory.php | 52 - .../lib/Doctrine/Inflector/Language.php | 19 - .../Inflector/LanguageInflectorFactory.php | 33 - .../Doctrine/Inflector/NoopWordInflector.php | 13 - .../Inflector/Rules/English/Inflectible.php | 184 - .../Rules/English/InflectorFactory.php | 21 - .../Inflector/Rules/English/Rules.php | 31 - .../Inflector/Rules/English/Uninflected.php | 189 - .../Inflector/Rules/French/Inflectible.php | 44 - .../Rules/French/InflectorFactory.php | 21 - .../Doctrine/Inflector/Rules/French/Rules.php | 31 - .../Inflector/Rules/French/Uninflected.php | 28 - .../Rules/NorwegianBokmal/Inflectible.php | 34 - .../NorwegianBokmal/InflectorFactory.php | 21 - .../Inflector/Rules/NorwegianBokmal/Rules.php | 31 - .../Rules/NorwegianBokmal/Uninflected.php | 30 - .../lib/Doctrine/Inflector/Rules/Pattern.php | 42 - .../lib/Doctrine/Inflector/Rules/Patterns.php | 34 - .../Rules/Portuguese/Inflectible.php | 98 - .../Rules/Portuguese/InflectorFactory.php | 21 - .../Inflector/Rules/Portuguese/Rules.php | 31 - .../Rules/Portuguese/Uninflected.php | 32 - .../lib/Doctrine/Inflector/Rules/Ruleset.php | 39 - .../Inflector/Rules/Spanish/Inflectible.php | 47 - .../Rules/Spanish/InflectorFactory.php | 21 - .../Inflector/Rules/Spanish/Rules.php | 31 - .../Inflector/Rules/Spanish/Uninflected.php | 30 - .../Doctrine/Inflector/Rules/Substitution.php | 30 - .../Inflector/Rules/Substitutions.php | 57 - .../Inflector/Rules/Transformation.php | 39 - .../Inflector/Rules/Transformations.php | 29 - .../Inflector/Rules/Turkish/Inflectible.php | 34 - .../Rules/Turkish/InflectorFactory.php | 21 - .../Inflector/Rules/Turkish/Rules.php | 31 - .../Inflector/Rules/Turkish/Uninflected.php | 30 - .../lib/Doctrine/Inflector/Rules/Word.php | 21 - .../Doctrine/Inflector/RulesetInflector.php | 56 - .../lib/Doctrine/Inflector/WordInflector.php | 10 - .../instantiator/.doctrine-project.json | 47 - .../doctrine/instantiator/CONTRIBUTING.md | 35 - .../vendor/doctrine/instantiator/LICENSE | 19 - .../vendor/doctrine/instantiator/README.md | 38 - .../doctrine/instantiator/composer.json | 48 - .../doctrine/instantiator/docs/en/index.rst | 68 - .../doctrine/instantiator/docs/en/sidebar.rst | 4 - .../vendor/doctrine/instantiator/psalm.xml | 16 - .../Exception/ExceptionInterface.php | 14 - .../Exception/InvalidArgumentException.php | 52 - .../Exception/UnexpectedValueException.php | 61 - .../Doctrine/Instantiator/Instantiator.php | 255 - .../Instantiator/InstantiatorInterface.php | 24 - .../vendor/doctrine/lexer/LICENSE | 19 - .../vendor/doctrine/lexer/README.md | 9 - .../vendor/doctrine/lexer/UPGRADE.md | 22 - .../vendor/doctrine/lexer/composer.json | 55 - .../doctrine/lexer/src/AbstractLexer.php | 328 - .../vendor/doctrine/lexer/src/Token.php | 56 - .../vendor/doctrine/migrations/LICENSE | 19 - .../vendor/doctrine/migrations/README.md | 11 - .../vendor/doctrine/migrations/UPGRADE.md | 302 - .../migrations/bin/doctrine-migrations | 8 - .../migrations/bin/doctrine-migrations.php | 46 - .../vendor/doctrine/migrations/composer.json | 81 - .../migrations/src/AbstractMigration.php | 179 - .../src/Configuration/Configuration.php | 212 - .../Connection/ConfigurationFile.php | 51 - .../Connection/ConnectionLoader.php | 23 - .../ConnectionRegistryConnection.php | 39 - .../Exception/ConnectionNotSpecified.php | 17 - .../Connection/Exception/FileNotFound.php | 17 - .../Exception/InvalidConfiguration.php | 28 - .../Connection/Exception/LoaderException.php | 11 - .../Connection/ExistingConnection.php | 24 - .../EntityManager/ConfigurationFile.php | 51 - .../EntityManager/EntityManagerLoader.php | 18 - .../EntityManager/Exception/FileNotFound.php | 17 - .../Exception/InvalidConfiguration.php | 28 - .../Exception/LoaderException.php | 11 - .../EntityManager/ExistingEntityManager.php | 24 - .../ManagerRegistryEntityManager.php | 41 - .../Exception/ConfigurationException.php | 11 - .../Configuration/Exception/FileNotFound.php | 17 - .../Exception/FrozenConfiguration.php | 15 - .../Configuration/Exception/InvalidLoader.php | 31 - .../Exception/UnknownConfigurationValue.php | 25 - .../Migration/ConfigurationArray.php | 110 - .../Migration/ConfigurationFile.php | 35 - .../ConfigurationFileWithFallback.php | 61 - .../Migration/ConfigurationLoader.php | 12 - .../Exception/InvalidConfigurationFormat.php | 18 - .../Exception/InvalidConfigurationKey.php | 18 - .../Migration/Exception/JsonNotValid.php | 16 - .../Exception/MissingConfigurationFile.php | 16 - .../Migration/Exception/XmlNotValid.php | 21 - .../Migration/Exception/YamlNotAvailable.php | 19 - .../Migration/Exception/YamlNotValid.php | 21 - .../Migration/ExistingConfiguration.php | 19 - .../Configuration/Migration/FormattedFile.php | 45 - .../src/Configuration/Migration/JsonFile.php | 46 - .../src/Configuration/Migration/PhpFile.php | 37 - .../Migration/XML/configuration.xsd | 73 - .../src/Configuration/Migration/XmlFile.php | 129 - .../src/Configuration/Migration/YamlFile.php | 55 - .../doctrine/migrations/src/DbalMigrator.php | 140 - .../migrations/src/DependencyFactory.php | 465 -- .../Event/Listeners/AutoCommitListener.php | 37 - .../src/Event/MigrationsEventArgs.php | 38 - .../src/Event/MigrationsVersionEventArgs.php | 38 - .../migrations/src/EventDispatcher.php | 73 - .../vendor/doctrine/migrations/src/Events.php | 17 - .../src/Exception/AbortMigration.php | 11 - .../src/Exception/AlreadyAtVersion.php | 23 - .../src/Exception/ControlException.php | 9 - .../src/Exception/DependencyException.php | 9 - .../Exception/DuplicateMigrationVersion.php | 24 - .../src/Exception/FrozenDependencies.php | 15 - .../src/Exception/FrozenMigration.php | 15 - .../src/Exception/IrreversibleMigration.php | 11 - .../src/Exception/MetadataStorageError.php | 20 - .../src/Exception/MigrationClassNotFound.php | 22 - .../MigrationConfigurationConflict.php | 26 - .../src/Exception/MigrationException.php | 11 - .../src/Exception/MigrationNotAvailable.php | 24 - .../src/Exception/MigrationNotExecuted.php | 23 - .../src/Exception/MissingDependency.php | 20 - .../NoMigrationsFoundWithCriteria.php | 22 - .../src/Exception/NoMigrationsToExecute.php | 20 - .../src/Exception/NoTablesFound.php | 15 - .../src/Exception/PlanAlreadyExecuted.php | 15 - .../migrations/src/Exception/RollupFailed.php | 20 - .../src/Exception/SkipMigration.php | 11 - .../src/Exception/UnknownMigrationVersion.php | 23 - .../migrations/src/FileQueryWriter.php | 58 - .../src/FilesystemMigrationsRepository.php | 139 - .../src/Finder/Exception/FinderException.php | 9 - .../src/Finder/Exception/InvalidDirectory.php | 17 - .../src/Finder/Exception/NameIsReserved.php | 24 - .../doctrine/migrations/src/Finder/Finder.php | 103 - .../migrations/src/Finder/GlobFinder.php | 29 - .../migrations/src/Finder/MigrationFinder.php | 19 - .../src/Finder/RecursiveRegexFinder.php | 77 - .../src/Generator/ClassNameGenerator.php | 25 - .../Generator/ConcatenationFileBuilder.php | 39 - .../src/Generator/DiffGenerator.php | 162 - .../Exception/GeneratorException.php | 11 - .../Exception/InvalidTemplateSpecified.php | 27 - .../Generator/Exception/NoChangesDetected.php | 15 - .../migrations/src/Generator/FileBuilder.php | 19 - .../migrations/src/Generator/Generator.php | 157 - .../migrations/src/Generator/SqlGenerator.php | 103 - .../src/InlineParameterFormatter.php | 83 - .../src/Metadata/AvailableMigration.php | 31 - .../src/Metadata/AvailableMigrationsList.php | 86 - .../src/Metadata/AvailableMigrationsSet.php | 60 - .../src/Metadata/ExecutedMigration.php | 37 - .../src/Metadata/ExecutedMigrationsList.php | 87 - .../migrations/src/Metadata/MigrationPlan.php | 54 - .../src/Metadata/MigrationPlanList.php | 59 - .../src/Metadata/Storage/MetadataStorage.php | 21 - .../Storage/MetadataStorageConfiguration.php | 9 - .../Metadata/Storage/TableMetadataStorage.php | 304 - .../TableMetadataStorageConfiguration.php | 71 - .../migrations/src/MigrationsRepository.php | 18 - .../doctrine/migrations/src/Migrator.php | 19 - .../migrations/src/MigratorConfiguration.php | 88 - .../migrations/src/ParameterFormatter.php | 22 - .../src/Provider/DBALSchemaDiffProvider.php | 56 - .../src/Provider/EmptySchemaProvider.php | 28 - .../src/Provider/Exception/NoMappingFound.php | 15 - .../Provider/Exception/ProviderException.php | 11 - .../migrations/src/Provider/LazySchema.php | 14 - .../src/Provider/LazySchemaDiffProvider.php | 88 - .../src/Provider/OrmSchemaProvider.php | 41 - .../src/Provider/SchemaDiffProvider.php | 23 - .../src/Provider/SchemaProvider.php | 16 - .../src/Provider/StubSchemaProvider.php | 26 - .../src/Query/Exception/InvalidArguments.php | 23 - .../doctrine/migrations/src/Query/Query.php | 52 - .../doctrine/migrations/src/QueryWriter.php | 22 - .../vendor/doctrine/migrations/src/Rollup.php | 48 - .../doctrine/migrations/src/SchemaDumper.php | 169 - .../src/Tools/BooleanStringFormatter.php | 27 - .../migrations/src/Tools/BytesFormatter.php | 27 - .../Tools/Console/Command/CurrentCommand.php | 56 - .../src/Tools/Console/Command/DiffCommand.php | 203 - .../Tools/Console/Command/DoctrineCommand.php | 189 - .../Console/Command/DumpSchemaCommand.php | 144 - .../Tools/Console/Command/ExecuteCommand.php | 178 - .../Tools/Console/Command/GenerateCommand.php | 71 - .../Tools/Console/Command/LatestCommand.php | 53 - .../src/Tools/Console/Command/ListCommand.php | 70 - .../Tools/Console/Command/MigrateCommand.php | 308 - .../Tools/Console/Command/RollupCommand.php | 63 - .../Tools/Console/Command/StatusCommand.php | 42 - .../Console/Command/SyncMetadataCommand.php | 44 - .../Tools/Console/Command/UpToDateCommand.php | 111 - .../Tools/Console/Command/VersionCommand.php | 260 - ...nsoleInputMigratorConfigurationFactory.php | 85 - .../src/Tools/Console/ConsoleRunner.php | 154 - .../Console/Exception/ConsoleException.php | 11 - .../Exception/DependenciesNotSatisfied.php | 15 - .../Exception/DirectoryDoesNotExist.php | 17 - .../Exception/FileTypeNotSupported.php | 15 - .../Console/Exception/InvalidOptionUsage.php | 15 - .../SchemaDumpRequiresNoMigrations.php | 20 - .../Exception/VersionAlreadyExists.php | 18 - .../Console/Exception/VersionDoesNotExist.php | 18 - .../Console/Helper/ConfigurationHelper.php | 18 - .../Helper/MigrationDirectoryHelper.php | 59 - .../Helper/MigrationStatusInfosHelper.php | 205 - .../InvalidAllOrNothingConfiguration.php | 16 - .../Console/MigratorConfigurationFactory.php | 13 - .../src/Tools/TransactionHelper.php | 83 - .../migrations/src/Version/AliasResolver.php | 28 - .../src/Version/AlphabeticalComparator.php | 15 - .../migrations/src/Version/Comparator.php | 10 - .../CurrentMigrationStatusCalculator.php | 38 - .../migrations/src/Version/DbalExecutor.php | 324 - .../src/Version/DbalMigrationFactory.php | 31 - .../src/Version/DefaultAliasResolver.php | 115 - .../migrations/src/Version/Direction.php | 23 - .../src/Version/ExecutionResult.php | 155 - .../migrations/src/Version/Executor.php | 21 - .../src/Version/MigrationFactory.php | 15 - .../src/Version/MigrationPlanCalculator.php | 25 - .../src/Version/MigrationStatusCalculator.php | 19 - .../Version/SortedMigrationPlanCalculator.php | 144 - .../doctrine/migrations/src/Version/State.php | 35 - .../migrations/src/Version/Version.php | 24 - .../priceservice/vendor/doctrine/orm/LICENSE | 19 - .../vendor/doctrine/orm/README.md | 38 - .../vendor/doctrine/orm/SECURITY.md | 17 - .../vendor/doctrine/orm/UPGRADE.md | 2458 ------- .../vendor/doctrine/orm/composer.json | 68 - .../vendor/doctrine/orm/doctrine-mapping.xsd | 590 -- .../vendor/doctrine/orm/phpstan-dbal3.neon | 89 - .../vendor/doctrine/orm/src/AbstractQuery.php | 1116 --- .../vendor/doctrine/orm/src/Cache.php | 106 - .../orm/src/Cache/AssociationCacheEntry.php | 30 - .../orm/src/Cache/CacheConfiguration.php | 60 - .../doctrine/orm/src/Cache/CacheEntry.php | 16 - .../doctrine/orm/src/Cache/CacheException.php | 26 - .../doctrine/orm/src/Cache/CacheFactory.php | 64 - .../doctrine/orm/src/Cache/CacheKey.php | 16 - .../orm/src/Cache/CollectionCacheEntry.php | 25 - .../orm/src/Cache/CollectionCacheKey.php | 42 - .../orm/src/Cache/CollectionHydrator.php | 21 - .../orm/src/Cache/ConcurrentRegion.php | 36 - .../doctrine/orm/src/Cache/DefaultCache.php | 245 - .../orm/src/Cache/DefaultCacheFactory.php | 189 - .../src/Cache/DefaultCollectionHydrator.php | 75 - .../orm/src/Cache/DefaultEntityHydrator.php | 176 - .../orm/src/Cache/DefaultQueryCache.php | 418 -- .../orm/src/Cache/EntityCacheEntry.php | 50 - .../doctrine/orm/src/Cache/EntityCacheKey.php | 38 - .../doctrine/orm/src/Cache/EntityHydrator.php | 28 - .../src/Cache/Exception/CacheException.php | 14 - .../CannotUpdateReadOnlyCollection.php | 19 - .../Exception/CannotUpdateReadOnlyEntity.php | 15 - .../Cache/Exception/FeatureNotImplemented.php | 28 - .../Cache/Exception/NonCacheableEntity.php | 18 - .../NonCacheableEntityAssociation.php | 19 - .../vendor/doctrine/orm/src/Cache/Lock.php | 25 - .../doctrine/orm/src/Cache/LockException.php | 14 - .../orm/src/Cache/Logging/CacheLogger.php | 60 - .../src/Cache/Logging/CacheLoggerChain.php | 94 - .../Cache/Logging/StatisticsCacheLogger.php | 174 - .../src/Cache/Persister/CachedPersister.php | 25 - .../AbstractCollectionPersister.php | 174 - .../Collection/CachedCollectionPersister.php | 36 - ...rictReadWriteCachedCollectionPersister.php | 74 - .../ReadOnlyCachedCollectionPersister.php | 24 - .../ReadWriteCachedCollectionPersister.php | 103 - .../Entity/AbstractEntityPersister.php | 564 -- .../Entity/CachedEntityPersister.php | 20 - ...onStrictReadWriteCachedEntityPersister.php | 85 - .../Entity/ReadOnlyCachedEntityPersister.php | 19 - .../Entity/ReadWriteCachedEntityPersister.php | 105 - .../doctrine/orm/src/Cache/QueryCache.php | 28 - .../orm/src/Cache/QueryCacheEntry.php | 29 - .../doctrine/orm/src/Cache/QueryCacheKey.php | 23 - .../orm/src/Cache/QueryCacheValidator.php | 16 - .../vendor/doctrine/orm/src/Cache/Region.php | 73 - .../orm/src/Cache/Region/DefaultRegion.php | 113 - .../orm/src/Cache/Region/FileLockRegion.php | 194 - .../src/Cache/Region/UpdateTimestampCache.php | 20 - .../orm/src/Cache/RegionsConfiguration.php | 63 - .../orm/src/Cache/TimestampCacheEntry.php | 29 - .../orm/src/Cache/TimestampCacheKey.php | 17 - .../Cache/TimestampQueryCacheValidator.php | 38 - .../orm/src/Cache/TimestampRegion.php | 18 - .../vendor/doctrine/orm/src/Configuration.php | 736 -- .../src/Decorator/EntityManagerDecorator.php | 174 - .../vendor/doctrine/orm/src/EntityManager.php | 635 -- .../orm/src/EntityManagerInterface.php | 241 - .../orm/src/EntityNotFoundException.php | 46 - .../doctrine/orm/src/EntityRepository.php | 237 - .../orm/src/Event/ListenersInvoker.php | 98 - .../src/Event/LoadClassMetadataEventArgs.php | 25 - .../OnClassMetadataNotFoundEventArgs.php | 49 - .../orm/src/Event/OnClearEventArgs.php | 19 - .../orm/src/Event/OnFlushEventArgs.php | 19 - .../orm/src/Event/PostFlushEventArgs.php | 19 - .../orm/src/Event/PostLoadEventArgs.php | 13 - .../orm/src/Event/PostPersistEventArgs.php | 13 - .../orm/src/Event/PostRemoveEventArgs.php | 13 - .../orm/src/Event/PostUpdateEventArgs.php | 13 - .../orm/src/Event/PreFlushEventArgs.php | 19 - .../orm/src/Event/PrePersistEventArgs.php | 13 - .../orm/src/Event/PreRemoveEventArgs.php | 13 - .../orm/src/Event/PreUpdateEventArgs.php | 100 - .../vendor/doctrine/orm/src/Events.php | 123 - .../src/Exception/ConfigurationException.php | 9 - .../src/Exception/DuplicateFieldException.php | 17 - .../EntityIdentityCollisionException.php | 39 - .../orm/src/Exception/EntityManagerClosed.php | 15 - .../src/Exception/EntityMissingAssignedId.php | 20 - .../src/Exception/InvalidEntityRepository.php | 18 - .../src/Exception/InvalidHydrationMode.php | 17 - .../orm/src/Exception/ManagerException.php | 11 - .../src/Exception/MissingIdentifierField.php | 21 - .../MissingMappingDriverImplementation.php | 18 - .../MultipleSelectorsFoundException.php | 26 - .../Exception/NoMatchingPropertyException.php | 17 - .../orm/src/Exception/NotSupported.php | 44 - .../orm/src/Exception/ORMException.php | 11 - .../orm/src/Exception/PersisterException.php | 11 - .../orm/src/Exception/RepositoryException.php | 13 - .../orm/src/Exception/SchemaToolException.php | 11 - .../Exception/UnexpectedAssociationValue.php | 27 - .../UnrecognizedIdentifierFields.php | 23 - .../orm/src/Id/AbstractIdGenerator.php | 28 - .../doctrine/orm/src/Id/AssignedGenerator.php | 45 - .../src/Id/BigIntegerIdentityGenerator.php | 25 - .../doctrine/orm/src/Id/IdentityGenerator.php | 25 - .../doctrine/orm/src/Id/SequenceGenerator.php | 112 - .../Internal/Hydration/AbstractHydrator.php | 605 -- .../src/Internal/Hydration/ArrayHydrator.php | 269 - .../Internal/Hydration/HydrationException.php | 72 - .../src/Internal/Hydration/ObjectHydrator.php | 598 -- .../Hydration/ScalarColumnHydrator.php | 34 - .../src/Internal/Hydration/ScalarHydrator.php | 35 - .../Hydration/SimpleObjectHydrator.php | 184 - .../Hydration/SingleScalarHydrator.php | 40 - .../src/Internal/HydrationCompleteHandler.php | 64 - .../src/Internal/NoUnknownNamedArguments.php | 55 - .../orm/src/Internal/SQLResultCasing.php | 30 - .../Internal/StronglyConnectedComponents.php | 159 - .../orm/src/Internal/TopologicalSort.php | 155 - .../CycleDetectedException.php | 47 - .../src/Internal/UnitOfWork/InsertBatch.php | 79 - .../orm/src/LazyCriteriaCollection.php | 96 - .../orm/src/Mapping/AnsiQuoteStrategy.php | 76 - .../src/Mapping/ArrayAccessImplementation.php | 70 - .../orm/src/Mapping/AssociationMapping.php | 365 - .../orm/src/Mapping/AssociationOverride.php | 51 - .../orm/src/Mapping/AssociationOverrides.php | 38 - .../orm/src/Mapping/AttributeOverride.php | 15 - .../orm/src/Mapping/AttributeOverrides.php | 38 - .../Mapping/Builder/AssociationBuilder.php | 171 - .../Mapping/Builder/ClassMetadataBuilder.php | 426 -- .../src/Mapping/Builder/EmbeddedBuilder.php | 46 - .../Mapping/Builder/EntityListenerBuilder.php | 55 - .../orm/src/Mapping/Builder/FieldBuilder.php | 255 - .../Builder/ManyToManyAssociationBuilder.php | 73 - .../Builder/OneToManyAssociationBuilder.php | 46 - .../vendor/doctrine/orm/src/Mapping/Cache.php | 19 - .../orm/src/Mapping/ChainTypedFieldMapper.php | 35 - .../orm/src/Mapping/ChangeTrackingPolicy.php | 17 - .../orm/src/Mapping/ClassMetadata.php | 2692 -------- .../orm/src/Mapping/ClassMetadataFactory.php | 745 -- .../doctrine/orm/src/Mapping/Column.php | 37 - .../orm/src/Mapping/CustomIdGenerator.php | 16 - .../Mapping/DefaultEntityListenerResolver.php | 40 - .../orm/src/Mapping/DefaultNamingStrategy.php | 68 - .../orm/src/Mapping/DefaultQuoteStrategy.php | 145 - .../src/Mapping/DefaultTypedFieldMapper.php | 95 - .../orm/src/Mapping/DiscriminatorColumn.php | 24 - .../Mapping/DiscriminatorColumnMapping.php | 83 - .../orm/src/Mapping/DiscriminatorMap.php | 17 - .../src/Mapping/Driver/AttributeDriver.php | 764 --- .../src/Mapping/Driver/AttributeReader.php | 146 - .../orm/src/Mapping/Driver/DatabaseDriver.php | 622 -- .../Driver/LoadMappingFileImplementation.php | 35 - .../Mapping/Driver/ReflectionBasedDriver.php | 49 - .../Driver/RepeatableAttributeCollection.php | 16 - .../Mapping/Driver/SimplifiedXmlDriver.php | 25 - .../orm/src/Mapping/Driver/XmlDriver.php | 945 --- .../doctrine/orm/src/Mapping/Embeddable.php | 12 - .../doctrine/orm/src/Mapping/Embedded.php | 17 - .../orm/src/Mapping/EmbeddedClassMapping.php | 93 - .../doctrine/orm/src/Mapping/Entity.php | 20 - .../src/Mapping/EntityListenerResolver.php | 30 - .../orm/src/Mapping/EntityListeners.php | 21 - .../Exception/InvalidCustomGenerator.php | 28 - .../Exception/UnknownGeneratorType.php | 16 - .../doctrine/orm/src/Mapping/FieldMapping.php | 173 - .../orm/src/Mapping/GeneratedValue.php | 17 - .../GetReflectionClassImplementation.php | 33 - .../orm/src/Mapping/HasLifecycleCallbacks.php | 12 - .../vendor/doctrine/orm/src/Mapping/Id.php | 12 - .../vendor/doctrine/orm/src/Mapping/Index.php | 26 - .../orm/src/Mapping/InheritanceType.php | 17 - .../orm/src/Mapping/InverseJoinColumn.php | 13 - .../orm/src/Mapping/InverseSideMapping.php | 30 - .../doctrine/orm/src/Mapping/JoinColumn.php | 13 - .../orm/src/Mapping/JoinColumnMapping.php | 78 - .../orm/src/Mapping/JoinColumnProperties.php | 22 - .../doctrine/orm/src/Mapping/JoinColumns.php | 14 - .../doctrine/orm/src/Mapping/JoinTable.php | 35 - .../orm/src/Mapping/JoinTableMapping.php | 115 - .../src/Mapping/LegacyReflectionFields.php | 170 - .../doctrine/orm/src/Mapping/ManyToMany.php | 27 - .../Mapping/ManyToManyAssociationMapping.php | 9 - .../Mapping/ManyToManyInverseSideMapping.php | 9 - .../Mapping/ManyToManyOwningSideMapping.php | 193 - .../doctrine/orm/src/Mapping/ManyToOne.php | 24 - .../Mapping/ManyToOneAssociationMapping.php | 12 - .../orm/src/Mapping/MappedSuperclass.php | 18 - .../orm/src/Mapping/MappingAttribute.php | 10 - .../orm/src/Mapping/MappingException.php | 700 -- .../orm/src/Mapping/NamingStrategy.php | 71 - .../doctrine/orm/src/Mapping/OneToMany.php | 26 - .../Mapping/OneToManyAssociationMapping.php | 75 - .../doctrine/orm/src/Mapping/OneToOne.php | 26 - .../Mapping/OneToOneAssociationMapping.php | 9 - .../Mapping/OneToOneInverseSideMapping.php | 9 - .../src/Mapping/OneToOneOwningSideMapping.php | 9 - .../doctrine/orm/src/Mapping/OrderBy.php | 17 - .../orm/src/Mapping/OwningSideMapping.php | 28 - .../doctrine/orm/src/Mapping/PostLoad.php | 12 - .../doctrine/orm/src/Mapping/PostPersist.php | 12 - .../doctrine/orm/src/Mapping/PostRemove.php | 12 - .../doctrine/orm/src/Mapping/PostUpdate.php | 12 - .../doctrine/orm/src/Mapping/PreFlush.php | 12 - .../doctrine/orm/src/Mapping/PrePersist.php | 12 - .../doctrine/orm/src/Mapping/PreRemove.php | 12 - .../doctrine/orm/src/Mapping/PreUpdate.php | 12 - .../EmbeddablePropertyAccessor.php | 53 - .../EnumPropertyAccessor.php | 85 - .../ObjectCastPropertyAccessor.php | 61 - .../PropertyAccessors/PropertyAccessor.php | 27 - .../PropertyAccessorFactory.php | 32 - .../RawValuePropertyAccessor.php | 63 - .../PropertyAccessors/ReadonlyAccessor.php | 53 - .../TypedNoDefaultPropertyAccessor.php | 69 - .../orm/src/Mapping/QuoteStrategy.php | 68 - .../Mapping/ReflectionEmbeddedProperty.php | 61 - .../src/Mapping/ReflectionEnumProperty.php | 87 - .../Mapping/ReflectionReadonlyProperty.php | 49 - .../orm/src/Mapping/SequenceGenerator.php | 18 - .../vendor/doctrine/orm/src/Mapping/Table.php | 45 - .../src/Mapping/ToManyAssociationMapping.php | 16 - ...ToManyAssociationMappingImplementation.php | 69 - .../src/Mapping/ToManyInverseSideMapping.php | 10 - .../src/Mapping/ToManyOwningSideMapping.php | 10 - .../src/Mapping/ToOneAssociationMapping.php | 9 - .../src/Mapping/ToOneInverseSideMapping.php | 52 - .../src/Mapping/ToOneOwningSideMapping.php | 216 - .../orm/src/Mapping/TypedFieldMapper.php | 20 - .../src/Mapping/UnderscoreNamingStrategy.php | 108 - .../orm/src/Mapping/UniqueConstraint.php | 24 - .../doctrine/orm/src/Mapping/Version.php | 12 - .../vendor/doctrine/orm/src/NativeQuery.php | 76 - .../doctrine/orm/src/NoResultException.php | 16 - .../orm/src/NonUniqueResultException.php | 18 - .../orm/src/ORMInvalidArgumentException.php | 195 - .../vendor/doctrine/orm/src/ORMSetup.php | 213 - .../orm/src/OptimisticLockException.php | 55 - .../doctrine/orm/src/PersistentCollection.php | 666 -- .../AbstractCollectionPersister.php | 50 - .../Collection/CollectionPersister.php | 59 - .../Collection/ManyToManyPersister.php | 770 --- .../Collection/OneToManyPersister.php | 270 - .../AbstractEntityInheritancePersister.php | 66 - .../Entity/BasicEntityPersister.php | 2140 ------ .../Entity/CachedPersisterContext.php | 60 - .../src/Persisters/Entity/EntityPersister.php | 300 - .../Entity/JoinedSubclassPersister.php | 602 -- .../Entity/SingleTablePersister.php | 167 - .../CantUseInOperatorOnCompositeKeys.php | 15 - .../Exception/InvalidOrientation.php | 15 - .../Exception/UnrecognizedField.php | 24 - ...MatchingAssociationFieldRequiresObject.php | 22 - .../orm/src/Persisters/PersisterException.php | 23 - .../src/Persisters/SqlExpressionVisitor.php | 79 - .../orm/src/Persisters/SqlValueVisitor.php | 88 - .../orm/src/PessimisticLockException.php | 16 - .../doctrine/orm/src/Proxy/Autoloader.php | 106 - .../Proxy/DefaultProxyClassNameResolver.php | 56 - .../doctrine/orm/src/Proxy/InternalProxy.php | 18 - .../doctrine/orm/src/Proxy/NotAProxyClass.php | 22 - .../doctrine/orm/src/Proxy/ProxyFactory.php | 513 -- .../vendor/doctrine/orm/src/Query.php | 719 -- .../orm/src/Query/AST/ASTException.php | 20 - .../orm/src/Query/AST/AggregateExpression.php | 23 - .../src/Query/AST/ArithmeticExpression.php | 34 - .../orm/src/Query/AST/ArithmeticFactor.php | 36 - .../orm/src/Query/AST/ArithmeticTerm.php | 25 - .../orm/src/Query/AST/BetweenExpression.php | 23 - .../orm/src/Query/AST/CoalesceExpression.php | 25 - .../Query/AST/CollectionMemberExpression.php | 27 - .../src/Query/AST/ComparisonExpression.php | 32 - .../src/Query/AST/ConditionalExpression.php | 25 - .../orm/src/Query/AST/ConditionalFactor.php | 26 - .../orm/src/Query/AST/ConditionalPrimary.php | 34 - .../orm/src/Query/AST/ConditionalTerm.php | 25 - .../orm/src/Query/AST/DeleteClause.php | 26 - .../orm/src/Query/AST/DeleteStatement.php | 26 - .../EmptyCollectionComparisonExpression.php | 26 - .../AST/EntityAsDtoArgumentExpression.php | 26 - .../orm/src/Query/AST/ExistsExpression.php | 26 - .../doctrine/orm/src/Query/AST/FromClause.php | 25 - .../src/Query/AST/Functions/AbsFunction.php | 37 - .../src/Query/AST/Functions/AvgFunction.php | 27 - .../Query/AST/Functions/BitAndFunction.php | 43 - .../src/Query/AST/Functions/BitOrFunction.php | 43 - .../Query/AST/Functions/ConcatFunction.php | 58 - .../src/Query/AST/Functions/CountFunction.php | 35 - .../AST/Functions/CurrentDateFunction.php | 29 - .../AST/Functions/CurrentTimeFunction.php | 29 - .../Functions/CurrentTimestampFunction.php | 29 - .../Query/AST/Functions/DateAddFunction.php | 83 - .../Query/AST/Functions/DateDiffFunction.php | 41 - .../Query/AST/Functions/DateSubFunction.php | 62 - .../src/Query/AST/Functions/FunctionNode.php | 32 - .../Query/AST/Functions/IdentityFunction.php | 90 - .../Query/AST/Functions/LengthFunction.php | 45 - .../Query/AST/Functions/LocateFunction.php | 62 - .../src/Query/AST/Functions/LowerFunction.php | 40 - .../src/Query/AST/Functions/MaxFunction.php | 27 - .../src/Query/AST/Functions/MinFunction.php | 27 - .../src/Query/AST/Functions/ModFunction.php | 43 - .../src/Query/AST/Functions/SizeFunction.php | 113 - .../src/Query/AST/Functions/SqrtFunction.php | 40 - .../Query/AST/Functions/SubstringFunction.php | 58 - .../src/Query/AST/Functions/SumFunction.php | 27 - .../src/Query/AST/Functions/TrimFunction.php | 119 - .../src/Query/AST/Functions/UpperFunction.php | 40 - .../src/Query/AST/GeneralCaseExpression.php | 27 - .../orm/src/Query/AST/GroupByClause.php | 20 - .../orm/src/Query/AST/HavingClause.php | 19 - .../AST/IdentificationVariableDeclaration.php | 28 - .../orm/src/Query/AST/InListExpression.php | 23 - .../src/Query/AST/InSubselectExpression.php | 22 - .../doctrine/orm/src/Query/AST/IndexBy.php | 26 - .../orm/src/Query/AST/InputParameter.php | 35 - .../src/Query/AST/InstanceOfExpression.php | 29 - .../doctrine/orm/src/Query/AST/Join.php | 34 - .../Query/AST/JoinAssociationDeclaration.php | 27 - .../AST/JoinAssociationPathExpression.php | 19 - .../src/Query/AST/JoinClassPathExpression.php | 26 - .../src/Query/AST/JoinVariableDeclaration.php | 24 - .../orm/src/Query/AST/LikeExpression.php | 29 - .../doctrine/orm/src/Query/AST/Literal.php | 26 - .../orm/src/Query/AST/NewObjectExpression.php | 33 - .../doctrine/orm/src/Query/AST/Node.php | 85 - .../Query/AST/NullComparisonExpression.php | 26 - .../orm/src/Query/AST/NullIfExpression.php | 24 - .../orm/src/Query/AST/OrderByClause.php | 25 - .../orm/src/Query/AST/OrderByItem.php | 38 - .../src/Query/AST/ParenthesisExpression.php | 22 - .../src/Query/AST/PartialObjectExpression.php | 15 - .../orm/src/Query/AST/PathExpression.php | 39 - .../AST/Phase2OptimizableConditional.php | 15 - .../src/Query/AST/QuantifiedExpression.php | 43 - .../Query/AST/RangeVariableDeclaration.php | 27 - .../orm/src/Query/AST/SelectClause.php | 27 - .../orm/src/Query/AST/SelectExpression.php | 28 - .../orm/src/Query/AST/SelectStatement.php | 32 - .../Query/AST/SimpleArithmeticExpression.php | 25 - .../src/Query/AST/SimpleCaseExpression.php | 28 - .../orm/src/Query/AST/SimpleSelectClause.php | 26 - .../src/Query/AST/SimpleSelectExpression.php | 27 - .../orm/src/Query/AST/SimpleWhenClause.php | 26 - .../doctrine/orm/src/Query/AST/Subselect.php | 32 - .../orm/src/Query/AST/SubselectFromClause.php | 25 - ...electIdentificationVariableDeclaration.php | 19 - .../orm/src/Query/AST/TypedExpression.php | 15 - .../orm/src/Query/AST/UpdateClause.php | 29 - .../doctrine/orm/src/Query/AST/UpdateItem.php | 26 - .../orm/src/Query/AST/UpdateStatement.php | 26 - .../doctrine/orm/src/Query/AST/WhenClause.php | 26 - .../orm/src/Query/AST/WhereClause.php | 24 - .../src/Query/Exec/AbstractSqlExecutor.php | 61 - .../Query/Exec/FinalizedSelectExecutor.php | 29 - .../Query/Exec/MultiTableDeleteExecutor.php | 131 - .../Query/Exec/MultiTableUpdateExecutor.php | 180 - .../Query/Exec/PreparedExecutorFinalizer.php | 27 - .../src/Query/Exec/SingleSelectExecutor.php | 31 - .../Query/Exec/SingleSelectSqlFinalizer.php | 58 - .../Exec/SingleTableDeleteUpdateExecutor.php | 40 - .../orm/src/Query/Exec/SqlFinalizer.php | 26 - .../vendor/doctrine/orm/src/Query/Expr.php | 615 -- .../doctrine/orm/src/Query/Expr/Andx.php | 32 - .../doctrine/orm/src/Query/Expr/Base.php | 96 - .../orm/src/Query/Expr/Comparison.php | 47 - .../doctrine/orm/src/Query/Expr/Composite.php | 50 - .../doctrine/orm/src/Query/Expr/From.php | 48 - .../doctrine/orm/src/Query/Expr/Func.php | 48 - .../doctrine/orm/src/Query/Expr/GroupBy.php | 25 - .../doctrine/orm/src/Query/Expr/Join.php | 77 - .../doctrine/orm/src/Query/Expr/Literal.php | 25 - .../doctrine/orm/src/Query/Expr/Math.php | 59 - .../doctrine/orm/src/Query/Expr/OrderBy.php | 60 - .../doctrine/orm/src/Query/Expr/Orx.php | 32 - .../doctrine/orm/src/Query/Expr/Select.php | 28 - .../orm/src/Query/Filter/FilterException.php | 23 - .../orm/src/Query/Filter/SQLFilter.php | 174 - .../orm/src/Query/FilterCollection.php | 260 - .../vendor/doctrine/orm/src/Query/Lexer.php | 150 - .../doctrine/orm/src/Query/OutputWalker.php | 27 - .../doctrine/orm/src/Query/Parameter.php | 89 - .../orm/src/Query/ParameterTypeInferer.php | 77 - .../vendor/doctrine/orm/src/Query/Parser.php | 3512 ---------- .../doctrine/orm/src/Query/ParserResult.php | 147 - .../vendor/doctrine/orm/src/Query/Printer.php | 64 - .../doctrine/orm/src/Query/QueryException.php | 164 - .../orm/src/Query/QueryExpressionVisitor.php | 180 - .../orm/src/Query/ResultSetMapping.php | 589 -- .../orm/src/Query/ResultSetMappingBuilder.php | 276 - .../orm/src/Query/SqlOutputWalker.php | 29 - .../doctrine/orm/src/Query/SqlWalker.php | 2330 ------- .../doctrine/orm/src/Query/TokenType.php | 93 - .../doctrine/orm/src/Query/TreeWalker.php | 44 - .../orm/src/Query/TreeWalkerAdapter.php | 90 - .../orm/src/Query/TreeWalkerChain.php | 86 - .../vendor/doctrine/orm/src/QueryBuilder.php | 1423 ---- .../vendor/doctrine/orm/src/QueryType.php | 12 - .../Repository/DefaultRepositoryFactory.php | 49 - .../Exception/InvalidFindByCall.php | 21 - .../Exception/InvalidMagicMethodCall.php | 27 - .../orm/src/Repository/RepositoryFactory.php | 26 - .../Tools/AttachEntityListenersListener.php | 69 - .../Console/ApplicationCompatibility.php | 28 - .../Command/AbstractEntityManagerCommand.php | 25 - .../ClearCache/CollectionRegionCommand.php | 119 - .../ClearCache/EntityRegionCommand.php | 110 - .../Command/ClearCache/MetadataCommand.php | 52 - .../Command/ClearCache/QueryCommand.php | 54 - .../Command/ClearCache/QueryRegionCommand.php | 101 - .../Command/ClearCache/ResultCommand.php | 65 - .../Command/GenerateProxiesCommand.php | 107 - .../src/Tools/Console/Command/InfoCommand.php | 80 - .../Command/MappingDescribeCommand.php | 296 - .../Tools/Console/Command/RunDqlCommand.php | 118 - .../Command/SchemaTool/AbstractCommand.php | 39 - .../Command/SchemaTool/CreateCommand.php | 75 - .../Command/SchemaTool/DropCommand.php | 116 - .../Command/SchemaTool/UpdateCommand.php | 147 - .../Console/Command/ValidateSchemaCommand.php | 89 - .../orm/src/Tools/Console/ConsoleRunner.php | 93 - .../Tools/Console/EntityManagerProvider.php | 14 - .../ConnectionFromManagerProvider.php | 26 - .../SingleManagerProvider.php | 31 - .../UnknownManagerException.php | 23 - .../orm/src/Tools/Console/MetadataFilter.php | 92 - .../vendor/doctrine/orm/src/Tools/Debug.php | 158 - .../orm/src/Tools/DebugUnitOfWorkListener.php | 144 - .../Tools/Event/GenerateSchemaEventArgs.php | 33 - .../Event/GenerateSchemaTableEventArgs.php | 40 - .../Exception/MissingColumnException.php | 23 - .../orm/src/Tools/Exception/NotSupported.php | 16 - .../Tools/Pagination/CountOutputWalker.php | 125 - .../orm/src/Tools/Pagination/CountWalker.php | 72 - .../RowNumberOverFunctionNotEnabled.php | 16 - .../Pagination/LimitSubqueryOutputWalker.php | 580 -- .../Tools/Pagination/LimitSubqueryWalker.php | 155 - .../orm/src/Tools/Pagination/Paginator.php | 263 - .../src/Tools/Pagination/RootTypeWalker.php | 60 - .../Pagination/RowNumberOverFunction.php | 40 - .../src/Tools/Pagination/WhereInWalker.php | 116 - .../src/Tools/ResolveTargetEntityListener.php | 117 - .../doctrine/orm/src/Tools/SchemaTool.php | 997 --- .../orm/src/Tools/SchemaValidator.php | 441 -- .../doctrine/orm/src/Tools/ToolEvents.php | 23 - .../doctrine/orm/src/Tools/ToolsException.php | 24 - .../orm/src/TransactionRequiredException.php | 21 - .../orm/src/UnexpectedResultException.php | 15 - .../vendor/doctrine/orm/src/UnitOfWork.php | 3273 --------- .../HierarchyDiscriminatorResolver.php | 44 - .../orm/src/Utility/IdentifierFlattener.php | 83 - .../orm/src/Utility/LockSqlHelper.php | 35 - .../orm/src/Utility/PersisterHelper.php | 108 - .../vendor/doctrine/persistence/LICENSE | 19 - .../vendor/doctrine/persistence/README.md | 17 - .../vendor/doctrine/persistence/UPGRADE.md | 195 - .../vendor/doctrine/persistence/composer.json | 54 - .../Persistence/AbstractManagerRegistry.php | 218 - .../src/Persistence/ConnectionRegistry.php | 39 - .../Persistence/Event/LifecycleEventArgs.php | 40 - .../Event/LoadClassMetadataEventArgs.php | 48 - .../Persistence/Event/ManagerEventArgs.php | 32 - .../Persistence/Event/OnClearEventArgs.php | 34 - .../Persistence/Event/PreUpdateEventArgs.php | 89 - .../src/Persistence/ManagerRegistry.php | 82 - .../Mapping/AbstractClassMetadataFactory.php | 460 -- .../src/Persistence/Mapping/ClassMetadata.php | 109 - .../Mapping/ClassMetadataFactory.php | 56 - .../Mapping/Driver/ColocatedMappingDriver.php | 194 - .../Mapping/Driver/DefaultFileLocator.php | 156 - .../Persistence/Mapping/Driver/FileDriver.php | 182 - .../Mapping/Driver/FileLocator.php | 40 - .../Mapping/Driver/MappingDriver.php | 39 - .../Mapping/Driver/MappingDriverChain.php | 122 - .../Persistence/Mapping/Driver/PHPDriver.php | 43 - .../Mapping/Driver/StaticPHPDriver.php | 121 - .../Mapping/Driver/SymfonyFileLocator.php | 245 - .../Persistence/Mapping/MappingException.php | 80 - .../Mapping/ProxyClassNameResolver.php | 19 - .../Persistence/Mapping/ReflectionService.php | 64 - .../Mapping/RuntimeReflectionService.php | 97 - .../src/Persistence/NotifyPropertyChanged.php | 18 - .../src/Persistence/ObjectManager.php | 128 - .../Persistence/ObjectManagerDecorator.php | 88 - .../src/Persistence/ObjectRepository.php | 73 - .../Persistence/PropertyChangedListener.php | 22 - .../persistence/src/Persistence/Proxy.php | 33 - .../Reflection/EnumReflectionProperty.php | 138 - .../Reflection/RuntimeReflectionProperty.php | 63 - .../TypedNoDefaultReflectionProperty.php | 57 - .../doctrine/sql-formatter/CONTRIBUTING.md | 22 - .../vendor/doctrine/sql-formatter/LICENSE.txt | 21 - .../vendor/doctrine/sql-formatter/README.md | 137 - .../doctrine/sql-formatter/bin/sql-formatter | 30 - .../doctrine/sql-formatter/composer.json | 41 - .../sql-formatter/src/CliHighlighter.php | 77 - .../doctrine/sql-formatter/src/Cursor.php | 52 - .../sql-formatter/src/Highlighter.php | 58 - .../sql-formatter/src/HtmlHighlighter.php | 93 - .../sql-formatter/src/NullHighlighter.php | 28 - .../sql-formatter/src/SqlFormatter.php | 485 -- .../doctrine/sql-formatter/src/Token.php | 63 - .../doctrine/sql-formatter/src/Tokenizer.php | 930 --- .../vendor/monolog/monolog/CHANGELOG.md | 794 --- .../vendor/monolog/monolog/LICENSE | 19 - .../vendor/monolog/monolog/README.md | 135 - .../vendor/monolog/monolog/composer.json | 82 - .../Monolog/Attribute/AsMonologProcessor.php | 38 - .../Monolog/Attribute/WithMonologChannel.php | 29 - .../monolog/src/Monolog/DateTimeImmutable.php | 24 - .../monolog/src/Monolog/ErrorHandler.php | 279 - .../Monolog/Formatter/ChromePHPFormatter.php | 87 - .../Monolog/Formatter/ElasticaFormatter.php | 84 - .../Formatter/ElasticsearchFormatter.php | 86 - .../Monolog/Formatter/FlowdockFormatter.php | 106 - .../Monolog/Formatter/FluentdFormatter.php | 85 - .../Monolog/Formatter/FormatterInterface.php | 38 - .../Formatter/GelfMessageFormatter.php | 150 - .../Formatter/GoogleCloudLoggingFormatter.php | 40 - .../src/Monolog/Formatter/HtmlFormatter.php | 142 - .../src/Monolog/Formatter/JsonFormatter.php | 230 - .../src/Monolog/Formatter/LineFormatter.php | 313 - .../src/Monolog/Formatter/LogglyFormatter.php | 47 - .../Monolog/Formatter/LogmaticFormatter.php | 70 - .../Monolog/Formatter/LogstashFormatter.php | 100 - .../Monolog/Formatter/MongoDBFormatter.php | 159 - .../Monolog/Formatter/NormalizerFormatter.php | 353 - .../src/Monolog/Formatter/ScalarFormatter.php | 49 - .../src/Monolog/Formatter/SyslogFormatter.php | 65 - .../Monolog/Formatter/WildfireFormatter.php | 137 - .../src/Monolog/Handler/AbstractHandler.php | 104 - .../Handler/AbstractProcessingHandler.php | 60 - .../Monolog/Handler/AbstractSyslogHandler.php | 95 - .../src/Monolog/Handler/AmqpHandler.php | 170 - .../Monolog/Handler/BrowserConsoleHandler.php | 300 - .../src/Monolog/Handler/BufferHandler.php | 170 - .../src/Monolog/Handler/ChromePHPHandler.php | 186 - .../src/Monolog/Handler/CouchDBHandler.php | 97 - .../src/Monolog/Handler/CubeHandler.php | 167 - .../monolog/src/Monolog/Handler/Curl/Util.php | 68 - .../Monolog/Handler/DeduplicationHandler.php | 174 - .../Handler/DoctrineCouchDBHandler.php | 47 - .../src/Monolog/Handler/DynamoDbHandler.php | 80 - .../src/Monolog/Handler/ElasticaHandler.php | 143 - .../Monolog/Handler/ElasticsearchHandler.php | 238 - .../src/Monolog/Handler/ErrorLogHandler.php | 94 - .../Monolog/Handler/FallbackGroupHandler.php | 68 - .../src/Monolog/Handler/FilterHandler.php | 202 - .../ActivationStrategyInterface.php | 27 - .../ChannelLevelActivationStrategy.php | 69 - .../ErrorLevelActivationStrategy.php | 42 - .../Monolog/Handler/FingersCrossedHandler.php | 242 - .../src/Monolog/Handler/FirePHPHandler.php | 174 - .../src/Monolog/Handler/FleepHookHandler.php | 132 - .../src/Monolog/Handler/FlowdockHandler.php | 127 - .../Handler/FormattableHandlerInterface.php | 34 - .../Handler/FormattableHandlerTrait.php | 57 - .../src/Monolog/Handler/GelfHandler.php | 58 - .../src/Monolog/Handler/GroupHandler.php | 130 - .../monolog/src/Monolog/Handler/Handler.php | 62 - .../src/Monolog/Handler/HandlerInterface.php | 76 - .../src/Monolog/Handler/HandlerWrapper.php | 134 - .../src/Monolog/Handler/IFTTTHandler.php | 75 - .../src/Monolog/Handler/InsightOpsHandler.php | 74 - .../src/Monolog/Handler/LogEntriesHandler.php | 68 - .../src/Monolog/Handler/LogglyHandler.php | 156 - .../src/Monolog/Handler/LogmaticHandler.php | 98 - .../src/Monolog/Handler/MailHandler.php | 91 - .../src/Monolog/Handler/MandrillHandler.php | 83 - .../Handler/MissingExtensionException.php | 21 - .../src/Monolog/Handler/MongoDBHandler.php | 82 - .../Monolog/Handler/NativeMailerHandler.php | 179 - .../src/Monolog/Handler/NewRelicHandler.php | 180 - .../src/Monolog/Handler/NoopHandler.php | 42 - .../src/Monolog/Handler/NullHandler.php | 56 - .../src/Monolog/Handler/OverflowHandler.php | 139 - .../src/Monolog/Handler/PHPConsoleHandler.php | 303 - .../src/Monolog/Handler/ProcessHandler.php | 191 - .../Handler/ProcessableHandlerInterface.php | 43 - .../Handler/ProcessableHandlerTrait.php | 70 - .../src/Monolog/Handler/PsrHandler.php | 92 - .../src/Monolog/Handler/PushoverHandler.php | 246 - .../src/Monolog/Handler/RedisHandler.php | 94 - .../Monolog/Handler/RedisPubSubHandler.php | 65 - .../src/Monolog/Handler/RollbarHandler.php | 132 - .../Monolog/Handler/RotatingFileHandler.php | 218 - .../src/Monolog/Handler/SamplingHandler.php | 121 - .../src/Monolog/Handler/SendGridHandler.php | 95 - .../src/Monolog/Handler/Slack/SlackRecord.php | 381 - .../src/Monolog/Handler/SlackHandler.php | 267 - .../Monolog/Handler/SlackWebhookHandler.php | 128 - .../src/Monolog/Handler/SocketHandler.php | 436 -- .../src/Monolog/Handler/SqsHandler.php | 61 - .../src/Monolog/Handler/StreamHandler.php | 246 - .../Monolog/Handler/SymfonyMailerHandler.php | 109 - .../src/Monolog/Handler/SyslogHandler.php | 63 - .../Monolog/Handler/SyslogUdp/UdpSocket.php | 77 - .../src/Monolog/Handler/SyslogUdpHandler.php | 154 - .../Monolog/Handler/TelegramBotHandler.php | 297 - .../src/Monolog/Handler/TestHandler.php | 195 - .../Handler/WebRequestRecognizerTrait.php | 23 - .../Handler/WhatFailureGroupHandler.php | 80 - .../Monolog/Handler/ZendMonitorHandler.php | 90 - .../JsonSerializableDateTimeImmutable.php | 48 - .../monolog/monolog/src/Monolog/Level.php | 209 - .../monolog/monolog/src/Monolog/LogRecord.php | 127 - .../monolog/monolog/src/Monolog/Logger.php | 751 -- .../Processor/ClosureContextProcessor.php | 51 - .../src/Monolog/Processor/GitProcessor.php | 75 - .../Monolog/Processor/HostnameProcessor.php | 37 - .../Processor/IntrospectionProcessor.php | 126 - .../Processor/LoadAverageProcessor.php | 66 - .../Processor/MemoryPeakUsageProcessor.php | 39 - .../src/Monolog/Processor/MemoryProcessor.php | 60 - .../Processor/MemoryUsageProcessor.php | 39 - .../Monolog/Processor/MercurialProcessor.php | 80 - .../Monolog/Processor/ProcessIdProcessor.php | 32 - .../Monolog/Processor/ProcessorInterface.php | 27 - .../Processor/PsrLogMessageProcessor.php | 87 - .../src/Monolog/Processor/TagProcessor.php | 65 - .../src/Monolog/Processor/UidProcessor.php | 67 - .../src/Monolog/Processor/WebProcessor.php | 115 - .../monolog/monolog/src/Monolog/Registry.php | 133 - .../src/Monolog/ResettableInterface.php | 31 - .../monolog/src/Monolog/SignalHandler.php | 113 - .../src/Monolog/Test/MonologTestCase.php | 71 - .../monolog/src/Monolog/Test/TestCase.php | 23 - .../monolog/monolog/src/Monolog/Utils.php | 257 - .../nikic/php-parser/.php-cs-fixer.dist.php | 31 - .../vendor/nikic/php-parser/LICENSE | 29 - .../vendor/nikic/php-parser/Makefile | 10 - .../vendor/nikic/php-parser/README.md | 233 - .../vendor/nikic/php-parser/bin/php-parse | 206 - .../vendor/nikic/php-parser/composer.json | 43 - .../php-parser/lib/PhpParser/Builder.php | 12 - .../lib/PhpParser/Builder/ClassConst.php | 150 - .../lib/PhpParser/Builder/Class_.php | 151 - .../lib/PhpParser/Builder/Declaration.php | 50 - .../lib/PhpParser/Builder/EnumCase.php | 87 - .../lib/PhpParser/Builder/Enum_.php | 116 - .../lib/PhpParser/Builder/FunctionLike.php | 73 - .../lib/PhpParser/Builder/Function_.php | 67 - .../lib/PhpParser/Builder/Interface_.php | 94 - .../lib/PhpParser/Builder/Method.php | 147 - .../lib/PhpParser/Builder/Namespace_.php | 45 - .../lib/PhpParser/Builder/Param.php | 149 - .../lib/PhpParser/Builder/Property.php | 161 - .../lib/PhpParser/Builder/TraitUse.php | 65 - .../PhpParser/Builder/TraitUseAdaptation.php | 145 - .../lib/PhpParser/Builder/Trait_.php | 83 - .../php-parser/lib/PhpParser/Builder/Use_.php | 49 - .../lib/PhpParser/BuilderFactory.php | 375 - .../lib/PhpParser/BuilderHelpers.php | 333 - .../php-parser/lib/PhpParser/Comment.php | 207 - .../php-parser/lib/PhpParser/Comment/Doc.php | 6 - .../ConstExprEvaluationException.php | 6 - .../lib/PhpParser/ConstExprEvaluator.php | 234 - .../nikic/php-parser/lib/PhpParser/Error.php | 171 - .../php-parser/lib/PhpParser/ErrorHandler.php | 12 - .../lib/PhpParser/ErrorHandler/Collecting.php | 43 - .../lib/PhpParser/ErrorHandler/Throwing.php | 17 - .../lib/PhpParser/Internal/DiffElem.php | 31 - .../lib/PhpParser/Internal/Differ.php | 178 - .../Internal/PrintableNewAnonClassNode.php | 71 - .../lib/PhpParser/Internal/TokenPolyfill.php | 237 - .../lib/PhpParser/Internal/TokenStream.php | 271 - .../php-parser/lib/PhpParser/JsonDecoder.php | 108 - .../nikic/php-parser/lib/PhpParser/Lexer.php | 116 - .../lib/PhpParser/Lexer/Emulative.php | 226 - .../Lexer/TokenEmulator/AttributeEmulator.php | 49 - .../Lexer/TokenEmulator/EnumTokenEmulator.php | 26 - .../TokenEmulator/ExplicitOctalEmulator.php | 45 - .../Lexer/TokenEmulator/KeywordEmulator.php | 56 - .../TokenEmulator/MatchTokenEmulator.php | 19 - .../TokenEmulator/NullsafeTokenEmulator.php | 60 - .../ReadonlyFunctionTokenEmulator.php | 31 - .../TokenEmulator/ReadonlyTokenEmulator.php | 31 - .../Lexer/TokenEmulator/ReverseEmulator.php | 37 - .../Lexer/TokenEmulator/TokenEmulator.php | 30 - .../php-parser/lib/PhpParser/Modifiers.php | 69 - .../php-parser/lib/PhpParser/NameContext.php | 284 - .../nikic/php-parser/lib/PhpParser/Node.php | 146 - .../php-parser/lib/PhpParser/Node/Arg.php | 44 - .../lib/PhpParser/Node/ArrayItem.php | 43 - .../lib/PhpParser/Node/Attribute.php | 33 - .../lib/PhpParser/Node/AttributeGroup.php | 27 - .../lib/PhpParser/Node/ClosureUse.php | 36 - .../lib/PhpParser/Node/ComplexType.php | 13 - .../php-parser/lib/PhpParser/Node/Const_.php | 36 - .../lib/PhpParser/Node/DeclareItem.php | 37 - .../php-parser/lib/PhpParser/Node/Expr.php | 8 - .../lib/PhpParser/Node/Expr/ArrayDimFetch.php | 33 - .../lib/PhpParser/Node/Expr/ArrayItem.php | 3 - .../lib/PhpParser/Node/Expr/Array_.php | 34 - .../lib/PhpParser/Node/Expr/ArrowFunction.php | 84 - .../lib/PhpParser/Node/Expr/Assign.php | 33 - .../lib/PhpParser/Node/Expr/AssignOp.php | 29 - .../Node/Expr/AssignOp/BitwiseAnd.php | 11 - .../Node/Expr/AssignOp/BitwiseOr.php | 11 - .../Node/Expr/AssignOp/BitwiseXor.php | 11 - .../PhpParser/Node/Expr/AssignOp/Coalesce.php | 11 - .../PhpParser/Node/Expr/AssignOp/Concat.php | 11 - .../lib/PhpParser/Node/Expr/AssignOp/Div.php | 11 - .../PhpParser/Node/Expr/AssignOp/Minus.php | 11 - .../lib/PhpParser/Node/Expr/AssignOp/Mod.php | 11 - .../lib/PhpParser/Node/Expr/AssignOp/Mul.php | 11 - .../lib/PhpParser/Node/Expr/AssignOp/Plus.php | 11 - .../lib/PhpParser/Node/Expr/AssignOp/Pow.php | 11 - .../Node/Expr/AssignOp/ShiftLeft.php | 11 - .../Node/Expr/AssignOp/ShiftRight.php | 11 - .../lib/PhpParser/Node/Expr/AssignRef.php | 33 - .../lib/PhpParser/Node/Expr/BinaryOp.php | 37 - .../Node/Expr/BinaryOp/BitwiseAnd.php | 15 - .../Node/Expr/BinaryOp/BitwiseOr.php | 15 - .../Node/Expr/BinaryOp/BitwiseXor.php | 15 - .../Node/Expr/BinaryOp/BooleanAnd.php | 15 - .../Node/Expr/BinaryOp/BooleanOr.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Coalesce.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Concat.php | 15 - .../lib/PhpParser/Node/Expr/BinaryOp/Div.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Equal.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Greater.php | 15 - .../Node/Expr/BinaryOp/GreaterOrEqual.php | 15 - .../Node/Expr/BinaryOp/Identical.php | 15 - .../Node/Expr/BinaryOp/LogicalAnd.php | 15 - .../Node/Expr/BinaryOp/LogicalOr.php | 15 - .../Node/Expr/BinaryOp/LogicalXor.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Minus.php | 15 - .../lib/PhpParser/Node/Expr/BinaryOp/Mod.php | 15 - .../lib/PhpParser/Node/Expr/BinaryOp/Mul.php | 15 - .../PhpParser/Node/Expr/BinaryOp/NotEqual.php | 15 - .../Node/Expr/BinaryOp/NotIdentical.php | 15 - .../lib/PhpParser/Node/Expr/BinaryOp/Plus.php | 15 - .../lib/PhpParser/Node/Expr/BinaryOp/Pow.php | 15 - .../Node/Expr/BinaryOp/ShiftLeft.php | 15 - .../Node/Expr/BinaryOp/ShiftRight.php | 15 - .../PhpParser/Node/Expr/BinaryOp/Smaller.php | 15 - .../Node/Expr/BinaryOp/SmallerOrEqual.php | 15 - .../Node/Expr/BinaryOp/Spaceship.php | 15 - .../lib/PhpParser/Node/Expr/BitwiseNot.php | 29 - .../lib/PhpParser/Node/Expr/BooleanNot.php | 29 - .../lib/PhpParser/Node/Expr/CallLike.php | 35 - .../lib/PhpParser/Node/Expr/Cast.php | 25 - .../lib/PhpParser/Node/Expr/Cast/Array_.php | 11 - .../lib/PhpParser/Node/Expr/Cast/Bool_.php | 11 - .../lib/PhpParser/Node/Expr/Cast/Double.php | 16 - .../lib/PhpParser/Node/Expr/Cast/Int_.php | 11 - .../lib/PhpParser/Node/Expr/Cast/Object_.php | 11 - .../lib/PhpParser/Node/Expr/Cast/String_.php | 11 - .../lib/PhpParser/Node/Expr/Cast/Unset_.php | 11 - .../PhpParser/Node/Expr/ClassConstFetch.php | 36 - .../lib/PhpParser/Node/Expr/Clone_.php | 29 - .../lib/PhpParser/Node/Expr/Closure.php | 86 - .../lib/PhpParser/Node/Expr/ClosureUse.php | 3 - .../lib/PhpParser/Node/Expr/ConstFetch.php | 30 - .../lib/PhpParser/Node/Expr/Empty_.php | 29 - .../lib/PhpParser/Node/Expr/Error.php | 30 - .../lib/PhpParser/Node/Expr/ErrorSuppress.php | 29 - .../lib/PhpParser/Node/Expr/Eval_.php | 29 - .../lib/PhpParser/Node/Expr/Exit_.php | 33 - .../lib/PhpParser/Node/Expr/FuncCall.php | 38 - .../lib/PhpParser/Node/Expr/Include_.php | 38 - .../lib/PhpParser/Node/Expr/Instanceof_.php | 35 - .../lib/PhpParser/Node/Expr/Isset_.php | 29 - .../lib/PhpParser/Node/Expr/List_.php | 34 - .../lib/PhpParser/Node/Expr/Match_.php | 32 - .../lib/PhpParser/Node/Expr/MethodCall.php | 45 - .../lib/PhpParser/Node/Expr/New_.php | 40 - .../Node/Expr/NullsafeMethodCall.php | 45 - .../Node/Expr/NullsafePropertyFetch.php | 35 - .../lib/PhpParser/Node/Expr/PostDec.php | 29 - .../lib/PhpParser/Node/Expr/PostInc.php | 29 - .../lib/PhpParser/Node/Expr/PreDec.php | 29 - .../lib/PhpParser/Node/Expr/PreInc.php | 29 - .../lib/PhpParser/Node/Expr/Print_.php | 29 - .../lib/PhpParser/Node/Expr/PropertyFetch.php | 35 - .../lib/PhpParser/Node/Expr/ShellExec.php | 30 - .../lib/PhpParser/Node/Expr/StaticCall.php | 45 - .../Node/Expr/StaticPropertyFetch.php | 36 - .../lib/PhpParser/Node/Expr/Ternary.php | 37 - .../lib/PhpParser/Node/Expr/Throw_.php | 29 - .../lib/PhpParser/Node/Expr/UnaryMinus.php | 29 - .../lib/PhpParser/Node/Expr/UnaryPlus.php | 29 - .../lib/PhpParser/Node/Expr/Variable.php | 29 - .../lib/PhpParser/Node/Expr/YieldFrom.php | 29 - .../lib/PhpParser/Node/Expr/Yield_.php | 33 - .../lib/PhpParser/Node/FunctionLike.php | 40 - .../lib/PhpParser/Node/Identifier.php | 75 - .../PhpParser/Node/InterpolatedStringPart.php | 32 - .../lib/PhpParser/Node/IntersectionType.php | 27 - .../lib/PhpParser/Node/MatchArm.php | 30 - .../php-parser/lib/PhpParser/Node/Name.php | 269 - .../PhpParser/Node/Name/FullyQualified.php | 49 - .../lib/PhpParser/Node/Name/Relative.php | 49 - .../lib/PhpParser/Node/NullableType.php | 29 - .../php-parser/lib/PhpParser/Node/Param.php | 84 - .../lib/PhpParser/Node/PropertyItem.php | 37 - .../php-parser/lib/PhpParser/Node/Scalar.php | 6 - .../lib/PhpParser/Node/Scalar/DNumber.php | 3 - .../lib/PhpParser/Node/Scalar/Encapsed.php | 3 - .../Node/Scalar/EncapsedStringPart.php | 3 - .../lib/PhpParser/Node/Scalar/Float_.php | 78 - .../lib/PhpParser/Node/Scalar/Int_.php | 82 - .../Node/Scalar/InterpolatedString.php | 34 - .../lib/PhpParser/Node/Scalar/LNumber.php | 3 - .../lib/PhpParser/Node/Scalar/MagicConst.php | 27 - .../Node/Scalar/MagicConst/Class_.php | 15 - .../PhpParser/Node/Scalar/MagicConst/Dir.php | 15 - .../PhpParser/Node/Scalar/MagicConst/File.php | 15 - .../Node/Scalar/MagicConst/Function_.php | 15 - .../PhpParser/Node/Scalar/MagicConst/Line.php | 15 - .../Node/Scalar/MagicConst/Method.php | 15 - .../Node/Scalar/MagicConst/Namespace_.php | 15 - .../Node/Scalar/MagicConst/Trait_.php | 15 - .../lib/PhpParser/Node/Scalar/String_.php | 161 - .../lib/PhpParser/Node/StaticVar.php | 39 - .../php-parser/lib/PhpParser/Node/Stmt.php | 8 - .../lib/PhpParser/Node/Stmt/Block.php | 29 - .../lib/PhpParser/Node/Stmt/Break_.php | 29 - .../lib/PhpParser/Node/Stmt/Case_.php | 33 - .../lib/PhpParser/Node/Stmt/Catch_.php | 40 - .../lib/PhpParser/Node/Stmt/ClassConst.php | 77 - .../lib/PhpParser/Node/Stmt/ClassLike.php | 109 - .../lib/PhpParser/Node/Stmt/ClassMethod.php | 154 - .../lib/PhpParser/Node/Stmt/Class_.php | 94 - .../lib/PhpParser/Node/Stmt/Const_.php | 29 - .../lib/PhpParser/Node/Stmt/Continue_.php | 29 - .../PhpParser/Node/Stmt/DeclareDeclare.php | 3 - .../lib/PhpParser/Node/Stmt/Declare_.php | 34 - .../lib/PhpParser/Node/Stmt/Do_.php | 33 - .../lib/PhpParser/Node/Stmt/Echo_.php | 29 - .../lib/PhpParser/Node/Stmt/ElseIf_.php | 33 - .../lib/PhpParser/Node/Stmt/Else_.php | 29 - .../lib/PhpParser/Node/Stmt/EnumCase.php | 36 - .../lib/PhpParser/Node/Stmt/Enum_.php | 44 - .../lib/PhpParser/Node/Stmt/Expression.php | 32 - .../lib/PhpParser/Node/Stmt/Finally_.php | 29 - .../lib/PhpParser/Node/Stmt/For_.php | 47 - .../lib/PhpParser/Node/Stmt/Foreach_.php | 50 - .../lib/PhpParser/Node/Stmt/Function_.php | 81 - .../lib/PhpParser/Node/Stmt/Global_.php | 29 - .../lib/PhpParser/Node/Stmt/Goto_.php | 30 - .../lib/PhpParser/Node/Stmt/GroupUse.php | 41 - .../lib/PhpParser/Node/Stmt/HaltCompiler.php | 29 - .../lib/PhpParser/Node/Stmt/If_.php | 46 - .../lib/PhpParser/Node/Stmt/InlineHTML.php | 29 - .../lib/PhpParser/Node/Stmt/Interface_.php | 40 - .../lib/PhpParser/Node/Stmt/Label.php | 30 - .../lib/PhpParser/Node/Stmt/Namespace_.php | 37 - .../lib/PhpParser/Node/Stmt/Nop.php | 16 - .../lib/PhpParser/Node/Stmt/Property.php | 82 - .../PhpParser/Node/Stmt/PropertyProperty.php | 3 - .../lib/PhpParser/Node/Stmt/Return_.php | 29 - .../lib/PhpParser/Node/Stmt/StaticVar.php | 3 - .../lib/PhpParser/Node/Stmt/Static_.php | 30 - .../lib/PhpParser/Node/Stmt/Switch_.php | 33 - .../lib/PhpParser/Node/Stmt/TraitUse.php | 33 - .../Node/Stmt/TraitUseAdaptation.php | 12 - .../Node/Stmt/TraitUseAdaptation/Alias.php | 37 - .../Stmt/TraitUseAdaptation/Precedence.php | 33 - .../lib/PhpParser/Node/Stmt/Trait_.php | 34 - .../lib/PhpParser/Node/Stmt/TryCatch.php | 37 - .../lib/PhpParser/Node/Stmt/Unset_.php | 29 - .../lib/PhpParser/Node/Stmt/UseUse.php | 3 - .../lib/PhpParser/Node/Stmt/Use_.php | 47 - .../lib/PhpParser/Node/Stmt/While_.php | 33 - .../lib/PhpParser/Node/UnionType.php | 27 - .../php-parser/lib/PhpParser/Node/UseItem.php | 55 - .../lib/PhpParser/Node/VarLikeIdentifier.php | 16 - .../PhpParser/Node/VariadicPlaceholder.php | 27 - .../php-parser/lib/PhpParser/NodeAbstract.php | 178 - .../php-parser/lib/PhpParser/NodeDumper.php | 290 - .../php-parser/lib/PhpParser/NodeFinder.php | 90 - .../lib/PhpParser/NodeTraverser.php | 278 - .../lib/PhpParser/NodeTraverserInterface.php | 26 - .../php-parser/lib/PhpParser/NodeVisitor.php | 124 - .../PhpParser/NodeVisitor/CloningVisitor.php | 19 - .../NodeVisitor/CommentAnnotatingVisitor.php | 82 - .../PhpParser/NodeVisitor/FindingVisitor.php | 47 - .../NodeVisitor/FirstFindingVisitor.php | 49 - .../PhpParser/NodeVisitor/NameResolver.php | 262 - .../NodeVisitor/NodeConnectingVisitor.php | 51 - .../NodeVisitor/ParentConnectingVisitor.php | 38 - .../lib/PhpParser/NodeVisitorAbstract.php | 24 - .../nikic/php-parser/lib/PhpParser/Parser.php | 24 - .../php-parser/lib/PhpParser/Parser/Php7.php | 2699 -------- .../php-parser/lib/PhpParser/Parser/Php8.php | 2717 -------- .../lib/PhpParser/ParserAbstract.php | 1241 ---- .../lib/PhpParser/ParserFactory.php | 42 - .../php-parser/lib/PhpParser/PhpVersion.php | 164 - .../lib/PhpParser/PrettyPrinter.php | 51 - .../lib/PhpParser/PrettyPrinter/Standard.php | 1177 ---- .../lib/PhpParser/PrettyPrinterAbstract.php | 1655 ----- .../nikic/php-parser/lib/PhpParser/Token.php | 18 - .../lib/PhpParser/compatibility_tokens.php | 56 - .../nikic/php-parser/phpstan-baseline.neon | 236 - .../vendor/nikic/php-parser/phpstan.neon.dist | 8 - .../vendor/psr/cache/CHANGELOG.md | 16 - .../priceservice/vendor/psr/cache/LICENSE.txt | 19 - .../priceservice/vendor/psr/cache/README.md | 12 - .../vendor/psr/cache/composer.json | 25 - .../vendor/psr/cache/src/CacheException.php | 10 - .../psr/cache/src/CacheItemInterface.php | 105 - .../psr/cache/src/CacheItemPoolInterface.php | 138 - .../cache/src/InvalidArgumentException.php | 13 - .../vendor/psr/clock/CHANGELOG.md | 11 - .../priceservice/vendor/psr/clock/LICENSE | 19 - .../priceservice/vendor/psr/clock/README.md | 61 - .../vendor/psr/clock/composer.json | 21 - .../vendor/psr/clock/src/ClockInterface.php | 13 - .../vendor/psr/container/.gitignore | 3 - .../priceservice/vendor/psr/container/LICENSE | 21 - .../vendor/psr/container/README.md | 13 - .../vendor/psr/container/composer.json | 27 - .../src/ContainerExceptionInterface.php | 12 - .../psr/container/src/ContainerInterface.php | 36 - .../src/NotFoundExceptionInterface.php | 10 - .../vendor/psr/event-dispatcher/.editorconfig | 15 - .../vendor/psr/event-dispatcher/.gitignore | 2 - .../vendor/psr/event-dispatcher/LICENSE | 21 - .../vendor/psr/event-dispatcher/README.md | 6 - .../vendor/psr/event-dispatcher/composer.json | 26 - .../src/EventDispatcherInterface.php | 21 - .../src/ListenerProviderInterface.php | 19 - .../src/StoppableEventInterface.php | 26 - projects/priceservice/vendor/psr/log/LICENSE | 19 - .../priceservice/vendor/psr/log/README.md | 58 - .../priceservice/vendor/psr/log/composer.json | 26 - .../vendor/psr/log/src/AbstractLogger.php | 15 - .../psr/log/src/InvalidArgumentException.php | 7 - .../vendor/psr/log/src/LogLevel.php | 18 - .../psr/log/src/LoggerAwareInterface.php | 18 - .../vendor/psr/log/src/LoggerAwareTrait.php | 26 - .../vendor/psr/log/src/LoggerInterface.php | 125 - .../vendor/psr/log/src/LoggerTrait.php | 142 - .../vendor/psr/log/src/NullLogger.php | 30 - .../symfony/cache-contracts/CHANGELOG.md | 5 - .../cache-contracts/CacheInterface.php | 59 - .../symfony/cache-contracts/CacheTrait.php | 72 - .../cache-contracts/CallbackInterface.php | 32 - .../symfony/cache-contracts/ItemInterface.php | 65 - .../vendor/symfony/cache-contracts/LICENSE | 19 - .../NamespacedPoolInterface.php | 31 - .../vendor/symfony/cache-contracts/README.md | 9 - .../TagAwareCacheInterface.php | 38 - .../symfony/cache-contracts/composer.json | 35 - .../symfony/cache/Adapter/AbstractAdapter.php | 188 - .../cache/Adapter/AbstractTagAwareAdapter.php | 320 - .../cache/Adapter/AdapterInterface.php | 35 - .../symfony/cache/Adapter/ApcuAdapter.php | 110 - .../symfony/cache/Adapter/ArrayAdapter.php | 368 - .../symfony/cache/Adapter/ChainAdapter.php | 294 - .../cache/Adapter/CouchbaseBucketAdapter.php | 232 - .../Adapter/CouchbaseCollectionAdapter.php | 199 - .../cache/Adapter/DoctrineDbalAdapter.php | 413 -- .../cache/Adapter/FilesystemAdapter.php | 29 - .../Adapter/FilesystemTagAwareAdapter.php | 267 - .../cache/Adapter/MemcachedAdapter.php | 332 - .../symfony/cache/Adapter/NullAdapter.php | 105 - .../cache/Adapter/ParameterNormalizer.php | 35 - .../symfony/cache/Adapter/PdoAdapter.php | 388 -- .../symfony/cache/Adapter/PhpArrayAdapter.php | 389 -- .../symfony/cache/Adapter/PhpFilesAdapter.php | 318 - .../symfony/cache/Adapter/ProxyAdapter.php | 206 - .../symfony/cache/Adapter/Psr16Adapter.php | 71 - .../symfony/cache/Adapter/RedisAdapter.php | 25 - .../cache/Adapter/RedisTagAwareAdapter.php | 308 - .../symfony/cache/Adapter/TagAwareAdapter.php | 375 - .../Adapter/TagAwareAdapterInterface.php | 31 - .../cache/Adapter/TraceableAdapter.php | 262 - .../Adapter/TraceableTagAwareAdapter.php | 35 - .../vendor/symfony/cache/CHANGELOG.md | 132 - .../vendor/symfony/cache/CacheItem.php | 199 - .../DataCollector/CacheDataCollector.php | 185 - .../CacheCollectorPass.php | 78 - .../CachePoolClearerPass.php | 41 - .../DependencyInjection/CachePoolPass.php | 244 - .../CachePoolPrunerPass.php | 51 - .../cache/Exception/CacheException.php | 25 - .../Exception/InvalidArgumentException.php | 25 - .../cache/Exception/LogicException.php | 25 - .../priceservice/vendor/symfony/cache/LICENSE | 19 - .../vendor/symfony/cache/LockRegistry.php | 166 - .../cache/Marshaller/DefaultMarshaller.php | 98 - .../cache/Marshaller/DeflateMarshaller.php | 47 - .../cache/Marshaller/MarshallerInterface.php | 38 - .../cache/Marshaller/SodiumMarshaller.php | 74 - .../cache/Marshaller/TagAwareMarshaller.php | 83 - .../Messenger/EarlyExpirationDispatcher.php | 64 - .../Messenger/EarlyExpirationHandler.php | 85 - .../Messenger/EarlyExpirationMessage.php | 100 - .../symfony/cache/PruneableInterface.php | 20 - .../vendor/symfony/cache/Psr16Cache.php | 240 - .../vendor/symfony/cache/README.md | 19 - .../symfony/cache/ResettableInterface.php | 21 - .../cache/Traits/AbstractAdapterTrait.php | 380 - .../symfony/cache/Traits/ContractsTrait.php | 113 - .../cache/Traits/FilesystemCommonTrait.php | 197 - .../symfony/cache/Traits/FilesystemTrait.php | 113 - .../symfony/cache/Traits/ProxyTrait.php | 37 - .../symfony/cache/Traits/Redis5Proxy.php | 1228 ---- .../symfony/cache/Traits/Redis6Proxy.php | 1269 ---- .../symfony/cache/Traits/Redis6ProxyTrait.php | 81 - .../cache/Traits/RedisCluster5Proxy.php | 983 --- .../cache/Traits/RedisCluster6Proxy.php | 1139 --- .../cache/Traits/RedisCluster6ProxyTrait.php | 46 - .../cache/Traits/RedisClusterNodeProxy.php | 47 - .../cache/Traits/RedisClusterProxy.php | 23 - .../symfony/cache/Traits/RedisProxy.php | 23 - .../symfony/cache/Traits/RedisTrait.php | 684 -- .../cache/Traits/Relay/BgsaveTrait.php | 36 - .../symfony/cache/Traits/Relay/CopyTrait.php | 36 - .../cache/Traits/Relay/GeosearchTrait.php | 36 - .../cache/Traits/Relay/GetrangeTrait.php | 36 - .../symfony/cache/Traits/Relay/HsetTrait.php | 36 - .../symfony/cache/Traits/Relay/MoveTrait.php | 46 - .../Traits/Relay/NullableReturnTrait.php | 96 - .../cache/Traits/Relay/PfcountTrait.php | 36 - .../symfony/cache/Traits/RelayProxy.php | 1265 ---- .../symfony/cache/Traits/RelayProxyTrait.php | 147 - .../symfony/cache/Traits/ValueWrapper.php | 81 - .../vendor/symfony/cache/composer.json | 59 - .../vendor/symfony/clock/CHANGELOG.md | 20 - .../vendor/symfony/clock/Clock.php | 89 - .../vendor/symfony/clock/ClockAwareTrait.php | 41 - .../vendor/symfony/clock/ClockInterface.php | 24 - .../vendor/symfony/clock/DatePoint.php | 136 - .../priceservice/vendor/symfony/clock/LICENSE | 19 - .../vendor/symfony/clock/MockClock.php | 98 - .../vendor/symfony/clock/MonotonicClock.php | 93 - .../vendor/symfony/clock/NativeClock.php | 67 - .../vendor/symfony/clock/README.md | 47 - .../vendor/symfony/clock/Resources/now.php | 28 - .../clock/Test/ClockSensitiveTrait.php | 77 - .../vendor/symfony/clock/composer.json | 34 - .../symfony/config/Builder/ClassBuilder.php | 171 - .../config/Builder/ConfigBuilderGenerator.php | 600 -- .../ConfigBuilderGeneratorInterface.php | 27 - .../config/Builder/ConfigBuilderInterface.php | 30 - .../vendor/symfony/config/Builder/Method.php | 34 - .../symfony/config/Builder/Property.php | 86 - .../vendor/symfony/config/CHANGELOG.md | 153 - .../vendor/symfony/config/ConfigCache.php | 60 - .../symfony/config/ConfigCacheFactory.php | 44 - .../config/ConfigCacheFactoryInterface.php | 30 - .../symfony/config/ConfigCacheInterface.php | 47 - .../symfony/config/Definition/ArrayNode.php | 402 -- .../symfony/config/Definition/BaseNode.php | 542 -- .../symfony/config/Definition/BooleanNode.php | 49 - .../Builder/ArrayNodeDefinition.php | 516 -- .../Builder/BooleanNodeDefinition.php | 46 - .../Builder/BuilderAwareInterface.php | 27 - .../Definition/Builder/EnumNodeDefinition.php | 52 - .../config/Definition/Builder/ExprBuilder.php | 252 - .../Builder/FloatNodeDefinition.php | 30 - .../Builder/IntegerNodeDefinition.php | 30 - .../Definition/Builder/MergeBuilder.php | 61 - .../config/Definition/Builder/NodeBuilder.php | 204 - .../Definition/Builder/NodeDefinition.php | 336 - .../Builder/NodeParentInterface.php | 21 - .../Builder/NormalizationBuilder.php | 61 - .../Builder/NumericNodeDefinition.php | 67 - .../Builder/ParentNodeDefinitionInterface.php | 49 - .../Builder/ScalarNodeDefinition.php | 30 - .../config/Definition/Builder/TreeBuilder.php | 67 - .../Definition/Builder/ValidationBuilder.php | 44 - .../Builder/VariableNodeDefinition.php | 64 - .../Definition/ConfigurableInterface.php | 25 - .../config/Definition/Configuration.php | 45 - .../Definition/ConfigurationInterface.php | 29 - .../Configurator/DefinitionConfigurator.php | 47 - .../Definition/Dumper/XmlReferenceDumper.php | 299 - .../Definition/Dumper/YamlReferenceDumper.php | 254 - .../symfony/config/Definition/EnumNode.php | 96 - .../Exception/DuplicateKeyException.php | 22 - .../config/Definition/Exception/Exception.php | 21 - .../Exception/ForbiddenOverwriteException.php | 22 - .../InvalidConfigurationException.php | 52 - .../Exception/InvalidDefinitionException.php | 21 - .../Exception/InvalidTypeException.php | 21 - .../Exception/UnsetKeyException.php | 22 - .../symfony/config/Definition/FloatNode.php | 48 - .../symfony/config/Definition/IntegerNode.php | 43 - .../Loader/DefinitionFileLoader.php | 103 - .../config/Definition/NodeInterface.php | 77 - .../symfony/config/Definition/NumericNode.php | 58 - .../symfony/config/Definition/Processor.php | 89 - .../Definition/PrototypeNodeInterface.php | 27 - .../config/Definition/PrototypedArrayNode.php | 343 - .../symfony/config/Definition/ScalarNode.php | 61 - .../config/Definition/VariableNode.php | 128 - ...LoaderImportCircularReferenceException.php | 27 - .../FileLocatorFileNotFoundException.php | 37 - .../config/Exception/LoaderLoadException.php | 115 - .../vendor/symfony/config/FileLocator.php | 97 - .../symfony/config/FileLocatorInterface.php | 36 - .../vendor/symfony/config/LICENSE | 19 - .../config/Loader/DelegatingLoader.php | 44 - .../Loader/DirectoryAwareLoaderInterface.php | 22 - .../symfony/config/Loader/FileLoader.php | 188 - .../symfony/config/Loader/GlobFileLoader.php | 30 - .../vendor/symfony/config/Loader/Loader.php | 73 - .../symfony/config/Loader/LoaderInterface.php | 52 - .../symfony/config/Loader/LoaderResolver.php | 68 - .../config/Loader/LoaderResolverInterface.php | 27 - .../config/Loader/ParamConfigurator.php | 32 - .../vendor/symfony/config/README.md | 15 - .../Resource/ClassExistenceResource.php | 227 - .../config/Resource/ComposerResource.php | 64 - .../config/Resource/DirectoryResource.php | 96 - .../config/Resource/FileExistenceResource.php | 53 - .../symfony/config/Resource/FileResource.php | 60 - .../symfony/config/Resource/GlobResource.php | 249 - .../Resource/ReflectionClassResource.php | 206 - .../config/Resource/ResourceInterface.php | 31 - .../Resource/SelfCheckingResourceChecker.php | 46 - .../SelfCheckingResourceInterface.php | 28 - .../config/ResourceCheckerConfigCache.php | 181 - .../ResourceCheckerConfigCacheFactory.php | 41 - .../config/ResourceCheckerInterface.php | 45 - .../Util/Exception/InvalidXmlException.php | 22 - .../Util/Exception/XmlParsingException.php | 21 - .../vendor/symfony/config/Util/XmlUtils.php | 272 - .../vendor/symfony/config/composer.json | 42 - .../vendor/symfony/console/Application.php | 1331 ---- .../symfony/console/Attribute/AsCommand.php | 39 - .../vendor/symfony/console/CHANGELOG.md | 261 - .../console/CI/GithubActionReporter.php | 99 - .../vendor/symfony/console/Color.php | 133 - .../symfony/console/Command/Command.php | 725 -- .../console/Command/CompleteCommand.php | 223 - .../console/Command/DumpCompletionCommand.php | 161 - .../symfony/console/Command/HelpCommand.php | 82 - .../symfony/console/Command/LazyCommand.php | 207 - .../symfony/console/Command/ListCommand.php | 75 - .../symfony/console/Command/LockableTrait.php | 68 - .../Command/SignalableCommandInterface.php | 34 - .../console/Command/TraceableCommand.php | 356 - .../CommandLoader/CommandLoaderInterface.php | 38 - .../CommandLoader/ContainerCommandLoader.php | 55 - .../CommandLoader/FactoryCommandLoader.php | 54 - .../console/Completion/CompletionInput.php | 248 - .../Completion/CompletionSuggestions.php | 97 - .../Output/BashCompletionOutput.php | 33 - .../Output/CompletionOutputInterface.php | 25 - .../Output/FishCompletionOutput.php | 33 - .../Completion/Output/ZshCompletionOutput.php | 36 - .../symfony/console/Completion/Suggestion.php | 41 - .../vendor/symfony/console/ConsoleEvents.php | 72 - .../vendor/symfony/console/Cursor.php | 204 - .../DataCollector/CommandDataCollector.php | 234 - .../symfony/console/Debug/CliRequest.php | 70 - .../AddConsoleCommandPass.php | 134 - .../Descriptor/ApplicationDescription.php | 139 - .../symfony/console/Descriptor/Descriptor.php | 74 - .../Descriptor/DescriptorInterface.php | 27 - .../console/Descriptor/JsonDescriptor.php | 166 - .../console/Descriptor/MarkdownDescriptor.php | 173 - .../Descriptor/ReStructuredTextDescriptor.php | 272 - .../console/Descriptor/TextDescriptor.php | 317 - .../console/Descriptor/XmlDescriptor.php | 232 - .../console/Event/ConsoleCommandEvent.php | 54 - .../console/Event/ConsoleErrorEvent.php | 57 - .../symfony/console/Event/ConsoleEvent.php | 61 - .../console/Event/ConsoleSignalEvent.php | 56 - .../console/Event/ConsoleTerminateEvent.php | 50 - .../console/EventListener/ErrorListener.php | 101 - .../Exception/CommandNotFoundException.php | 43 - .../console/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 19 - .../Exception/InvalidOptionException.php | 21 - .../console/Exception/LogicException.php | 19 - .../Exception/MissingInputException.php | 21 - .../Exception/NamespaceNotFoundException.php | 21 - .../Exception/RunCommandFailedException.php | 29 - .../console/Exception/RuntimeException.php | 19 - .../console/Formatter/NullOutputFormatter.php | 51 - .../Formatter/NullOutputFormatterStyle.php | 54 - .../console/Formatter/OutputFormatter.php | 277 - .../Formatter/OutputFormatterInterface.php | 56 - .../Formatter/OutputFormatterStyle.php | 110 - .../OutputFormatterStyleInterface.php | 60 - .../Formatter/OutputFormatterStyleStack.php | 107 - .../WrappableOutputFormatterInterface.php | 27 - .../console/Helper/DebugFormatterHelper.php | 98 - .../console/Helper/DescriptorHelper.php | 93 - .../vendor/symfony/console/Helper/Dumper.php | 57 - .../console/Helper/FormatterHelper.php | 81 - .../vendor/symfony/console/Helper/Helper.php | 176 - .../console/Helper/HelperInterface.php | 39 - .../symfony/console/Helper/HelperSet.php | 77 - .../console/Helper/InputAwareHelper.php | 33 - .../symfony/console/Helper/OutputWrapper.php | 76 - .../symfony/console/Helper/ProcessHelper.php | 137 - .../symfony/console/Helper/ProgressBar.php | 627 -- .../console/Helper/ProgressIndicator.php | 235 - .../symfony/console/Helper/QuestionHelper.php | 600 -- .../console/Helper/SymfonyQuestionHelper.php | 109 - .../vendor/symfony/console/Helper/Table.php | 967 --- .../symfony/console/Helper/TableCell.php | 72 - .../symfony/console/Helper/TableCellStyle.php | 84 - .../symfony/console/Helper/TableRows.php | 30 - .../symfony/console/Helper/TableSeparator.php | 25 - .../symfony/console/Helper/TableStyle.php | 362 - .../symfony/console/Input/ArgvInput.php | 370 - .../symfony/console/Input/ArrayInput.php | 196 - .../vendor/symfony/console/Input/Input.php | 193 - .../symfony/console/Input/InputArgument.php | 154 - .../console/Input/InputAwareInterface.php | 28 - .../symfony/console/Input/InputDefinition.php | 416 -- .../symfony/console/Input/InputInterface.php | 150 - .../symfony/console/Input/InputOption.php | 255 - .../Input/StreamableInputInterface.php | 39 - .../symfony/console/Input/StringInput.php | 87 - .../vendor/symfony/console/LICENSE | 19 - .../symfony/console/Logger/ConsoleLogger.php | 119 - .../console/Messenger/RunCommandContext.php | 25 - .../console/Messenger/RunCommandMessage.php | 36 - .../Messenger/RunCommandMessageHandler.php | 48 - .../symfony/console/Output/AnsiColorMode.php | 106 - .../symfony/console/Output/BufferedOutput.php | 43 - .../symfony/console/Output/ConsoleOutput.php | 165 - .../console/Output/ConsoleOutputInterface.php | 33 - .../console/Output/ConsoleSectionOutput.php | 244 - .../symfony/console/Output/NullOutput.php | 104 - .../vendor/symfony/console/Output/Output.php | 155 - .../console/Output/OutputInterface.php | 111 - .../symfony/console/Output/StreamOutput.php | 125 - .../console/Output/TrimmedBufferOutput.php | 61 - .../console/Question/ChoiceQuestion.php | 177 - .../console/Question/ConfirmationQuestion.php | 57 - .../symfony/console/Question/Question.php | 291 - .../vendor/symfony/console/README.md | 36 - .../console/Resources/bin/hiddeninput.exe | Bin 9216 -> 0 bytes .../symfony/console/Resources/completion.bash | 94 - .../symfony/console/Resources/completion.fish | 29 - .../symfony/console/Resources/completion.zsh | 82 - .../console/SignalRegistry/SignalMap.php | 36 - .../console/SignalRegistry/SignalRegistry.php | 57 - .../console/SingleCommandApplication.php | 72 - .../symfony/console/Style/OutputStyle.php | 132 - .../symfony/console/Style/StyleInterface.php | 138 - .../symfony/console/Style/SymfonyStyle.php | 514 -- .../vendor/symfony/console/Terminal.php | 235 - .../console/Tester/ApplicationTester.php | 85 - .../Tester/CommandCompletionTester.php | 56 - .../symfony/console/Tester/CommandTester.php | 76 - .../Tester/Constraint/CommandIsSuccessful.php | 43 - .../symfony/console/Tester/TesterTrait.php | 178 - .../vendor/symfony/console/composer.json | 55 - .../symfony/dependency-injection/Alias.php | 108 - .../Argument/AbstractArgument.php | 41 - .../Argument/ArgumentInterface.php | 27 - .../Argument/BoundArgument.php | 56 - .../Argument/IteratorArgument.php | 40 - .../Argument/LazyClosure.php | 96 - .../Argument/ReferenceSetArgumentTrait.php | 60 - .../Argument/RewindableGenerator.php | 43 - .../Argument/ServiceClosureArgument.php | 46 - .../Argument/ServiceLocator.php | 48 - .../Argument/ServiceLocatorArgument.php | 51 - .../Argument/TaggedIteratorArgument.php | 92 - .../Attribute/AsAlias.php | 27 - .../Attribute/AsDecorator.php | 25 - .../Attribute/AsTaggedItem.php | 27 - .../Attribute/Autoconfigure.php | 35 - .../Attribute/AutoconfigureTag.php | 30 - .../Attribute/Autowire.php | 75 - .../Attribute/AutowireCallable.php | 50 - .../Attribute/AutowireDecorated.php | 17 - .../Attribute/AutowireIterator.php | 35 - .../Attribute/AutowireLocator.php | 82 - .../Attribute/AutowireServiceClosure.php | 27 - .../Attribute/Exclude.php | 22 - .../Attribute/MapDecorated.php | 22 - .../Attribute/TaggedIterator.php | 27 - .../Attribute/TaggedLocator.php | 27 - .../dependency-injection/Attribute/Target.php | 64 - .../dependency-injection/Attribute/When.php | 26 - .../symfony/dependency-injection/CHANGELOG.md | 371 - .../dependency-injection/ChildDefinition.php | 95 - .../Compiler/AbstractRecursivePass.php | 263 - .../AliasDeprecatedPublicServicesPass.php | 61 - .../Compiler/AnalyzeServiceReferencesPass.php | 205 - .../AttributeAutoconfigurationPass.php | 170 - .../Compiler/AutoAliasServicePass.php | 42 - .../Compiler/AutowireAsDecoratorPass.php | 46 - .../Compiler/AutowirePass.php | 746 -- .../Compiler/AutowireRequiredMethodsPass.php | 110 - .../AutowireRequiredPropertiesPass.php | 64 - .../Compiler/CheckArgumentsValidityPass.php | 118 - .../Compiler/CheckCircularReferencesPass.php | 95 - .../Compiler/CheckDefinitionValidityPass.php | 100 - ...xceptionOnInvalidReferenceBehaviorPass.php | 128 - .../Compiler/CheckReferenceValidityPass.php | 45 - .../Compiler/CheckTypeDeclarationsPass.php | 334 - .../Compiler/Compiler.php | 104 - .../Compiler/CompilerPassInterface.php | 29 - .../Compiler/DecoratorServicePass.php | 133 - .../Compiler/DefinitionErrorExceptionPass.php | 113 - .../Compiler/ExtensionCompilerPass.php | 37 - .../Compiler/InlineServiceDefinitionsPass.php | 230 - .../MergeExtensionConfigurationPass.php | 207 - .../Compiler/PassConfig.php | 287 - .../Compiler/PriorityTaggedServiceTrait.php | 176 - .../RegisterAutoconfigureAttributesPass.php | 86 - .../Compiler/RegisterEnvVarProcessorsPass.php | 78 - .../Compiler/RegisterReverseContainerPass.php | 65 - .../RegisterServiceSubscribersPass.php | 150 - .../RemoveAbstractDefinitionsPass.php | 35 - .../Compiler/RemoveBuildParametersPass.php | 48 - .../Compiler/RemovePrivateAliasesPass.php | 41 - .../Compiler/RemoveUnusedDefinitionsPass.php | 91 - .../ReplaceAliasByActualDefinitionPass.php | 103 - .../Compiler/ResolveBindingsPass.php | 271 - .../Compiler/ResolveChildDefinitionsPass.php | 201 - .../Compiler/ResolveClassPass.php | 40 - .../Compiler/ResolveDecoratorStackPass.php | 123 - .../Compiler/ResolveEnvPlaceholdersPass.php | 46 - .../Compiler/ResolveFactoryClassPass.php | 37 - .../Compiler/ResolveHotPathPass.php | 79 - .../ResolveInstanceofConditionalsPass.php | 178 - .../Compiler/ResolveInvalidReferencesPass.php | 136 - .../Compiler/ResolveNamedArgumentsPass.php | 137 - .../Compiler/ResolveNoPreloadPass.php | 93 - .../ResolveParameterPlaceHoldersPass.php | 104 - .../ResolveReferencesToAliasesPass.php | 83 - .../ResolveServiceSubscribersPass.php | 54 - .../ResolveTaggedIteratorArgumentPass.php | 42 - .../Compiler/ServiceLocatorTagPass.php | 137 - .../Compiler/ServiceReferenceGraph.php | 99 - .../Compiler/ServiceReferenceGraphEdge.php | 87 - .../Compiler/ServiceReferenceGraphNode.php | 114 - .../Compiler/ValidateEnvPlaceholdersPass.php | 140 - .../Config/ContainerParametersResource.php | 44 - .../ContainerParametersResourceChecker.php | 45 - .../dependency-injection/Container.php | 416 -- .../ContainerAwareInterface.php | 29 - .../ContainerAwareTrait.php | 41 - .../dependency-injection/ContainerBuilder.php | 1731 ----- .../ContainerInterface.php | 72 - .../dependency-injection/Definition.php | 813 --- .../dependency-injection/Dumper/Dumper.php | 29 - .../Dumper/DumperInterface.php | 25 - .../Dumper/GraphvizDumper.php | 249 - .../dependency-injection/Dumper/PhpDumper.php | 2408 ------- .../dependency-injection/Dumper/Preloader.php | 129 - .../dependency-injection/Dumper/XmlDumper.php | 432 -- .../Dumper/YamlDumper.php | 380 - .../EnvVarLoaderInterface.php | 25 - .../dependency-injection/EnvVarProcessor.php | 364 - .../EnvVarProcessorInterface.php | 38 - .../Exception/AutowiringFailedException.php | 75 - .../Exception/BadMethodCallException.php | 19 - .../Exception/EnvNotFoundException.php | 21 - .../Exception/EnvParameterException.php | 25 - .../Exception/ExceptionInterface.php | 24 - .../Exception/InvalidArgumentException.php | 21 - .../InvalidParameterTypeException.php | 35 - .../Exception/LogicException.php | 19 - .../Exception/OutOfBoundsException.php | 19 - .../ParameterCircularReferenceException.php | 37 - .../Exception/ParameterNotFoundException.php | 120 - .../Exception/RuntimeException.php | 21 - .../ServiceCircularReferenceException.php | 47 - .../Exception/ServiceNotFoundException.php | 76 - .../ExpressionLanguage.php | 37 - .../ExpressionLanguageProvider.php | 57 - .../Extension/AbstractExtension.php | 65 - .../ConfigurableExtensionInterface.php | 32 - .../ConfigurationExtensionInterface.php | 30 - .../Extension/Extension.php | 135 - .../Extension/ExtensionInterface.php | 56 - .../Extension/ExtensionTrait.php | 69 - .../Extension/PrependExtensionInterface.php | 24 - .../symfony/dependency-injection/LICENSE | 19 - .../Instantiator/InstantiatorInterface.php | 34 - .../Instantiator/LazyServiceInstantiator.php | 38 - .../Instantiator/RealServiceInstantiator.php | 28 - .../LazyProxy/PhpDumper/DumperInterface.php | 42 - .../LazyProxy/PhpDumper/LazyServiceDumper.php | 151 - .../LazyProxy/PhpDumper/NullDumper.php | 39 - .../LazyProxy/ProxyHelper.php | 95 - .../Loader/ClosureLoader.php | 43 - .../Configurator/AbstractConfigurator.php | 123 - .../AbstractServiceConfigurator.php | 115 - .../Loader/Configurator/AliasConfigurator.php | 31 - .../ClosureReferenceConfigurator.php | 16 - .../Configurator/ContainerConfigurator.php | 201 - .../Configurator/DefaultsConfigurator.php | 77 - .../Loader/Configurator/EnvConfigurator.php | 236 - .../Configurator/FromCallableConfigurator.php | 47 - .../InlineServiceConfigurator.php | 44 - .../Configurator/InstanceofConfigurator.php | 50 - .../Configurator/ParametersConfigurator.php | 53 - .../Configurator/PrototypeConfigurator.php | 90 - .../Configurator/ReferenceConfigurator.php | 66 - .../Configurator/ServiceConfigurator.php | 74 - .../Configurator/ServicesConfigurator.php | 192 - .../Configurator/Traits/AbstractTrait.php | 28 - .../Configurator/Traits/ArgumentTrait.php | 39 - .../Traits/AutoconfigureTrait.php | 31 - .../Configurator/Traits/AutowireTrait.php | 27 - .../Loader/Configurator/Traits/BindTrait.php | 42 - .../Loader/Configurator/Traits/CallTrait.php | 35 - .../Loader/Configurator/Traits/ClassTrait.php | 27 - .../Configurator/Traits/ConfiguratorTrait.php | 29 - .../Configurator/Traits/ConstructorTrait.php | 27 - .../Configurator/Traits/DecorateTrait.php | 34 - .../Configurator/Traits/DeprecateTrait.php | 35 - .../Configurator/Traits/FactoryTrait.php | 41 - .../Loader/Configurator/Traits/FileTrait.php | 27 - .../Configurator/Traits/FromCallableTrait.php | 64 - .../Loader/Configurator/Traits/LazyTrait.php | 32 - .../Configurator/Traits/ParentTrait.php | 46 - .../Configurator/Traits/PropertyTrait.php | 27 - .../Configurator/Traits/PublicTrait.php | 35 - .../Loader/Configurator/Traits/ShareTrait.php | 27 - .../Configurator/Traits/SyntheticTrait.php | 28 - .../Loader/Configurator/Traits/TagTrait.php | 47 - .../Loader/DirectoryLoader.php | 50 - .../Loader/FileLoader.php | 347 - .../Loader/GlobFileLoader.php | 36 - .../Loader/IniFileLoader.php | 98 - .../Loader/PhpFileLoader.php | 206 - .../Loader/XmlFileLoader.php | 889 --- .../Loader/YamlFileLoader.php | 986 --- .../schema/dic/services/services-1.0.xsd | 396 -- .../dependency-injection/Parameter.php | 32 - .../ParameterBag/ContainerBag.php | 42 - .../ParameterBag/ContainerBagInterface.php | 53 - .../EnvPlaceholderParameterBag.php | 158 - .../ParameterBag/FrozenParameterBag.php | 76 - .../ParameterBag/ParameterBag.php | 301 - .../ParameterBag/ParameterBagInterface.php | 100 - .../symfony/dependency-injection/README.md | 14 - .../dependency-injection/Reference.php | 42 - .../dependency-injection/ReverseContainer.php | 74 - .../dependency-injection/ServiceLocator.php | 154 - .../TaggedContainerInterface.php | 27 - .../dependency-injection/TypedReference.php | 57 - .../symfony/dependency-injection/Variable.php | 40 - .../dependency-injection/composer.json | 48 - .../deprecation-contracts/CHANGELOG.md | 5 - .../symfony/deprecation-contracts/LICENSE | 19 - .../symfony/deprecation-contracts/README.md | 26 - .../deprecation-contracts/composer.json | 35 - .../deprecation-contracts/function.php | 27 - .../ArgumentResolver/EntityValueResolver.php | 216 - .../doctrine-bridge/Attribute/MapEntity.php | 52 - .../symfony/doctrine-bridge/CHANGELOG.md | 172 - .../CacheWarmer/ProxyCacheWarmer.php | 71 - .../ContainerAwareEventManager.php | 233 - .../DataCollector/DoctrineDataCollector.php | 286 - .../DataCollector/ObjectParameter.php | 46 - .../DataFixtures/AddFixtureImplementation.php | 35 - .../DataFixtures/ContainerAwareLoader.php | 47 - .../AbstractDoctrineExtension.php | 486 -- .../CompilerPass/DoctrineValidationPass.php | 59 - ...gisterEventListenersAndSubscribersPass.php | 168 - .../CompilerPass/RegisterMappingsPass.php | 218 - .../CompilerPass/RegisterUidTypePass.php | 44 - .../Security/UserProvider/EntityFactory.php | 64 - .../Form/ChoiceList/DoctrineChoiceLoader.php | 107 - .../Form/ChoiceList/EntityLoaderInterface.php | 30 - .../Form/ChoiceList/IdReader.php | 109 - .../Form/ChoiceList/ORMQueryBuilderLoader.php | 102 - .../CollectionToArrayTransformer.php | 63 - .../Form/DoctrineOrmExtension.php | 39 - .../Form/DoctrineOrmTypeGuesser.php | 206 - .../MergeDoctrineCollectionListener.php | 55 - .../Form/Type/DoctrineType.php | 270 - .../doctrine-bridge/Form/Type/EntityType.php | 96 - .../IdGenerator/UlidGenerator.php | 43 - .../IdGenerator/UuidGenerator.php | 81 - .../vendor/symfony/doctrine-bridge/LICENSE | 19 - .../doctrine-bridge/Logger/DbalLogger.php | 91 - .../doctrine-bridge/ManagerRegistry.php | 78 - .../Messenger/AbstractDoctrineMiddleware.php | 49 - ...rineClearEntityManagerWorkerSubscriber.php | 61 - .../DoctrineCloseConnectionMiddleware.php | 38 - ...octrineOpenTransactionLoggerMiddleware.php | 57 - .../DoctrinePingConnectionMiddleware.php | 61 - .../DoctrineTransactionMiddleware.php | 56 - .../Middleware/Debug/Connection.php | 126 - .../Middleware/Debug/DBAL3/Connection.php | 133 - .../Middleware/Debug/DBAL3/Statement.php | 76 - .../Middleware/Debug/DebugDataHolder.php | 48 - .../Middleware/Debug/Driver.php | 55 - .../Middleware/Debug/Middleware.php | 36 - .../Middleware/Debug/Query.php | 113 - .../Middleware/Debug/Statement.php | 64 - .../PropertyInfo/DoctrineExtractor.php | 297 - .../vendor/symfony/doctrine-bridge/README.md | 13 - .../SchemaListener/AbstractSchemaListener.php | 52 - ...DoctrineDbalCacheAdapterSchemaListener.php | 39 - ...ctrineDbalCacheAdapterSchemaSubscriber.php | 39 - .../LockStoreSchemaListener.php | 40 - ...ssengerTransportDoctrineSchemaListener.php | 83 - ...engerTransportDoctrineSchemaSubscriber.php | 43 - .../PdoSessionHandlerSchemaListener.php | 38 - ...rMeTokenProviderDoctrineSchemaListener.php | 45 - ...eTokenProviderDoctrineSchemaSubscriber.php | 39 - .../RememberMe/DoctrineTokenProvider.php | 216 - .../Security/User/EntityUserProvider.php | 160 - .../Security/User/UserLoaderInterface.php | 35 - .../doctrine-bridge/Types/AbstractUidType.php | 118 - .../doctrine-bridge/Types/UlidType.php | 29 - .../doctrine-bridge/Types/UuidType.php | 29 - .../Validator/Constraints/UniqueEntity.php | 103 - .../Constraints/UniqueEntityValidator.php | 247 - .../Validator/DoctrineInitializer.php | 38 - .../Validator/DoctrineLoader.php | 145 - .../symfony/doctrine-bridge/composer.json | 75 - .../vendor/symfony/dotenv/CHANGELOG.md | 45 - .../symfony/dotenv/Command/DebugCommand.php | 226 - .../dotenv/Command/DotenvDumpCommand.php | 117 - .../vendor/symfony/dotenv/Dotenv.php | 565 -- .../dotenv/Exception/ExceptionInterface.php | 21 - .../dotenv/Exception/FormatException.php | 34 - .../Exception/FormatExceptionContext.php | 49 - .../dotenv/Exception/PathException.php | 25 - .../vendor/symfony/dotenv/LICENSE | 19 - .../vendor/symfony/dotenv/README.md | 36 - .../vendor/symfony/dotenv/composer.json | 36 - .../symfony/error-handler/BufferingLogger.php | 71 - .../vendor/symfony/error-handler/CHANGELOG.md | 40 - .../vendor/symfony/error-handler/Debug.php | 40 - .../error-handler/DebugClassLoader.php | 1277 ---- .../Error/ClassNotFoundError.php | 29 - .../error-handler/Error/FatalError.php | 83 - .../error-handler/Error/OutOfMemoryError.php | 16 - .../Error/UndefinedFunctionError.php | 29 - .../Error/UndefinedMethodError.php | 29 - .../ClassNotFoundErrorEnhancer.php | 183 - .../ErrorEnhancer/ErrorEnhancerInterface.php | 20 - .../UndefinedFunctionErrorEnhancer.php | 84 - .../UndefinedMethodErrorEnhancer.php | 66 - .../symfony/error-handler/ErrorHandler.php | 747 -- .../ErrorRenderer/CliErrorRenderer.php | 46 - .../ErrorRenderer/ErrorRendererInterface.php | 37 - .../ErrorRenderer/FileLinkFormatter.php | 115 - .../ErrorRenderer/HtmlErrorRenderer.php | 357 - .../ErrorRenderer/SerializerErrorRenderer.php | 81 - .../Exception/FlattenException.php | 440 -- .../Exception/SilencedErrorContext.php | 67 - .../error-handler/Internal/TentativeTypes.php | 1643 ----- .../vendor/symfony/error-handler/LICENSE | 19 - .../vendor/symfony/error-handler/README.md | 44 - .../Resources/assets/css/error.css | 4 - .../Resources/assets/css/exception.css | 359 - .../Resources/assets/css/exception_full.css | 128 - .../Resources/assets/images/chevron-right.svg | 1 - .../assets/images/favicon.png.base64 | 1 - .../Resources/assets/images/icon-book.svg | 1 - .../Resources/assets/images/icon-copy.svg | 1 - .../assets/images/icon-minus-square-o.svg | 1 - .../assets/images/icon-minus-square.svg | 1 - .../assets/images/icon-plus-square-o.svg | 1 - .../assets/images/icon-plus-square.svg | 1 - .../Resources/assets/images/icon-support.svg | 1 - .../assets/images/symfony-ghost.svg.php | 1 - .../Resources/assets/images/symfony-logo.svg | 1 - .../Resources/assets/js/exception.js | 286 - .../bin/extract-tentative-return-types.php | 84 - .../Resources/bin/patch-type-declarations | 98 - .../Resources/views/error.html.php | 21 - .../Resources/views/exception.html.php | 115 - .../Resources/views/exception_full.html.php | 42 - .../Resources/views/logs.html.php | 45 - .../Resources/views/trace.html.php | 43 - .../Resources/views/traces.html.php | 59 - .../Resources/views/traces_text.html.php | 43 - .../symfony/error-handler/ThrowableUtils.php | 37 - .../symfony/error-handler/composer.json | 42 - .../event-dispatcher-contracts/CHANGELOG.md | 5 - .../event-dispatcher-contracts/Event.php | 51 - .../EventDispatcherInterface.php | 33 - .../event-dispatcher-contracts/LICENSE | 19 - .../event-dispatcher-contracts/README.md | 9 - .../event-dispatcher-contracts/composer.json | 35 - .../Attribute/AsEventListener.php | 29 - .../symfony/event-dispatcher/CHANGELOG.md | 96 - .../Debug/TraceableEventDispatcher.php | 375 - .../Debug/WrappedListener.php | 144 - .../AddEventAliasesPass.php | 40 - .../RegisterListenersPass.php | 216 - .../event-dispatcher/EventDispatcher.php | 270 - .../EventDispatcherInterface.php | 75 - .../EventSubscriberInterface.php | 49 - .../symfony/event-dispatcher/GenericEvent.php | 158 - .../ImmutableEventDispatcher.php | 79 - .../vendor/symfony/event-dispatcher/LICENSE | 19 - .../vendor/symfony/event-dispatcher/README.md | 15 - .../symfony/event-dispatcher/composer.json | 47 - .../vendor/symfony/filesystem/CHANGELOG.md | 82 - .../Exception/ExceptionInterface.php | 21 - .../Exception/FileNotFoundException.php | 34 - .../filesystem/Exception/IOException.php | 36 - .../Exception/IOExceptionInterface.php | 25 - .../Exception/InvalidArgumentException.php | 19 - .../filesystem/Exception/RuntimeException.php | 19 - .../vendor/symfony/filesystem/Filesystem.php | 782 --- .../vendor/symfony/filesystem/LICENSE | 19 - .../vendor/symfony/filesystem/Path.php | 816 --- .../vendor/symfony/filesystem/README.md | 13 - .../vendor/symfony/filesystem/composer.json | 33 - .../vendor/symfony/finder/CHANGELOG.md | 103 - .../symfony/finder/Comparator/Comparator.php | 62 - .../finder/Comparator/DateComparator.php | 50 - .../finder/Comparator/NumberComparator.php | 78 - .../Exception/AccessDeniedException.php | 19 - .../Exception/DirectoryNotFoundException.php | 19 - .../vendor/symfony/finder/Finder.php | 859 --- .../vendor/symfony/finder/Gitignore.php | 91 - .../vendor/symfony/finder/Glob.php | 109 - .../finder/Iterator/CustomFilterIterator.php | 61 - .../Iterator/DateRangeFilterIterator.php | 58 - .../Iterator/DepthRangeFilterIterator.php | 48 - .../ExcludeDirectoryFilterIterator.php | 110 - .../Iterator/FileTypeFilterIterator.php | 53 - .../Iterator/FilecontentFilterIterator.php | 58 - .../Iterator/FilenameFilterIterator.php | 45 - .../symfony/finder/Iterator/LazyIterator.php | 32 - .../Iterator/MultiplePcreFilterIterator.php | 111 - .../finder/Iterator/PathFilterIterator.php | 56 - .../Iterator/RecursiveDirectoryIterator.php | 134 - .../Iterator/SizeRangeFilterIterator.php | 57 - .../finder/Iterator/SortableIterator.php | 103 - .../Iterator/VcsIgnoredFilterIterator.php | 173 - .../vendor/symfony/finder/LICENSE | 19 - .../vendor/symfony/finder/README.md | 14 - .../vendor/symfony/finder/SplFileInfo.php | 82 - .../vendor/symfony/finder/composer.json | 31 - .../priceservice/vendor/symfony/flex/LICENSE | 19 - .../vendor/symfony/flex/README.md | 10 - .../vendor/symfony/flex/composer.json | 35 - .../flex/src/Command/DumpEnvCommand.php | 147 - .../src/Command/InstallRecipesCommand.php | 182 - .../flex/src/Command/RecipesCommand.php | 344 - .../flex/src/Command/UpdateRecipesCommand.php | 415 -- .../vendor/symfony/flex/src/Configurator.php | 120 - .../src/Configurator/AbstractConfigurator.php | 131 - .../src/Configurator/AddLinesConfigurator.php | 274 - .../src/Configurator/BundlesConfigurator.php | 150 - .../ComposerCommandsConfigurator.php | 73 - .../ComposerScriptsConfigurator.php | 79 - .../Configurator/ContainerConfigurator.php | 164 - .../CopyFromPackageConfigurator.php | 168 - .../CopyFromRecipeConfigurator.php | 149 - .../DockerComposeConfigurator.php | 404 -- .../Configurator/DockerfileConfigurator.php | 125 - .../src/Configurator/DotenvConfigurator.php | 50 - .../flex/src/Configurator/EnvConfigurator.php | 295 - .../Configurator/GitignoreConfigurator.php | 105 - .../src/Configurator/MakefileConfigurator.php | 124 - .../vendor/symfony/flex/src/Downloader.php | 494 -- .../symfony/flex/src/Event/UpdateEvent.php | 45 - .../vendor/symfony/flex/src/Flex.php | 874 --- .../vendor/symfony/flex/src/GithubApi.php | 200 - .../symfony/flex/src/InformationOperation.php | 88 - .../vendor/symfony/flex/src/Lock.php | 89 - .../vendor/symfony/flex/src/Options.php | 142 - .../vendor/symfony/flex/src/PackageFilter.php | 155 - .../flex/src/PackageJsonSynchronizer.php | 423 -- .../symfony/flex/src/PackageResolver.php | 167 - .../vendor/symfony/flex/src/Path.php | 41 - .../vendor/symfony/flex/src/Recipe.php | 123 - .../vendor/symfony/flex/src/Response.php | 87 - .../symfony/flex/src/ScriptExecutor.php | 139 - .../vendor/symfony/flex/src/SymfonyBundle.php | 115 - .../symfony/flex/src/SymfonyPackInstaller.php | 22 - .../symfony/flex/src/Unpack/Operation.php | 49 - .../vendor/symfony/flex/src/Unpack/Result.php | 55 - .../vendor/symfony/flex/src/Unpacker.php | 213 - .../symfony/flex/src/Update/DiffHelper.php | 45 - .../symfony/flex/src/Update/RecipePatch.php | 52 - .../symfony/flex/src/Update/RecipePatcher.php | 259 - .../symfony/flex/src/Update/RecipeUpdate.php | 114 - .../symfony/framework-bundle/CHANGELOG.md | 618 -- .../AbstractPhpFileCacheWarmer.php | 87 - .../CacheWarmer/AnnotationsCacheWarmer.php | 117 - .../CachePoolClearerCacheWarmer.php | 56 - .../CacheWarmer/ConfigBuilderCacheWarmer.php | 110 - .../CacheWarmer/RouterCacheWarmer.php | 59 - .../CacheWarmer/SerializerCacheWarmer.php | 87 - .../CacheWarmer/TranslationsCacheWarmer.php | 63 - .../CacheWarmer/ValidatorCacheWarmer.php | 97 - .../framework-bundle/Command/AboutCommand.php | 132 - .../Command/AbstractConfigCommand.php | 195 - .../Command/AssetsInstallCommand.php | 271 - .../Command/BuildDebugContainerTrait.php | 71 - .../Command/CacheClearCommand.php | 254 - .../Command/CachePoolClearCommand.php | 144 - .../Command/CachePoolDeleteCommand.php | 90 - .../CachePoolInvalidateTagsCommand.php | 109 - .../Command/CachePoolListCommand.php | 58 - .../Command/CachePoolPruneCommand.php | 66 - .../Command/CacheWarmupCommand.php | 86 - .../Command/ConfigDebugCommand.php | 275 - .../Command/ConfigDumpReferenceCommand.php | 188 - .../Command/ContainerDebugCommand.php | 369 - .../Command/ContainerLintCommand.php | 114 - .../Command/DebugAutowiringCommand.php | 200 - .../Command/EventDispatcherDebugCommand.php | 163 - .../Command/RouterDebugCommand.php | 175 - .../Command/RouterMatchCommand.php | 121 - .../Command/SecretsDecryptToLocalCommand.php | 102 - .../SecretsEncryptFromLocalCommand.php | 77 - .../Command/SecretsGenerateKeysCommand.php | 124 - .../Command/SecretsListCommand.php | 105 - .../Command/SecretsRemoveCommand.php | 100 - .../Command/SecretsSetCommand.php | 147 - .../Command/TranslationDebugCommand.php | 410 -- .../Command/TranslationUpdateCommand.php | 446 -- .../Command/WorkflowDumpCommand.php | 161 - .../Command/XliffLintCommand.php | 57 - .../Command/YamlLintCommand.php | 56 - .../framework-bundle/Console/Application.php | 234 - .../Console/Descriptor/Descriptor.php | 363 - .../Console/Descriptor/JsonDescriptor.php | 457 -- .../Console/Descriptor/MarkdownDescriptor.php | 451 -- .../Console/Descriptor/TextDescriptor.php | 676 -- .../Console/Descriptor/XmlDescriptor.php | 608 -- .../Console/Helper/DescriptorHelper.php | 37 - .../Controller/AbstractController.php | 469 -- .../Controller/ControllerResolver.php | 42 - .../Controller/RedirectController.php | 191 - .../Controller/TemplateController.php | 75 - .../DataCollector/AbstractDataCollector.php | 30 - .../DataCollector/RouterDataCollector.php | 37 - .../TemplateAwareDataCollectorInterface.php | 22 - .../AddAnnotationsCachedReaderPass.php | 43 - .../Compiler/AddDebugLogProcessorPass.php | 52 - .../AddExpressionLanguageProvidersPass.php | 42 - .../Compiler/AssetsContextPass.php | 47 - .../ContainerBuilderDebugDumpPass.php | 42 - .../Compiler/DataCollectorTranslatorPass.php | 43 - .../Compiler/EnableLoggerDebugModePass.php | 44 - .../Compiler/ErrorLoggerCompilerPass.php | 37 - .../Compiler/LoggingTranslatorPass.php | 61 - .../Compiler/ProfilerPass.php | 64 - ...oveUnusedSessionMarshallingHandlerPass.php | 46 - .../TestServiceContainerRealRefPass.php | 70 - .../TestServiceContainerWeakRefPass.php | 61 - .../Compiler/TranslationUpdateCommandPass.php | 31 - .../Compiler/UnusedTagsPass.php | 143 - .../Compiler/WorkflowGuardListenerPass.php | 52 - .../DependencyInjection/Configuration.php | 2600 ------- .../FrameworkExtension.php | 3233 --------- .../VirtualRequestStackPass.php | 34 - .../EventListener/ConsoleProfilerListener.php | 162 - .../SuggestMissingPackageSubscriber.php | 79 - .../framework-bundle/FrameworkBundle.php | 216 - .../framework-bundle/HttpCache/HttpCache.php | 88 - .../Kernel/MicroKernelTrait.php | 227 - .../framework-bundle/KernelBrowser.php | 248 - .../vendor/symfony/framework-bundle/LICENSE | 19 - .../vendor/symfony/framework-bundle/README.md | 20 - .../Resources/bin/check-unused-known-tags.php | 23 - .../Resources/config/annotations.php | 71 - .../Resources/config/asset_mapper.php | 258 - .../Resources/config/assets.php | 85 - .../Resources/config/cache.php | 258 - .../Resources/config/cache_debug.php | 39 - .../Resources/config/collectors.php | 82 - .../Resources/config/console.php | 385 -- .../Resources/config/debug.php | 50 - .../Resources/config/debug_prod.php | 43 - .../Resources/config/error_renderer.php | 38 - .../framework-bundle/Resources/config/esi.php | 25 - .../Resources/config/form.php | 154 - .../Resources/config/form_csrf.php | 29 - .../Resources/config/form_debug.php | 38 - .../Resources/config/fragment_listener.php | 22 - .../Resources/config/fragment_renderer.php | 71 - .../Resources/config/html_sanitizer.php | 30 - .../Resources/config/http_client.php | 102 - .../Resources/config/http_client_debug.php | 25 - .../Resources/config/identity_translator.php | 24 - .../Resources/config/lock.php | 30 - .../Resources/config/mailer.php | 83 - .../Resources/config/mailer_debug.php | 27 - .../Resources/config/mailer_transports.php | 116 - .../Resources/config/mailer_webhook.php | 52 - .../Resources/config/messenger.php | 236 - .../Resources/config/messenger_debug.php | 25 - .../Resources/config/mime_type.php | 26 - .../Resources/config/notifier.php | 139 - .../Resources/config/notifier_debug.php | 22 - .../Resources/config/notifier_transports.php | 310 - .../Resources/config/notifier_webhook.php | 25 - .../Resources/config/process.php | 22 - .../Resources/config/profiling.php | 60 - .../Resources/config/property_access.php | 30 - .../Resources/config/property_info.php | 52 - .../Resources/config/rate_limiter.php | 30 - .../Resources/config/remote_event.php | 24 - .../Resources/config/request.php | 22 - .../Resources/config/routing.php | 221 - .../Resources/config/routing/errors.xml | 12 - .../Resources/config/routing/webhook.xml | 11 - .../Resources/config/scheduler.php | 38 - .../Resources/config/schema/symfony-1.0.xsd | 994 --- .../Resources/config/secrets.php | 33 - .../Resources/config/security_csrf.php | 50 - .../Resources/config/semaphore.php | 23 - .../Resources/config/serializer.php | 226 - .../Resources/config/serializer_debug.php | 32 - .../Resources/config/services.php | 246 - .../Resources/config/session.php | 110 - .../framework-bundle/Resources/config/ssi.php | 25 - .../Resources/config/test.php | 59 - .../Resources/config/translation.php | 197 - .../Resources/config/translation_debug.php | 30 - .../config/translation_providers.php | 79 - .../framework-bundle/Resources/config/uid.php | 41 - .../Resources/config/validator.php | 131 - .../Resources/config/validator_debug.php | 38 - .../framework-bundle/Resources/config/web.php | 148 - .../Resources/config/web_link.php | 29 - .../Resources/config/webhook.php | 57 - .../Resources/config/workflow.php | 46 - .../Resources/config/workflow_debug.php | 29 - .../AnnotatedRouteControllerLoader.php | 25 - .../Attribute/AsRoutingConditionService.php | 50 - .../AttributeRouteControllerLoader.php | 57 - .../Routing/DelegatingLoader.php | 92 - .../RedirectableCompiledUrlMatcher.php | 36 - .../Routing/RouteLoaderInterface.php | 19 - .../framework-bundle/Routing/Router.php | 197 - .../Secrets/AbstractVault.php | 50 - .../framework-bundle/Secrets/DotenvVault.php | 105 - .../framework-bundle/Secrets/SodiumVault.php | 235 - .../Test/BrowserKitAssertionsTrait.php | 197 - .../Test/DomCrawlerAssertionsTrait.php | 151 - .../Test/HttpClientAssertionsTrait.php | 133 - .../framework-bundle/Test/KernelTestCase.php | 151 - .../Test/MailerAssertionsTrait.php | 138 - .../Test/NotificationAssertionsTrait.php | 100 - .../Test/TestBrowserToken.php | 58 - .../framework-bundle/Test/TestContainer.php | 126 - .../Test/WebTestAssertionsTrait.php | 19 - .../framework-bundle/Test/WebTestCase.php | 59 - .../Translation/Translator.php | 185 - .../symfony/framework-bundle/composer.json | 116 - .../http-client-contracts/CHANGELOG.md | 5 - .../http-client-contracts/ChunkInterface.php | 71 - .../Exception/ClientExceptionInterface.php | 21 - .../Exception/DecodingExceptionInterface.php | 21 - .../Exception/ExceptionInterface.php | 21 - .../Exception/HttpExceptionInterface.php | 24 - .../RedirectionExceptionInterface.php | 21 - .../Exception/ServerExceptionInterface.php | 21 - .../Exception/TimeoutExceptionInterface.php | 21 - .../Exception/TransportExceptionInterface.php | 21 - .../HttpClientInterface.php | 99 - .../symfony/http-client-contracts/LICENSE | 19 - .../symfony/http-client-contracts/README.md | 9 - .../ResponseInterface.php | 108 - .../ResponseStreamInterface.php | 26 - .../Test/Fixtures/web/index.php | 216 - .../Test/HttpClientTestCase.php | 1196 ---- .../Test/TestHttpServer.php | 62 - .../http-client-contracts/composer.json | 37 - .../symfony/http-client/AmpHttpClient.php | 175 - .../http-client/AsyncDecoratorTrait.php | 41 - .../vendor/symfony/http-client/CHANGELOG.md | 85 - .../symfony/http-client/CachingHttpClient.php | 148 - .../symfony/http-client/Chunk/DataChunk.php | 66 - .../symfony/http-client/Chunk/ErrorChunk.php | 116 - .../symfony/http-client/Chunk/FirstChunk.php | 25 - .../http-client/Chunk/InformationalChunk.php | 32 - .../symfony/http-client/Chunk/LastChunk.php | 25 - .../http-client/Chunk/ServerSentEvent.php | 107 - .../symfony/http-client/CurlHttpClient.php | 567 -- .../DataCollector/HttpClientDataCollector.php | 265 - .../symfony/http-client/DecoratorTrait.php | 60 - .../DependencyInjection/HttpClientPass.php | 37 - .../http-client/EventSourceHttpClient.php | 162 - .../http-client/Exception/ClientException.php | 24 - .../Exception/EventSourceException.php | 21 - .../Exception/HttpExceptionTrait.php | 78 - .../Exception/InvalidArgumentException.php | 21 - .../http-client/Exception/JsonException.php | 23 - .../Exception/RedirectionException.php | 24 - .../http-client/Exception/ServerException.php | 24 - .../Exception/TimeoutException.php | 21 - .../Exception/TransportException.php | 21 - .../vendor/symfony/http-client/HttpClient.php | 79 - .../symfony/http-client/HttpClientTrait.php | 855 --- .../symfony/http-client/HttpOptions.php | 339 - .../symfony/http-client/HttplugClient.php | 305 - .../symfony/http-client/Internal/AmpBody.php | 147 - .../http-client/Internal/AmpClientState.php | 218 - .../http-client/Internal/AmpListener.php | 184 - .../http-client/Internal/AmpResolver.php | 64 - .../symfony/http-client/Internal/Canary.php | 41 - .../http-client/Internal/ClientState.php | 26 - .../http-client/Internal/CurlClientState.php | 144 - .../symfony/http-client/Internal/DnsCache.php | 39 - .../http-client/Internal/HttplugWaitLoop.php | 157 - .../Internal/LegacyHttplugInterface.php | 37 - .../Internal/NativeClientState.php | 43 - .../http-client/Internal/PushedResponse.php | 32 - .../vendor/symfony/http-client/LICENSE | 19 - .../Messenger/PingWebhookMessage.php | 31 - .../Messenger/PingWebhookMessageHandler.php | 34 - .../symfony/http-client/MockHttpClient.php | 116 - .../symfony/http-client/NativeHttpClient.php | 482 -- .../NoPrivateNetworkHttpClient.php | 242 - .../symfony/http-client/Psr18Client.php | 224 - .../vendor/symfony/http-client/README.md | 29 - .../http-client/Response/AmpResponse.php | 445 -- .../http-client/Response/AsyncContext.php | 200 - .../http-client/Response/AsyncResponse.php | 483 -- .../Response/CommonResponseTrait.php | 180 - .../http-client/Response/CurlResponse.php | 457 -- .../http-client/Response/HttplugPromise.php | 73 - .../http-client/Response/JsonMockResponse.php | 33 - .../http-client/Response/MockResponse.php | 326 - .../http-client/Response/NativeResponse.php | 370 - .../http-client/Response/ResponseStream.php | 54 - .../http-client/Response/StreamWrapper.php | 312 - .../Response/StreamableInterface.php | 35 - .../Response/TraceableResponse.php | 221 - .../Response/TransportResponseTrait.php | 309 - .../Retry/GenericRetryStrategy.php | 115 - .../Retry/RetryStrategyInterface.php | 36 - .../http-client/RetryableHttpClient.php | 208 - .../symfony/http-client/ScopingHttpClient.php | 120 - .../Test/HarFileResponseFactory.php | 97 - .../http-client/TraceableHttpClient.php | 106 - .../http-client/UriTemplateHttpClient.php | 84 - .../vendor/symfony/http-client/composer.json | 57 - .../symfony/http-foundation/AcceptHeader.php | 150 - .../http-foundation/AcceptHeaderItem.php | 159 - .../http-foundation/BinaryFileResponse.php | 385 -- .../symfony/http-foundation/CHANGELOG.md | 355 - .../http-foundation/ChainRequestMatcher.php | 38 - .../vendor/symfony/http-foundation/Cookie.php | 412 -- .../Exception/BadRequestException.php | 19 - .../Exception/ConflictingHeadersException.php | 21 - .../Exception/JsonException.php | 21 - .../Exception/RequestExceptionInterface.php | 21 - .../Exception/SessionNotFoundException.php | 27 - .../SuspiciousOperationException.php | 20 - .../Exception/UnexpectedValueException.php | 16 - .../ExpressionRequestMatcher.php | 56 - .../File/Exception/AccessDeniedException.php | 25 - .../Exception/CannotWriteFileException.php | 21 - .../File/Exception/ExtensionFileException.php | 21 - .../File/Exception/FileException.php | 21 - .../File/Exception/FileNotFoundException.php | 25 - .../File/Exception/FormSizeFileException.php | 21 - .../File/Exception/IniSizeFileException.php | 21 - .../File/Exception/NoFileException.php | 21 - .../File/Exception/NoTmpDirFileException.php | 21 - .../File/Exception/PartialFileException.php | 21 - .../Exception/UnexpectedTypeException.php | 20 - .../File/Exception/UploadException.php | 21 - .../symfony/http-foundation/File/File.php | 141 - .../symfony/http-foundation/File/Stream.php | 25 - .../http-foundation/File/UploadedFile.php | 269 - .../symfony/http-foundation/FileBag.php | 136 - .../symfony/http-foundation/HeaderBag.php | 290 - .../symfony/http-foundation/HeaderUtils.php | 298 - .../symfony/http-foundation/InputBag.php | 140 - .../symfony/http-foundation/IpUtils.php | 251 - .../symfony/http-foundation/JsonResponse.php | 190 - .../vendor/symfony/http-foundation/LICENSE | 19 - .../symfony/http-foundation/ParameterBag.php | 258 - .../vendor/symfony/http-foundation/README.md | 14 - .../AbstractRequestRateLimiter.php | 81 - .../PeekableRequestRateLimiterInterface.php | 35 - .../RequestRateLimiterInterface.php | 30 - .../http-foundation/RedirectResponse.php | 92 - .../symfony/http-foundation/Request.php | 2131 ------ .../http-foundation/RequestMatcher.php | 200 - .../AttributesRequestMatcher.php | 45 - .../ExpressionRequestMatcher.php | 43 - .../RequestMatcher/HostRequestMatcher.php | 32 - .../RequestMatcher/IpsRequestMatcher.php | 44 - .../RequestMatcher/IsJsonRequestMatcher.php | 28 - .../RequestMatcher/MethodRequestMatcher.php | 46 - .../RequestMatcher/PathRequestMatcher.php | 32 - .../RequestMatcher/PortRequestMatcher.php | 32 - .../RequestMatcher/SchemeRequestMatcher.php | 46 - .../RequestMatcherInterface.php | 25 - .../symfony/http-foundation/RequestStack.php | 116 - .../symfony/http-foundation/Response.php | 1353 ---- .../http-foundation/ResponseHeaderBag.php | 292 - .../symfony/http-foundation/ServerBag.php | 97 - .../Session/Attribute/AttributeBag.php | 130 - .../Attribute/AttributeBagInterface.php | 58 - .../Session/Flash/AutoExpireFlashBag.php | 137 - .../Session/Flash/FlashBag.php | 128 - .../Session/Flash/FlashBagInterface.php | 78 - .../Session/FlashBagAwareSessionInterface.php | 22 - .../http-foundation/Session/Session.php | 244 - .../Session/SessionBagInterface.php | 44 - .../Session/SessionBagProxy.php | 83 - .../Session/SessionFactory.php | 40 - .../Session/SessionFactoryInterface.php | 20 - .../Session/SessionInterface.php | 154 - .../http-foundation/Session/SessionUtils.php | 59 - .../Handler/AbstractSessionHandler.php | 111 - .../Storage/Handler/IdentityMarshaller.php | 36 - .../Handler/MarshallingSessionHandler.php | 76 - .../Handler/MemcachedSessionHandler.php | 112 - .../Handler/MigratingSessionHandler.php | 100 - .../Storage/Handler/MongoDbSessionHandler.php | 186 - .../Handler/NativeFileSessionHandler.php | 55 - .../Storage/Handler/NullSessionHandler.php | 55 - .../Storage/Handler/PdoSessionHandler.php | 901 --- .../Storage/Handler/RedisSessionHandler.php | 103 - .../Storage/Handler/SessionHandlerFactory.php | 99 - .../Storage/Handler/StrictSessionHandler.php | 89 - .../Session/Storage/MetadataBag.php | 148 - .../Storage/MockArraySessionStorage.php | 238 - .../Storage/MockFileSessionStorage.php | 152 - .../Storage/MockFileSessionStorageFactory.php | 42 - .../Session/Storage/NativeSessionStorage.php | 449 -- .../Storage/NativeSessionStorageFactory.php | 50 - .../Storage/PhpBridgeSessionStorage.php | 58 - .../PhpBridgeSessionStorageFactory.php | 45 - .../Session/Storage/Proxy/AbstractProxy.php | 110 - .../Storage/Proxy/SessionHandlerProxy.php | 76 - .../SessionStorageFactoryInterface.php | 25 - .../Storage/SessionStorageInterface.php | 126 - .../http-foundation/StreamedJsonResponse.php | 162 - .../http-foundation/StreamedResponse.php | 131 - .../Constraint/RequestAttributeValueSame.php | 48 - .../Constraint/ResponseCookieValueSame.php | 76 - .../Test/Constraint/ResponseFormatSame.php | 62 - .../Test/Constraint/ResponseHasCookie.php | 68 - .../Test/Constraint/ResponseHasHeader.php | 46 - .../Constraint/ResponseHeaderLocationSame.php | 65 - .../Test/Constraint/ResponseHeaderSame.php | 48 - .../Test/Constraint/ResponseIsRedirected.php | 47 - .../Test/Constraint/ResponseIsSuccessful.php | 47 - .../Constraint/ResponseIsUnprocessable.php | 47 - .../Constraint/ResponseStatusCodeSame.php | 54 - .../symfony/http-foundation/UriSigner.php | 112 - .../symfony/http-foundation/UrlHelper.php | 108 - .../symfony/http-foundation/composer.json | 44 - .../http-kernel/Attribute/AsController.php | 27 - .../Attribute/AsTargetedValueResolver.php | 24 - .../symfony/http-kernel/Attribute/Cache.php | 107 - .../http-kernel/Attribute/MapDateTime.php | 29 - .../Attribute/MapQueryParameter.php | 38 - .../http-kernel/Attribute/MapQueryString.php | 37 - .../Attribute/MapRequestPayload.php | 38 - .../http-kernel/Attribute/ValueResolver.php | 27 - .../http-kernel/Attribute/WithHttpStatus.php | 28 - .../http-kernel/Attribute/WithLogLevel.php | 31 - .../http-kernel/Bundle/AbstractBundle.php | 61 - .../symfony/http-kernel/Bundle/Bundle.php | 160 - .../http-kernel/Bundle/BundleExtension.php | 67 - .../http-kernel/Bundle/BundleInterface.php | 74 - .../vendor/symfony/http-kernel/CHANGELOG.md | 382 -- .../CacheClearer/CacheClearerInterface.php | 27 - .../CacheClearer/ChainCacheClearer.php | 39 - .../CacheClearer/Psr6CacheClearer.php | 69 - .../http-kernel/CacheWarmer/CacheWarmer.php | 35 - .../CacheWarmer/CacheWarmerAggregate.php | 141 - .../CacheWarmer/CacheWarmerInterface.php | 32 - .../CacheWarmer/WarmableInterface.php | 30 - .../http-kernel/Config/FileLocator.php | 43 - .../Controller/ArgumentResolver.php | 146 - .../BackedEnumValueResolver.php | 93 - .../DateTimeValueResolver.php | 98 - .../ArgumentResolver/DefaultValueResolver.php | 48 - .../NotTaggedControllerValueResolver.php | 90 - .../QueryParameterValueResolver.php | 125 - .../RequestAttributeValueResolver.php | 40 - .../RequestPayloadValueResolver.php | 199 - .../ArgumentResolver/RequestValueResolver.php | 40 - .../ArgumentResolver/ServiceValueResolver.php | 99 - .../ArgumentResolver/SessionValueResolver.php | 59 - .../TraceableValueResolver.php | 64 - .../ArgumentResolver/UidValueResolver.php | 52 - .../VariadicValueResolver.php | 50 - .../Controller/ArgumentResolverInterface.php | 32 - .../ArgumentValueResolverInterface.php | 35 - .../ContainerControllerResolver.php | 63 - .../Controller/ControllerReference.php | 44 - .../Controller/ControllerResolver.php | 279 - .../ControllerResolverInterface.php | 41 - .../Controller/ErrorController.php | 62 - .../Controller/TraceableArgumentResolver.php | 45 - .../TraceableControllerResolver.php | 41 - .../Controller/ValueResolverInterface.php | 28 - .../ControllerMetadata/ArgumentMetadata.php | 145 - .../ArgumentMetadataFactory.php | 56 - .../ArgumentMetadataFactoryInterface.php | 27 - .../DataCollector/AjaxDataCollector.php | 38 - .../DataCollector/ConfigDataCollector.php | 259 - .../DataCollector/DataCollector.php | 125 - .../DataCollector/DataCollectorInterface.php | 38 - .../DataCollector/DumpDataCollector.php | 287 - .../DataCollector/EventDataCollector.php | 140 - .../DataCollector/ExceptionDataCollector.php | 68 - .../LateDataCollectorInterface.php | 27 - .../DataCollector/LoggerDataCollector.php | 335 - .../DataCollector/MemoryDataCollector.php | 95 - .../DataCollector/RequestDataCollector.php | 535 -- .../DataCollector/RouterDataCollector.php | 105 - .../DataCollector/TimeDataCollector.php | 130 - .../Debug/ErrorHandlerConfigurator.php | 107 - .../http-kernel/Debug/FileLinkFormatter.php | 31 - .../Debug/TraceableEventDispatcher.php | 89 - .../http-kernel/Debug/VirtualRequestStack.php | 65 - .../AddAnnotatedClassesToCachePass.php | 145 - .../ConfigurableExtension.php | 41 - .../ControllerArgumentValueResolverPass.php | 73 - .../DependencyInjection/Extension.php | 44 - .../FragmentRendererPass.php | 57 - .../LazyLoadingFragmentHandler.php | 49 - .../DependencyInjection/LoggerPass.php | 50 - .../MergeExtensionConfigurationPass.php | 44 - ...RegisterControllerArgumentLocatorsPass.php | 240 - .../RegisterLocaleAwareServicesPass.php | 52 - ...oveEmptyControllerArgumentLocatorsPass.php | 71 - .../ResettableServicePass.php | 68 - .../DependencyInjection/ServicesResetter.php | 61 - .../Event/ControllerArgumentsEvent.php | 109 - .../http-kernel/Event/ControllerEvent.php | 113 - .../http-kernel/Event/ExceptionEvent.php | 72 - .../http-kernel/Event/FinishRequestEvent.php | 21 - .../symfony/http-kernel/Event/KernelEvent.php | 74 - .../http-kernel/Event/RequestEvent.php | 56 - .../http-kernel/Event/ResponseEvent.php | 47 - .../http-kernel/Event/TerminateEvent.php | 41 - .../symfony/http-kernel/Event/ViewEvent.php | 48 - .../EventListener/AbstractSessionListener.php | 324 - .../AddRequestFormatsListener.php | 49 - .../EventListener/CacheAttributeListener.php | 197 - .../EventListener/DebugHandlersListener.php | 136 - .../DisallowRobotsIndexingListener.php | 40 - .../EventListener/DumpListener.php | 69 - .../EventListener/ErrorListener.php | 241 - .../EventListener/FragmentListener.php | 100 - .../EventListener/LocaleAwareListener.php | 77 - .../EventListener/LocaleListener.php | 95 - .../EventListener/ProfilerListener.php | 150 - .../EventListener/ResponseListener.php | 68 - .../EventListener/RouterListener.php | 166 - .../EventListener/SessionListener.php | 33 - .../StreamedResponseListener.php | 55 - .../EventListener/SurrogateListener.php | 67 - .../EventListener/ValidateRequestListener.php | 52 - .../Exception/AccessDeniedHttpException.php | 24 - .../Exception/BadRequestHttpException.php | 23 - .../Exception/ConflictHttpException.php | 23 - ...ntrollerDoesNotReturnResponseException.php | 83 - .../Exception/GoneHttpException.php | 23 - .../http-kernel/Exception/HttpException.php | 49 - .../Exception/HttpExceptionInterface.php | 30 - .../Exception/InvalidMetadataException.php | 16 - .../Exception/LengthRequiredHttpException.php | 23 - .../Exception/LockedHttpException.php | 23 - .../MethodNotAllowedHttpException.php | 28 - .../Exception/NotAcceptableHttpException.php | 23 - .../Exception/NotFoundHttpException.php | 23 - .../PreconditionFailedHttpException.php | 23 - .../PreconditionRequiredHttpException.php | 25 - .../Exception/ResolverNotFoundException.php | 33 - .../ServiceUnavailableHttpException.php | 30 - .../TooManyRequestsHttpException.php | 32 - .../Exception/UnauthorizedHttpException.php | 28 - .../UnexpectedSessionUsageException.php | 19 - .../UnprocessableEntityHttpException.php | 23 - .../UnsupportedMediaTypeHttpException.php | 23 - .../AbstractSurrogateFragmentRenderer.php | 106 - .../Fragment/EsiFragmentRenderer.php | 25 - .../http-kernel/Fragment/FragmentHandler.php | 111 - .../Fragment/FragmentRendererInterface.php | 34 - .../Fragment/FragmentUriGenerator.php | 90 - .../FragmentUriGeneratorInterface.php | 32 - .../Fragment/HIncludeFragmentRenderer.php | 97 - .../Fragment/InlineFragmentRenderer.php | 147 - .../Fragment/RoutableFragmentRenderer.php | 52 - .../Fragment/SsiFragmentRenderer.php | 25 - .../HttpCache/AbstractSurrogate.php | 142 - .../HttpCache/CacheWasLockedException.php | 19 - .../symfony/http-kernel/HttpCache/Esi.php | 105 - .../http-kernel/HttpCache/HttpCache.php | 763 --- .../HttpCache/ResponseCacheStrategy.php | 236 - .../ResponseCacheStrategyInterface.php | 41 - .../symfony/http-kernel/HttpCache/Ssi.php | 86 - .../symfony/http-kernel/HttpCache/Store.php | 498 -- .../http-kernel/HttpCache/StoreInterface.php | 83 - .../HttpCache/SubRequestHandler.php | 92 - .../HttpCache/SurrogateInterface.php | 77 - .../symfony/http-kernel/HttpClientKernel.php | 112 - .../vendor/symfony/http-kernel/HttpKernel.php | 319 - .../symfony/http-kernel/HttpKernelBrowser.php | 198 - .../http-kernel/HttpKernelInterface.php | 46 - .../vendor/symfony/http-kernel/Kernel.php | 868 --- .../symfony/http-kernel/KernelEvents.php | 128 - .../symfony/http-kernel/KernelInterface.php | 139 - .../vendor/symfony/http-kernel/LICENSE | 19 - .../Log/DebugLoggerConfigurator.php | 55 - .../http-kernel/Log/DebugLoggerInterface.php | 51 - .../vendor/symfony/http-kernel/Log/Logger.php | 190 - .../Profiler/FileProfilerStorage.php | 358 - .../symfony/http-kernel/Profiler/Profile.php | 285 - .../symfony/http-kernel/Profiler/Profiler.php | 262 - .../Profiler/ProfilerStorageInterface.php | 58 - .../vendor/symfony/http-kernel/README.md | 15 - .../http-kernel/RebootableInterface.php | 32 - .../http-kernel/Resources/welcome.html.php | 124 - .../http-kernel/TerminableInterface.php | 34 - .../vendor/symfony/http-kernel/UriSigner.php | 27 - .../vendor/symfony/http-kernel/composer.json | 81 - .../lock/BlockingSharedLockStoreInterface.php | 29 - .../symfony/lock/BlockingStoreInterface.php | 29 - .../vendor/symfony/lock/CHANGELOG.md | 75 - .../lock/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 19 - .../lock/Exception/InvalidTtlException.php | 19 - .../lock/Exception/LockAcquiringException.php | 21 - .../Exception/LockConflictedException.php | 25 - .../lock/Exception/LockExpiredException.php | 21 - .../lock/Exception/LockReleasingException.php | 21 - .../lock/Exception/LockStorageException.php | 21 - .../Exception/UnserializableKeyException.php | 23 - .../priceservice/vendor/symfony/lock/Key.php | 101 - .../priceservice/vendor/symfony/lock/LICENSE | 19 - .../priceservice/vendor/symfony/lock/Lock.php | 246 - .../vendor/symfony/lock/LockFactory.php | 64 - .../vendor/symfony/lock/LockInterface.php | 66 - .../vendor/symfony/lock/NoLock.php | 51 - .../symfony/lock/PersistingStoreInterface.php | 57 - .../vendor/symfony/lock/README.md | 14 - .../symfony/lock/SharedLockInterface.php | 32 - .../symfony/lock/SharedLockStoreInterface.php | 29 - .../symfony/lock/Store/CombinedStore.php | 218 - .../symfony/lock/Store/DatabaseTableTrait.php | 75 - .../Store/DoctrineDbalPostgreSqlStore.php | 309 - .../symfony/lock/Store/DoctrineDbalStore.php | 285 - .../symfony/lock/Store/ExpiringStoreTrait.php | 30 - .../vendor/symfony/lock/Store/FlockStore.php | 165 - .../symfony/lock/Store/InMemoryStore.php | 126 - .../symfony/lock/Store/MemcachedStore.php | 167 - .../symfony/lock/Store/MongoDbStore.php | 405 -- .../vendor/symfony/lock/Store/PdoStore.php | 255 - .../symfony/lock/Store/PostgreSqlStore.php | 308 - .../vendor/symfony/lock/Store/RedisStore.php | 318 - .../symfony/lock/Store/SemaphoreStore.php | 111 - .../symfony/lock/Store/StoreFactory.php | 113 - .../symfony/lock/Store/ZookeeperStore.php | 166 - .../lock/Strategy/ConsensusStrategy.php | 30 - .../lock/Strategy/StrategyInterface.php | 33 - .../lock/Strategy/UnanimousStrategy.php | 30 - .../vendor/symfony/lock/composer.json | 38 - .../vendor/symfony/maker-bundle/LICENSE | 19 - .../vendor/symfony/maker-bundle/composer.json | 78 - .../maker-bundle/config/help/MakeAuth.txt | 8 - .../maker-bundle/config/help/MakeCommand.txt | 5 - .../config/help/MakeController.txt | 14 - .../maker-bundle/config/help/MakeCrud.txt | 5 - .../config/help/MakeDockerDatabase.txt | 5 - .../maker-bundle/config/help/MakeEntity.txt | 24 - .../maker-bundle/config/help/MakeFixture.txt | 5 - .../maker-bundle/config/help/MakeForm.txt | 16 - .../config/help/MakeFunctionalTest.txt | 5 - .../maker-bundle/config/help/MakeListener.txt | 5 - .../maker-bundle/config/help/MakeMessage.txt | 5 - .../config/help/MakeMiddleware.txt | 5 - .../config/help/MakeMigration.txt | 7 - .../config/help/MakeRegistrationForm.txt | 5 - .../config/help/MakeResetPassword.txt | 18 - .../config/help/MakeScheduler.txt | 8 - .../config/help/MakeSerializerEncoder.txt | 5 - .../config/help/MakeSerializerNormalizer.txt | 5 - .../config/help/MakeStimulusController.txt | 15 - .../config/help/MakeSubscriber.txt | 5 - .../maker-bundle/config/help/MakeTest.txt | 7 - .../config/help/MakeTwigExtension.txt | 5 - .../maker-bundle/config/help/MakeUnitTest.txt | 5 - .../maker-bundle/config/help/MakeUser.txt | 7 - .../config/help/MakeValidator.txt | 5 - .../maker-bundle/config/help/MakeVoter.txt | 5 - .../maker-bundle/config/help/MakeWebhook.txt | 8 - .../maker-bundle/config/help/_WithTests.txt | 6 - .../maker-bundle/config/help/_WithUid.txt | 10 - .../config/help/security/MakeCustom.txt | 8 - .../config/help/security/MakeFormLogin.txt | 9 - .../symfony/maker-bundle/config/makers.xml | 175 - .../config/php-cs-fixer.config.php | 29 - .../symfony/maker-bundle/config/services.xml | 88 - .../symfony/maker-bundle/docs/index.rst | 166 - .../symfony/maker-bundle/phpstan.dist.neon | 26 - .../src/ApplicationAwareMakerInterface.php | 24 - .../maker-bundle/src/Command/MakerCommand.php | 139 - .../Console/MigrationDiffFilteredOutput.php | 136 - .../symfony/maker-bundle/src/ConsoleStyle.php | 45 - .../maker-bundle/src/DependencyBuilder.php | 144 - .../MakeCommandRegistrationPass.php | 77 - .../RemoveMissingParametersPass.php | 31 - .../SetDoctrineAnnotatedPrefixesPass.php | 68 - .../src/Docker/DockerDatabaseServices.php | 106 - .../src/Doctrine/BaseCollectionRelation.php | 32 - .../src/Doctrine/BaseRelation.php | 88 - .../src/Doctrine/DoctrineHelper.php | 368 - .../src/Doctrine/EntityClassGenerator.php | 146 - .../src/Doctrine/EntityDetails.php | 90 - .../src/Doctrine/EntityRegenerator.php | 216 - .../src/Doctrine/EntityRelation.php | 189 - .../src/Doctrine/ORMDependencyBuilder.php | 42 - .../src/Doctrine/RelationManyToMany.php | 64 - .../src/Doctrine/RelationManyToOne.php | 44 - .../src/Doctrine/RelationOneToMany.php | 56 - .../src/Doctrine/RelationOneToOne.php | 67 - .../src/Doctrine/StaticReflectionService.php | 62 - .../src/Event/ConsoleErrorSubscriber.php | 63 - .../maker-bundle/src/EventRegistry.php | 124 - .../src/Exception/RuntimeCommandException.php | 23 - .../symfony/maker-bundle/src/FileManager.php | 207 - .../symfony/maker-bundle/src/Generator.php | 341 - .../maker-bundle/src/GeneratorTwigHelper.php | 71 - .../src/InputAwareMakerInterface.php | 24 - .../maker-bundle/src/InputConfiguration.php | 31 - .../maker-bundle/src/Maker/AbstractMaker.php | 71 - .../Maker/Common/CanGenerateTestsTrait.php | 60 - .../src/Maker/Common/EntityIdTypeEnum.php | 24 - .../Maker/Common/InstallDependencyTrait.php | 42 - .../src/Maker/Common/UidTrait.php | 79 - .../src/Maker/MakeAuthenticator.php | 472 -- .../maker-bundle/src/Maker/MakeCommand.php | 113 - .../maker-bundle/src/Maker/MakeController.php | 170 - .../maker-bundle/src/Maker/MakeCrud.php | 327 - .../src/Maker/MakeDockerDatabase.php | 200 - .../maker-bundle/src/Maker/MakeEntity.php | 899 --- .../maker-bundle/src/Maker/MakeFixtures.php | 97 - .../maker-bundle/src/Maker/MakeForm.php | 144 - .../src/Maker/MakeFunctionalTest.php | 106 - .../maker-bundle/src/Maker/MakeListener.php | 264 - .../maker-bundle/src/Maker/MakeMessage.php | 171 - .../src/Maker/MakeMessengerMiddleware.php | 93 - .../maker-bundle/src/Maker/MakeMigration.php | 180 - .../src/Maker/MakeRegistrationForm.php | 603 -- .../src/Maker/MakeResetPassword.php | 553 -- .../maker-bundle/src/Maker/MakeSchedule.php | 149 - .../src/Maker/MakeSerializerEncoder.php | 93 - .../src/Maker/MakeSerializerNormalizer.php | 108 - .../src/Maker/MakeStimulusController.php | 358 - .../maker-bundle/src/Maker/MakeSubscriber.php | 142 - .../maker-bundle/src/Maker/MakeTest.php | 229 - .../src/Maker/MakeTwigComponent.php | 119 - .../src/Maker/MakeTwigExtension.php | 107 - .../maker-bundle/src/Maker/MakeUnitTest.php | 79 - .../maker-bundle/src/Maker/MakeUser.php | 262 - .../maker-bundle/src/Maker/MakeValidator.php | 100 - .../maker-bundle/src/Maker/MakeVoter.php | 85 - .../maker-bundle/src/Maker/MakeWebhook.php | 307 - .../Security/MakeCustomAuthenticator.php | 144 - .../src/Maker/Security/MakeFormLogin.php | 228 - .../symfony/maker-bundle/src/MakerBundle.php | 75 - .../maker-bundle/src/MakerInterface.php | 53 - .../src/Renderer/FormTypeRenderer.php | 81 - .../Resources/bin/php-cs-fixer-v3.49.0.phar | Bin 2824115 -> 0 bytes .../Security/InteractiveSecurityHelper.php | 289 - .../src/Security/Model/Authenticator.php | 39 - .../src/Security/Model/AuthenticatorType.php | 30 - .../src/Security/SecurityConfigUpdater.php | 318 - .../Security/SecurityControllerBuilder.php | 84 - .../src/Security/UserClassBuilder.php | 349 - .../src/Security/UserClassConfiguration.php | 58 - .../vendor/symfony/maker-bundle/src/Str.php | 272 - .../maker-bundle/src/Test/MakerTestCase.php | 142 - .../src/Test/MakerTestDetails.php | 250 - .../src/Test/MakerTestEnvironment.php | 448 -- .../maker-bundle/src/Test/MakerTestKernel.php | 89 - .../src/Test/MakerTestProcess.php | 80 - .../maker-bundle/src/Test/MakerTestRunner.php | 275 - .../maker-bundle/src/Util/AutoloaderUtil.php | 99 - .../maker-bundle/src/Util/ClassDetails.php | 72 - .../src/Util/ClassNameDetails.php | 52 - .../maker-bundle/src/Util/ClassNameValue.php | 45 - .../src/Util/ClassSource/Model/ClassData.php | 158 - .../Util/ClassSource/Model/ClassProperty.php | 105 - .../src/Util/ClassSourceManipulator.php | 1400 ---- .../maker-bundle/src/Util/CliOutputHelper.php | 47 - .../src/Util/ComposeFileManipulator.php | 132 - .../src/Util/ComposerAutoloaderFinder.php | 109 - .../src/Util/MakerFileLinkFormatter.php | 51 - .../maker-bundle/src/Util/PhpCompatUtil.php | 45 - .../maker-bundle/src/Util/PrettyPrinter.php | 66 - .../src/Util/TemplateComponentGenerator.php | 73 - .../maker-bundle/src/Util/TemplateLinter.php | 154 - .../src/Util/UseStatementGenerator.php | 92 - .../Util/YamlManipulationFailedException.php | 19 - .../src/Util/YamlSourceManipulator.php | 1331 ---- .../symfony/maker-bundle/src/Validator.php | 258 - .../maker-bundle/templates/Class.tpl.php | 7 - .../authenticator/EmptyAuthenticator.tpl.php | 39 - .../EmptySecurityController.tpl.php | 9 - .../LoginFormAuthenticator.tpl.php | 48 - .../authenticator/login_form.tpl.php | 38 - .../templates/command/Command.tpl.php | 44 - .../templates/controller/Controller.tpl.php | 25 - .../templates/controller/test/Test.tpl.php | 17 - .../controller/twig_template.tpl.php | 18 - .../crud/controller/Controller.tpl.php | 88 - .../crud/templates/_delete_form.tpl.php | 4 - .../templates/crud/templates/_form.tpl.php | 4 - .../templates/crud/templates/edit.tpl.php | 11 - .../templates/crud/templates/index.tpl.php | 35 - .../templates/crud/templates/new.tpl.php | 9 - .../templates/crud/templates/show.tpl.php | 22 - .../crud/test/Test.EntityManager.tpl.php | 123 - .../templates/doctrine/Entity.tpl.php | 56 - .../templates/doctrine/Fixtures.tpl.php | 16 - .../templates/doctrine/Repository.tpl.php | 61 - .../doctrine/broadcast_twig_template.tpl.php | 22 - .../templates/event/Listener.tpl.php | 14 - .../templates/event/Subscriber.tpl.php | 20 - .../maker-bundle/templates/form/Type.tpl.php | 36 - .../templates/message/Message.tpl.php | 19 - .../templates/message/MessageHandler.tpl.php | 14 - .../templates/middleware/Middleware.tpl.php | 14 - .../RegistrationController.tpl.php | 102 - .../registration/Test.WithVerify.tpl.php | 75 - .../registration/Test.WithoutVerify.tpl.php | 46 - .../templates/registration/twig_email.tpl.php | 11 - .../registration/twig_template.tpl.php | 23 - .../ChangePasswordFormType.tpl.php | 50 - .../ResetPasswordController.tpl.php | 158 - .../ResetPasswordRequestFormType.tpl.php | 27 - .../Test.ResetPasswordController.tpl.php | 98 - .../resetPassword/twig_check_email.tpl.php | 11 - .../resetPassword/twig_email.tpl.php | 9 - .../resetPassword/twig_request.tpl.php | 22 - .../resetPassword/twig_reset.tpl.php | 12 - .../templates/scheduler/Schedule.tpl.php | 30 - .../templates/security/UserProvider.tpl.php | 74 - .../templates/security/Voter.tpl.php | 43 - .../security/custom/Authenticator.tpl.php | 67 - .../formLogin/LoginController.tpl.php | 23 - .../formLogin/Test.LoginController.tpl.php | 79 - .../security/formLogin/login_form.tpl.php | 40 - .../templates/serializer/Encoder.tpl.php | 32 - .../templates/serializer/Normalizer.tpl.php | 41 - .../templates/stimulus/Controller.tpl.php | 47 - .../templates/test/ApiTestCase.tpl.php | 16 - .../templates/test/Functional.tpl.php | 31 - .../templates/test/KernelTestCase.tpl.php | 17 - .../templates/test/PantherTestCase.tpl.php | 20 - .../templates/test/TestCase.tpl.php | 13 - .../maker-bundle/templates/test/Unit.tpl.php | 14 - .../templates/test/WebTestCase.tpl.php | 22 - .../templates/twig/Component.tpl.php | 10 - .../templates/twig/Extension.tpl.php | 25 - .../templates/twig/LiveComponent.tpl.php | 12 - .../templates/twig/Runtime.tpl.php | 18 - .../templates/twig/component_template.tpl.php | 3 - .../templates/validator/Constraint.tpl.php | 22 - .../templates/validator/Validator.tpl.php | 24 - .../verifyEmail/EmailVerifier.tpl.php | 51 - .../templates/webhook/RequestParser.tpl.php | 52 - .../templates/webhook/WebhookConsumer.tpl.php | 20 - .../messenger/Attribute/AsMessageHandler.php | 30 - .../vendor/symfony/messenger/CHANGELOG.md | 262 - .../Command/AbstractFailedMessagesCommand.php | 246 - .../Command/ConsumeMessagesCommand.php | 307 - .../messenger/Command/DebugCommand.php | 145 - .../Command/FailedMessagesRemoveCommand.php | 148 - .../Command/FailedMessagesRetryCommand.php | 281 - .../Command/FailedMessagesShowCommand.php | 197 - .../Command/SetupTransportsCommand.php | 101 - .../messenger/Command/StatsCommand.php | 95 - .../messenger/Command/StopWorkersCommand.php | 67 - .../DataCollector/MessengerDataCollector.php | 132 - .../DependencyInjection/MessengerPass.php | 411 -- .../vendor/symfony/messenger/Envelope.php | 130 - .../Event/AbstractWorkerMessageEvent.php | 45 - .../Event/SendMessageToTransportsEvent.php | 57 - .../Event/WorkerMessageFailedEvent.php | 47 - .../Event/WorkerMessageHandledEvent.php | 21 - .../Event/WorkerMessageReceivedEvent.php | 31 - .../Event/WorkerMessageRetriedEvent.php | 21 - .../Event/WorkerRateLimitedEvent.php | 37 - .../messenger/Event/WorkerRunningEvent.php | 44 - .../messenger/Event/WorkerStartedEvent.php | 34 - .../messenger/Event/WorkerStoppedEvent.php | 34 - .../AddErrorDetailsStampListener.php | 38 - .../DispatchPcntlSignalListener.php | 41 - .../EventListener/ResetServicesListener.php | 50 - .../SendFailedMessageForRetryListener.php | 170 - ...ailedMessageToFailureTransportListener.php | 80 - ...topWorkerOnCustomStopExceptionListener.php | 57 - .../StopWorkerOnFailureLimitListener.php | 61 - .../StopWorkerOnMemoryLimitListener.php | 52 - .../StopWorkerOnMessageLimitListener.php | 55 - .../StopWorkerOnRestartSignalListener.php | 69 - .../StopWorkerOnSignalsListener.php | 60 - .../StopWorkerOnSigtermSignalListener.php | 30 - .../StopWorkerOnTimeLimitListener.php | 61 - .../DelayedMessageHandlingException.php | 58 - .../EnvelopeAwareExceptionInterface.php | 22 - .../Exception/EnvelopeAwareExceptionTrait.php | 27 - .../Exception/ExceptionInterface.php | 21 - .../Exception/HandlerFailedException.php | 75 - .../Exception/InvalidArgumentException.php | 19 - .../messenger/Exception/LogicException.php | 19 - .../MessageDecodingFailedException.php | 19 - .../NoHandlerForMessageException.php | 19 - .../Exception/NoSenderForMessageException.php | 19 - .../RecoverableExceptionInterface.php | 24 - .../RecoverableMessageHandlingException.php | 21 - .../RejectRedeliveredMessageException.php | 19 - .../messenger/Exception/RuntimeException.php | 19 - .../Exception/StopWorkerException.php | 23 - .../StopWorkerExceptionInterface.php | 19 - .../Exception/TransportException.php | 19 - .../UnrecoverableExceptionInterface.php | 24 - .../UnrecoverableMessageHandlingException.php | 21 - .../Exception/ValidationFailedException.php | 48 - .../Exception/WrappedExceptionsInterface.php | 25 - .../Exception/WrappedExceptionsTrait.php | 56 - .../vendor/symfony/messenger/HandleTrait.php | 56 - .../messenger/Handler/Acknowledger.php | 80 - .../Handler/BatchHandlerInterface.php | 34 - .../messenger/Handler/BatchHandlerTrait.php | 72 - .../messenger/Handler/HandlerDescriptor.php | 81 - .../messenger/Handler/HandlersLocator.php | 99 - .../Handler/HandlersLocatorInterface.php | 29 - .../Handler/MessageHandlerInterface.php | 25 - .../Handler/MessageSubscriberInterface.php | 53 - .../Handler/RedispatchMessageHandler.php | 29 - .../vendor/symfony/messenger/LICENSE | 19 - .../messenger/Message/RedispatchMessage.php | 34 - .../vendor/symfony/messenger/MessageBus.php | 72 - .../symfony/messenger/MessageBusInterface.php | 28 - .../Middleware/ActivationMiddleware.php | 40 - .../Middleware/AddBusNameStampMiddleware.php | 39 - .../DispatchAfterCurrentBusMiddleware.php | 130 - .../FailedMessageProcessingMiddleware.php | 36 - .../Middleware/HandleMessageMiddleware.php | 154 - .../Middleware/MiddlewareInterface.php | 22 - .../RejectRedeliveredMessageMiddleware.php | 43 - .../Middleware/RouterContextMiddleware.php | 88 - .../Middleware/SendMessageMiddleware.php | 77 - .../messenger/Middleware/StackInterface.php | 25 - .../messenger/Middleware/StackMiddleware.php | 90 - .../Middleware/TraceableMiddleware.php | 96 - .../Middleware/ValidationMiddleware.php | 47 - .../vendor/symfony/messenger/README.md | 29 - .../Retry/MultiplierRetryStrategy.php | 91 - .../Retry/RetryStrategyInterface.php | 34 - .../symfony/messenger/RoutableMessageBus.php | 68 - .../symfony/messenger/Stamp/AckStamp.php | 33 - .../symfony/messenger/Stamp/BusNameStamp.php | 32 - .../messenger/Stamp/ConsumedByWorkerStamp.php | 19 - .../symfony/messenger/Stamp/DelayStamp.php | 46 - .../Stamp/DispatchAfterCurrentBusStamp.php | 23 - .../messenger/Stamp/ErrorDetailsStamp.php | 85 - .../Stamp/FlushBatchHandlersStamp.php | 30 - .../symfony/messenger/Stamp/HandledStamp.php | 53 - .../messenger/Stamp/HandlerArgumentsStamp.php | 31 - .../Stamp/MessageDecodingFailedStamp.php | 19 - .../messenger/Stamp/NoAutoAckStamp.php | 32 - .../Stamp/NonSendableStampInterface.php | 21 - .../symfony/messenger/Stamp/ReceivedStamp.php | 39 - .../messenger/Stamp/RedeliveryStamp.php | 47 - .../messenger/Stamp/RouterContextStamp.php | 79 - .../symfony/messenger/Stamp/SentStamp.php | 41 - .../Stamp/SentToFailureTransportStamp.php | 32 - .../Stamp/SerializedMessageStamp.php | 24 - .../messenger/Stamp/SerializerStamp.php | 30 - .../messenger/Stamp/StampInterface.php | 23 - .../Stamp/TransportMessageIdStamp.php | 35 - .../messenger/Stamp/TransportNamesStamp.php | 33 - .../messenger/Stamp/ValidationStamp.php | 35 - .../Test/Middleware/MiddlewareTestCase.php | 58 - .../symfony/messenger/TraceableMessageBus.php | 108 - .../Transport/InMemory/InMemoryTransport.php | 165 - .../InMemory/InMemoryTransportFactory.php | 64 - .../messenger/Transport/InMemoryTransport.php | 23 - .../Transport/InMemoryTransportFactory.php | 23 - .../Receiver/ListableReceiverInterface.php | 40 - .../Receiver/MessageCountAwareInterface.php | 26 - .../Receiver/QueueReceiverInterface.php | 31 - .../Transport/Receiver/ReceiverInterface.php | 61 - .../Receiver/SingleMessageReceiver.php | 55 - .../Transport/Sender/SenderInterface.php | 30 - .../Transport/Sender/SendersLocator.php | 77 - .../Sender/SendersLocatorInterface.php | 30 - .../Normalizer/FlattenExceptionNormalizer.php | 90 - .../Transport/Serialization/PhpSerializer.php | 123 - .../Transport/Serialization/Serializer.php | 181 - .../Serialization/SerializerInterface.php | 48 - .../Transport/SetupableTransportInterface.php | 23 - .../Transport/Sync/SyncTransport.php | 60 - .../Transport/Sync/SyncTransportFactory.php | 42 - .../messenger/Transport/TransportFactory.php | 69 - .../Transport/TransportFactoryInterface.php | 31 - .../Transport/TransportInterface.php | 22 - .../vendor/symfony/messenger/Worker.php | 281 - .../symfony/messenger/WorkerMetadata.php | 47 - .../vendor/symfony/messenger/composer.json | 54 - .../symfony/monolog-bridge/CHANGELOG.md | 104 - .../Command/ServerLogCommand.php | 174 - .../Formatter/CompatibilityFormatter.php | 51 - .../Formatter/ConsoleFormatter.php | 212 - .../Formatter/VarDumperFormatter.php | 54 - .../Handler/ChromePhpHandler.php | 73 - .../Handler/CompatibilityHandler.php | 51 - .../CompatibilityProcessingHandler.php | 51 - .../monolog-bridge/Handler/ConsoleHandler.php | 225 - .../Handler/ElasticsearchLogstashHandler.php | 189 - .../HttpCodeActivationStrategy.php | 70 - .../NotFoundActivationStrategy.php | 54 - .../monolog-bridge/Handler/FirePHPHandler.php | 75 - .../monolog-bridge/Handler/MailerHandler.php | 150 - .../Handler/NotifierHandler.php | 85 - .../Handler/ServerLogHandler.php | 156 - .../vendor/symfony/monolog-bridge/LICENSE | 19 - .../vendor/symfony/monolog-bridge/Logger.php | 98 - .../Processor/AbstractTokenProcessor.php | 60 - .../Processor/CompatibilityProcessor.php | 51 - .../Processor/ConsoleCommandProcessor.php | 80 - .../Processor/DebugProcessor.php | 106 - .../Processor/RouteProcessor.php | 89 - .../Processor/SwitchUserTokenProcessor.php | 41 - .../Processor/TokenProcessor.php | 35 - .../monolog-bridge/Processor/WebProcessor.php | 48 - .../vendor/symfony/monolog-bridge/README.md | 13 - .../symfony/monolog-bridge/composer.json | 46 - .../symfony/monolog-bundle/CHANGELOG.md | 120 - .../Compiler/AddProcessorsPass.php | 70 - .../Compiler/AddSwiftMailerTransportPass.php | 59 - .../Compiler/DebugHandlerPass.php | 58 - .../Compiler/FixEmptyLoggerPass.php | 57 - .../Compiler/LoggerChannelPass.php | 161 - .../DependencyInjection/Configuration.php | 1145 ---- .../DependencyInjection/MonologExtension.php | 1090 --- .../vendor/symfony/monolog-bundle/LICENSE | 19 - .../symfony/monolog-bundle/MonologBundle.php | 56 - .../vendor/symfony/monolog-bundle/README.md | 12 - .../Resources/config/monolog.xml | 44 - .../Resources/config/schema/monolog-1.0.xsd | 205 - .../SwiftMailer/MessageFactory.php | 61 - .../symfony/monolog-bundle/composer.json | 42 - .../symfony/options-resolver/CHANGELOG.md | 96 - .../Debug/OptionsResolverIntrospector.php | 104 - .../Exception/AccessException.php | 22 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidOptionsException.php | 23 - .../Exception/MissingOptionsException.php | 23 - .../Exception/NoConfigurationException.php | 26 - .../Exception/NoSuchOptionException.php | 26 - .../Exception/OptionDefinitionException.php | 21 - .../Exception/UndefinedOptionsException.php | 24 - .../vendor/symfony/options-resolver/LICENSE | 19 - .../options-resolver/OptionConfigurator.php | 149 - .../symfony/options-resolver/Options.php | 22 - .../options-resolver/OptionsResolver.php | 1317 ---- .../vendor/symfony/options-resolver/README.md | 15 - .../symfony/options-resolver/composer.json | 29 - .../symfony/password-hasher/CHANGELOG.md | 13 - .../Command/UserPasswordHashCommand.php | 215 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidPasswordException.php | 23 - .../Exception/LogicException.php | 19 - .../Hasher/CheckPasswordLengthTrait.php | 25 - .../Hasher/MessageDigestPasswordHasher.php | 98 - .../Hasher/MigratingPasswordHasher.php | 64 - .../Hasher/NativePasswordHasher.php | 117 - .../Hasher/PasswordHasherAwareInterface.php | 26 - .../Hasher/PasswordHasherFactory.php | 240 - .../Hasher/PasswordHasherFactoryInterface.php | 31 - .../Hasher/Pbkdf2PasswordHasher.php | 90 - .../Hasher/PlaintextPasswordHasher.php | 79 - .../Hasher/SodiumPasswordHasher.php | 114 - .../Hasher/UserPasswordHasher.php | 71 - .../Hasher/UserPasswordHasherInterface.php | 37 - .../vendor/symfony/password-hasher/LICENSE | 19 - .../LegacyPasswordHasherInterface.php | 36 - .../PasswordHasherInterface.php | 43 - .../vendor/symfony/password-hasher/README.md | 40 - .../symfony/password-hasher/composer.json | 35 - .../polyfill-intl-grapheme/Grapheme.php | 247 - .../symfony/polyfill-intl-grapheme/LICENSE | 19 - .../symfony/polyfill-intl-grapheme/README.md | 31 - .../polyfill-intl-grapheme/bootstrap.php | 58 - .../polyfill-intl-grapheme/bootstrap80.php | 50 - .../polyfill-intl-grapheme/composer.json | 35 - .../symfony/polyfill-intl-normalizer/LICENSE | 19 - .../polyfill-intl-normalizer/Normalizer.php | 310 - .../polyfill-intl-normalizer/README.md | 14 - .../Resources/stubs/Normalizer.php | 17 - .../unidata/canonicalComposition.php | 945 --- .../unidata/canonicalDecomposition.php | 2065 ------ .../Resources/unidata/combiningClass.php | 876 --- .../unidata/compatibilityDecomposition.php | 3695 ---------- .../polyfill-intl-normalizer/bootstrap.php | 23 - .../polyfill-intl-normalizer/bootstrap80.php | 19 - .../polyfill-intl-normalizer/composer.json | 36 - .../vendor/symfony/polyfill-mbstring/LICENSE | 19 - .../symfony/polyfill-mbstring/Mbstring.php | 1045 --- .../symfony/polyfill-mbstring/README.md | 13 - .../Resources/unidata/caseFolding.php | 119 - .../Resources/unidata/lowerCase.php | 1397 ---- .../Resources/unidata/titleCaseRegexp.php | 5 - .../Resources/unidata/upperCase.php | 1489 ---- .../symfony/polyfill-mbstring/bootstrap.php | 172 - .../symfony/polyfill-mbstring/bootstrap80.php | 167 - .../symfony/polyfill-mbstring/composer.json | 39 - .../vendor/symfony/polyfill-php83/LICENSE | 19 - .../vendor/symfony/polyfill-php83/Php83.php | 197 - .../vendor/symfony/polyfill-php83/README.md | 22 - .../Resources/stubs/DateError.php | 16 - .../Resources/stubs/DateException.php | 16 - .../stubs/DateInvalidOperationException.php | 16 - .../stubs/DateInvalidTimeZoneException.php | 16 - .../DateMalformedIntervalStringException.php | 16 - .../DateMalformedPeriodStringException.php | 16 - .../stubs/DateMalformedStringException.php | 16 - .../Resources/stubs/DateObjectError.php | 16 - .../Resources/stubs/DateRangeError.php | 16 - .../Resources/stubs/Override.php | 20 - .../Resources/stubs/SQLite3Exception.php | 16 - .../symfony/polyfill-php83/bootstrap.php | 50 - .../symfony/polyfill-php83/bootstrap81.php | 22 - .../symfony/polyfill-php83/composer.json | 33 - .../vendor/symfony/polyfill-php84/LICENSE | 19 - .../vendor/symfony/polyfill-php84/Php84.php | 177 - .../vendor/symfony/polyfill-php84/README.md | 19 - .../Resources/stubs/Deprecated.php | 25 - .../symfony/polyfill-php84/bootstrap.php | 68 - .../symfony/polyfill-php84/composer.json | 33 - .../vendor/symfony/polyfill-uuid/LICENSE | 19 - .../vendor/symfony/polyfill-uuid/README.md | 12 - .../vendor/symfony/polyfill-uuid/Uuid.php | 531 -- .../symfony/polyfill-uuid/bootstrap.php | 97 - .../symfony/polyfill-uuid/bootstrap80.php | 89 - .../symfony/polyfill-uuid/composer.json | 38 - .../vendor/symfony/process/CHANGELOG.md | 123 - .../process/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../process/Exception/LogicException.php | 21 - .../Exception/ProcessFailedException.php | 57 - .../Exception/ProcessSignaledException.php | 41 - .../Exception/ProcessTimedOutException.php | 73 - .../Exception/RunProcessFailedException.php | 25 - .../process/Exception/RuntimeException.php | 21 - .../symfony/process/ExecutableFinder.php | 105 - .../vendor/symfony/process/InputStream.php | 99 - .../vendor/symfony/process/LICENSE | 19 - .../process/Messenger/RunProcessContext.php | 33 - .../process/Messenger/RunProcessMessage.php | 32 - .../Messenger/RunProcessMessageHandler.php | 33 - .../symfony/process/PhpExecutableFinder.php | 92 - .../vendor/symfony/process/PhpProcess.php | 69 - .../vendor/symfony/process/PhpSubprocess.php | 164 - .../symfony/process/Pipes/AbstractPipes.php | 176 - .../symfony/process/Pipes/PipesInterface.php | 61 - .../symfony/process/Pipes/UnixPipes.php | 148 - .../symfony/process/Pipes/WindowsPipes.php | 186 - .../vendor/symfony/process/Process.php | 1606 ----- .../vendor/symfony/process/ProcessUtils.php | 64 - .../vendor/symfony/process/README.md | 13 - .../vendor/symfony/process/composer.json | 28 - .../symfony/property-access/CHANGELOG.md | 88 - .../Exception/AccessException.php | 21 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../InvalidPropertyPathException.php | 21 - .../Exception/NoSuchIndexException.php | 21 - .../Exception/NoSuchPropertyException.php | 21 - .../Exception/OutOfBoundsException.php | 21 - .../Exception/RuntimeException.php | 21 - .../Exception/UnexpectedTypeException.php | 39 - .../UninitializedPropertyException.php | 21 - .../vendor/symfony/property-access/LICENSE | 19 - .../property-access/PropertyAccess.php | 40 - .../property-access/PropertyAccessor.php | 715 -- .../PropertyAccessorBuilder.php | 294 - .../PropertyAccessorInterface.php | 97 - .../symfony/property-access/PropertyPath.php | 206 - .../property-access/PropertyPathBuilder.php | 275 - .../property-access/PropertyPathInterface.php | 88 - .../property-access/PropertyPathIterator.php | 42 - .../PropertyPathIteratorInterface.php | 32 - .../vendor/symfony/property-access/README.md | 14 - .../symfony/property-access/composer.json | 33 - .../vendor/symfony/property-info/CHANGELOG.md | 57 - .../PropertyInfoConstructorPass.php | 38 - .../DependencyInjection/PropertyInfoPass.php | 54 - ...structorArgumentTypeExtractorInterface.php | 33 - .../Extractor/ConstructorExtractor.php | 42 - .../Extractor/PhpDocExtractor.php | 348 - .../Extractor/PhpStanExtractor.php | 323 - .../Extractor/ReflectionExtractor.php | 872 --- .../Extractor/SerializerExtractor.php | 52 - .../vendor/symfony/property-info/LICENSE | 19 - .../property-info/PhpStan/NameScope.php | 65 - .../PhpStan/NameScopeFactory.php | 70 - .../PropertyAccessExtractorInterface.php | 34 - .../PropertyDescriptionExtractorInterface.php | 30 - .../PropertyInfoCacheExtractor.php | 99 - .../property-info/PropertyInfoExtractor.php | 90 - .../PropertyInfoExtractorInterface.php | 23 - ...ropertyInitializableExtractorInterface.php | 25 - .../PropertyListExtractorInterface.php | 27 - .../property-info/PropertyReadInfo.php | 70 - .../PropertyReadInfoExtractorInterface.php | 25 - .../PropertyTypeExtractorInterface.php | 27 - .../property-info/PropertyWriteInfo.php | 117 - .../PropertyWriteInfoExtractorInterface.php | 25 - .../vendor/symfony/property-info/README.md | 14 - .../vendor/symfony/property-info/Type.php | 165 - .../property-info/Util/PhpDocTypeHelper.php | 198 - .../property-info/Util/PhpStanTypeHelper.php | 211 - .../symfony/property-info/composer.json | 52 - .../vendor/symfony/rate-limiter/CHANGELOG.md | 23 - .../symfony/rate-limiter/CompoundLimiter.php | 63 - .../Exception/InvalidIntervalException.php | 19 - .../MaxWaitDurationExceededException.php | 34 - .../Exception/RateLimitExceededException.php | 49 - .../ReserveNotSupportedException.php | 23 - .../vendor/symfony/rate-limiter/LICENSE | 19 - .../symfony/rate-limiter/LimiterInterface.php | 50 - .../rate-limiter/LimiterStateInterface.php | 28 - .../Policy/FixedWindowLimiter.php | 105 - .../symfony/rate-limiter/Policy/NoLimiter.php | 41 - .../symfony/rate-limiter/Policy/Rate.php | 118 - .../rate-limiter/Policy/ResetLimiterTrait.php | 33 - .../rate-limiter/Policy/SlidingWindow.php | 145 - .../Policy/SlidingWindowLimiter.php | 114 - .../rate-limiter/Policy/TokenBucket.php | 112 - .../Policy/TokenBucketLimiter.php | 124 - .../symfony/rate-limiter/Policy/Window.php | 109 - .../vendor/symfony/rate-limiter/README.md | 43 - .../vendor/symfony/rate-limiter/RateLimit.php | 77 - .../rate-limiter/RateLimiterFactory.php | 102 - .../symfony/rate-limiter/Reservation.php | 50 - .../rate-limiter/Storage/CacheStorage.php | 55 - .../rate-limiter/Storage/InMemoryStorage.php | 61 - .../rate-limiter/Storage/StorageInterface.php | 26 - .../symfony/rate-limiter/Util/TimeUtil.php | 27 - .../vendor/symfony/rate-limiter/composer.json | 34 - .../symfony/redis-messenger/CHANGELOG.md | 51 - .../vendor/symfony/redis-messenger/LICENSE | 19 - .../vendor/symfony/redis-messenger/README.md | 12 - .../redis-messenger/Transport/Connection.php | 717 -- .../Transport/RedisReceivedStamp.php | 32 - .../Transport/RedisReceiver.php | 114 - .../redis-messenger/Transport/RedisSender.php | 47 - .../Transport/RedisTransport.php | 77 - .../Transport/RedisTransportFactory.php | 37 - .../symfony/redis-messenger/composer.json | 34 - .../vendor/symfony/routing/Alias.php | 93 - .../symfony/routing/Annotation/Route.php | 23 - .../symfony/routing/Attribute/Route.php | 259 - .../vendor/symfony/routing/CHANGELOG.md | 326 - .../vendor/symfony/routing/CompiledRoute.php | 157 - .../AddExpressionLanguageProvidersPass.php | 36 - .../RoutingResolverPass.php | 43 - .../routing/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 16 - .../Exception/InvalidParameterException.php | 21 - .../Exception/MethodNotAllowedException.php | 44 - .../MissingMandatoryParametersException.php | 57 - .../Exception/NoConfigurationException.php | 21 - .../Exception/ResourceNotFoundException.php | 23 - .../RouteCircularReferenceException.php | 20 - .../Exception/RouteNotFoundException.php | 21 - .../routing/Exception/RuntimeException.php | 16 - .../Generator/CompiledUrlGenerator.php | 69 - .../ConfigurableRequirementsInterface.php | 53 - .../Dumper/CompiledUrlGeneratorDumper.php | 121 - .../Generator/Dumper/GeneratorDumper.php | 34 - .../Dumper/GeneratorDumperInterface.php | 33 - .../routing/Generator/UrlGenerator.php | 358 - .../Generator/UrlGeneratorInterface.php | 80 - .../vendor/symfony/routing/LICENSE | 19 - .../routing/Loader/AnnotationClassLoader.php | 25 - .../Loader/AnnotationDirectoryLoader.php | 25 - .../routing/Loader/AnnotationFileLoader.php | 25 - .../routing/Loader/AttributeClassLoader.php | 431 -- .../Loader/AttributeDirectoryLoader.php | 92 - .../routing/Loader/AttributeFileLoader.php | 145 - .../symfony/routing/Loader/ClosureLoader.php | 38 - .../Loader/Configurator/AliasConfigurator.php | 43 - .../Configurator/CollectionConfigurator.php | 128 - .../Configurator/ImportConfigurator.php | 90 - .../Loader/Configurator/RouteConfigurator.php | 56 - .../Configurator/RoutingConfigurator.php | 78 - .../Loader/Configurator/Traits/AddTrait.php | 60 - .../Loader/Configurator/Traits/HostTrait.php | 50 - .../Traits/LocalizedRouteTrait.php | 76 - .../Configurator/Traits/PrefixTrait.php | 63 - .../Loader/Configurator/Traits/RouteTrait.php | 175 - .../routing/Loader/ContainerLoader.php | 40 - .../routing/Loader/DirectoryLoader.php | 52 - .../symfony/routing/Loader/GlobFileLoader.php | 41 - .../symfony/routing/Loader/ObjectLoader.php | 77 - .../symfony/routing/Loader/PhpFileLoader.php | 77 - .../routing/Loader/Psr4DirectoryLoader.php | 91 - .../symfony/routing/Loader/XmlFileLoader.php | 472 -- .../symfony/routing/Loader/YamlFileLoader.php | 304 - .../Loader/schema/routing/routing-1.0.xsd | 201 - .../routing/Matcher/CompiledUrlMatcher.php | 31 - .../Dumper/CompiledUrlMatcherDumper.php | 501 -- .../Dumper/CompiledUrlMatcherTrait.php | 186 - .../routing/Matcher/Dumper/MatcherDumper.php | 34 - .../Matcher/Dumper/MatcherDumperInterface.php | 33 - .../Matcher/Dumper/StaticPrefixCollection.php | 204 - .../Matcher/ExpressionLanguageProvider.php | 51 - .../Matcher/RedirectableUrlMatcher.php | 61 - .../RedirectableUrlMatcherInterface.php | 29 - .../Matcher/RequestMatcherInterface.php | 37 - .../routing/Matcher/TraceableUrlMatcher.php | 172 - .../symfony/routing/Matcher/UrlMatcher.php | 287 - .../routing/Matcher/UrlMatcherInterface.php | 39 - .../vendor/symfony/routing/README.md | 66 - .../vendor/symfony/routing/RequestContext.php | 303 - .../routing/RequestContextAwareInterface.php | 27 - .../routing/Requirement/EnumRequirement.php | 56 - .../routing/Requirement/Requirement.php | 36 - .../vendor/symfony/routing/Route.php | 458 -- .../symfony/routing/RouteCollection.php | 415 -- .../vendor/symfony/routing/RouteCompiler.php | 339 - .../routing/RouteCompilerInterface.php | 28 - .../vendor/symfony/routing/Router.php | 358 - .../symfony/routing/RouterInterface.php | 35 - .../vendor/symfony/routing/composer.json | 44 - .../vendor/symfony/runtime/CHANGELOG.md | 19 - .../vendor/symfony/runtime/GenericRuntime.php | 223 - .../runtime/Internal/BasicErrorHandler.php | 53 - .../runtime/Internal/ComposerPlugin.php | 119 - .../Internal/Console/ApplicationRuntime.php | 21 - .../Console/Command/CommandRuntime.php | 21 - .../Console/Input/InputInterfaceRuntime.php | 21 - .../Console/Output/OutputInterfaceRuntime.php | 21 - .../HttpFoundation/RequestRuntime.php | 21 - .../HttpFoundation/ResponseRuntime.php | 21 - .../HttpKernel/HttpKernelInterfaceRuntime.php | 21 - .../runtime/Internal/MissingDotenv.php | 19 - .../runtime/Internal/SymfonyErrorHandler.php | 54 - .../Internal/autoload_runtime.template | 28 - .../vendor/symfony/runtime/LICENSE | 19 - .../vendor/symfony/runtime/README.md | 13 - .../runtime/Resolver/ClosureResolver.php | 31 - .../runtime/Resolver/DebugClosureResolver.php | 36 - .../symfony/runtime/ResolverInterface.php | 23 - .../symfony/runtime/Runner/ClosureRunner.php | 44 - .../Symfony/ConsoleApplicationRunner.php | 51 - .../Runner/Symfony/HttpKernelRunner.php | 58 - .../runtime/Runner/Symfony/ResponseRunner.php | 33 - .../symfony/runtime/RunnerInterface.php | 20 - .../symfony/runtime/RuntimeInterface.php | 34 - .../vendor/symfony/runtime/SymfonyRuntime.php | 234 - .../vendor/symfony/runtime/composer.json | 45 - .../symfony/security-bundle/CHANGELOG.md | 343 - .../CacheWarmer/ExpressionCacheWarmer.php | 48 - .../Command/DebugFirewallCommand.php | 275 - .../DataCollector/SecurityDataCollector.php | 352 - .../Debug/TraceableFirewallListener.php | 107 - .../Debug/TraceableListenerTrait.php | 51 - .../Debug/WrappedLazyListener.php | 57 - .../security-bundle/Debug/WrappedListener.php | 42 - .../AddExpressionLanguageProvidersPass.php | 42 - .../Compiler/AddSecurityVotersPass.php | 73 - .../AddSessionDomainConstraintPass.php | 48 - .../Compiler/CleanRememberMeVerifierPass.php | 33 - ...eFirewallsEventDispatcherTraceablePass.php | 73 - .../Compiler/RegisterCsrfFeaturesPass.php | 63 - .../Compiler/RegisterEntryPointPass.php | 86 - ...gisterGlobalSecurityEventListenersPass.php | 86 - .../Compiler/RegisterLdapLocatorPass.php | 39 - .../RegisterTokenUsageTrackingPass.php | 53 - .../ReplaceDecoratedRememberMeHandlerPass.php | 58 - .../Compiler/SortFirewallListenersPass.php | 78 - .../DependencyInjection/MainConfiguration.php | 479 -- .../AccessToken/OidcTokenHandlerFactory.php | 89 - .../OidcUserInfoTokenHandlerFactory.php | 74 - .../ServiceTokenHandlerFactory.php | 39 - .../TokenHandlerFactoryInterface.php | 36 - .../Security/Factory/AbstractFactory.php | 137 - .../Security/Factory/AccessTokenFactory.php | 166 - .../Factory/AuthenticatorFactoryInterface.php | 46 - .../Factory/CustomAuthenticatorFactory.php | 64 - .../FirewallListenerFactoryInterface.php | 31 - .../Security/Factory/FormLoginFactory.php | 85 - .../Security/Factory/FormLoginLdapFactory.php | 42 - .../Security/Factory/HttpBasicFactory.php | 60 - .../Security/Factory/HttpBasicLdapFactory.php | 87 - .../Security/Factory/JsonLoginFactory.php | 60 - .../Security/Factory/JsonLoginLdapFactory.php | 39 - .../Security/Factory/LdapFactoryTrait.php | 65 - .../Security/Factory/LoginLinkFactory.php | 151 - .../Factory/LoginThrottlingFactory.php | 119 - .../Security/Factory/RememberMeFactory.php | 247 - .../Security/Factory/RemoteUserFactory.php | 63 - .../Factory/SignatureAlgorithmFactory.php | 43 - ...StatelessAuthenticatorFactoryInterface.php | 28 - .../Security/Factory/X509Factory.php | 66 - .../Security/UserProvider/InMemoryFactory.php | 75 - .../Security/UserProvider/LdapFactory.php | 81 - .../UserProviderFactoryInterface.php | 39 - .../DependencyInjection/SecurityExtension.php | 1125 --- .../EventListener/FirewallListener.php | 75 - .../EventListener/VoteListener.php | 43 - .../vendor/symfony/security-bundle/LICENSE | 19 - .../FirewallAwareLoginLinkHandler.php | 50 - .../vendor/symfony/security-bundle/README.md | 13 - .../RememberMe/DecoratedRememberMeHandler.php | 48 - .../FirewallAwareRememberMeHandler.php | 54 - .../Resources/config/collectors.php | 33 - .../Resources/config/console.php | 25 - .../Resources/config/debug_console.php | 28 - .../Resources/config/password_hasher.php | 53 - .../Resources/config/schema/security-1.0.xsd | 470 -- .../Resources/config/security.php | 313 - .../config/security_authenticator.php | 167 - .../security_authenticator_access_token.php | 104 - .../security_authenticator_login_link.php | 70 - .../security_authenticator_remember_me.php | 101 - .../Resources/config/security_debug.php | 42 - .../Resources/config/security_listeners.php | 174 - .../Resources/config/templating_twig.php | 32 - .../Resources/views/Collector/icon.svg | 6 - .../views/Collector/security.html.twig | 506 -- .../Routing/LogoutRouteLoader.php | 49 - .../symfony/security-bundle/Security.php | 214 - .../Security/FirewallAwareTrait.php | 55 - .../Security/FirewallConfig.php | 107 - .../Security/FirewallContext.php | 73 - .../security-bundle/Security/FirewallMap.php | 81 - .../Security/LazyFirewallContext.php | 77 - .../Security/UserAuthenticator.php | 45 - .../security-bundle/SecurityBundle.php | 110 - .../symfony/security-bundle/composer.json | 79 - .../AuthenticationTrustResolver.php | 38 - .../AuthenticationTrustResolverInterface.php | 38 - .../RememberMe/CacheTokenVerifier.php | 69 - .../RememberMe/InMemoryTokenProvider.php | 72 - .../RememberMe/PersistentToken.php | 73 - .../RememberMe/PersistentTokenInterface.php | 48 - .../RememberMe/TokenProviderInterface.php | 56 - .../RememberMe/TokenVerifierInterface.php | 32 - .../Authentication/Token/AbstractToken.php | 179 - .../Authentication/Token/NullToken.php | 95 - .../Token/PreAuthenticatedToken.php | 56 - .../Authentication/Token/RememberMeToken.php | 71 - .../Token/Storage/TokenStorage.php | 70 - .../Token/Storage/TokenStorageInterface.php | 36 - .../Storage/UsageTrackingTokenStorage.php | 83 - .../Authentication/Token/SwitchUserToken.php | 66 - .../Authentication/Token/TokenInterface.php | 96 - .../Token/UsernamePasswordToken.php | 53 - .../security-core/AuthenticationEvents.php | 34 - .../Authorization/AccessDecisionManager.php | 125 - .../AccessDecisionManagerInterface.php | 30 - .../Authorization/AuthorizationChecker.php | 50 - .../AuthorizationCheckerInterface.php | 27 - .../Authorization/ExpressionLanguage.php | 40 - .../ExpressionLanguageProvider.php | 36 - .../AccessDecisionStrategyInterface.php | 25 - .../Strategy/AffirmativeStrategy.php | 58 - .../Strategy/ConsensusStrategy.php | 75 - .../Strategy/PriorityStrategy.php | 54 - .../Strategy/UnanimousStrategy.php | 59 - .../TraceableAccessDecisionManager.php | 109 - .../Voter/AuthenticatedVoter.php | 104 - .../Voter/CacheableVoterInterface.php | 30 - .../Authorization/Voter/ExpressionVoter.php | 99 - .../Voter/RoleHierarchyVoter.php | 41 - .../Authorization/Voter/RoleVoter.php | 68 - .../Authorization/Voter/TraceableVoter.php | 59 - .../Authorization/Voter/Voter.php | 95 - .../Authorization/Voter/VoterInterface.php | 41 - .../vendor/symfony/security-core/CHANGELOG.md | 65 - .../Event/AuthenticationEvent.php | 38 - .../Event/AuthenticationSuccessEvent.php | 16 - .../symfony/security-core/Event/VoteEvent.php | 58 - .../Exception/AccessDeniedException.php | 57 - .../Exception/AccountExpiredException.php | 26 - .../Exception/AccountStatusException.php | 54 - ...enticationCredentialsNotFoundException.php | 27 - .../Exception/AuthenticationException.php | 99 - .../AuthenticationExpiredException.php | 28 - .../AuthenticationServiceException.php | 26 - .../Exception/BadCredentialsException.php | 26 - .../Exception/CookieTheftException.php | 27 - .../Exception/CredentialsExpiredException.php | 26 - ...ustomUserMessageAccountStatusException.php | 70 - ...stomUserMessageAuthenticationException.php | 70 - .../Exception/DisabledException.php | 26 - .../Exception/ExceptionInterface.php | 21 - .../InsufficientAuthenticationException.php | 28 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidCsrfTokenException.php | 26 - .../Exception/LazyResponseException.php | 34 - .../Exception/LockedException.php | 26 - .../Exception/LogicException.php | 21 - .../Exception/LogoutException.php | 25 - .../Exception/ProviderNotFoundException.php | 27 - .../Exception/RuntimeException.php | 21 - .../Exception/SessionUnavailableException.php | 32 - .../Exception/TokenNotFoundException.php | 26 - ...nyLoginAttemptsAuthenticationException.php | 53 - .../Exception/UnsupportedUserException.php | 22 - .../Exception/UserNotFoundException.php | 61 - .../vendor/symfony/security-core/LICENSE | 19 - .../vendor/symfony/security-core/README.md | 63 - .../Resources/translations/security.af.xlf | 83 - .../Resources/translations/security.ar.xlf | 83 - .../Resources/translations/security.az.xlf | 83 - .../Resources/translations/security.be.xlf | 83 - .../Resources/translations/security.bg.xlf | 83 - .../Resources/translations/security.bs.xlf | 83 - .../Resources/translations/security.ca.xlf | 83 - .../Resources/translations/security.cs.xlf | 83 - .../Resources/translations/security.cy.xlf | 83 - .../Resources/translations/security.da.xlf | 83 - .../Resources/translations/security.de.xlf | 83 - .../Resources/translations/security.el.xlf | 83 - .../Resources/translations/security.en.xlf | 83 - .../Resources/translations/security.es.xlf | 83 - .../Resources/translations/security.et.xlf | 83 - .../Resources/translations/security.eu.xlf | 83 - .../Resources/translations/security.fa.xlf | 83 - .../Resources/translations/security.fi.xlf | 83 - .../Resources/translations/security.fr.xlf | 83 - .../Resources/translations/security.gl.xlf | 83 - .../Resources/translations/security.he.xlf | 83 - .../Resources/translations/security.hr.xlf | 83 - .../Resources/translations/security.hu.xlf | 83 - .../Resources/translations/security.hy.xlf | 83 - .../Resources/translations/security.id.xlf | 83 - .../Resources/translations/security.it.xlf | 83 - .../Resources/translations/security.ja.xlf | 83 - .../Resources/translations/security.lb.xlf | 83 - .../Resources/translations/security.lt.xlf | 83 - .../Resources/translations/security.lv.xlf | 83 - .../Resources/translations/security.mk.xlf | 83 - .../Resources/translations/security.mn.xlf | 83 - .../Resources/translations/security.my.xlf | 83 - .../Resources/translations/security.nb.xlf | 83 - .../Resources/translations/security.nl.xlf | 83 - .../Resources/translations/security.nn.xlf | 83 - .../Resources/translations/security.no.xlf | 83 - .../Resources/translations/security.pl.xlf | 83 - .../Resources/translations/security.pt.xlf | 83 - .../Resources/translations/security.pt_BR.xlf | 83 - .../Resources/translations/security.ro.xlf | 83 - .../Resources/translations/security.ru.xlf | 83 - .../Resources/translations/security.sk.xlf | 83 - .../Resources/translations/security.sl.xlf | 83 - .../Resources/translations/security.sq.xlf | 83 - .../translations/security.sr_Cyrl.xlf | 83 - .../translations/security.sr_Latn.xlf | 83 - .../Resources/translations/security.sv.xlf | 83 - .../Resources/translations/security.th.xlf | 83 - .../Resources/translations/security.tl.xlf | 83 - .../Resources/translations/security.tr.xlf | 83 - .../Resources/translations/security.uk.xlf | 83 - .../Resources/translations/security.ur.xlf | 83 - .../Resources/translations/security.uz.xlf | 83 - .../Resources/translations/security.vi.xlf | 83 - .../Resources/translations/security.zh_CN.xlf | 83 - .../Resources/translations/security.zh_TW.xlf | 83 - .../symfony/security-core/Role/Role.php | 31 - .../security-core/Role/RoleHierarchy.php | 81 - .../Role/RoleHierarchyInterface.php | 27 - .../security-core/Role/SwitchUserRole.php | 23 - .../vendor/symfony/security-core/Security.php | 69 - .../Exception/ExpiredSignatureException.php | 21 - .../Exception/InvalidSignatureException.php | 21 - .../Signature/ExpiredSignatureStorage.php | 51 - .../Signature/SignatureHasher.php | 135 - .../Test/AccessDecisionStrategyTestCase.php | 80 - .../AttributesBasedUserProviderInterface.php | 36 - .../security-core/User/ChainUserChecker.php | 36 - .../security-core/User/ChainUserProvider.php | 126 - .../security-core/User/EquatableInterface.php | 30 - .../security-core/User/InMemoryUser.php | 110 - .../User/InMemoryUserChecker.php | 45 - .../User/InMemoryUserProvider.php | 115 - ...gacyPasswordAuthenticatedUserInterface.php | 28 - .../User/MissingUserProvider.php | 53 - .../symfony/security-core/User/OidcUser.php | 182 - .../PasswordAuthenticatedUserInterface.php | 28 - .../User/PasswordUpgraderInterface.php | 27 - .../User/UserCheckerInterface.php | 43 - .../security-core/User/UserInterface.php | 61 - .../User/UserProviderInterface.php | 70 - .../Validator/Constraints/UserPassword.php | 44 - .../Constraints/UserPasswordValidator.php | 69 - .../symfony/security-core/composer.json | 53 - .../vendor/symfony/security-csrf/CHANGELOG.md | 13 - .../symfony/security-csrf/CsrfToken.php | 53 - .../security-csrf/CsrfTokenManager.php | 141 - .../CsrfTokenManagerInterface.php | 57 - .../Exception/TokenNotFoundException.php | 21 - .../vendor/symfony/security-csrf/LICENSE | 19 - .../vendor/symfony/security-csrf/README.md | 29 - .../TokenGeneratorInterface.php | 25 - .../TokenGenerator/UriSafeTokenGenerator.php | 46 - .../ClearableTokenStorageInterface.php | 25 - .../NativeSessionTokenStorage.php | 112 - .../TokenStorage/SessionTokenStorage.php | 112 - .../TokenStorage/TokenStorageInterface.php | 47 - .../symfony/security-csrf/composer.json | 35 - .../symfony/security-http/AccessMap.php | 48 - .../security-http/AccessMapInterface.php | 31 - .../AccessTokenExtractorInterface.php | 24 - .../AccessTokenHandlerInterface.php | 29 - .../AccessToken/ChainAccessTokenExtractor.php | 41 - .../AccessToken/FormEncodedBodyExtractor.php | 47 - .../HeaderAccessTokenExtractor.php | 49 - .../Exception/InvalidSignatureException.php | 25 - .../Oidc/Exception/MissingClaimException.php | 25 - .../AccessToken/Oidc/OidcTokenHandler.php | 109 - .../AccessToken/Oidc/OidcTrait.php | 53 - .../Oidc/OidcUserInfoTokenHandler.php | 64 - .../AccessToken/QueryAccessTokenExtractor.php | 44 - .../security-http/Attribute/CurrentUser.php | 27 - .../security-http/Attribute/IsGranted.php | 52 - .../AuthenticationFailureHandlerInterface.php | 33 - .../AuthenticationSuccessHandlerInterface.php | 33 - .../Authentication/AuthenticationUtils.php | 75 - .../Authentication/AuthenticatorManager.php | 269 - .../AuthenticatorManagerInterface.php | 35 - .../CustomAuthenticationFailureHandler.php | 40 - .../CustomAuthenticationSuccessHandler.php | 44 - .../DefaultAuthenticationFailureHandler.php | 100 - .../DefaultAuthenticationSuccessHandler.php | 123 - .../UserAuthenticatorInterface.php | 32 - .../Authenticator/AbstractAuthenticator.php | 33 - .../AbstractLoginFormAuthenticator.php | 74 - .../AbstractPreAuthenticatedAuthenticator.php | 130 - .../AccessTokenAuthenticator.php | 126 - .../Authenticator/AuthenticatorInterface.php | 87 - .../Debug/TraceableAuthenticator.php | 118 - .../TraceableAuthenticatorManagerListener.php | 89 - .../Authenticator/FallbackUserLoader.php | 32 - .../Authenticator/FormLoginAuthenticator.php | 164 - .../Authenticator/HttpBasicAuthenticator.php | 92 - .../InteractiveAuthenticatorInterface.php | 31 - .../Authenticator/JsonLoginAuthenticator.php | 175 - .../Authenticator/LoginLinkAuthenticator.php | 88 - .../Passport/Badge/BadgeInterface.php | 28 - .../Passport/Badge/CsrfTokenBadge.php | 64 - .../Passport/Badge/PasswordUpgradeBadge.php | 62 - .../Badge/PreAuthenticatedUserBadge.php | 33 - .../Passport/Badge/RememberMeBadge.php | 76 - .../Passport/Badge/UserBadge.php | 121 - .../Credentials/CredentialsInterface.php | 24 - .../Credentials/CustomCredentials.php | 56 - .../Credentials/PasswordCredentials.php | 58 - .../Authenticator/Passport/Passport.php | 129 - .../Passport/SelfValidatingPassport.php | 35 - .../Authenticator/RememberMeAuthenticator.php | 129 - .../Authenticator/RemoteUserAuthenticator.php | 50 - .../Token/PostAuthenticationToken.php | 68 - .../Authenticator/X509Authenticator.php | 62 - .../AccessDeniedHandlerInterface.php | 30 - .../vendor/symfony/security-http/CHANGELOG.md | 59 - .../Controller/SecurityTokenValueResolver.php | 50 - .../Controller/UserValueResolver.php | 80 - .../AuthenticationEntryPointInterface.php | 46 - .../Exception/NotAnEntryPointException.php | 25 - .../Event/AuthenticationTokenCreatedEvent.php | 48 - .../Event/CheckPassportEvent.php | 48 - .../Event/InteractiveLoginEvent.php | 41 - .../security-http/Event/LazyResponseEvent.php | 61 - .../security-http/Event/LoginFailureEvent.php | 86 - .../security-http/Event/LoginSuccessEvent.php | 98 - .../security-http/Event/LogoutEvent.php | 53 - .../security-http/Event/SwitchUserEvent.php | 56 - .../Event/TokenDeauthenticatedEvent.php | 51 - .../CheckCredentialsListener.php | 98 - .../CheckRememberMeConditionsListener.php | 72 - .../ClearSiteDataLogoutListener.php | 49 - .../CookieClearingLogoutListener.php | 53 - .../EventListener/CsrfProtectionListener.php | 61 - .../CsrfTokenClearingLogoutListener.php | 48 - .../EventListener/DefaultLogoutListener.php | 52 - .../IsGrantedAttributeListener.php | 122 - .../EventListener/LoginThrottlingListener.php | 87 - .../PasswordMigratingListener.php | 93 - .../EventListener/RememberMeListener.php | 85 - .../EventListener/SessionLogoutListener.php | 39 - .../EventListener/SessionStrategyListener.php | 62 - .../EventListener/UserCheckerListener.php | 62 - .../EventListener/UserProviderListener.php | 50 - .../vendor/symfony/security-http/Firewall.php | 144 - .../Firewall/AbstractListener.php | 34 - .../security-http/Firewall/AccessListener.php | 98 - .../Firewall/AuthenticatorManagerListener.php | 47 - .../Firewall/ChannelListener.php | 100 - .../Firewall/ContextListener.php | 337 - .../Firewall/ExceptionListener.php | 234 - .../Firewall/FirewallListenerInterface.php | 45 - .../security-http/Firewall/LogoutListener.php | 111 - .../Firewall/SwitchUserListener.php | 229 - .../symfony/security-http/FirewallMap.php | 53 - .../security-http/FirewallMapInterface.php | 42 - .../symfony/security-http/HttpUtils.php | 174 - .../Impersonate/ImpersonateUrlGenerator.php | 92 - .../vendor/symfony/security-http/LICENSE | 19 - .../Exception/ExpiredLoginLinkException.php | 21 - ...nvalidLoginLinkAuthenticationException.php | 27 - .../Exception/InvalidLoginLinkException.php | 19 - .../InvalidLoginLinkExceptionInterface.php | 19 - .../LoginLink/LoginLinkDetails.php | 42 - .../LoginLink/LoginLinkHandler.php | 116 - .../LoginLink/LoginLinkHandlerInterface.php | 37 - .../LoginLink/LoginLinkNotification.php | 71 - .../Logout/LogoutUrlGenerator.php | 165 - .../security-http/ParameterBagUtils.php | 89 - .../vendor/symfony/security-http/README.md | 37 - .../RateLimiter/DefaultLoginRateLimiter.php | 63 - .../RememberMe/AbstractRememberMeHandler.php | 113 - .../PersistentRememberMeHandler.php | 180 - .../RememberMe/RememberMeDetails.php | 92 - .../RememberMe/RememberMeHandlerInterface.php | 54 - .../RememberMe/ResponseListener.php | 51 - .../RememberMe/SignatureRememberMeHandler.php | 78 - .../symfony/security-http/SecurityEvents.php | 47 - .../SecurityRequestAttributes.php | 24 - .../Session/SessionAuthenticationStrategy.php | 73 - ...SessionAuthenticationStrategyInterface.php | 36 - .../security-http/Util/TargetPathTrait.php | 46 - .../symfony/security-http/composer.json | 55 - .../service-contracts/Attribute/Required.php | 25 - .../Attribute/SubscribedService.php | 47 - .../symfony/service-contracts/CHANGELOG.md | 5 - .../vendor/symfony/service-contracts/LICENSE | 19 - .../symfony/service-contracts/README.md | 9 - .../service-contracts/ResetInterface.php | 33 - .../ServiceCollectionInterface.php | 26 - .../service-contracts/ServiceLocatorTrait.php | 114 - .../ServiceMethodsSubscriberTrait.php | 80 - .../ServiceProviderInterface.php | 45 - .../ServiceSubscriberInterface.php | 62 - .../ServiceSubscriberTrait.php | 84 - .../Test/ServiceLocatorTest.php | 23 - .../Test/ServiceLocatorTestCase.php | 97 - .../symfony/service-contracts/composer.json | 42 - .../vendor/symfony/stopwatch/CHANGELOG.md | 24 - .../vendor/symfony/stopwatch/LICENSE | 19 - .../vendor/symfony/stopwatch/README.md | 42 - .../vendor/symfony/stopwatch/Section.php | 157 - .../vendor/symfony/stopwatch/Stopwatch.php | 159 - .../symfony/stopwatch/StopwatchEvent.php | 226 - .../symfony/stopwatch/StopwatchPeriod.php | 73 - .../vendor/symfony/stopwatch/composer.json | 29 - .../vendor/symfony/string/AbstractString.php | 702 -- .../symfony/string/AbstractUnicodeString.php | 596 -- .../vendor/symfony/string/ByteString.php | 485 -- .../vendor/symfony/string/CHANGELOG.md | 40 - .../vendor/symfony/string/CodePointString.php | 260 - .../string/Exception/ExceptionInterface.php | 16 - .../Exception/InvalidArgumentException.php | 16 - .../string/Exception/RuntimeException.php | 16 - .../string/Inflector/EnglishInflector.php | 589 -- .../string/Inflector/FrenchInflector.php | 151 - .../string/Inflector/InflectorInterface.php | 33 - .../vendor/symfony/string/LICENSE | 19 - .../vendor/symfony/string/LazyString.php | 145 - .../vendor/symfony/string/README.md | 14 - .../Resources/data/wcswidth_table_wide.php | 1175 ---- .../Resources/data/wcswidth_table_zero.php | 1459 ---- .../symfony/string/Resources/functions.php | 38 - .../symfony/string/Slugger/AsciiSlugger.php | 210 - .../string/Slugger/SluggerInterface.php | 27 - .../vendor/symfony/string/UnicodeString.php | 385 -- .../vendor/symfony/string/composer.json | 43 - .../vendor/symfony/uid/AbstractUid.php | 178 - .../vendor/symfony/uid/BinaryUtil.php | 175 - .../vendor/symfony/uid/CHANGELOG.md | 36 - .../uid/Command/GenerateUlidCommand.php | 119 - .../uid/Command/GenerateUuidCommand.php | 208 - .../uid/Command/InspectUlidCommand.php | 67 - .../uid/Command/InspectUuidCommand.php | 85 - .../uid/Factory/NameBasedUuidFactory.php | 44 - .../uid/Factory/RandomBasedUuidFactory.php | 31 - .../uid/Factory/TimeBasedUuidFactory.php | 44 - .../symfony/uid/Factory/UlidFactory.php | 22 - .../symfony/uid/Factory/UuidFactory.php | 95 - .../priceservice/vendor/symfony/uid/LICENSE | 19 - .../vendor/symfony/uid/MaxUlid.php | 20 - .../vendor/symfony/uid/MaxUuid.php | 22 - .../vendor/symfony/uid/NilUlid.php | 20 - .../vendor/symfony/uid/NilUuid.php | 25 - .../priceservice/vendor/symfony/uid/README.md | 16 - .../symfony/uid/TimeBasedUidInterface.php | 22 - .../priceservice/vendor/symfony/uid/Ulid.php | 208 - .../priceservice/vendor/symfony/uid/Uuid.php | 185 - .../vendor/symfony/uid/UuidV1.php | 73 - .../vendor/symfony/uid/UuidV3.php | 29 - .../vendor/symfony/uid/UuidV4.php | 36 - .../vendor/symfony/uid/UuidV5.php | 29 - .../vendor/symfony/uid/UuidV6.php | 66 - .../vendor/symfony/uid/UuidV7.php | 125 - .../vendor/symfony/uid/UuidV8.php | 27 - .../vendor/symfony/uid/composer.json | 36 - .../vendor/symfony/var-dumper/CHANGELOG.md | 91 - .../symfony/var-dumper/Caster/AmqpCaster.php | 227 - .../symfony/var-dumper/Caster/ArgsStub.php | 80 - .../symfony/var-dumper/Caster/Caster.php | 198 - .../symfony/var-dumper/Caster/ClassStub.php | 107 - .../symfony/var-dumper/Caster/ConstStub.php | 33 - .../var-dumper/Caster/CutArrayStub.php | 30 - .../symfony/var-dumper/Caster/CutStub.php | 64 - .../symfony/var-dumper/Caster/DOMCaster.php | 305 - .../symfony/var-dumper/Caster/DateCaster.php | 139 - .../var-dumper/Caster/DoctrineCaster.php | 71 - .../symfony/var-dumper/Caster/DsCaster.php | 70 - .../symfony/var-dumper/Caster/DsPairStub.php | 28 - .../symfony/var-dumper/Caster/EnumStub.php | 30 - .../var-dumper/Caster/ExceptionCaster.php | 419 -- .../symfony/var-dumper/Caster/FFICaster.php | 171 - .../symfony/var-dumper/Caster/FiberCaster.php | 46 - .../symfony/var-dumper/Caster/FrameStub.php | 30 - .../symfony/var-dumper/Caster/GmpCaster.php | 32 - .../var-dumper/Caster/ImagineCaster.php | 37 - .../symfony/var-dumper/Caster/ImgStub.php | 26 - .../symfony/var-dumper/Caster/IntlCaster.php | 187 - .../symfony/var-dumper/Caster/LinkStub.php | 105 - .../var-dumper/Caster/MemcachedCaster.php | 84 - .../var-dumper/Caster/MysqliCaster.php | 33 - .../symfony/var-dumper/Caster/PdoCaster.php | 128 - .../symfony/var-dumper/Caster/PgSqlCaster.php | 165 - .../var-dumper/Caster/ProxyManagerCaster.php | 36 - .../var-dumper/Caster/RdKafkaCaster.php | 222 - .../symfony/var-dumper/Caster/RedisCaster.php | 159 - .../var-dumper/Caster/ReflectionCaster.php | 491 -- .../var-dumper/Caster/ResourceCaster.php | 106 - .../symfony/var-dumper/Caster/ScalarStub.php | 27 - .../symfony/var-dumper/Caster/SplCaster.php | 286 - .../symfony/var-dumper/Caster/StubCaster.php | 107 - .../var-dumper/Caster/SymfonyCaster.php | 141 - .../symfony/var-dumper/Caster/TraceStub.php | 36 - .../var-dumper/Caster/UninitializedStub.php | 25 - .../symfony/var-dumper/Caster/UuidCaster.php | 30 - .../var-dumper/Caster/XmlReaderCaster.php | 95 - .../var-dumper/Caster/XmlResourceCaster.php | 66 - .../var-dumper/Cloner/AbstractCloner.php | 397 -- .../var-dumper/Cloner/ClonerInterface.php | 23 - .../symfony/var-dumper/Cloner/Cursor.php | 43 - .../vendor/symfony/var-dumper/Cloner/Data.php | 434 -- .../var-dumper/Cloner/DumperInterface.php | 61 - .../var-dumper/Cloner/Internal/NoDefault.php | 25 - .../vendor/symfony/var-dumper/Cloner/Stub.php | 75 - .../symfony/var-dumper/Cloner/VarCloner.php | 243 - .../Command/Descriptor/CliDescriptor.php | 79 - .../Descriptor/DumpDescriptorInterface.php | 23 - .../Command/Descriptor/HtmlDescriptor.php | 119 - .../var-dumper/Command/ServerDumpCommand.php | 112 - .../var-dumper/Dumper/AbstractDumper.php | 204 - .../symfony/var-dumper/Dumper/CliDumper.php | 689 -- .../ContextProvider/CliContextProvider.php | 32 - .../ContextProviderInterface.php | 22 - .../RequestContextProvider.php | 51 - .../ContextProvider/SourceContextProvider.php | 127 - .../Dumper/ContextualizedDumper.php | 46 - .../var-dumper/Dumper/DataDumperInterface.php | 27 - .../symfony/var-dumper/Dumper/HtmlDumper.php | 1003 --- .../var-dumper/Dumper/ServerDumper.php | 55 - .../Exception/ThrowingCasterException.php | 26 - .../vendor/symfony/var-dumper/LICENSE | 19 - .../vendor/symfony/var-dumper/README.md | 15 - .../var-dumper/Resources/bin/var-dump-server | 67 - .../Resources/css/htmlDescriptor.css | 130 - .../var-dumper/Resources/functions/dump.php | 62 - .../var-dumper/Resources/js/htmlDescriptor.js | 10 - .../symfony/var-dumper/Server/Connection.php | 97 - .../symfony/var-dumper/Server/DumpServer.php | 109 - .../var-dumper/Test/VarDumperTestTrait.php | 84 - .../vendor/symfony/var-dumper/VarDumper.php | 127 - .../vendor/symfony/var-dumper/composer.json | 46 - .../vendor/symfony/var-exporter/CHANGELOG.md | 25 - .../Exception/ClassNotFoundException.php | 20 - .../Exception/ExceptionInterface.php | 16 - .../var-exporter/Exception/LogicException.php | 16 - .../NotInstantiableTypeException.php | 20 - .../vendor/symfony/var-exporter/Hydrator.php | 78 - .../symfony/var-exporter/Instantiator.php | 59 - .../var-exporter/Internal/Exporter.php | 421 -- .../var-exporter/Internal/Hydrator.php | 329 - .../Internal/LazyObjectRegistry.php | 177 - .../var-exporter/Internal/LazyObjectState.php | 133 - .../var-exporter/Internal/LazyObjectTrait.php | 34 - .../var-exporter/Internal/Reference.php | 28 - .../var-exporter/Internal/Registry.php | 144 - .../symfony/var-exporter/Internal/Values.php | 27 - .../vendor/symfony/var-exporter/LICENSE | 19 - .../symfony/var-exporter/LazyGhostTrait.php | 409 -- .../var-exporter/LazyObjectInterface.php | 32 - .../symfony/var-exporter/LazyProxyTrait.php | 355 - .../symfony/var-exporter/ProxyHelper.php | 551 -- .../vendor/symfony/var-exporter/README.md | 137 - .../symfony/var-exporter/VarExporter.php | 114 - .../vendor/symfony/var-exporter/composer.json | 34 - .../vendor/symfony/yaml/CHANGELOG.md | 253 - .../symfony/yaml/Command/LintCommand.php | 276 - .../vendor/symfony/yaml/Dumper.php | 178 - .../vendor/symfony/yaml/Escaper.php | 95 - .../symfony/yaml/Exception/DumpException.php | 21 - .../yaml/Exception/ExceptionInterface.php | 21 - .../symfony/yaml/Exception/ParseException.php | 132 - .../yaml/Exception/RuntimeException.php | 21 - .../vendor/symfony/yaml/Inline.php | 841 --- .../priceservice/vendor/symfony/yaml/LICENSE | 19 - .../vendor/symfony/yaml/Parser.php | 1264 ---- .../vendor/symfony/yaml/README.md | 13 - .../symfony/yaml/Resources/bin/yaml-lint | 49 - .../vendor/symfony/yaml/Tag/TaggedValue.php | 38 - .../vendor/symfony/yaml/Unescaper.php | 108 - .../priceservice/vendor/symfony/yaml/Yaml.php | 97 - .../vendor/symfony/yaml/composer.json | 39 - 5111 files changed, 1 insertion(+), 552323 deletions(-) delete mode 100644 projects/aak/Skript.pdf delete mode 100644 projects/priceservice/.env delete mode 100644 projects/priceservice/.env.local delete mode 100644 projects/priceservice/.gitignore delete mode 100755 projects/priceservice/bin/console delete mode 100644 projects/priceservice/composer.json delete mode 100644 projects/priceservice/composer.lock delete mode 100644 projects/priceservice/config/bundles.php delete mode 100644 projects/priceservice/config/mitho/settings.yaml delete mode 100644 projects/priceservice/config/packages/cache.yaml delete mode 100644 projects/priceservice/config/packages/doctrine.yaml delete mode 100644 projects/priceservice/config/packages/doctrine_migrations.yaml delete mode 100644 projects/priceservice/config/packages/framework.yaml delete mode 100644 projects/priceservice/config/packages/lock.yaml delete mode 100644 projects/priceservice/config/packages/messenger.yaml delete mode 100644 projects/priceservice/config/packages/monolog.yaml delete mode 100644 projects/priceservice/config/packages/rate_limiter.yaml delete mode 100644 projects/priceservice/config/packages/routing.yaml delete mode 100644 projects/priceservice/config/packages/security.yaml delete mode 100644 projects/priceservice/config/packages/uid.yaml delete mode 100644 projects/priceservice/config/preload.php delete mode 100644 projects/priceservice/config/routes.yaml delete mode 100644 projects/priceservice/config/routes/framework.yaml delete mode 100644 projects/priceservice/config/routes/security.yaml delete mode 100644 projects/priceservice/config/services.yaml delete mode 100644 projects/priceservice/migrations/.gitignore delete mode 100644 projects/priceservice/public/index.php delete mode 100644 projects/priceservice/src/Command/RedisImportCommand.php delete mode 100644 projects/priceservice/src/Command/RedisReadCommand.php delete mode 100644 projects/priceservice/src/Command/TriggerTestCommand.php delete mode 100644 projects/priceservice/src/Controller/.gitignore delete mode 100644 projects/priceservice/src/Controller/Api/PricesController.php delete mode 100644 projects/priceservice/src/Controller/Trigger/PriceTriggerController.php delete mode 100644 projects/priceservice/src/Entity/.gitignore delete mode 100644 projects/priceservice/src/Kernel.php delete mode 100644 projects/priceservice/src/Message/SendNotification.php delete mode 100644 projects/priceservice/src/Message/TriggerPriceImport.php delete mode 100644 projects/priceservice/src/MessageHandler/TriggerPriceImportHandler.php delete mode 100644 projects/priceservice/src/Repository/.gitignore delete mode 100644 projects/priceservice/src/Service/Adapter/Orm.php delete mode 100644 projects/priceservice/src/Service/Adapter/RedisClientService.php delete mode 100644 projects/priceservice/src/Service/Prices/RedisImportService.php delete mode 100644 projects/priceservice/src/Service/Prices/RedisReadService.php delete mode 100644 projects/priceservice/symfony.lock delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.lock delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.meta delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.preload.php delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml.meta delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainerCompiler.log delete mode 100644 projects/priceservice/var/cache/dev/App_KernelDevDebugContainerDeprecations.log delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x.legacy delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/App_KernelDevDebugContainer.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/EntityManagerGhostEbeb667.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/RequestPayloadValueResolverGhost3590451.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_App_TaggableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_GlobalClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_Messenger_RestartWorkersSignalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_RateLimiterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConfigBuilder_WarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_CommandLoaderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AboutService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AssetsInstallService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheClearService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolClearService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolDeleteService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolInvalidateTagsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolListService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolPruneService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheWarmupService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDumpReferenceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerLintService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DebugAutowiringService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DotenvDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_EventDispatcherDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerConsumeMessagesService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerSetupTransportsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStatsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStopWorkersService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterMatchService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsDecryptToLocalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsEncryptFromLocalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsGenerateKeyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsListService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsRemoveService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsSetService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_YamlLintService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_ErrorListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorsLocatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_GetRoutingConditionServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_ErrorHandlerConfiguratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Voter_VoteListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_CurrentCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DiffCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DumpSchemaCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_ExecuteCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_GenerateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_LatestCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_MigrateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_RollupCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_StatusCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_SyncMetadataCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_UpToDateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionsCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearMetadataCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearQueryCacheCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearResultCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheCollectionRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearEntityRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearQueryRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseCreateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseDropCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnectionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnection_EventManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_MappingInfoCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_DependencyFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Command_EntityManagerProviderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultConfigurationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultEntityManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_ProxyCacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QueryDqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QuerySqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaCreateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaDropCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaUpdateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaValidateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UlidGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UuidGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getErrorControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_TransportService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_UriTemplateService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getLoaderInterfaceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeAuthService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCrudService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeDockerDatabaseService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeEntityService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFixturesService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFormService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessengerMiddlewareService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMigrationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeRegistrationFormService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeResetPasswordService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeScheduleService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityCustomService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityFormLoginService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerEncoderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerNormalizerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeStimulusControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTestService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigComponentService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigExtensionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeUserService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeValidatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeWebhookService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_DoctrineHelperService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_EntityClassGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileLinkFormatterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_GeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_Renderer_FormTypeRendererService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getManagerRegistryAwareConnectionProviderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_HandleMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_SendMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_TraceableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_DefaultBusService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_ReceiverLocatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_SendFailedMessageForRetryListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_RoutableMessageBusService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_AsyncService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_Sync_FactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Handler_DeprecationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_CacheService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_DeprecationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_MessengerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPriceTriggerControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPricesControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedirectControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouter_CacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouting_LoaderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRunSqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecrets_VaultService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessMapService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Authentication_SessionStrategyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_ChannelListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_DebugFirewallService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_UserPasswordHashService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenStorageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_HttpUtilsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CheckAuthenticatorCredentialsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CsrfProtectionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_PasswordMigratingService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Logout_Listener_CsrfTokenClearingService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_PasswordHasherFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_RouteLoader_LogoutService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getServicesResetterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_FactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_Handler_NativeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTemplateControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerPriceImportHandlerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Cache_RateLimiter_TaggableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_About_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_AssetsInstall_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheClear_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolClear_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolDelete_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolInvalidateTags_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolList_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolPrune_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheWarmup_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDumpReference_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerLint_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DebugAutowiring_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DotenvDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_EventDispatcherDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerConsumeMessages_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerSetupTransports_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStats_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStopWorkers_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterMatch_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsDecryptToLocal_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsEncryptFromLocal_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsGenerateKey_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsList_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsRemove_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsSet_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_YamlLint_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_SessionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_UidService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_UserValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_CurrentCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DiffCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_ExecuteCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_GenerateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_LatestCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_MigrateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_RollupCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_StatusCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_UpToDateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionsCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Lock_Default_Store_TTEhGTService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeAuth_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeController_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCrud_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeEntity_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeFixtures_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeForm_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeListener_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessage_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMigration_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeResetPassword_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSchedule_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeStimulusController_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTest_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeUser_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeValidator_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeVoter_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeWebhook_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_6kVvRT_Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_F4AMIZdService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_KEzMhfsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_P4QvabmService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_QXXNQ9dService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_DebugFirewall_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_UserPasswordHash_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_B4dyivWService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_HBdvAhpService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_O2p6Lk7Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_SPNPNE7Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_Y4Zrx_Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerGfxmI0x/removed-ids.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/App_KernelDevDebugContainer.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/EntityManagerGhostEbeb667.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_App_TaggableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_GlobalClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_RateLimiterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemClearerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConfigBuilder_WarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_CommandLoaderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AboutService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AssetsInstallService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheClearService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolClearService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolDeleteService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolInvalidateTagsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolListService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolPruneService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheWarmupService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDumpReferenceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerLintService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DebugAutowiringService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DotenvDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_EventDispatcherDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerConsumeMessagesService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerSetupTransportsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStatsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStopWorkersService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterDebugService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterMatchService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsDecryptToLocalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsEncryptFromLocalService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsGenerateKeyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsListService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsRemoveService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsSetService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_YamlLintService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_ErrorListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_CurrentCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DiffCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DumpSchemaCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_ExecuteCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_GenerateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_LatestCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_MigrateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_RollupCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_StatusCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_SyncMetadataCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_UpToDateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionsCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearMetadataCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearQueryCacheCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearResultCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheCollectionRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearEntityRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearQueryRegionCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseCreateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseDropCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_MappingInfoCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_DependencyFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Command_EntityManagerProviderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_ProxyCacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QueryDqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QuerySqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaCreateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaDropCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaUpdateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaValidateCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getErrorControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_TransportService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_UriTemplateService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getLoaderInterfaceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeAuthService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCrudService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeDockerDatabaseService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeEntityService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFixturesService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFormService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessengerMiddlewareService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMigrationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeRegistrationFormService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeResetPasswordService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeScheduleService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityCustomService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityFormLoginService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerEncoderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerNormalizerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeStimulusControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTestService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigComponentService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigExtensionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeUserService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeValidatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeWebhookService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_DoctrineHelperService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_EntityClassGeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileLinkFormatterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_GeneratorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_Renderer_FormTypeRendererService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getManagerRegistryAwareConnectionProviderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_DefaultBusService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_ReceiverLocatorService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_CacheService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPriceTriggerControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPricesControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedirectControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouter_CacheWarmerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouting_LoaderService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRunSqlCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecrets_VaultService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessMapService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_ChannelListenerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_DebugFirewallService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_UserPasswordHashService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_HttpUtilsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getServicesResetterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_FactoryService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_Handler_NativeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTemplateControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommandService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Cache_RateLimiter_TaggableService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_About_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_AssetsInstall_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheClear_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolClear_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolDelete_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolInvalidateTags_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolList_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolPrune_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheWarmup_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDumpReference_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerLint_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DebugAutowiring_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DotenvDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_EventDispatcherDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerConsumeMessages_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerSetupTransports_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStats_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStopWorkers_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterDebug_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterMatch_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsDecryptToLocal_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsEncryptFromLocal_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsGenerateKey_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsList_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsRemove_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsSet_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_YamlLint_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_CurrentCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DiffCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_ExecuteCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_GenerateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_LatestCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_MigrateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_RollupCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_StatusCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_UpToDateCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionsCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeAuth_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCommand_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeController_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCrud_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeEntity_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeFixtures_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeForm_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeListener_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessage_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMigration_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeResetPassword_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSchedule_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeStimulusController_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTest_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeUser_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeValidator_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeVoter_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeWebhook_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_DebugFirewall_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_UserPasswordHash_LazyService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_SPNPNE7Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php delete mode 100644 projects/priceservice/var/cache/dev/ContainerJu8t4eN/removed-ids.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/ReplicaConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/SlaveConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/TypeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/DbalConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/ControllerResolverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/DqlConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig/EventConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListenersConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/FilterConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MappingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MetadataCacheDriverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/QueryCacheDriverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/ResultCacheDriverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/LoggerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionCacheDriverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig/CacheDriverConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCacheConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/OrmConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/DoctrineConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/Storage/TableStorageConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/StorageConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrationsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/AnnotationsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetMapperConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Assets/PackageConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Cache/PoolConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/CacheConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/CsrfProtectionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/EsiConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/ExceptionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Form/CsrfProtectionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/FormConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/FragmentsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizer/SanitizerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpCacheConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/PeerFingerprintConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailed/HttpCodeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailedConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptionsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/PeerFingerprintConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailed/HttpCodeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailedConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClientConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/LockConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/EnvelopeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/HeaderConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/MailerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/DefaultMiddlewareConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/MiddlewareConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/RoutingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/Serializer/SymfonySerializerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/SerializerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig/RetryStrategyConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/MessengerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Notifier/AdminRecipientConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/NotifierConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/PhpErrorsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/ProfilerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyAccessConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyInfoConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig/RateConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiterConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RemoteeventConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RequestConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/RouterConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SchedulerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SecretsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SemaphoreConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Serializer/MappingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SerializerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SessionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/SsiConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/ProviderConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/PseudoLocalizationConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/TranslatorConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/UidConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/AutoMappingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/MappingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/NotCompromisedPasswordConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/ValidationConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebLinkConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Webhook/RoutingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebhookConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/AuditTrailConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/MarkingStoreConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/PlaceConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/TransitionConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Framework/WorkflowsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/FrameworkConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/MakerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ChannelsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ElasticsearchConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/EmailPrototypeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ExcludedHttpCodeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/MongoConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PredisConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ProcessPsr3MessagesConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PublisherConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/RedisConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/VerbosityLevelsConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/MonologConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessControlConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessDecisionManagerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcUserInfoConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandlerConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessTokenConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginLdapConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicLdapConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginLdapConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginLinkConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginThrottlingConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/Logout/DeleteCookieConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LogoutConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProvider/DoctrineConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProviderConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMeConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RemoteUserConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/SwitchUserConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/X509Config.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/PasswordHasherConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/ChainConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/EntityConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/LdapConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/Memory/UserConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/MemoryConfig.php delete mode 100644 projects/priceservice/var/cache/dev/Symfony/Config/SecurityConfig.php delete mode 100644 projects/priceservice/var/cache/dev/annotations.map delete mode 100644 projects/priceservice/var/cache/dev/url_generating_routes.php delete mode 100644 projects/priceservice/var/cache/dev/url_generating_routes.php.meta delete mode 100644 projects/priceservice/var/cache/dev/url_matching_routes.php delete mode 100644 projects/priceservice/var/cache/dev/url_matching_routes.php.meta delete mode 100644 projects/priceservice/var/log/cron-import.log delete mode 100644 projects/priceservice/var/log/dev-2026-06-03.log delete mode 100644 projects/priceservice/var/log/dev.log delete mode 100644 projects/priceservice/vendor/autoload.php delete mode 100644 projects/priceservice/vendor/autoload_runtime.php delete mode 100755 projects/priceservice/vendor/bin/doctrine-migrations delete mode 100755 projects/priceservice/vendor/bin/patch-type-declarations delete mode 100755 projects/priceservice/vendor/bin/php-parse delete mode 100755 projects/priceservice/vendor/bin/sql-formatter delete mode 100755 projects/priceservice/vendor/bin/var-dump-server delete mode 100755 projects/priceservice/vendor/bin/yaml-lint delete mode 100644 projects/priceservice/vendor/composer/ClassLoader.php delete mode 100644 projects/priceservice/vendor/composer/InstalledVersions.php delete mode 100644 projects/priceservice/vendor/composer/LICENSE delete mode 100644 projects/priceservice/vendor/composer/autoload_classmap.php delete mode 100644 projects/priceservice/vendor/composer/autoload_files.php delete mode 100644 projects/priceservice/vendor/composer/autoload_namespaces.php delete mode 100644 projects/priceservice/vendor/composer/autoload_psr4.php delete mode 100644 projects/priceservice/vendor/composer/autoload_real.php delete mode 100644 projects/priceservice/vendor/composer/autoload_static.php delete mode 100644 projects/priceservice/vendor/composer/installed.json delete mode 100644 projects/priceservice/vendor/composer/installed.php delete mode 100644 projects/priceservice/vendor/composer/platform_check.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/CONTRIBUTING.md delete mode 100644 projects/priceservice/vendor/doctrine/collections/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/collections/README.md delete mode 100644 projects/priceservice/vendor/doctrine/collections/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/collections/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/derived-collections.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/expression-builder.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/expressions.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/index.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/lazy-collections.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/serialization.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/docs/en/sidebar.rst delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/AbstractLazyCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/ArrayCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Collection.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Criteria.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/ClosureExpressionVisitor.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/Comparison.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/CompositeExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/Expression.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/ExpressionVisitor.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Expr/Value.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/ExpressionBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Order.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/ReadableCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/collections/src/Selectable.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/CONTRIBUTING.md delete mode 100644 projects/priceservice/vendor/doctrine/dbal/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/dbal/README.md delete mode 100644 projects/priceservice/vendor/doctrine/dbal/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/dbal/phpstan-baseline.neon delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ArrayParameterType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception/MissingNamedParameter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception/MissingPositionalParameter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Cache/ArrayResult.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Cache/CacheException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Cache/Exception/NoCacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Cache/Exception/NoResultDriverConfigured.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Cache/QueryCacheProfile.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ColumnCase.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Configuration.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Connection/StaticServerVersionProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ConnectionException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/IBMDB2/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/OCI/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/PostgreSQL/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLSrv/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLite/ExceptionConverter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractDB2Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver/EasyConnectString.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractPostgreSQLDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLServerDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLServerDriver/Exception/PortWithoutHost.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLiteDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLiteDriver/Middleware/EnableForeignKeys.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Exception/IdentityColumnsNotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Exception/NoIdentityValue.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/FetchUtils.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/DataSourceName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/CannotCopyStreamToStream.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/CannotCreateTemporaryFile.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/ConnectionError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/ConnectionFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/Factory.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/PrepareFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/StatementError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractConnectionMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractDriverMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractResultMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractStatementMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/FailedReadingStreamOffset.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/HostRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/InvalidCharset.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/InvalidOption.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/NonStreamResourceUsedAsLargeObject.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/StatementError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Charset.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Options.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Secure.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/ConvertPositionalToNamedPlaceholders.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/ConnectionFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/Error.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/InvalidConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/NonTerminatedStringLiteral.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/UnknownParameterIndex.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/ExecutionMode.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Middleware/InitializeSession.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception/InvalidConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/OCI/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PDOConnect.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PgSQL/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLite/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/ConvertParameters.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception/UnexpectedValue.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception/UnknownParameter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Exception/Error.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Driver/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/DriverManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/CommitFailedRollbackOnly.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ConnectionException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ConnectionLost.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ConstraintViolationException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DatabaseDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DatabaseObjectExistsException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DatabaseObjectNotFoundException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DatabaseRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DeadlockException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DriverException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/DriverRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ForeignKeyConstraintViolationException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnIndex.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnType/ColumnLengthRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnType/ColumnPrecisionRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnType/ColumnScaleRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidColumnType/ColumnValuesRequired.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidDriverClass.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidFieldNameException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/InvalidWrapperClass.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/LockWaitTimeoutException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/MalformedDsnException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/NoActiveTransaction.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/NoKeyValue.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/NonUniqueFieldNameException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/NotNullConstraintViolationException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ParseError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ReadOnlyException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/RetryableException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/SavepointsNotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/SchemaDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/ServerException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/SyntaxErrorException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/TableExistsException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/TableNotFoundException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/TransactionRolledBack.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/UniqueConstraintViolationException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Exception/UnknownDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ExpandArrayParameters.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/LockMode.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Logging/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Logging/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Logging/Middleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Logging/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ParameterType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/AbstractMySQLPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/AbstractPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/DB2Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/DateIntervalUnit.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Exception/InvalidPlatformVersion.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Exception/NoColumnsSpecifiedForTable.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Exception/NotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Exception/PlatformException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/DB2Keywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/KeywordList.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MySQL80Keywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MySQL84Keywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MySQLKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/OracleKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/PostgreSQLKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/SQLServerKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/SQLiteKeywords.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1010Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1052Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1060Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDBPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider/CachingCharsetMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider/ConnectionCharsetMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider/CachingCollationMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider/ConnectionCollationMetadataProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/Comparator.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/DefaultTableOptions.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL80Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL84Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQLPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/OraclePlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/PostgreSQL120Platform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/PostgreSQLPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/Comparator.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/SQL/Builder/SQLServerSelectSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServerPlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLite/Comparator.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLitePlatform.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Platforms/TrimMode.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Connection.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Converter.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Driver.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Middleware.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/OptimizeFlags.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Portability/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/CommonTableExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Exception/NonUniqueAlias.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Exception/UnknownAlias.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Expression/CompositeExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate/ConflictResolutionMode.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/From.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Join.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Limit.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/QueryBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/QueryException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/QueryType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/SelectQuery.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/Union.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/UnionQuery.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Query/UnionType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Result.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/CreateSchemaObjectsSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultSelectSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultUnionSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/SelectSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/UnionSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/WithSQLBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Exception/RegularExpressionError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Visitor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractAsset.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractNamedObject.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractOptionallyNamedObject.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception/ObjectAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception/ObjectDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/ObjectSet.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/OptionallyUnqualifiedNamedObjectSet.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/UnqualifiedNamedObjectSet.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Column.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnDiff.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Comparator.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ComparatorConfig.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/DB2SchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ColumnAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ColumnDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ForeignKeyDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/IndexAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/IndexDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/IndexNameInvalid.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidColumnDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidForeignKeyConstraintDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidIdentifier.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidIndexDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidPrimaryKeyConstraintDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidState.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableModification.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidUniqueConstraintDefinition.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/NamespaceAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/NotImplemented.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/PrimaryKeyAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/SequenceAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/SequenceDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/TableAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/TableDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/UniqueConstraintDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/UnknownColumnOption.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/Deferrability.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/MatchType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/ReferentialAction.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraintEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Identifier.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Index.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Index/IndexType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Index/IndexedColumn.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/IndexEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/GenericName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Identifier.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/OptionallyQualifiedName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/Exception.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/Exception/ExpectedDot.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/Exception/ExpectedNextIdentifier.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/Exception/InvalidName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/Exception/UnableToParseIdentifier.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/GenericNameParser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/OptionallyQualifiedNameParser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/UnqualifiedNameParser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parsers.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/UnqualifiedName.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/UnquotedIdentifierFolding.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/NamedObject.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/OptionallyNamedObject.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/OracleSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/PostgreSQLSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraint.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraintEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLServerSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLiteSchemaManager.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Schema.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaConfig.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaDiff.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaManagerFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Sequence.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/Table.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/TableConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/TableDiff.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/TableEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraint.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraintEditor.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Schema/View.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/ServerVersionProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Statement.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/Command/RunSqlCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionProvider/SingleConnectionProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Tools/DsnParser.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/TransactionIsolationLevel.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/AsciiStringType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/BigIntType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/BinaryType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/BlobType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/BooleanType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/ConversionException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateImmutableType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateIntervalType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeImmutableType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzImmutableType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DateType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/DecimalType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/EnumType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidFormat.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/SerializationFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypeAlreadyRegistered.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypeArgumentCountError.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypeNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypeNotRegistered.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypesAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/TypesException.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/UnknownColumnType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/ValueNotConvertible.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/FloatType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/GuidType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/IntegerType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/JsonType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/JsonbType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/NumberType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/PhpDateMappingType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/PhpDateTimeMappingType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/PhpIntegerMappingType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/PhpTimeMappingType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/SimpleArrayType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/SmallFloatType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/SmallIntType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/StringType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/TextType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/TimeImmutableType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/TimeType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Type.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/TypeRegistry.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/Types.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/VarDateTimeImmutableType.php delete mode 100644 projects/priceservice/vendor/doctrine/dbal/src/Types/VarDateTimeType.php delete mode 100644 projects/priceservice/vendor/doctrine/deprecations/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/deprecations/README.md delete mode 100644 projects/priceservice/vendor/doctrine/deprecations/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/deprecations/src/Deprecation.php delete mode 100644 projects/priceservice/vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/README.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.10.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.12.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.13.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-3.0.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/config/dbal.xml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/config/messenger.xml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/config/middlewares.xml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/config/orm.xml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/config/schema/doctrine-1.0.xsd delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsDoctrineListener.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsEntityListener.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/CacheWarmer/DoctrineMetadataCacheWarmer.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/CreateDatabaseDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DropDatabaseDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/ImportMappingDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearMetadataCacheDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearQueryCacheDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearResultCacheDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CollectionRegionDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ConvertMappingDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CreateSchemaDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DoctrineCommandHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DropSchemaDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EnsureProductionSettingsDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EntityRegionCacheDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/InfoDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/OrmProxyCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/QueryRegionCacheDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunDqlDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunSqlDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/UpdateSchemaDoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ValidateSchemaCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/ConnectionFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Controller/ProfilerController.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DataCollector/DoctrineDataCollector.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/BlacklistSchemaAssetFilter.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/ManagerRegistryAwareConnectionProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/RegexSchemaAssetFilter.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/SchemaAssetsFilterManager.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheCompatibilityPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheSchemaSubscriberPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DbalSchemaFilterPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DoctrineOrmMappingsPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/EntityListenerPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/IdGeneratorPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/MiddlewaresPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveLoggingMiddlewarePass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveProfilerControllerPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/ServiceRepositoryCompilerPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Configuration.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/DoctrineExtension.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/DoctrineBundle.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/EventSubscriber/EventSubscriberInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/ManagerConfigurator.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ContainerEntityListenerResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/DisconnectedMetadataFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/EntityListenerServiceResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/MappingDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/BacktraceDebugDataHolder.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/ConnectionNameAwareInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/DebugMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/IdleConnectionMiddleware.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Orm/ManagerRegistryAwareEntityManagerProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Registry.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ContainerRepositoryFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/LazyServiceEntityRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/RepositoryFactoryCompatibility.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryProxy.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/src/Twig/DoctrineExtension.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/database.svg delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/db.html.twig delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/explain.html.twig delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/icon.svg delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/.symfony.bundle.yaml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/README.markdown delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/schema/doctrine_migrations-3.0.xsd delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/services.xml delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsCollector.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsFlattener.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/CompilerPass/ConfigureDependencyFactoryPass.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/Configuration.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/DoctrineMigrationsExtension.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DoctrineMigrationsBundle.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/EventListener/SchemaFilterListener.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/MigrationsFactory/ContainerAwareMigrationFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon-v3.svg delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon.svg delete mode 100644 projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/migrations.html.twig delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/README.md delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/psalm-baseline.xml delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/src/EventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/src/EventManager.php delete mode 100644 projects/priceservice/vendor/doctrine/event-manager/src/EventSubscriber.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/inflector/README.md delete mode 100644 projects/priceservice/vendor/doctrine/inflector/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/inflector/docs/en/index.rst delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Language.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php delete mode 100644 projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/.doctrine-project.json delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/CONTRIBUTING.md delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/README.md delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/docs/en/index.rst delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/docs/en/sidebar.rst delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/psalm.xml delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php delete mode 100644 projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/lexer/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/lexer/README.md delete mode 100644 projects/priceservice/vendor/doctrine/lexer/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/lexer/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/lexer/src/AbstractLexer.php delete mode 100644 projects/priceservice/vendor/doctrine/lexer/src/Token.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/migrations/README.md delete mode 100644 projects/priceservice/vendor/doctrine/migrations/UPGRADE.md delete mode 100755 projects/priceservice/vendor/doctrine/migrations/bin/doctrine-migrations delete mode 100644 projects/priceservice/vendor/doctrine/migrations/bin/doctrine-migrations.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/AbstractMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Configuration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConfigurationFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConnectionLoader.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConnectionRegistryConnection.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/ConnectionNotSpecified.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/FileNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/InvalidConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/LoaderException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ExistingConnection.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ConfigurationFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/EntityManagerLoader.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/Exception/FileNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/Exception/InvalidConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/Exception/LoaderException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ExistingEntityManager.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ManagerRegistryEntityManager.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/ConfigurationException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/FileNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/FrozenConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/InvalidLoader.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/UnknownConfigurationValue.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationArray.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFileWithFallback.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationLoader.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/InvalidConfigurationFormat.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/InvalidConfigurationKey.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/JsonNotValid.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/MissingConfigurationFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/XmlNotValid.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/YamlNotAvailable.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/Exception/YamlNotValid.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ExistingConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/FormattedFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/JsonFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/PhpFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XML/configuration.xsd delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XmlFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/YamlFile.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/DbalMigrator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/DependencyFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Event/Listeners/AutoCommitListener.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsVersionEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/EventDispatcher.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Events.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/AbortMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/AlreadyAtVersion.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/ControlException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/DependencyException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/DuplicateMigrationVersion.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/FrozenDependencies.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/FrozenMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/IrreversibleMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MetadataStorageError.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MigrationClassNotFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MigrationConfigurationConflict.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MigrationException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MigrationNotAvailable.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MigrationNotExecuted.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/MissingDependency.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/NoMigrationsFoundWithCriteria.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/NoMigrationsToExecute.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/NoTablesFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/PlanAlreadyExecuted.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/RollupFailed.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/SkipMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Exception/UnknownMigrationVersion.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/FileQueryWriter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/FilesystemMigrationsRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/FinderException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/InvalidDirectory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/NameIsReserved.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/Finder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/GlobFinder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/MigrationFinder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Finder/RecursiveRegexFinder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/ClassNameGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/ConcatenationFileBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/DiffGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/GeneratorException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/InvalidTemplateSpecified.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/NoChangesDetected.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/FileBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/Generator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Generator/SqlGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/InlineParameterFormatter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsList.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsSet.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigrationsList.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlan.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlanList.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorage.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorageConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/TableMetadataStorage.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/TableMetadataStorageConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/MigrationsRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Migrator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/MigratorConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/ParameterFormatter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/DBALSchemaDiffProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/EmptySchemaProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/Exception/NoMappingFound.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/Exception/ProviderException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/LazySchema.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/LazySchemaDiffProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/OrmSchemaProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/SchemaDiffProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/SchemaProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Provider/StubSchemaProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Query/Exception/InvalidArguments.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Query/Query.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/QueryWriter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Rollup.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/SchemaDumper.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/BooleanStringFormatter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/BytesFormatter.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/CurrentCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DiffCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DoctrineCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DumpSchemaCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ExecuteCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/GenerateCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/LatestCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ListCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/RollupCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/StatusCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/SyncMetadataCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/UpToDateCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/VersionCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleInputMigratorConfigurationFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/ConsoleException.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/DependenciesNotSatisfied.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/DirectoryDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/FileTypeNotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/InvalidOptionUsage.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/SchemaDumpRequiresNoMigrations.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/VersionAlreadyExists.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/VersionDoesNotExist.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/ConfigurationHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/MigrationDirectoryHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/MigrationStatusInfosHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/InvalidAllOrNothingConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/MigratorConfigurationFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Tools/TransactionHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/AliasResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/AlphabeticalComparator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/Comparator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/CurrentMigrationStatusCalculator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/DbalExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/DbalMigrationFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/DefaultAliasResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/Direction.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/ExecutionResult.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/Executor.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/MigrationFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/MigrationPlanCalculator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/MigrationStatusCalculator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/SortedMigrationPlanCalculator.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/State.php delete mode 100644 projects/priceservice/vendor/doctrine/migrations/src/Version/Version.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/orm/README.md delete mode 100644 projects/priceservice/vendor/doctrine/orm/SECURITY.md delete mode 100644 projects/priceservice/vendor/doctrine/orm/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/orm/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/orm/doctrine-mapping.xsd delete mode 100644 projects/priceservice/vendor/doctrine/orm/phpstan-dbal3.neon delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/AbstractQuery.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/AssociationCacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CacheConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CacheException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CacheFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionCacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionCacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/ConcurrentRegion.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCacheFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCollectionHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultEntityHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultQueryCache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/EntityHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/CacheException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/CannotUpdateReadOnlyCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/CannotUpdateReadOnlyEntity.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/FeatureNotImplemented.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/NonCacheableEntity.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Exception/NonCacheableEntityAssociation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Lock.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/LockException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/CacheLogger.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/CacheLoggerChain.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/StatisticsCacheLogger.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/CachedPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/AbstractCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/CachedCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/NonStrictReadWriteCachedCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadOnlyCachedCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadWriteCachedCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/AbstractEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/CachedEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/ReadOnlyCachedEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/ReadWriteCachedEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheValidator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Region.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Region/DefaultRegion.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Region/FileLockRegion.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/Region/UpdateTimestampCache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/RegionsConfiguration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheEntry.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheKey.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampQueryCacheValidator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampRegion.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Configuration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/EntityManager.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/EntityManagerInterface.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/EntityNotFoundException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/EntityRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/ListenersInvoker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/LoadClassMetadataEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/OnClassMetadataNotFoundEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/OnClearEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/OnFlushEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PostFlushEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PostLoadEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PostPersistEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PostRemoveEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PostUpdateEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PreFlushEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PrePersistEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PreRemoveEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Event/PreUpdateEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Events.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/ConfigurationException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/DuplicateFieldException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/EntityManagerClosed.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/EntityMissingAssignedId.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/InvalidEntityRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/InvalidHydrationMode.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/ManagerException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/MissingIdentifierField.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/MissingMappingDriverImplementation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/MultipleSelectorsFoundException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/NoMatchingPropertyException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/NotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/ORMException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/PersisterException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/RepositoryException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/SchemaToolException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/UnexpectedAssociationValue.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Exception/UnrecognizedIdentifierFields.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Id/AbstractIdGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Id/AssignedGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Id/BigIntegerIdentityGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Id/IdentityGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Id/SequenceGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ArrayHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/HydrationException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ObjectHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarColumnHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SingleScalarHydrator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/HydrationCompleteHandler.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/NoUnknownNamedArguments.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/SQLResultCasing.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/StronglyConnectedComponents.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort/CycleDetectedException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Internal/UnitOfWork/InsertBatch.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/LazyCriteriaCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AnsiQuoteStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ArrayAccessImplementation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverride.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverrides.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AttributeOverride.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/AttributeOverrides.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/AssociationBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ClassMetadataBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EmbeddedBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EntityListenerBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/FieldBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ManyToManyAssociationBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/OneToManyAssociationBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Cache.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ChainTypedFieldMapper.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ChangeTrackingPolicy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ClassMetadata.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ClassMetadataFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Column.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/CustomIdGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultEntityListenerResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultNamingStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultQuoteStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultTypedFieldMapper.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumn.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumnMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorMap.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeReader.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/DatabaseDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/LoadMappingFileImplementation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/RepeatableAttributeCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/SimplifiedXmlDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/XmlDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Embeddable.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Embedded.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/EmbeddedClassMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Entity.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/EntityListenerResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/EntityListeners.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Exception/InvalidCustomGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Exception/UnknownGeneratorType.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/FieldMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/GeneratedValue.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/GetReflectionClassImplementation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/HasLifecycleCallbacks.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Id.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Index.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/InheritanceType.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/InverseJoinColumn.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/InverseSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumn.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumnMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumnProperties.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumns.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTable.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTableMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/LegacyReflectionFields.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToMany.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToManyAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToManyInverseSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToManyOwningSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToOne.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToOneAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/MappedSuperclass.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/MappingAttribute.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/MappingException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/NamingStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToMany.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToManyAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOne.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneInverseSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneOwningSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OrderBy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/OwningSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PostLoad.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PostPersist.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PostRemove.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PostUpdate.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PreFlush.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PrePersist.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PreRemove.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PreUpdate.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/EmbeddablePropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/EnumPropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ObjectCastPropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/PropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/PropertyAccessorFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/RawValuePropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ReadonlyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/TypedNoDefaultPropertyAccessor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/QuoteStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEmbeddedProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEnumProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionReadonlyProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/SequenceGenerator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Table.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMappingImplementation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyInverseSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyOwningSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneAssociationMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneInverseSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneOwningSideMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/TypedFieldMapper.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/UnderscoreNamingStrategy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/UniqueConstraint.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Mapping/Version.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/NativeQuery.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/NoResultException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/NonUniqueResultException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/ORMInvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/ORMSetup.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/OptimisticLockException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/PersistentCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/AbstractCollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/CollectionPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/ManyToManyPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/OneToManyPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/AbstractEntityInheritancePersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/CachedPersisterContext.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/EntityPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/JoinedSubclassPersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/SingleTablePersister.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/CantUseInOperatorOnCompositeKeys.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/InvalidOrientation.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/UnrecognizedField.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/MatchingAssociationFieldRequiresObject.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/PersisterException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/SqlExpressionVisitor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Persisters/SqlValueVisitor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/PessimisticLockException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Proxy/Autoloader.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Proxy/DefaultProxyClassNameResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Proxy/InternalProxy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Proxy/NotAProxyClass.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Proxy/ProxyFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ASTException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/AggregateExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticFactor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticTerm.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/BetweenExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/CoalesceExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/CollectionMemberExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ComparisonExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalFactor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalPrimary.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalTerm.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteStatement.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/EmptyCollectionComparisonExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/EntityAsDtoArgumentExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ExistsExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/FromClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AbsFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AvgFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitAndFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitOrFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ConcatFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CountFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentDateFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimeFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimestampFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateAddFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateDiffFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateSubFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/FunctionNode.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/IdentityFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LengthFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LocateFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LowerFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MaxFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MinFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ModFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SizeFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SqrtFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SubstringFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SumFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/TrimFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/UpperFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/GeneralCaseExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/GroupByClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/HavingClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/IdentificationVariableDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/InListExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/InSubselectExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/IndexBy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/InputParameter.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/InstanceOfExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Join.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationPathExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinClassPathExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinVariableDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/LikeExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Literal.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/NewObjectExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Node.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullComparisonExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullIfExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByItem.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/ParenthesisExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/PartialObjectExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/PathExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Phase2OptimizableConditional.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/QuantifiedExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/RangeVariableDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectStatement.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleArithmeticExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleCaseExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleWhenClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/Subselect.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectFromClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectIdentificationVariableDeclaration.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/TypedExpression.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateItem.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateStatement.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhenClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhereClause.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/FinalizedSelectExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/PreparedExecutorFinalizer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectSqlFinalizer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SqlFinalizer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Andx.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Base.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Comparison.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Composite.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/From.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Func.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/GroupBy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Join.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Literal.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Math.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/OrderBy.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Orx.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Select.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Filter/FilterException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Filter/SQLFilter.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/FilterCollection.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Lexer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/OutputWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Parameter.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/ParameterTypeInferer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Parser.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/ParserResult.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/Printer.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/QueryException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/QueryExpressionVisitor.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMapping.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMappingBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/SqlOutputWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/SqlWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/TokenType.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerAdapter.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerChain.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/QueryBuilder.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/QueryType.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Repository/DefaultRepositoryFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Repository/Exception/InvalidFindByCall.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Repository/Exception/InvalidMagicMethodCall.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Repository/RepositoryFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/AttachEntityListenersListener.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ApplicationCompatibility.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/AbstractEntityManagerCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/CollectionRegionCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/EntityRegionCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/MetadataCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryRegionCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/ResultCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/GenerateProxiesCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/InfoCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/MappingDescribeCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/RunDqlCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/AbstractCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/CreateCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/DropCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/UpdateCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ValidateSchemaCommand.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ConsoleRunner.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/ConnectionFromManagerProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/SingleManagerProvider.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/UnknownManagerException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Console/MetadataFilter.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Debug.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/DebugUnitOfWorkListener.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaTableEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Exception/MissingColumnException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Exception/NotSupported.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/CountOutputWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/CountWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Exception/RowNumberOverFunctionNotEnabled.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Paginator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RootTypeWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RowNumberOverFunction.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/WhereInWalker.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/ResolveTargetEntityListener.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaTool.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaValidator.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/ToolEvents.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Tools/ToolsException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/TransactionRequiredException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/UnexpectedResultException.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/UnitOfWork.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Utility/HierarchyDiscriminatorResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Utility/IdentifierFlattener.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Utility/LockSqlHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/orm/src/Utility/PersisterHelper.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/LICENSE delete mode 100644 projects/priceservice/vendor/doctrine/persistence/README.md delete mode 100644 projects/priceservice/vendor/doctrine/persistence/UPGRADE.md delete mode 100644 projects/priceservice/vendor/doctrine/persistence/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/AbstractManagerRegistry.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/ConnectionRegistry.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LifecycleEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LoadClassMetadataEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/ManagerEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/OnClearEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/PreUpdateEventArgs.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/ManagerRegistry.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/AbstractClassMetadataFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadata.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadataFactory.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/ColocatedMappingDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/DefaultFileLocator.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileLocator.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriverChain.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/StaticPHPDriver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/SymfonyFileLocator.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/MappingException.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ProxyClassNameResolver.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ReflectionService.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/RuntimeReflectionService.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/NotifyPropertyChanged.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectManager.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectManagerDecorator.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectRepository.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/PropertyChangedListener.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Proxy.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/EnumReflectionProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/RuntimeReflectionProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/TypedNoDefaultReflectionProperty.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/CONTRIBUTING.md delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/LICENSE.txt delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/README.md delete mode 100755 projects/priceservice/vendor/doctrine/sql-formatter/bin/sql-formatter delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/composer.json delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/CliHighlighter.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/Cursor.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/Highlighter.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/HtmlHighlighter.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/NullHighlighter.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/SqlFormatter.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/Token.php delete mode 100644 projects/priceservice/vendor/doctrine/sql-formatter/src/Tokenizer.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/monolog/monolog/LICENSE delete mode 100644 projects/priceservice/vendor/monolog/monolog/README.md delete mode 100644 projects/priceservice/vendor/monolog/monolog/composer.json delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/WithMonologChannel.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/ErrorHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/SyslogFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Handler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NoopHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/OverflowHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SendGridHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/JsonSerializableDateTimeImmutable.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Level.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/LogRecord.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Logger.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ClosureContextProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/LoadAverageProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Registry.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/ResettableInterface.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/SignalHandler.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/MonologTestCase.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/TestCase.php delete mode 100644 projects/priceservice/vendor/monolog/monolog/src/Monolog/Utils.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/.php-cs-fixer.dist.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/LICENSE delete mode 100644 projects/priceservice/vendor/nikic/php-parser/Makefile delete mode 100644 projects/priceservice/vendor/nikic/php-parser/README.md delete mode 100755 projects/priceservice/vendor/nikic/php-parser/bin/php-parse delete mode 100644 projects/priceservice/vendor/nikic/php-parser/composer.json delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Error.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Modifiers.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NameContext.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Token.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php delete mode 100644 projects/priceservice/vendor/nikic/php-parser/phpstan-baseline.neon delete mode 100644 projects/priceservice/vendor/nikic/php-parser/phpstan.neon.dist delete mode 100644 projects/priceservice/vendor/psr/cache/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/psr/cache/LICENSE.txt delete mode 100644 projects/priceservice/vendor/psr/cache/README.md delete mode 100644 projects/priceservice/vendor/psr/cache/composer.json delete mode 100644 projects/priceservice/vendor/psr/cache/src/CacheException.php delete mode 100644 projects/priceservice/vendor/psr/cache/src/CacheItemInterface.php delete mode 100644 projects/priceservice/vendor/psr/cache/src/CacheItemPoolInterface.php delete mode 100644 projects/priceservice/vendor/psr/cache/src/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/psr/clock/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/psr/clock/LICENSE delete mode 100644 projects/priceservice/vendor/psr/clock/README.md delete mode 100644 projects/priceservice/vendor/psr/clock/composer.json delete mode 100644 projects/priceservice/vendor/psr/clock/src/ClockInterface.php delete mode 100644 projects/priceservice/vendor/psr/container/.gitignore delete mode 100644 projects/priceservice/vendor/psr/container/LICENSE delete mode 100644 projects/priceservice/vendor/psr/container/README.md delete mode 100644 projects/priceservice/vendor/psr/container/composer.json delete mode 100644 projects/priceservice/vendor/psr/container/src/ContainerExceptionInterface.php delete mode 100644 projects/priceservice/vendor/psr/container/src/ContainerInterface.php delete mode 100644 projects/priceservice/vendor/psr/container/src/NotFoundExceptionInterface.php delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/.editorconfig delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/.gitignore delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/LICENSE delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/README.md delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/composer.json delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/src/ListenerProviderInterface.php delete mode 100644 projects/priceservice/vendor/psr/event-dispatcher/src/StoppableEventInterface.php delete mode 100644 projects/priceservice/vendor/psr/log/LICENSE delete mode 100644 projects/priceservice/vendor/psr/log/README.md delete mode 100644 projects/priceservice/vendor/psr/log/composer.json delete mode 100644 projects/priceservice/vendor/psr/log/src/AbstractLogger.php delete mode 100644 projects/priceservice/vendor/psr/log/src/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/psr/log/src/LogLevel.php delete mode 100644 projects/priceservice/vendor/psr/log/src/LoggerAwareInterface.php delete mode 100644 projects/priceservice/vendor/psr/log/src/LoggerAwareTrait.php delete mode 100644 projects/priceservice/vendor/psr/log/src/LoggerInterface.php delete mode 100644 projects/priceservice/vendor/psr/log/src/LoggerTrait.php delete mode 100644 projects/priceservice/vendor/psr/log/src/NullLogger.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/CacheInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/CacheTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/CallbackInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/ItemInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/NamespacedPoolInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/README.md delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/TagAwareCacheInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache-contracts/composer.json delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/AbstractAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/AdapterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/ApcuAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/ArrayAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/ChainAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/FilesystemAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/MemcachedAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/NullAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/ParameterNormalizer.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/PdoAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/PhpArrayAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/PhpFilesAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/ProxyAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/Psr16Adapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/RedisAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/TraceableAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php delete mode 100644 projects/priceservice/vendor/symfony/cache/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/cache/CacheItem.php delete mode 100644 projects/priceservice/vendor/symfony/cache/DataCollector/CacheDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php delete mode 100644 projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php delete mode 100644 projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPass.php delete mode 100644 projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Exception/CacheException.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/cache/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/cache/LockRegistry.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Marshaller/DefaultMarshaller.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Marshaller/DeflateMarshaller.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Marshaller/MarshallerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Marshaller/SodiumMarshaller.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php delete mode 100644 projects/priceservice/vendor/symfony/cache/PruneableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Psr16Cache.php delete mode 100644 projects/priceservice/vendor/symfony/cache/README.md delete mode 100644 projects/priceservice/vendor/symfony/cache/ResettableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/AbstractAdapterTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/ContractsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/FilesystemCommonTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/FilesystemTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/ProxyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Redis5Proxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Redis6Proxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Redis6ProxyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisCluster5Proxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6Proxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6ProxyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisClusterProxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisProxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RedisTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/BgsaveTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/CopyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/GeosearchTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/GetrangeTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/HsetTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/MoveTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/NullableReturnTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/Relay/PfcountTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RelayProxy.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/RelayProxyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/cache/Traits/ValueWrapper.php delete mode 100644 projects/priceservice/vendor/symfony/cache/composer.json delete mode 100644 projects/priceservice/vendor/symfony/clock/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/clock/Clock.php delete mode 100644 projects/priceservice/vendor/symfony/clock/ClockAwareTrait.php delete mode 100644 projects/priceservice/vendor/symfony/clock/ClockInterface.php delete mode 100644 projects/priceservice/vendor/symfony/clock/DatePoint.php delete mode 100644 projects/priceservice/vendor/symfony/clock/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/clock/MockClock.php delete mode 100644 projects/priceservice/vendor/symfony/clock/MonotonicClock.php delete mode 100644 projects/priceservice/vendor/symfony/clock/NativeClock.php delete mode 100644 projects/priceservice/vendor/symfony/clock/README.md delete mode 100644 projects/priceservice/vendor/symfony/clock/Resources/now.php delete mode 100644 projects/priceservice/vendor/symfony/clock/Test/ClockSensitiveTrait.php delete mode 100644 projects/priceservice/vendor/symfony/clock/composer.json delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/ClassBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/Method.php delete mode 100644 projects/priceservice/vendor/symfony/config/Builder/Property.php delete mode 100644 projects/priceservice/vendor/symfony/config/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/config/ConfigCache.php delete mode 100644 projects/priceservice/vendor/symfony/config/ConfigCacheFactory.php delete mode 100644 projects/priceservice/vendor/symfony/config/ConfigCacheFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/ConfigCacheInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/ArrayNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/BaseNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/BooleanNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/ExprBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/MergeBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/NodeBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/NodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/NodeParentInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/TreeBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/ValidationBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/ConfigurableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Configuration.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/ConfigurationInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/EnumNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/Exception.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidTypeException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Exception/UnsetKeyException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/FloatNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/IntegerNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/NodeInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/NumericNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/Processor.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/PrototypeNodeInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/PrototypedArrayNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/ScalarNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Definition/VariableNode.php delete mode 100644 projects/priceservice/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Exception/LoaderLoadException.php delete mode 100644 projects/priceservice/vendor/symfony/config/FileLocator.php delete mode 100644 projects/priceservice/vendor/symfony/config/FileLocatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/DelegatingLoader.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/FileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/GlobFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/Loader.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/LoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/LoaderResolver.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/LoaderResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Loader/ParamConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/config/README.md delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/ClassExistenceResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/ComposerResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/DirectoryResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/FileExistenceResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/FileResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/GlobResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/ReflectionClassResource.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/ResourceInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php delete mode 100644 projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCache.php delete mode 100644 projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php delete mode 100644 projects/priceservice/vendor/symfony/config/ResourceCheckerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/config/Util/Exception/InvalidXmlException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Util/Exception/XmlParsingException.php delete mode 100644 projects/priceservice/vendor/symfony/config/Util/XmlUtils.php delete mode 100644 projects/priceservice/vendor/symfony/config/composer.json delete mode 100644 projects/priceservice/vendor/symfony/console/Application.php delete mode 100644 projects/priceservice/vendor/symfony/console/Attribute/AsCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/console/CI/GithubActionReporter.php delete mode 100644 projects/priceservice/vendor/symfony/console/Color.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/Command.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/CompleteCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/DumpCompletionCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/HelpCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/LazyCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/ListCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/LockableTrait.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/SignalableCommandInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Command/TraceableCommand.php delete mode 100644 projects/priceservice/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php delete mode 100644 projects/priceservice/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/CompletionInput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/CompletionSuggestions.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/Output/BashCompletionOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/Output/FishCompletionOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Completion/Suggestion.php delete mode 100644 projects/priceservice/vendor/symfony/console/ConsoleEvents.php delete mode 100644 projects/priceservice/vendor/symfony/console/Cursor.php delete mode 100644 projects/priceservice/vendor/symfony/console/DataCollector/CommandDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/console/Debug/CliRequest.php delete mode 100644 projects/priceservice/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/ApplicationDescription.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/Descriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/DescriptorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/JsonDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/MarkdownDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/TextDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Descriptor/XmlDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/console/Event/ConsoleCommandEvent.php delete mode 100644 projects/priceservice/vendor/symfony/console/Event/ConsoleErrorEvent.php delete mode 100644 projects/priceservice/vendor/symfony/console/Event/ConsoleEvent.php delete mode 100644 projects/priceservice/vendor/symfony/console/Event/ConsoleSignalEvent.php delete mode 100644 projects/priceservice/vendor/symfony/console/Event/ConsoleTerminateEvent.php delete mode 100644 projects/priceservice/vendor/symfony/console/EventListener/ErrorListener.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/CommandNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/InvalidOptionException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/MissingInputException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/NamespaceNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/RunCommandFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/OutputFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php delete mode 100644 projects/priceservice/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/DebugFormatterHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/DescriptorHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/Dumper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/FormatterHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/Helper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/HelperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/HelperSet.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/InputAwareHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/OutputWrapper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/ProcessHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/ProgressBar.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/ProgressIndicator.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/QuestionHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/SymfonyQuestionHelper.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/Table.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/TableCell.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/TableCellStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/TableRows.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/TableSeparator.php delete mode 100644 projects/priceservice/vendor/symfony/console/Helper/TableStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/ArgvInput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/ArrayInput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/Input.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/InputArgument.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/InputAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/InputDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/InputInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/InputOption.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/StreamableInputInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Input/StringInput.php delete mode 100644 projects/priceservice/vendor/symfony/console/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/console/Logger/ConsoleLogger.php delete mode 100644 projects/priceservice/vendor/symfony/console/Messenger/RunCommandContext.php delete mode 100644 projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessage.php delete mode 100644 projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessageHandler.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/AnsiColorMode.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/BufferedOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/ConsoleOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/ConsoleOutputInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/ConsoleSectionOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/NullOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/Output.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/OutputInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/StreamOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Output/TrimmedBufferOutput.php delete mode 100644 projects/priceservice/vendor/symfony/console/Question/ChoiceQuestion.php delete mode 100644 projects/priceservice/vendor/symfony/console/Question/ConfirmationQuestion.php delete mode 100644 projects/priceservice/vendor/symfony/console/Question/Question.php delete mode 100644 projects/priceservice/vendor/symfony/console/README.md delete mode 100644 projects/priceservice/vendor/symfony/console/Resources/bin/hiddeninput.exe delete mode 100644 projects/priceservice/vendor/symfony/console/Resources/completion.bash delete mode 100644 projects/priceservice/vendor/symfony/console/Resources/completion.fish delete mode 100644 projects/priceservice/vendor/symfony/console/Resources/completion.zsh delete mode 100644 projects/priceservice/vendor/symfony/console/SignalRegistry/SignalMap.php delete mode 100644 projects/priceservice/vendor/symfony/console/SignalRegistry/SignalRegistry.php delete mode 100644 projects/priceservice/vendor/symfony/console/SingleCommandApplication.php delete mode 100644 projects/priceservice/vendor/symfony/console/Style/OutputStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Style/StyleInterface.php delete mode 100644 projects/priceservice/vendor/symfony/console/Style/SymfonyStyle.php delete mode 100644 projects/priceservice/vendor/symfony/console/Terminal.php delete mode 100644 projects/priceservice/vendor/symfony/console/Tester/ApplicationTester.php delete mode 100644 projects/priceservice/vendor/symfony/console/Tester/CommandCompletionTester.php delete mode 100644 projects/priceservice/vendor/symfony/console/Tester/CommandTester.php delete mode 100644 projects/priceservice/vendor/symfony/console/Tester/Constraint/CommandIsSuccessful.php delete mode 100644 projects/priceservice/vendor/symfony/console/Tester/TesterTrait.php delete mode 100644 projects/priceservice/vendor/symfony/console/composer.json delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Alias.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/AbstractArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/BoundArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/IteratorArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/LazyClosure.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsAlias.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsDecorator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autowire.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireCallable.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireDecorated.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireIterator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireLocator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireServiceClosure.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/Exclude.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/MapDecorated.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/Target.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Attribute/When.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ChildDefinition.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowirePass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/Compiler.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/PassConfig.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveBuildParametersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Container.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ContainerBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ContainerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Definition.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/Dumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/DumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/PhpDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/Preloader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/XmlDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Dumper/YamlDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvParameterException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguage.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/AbstractExtension.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/Extension.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/LazyServiceInstantiator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/LazyServiceDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/ClosureLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/FromCallableConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConstructorTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FromCallableTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/FileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/IniFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Parameter.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/README.md delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Reference.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ReverseContainer.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/ServiceLocator.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/TaggedContainerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/TypedReference.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/Variable.php delete mode 100644 projects/priceservice/vendor/symfony/dependency-injection/composer.json delete mode 100644 projects/priceservice/vendor/symfony/deprecation-contracts/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/deprecation-contracts/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/deprecation-contracts/README.md delete mode 100644 projects/priceservice/vendor/symfony/deprecation-contracts/composer.json delete mode 100644 projects/priceservice/vendor/symfony/deprecation-contracts/function.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/ArgumentResolver/EntityValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Attribute/MapEntity.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/CacheWarmer/ProxyCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/DoctrineDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/ObjectParameter.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/AddFixtureImplementation.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/ContainerAwareLoader.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/AbstractDoctrineExtension.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/DoctrineValidationPass.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterMappingsPass.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterUidTypePass.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/Security/UserProvider/EntityFactory.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/DoctrineChoiceLoader.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/EntityLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/IdReader.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/ORMQueryBuilderLoader.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/DataTransformer/CollectionToArrayTransformer.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmExtension.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmTypeGuesser.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/EventListener/MergeDoctrineCollectionListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/DoctrineType.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/EntityType.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UlidGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UuidGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Logger/DbalLogger.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/ManagerRegistry.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/AbstractDoctrineMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineClearEntityManagerWorkerSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineCloseConnectionMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineOpenTransactionLoggerMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrinePingConnectionMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Connection.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Connection.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Statement.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DebugDataHolder.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Driver.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Middleware.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Query.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Statement.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/PropertyInfo/DoctrineExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/README.md delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/AbstractSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/LockStoreSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/PdoSessionHandlerSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Security/RememberMe/DoctrineTokenProvider.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/EntityUserProvider.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/UserLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Types/AbstractUidType.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Types/UlidType.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Types/UuidType.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntity.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntityValidator.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineInitializer.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php delete mode 100644 projects/priceservice/vendor/symfony/doctrine-bridge/composer.json delete mode 100644 projects/priceservice/vendor/symfony/dotenv/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Command/DebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Command/DotenvDumpCommand.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Dotenv.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Exception/FormatException.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Exception/FormatExceptionContext.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/Exception/PathException.php delete mode 100644 projects/priceservice/vendor/symfony/dotenv/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/dotenv/README.md delete mode 100644 projects/priceservice/vendor/symfony/dotenv/composer.json delete mode 100644 projects/priceservice/vendor/symfony/error-handler/BufferingLogger.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Debug.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/DebugClassLoader.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Error/ClassNotFoundError.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Error/FatalError.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Error/OutOfMemoryError.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Error/UndefinedFunctionError.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Error/UndefinedMethodError.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ErrorEnhancerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorHandler.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/ErrorRendererInterface.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Exception/FlattenException.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Exception/SilencedErrorContext.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Internal/TentativeTypes.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/error-handler/README.md delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/error.css delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception.css delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception_full.css delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/chevron-right.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/favicon.png.base64 delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-book.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-copy.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square-o.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square-o.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-support.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-ghost.svg.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-logo.svg delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/assets/js/exception.js delete mode 100755 projects/priceservice/vendor/symfony/error-handler/Resources/bin/extract-tentative-return-types.php delete mode 100755 projects/priceservice/vendor/symfony/error-handler/Resources/bin/patch-type-declarations delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/error.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/exception.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/exception_full.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/logs.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/trace.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/traces.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/Resources/views/traces_text.html.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/ThrowableUtils.php delete mode 100644 projects/priceservice/vendor/symfony/error-handler/composer.json delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/Event.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/README.md delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher-contracts/composer.json delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/Attribute/AsEventListener.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/Debug/WrappedListener.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/EventDispatcher.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/EventDispatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/EventSubscriberInterface.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/GenericEvent.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/README.md delete mode 100644 projects/priceservice/vendor/symfony/event-dispatcher/composer.json delete mode 100644 projects/priceservice/vendor/symfony/filesystem/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/FileNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/IOException.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/IOExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Filesystem.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/filesystem/Path.php delete mode 100644 projects/priceservice/vendor/symfony/filesystem/README.md delete mode 100644 projects/priceservice/vendor/symfony/filesystem/composer.json delete mode 100644 projects/priceservice/vendor/symfony/finder/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/finder/Comparator/Comparator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Comparator/DateComparator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Comparator/NumberComparator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Exception/AccessDeniedException.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Exception/DirectoryNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Finder.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Gitignore.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Glob.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/CustomFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/FilenameFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/LazyIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/PathFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/SortableIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php delete mode 100644 projects/priceservice/vendor/symfony/finder/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/finder/README.md delete mode 100644 projects/priceservice/vendor/symfony/finder/SplFileInfo.php delete mode 100644 projects/priceservice/vendor/symfony/finder/composer.json delete mode 100644 projects/priceservice/vendor/symfony/flex/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/flex/README.md delete mode 100644 projects/priceservice/vendor/symfony/flex/composer.json delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Command/DumpEnvCommand.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Command/InstallRecipesCommand.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Command/RecipesCommand.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Command/UpdateRecipesCommand.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/AbstractConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/AddLinesConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/BundlesConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/ComposerCommandsConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/ComposerScriptsConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/ContainerConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/CopyFromPackageConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/CopyFromRecipeConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/DockerComposeConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/DockerfileConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/DotenvConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/EnvConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/GitignoreConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Configurator/MakefileConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Downloader.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Event/UpdateEvent.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Flex.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/GithubApi.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/InformationOperation.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Lock.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Options.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/PackageFilter.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/PackageJsonSynchronizer.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/PackageResolver.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Path.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Recipe.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Response.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/ScriptExecutor.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/SymfonyBundle.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/SymfonyPackInstaller.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Unpack/Operation.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Unpack/Result.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Unpacker.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Update/DiffHelper.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Update/RecipePatch.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Update/RecipePatcher.php delete mode 100644 projects/priceservice/vendor/symfony/flex/src/Update/RecipeUpdate.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/AbstractPhpFileCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/AnnotationsCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/CachePoolClearerCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/ConfigBuilderCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/RouterCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/SerializerCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/TranslationsCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/CacheWarmer/ValidatorCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/AboutCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/AbstractConfigCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/AssetsInstallCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CacheClearCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CachePoolClearCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CachePoolDeleteCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CachePoolInvalidateTagsCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CachePoolListCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CachePoolPruneCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/CacheWarmupCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/ConfigDebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/ContainerDebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/ContainerLintCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/DebugAutowiringCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/EventDispatcherDebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/RouterDebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/RouterMatchCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsDecryptToLocalCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsEncryptFromLocalCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsGenerateKeysCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsListCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsRemoveCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/SecretsSetCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/TranslationDebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/TranslationUpdateCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/WorkflowDumpCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/XliffLintCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Command/YamlLintCommand.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Application.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Descriptor/Descriptor.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Descriptor/JsonDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Descriptor/MarkdownDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Descriptor/TextDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Descriptor/XmlDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Console/Helper/DescriptorHelper.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Controller/AbstractController.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Controller/ControllerResolver.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Controller/RedirectController.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Controller/TemplateController.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DataCollector/AbstractDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DataCollector/RouterDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DataCollector/TemplateAwareDataCollectorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/AddAnnotationsCachedReaderPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/AddDebugLogProcessorPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/AssetsContextPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/DataCollectorTranslatorPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/EnableLoggerDebugModePass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/ErrorLoggerCompilerPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/LoggingTranslatorPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/ProfilerPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/RemoveUnusedSessionMarshallingHandlerPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerRealRefPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/TestServiceContainerWeakRefPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/TranslationUpdateCommandPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/UnusedTagsPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/Configuration.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/FrameworkExtension.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/DependencyInjection/VirtualRequestStackPass.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/EventListener/ConsoleProfilerListener.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/EventListener/SuggestMissingPackageSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/FrameworkBundle.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/HttpCache/HttpCache.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/KernelBrowser.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/README.md delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/bin/check-unused-known-tags.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/annotations.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/asset_mapper.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/assets.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/cache.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/cache_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/collectors.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/console.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/debug_prod.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/error_renderer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/esi.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/form.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/form_csrf.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/form_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/fragment_listener.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/fragment_renderer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/html_sanitizer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/http_client.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/http_client_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/identity_translator.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/lock.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/mailer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/mailer_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/mailer_transports.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/mailer_webhook.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/messenger.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/messenger_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/mime_type.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/notifier.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/notifier_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/notifier_transports.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/notifier_webhook.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/process.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/profiling.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/property_access.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/property_info.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/rate_limiter.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/remote_event.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/request.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/routing.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/routing/errors.xml delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/routing/webhook.xml delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/scheduler.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/schema/symfony-1.0.xsd delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/secrets.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/security_csrf.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/semaphore.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/serializer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/serializer_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/services.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/session.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/ssi.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/test.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/translation.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/translation_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/translation_providers.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/uid.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/validator.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/validator_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/web.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/web_link.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/webhook.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/workflow.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Resources/config/workflow_debug.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/AnnotatedRouteControllerLoader.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/Attribute/AsRoutingConditionService.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/AttributeRouteControllerLoader.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/DelegatingLoader.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/RedirectableCompiledUrlMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/RouteLoaderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Routing/Router.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Secrets/AbstractVault.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Secrets/DotenvVault.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Secrets/SodiumVault.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/BrowserKitAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/DomCrawlerAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/HttpClientAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/KernelTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/MailerAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/NotificationAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/TestBrowserToken.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/TestContainer.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/WebTestAssertionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Test/WebTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/Translation/Translator.php delete mode 100644 projects/priceservice/vendor/symfony/framework-bundle/composer.json delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/ChunkInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/ClientExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/DecodingExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/HttpExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/RedirectionExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/ServerExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/TimeoutExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Exception/TransportExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/HttpClientInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/README.md delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/ResponseInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/ResponseStreamInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Test/Fixtures/web/index.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Test/HttpClientTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/Test/TestHttpServer.php delete mode 100644 projects/priceservice/vendor/symfony/http-client-contracts/composer.json delete mode 100644 projects/priceservice/vendor/symfony/http-client/AmpHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/AsyncDecoratorTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/http-client/CachingHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/DataChunk.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/ErrorChunk.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/FirstChunk.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/InformationalChunk.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/LastChunk.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Chunk/ServerSentEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/CurlHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/DataCollector/HttpClientDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/DecoratorTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/DependencyInjection/HttpClientPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/EventSourceHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/ClientException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/EventSourceException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/HttpExceptionTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/JsonException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/RedirectionException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/ServerException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/TimeoutException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Exception/TransportException.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/HttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/HttpClientTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/HttpOptions.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/HttplugClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/AmpBody.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/AmpClientState.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/AmpListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/AmpResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/Canary.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/ClientState.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/CurlClientState.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/DnsCache.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/HttplugWaitLoop.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/LegacyHttplugInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/NativeClientState.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Internal/PushedResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/http-client/Messenger/PingWebhookMessage.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Messenger/PingWebhookMessageHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/MockHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/NativeHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/NoPrivateNetworkHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Psr18Client.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/README.md delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/AmpResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/AsyncContext.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/AsyncResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/CommonResponseTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/CurlResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/HttplugPromise.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/JsonMockResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/MockResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/NativeResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/ResponseStream.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/StreamWrapper.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/StreamableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/TraceableResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Response/TransportResponseTrait.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Retry/GenericRetryStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Retry/RetryStrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/RetryableHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/ScopingHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/Test/HarFileResponseFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/TraceableHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/UriTemplateHttpClient.php delete mode 100644 projects/priceservice/vendor/symfony/http-client/composer.json delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/AcceptHeader.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/AcceptHeaderItem.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/BinaryFileResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/ChainRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Cookie.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/BadRequestException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/ConflictingHeadersException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/JsonException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/RequestExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/SuspiciousOperationException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Exception/UnexpectedValueException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/ExpressionRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/CannotWriteFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/ExtensionFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/FileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/FormSizeFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/IniSizeFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/NoFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/NoTmpDirFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/PartialFileException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Exception/UploadException.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/File.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/Stream.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/File/UploadedFile.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/FileBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/HeaderBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/HeaderUtils.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/InputBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/IpUtils.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/JsonResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/ParameterBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/README.md delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RateLimiter/AbstractRequestRateLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RateLimiter/PeekableRequestRateLimiterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RateLimiter/RequestRateLimiterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RedirectResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Request.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/AttributesRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/ExpressionRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/HostRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/IpsRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/IsJsonRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/MethodRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/PathRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/PortRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcher/SchemeRequestMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestMatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/RequestStack.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Response.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/ResponseHeaderBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/ServerBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Flash/FlashBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/FlashBagAwareSessionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Session.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionBagInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionBagProxy.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/SessionUtils.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/IdentityMarshaller.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/MarshallingSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/SessionStorageFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/StreamedJsonResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/StreamedResponse.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseFormatSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseHeaderLocationSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseIsUnprocessable.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/UriSigner.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/UrlHelper.php delete mode 100644 projects/priceservice/vendor/symfony/http-foundation/composer.json delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/AsController.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/AsTargetedValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/Cache.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/MapDateTime.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/MapQueryParameter.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/MapQueryString.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/MapRequestPayload.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/ValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/WithHttpStatus.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Attribute/WithLogLevel.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Bundle/AbstractBundle.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Bundle/Bundle.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Bundle/BundleExtension.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Bundle/BundleInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Config/FileLocator.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/BackedEnumValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/DateTimeValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/QueryParameterValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/UidValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ControllerReference.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ControllerResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ErrorController.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Controller/ValueResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/DataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Debug/ErrorHandlerConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Debug/FileLinkFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Debug/VirtualRequestStack.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/Extension.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/LoggerPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/RegisterLocaleAwareServicesPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/ResettableServicePass.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/DependencyInjection/ServicesResetter.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/ControllerArgumentsEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/ControllerEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/ExceptionEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/FinishRequestEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/KernelEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/RequestEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/ResponseEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/TerminateEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Event/ViewEvent.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/CacheAttributeListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/DumpListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/ErrorListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/FragmentListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/LocaleAwareListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/LocaleListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/ProfilerListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/ResponseListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/SessionListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/SurrogateListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/EventListener/ValidateRequestListener.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/ConflictHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/GoneHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/HttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/InvalidMetadataException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/LockedHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/ResolverNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/UnexpectedSessionUsageException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/FragmentHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/FragmentUriGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/FragmentUriGeneratorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/CacheWasLockedException.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/Esi.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/HttpCache.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/Ssi.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/Store.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/StoreInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpClientKernel.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpKernel.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpKernelBrowser.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/HttpKernelInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Kernel.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/KernelEvents.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/KernelInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Log/DebugLoggerConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Log/Logger.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Profiler/Profile.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Profiler/Profiler.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/README.md delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/RebootableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/Resources/welcome.html.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/TerminableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/UriSigner.php delete mode 100644 projects/priceservice/vendor/symfony/http-kernel/composer.json delete mode 100644 projects/priceservice/vendor/symfony/lock/BlockingSharedLockStoreInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/BlockingStoreInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/InvalidTtlException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/LockAcquiringException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/LockConflictedException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/LockExpiredException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/LockReleasingException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/LockStorageException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Exception/UnserializableKeyException.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Key.php delete mode 100644 projects/priceservice/vendor/symfony/lock/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/lock/Lock.php delete mode 100644 projects/priceservice/vendor/symfony/lock/LockFactory.php delete mode 100644 projects/priceservice/vendor/symfony/lock/LockInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/NoLock.php delete mode 100644 projects/priceservice/vendor/symfony/lock/PersistingStoreInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/README.md delete mode 100644 projects/priceservice/vendor/symfony/lock/SharedLockInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/SharedLockStoreInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/CombinedStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/DatabaseTableTrait.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/DoctrineDbalPostgreSqlStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/DoctrineDbalStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/ExpiringStoreTrait.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/FlockStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/InMemoryStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/MemcachedStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/MongoDbStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/PdoStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/PostgreSqlStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/RedisStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/SemaphoreStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/StoreFactory.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Store/ZookeeperStore.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Strategy/ConsensusStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Strategy/StrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/lock/Strategy/UnanimousStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/lock/composer.json delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/composer.json delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeAuth.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeCommand.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeController.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeCrud.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeDockerDatabase.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeEntity.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeFixture.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeForm.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeFunctionalTest.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeListener.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeMessage.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeMiddleware.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeMigration.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeRegistrationForm.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeResetPassword.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeScheduler.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeSerializerEncoder.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeSerializerNormalizer.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeStimulusController.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeSubscriber.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeTest.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeTwigExtension.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeUnitTest.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeUser.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeValidator.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeVoter.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/MakeWebhook.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/_WithTests.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/_WithUid.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/security/MakeCustom.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/help/security/MakeFormLogin.txt delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/makers.xml delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/php-cs-fixer.config.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/config/services.xml delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/docs/index.rst delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/phpstan.dist.neon delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/ApplicationAwareMakerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Command/MakerCommand.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Console/MigrationDiffFilteredOutput.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/ConsoleStyle.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/DependencyBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/DependencyInjection/CompilerPass/MakeCommandRegistrationPass.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/DependencyInjection/CompilerPass/RemoveMissingParametersPass.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/DependencyInjection/CompilerPass/SetDoctrineAnnotatedPrefixesPass.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Docker/DockerDatabaseServices.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/BaseCollectionRelation.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/BaseRelation.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/DoctrineHelper.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/EntityClassGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/EntityDetails.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/EntityRegenerator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/EntityRelation.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/ORMDependencyBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/RelationManyToMany.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/RelationManyToOne.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/RelationOneToMany.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/RelationOneToOne.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Doctrine/StaticReflectionService.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Event/ConsoleErrorSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/EventRegistry.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Exception/RuntimeCommandException.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/FileManager.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Generator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/GeneratorTwigHelper.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/InputAwareMakerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/InputConfiguration.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/AbstractMaker.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Common/CanGenerateTestsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Common/EntityIdTypeEnum.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Common/InstallDependencyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Common/UidTrait.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeCommand.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeController.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeCrud.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeDockerDatabase.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeEntity.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeFixtures.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeForm.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeFunctionalTest.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeListener.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeMessage.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeMessengerMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeMigration.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeRegistrationForm.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeResetPassword.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeSchedule.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeSerializerEncoder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeSerializerNormalizer.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeStimulusController.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeSubscriber.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeTest.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeTwigComponent.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeTwigExtension.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeUnitTest.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeUser.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeValidator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeVoter.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/MakeWebhook.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Security/MakeCustomAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Maker/Security/MakeFormLogin.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/MakerBundle.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/MakerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Renderer/FormTypeRenderer.php delete mode 100755 projects/priceservice/vendor/symfony/maker-bundle/src/Resources/bin/php-cs-fixer-v3.49.0.phar delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/InteractiveSecurityHelper.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/Model/Authenticator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/Model/AuthenticatorType.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/SecurityConfigUpdater.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/SecurityControllerBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/UserClassBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Security/UserClassConfiguration.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Str.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestDetails.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestEnvironment.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestKernel.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestProcess.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Test/MakerTestRunner.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/AutoloaderUtil.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassDetails.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassNameDetails.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassNameValue.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassSource/Model/ClassData.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassSource/Model/ClassProperty.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ClassSourceManipulator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/CliOutputHelper.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ComposeFileManipulator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/ComposerAutoloaderFinder.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/MakerFileLinkFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/PhpCompatUtil.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/PrettyPrinter.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/TemplateComponentGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/TemplateLinter.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/UseStatementGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/YamlManipulationFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Util/YamlSourceManipulator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/src/Validator.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/Class.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/authenticator/EmptyAuthenticator.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/authenticator/EmptySecurityController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/authenticator/LoginFormAuthenticator.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/authenticator/login_form.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/command/Command.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/controller/Controller.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/controller/test/Test.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/controller/twig_template.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/controller/Controller.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/_delete_form.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/_form.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/edit.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/index.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/new.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/templates/show.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/crud/test/Test.EntityManager.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/doctrine/Entity.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/doctrine/Fixtures.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/doctrine/Repository.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/doctrine/broadcast_twig_template.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/event/Listener.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/event/Subscriber.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/form/Type.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/message/Message.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/message/MessageHandler.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/middleware/Middleware.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/registration/RegistrationController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/registration/Test.WithVerify.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/registration/Test.WithoutVerify.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/registration/twig_email.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/registration/twig_template.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/ChangePasswordFormType.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/ResetPasswordController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/ResetPasswordRequestFormType.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/Test.ResetPasswordController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/twig_check_email.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/twig_email.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/twig_request.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/resetPassword/twig_reset.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/scheduler/Schedule.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/UserProvider.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/Voter.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/custom/Authenticator.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/formLogin/LoginController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/formLogin/Test.LoginController.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/security/formLogin/login_form.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/serializer/Encoder.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/serializer/Normalizer.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/stimulus/Controller.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/ApiTestCase.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/Functional.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/KernelTestCase.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/PantherTestCase.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/TestCase.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/Unit.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/test/WebTestCase.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/twig/Component.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/twig/Extension.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/twig/LiveComponent.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/twig/Runtime.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/twig/component_template.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/validator/Constraint.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/validator/Validator.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/verifyEmail/EmailVerifier.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/webhook/RequestParser.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/maker-bundle/templates/webhook/WebhookConsumer.tpl.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Attribute/AsMessageHandler.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/AbstractFailedMessagesCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/ConsumeMessagesCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/DebugCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/FailedMessagesRemoveCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/FailedMessagesRetryCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/FailedMessagesShowCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/SetupTransportsCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/StatsCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Command/StopWorkersCommand.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/DataCollector/MessengerDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/DependencyInjection/MessengerPass.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Envelope.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/AbstractWorkerMessageEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/SendMessageToTransportsEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerMessageFailedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerMessageHandledEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerMessageReceivedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerMessageRetriedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerRateLimitedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerRunningEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerStartedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Event/WorkerStoppedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/AddErrorDetailsStampListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/DispatchPcntlSignalListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/ResetServicesListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/SendFailedMessageForRetryListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/SendFailedMessageToFailureTransportListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnCustomStopExceptionListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnFailureLimitListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnMemoryLimitListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnMessageLimitListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnRestartSignalListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnSignalsListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnSigtermSignalListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/EventListener/StopWorkerOnTimeLimitListener.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/DelayedMessageHandlingException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/EnvelopeAwareExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/EnvelopeAwareExceptionTrait.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/HandlerFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/MessageDecodingFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/NoHandlerForMessageException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/NoSenderForMessageException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/RecoverableExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/RecoverableMessageHandlingException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/RejectRedeliveredMessageException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/StopWorkerException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/StopWorkerExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/TransportException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/UnrecoverableExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/UnrecoverableMessageHandlingException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/ValidationFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/WrappedExceptionsInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Exception/WrappedExceptionsTrait.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/HandleTrait.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/Acknowledger.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/BatchHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/BatchHandlerTrait.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/HandlerDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/HandlersLocator.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/HandlersLocatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/MessageHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/MessageSubscriberInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Handler/RedispatchMessageHandler.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/messenger/Message/RedispatchMessage.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/MessageBus.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/MessageBusInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/ActivationMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/MiddlewareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/RouterContextMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/StackInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/StackMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/TraceableMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Middleware/ValidationMiddleware.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/README.md delete mode 100644 projects/priceservice/vendor/symfony/messenger/Retry/MultiplierRetryStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Retry/RetryStrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/RoutableMessageBus.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/AckStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/BusNameStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/ConsumedByWorkerStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/DelayStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/DispatchAfterCurrentBusStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/ErrorDetailsStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/FlushBatchHandlersStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/HandledStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/HandlerArgumentsStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/MessageDecodingFailedStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/NoAutoAckStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/NonSendableStampInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/ReceivedStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/RedeliveryStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/RouterContextStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/SentStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/SentToFailureTransportStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/SerializedMessageStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/SerializerStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/StampInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/TransportMessageIdStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/TransportNamesStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Stamp/ValidationStamp.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Test/Middleware/MiddlewareTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/TraceableMessageBus.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/InMemory/InMemoryTransport.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/InMemory/InMemoryTransportFactory.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/InMemoryTransport.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/InMemoryTransportFactory.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Receiver/ListableReceiverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Receiver/MessageCountAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Receiver/QueueReceiverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Receiver/ReceiverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Receiver/SingleMessageReceiver.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Sender/SenderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Sender/SendersLocator.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Sender/SendersLocatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Serialization/Normalizer/FlattenExceptionNormalizer.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Serialization/PhpSerializer.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Serialization/Serializer.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Serialization/SerializerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/SetupableTransportInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Sync/SyncTransport.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/Sync/SyncTransportFactory.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/TransportFactory.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/TransportFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Transport/TransportInterface.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/Worker.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/WorkerMetadata.php delete mode 100644 projects/priceservice/vendor/symfony/messenger/composer.json delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Command/ServerLogCommand.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Formatter/CompatibilityFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Formatter/ConsoleFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Formatter/VarDumperFormatter.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/ChromePhpHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/CompatibilityHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/CompatibilityProcessingHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/ConsoleHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/ElasticsearchLogstashHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/FingersCrossed/HttpCodeActivationStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/FingersCrossed/NotFoundActivationStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/FirePHPHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/MailerHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/NotifierHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Handler/ServerLogHandler.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Logger.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/AbstractTokenProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/CompatibilityProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/ConsoleCommandProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/DebugProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/RouteProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/SwitchUserTokenProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/TokenProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/Processor/WebProcessor.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/README.md delete mode 100644 projects/priceservice/vendor/symfony/monolog-bridge/composer.json delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Compiler/AddProcessorsPass.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Compiler/AddSwiftMailerTransportPass.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Compiler/DebugHandlerPass.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Compiler/FixEmptyLoggerPass.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Compiler/LoggerChannelPass.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/DependencyInjection/MonologExtension.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/MonologBundle.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/README.md delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/Resources/config/monolog.xml delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/Resources/config/schema/monolog-1.0.xsd delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/SwiftMailer/MessageFactory.php delete mode 100644 projects/priceservice/vendor/symfony/monolog-bundle/composer.json delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/AccessException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/MissingOptionsException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/NoConfigurationException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/OptionConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/Options.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/OptionsResolver.php delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/README.md delete mode 100644 projects/priceservice/vendor/symfony/options-resolver/composer.json delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Command/UserPasswordHashCommand.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Exception/InvalidPasswordException.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/CheckPasswordLengthTrait.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/MessageDigestPasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/MigratingPasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/NativePasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/PasswordHasherAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/PasswordHasherFactory.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/PasswordHasherFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/Pbkdf2PasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/PlaintextPasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/SodiumPasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/UserPasswordHasher.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/Hasher/UserPasswordHasherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/LegacyPasswordHasherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/PasswordHasherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/README.md delete mode 100644 projects/priceservice/vendor/symfony/password-hasher/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/Grapheme.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/bootstrap80.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-grapheme/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Normalizer.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-intl-normalizer/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/Mbstring.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/bootstrap80.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-mbstring/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Php83.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateError.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateObjectError.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/DateRangeError.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/Override.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/bootstrap81.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php83/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/Php84.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/Resources/stubs/Deprecated.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-php84/composer.json delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/README.md delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/Uuid.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/bootstrap.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/bootstrap80.php delete mode 100644 projects/priceservice/vendor/symfony/polyfill-uuid/composer.json delete mode 100644 projects/priceservice/vendor/symfony/process/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/ProcessFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/ProcessSignaledException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/ProcessTimedOutException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/RunProcessFailedException.php delete mode 100644 projects/priceservice/vendor/symfony/process/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/process/ExecutableFinder.php delete mode 100644 projects/priceservice/vendor/symfony/process/InputStream.php delete mode 100644 projects/priceservice/vendor/symfony/process/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/process/Messenger/RunProcessContext.php delete mode 100644 projects/priceservice/vendor/symfony/process/Messenger/RunProcessMessage.php delete mode 100644 projects/priceservice/vendor/symfony/process/Messenger/RunProcessMessageHandler.php delete mode 100644 projects/priceservice/vendor/symfony/process/PhpExecutableFinder.php delete mode 100644 projects/priceservice/vendor/symfony/process/PhpProcess.php delete mode 100644 projects/priceservice/vendor/symfony/process/PhpSubprocess.php delete mode 100644 projects/priceservice/vendor/symfony/process/Pipes/AbstractPipes.php delete mode 100644 projects/priceservice/vendor/symfony/process/Pipes/PipesInterface.php delete mode 100644 projects/priceservice/vendor/symfony/process/Pipes/UnixPipes.php delete mode 100644 projects/priceservice/vendor/symfony/process/Pipes/WindowsPipes.php delete mode 100644 projects/priceservice/vendor/symfony/process/Process.php delete mode 100644 projects/priceservice/vendor/symfony/process/ProcessUtils.php delete mode 100644 projects/priceservice/vendor/symfony/process/README.md delete mode 100644 projects/priceservice/vendor/symfony/process/composer.json delete mode 100644 projects/priceservice/vendor/symfony/property-access/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/AccessException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/InvalidPropertyPathException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/NoSuchIndexException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/NoSuchPropertyException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/OutOfBoundsException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/UnexpectedTypeException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/Exception/UninitializedPropertyException.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyAccess.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyAccessor.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyAccessorBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyAccessorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyPath.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyPathBuilder.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyPathInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyPathIterator.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/PropertyPathIteratorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-access/README.md delete mode 100644 projects/priceservice/vendor/symfony/property-access/composer.json delete mode 100644 projects/priceservice/vendor/symfony/property-info/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/property-info/DependencyInjection/PropertyInfoConstructorPass.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/DependencyInjection/PropertyInfoPass.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/ConstructorArgumentTypeExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/ConstructorExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/PhpDocExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/PhpStanExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/ReflectionExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Extractor/SerializerExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/property-info/PhpStan/NameScope.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PhpStan/NameScopeFactory.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyAccessExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyDescriptionExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyInfoCacheExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyInfoExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyInfoExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyInitializableExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyListExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyReadInfo.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyReadInfoExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyTypeExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyWriteInfo.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/PropertyWriteInfoExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/README.md delete mode 100644 projects/priceservice/vendor/symfony/property-info/Type.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Util/PhpDocTypeHelper.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/Util/PhpStanTypeHelper.php delete mode 100644 projects/priceservice/vendor/symfony/property-info/composer.json delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/CompoundLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Exception/InvalidIntervalException.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Exception/MaxWaitDurationExceededException.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Exception/RateLimitExceededException.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Exception/ReserveNotSupportedException.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/LimiterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/LimiterStateInterface.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/FixedWindowLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/NoLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/Rate.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/ResetLimiterTrait.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/SlidingWindow.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/SlidingWindowLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/TokenBucket.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/TokenBucketLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Policy/Window.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/README.md delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/RateLimit.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/RateLimiterFactory.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Reservation.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Storage/CacheStorage.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Storage/InMemoryStorage.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Storage/StorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/Util/TimeUtil.php delete mode 100644 projects/priceservice/vendor/symfony/rate-limiter/composer.json delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/README.md delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/RedisReceivedStamp.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/RedisReceiver.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/RedisSender.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/RedisTransport.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/Transport/RedisTransportFactory.php delete mode 100644 projects/priceservice/vendor/symfony/redis-messenger/composer.json delete mode 100644 projects/priceservice/vendor/symfony/routing/Alias.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Annotation/Route.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Attribute/Route.php delete mode 100644 projects/priceservice/vendor/symfony/routing/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/routing/CompiledRoute.php delete mode 100644 projects/priceservice/vendor/symfony/routing/DependencyInjection/AddExpressionLanguageProvidersPass.php delete mode 100644 projects/priceservice/vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/InvalidParameterException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/MethodNotAllowedException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/MissingMandatoryParametersException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/NoConfigurationException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/ResourceNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/RouteCircularReferenceException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/RouteNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/CompiledUrlGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/UrlGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Generator/UrlGeneratorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AnnotationClassLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AnnotationFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AttributeClassLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AttributeDirectoryLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/AttributeFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/ClosureLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/AliasConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/Traits/HostTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/Traits/LocalizedRouteTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Configurator/Traits/RouteTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/ContainerLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/DirectoryLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/GlobFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/ObjectLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/PhpFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/Psr4DirectoryLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/XmlFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/YamlFileLoader.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/CompiledUrlMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/ExpressionLanguageProvider.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/RequestMatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/UrlMatcher.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Matcher/UrlMatcherInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/README.md delete mode 100644 projects/priceservice/vendor/symfony/routing/RequestContext.php delete mode 100644 projects/priceservice/vendor/symfony/routing/RequestContextAwareInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Requirement/EnumRequirement.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Requirement/Requirement.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Route.php delete mode 100644 projects/priceservice/vendor/symfony/routing/RouteCollection.php delete mode 100644 projects/priceservice/vendor/symfony/routing/RouteCompiler.php delete mode 100644 projects/priceservice/vendor/symfony/routing/RouteCompilerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/Router.php delete mode 100644 projects/priceservice/vendor/symfony/routing/RouterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/routing/composer.json delete mode 100644 projects/priceservice/vendor/symfony/runtime/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/runtime/GenericRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/BasicErrorHandler.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/ComposerPlugin.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/Console/ApplicationRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/Console/Command/CommandRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/Console/Input/InputInterfaceRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/Console/Output/OutputInterfaceRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/HttpFoundation/RequestRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/HttpFoundation/ResponseRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/HttpKernel/HttpKernelInterfaceRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/MissingDotenv.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/SymfonyErrorHandler.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Internal/autoload_runtime.template delete mode 100644 projects/priceservice/vendor/symfony/runtime/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/runtime/README.md delete mode 100644 projects/priceservice/vendor/symfony/runtime/Resolver/ClosureResolver.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Resolver/DebugClosureResolver.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/ResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Runner/ClosureRunner.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/Runner/Symfony/ResponseRunner.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/RunnerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/RuntimeInterface.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/SymfonyRuntime.php delete mode 100644 projects/priceservice/vendor/symfony/runtime/composer.json delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/CacheWarmer/ExpressionCacheWarmer.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Command/DebugFirewallCommand.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DataCollector/SecurityDataCollector.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Debug/TraceableFirewallListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Debug/TraceableListenerTrait.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Debug/WrappedLazyListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Debug/WrappedListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/AddSecurityVotersPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/CleanRememberMeVerifierPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/MakeFirewallsEventDispatcherTraceablePass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/RegisterCsrfFeaturesPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/RegisterEntryPointPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/RegisterGlobalSecurityEventListenersPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/RegisterLdapLocatorPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/RegisterTokenUsageTrackingPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/ReplaceDecoratedRememberMeHandlerPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Compiler/SortFirewallListenersPass.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/MainConfiguration.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/AccessToken/OidcTokenHandlerFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/AccessToken/OidcUserInfoTokenHandlerFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/AccessToken/ServiceTokenHandlerFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/AccessToken/TokenHandlerFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/AbstractFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/AccessTokenFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/AuthenticatorFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/CustomAuthenticatorFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/FirewallListenerFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/FormLoginFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/FormLoginLdapFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/HttpBasicFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/HttpBasicLdapFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/JsonLoginFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/JsonLoginLdapFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/LdapFactoryTrait.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/LoginLinkFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/LoginThrottlingFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/RememberMeFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/RemoteUserFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/SignatureAlgorithmFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/StatelessAuthenticatorFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/Factory/X509Factory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/UserProvider/InMemoryFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/UserProvider/LdapFactory.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/Security/UserProvider/UserProviderFactoryInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/DependencyInjection/SecurityExtension.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/EventListener/FirewallListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/EventListener/VoteListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/LoginLink/FirewallAwareLoginLinkHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/README.md delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/RememberMe/DecoratedRememberMeHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/RememberMe/FirewallAwareRememberMeHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/collectors.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/console.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/debug_console.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/password_hasher.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/schema/security-1.0.xsd delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_authenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_authenticator_access_token.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_authenticator_login_link.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_authenticator_remember_me.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_debug.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/security_listeners.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/config/templating_twig.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/views/Collector/icon.svg delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Resources/views/Collector/security.html.twig delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Routing/LogoutRouteLoader.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/FirewallAwareTrait.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/FirewallConfig.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/FirewallContext.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/FirewallMap.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/LazyFirewallContext.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/Security/UserAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/SecurityBundle.php delete mode 100644 projects/priceservice/vendor/symfony/security-bundle/composer.json delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/AuthenticationTrustResolver.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/AuthenticationTrustResolverInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/CacheTokenVerifier.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/InMemoryTokenProvider.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/PersistentToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/PersistentTokenInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/TokenProviderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/RememberMe/TokenVerifierInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/AbstractToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/NullToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/PreAuthenticatedToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/RememberMeToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorage.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/SwitchUserToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/TokenInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authentication/Token/UsernamePasswordToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/AuthenticationEvents.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/AccessDecisionManager.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/AccessDecisionManagerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/AuthorizationChecker.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/AuthorizationCheckerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/ExpressionLanguage.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/ExpressionLanguageProvider.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Strategy/AccessDecisionStrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Strategy/AffirmativeStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Strategy/ConsensusStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Strategy/PriorityStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Strategy/UnanimousStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/TraceableAccessDecisionManager.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/AuthenticatedVoter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/CacheableVoterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/ExpressionVoter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/RoleHierarchyVoter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/RoleVoter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/TraceableVoter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/Voter.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Authorization/Voter/VoterInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/security-core/Event/AuthenticationEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Event/AuthenticationSuccessEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Event/VoteEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AccessDeniedException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AccountExpiredException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AccountStatusException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AuthenticationCredentialsNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AuthenticationException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AuthenticationExpiredException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/AuthenticationServiceException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/BadCredentialsException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/CookieTheftException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/CredentialsExpiredException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/CustomUserMessageAccountStatusException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/CustomUserMessageAuthenticationException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/DisabledException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/InsufficientAuthenticationException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/InvalidCsrfTokenException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/LazyResponseException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/LockedException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/LogoutException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/ProviderNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/SessionUnavailableException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/TokenNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/TooManyLoginAttemptsAuthenticationException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/UnsupportedUserException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Exception/UserNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/security-core/README.md delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.af.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ar.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.az.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.be.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.bg.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.bs.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ca.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.cs.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.cy.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.da.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.de.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.el.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.en.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.es.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.et.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.eu.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.fa.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.fi.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.fr.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.gl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.he.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.hr.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.hu.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.hy.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.id.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.it.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ja.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.lb.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.lt.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.lv.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.mk.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.mn.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.my.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.nb.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.nl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.nn.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.no.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.pl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.pt.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.pt_BR.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ro.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ru.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sk.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sq.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sr_Cyrl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sr_Latn.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.sv.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.th.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.tl.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.tr.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.uk.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.ur.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.uz.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.vi.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.zh_CN.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Resources/translations/security.zh_TW.xlf delete mode 100644 projects/priceservice/vendor/symfony/security-core/Role/Role.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Role/RoleHierarchy.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Role/RoleHierarchyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Role/SwitchUserRole.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Security.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Signature/Exception/ExpiredSignatureException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Signature/Exception/InvalidSignatureException.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Signature/ExpiredSignatureStorage.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Signature/SignatureHasher.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Test/AccessDecisionStrategyTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/AttributesBasedUserProviderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/ChainUserChecker.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/ChainUserProvider.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/EquatableInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/InMemoryUser.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/InMemoryUserChecker.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/InMemoryUserProvider.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/LegacyPasswordAuthenticatedUserInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/MissingUserProvider.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/OidcUser.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/PasswordAuthenticatedUserInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/PasswordUpgraderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/UserCheckerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/UserInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/User/UserProviderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Validator/Constraints/UserPassword.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/Validator/Constraints/UserPasswordValidator.php delete mode 100644 projects/priceservice/vendor/symfony/security-core/composer.json delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/CsrfToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/CsrfTokenManager.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/CsrfTokenManagerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/Exception/TokenNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/README.md delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenGenerator/TokenGeneratorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenGenerator/UriSafeTokenGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenStorage/ClearableTokenStorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenStorage/NativeSessionTokenStorage.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenStorage/SessionTokenStorage.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/TokenStorage/TokenStorageInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-csrf/composer.json delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessMap.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessMapInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/AccessTokenExtractorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/AccessTokenHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/ChainAccessTokenExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/FormEncodedBodyExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/HeaderAccessTokenExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/Oidc/Exception/InvalidSignatureException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/Oidc/Exception/MissingClaimException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/Oidc/OidcTokenHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/Oidc/OidcTrait.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/Oidc/OidcUserInfoTokenHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/AccessToken/QueryAccessTokenExtractor.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Attribute/CurrentUser.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Attribute/IsGranted.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/AuthenticationFailureHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/AuthenticationSuccessHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/AuthenticationUtils.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/AuthenticatorManager.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/AuthenticatorManagerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/CustomAuthenticationFailureHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/CustomAuthenticationSuccessHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/DefaultAuthenticationFailureHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/DefaultAuthenticationSuccessHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authentication/UserAuthenticatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/AbstractAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/AbstractLoginFormAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/AbstractPreAuthenticatedAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/AccessTokenAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/AuthenticatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Debug/TraceableAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Debug/TraceableAuthenticatorManagerListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/FallbackUserLoader.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/FormLoginAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/HttpBasicAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/InteractiveAuthenticatorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/JsonLoginAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/LoginLinkAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/BadgeInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/CsrfTokenBadge.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/PasswordUpgradeBadge.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/PreAuthenticatedUserBadge.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/RememberMeBadge.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Badge/UserBadge.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Credentials/CredentialsInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Credentials/CustomCredentials.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Credentials/PasswordCredentials.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/Passport.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Passport/SelfValidatingPassport.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/RememberMeAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/RemoteUserAuthenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/Token/PostAuthenticationToken.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authenticator/X509Authenticator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Authorization/AccessDeniedHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/security-http/Controller/SecurityTokenValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Controller/UserValueResolver.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EntryPoint/AuthenticationEntryPointInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EntryPoint/Exception/NotAnEntryPointException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/AuthenticationTokenCreatedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/CheckPassportEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/InteractiveLoginEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/LazyResponseEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/LoginFailureEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/LoginSuccessEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/LogoutEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/SwitchUserEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Event/TokenDeauthenticatedEvent.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/CheckCredentialsListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/CheckRememberMeConditionsListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/ClearSiteDataLogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/CookieClearingLogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/CsrfProtectionListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/CsrfTokenClearingLogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/DefaultLogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/IsGrantedAttributeListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/LoginThrottlingListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/PasswordMigratingListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/RememberMeListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/SessionLogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/SessionStrategyListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/UserCheckerListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/EventListener/UserProviderListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/AbstractListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/AccessListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/AuthenticatorManagerListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/ChannelListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/ContextListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/ExceptionListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/FirewallListenerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/LogoutListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Firewall/SwitchUserListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/FirewallMap.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/FirewallMapInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/HttpUtils.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Impersonate/ImpersonateUrlGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/Exception/ExpiredLoginLinkException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/Exception/InvalidLoginLinkAuthenticationException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/Exception/InvalidLoginLinkException.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/Exception/InvalidLoginLinkExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/LoginLinkDetails.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/LoginLinkHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/LoginLinkHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/LoginLink/LoginLinkNotification.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Logout/LogoutUrlGenerator.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/ParameterBagUtils.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/README.md delete mode 100644 projects/priceservice/vendor/symfony/security-http/RateLimiter/DefaultLoginRateLimiter.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/AbstractRememberMeHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/PersistentRememberMeHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/RememberMeDetails.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/RememberMeHandlerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/ResponseListener.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/RememberMe/SignatureRememberMeHandler.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/SecurityEvents.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/SecurityRequestAttributes.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Session/SessionAuthenticationStrategy.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Session/SessionAuthenticationStrategyInterface.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/Util/TargetPathTrait.php delete mode 100644 projects/priceservice/vendor/symfony/security-http/composer.json delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/Attribute/Required.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/Attribute/SubscribedService.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/README.md delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ResetInterface.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceCollectionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceLocatorTrait.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceMethodsSubscriberTrait.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceProviderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceSubscriberInterface.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/ServiceSubscriberTrait.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php delete mode 100644 projects/priceservice/vendor/symfony/service-contracts/composer.json delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/README.md delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/Section.php delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/Stopwatch.php delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/StopwatchEvent.php delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/StopwatchPeriod.php delete mode 100644 projects/priceservice/vendor/symfony/stopwatch/composer.json delete mode 100644 projects/priceservice/vendor/symfony/string/AbstractString.php delete mode 100644 projects/priceservice/vendor/symfony/string/AbstractUnicodeString.php delete mode 100644 projects/priceservice/vendor/symfony/string/ByteString.php delete mode 100644 projects/priceservice/vendor/symfony/string/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/string/CodePointString.php delete mode 100644 projects/priceservice/vendor/symfony/string/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/string/Exception/InvalidArgumentException.php delete mode 100644 projects/priceservice/vendor/symfony/string/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/string/Inflector/EnglishInflector.php delete mode 100644 projects/priceservice/vendor/symfony/string/Inflector/FrenchInflector.php delete mode 100644 projects/priceservice/vendor/symfony/string/Inflector/InflectorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/string/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/string/LazyString.php delete mode 100644 projects/priceservice/vendor/symfony/string/README.md delete mode 100644 projects/priceservice/vendor/symfony/string/Resources/data/wcswidth_table_wide.php delete mode 100644 projects/priceservice/vendor/symfony/string/Resources/data/wcswidth_table_zero.php delete mode 100644 projects/priceservice/vendor/symfony/string/Resources/functions.php delete mode 100644 projects/priceservice/vendor/symfony/string/Slugger/AsciiSlugger.php delete mode 100644 projects/priceservice/vendor/symfony/string/Slugger/SluggerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/string/UnicodeString.php delete mode 100644 projects/priceservice/vendor/symfony/string/composer.json delete mode 100644 projects/priceservice/vendor/symfony/uid/AbstractUid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/BinaryUtil.php delete mode 100644 projects/priceservice/vendor/symfony/uid/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/uid/Command/GenerateUlidCommand.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Command/GenerateUuidCommand.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Command/InspectUlidCommand.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Command/InspectUuidCommand.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Factory/NameBasedUuidFactory.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Factory/RandomBasedUuidFactory.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Factory/TimeBasedUuidFactory.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Factory/UlidFactory.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Factory/UuidFactory.php delete mode 100644 projects/priceservice/vendor/symfony/uid/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/uid/MaxUlid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/MaxUuid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/NilUlid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/NilUuid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/README.md delete mode 100644 projects/priceservice/vendor/symfony/uid/TimeBasedUidInterface.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Ulid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/Uuid.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV1.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV3.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV4.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV5.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV6.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV7.php delete mode 100644 projects/priceservice/vendor/symfony/uid/UuidV8.php delete mode 100644 projects/priceservice/vendor/symfony/uid/composer.json delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/AmqpCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ArgsStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/Caster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ClassStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ConstStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/CutArrayStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/CutStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/DOMCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/DateCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/DoctrineCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/DsCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/DsPairStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/EnumStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ExceptionCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/FFICaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/FiberCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/FrameStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/GmpCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ImagineCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ImgStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/IntlCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/LinkStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/MemcachedCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/MysqliCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/PdoCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/PgSqlCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/RedisCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ReflectionCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ResourceCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/ScalarStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/SplCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/StubCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/SymfonyCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/TraceStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/UninitializedStub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/UuidCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/AbstractCloner.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/ClonerInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/Cursor.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/Data.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/DumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/Internal/NoDefault.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/Stub.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Cloner/VarCloner.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Command/ServerDumpCommand.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/AbstractDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/CliDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/HtmlDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Dumper/ServerDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/README.md delete mode 100755 projects/priceservice/vendor/symfony/var-dumper/Resources/bin/var-dump-server delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Resources/functions/dump.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Server/Connection.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Server/DumpServer.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/VarDumper.php delete mode 100644 projects/priceservice/vendor/symfony/var-dumper/composer.json delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Exception/LogicException.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Hydrator.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Instantiator.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/Exporter.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/Hydrator.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/LazyObjectRegistry.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/LazyObjectState.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/LazyObjectTrait.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/Reference.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/Registry.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/Internal/Values.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/LazyGhostTrait.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/LazyObjectInterface.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/LazyProxyTrait.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/ProxyHelper.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/README.md delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/VarExporter.php delete mode 100644 projects/priceservice/vendor/symfony/var-exporter/composer.json delete mode 100644 projects/priceservice/vendor/symfony/yaml/CHANGELOG.md delete mode 100644 projects/priceservice/vendor/symfony/yaml/Command/LintCommand.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Dumper.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Escaper.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Exception/DumpException.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Exception/ExceptionInterface.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Exception/ParseException.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Exception/RuntimeException.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Inline.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/LICENSE delete mode 100644 projects/priceservice/vendor/symfony/yaml/Parser.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/README.md delete mode 100755 projects/priceservice/vendor/symfony/yaml/Resources/bin/yaml-lint delete mode 100644 projects/priceservice/vendor/symfony/yaml/Tag/TaggedValue.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Unescaper.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/Yaml.php delete mode 100644 projects/priceservice/vendor/symfony/yaml/composer.json diff --git a/.gitignore b/.gitignore index 9770bd2..4b58f01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ storage/ +projects/ guides.db node_modules/ frontend/dist/ diff --git a/projects/aak/Skript.pdf b/projects/aak/Skript.pdf deleted file mode 100644 index 030f074..0000000 --- a/projects/aak/Skript.pdf +++ /dev/null @@ -1,4456 +0,0 @@ -%PDF-1.3 -% -1 0 obj -<< /Metadata 3 0 R /Pages 4 0 R /Type /Catalog >> -endobj -2 0 obj -<< /Author () /CreationDate (D:20250704113420+00'00') /Creator (LaTeX with hyperref) /ModDate (D:20250704113420+00'00') /Producer (LuaTeX-1.16.0) >> -endobj -3 0 obj -<< /Subtype /XML /Type /Metadata /Length 808 >> -stream - - - - - - - - -endstream -endobj -4 0 obj -<< /Count 47 /Kids [ 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R ] /Type /Pages >> -endobj -5 0 obj -<< /Contents 52 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F21 58 0 R /F22 59 0 R /F41 60 0 R /F44 61 0 R /F47 62 0 R /F59 63 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -6 0 obj -<< /Contents 66 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -7 0 obj -<< /Contents 74 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F26 75 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -8 0 obj -<< /Contents 77 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -9 0 obj -<< /Annots 78 0 R /Contents 79 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F25 80 0 R /F28 81 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -10 0 obj -<< /Annots 82 0 R /Contents 83 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F22 59 0 R /F26 75 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -11 0 obj -<< /Contents 84 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F56 85 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -12 0 obj -<< /Annots 86 0 R /Contents 87 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F56 85 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -13 0 obj -<< /Annots 88 0 R /Contents 89 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F146 90 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F74 94 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -14 0 obj -<< /Contents 95 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F146 90 0 R /F16 56 0 R /F19 57 0 R /F28 81 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R /F74 94 0 R /F88 96 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -15 0 obj -<< /Contents 97 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F146 90 0 R /F16 56 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F74 94 0 R /F80 73 0 R /F88 96 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -16 0 obj -<< /Contents 98 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F146 90 0 R /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F74 94 0 R /F80 73 0 R /F88 96 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -17 0 obj -<< /Annots 99 0 R /Contents 100 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F26 75 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -18 0 obj -<< /Contents 101 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F26 75 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F62 102 0 R /F64 64 0 R /F65 72 0 R /F78 103 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -19 0 obj -<< /Contents 104 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -20 0 obj -<< /Contents 105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F23 106 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -21 0 obj -<< /Contents 107 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F22 59 0 R /F23 106 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -22 0 obj -<< /Contents 108 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -23 0 obj -<< /Contents 109 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -24 0 obj -<< /Annots 110 0 R /Contents 111 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F56 85 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -25 0 obj -<< /Contents 112 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -26 0 obj -<< /Contents 113 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] /XObject << /Im1 114 0 R /Im2 115 0 R /Im3 116 0 R /Im4 117 0 R >> >> /Type /Page >> -endobj -27 0 obj -<< /Contents 118 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F42 67 0 R /F44 61 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] /XObject << /Im5 119 0 R /Im6 120 0 R /Im7 121 0 R >> >> /Type /Page >> -endobj -28 0 obj -<< /Contents 122 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] /XObject << /Im8 123 0 R /Im9 124 0 R >> >> /Type /Page >> -endobj -29 0 obj -<< /Contents 125 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F108 126 0 R /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F56 85 0 R /F60 71 0 R /F64 64 0 R /F66 127 0 R /F79 128 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -30 0 obj -<< /Contents 129 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F56 85 0 R /F60 71 0 R /F64 64 0 R /F79 128 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -31 0 obj -<< /Contents 130 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F21 58 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F50 70 0 R /F56 85 0 R /F59 63 0 R /F64 64 0 R /F65 72 0 R /F98 131 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -32 0 obj -<< /Contents 132 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F108 126 0 R /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F44 61 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F73 133 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -33 0 obj -<< /Contents 134 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F67 135 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -34 0 obj -<< /Contents 138 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -35 0 obj -<< /Annots 139 0 R /Contents 140 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F67 135 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -36 0 obj -<< /Contents 141 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -37 0 obj -<< /Contents 142 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F104 55 0 R /F16 56 0 R /F19 57 0 R /F22 59 0 R /F26 75 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F56 85 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -38 0 obj -<< /Contents 143 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F156 144 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F67 135 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -39 0 obj -<< /Contents 145 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -40 0 obj -<< /Contents 146 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -41 0 obj -<< /Annots 147 0 R /Contents 148 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -42 0 obj -<< /Contents 149 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -43 0 obj -<< /Contents 150 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F56 85 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -44 0 obj -<< /Contents 151 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F105 152 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F59 63 0 R /F60 71 0 R /F63 76 0 R /F64 64 0 R /F65 72 0 R /F67 135 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -45 0 obj -<< /Annots 153 0 R /Contents 154 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F105 152 0 R /F16 56 0 R /F19 57 0 R /F25 80 0 R /F28 81 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -46 0 obj -<< /Contents 155 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F67 135 0 R /F68 136 0 R /F69 137 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -47 0 obj -<< /Contents 156 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -48 0 obj -<< /Contents 157 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F59 63 0 R /F60 71 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -49 0 obj -<< /Contents 158 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F50 70 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -50 0 obj -<< /Contents 159 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F108 126 0 R /F16 56 0 R /F19 57 0 R /F41 60 0 R /F42 67 0 R /F43 91 0 R /F44 61 0 R /F45 68 0 R /F46 92 0 R /F47 62 0 R /F48 69 0 R /F49 93 0 R /F59 63 0 R /F60 71 0 R /F64 64 0 R /F65 72 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -51 0 obj -<< /Contents 160 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 4 0 R /Resources << /ColorSpace 53 0 R /ExtGState 54 0 R /Font << /F16 56 0 R /F19 57 0 R /F22 59 0 R /F41 60 0 R /F44 61 0 R /F45 68 0 R /F47 62 0 R /F60 71 0 R /F63 76 0 R /F64 64 0 R /F80 73 0 R >> /Pattern 65 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> -endobj -52 0 obj -<< /Filter /FlateDecode /Length 3275 >> -stream -xɎ>_ѡ)+ӇLJ/R$gH-O?=|O$g\ѓT|"Ip9[P(D$UdBPX~$vq.%222WR V&k 5sU U,ʽ}Qu0rIT)9Sz/3kA!]7q9okbڏXݬ*CAH1w)ck*P;3[LV i ѾzJ~m 6d -iQ -MeVʣL ~ڤQumU۲!=XB=҄k\US[|*L—T0<(&4~}oBJ-:D_+eTmZ-lZ+w4|sAS5\`NiwTs!͚'Vя(N Wˑޥq (O]_2IpXw"2g_'b=)BԷ,\[.80i -n?`T5B#}dƺ~}Z5 -"n~cgJDT֦3T†CYOyFrOR kĬ:Ra[% 4,(݊/1a ;l1y{ˏm|C{tkE!LѸ'bJaYǽۏTĵ? .J" Mr:2)m{ Z krqLKW[)n=GJuxUdH4st=~7_T0S=? o1h> 0I>YKl[0;@bKfTB/:jd6"c'2,$HҎ\I= %ČmHBgVQC>xEAݦPZU xLލp簡As-b΁:"}{Efb;+# -4^u&=~T (\ERñKl1cV00f } L,0a{#_kD%=#ADfZq 6$ -68yO^3Dmfڑ8H/t8Qm]ym v2 0 rwq -a3nkea -*!FVwV'hJ$0[Yop -8ᘔe8p Vn <vDH8(' Fn"bҨ=MJҎvCZ+#6k װ4-,@; -9l">R)jr[g/5wo^azP%+v_9l4hԳV͖= x~(Y319} <0s=3MGM` <: @6T{{>x (?c:IAn*X0h41qa鬨3p88fd '`J![6:°AƜg+G#9 -ܤ 4؛+=0aG - &pHlRZ&`Dgb0;0TX{uLn(uhAs[u ?34 ~=apQvg45Ϟ =[Lk=yDn?IDڟ'Vi1أ)[NT|x3/?vgX/Wl_G~xi,&!1MiPq4-ӛF3%2$FpD+?/õ 2FcwFF.߽34F@O̡+VOq PtF;pAAȖ@bg%Fn//_gR`uXR5 35R &QEoH :nmL@+:Kb\P2) s 8?6pHւW ܀ - Q`ͫza~6z^úL?f@ϤWtƄsv~y~Wٷ=:j8~Ϭt)=:H6[gAzlN[tqis伃'@1pa'i9O_FSKӏ.5,:[(D٥CYXu+d򐡃!T3 ?fju >> -endobj -54 0 obj -<< /pgf@CA0.5 << /CA 0.5 >> /pgf@ca0.5 << /ca 0.5 >> >> -endobj -55 0 obj -<< /BaseFont /LMKJVR+PSTricksDotFont /DescendantFonts [ 161 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 162 0 R /Type /Font >> -endobj -56 0 obj -<< /BaseFont /RDSPHF+LMRoman10-Regular /DescendantFonts [ 163 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 164 0 R /Type /Font >> -endobj -57 0 obj -<< /BaseFont /HLFSWS+LMRoman10-Bold /DescendantFonts [ 165 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 166 0 R /Type /Font >> -endobj -58 0 obj -<< /BaseFont /MYUXPV+LMRoman17-Regular /DescendantFonts [ 167 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 168 0 R /Type /Font >> -endobj -59 0 obj -<< /BaseFont /OABBKO+LMRoman12-Regular /DescendantFonts [ 169 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 170 0 R /Type /Font >> -endobj -60 0 obj -<< /BaseFont /GNCBKR+CMR10 /FirstChar 0 /FontDescriptor 171 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 172 0 R >> -endobj -61 0 obj -<< /BaseFont /AMAITW+CMMI10 /FirstChar 11 /FontDescriptor 173 0 R /LastChar 122 /Subtype /Type1 /Type /Font /Widths 174 0 R >> -endobj -62 0 obj -<< /BaseFont /DDREJX+CMSY10 /FirstChar 0 /FontDescriptor 175 0 R /LastChar 112 /Subtype /Type1 /Type /Font /Widths 176 0 R >> -endobj -63 0 obj -<< /BaseFont /JSWIMH+LMRoman10-Regular /Encoding 177 0 R /FirstChar 24 /FontDescriptor 178 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 179 0 R >> -endobj -64 0 obj -<< /BaseFont /PIYJOA+LMRoman10-Italic /DescendantFonts [ 180 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 181 0 R /Type /Font >> -endobj -65 0 obj -<< >> -endobj -66 0 obj -<< /Filter /FlateDecode /Length 4866 >> -stream -xˊeq?_ѐM7;7tLoL^8EE~=UzKQ1{JU*ջJG|'|#7Zq'w7oMyioeoy|yN6]u((Ұ'S=AOw -kL)co:lt6aS##%eجօ 4+4XOˉM+vbmYwr)` REwGykd/ D oTv3n\LFŴY.6<" -;Fc&h~Y؜pԝșMKkJ_2ߤѷ0рz AMRH0l.Lvܦ`V^sڔ23}Gg6+fZ߈}EUe@*t2R-[츚"-'Kf }YNO̓x-@ tTf?0MS -7 TyVX;?TM6l`(ؔ_bHw7)X#kb35| -;guUCp 0#k*4=3K X4:a#ʹhԉ* bVqV -)Ң$lµbS>(1}ʥ*TZD@@Ēb&ZK%J+cAAKy~F!vpٻ~}NPCx\BV=֔k䬕1Z_.!ݕ2{;yT1{ߗu"Ƨ\:Z}}+#(єcKV E<&6qq6%'%"[$}ނk} -m\f`px]G`x -9aP>'T0PH:L,$ϖͭ c!\Ѓrxxߦc聕w?/ƿAd4%owxMs -ZGETibxa0>TSIuzY"a)נ|COZ̷>a+\ !TWs1I U U8y!|C,u"g]erjjy\tOZM6=2v}> &1RotHIh]ζ ]4Mw(}TrFNiG1iɭ+v-Dݱ;[)axL oz\e*^=&#5kߦjc쉴Q}j&42(/EO\2sfWDk[LY5Z#Bd )EڔCfv}~@J<pdB$,ZOC '-QjĞF+k2˨F7ɥ(mE೤_tR2+d-Jmn 9n/`fsaL`~̠cMP/NUTK]-QaZo -)oIFu4ƮU@o̬^> -nH$4k+5uS񜪛ٔd. -#4S+PLTA:L-^Ala^‰\&O"|Ok* :?%t -8O#*)MYo>e%AE#*~aN`&hB>By:|Gp8aNhm%4r+1~PGY[CQVʗaߌ]=k' -pY2f/NL26H!8 T\C[n IM/w$iE꯭M}όqqᤛJ^/羋9$;"uFIrئpAC d} qDZ}^\*/~GP%rЋFG(aˋ84𱗧b:iEE0y<%k )!*3S{"U_M˦'gͶu_SiJʑpNHI۴^.]CX4ďH؀3ChjDmwLu<iāX{M9t --fCd;K1.]F|ՇXm5 Ub tfM~-g nɯG06D3VȧƚZ)w7ixk9bmIp](I:z&SZ\hˮBD&R\7-Rv֩yVŸmz=U' UFT`תNCyI|4B)FhsJ# kKsh ȍrGž gKvReD]1^f4YME S>ͩTQ -+Ӥ4ۣ6Tt>:Է8BeD;HKhV>2wBk*O\LøkƠRyS(7#)+h -T}lqn ݖ=Fq .N @IS#cFZ7\D0Ozq숩Vde ~GHť0W" 0fj0\+&3Rz Pr؂j,FBT+:y᳊J;TcŎ++_ 0/_^)a+!nrUz*S=ЪLu0LTsL (SbQFչhM{ׇq9KaL3rH{`\^ eOy5짯A k Ti.{ $NC_\M$==_ڳPmqBKek)ȤZ@cTX"'poעB`FG*khTRa":4!y+̻5I`7fG1s@@ݴO{;mM9H׉m/䆥A0eF\S"ptc! #}k(Pt ޲3yyXш_3-1o^ybR/Vo Z)rã_?7b,PZ.J$*E@R$-ׁɰ o8 h/ m8pXD h+Hv&.-.gGNIo7A~4 s,Y5ci'e$NoN6\1t+B> -endobj -68 0 obj -<< /BaseFont /LTMODL+CMMI8 /FirstChar 11 /FontDescriptor 184 0 R /LastChar 124 /Subtype /Type1 /Type /Font /Widths 185 0 R >> -endobj -69 0 obj -<< /BaseFont /UCBASP+CMSY8 /FirstChar 0 /FontDescriptor 186 0 R /LastChar 112 /Subtype /Type1 /Type /Font /Widths 187 0 R >> -endobj -70 0 obj -<< /BaseFont /COUOCP+CMEX10 /FirstChar 0 /FontDescriptor 188 0 R /LastChar 125 /Subtype /Type1 /Type /Font /Widths 189 0 R >> -endobj -71 0 obj -<< /BaseFont /UFQFJT+LMRomanSlant10-Regular /DescendantFonts [ 190 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 191 0 R /Type /Font >> -endobj -72 0 obj -<< /BaseFont /JXJRLL+LMRoman10-Italic /Encoding 177 0 R /FirstChar 25 /FontDescriptor 192 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 193 0 R >> -endobj -73 0 obj -<< /BaseFont /WMLYBA+LMRoman10-Bold /Encoding 177 0 R /FirstChar 123 /FontDescriptor 194 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 195 0 R >> -endobj -74 0 obj -<< /Filter /FlateDecode /Length 4094 >> -stream -x\K W>,Qod \vaF${_G*Ţ=UMO$Ez'~JۧWoSRD}J|rT;@(>/R:xoi% % ?{Cf  {?-zO!7.J^OW&#eԿ~2˳o;Vq+}=043%̳IFsJto -Y"z"8sno/87(hiYi> >~QF9:jNPVh-"~dSy_'NF}P]IzBnVH'#>jM5ꢔOiW=2y"2M9bb8Ͻ,CDnuUi&8LC=gnVngLx:څVᔒ BO$-/,=Q7V2 2*N<(PVxF Q ?@B30Z89 ? *zN3.j 8"+$MzUqB@nn!mĬ~vLGڔAX*t#: `SfOs[T{& O/>0I)p7HH<ɇVqK?[TqcP;VߎC%h<۝0{;%nBU_D g贠&K {Oǐ*:wEk5N4fW,#,D뷖~=6:psXq[:% -܀,YM,j:~ 6H~n=wdFo51TTads PC;2!`$LDnʹi^F6O,(;[) I.hwkI- =5L7az~m_[he]|]T&S_]05=dXd5=QZT6z[FZ zX -#7ˈWm޳&y**!U5IὥXv뛪Y7 FbcFn2zճzͤI3B)ܒ<;a&cisFZULY&3ϨY2F=٤E5JN!d(zXurfPP-mS5B`an:TV-zylEx$Z08 P吧5:ˈ%.г(y[B\wd^7w{L!qUٯ>U vej -T[7&itɂVԹʀrIHzN2``r׈:'+|5_&IBȞv GG>Q$N!N -L,U ћR'VZ9r И8.c+2`MJgh3>,,$OF匰iٟG̽Gǎ.vEaNm7Wr(j4 -M/W\w g 4BH~D'E:P`ɹ~%z{>ܨM\ &֖f1h+>`=i \ljԄxh"R2;WcиaMArQ săJ%EqAPff#DaHHdwfF{H h\>s4hK.%6r t@ WS8jҳf]Ǵ}9>H7z{NTg9]Nmq - -r(N`8J'/׫%ÕMA+54ܷ:-~+%IF7MDԈIkg߮SnzXtQ%|sjٕqB'/YUh6؆&YLSdu5i$m\Ҳa&׉U k:,+?KautP i&u֭VgZp3/V>g%2Sܪ2m6X;{*eY\;UhӭvMA; -НZ=wHjoQp:ZGԴfSQ=Eᾮ\ꡞ@*09FB(t'-:# T -P|*+/|hSX!bh08H/:ŞvN ',/46CUKp7UGD3XQxoz}EdP} xAD9^}Sx`\ +`iiZ%NUOˍ@ V7 hM AʭkM< elPt P< iHp֯?/e^[B.?YpCCb} YuSyڪ #}}V;_~˜߬@\0?#@1Ujj<02ʵ6y^֬#­ra뺤B6HY∺ݙIݵϧZ J[ZYprƥo -A̭A‡UN7ƪVuȭ!QL#v}zrM?qKo*7fDՑ e>!D+t =92,DUд3 m; _.u(eyaPxoT. VfPǵ\tqj#% ˪Az:!Ծ%zbF+,A6EAaN17]c(7Kg5uszGhB|ȶzg>^)0 -%- -h+6شSe49Qad -@ZAm;*a6nV&}R+vtfj/#=k`aikInMw&ivݑ6&`AcZʨU:h KF徔mek˲@ -f c27EodΙ^x~tXpQK,,f pN0@8V1DRA٭VqDw if3tL'(i~'~J4sX -ňşnnN3<~ c^TM8 1Eu@F 7Yt|iOu7m=:t--?OXdٯ\qavwCrC8ͻ ]e/x]˛[-\>!tZ q N]rs.73epD{3ђazɆuܥf]useFGڸjvBZ|"'AA~n.]t*7r+Lw dV:!MJGS.NnZVkJIߞC`Cv~04`:IE?f/iIWillqKߎWRrܿMϗ^NgnN1 l*7r,iD עϚRp׽$?GVPAɊcF6+36)pst vZsaBģk/IO[,qsVL`RaLV)W 8Iroj;_&!(l7zR8N9_ 2#jr0U0m Uo$l"$P4[u #<9ە[2٨f$£'|lDıT+w]yMNF{eY>zQ?@tυԲ^1&hXi:6d0, C?1D*-2ZsFhIfQIeF9 n97?IzxA8E\zstë.p%"(c܁6r|ok7=efAoW.h$Y9kٟN -*q +wn{oRz6vF -u'~W^D -#ac7+\a43ќ8= -wgݓ͊:{]v#ԅ5l I@}uСJm@}1ALSihfUHp:kx`PAr.n/=Ï^v -endstream -endobj -75 0 obj -<< /BaseFont /RPFBFH+CMMI12 /FirstChar 59 /FontDescriptor 196 0 R /LastChar 120 /Subtype /Type1 /Type /Font /Widths 197 0 R >> -endobj -76 0 obj -<< /BaseFont /JSWIMH+LMRoman10-Regular /Encoding 198 0 R /FirstChar 136 /FontDescriptor 178 0 R /LastChar 136 /Subtype /Type1 /Type /Font /Widths 199 0 R >> -endobj -77 0 obj -<< /Filter /FlateDecode /Length 4917 >> -stream -x\K8(v_ FBhf `,Gb;qZJrcs??Y/ʃ !Lpo8s_qEg~OxBI6pOMψOoOo?zwRZfB;?>JwGa{x޳?.&0#Ӗ9-GU)C#zN`p,x /7luO%&p4a$6/ ۧj3۟r؟ِs_tdz~fRB0e0$sB%:׼>?OkNwD ȯtO{ Rwz_~=Oz:$ժ?x!LKL2s/3 -k!gv`a"ô`p`Ԟݯ厸g6ۈ}j`]ڊkZ3Z^פU ")2ǃa=kݩ-te?Qf2F}KwU Eng*y+ZDSFҾ?{Y!^ ^YZJ˞iɛ#7gh,'Ӻ< ڝnlpEpz~L1GB"/Dw2!pQXG@.c -E*.JzD%nٽ0~s$b -,p[JD9vvzuj'[bp<w~L?{Pzm4%ܗ&^/XJt6Gᡸ^VORB%MR@*MBSDrT=r%Q{~>ḱmVI]<;팋/ -P7d^~J4 :.hYpk1^+@%5U@ue}u/|fU7>uΞx BH^Mc_X¼kY f1Ӳ -}+3Tؘvve,(3=ڭ0-~l{ۢagf`#i;F燋>:bU1y-8 6"#,aobD:%M$F;TL3 - -ڍ5F^.ں\^9ĻQHh^ڵLWf`~̘x'%- zDbKlH~P~ҩ돏ƔJcKQDgnCku[ZGpD!pT77csSJN̯^}MvP%1!ink/RL؆>MRLP,9b~Il \o8ek88s5U<Xjw߳xk1B˙~#q;tɯ, *'H/C @F|d WRCRG|z>yizҵR8䗏$WW#M4TNQhۡn;E aۥ˻DD7D$b^MK3+)40DƑDžhIbD1j{Ž}Ԏ~561xwXv43 דqCםbx}ojQkVZIԝVtd׻DxյCVҬ84ՔKcPUI8aIdZ\L&)\]p$a5|4\:ѩfàZ;ͬS􌪫p<9o; y`5QWnpeOW^^eVoAN*fMG3*A+<DncCtѐm tζؒ4WFʺyJ;@j˂J VZEI; lC;î^ bvkԲdfiw ~HcfָCPyLw/D㎦t"R6Om3UG薼JUP~=d-6=<_ԕR­´{LEsnaM}kVG9F. mWKK@Ӿnk* Q -uH)P 5ُQr@*־nZ@]cۯk'ٚAX_vH2Kg=v-$/!^+de*iJ_}V]ŇMy@'޴RFZe2P-Lz ķK$ɔcħi@ɪ}ԺVvdgO6ԉ -㳽Gޭ*b35Yjd;ľe֘T&P2[YALGkMTZgF{=γXG 4/]7NA qb`SW=f(^[ \*Юj뷢0kWԾ1\s9ṁyYn F0WY(WYP,{d=SI MdkPFļEF26TI -}PIH}ϮLvh1mJ ןN(44(EST = N3PAu HP3˟LdClK2YAg-Tf2+z1%X:n.sZ<;kc2mH].';XLTֈfm20OX9gMwQ~6h&C944'XE}fd8P3N8.w[YQ0yv&M̏}ݭO]xB~IL@ςA ګ=A e# RPcgNF!B$g]Hfh-)dy<\}#ߒ[hGEBhH;V j_=zó@$&9'ΤL^8BI~)Uyi0N xi6asDBʨzPE?#6wؚ]½ w&fSo!9 4qW#섳P*SF9 tm+k%/iksңC˩ Yk:{:gwwu0EVM8G,.{-QJE'HyFyJOD3|;UJI;hyultCM= Tof0cL">k`,4s1>[/.X>[c`.>Qvsa'aߝ3)_z9dCao< 6i3/kUHCȫisM3aM301b  f((XN)+{ˉmsz.P0[W3fꗞCl2=!ǮmRwCt(}tUblUQQ0;i\;>:#[M+ <)V:_|!z-QJ*"|Z45uVS>!^+\I@(odB_A =Ӗ<-;T&d4E\Ȃ^D:'Ft|eЈ>?IGhr+t(A󀾫CX\'N}-AxP E2ޢS-_kh۷tkxQcPd`hj͵g 5?3amd~t ݪj*\:QNKddfif3m: ['.xjGjv.I>:CwNkiG;ǡ7͈傕G][&Fc&թ'I%4$xm94-HaߩMv_dqi˸0}Hg_L#dҲ(-û>e PVkJG焜ۀq=CẌ́twYTREh5,6 5:&"J'̈́cL~ÄKND=%u.h`:6fRsZA᱾O_6yIF7cQZ_CGy >\7<ӄ;6<e vn&Ng™}>>aVW}\| W4}^lpg_YƆ.rh8QGFV7GCyXӂَz}! -endstream -endobj -78 0 obj -[ 200 0 R 201 0 R ] -endobj -79 0 obj -<< /Filter /FlateDecode /Length 5227 >> -stream -x]͏7r_G,~K -`,1'bX`,rʿ_l|k7ӯIVUMI/MI%> ܔBZ{A %۟IJHIi4~>w/!|~?/w"zO{>-OoHR˧[+w˳|R1)Lhoh!@BOC3r eEliXv2!'c! -Tě?+e^82=emaqVe*d[qyKkqǬe V(mP&QcηCB l tљDua!<`0/!P/c~L*PQȀFE;1{^8PV[(ʴוcr궙͟!@;`͋+Q-4D,4c&IC[v9mzc;٨M&04$55)vq !К2V1" gty#c SPRJG!U.(P@Hi)0q8 BH8Oo6:(+>E҉ц+j-ψ -IN{=Bz7ʭo'L3eo9-26bY(%P-2cYH50R -MK^=l' eu"fj ܀WsN&bM :%#ʞ E -kpJfڄJʒ12.z[ L1]dO7zRD-At͌҉K:1TEXk5@u詧Iݐ6a5ciw}P|yN'(n1?jwH5Blckb%1eVYj3Kᵗ!cn`Sz%;++-Oؒ%!Xw'^%,\8ҖCHla'f[*^|;3!kV6r~! M$A,1/)YHT7(!Uv(ШɲD^v?aо_5!'+:ُ&02.I)I#Mq^.6x}~,[ѭs /o9rQ(wL$3T>pRl>CY0VoS;d"p{l=gH1ԅ-xS? F,VRB |'%'JnE`uabfbG(,-YMsg!\%txq 9q==IژL 肈9_:Qf:" HDIY;ݖYUT Q^鍡=SpKOx#4E]y+(+-^RTl}]5]_H혯`g>%F -\c)(PQGUe>x|RdVn,ߤ3@Io\')Z+ŧJ#>AZr@NZe43A26=zH}̏ XJDZ:m@qB -4W^%adryޕ,;ZohmFmdqzyv<öxa:O-mEp]e\BeAV®[g}:hvPTͨ_3,rWJ Oܖ 箲|Q+$2-Q<'w>GZue - ` a9z ^o8>,~ɳmvzBl2K'8Ԩ|u{g QqФ"G= rTSX}ta .%ϕc:˖%OOr[KfNdipǐoǜ5w\e3ll -RYæ]7fVz {<'le^q?1#$%hl3]_4юSeĒh]T?MM B lb–w$}UYż^a@(Z #4bo/Ltb~:b^St擊x栝c=zsѱ6nE>|; BSnB;fvH" iW>J-70;6VJf4dtAkd|Pٍq"^v̇ -q9T;RCXKP0(VR\M?l&X lpҨ6=)&La<їBOnYԆF2?@2?wN5t|*խrK]Ȝr&y _-Û%bגqaݼm>O ,Lnx>Nz[ͮ3&5uuF};Ƈ<_jz8 Uԓ^IՓaE-Gh##c(5G'T LG[v/q%bm\8w{+; VazgcA,qnm׳$&n WUNovU2cR5-sT%:MҎR3R9QV⧏";ɁBAS3l.Rt`.hΞgM$߽9r]IwWI^#8t@ rG],wtt{D~ܪ5^}"EL/c5]>w.C!ԟ\ -^gMF˵ݬ~#T+` R.|~obq?2_fL=Z}Uqiܟ;@p~Dp-)u~; NJ0V]vA퍧v̌ U֧oI;`J|SKsX;rrRԝDiGNp%%4?k@to<&,2'"D_VNM̢Si"{ ʨ-PŎ&_l}(颢D u - $pW^A>m fa] jwyvHnDvHcX)0 5K%RI89CAv~ݷ -endstream -endobj -80 0 obj -<< /BaseFont /IQSWSQ+CMR7 /FirstChar 48 /FontDescriptor 202 0 R /LastChar 55 /Subtype /Type1 /Type /Font /Widths 203 0 R >> -endobj -81 0 obj -<< /BaseFont /ZEIBXI+CMMI7 /FirstChar 102 /FontDescriptor 204 0 R /LastChar 107 /Subtype /Type1 /Type /Font /Widths 205 0 R >> -endobj -82 0 obj -[ 206 0 R ] -endobj -83 0 obj -<< /Filter /FlateDecode /Length 4220 >> -stream -xn7򮯘IaqX .VoId VY|MwGyzU-y$O''OJ(_o@=BIzk)|so RQJC_˧Uƕ^Cx];o*x Vx;[lQ 3b4iq -8([sN{d6ptɅQ~ORo9>]Y9\O`v$B8y͟jZCWOʭB~x8"ʬLj}}k2}AbUb#qC~ oY[#l·nWlI|cz~ -!n qZja! ,uqux7Bʟ$}B1" -ID/ВWlQX/yE{ D\EQ,g#! . 'VNLF8CgT 3);9&0JT44k33uCfUƇIk4 Ufd d3d)TغJ#gI09^c[Zyu[~;SJn"jc72Aʛ*!.vHNI` 2Rx<0bI7dKC[qit -]']2 PP~HN5Kr K2]t&G/ 8-B=S@T,xfkK|6Ι+K.:ߪ0hئ$QcsM|݁boR-Zk\Z\_GTעKVvґ -ƇLxfzrO8777uR|+"IJ-QMx-}UH/Y\1#ApPn:=Ѫ637o}:1MiV4ѤW1&p9Zy#*XW:[C{ !ECMi毖`Эƥ6Pviyl%K!x?$nE7}3< y7 ݌ i P­lPoț v5vTIZ hp[oi#%aa@ku}¡./x_Ayn܇BY\TWAj ZVy~ ِ*(rFY>&k r_.) 4$ - gV8*Y9kmlYa.0};k.];Jh~9)cqTFRg -*LIM@IIBD:8g-FIsQvRW˵#uPipmЅE'f[W~‘{rBڐrzxsفmaUF`Z@AONudP~2_Q9OSZ|:)=r #Ocn~XcdN<]~N49(m "wS(pbAIT@SN$˳[h\>a<-i&7c/[ 4(L{"B7?,Zz#/Xs?\ΰj`n{";6C=-/$OG -Û<[/K(ué;2N0Zq[hk呣0nja> -stream -x][%q~_Ss3#v̴HBy[k z7uG2*zF #}NEEdf*ɇ},_%E/_>BI?~zٗ'+%VR SIk\[FCݾ@OKw}Oқ|R(+Gs?~ʫ߿)w onMd/Od߿3":_2͑ 6(Chx[ J89^elc9Wd=KfIçsdp<NQ8 yw*v{qjb|.ƥEF1m3,fJԉ)X%]2ެ4ShJFXojCZm;l 4^knʞ8ˉLz42U:$Pc61jNК{|> C*I(a$r5 \~Yl^*7oeb*R !]ќPи[>1-_X+C%ϋEko~Ų| -ՀI~#RzC 4R(FFD sEEȀ9\6@QKY\,r -J /E6U-r6|EAq9+Vh=%נT4 )=B5" -X;i 5^(תO=b!~+xTS79EV#zKT >:p#Q0 Qŵ;X\B#Uvp \tG48|n40.KUeQBkqFh8Uhæ@csz:4 dWa0}/4\[iOaX\ثIߠ+DQ bG-?2D/r(|: -&R/+KsI{PJ3>b[l*lJG5ҳ(2dV@s Pz6c FSbύXcXces9j,:RpWR'zJCjJfUo8-pZX- vzP#@Pþ;CϿ*/G6>Kuk9"8./J`)v`i& *ZH -v@}N 螖FJOu;t#B -+ܿ4S+YKŸEg^zZD:JY郿~RibR -7FGV0s-߲\uQv`U 7O2*Y*:z[aQJW cRB -k;8mH7)qT -T>K>qYxy[2dܰuT3# g1q{\рh=/V@ RPW M#Ԗ% DdlV% L ܁h0EN7³i<;u*fA b бtcjTQJd_!&vy(*qNjWHۣ:&Wǖx'G1pO;ƸMI+>a~`8Xra6rEaEM iS/oBWO> g#k\~zeAD@0}E -ZXEs!Ȉ40 A$G~NEN!BoV$qVWi y;CW;E%T [iMX -7Z5Xwz*fn~`ݤ(Q4nR\Aݵ9ĺs= &!n;4r:NvǰF{Em@aBfO@A%mCxa ^A{ txlQӜ=Yx*;n"o1ftwZ<<@[37 / Xt6cvٙ8WXȠs3;_b>?R-y9 -oO!`Zaa. @BS3a`E։nI̕~Փ%?/ w㟋Mϭ>EsL}MZ+m  J|+u,ӑKV7AwlUٗ$$h{}}Zira>6GE^s}G;0#kb9?.܎"@s. ]kIu2Ya'KvA!+ƌ[|մ0Ұ5zV^C+*mdz)^lO֔`g0p# Ny`[ǻ; CzRI\L@7-bB%`f>%~lL]hb6f$zЧ_3bA~[=cV9)g3cg V`4y[yKy' #Z}_N.ԬۼN4c3Ea5up>c} m*fEDt0ȥől90tݚy鑯:i||c,8Csz(V&,T ʡ߽d:{j0s1qE87,|b.\x&Qy2~-{VRIftoJhFn5)-5vҟy4P՟|jRDe@Qh)]v\i]ҝ Y@Sih¨ȌGe1>,ۘ3 zRl,-(װ']SϾE'#w(,@~LN,^@4?,Iu2sC0mk9,4)%nO 4jMFA7YU Y(\.ڢ[]?ߨ~3 e-z8Fb.aX3e?(ַRȊ#;7 mW+#տg[WĜ9pU:,kC!@ט.7#bQGg m@{^ݵŃNӵdTWxAHh/6zkjkYI.6\ -rm*D[ .re\C<"~pFs&;7 +γ -MO[ 4zWhl3_mѬLn]*Ѓ\RFЭg׸cw}JKjͳWK<׶Iǖ[Ay0Կ^Q#2sx~d`Lc3^v*Z5ЭBҘ daM!EHfi y0dV-0FQܸ+)6fPh0iBn-kRrw(& êd*b <Óq4=HI"[yRh[+Y%m/]/ ENwޕ1)$cI@c.;Ֆ=yJһ -`Ɛ #EFFU[ozpOa1TH2玲Ң巅n9GW_{5c ]RyhxتTəo_ @l9H-EžӬR{z-Xv٨wzumJN5nk?E{yac: Y_uqJQw|UE -endstream -endobj -85 0 obj -<< /BaseFont /SVPXIN+MSBM10 /FirstChar 78 /FontDescriptor 207 0 R /LastChar 90 /Subtype /Type1 /Type /Font /Widths 208 0 R >> -endobj -86 0 obj -[ 209 0 R ] -endobj -87 0 obj -<< /Filter /FlateDecode /Length 5259 >> -stream -xَ]_aiއ,/z9 6r8QYd=+#PfIV"ᄏwx݋,{ ;%99/w|͹5Ϲ -'>8>{LϤJϴϿaJ)ço8Z0y0wxI)&0#WmӲ*.)qt1iBf#"QdFLX bWN2 u_lU#~" ;X㦫<IFkdon&jU2oc^z}."D5]Eyy|3xO"B-/CY]JG.#Zec&Ngt,o1/nC,ڤa#+6"C\cC`Nu2nM#=Oq% -g9bt$t7` KΞәFW(mTe<"?=xIEDGfyf΀E_9~=q;>Q4R_^[Y]ۏ { 7L73|0~/|^Xwx] nnU;_9e$FH6 aCޞ&e~Sz .Pzz6iFYC~̔9X54/>&IGҨl{( Q f=2$3[?(\Pnҹz?WyXZ387UN̠Zox]eOc4.j=g*.F2xPj]N'*i=u%zs vKjUufx{4){n}2Oͽ/zCV#!+594 -Z C:jcS(h41>Däz/4̨<.R #1Zhyai7Sى2$$ūQlG؍PAb$nϫ̘܂=5wrəq3=⯣cdY*+) -+JK##S$@(SDI%EgG]mU=f*g{Wb>4y2FϏE4^<e=sZ%IACJE= %ʿ:0 rP.0Ɓ -t0nC,[c7R 8 RB@;AiQtW k='8ꚍ .~V !&"KĀ2{fE[WܖW;j%'m?5I=h5 --2h.W5!1P,*c#H 6*kJ*f+(Q (+Sx! o ɂaUD cBđPs[;3X9C"KnS#F3M<0c\,%Ѹx@Z W+m$Yxɒ0jU^]0|9w>֙Iws {ٲe?_~y!w~SV/~?8(V)m90ϛsNt-R+QrHj>7+Eoz4FqtzT棥u)%N[ų,uZس$=or͵-/vj_%3.S4cp.ZɍS#.S%Jg!XcDFI^p**ȑt4yhi+F]L8>Slg[ZvʵX <') 8  D#G'kr\Fuc293MH,uV(sp(# #а+=_4h)(tˌMV:E\vQoHThF$Wd %\WWl =N?R:[4e?(KHjXG5}y+{4adw(!#7+Y,_Q`{K.ёZZ0 C8 wZ:nڡ -!:6shwВl>ʑEsűAʾBLLNӼ*@ j 79$ڥD򑶇\ta2yplnHC ?/V#d) U3DcBHt3VJ}$@[:M$U-;Jã/9$D RF5bm)2Û#*DΩBϰU勅D<\2 o1HfemW5Y]FIL_iBp7# _@8bȖ{4v¹Ǎ20; 8B߼ZkfV!əǰs<4e3=9ǎE4B~{Pb驔cDu賖},3h# i)u=^1r܄ -Mv;~ٱ@n⬄ -nDLZ|OG㵴g-&-3X`b< a@mjګ~U))Ѱ؃{CPqR)*|r).4֜w˹}Y]5cѝ`7# V=5v\˞u~6<P)?~MUYX'$Ls2rY5̈aN ms"~zմ. -Ǽ&`nY=<x -#;QiNtʄ\[BDf[ -`zT1Qƣ&*+FFkkiHSˋom;xR!5= mt6-Њn4|vN}?:Egoեps9eX#ul|SXl[فBu53`Ҿ&#ɫxw iJbf7oeBr7/"{+χXiʷ6j¿dzʩqNY7J]STnc^y*}A~7UM-hɋZS̥3'Bxޚ.} 1gq``NZ!H-bi*}'^UQBmgm2kyK퍺m%E7aO_K3n/٫W@)Ԩ76ҿ: h=(Gh\slivMG[z5@:lgafIRc' -Es?cV<%&>ՏY* 887UyΈ~+A7zܰ%ɭ݄@^H|g }K,n Fs;1m긽 -V«xE /qk/dxE>Ɉ/~yBҸ;[CtF r߉a/C.@^>Kf1rz{?qpgCb흇á~w/ -endstream -endobj -88 0 obj -[ 210 0 R 211 0 R ] -endobj -89 0 obj -<< /Filter /FlateDecode /Length 4332 >> -stream -xM,b(a]OطAB 7$w%Ⓙ*mzzݞ.W\^y$O>ʓ"HwzA7TҘ tHI?RNF_痗'D|o ߛix }jNmLv1; ǘU}l&k{ҞOe#k}da`Tƃ wA[Ӡׇ52poN?;I}0:yˤ5= 5o5ЎI%J ABӻޒJq);ilgJ]bH>@,SlQ H`˰X^ܛ -޽)+,Yo&I'^`$Ftf - +8}Y1Yn* k40|RxxÞ y_LTK+v<kr#"hӂ{U ǓiF.Df%֮(me oRzO {lϭSpZ5iALEi OYMJF|Eڢ#&?I>i  gKj7헓㍞QB!ǥnlUTOV\&^bk(Wbc)1_2byU]Q?'G..eForPg#b|ؠBq`VRh3[rМdV˜Qwdz_a rø:=YeLL%id$]*UCP-LiÝ;%*K05WZ&x\aֱD+[ȒQR2\GL}T25&uK7<*5 VVMR˞ʢϱt[Iٓuw`jQ܃wY\RTT0JAHPj$uQst=>e;~'D؆A ['q+]kgV]=l%An -(<{mlשd9ƞR(YN]Uz3ݙ(JFk$F:>!%s9eϕcֈ׊8`uMKP toYl}tL'OqKnj., 7J|e4UNn%(vǹљ{eյz-7&eKpc]\ juh \L+@xŅ|V G`ؐTm\,Zn>2 U>g1/\k렞*I9.,ĸ\RANsEKȚ%^Jb~<#8Nr\LNtZet T 2Djt Sw"w0 (TRMW0gp6TZJ[.LǙa)NՉTw1*t#0랋秖m-?́Grsަ2khAC;CG;{ъ{V%玎[s6i*laKB\b!?-ژ 3S&Cxy0ڻ]nc:‰'S#5[F&%)Gڹx@MI_ %= -r[\}%J",_^Hޯ%o %T1Y!c =!tu҂{1 BZ -7̐~i/rOvÑXjY@XhCvկ ˙є+?InO -ϭI5g'⋮(cYָ-v+!%ᒝ{ɕA!4|>p< 8y#'x:t$84(+mQ+ -,kfz*r"KBOMqIhdLK*sBB5h[j@a%aq[Mhyw@\|".GIsl4}3vΩc4꘢]2I3Mu3qL& -I֎2 -ˏ(3xlR3(l@2^\WyͰDF>*SGhw; PtY0h8$}KΩ%,\E=(01{,;9:Q"z 3\p_O+P hVQPc!æBf J5`(~и 6[u)%pvtEA L(P0[y3%jf4=(Cb$ -w.#yt}wiXFD}$M$W]DO)Uhw Uw0ASw ݮ0hѲQ7 i dC&fTp 5HfEFDŽ  'Č!21H%u}jTa\*"{3qDA~ǢT0i@5}ƕ w,U:YngeҷVѣAQP Sl&;o)mQ0\n"b},f.n%Hk./) ^qaYfԲ5|e|dK*4 }eWQg羥<ҳN:{DٚA<|*e<nē˫ T.cRޠ3z`WP;u0wyD|LX7:(,PJ,5^Ǭ+R@RimW;٫V1ҬR,&Kp>7ζWR`9(Vھ*ZzcԉeԦ!|97}kӠ|v~S0wZ1 Q=!;ZVD+p-fgy\ˑiiRZ엇BN<&Pԑ#Ԓ?b :E8kt Ήz?>;A~3&XNZ_w  кFn x>,-,up.{rc|#6\n^ !av0 DӴ|+ChBǿSK]l<2BKj4Kx߉M - -%u0<O:[ht bI*^ 5y/uҋ~JmN+mij2-}K~ֈ|3ku5.6Fw/y|zTH#H[I -! [*U4hSOD/rP7.d<եhL_9$>7>g^%Ϛ&[SCTW#iRWQIх ;)Ϯ(s@Ŕ$p _KnpkRX\\[{(,0`}ѣӼܹ:vǯhC&7K62 έ,+i~Eϥo?PPLޟQȰ -dO^`g -endstream -endobj -90 0 obj -<< /BaseFont /XEIKQG+EUFM10 /FirstChar 77 /FontDescriptor 212 0 R /LastChar 77 /Subtype /Type1 /Type /Font /Widths 213 0 R >> -endobj -91 0 obj -<< /BaseFont /GYJDJU+CMR6 /FirstChar 40 /FontDescriptor 214 0 R /LastChar 111 /Subtype /Type1 /Type /Font /Widths 215 0 R >> -endobj -92 0 obj -<< /BaseFont /SYZLHO+CMMI6 /FirstChar 11 /FontDescriptor 216 0 R /LastChar 120 /Subtype /Type1 /Type /Font /Widths 217 0 R >> -endobj -93 0 obj -<< /BaseFont /LULPRI+CMSY6 /FirstChar 0 /FontDescriptor 218 0 R /LastChar 110 /Subtype /Type1 /Type /Font /Widths 219 0 R >> -endobj -94 0 obj -<< /BaseFont /LEJPUT+LMRoman8-Regular /DescendantFonts [ 220 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 221 0 R /Type /Font >> -endobj -95 0 obj -<< /Filter /FlateDecode /Length 4617 >> -stream -x\IW< Mw[h< X7op8,ll=_|f46ZY+IyE^HN/}xEI%]^|H/I -Jˋח/I鬔6HS()s|F) ?.G:gxC0l٨P[e}twGW ŧ8i/\B6%n*Ϳgw*CP"6 - ~/錌bF( -zMD ow4 i\cϲVf]}c%鄌fx5Hlv]M`bYABD̛}l? z}SN8kV -Z_͡ Za@Om5I3}TA*V~9VlS4u;}4sHw}kAҬW/P9?BIZfK{շ4UV!~(770'#ۂߑIj^Q# 'o3Oڸ& dMf`8%} -yBЭXpYQ";З]v! -kܴKö+wua:f5Ἤ-T:r)u#gER+g"hJq+H4+kS4)2)g \tWe~ -iӅ$-fK[6"Dڶd/<3Ǿ`adsOjXL%wH/U ɾDUʎQ{]m*-*_xJ6KKjLU`/Z IE.dGgLzR'KjՏT(i%ml Uإ$ȏ*nL \9FU%Q,+?h -PK{4-a͂rW^P!yڗfY_^ĐV|S.nW;r^[tNZ&gk>:.2BֻWFmA` -T!]sܮf!˳W9ܴ @xql[bZBwY r}3,Pm3  e$>'sP"g&#U7V mZ   AרMK8CYU b<t krÒqjXZGUe'M=o15"Z.Q[ *פwULAz4.Tx[kڼ_Jo8{pT#Qj^f2+ xVǐmަ9ڂGj}lW|KiMmTH;NSM@:Y[3 -?!%,佟w$;CH-?J6RO)m -o~:*H Nff]ikre]4f,ӆ0u9fsߤ-H:hjhD= |ר鷕>RN,A @qB?Fפ ؋Q&\kdbӼ*Lg_~8({Fs3mn๑]~^'C9 FuW\S0fsp5kܼ+eu - h=U sX o Jba6#!kQA[Rvːg{{oHƑ9Y"g׃ÇzFBKͲV "@!p׫+nC۴f=$UIɼA^RDQqx9zrPa :x:Y8HX4rb1ꉥ}lGg޶ƾba]֝ax' -AB)Ѥ6r8SBut7qIA(LT< -' -i]B )K"7ZWS8rw{zlnPD\E]Nޛ/"@R_ -! #*n>A_8(/n@Fm}>!~0 E+e wQ7#gAܯ{,ǕY&mz!n`RD -} }¢F5|dT-DKsv-h[j5m3nZɼ? i(tװ;F*@|F^?J_;0-4/'c{Ȥ_7άA J -ȸcL ݵm7( [B}40=ZA<` -4gwXP;:E2S 0Vf|$f="vuyӋmP^SXsNx?{7e91؋ʝ%-ە{QIKau>AW/5q mG\OøҰ$u7ӑn ɚdgㆊ2Q9DZ*8|[Cw‹"z8`ʷ% @P/b:H:S}D ng8,B!PbqoG?_Ua:\g W9 7T6c(t 1j(;=&l\z>ݣ[vOrrG9%}i紈I&O?C|F̝\,*"p?tn)7mZr[a%0+L!խ <>dju[_niU\oRq -`P-_3qe`Vh,D#U%*Df>>r%nۚ qQ4 q Wrw'jFW/"l#4ߕMEε ;p2]1,-Eێp -ωlcޥ2}p.MXnqgXl'xᾏSM;})z?G l*AUjIUP16JQF_7M;n5ewauf M2+4fk]z00׬m64- -<H[MoجMćVJx9g 653scs }T*:Ca) -a+X^^آw}d -endstream -endobj -96 0 obj -<< /BaseFont /NHMKHZ+LMRoman8-Regular /Encoding 177 0 R /FirstChar 127 /FontDescriptor 222 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 223 0 R >> -endobj -97 0 obj -<< /Filter /FlateDecode /Length 5686 >> -stream -x=]%q+ wXWҧ={!wfo ü1llbz䯧JjuKV.e9s9U*շtw/^zhDE=>>wZEYR/J?ѿJP|s ^-?^ Ro?ֿ#O*~9KY3o bkPnQ-B %/_WƜ"ZOys%ӗOz tM$Űx%(˧z9WȂ'h㢭oйŚ821V}i2g|/o #K1 -X yg>}_@ &=%w^h[t - ҦxWַTzFXfK~JV#!Yzm溉^ 㔠/Nu ck4,.v0R\kWK- 4Z:tx؋ąM!i?"+[~`ij">Ȣ)bd \^U;/ԑ>^Br=(c6&%@Pv1$əmY +=@%{w<4f:ԕ~8 -AT WM\H%nE/@ބ425XBi8-_&XΗHhA{GZNK@̄K֐ wT O ϨXlAd[nlFb"rdt菂HpXU? h[П]s η0^)Ϡ+B6tzEZ40^ih"4ݙK06~",RT`I{ ^2ȁ9ZsFk7\K]3UKоx><MsM_s$UxBw2N/E9" _k.#Z?\"Rp60)"ljJx:uYCjv׺70ELP%"aiMF%XIz>ٕseFBaU0aqg-,l \N"$$ -  =Z No8ˤ5%l1D]шޕTL@'%M(+B 2n*} -LʻIqܮ<?cSoVkT, հF׫F> ,3k<еS4\9A hYPvkC,kfȊnʶ0 LP ͚?_T`!iZǾs X)3<;% q@AMq -˦@6j<67oAO͏iU!Ɨ)@?Ya[@d!ǒk)ԝb@eˑ];8>Fm!cc'H7׼Gc4}5L#_͒q|J4lx^sSOev:ikBQ!R}(j܃4ձ )_8O'ӧ^uL PhmlV|Q=ew{/cO4dt ؊EӯUYn 'z{@:GDbS5MhN68-.(nha ˨'woRb ؟%%xj o/6gC!0)`~!!ȡ 9hަrQό*dze-/Ѹp| Q ZB] "a]"k$igZw :v L`#*$Z;2Z'-QS1!d,`\MP5zaosmT2ӫ3_0ѻ({8= { -MOnd$退1=([*h(UAB -myxOXзkofc7ɯ %PS nalnzW~E5y$Q.qJ֠<E o7?0rW[9I;}fOM+EJ=ݖ,-0`ɆnH㙔)ќ%׶pN/Z\DQL1:M6BգvݞrtOٙK%p?^%(2qGfjZ:Wk~/>l<|vT\Ƕ65d P@ "oC wDٮx 9F,,Ot4U yo|W37n2k3-cFCf-9l5Pb͐wFkR 30u7Q4ȧ%n=gFynV}|'D_k4eUk*r)Y 7}"m}w -+٭ǘgf+k㬕IKvN2euk %yԥ(|Vl NTT`@6F5t`O]??9 -)QC@ӷho01]@t>vA -oi{-8 }u1Z4UOu:Ȇ.:AApn|&(7z6)5xwrU}R|rRDW_:@F+Q\/3?/ґژF,F.=8Z6|?l|<,oZ`Pm%ݵ>ݷʮ%Aɱmp>L96=fJR>5h)2V0k>ppXL}-B>Wܷ@ ߦbKZ dSJo)qح:%/Bs8\C&D܀Z<rniG%\b +$i[θ)o(#M)xNSS\?Iy_c[S<9[0~xs$U{ cOՍ#%d]Ii%!TuR =9bNnIhw؞ 6LcXb;Wo+ df s6:t >fgI)MN&S80q&+Dl2Ő_:,ʎ]&鉁 ^<{}!E$i\僙׿S P:ҷo-1 ghi@O S\tjB/,vʷN*gM?)c>աP]qj nt9PA&!JH0 z-?n#0Et\0t AΩN&=:ͥĨǥOljq `A~"W -mˤG DLMt8i@Ib-kL,^&J|@>L{VY$ESi$&.zN]797Ji}H5 V:\yZ;Ÿ@9ŸjDYn}U/6irgvʼn]OkT .GRW :UlD#U4##Nvo5[A>Ta7tMf qgUS[5 >~#X_(eV?vQD3Lu'(̓\%vχff}| 9ٚEIoF>S/=%aT6}}É>W_ՠBIygs|ڂ -endstream -endobj -98 0 obj -<< /Filter /FlateDecode /Length 5832 >> -stream -x=]q+6o{h&g -h"'Eֆ;@uJHJԈX3p}F_?F鿇߼1t<@=?k.j+Fk}+i!ac߯ߞp]~SK_oƟQWB!A /O6uˤ>X{UؼhR4 *X`X@8oANxe5n+K/Gm;t:Qy1+Ԁ`@E{&RX,e9 :\ӭUf5u/X:r7{_W9֫Lo*ϸ"e^"X1Ժ..Ț6} 􈧄G&SH"{ ,ЙMЌiU8+|P};/.HNrAzRhɋ^ad-@,\Xp*VH -(*D8Exף_1&$@H -Cl+A@h֯E - %jH#ΠFPjTŽA/ &L虱k#eb@c S i CyFiV8F R~Y jFt{KZM+V/YhihGr׀Զ| C϶@עb Yޔ$b)zRfkU{huN^YN@Uʫ -IaeJo͖bH`|v*xbV2v ?I"M&Ǟj_p-ʘHkSy:zYTN3o~0Ň@?̯}wo{Gмth|Q<5|< a'L%ZVG2*kegO(P6jCn'BV߰oyS춊ki"d ='oWxD1ԁ[Eq\ -{6JTX3sP!hyu5Rqzb%6bBq6r):vhh;;&0 yH+7zwjZNJV8E )/U=TjE%y~Ck왣X%5^V&Y|A-8 #k\3⦔Kd-;K`xP6mXX/catزx] 9ʳP byw8utGtVt)cCIr^3N=BCj{P4={mTɦ=F}a'69>PoB롦U)nSei!>=\JO-OHYz -SCYHR-ѡ!Eh@{- r^h먐T؍S.FCq#PFЙ8ifXJBqt;^޳~KS[tLz}{)#ų8%{H^"unL0H\c:,g9:HH*0AVZx5f=v^/  vm9mQP" v%J%{B@ IUdD?^4J P̀3 {NU2}k\:jR -JA-}-SN:%qk4DEǠHIN\<ֻ>pyiQFC⊣ ӕ_xRS{V*6[kV7f^߁}.#=(&l~! Rq-M۳譌ԓ!o,yX2]lҚeka~ۈ~`4ٍhгOLM 9z$(Pk`$E%9 e1Hr~u(+hzID-m;%u;ak"9kz;]ӜW1S2"2M0*,1ĕ(j FӳS񦱛*}oP5D#͛4Y wD|ڤb@ӂ6po`ta͟-H.8v7B}9ҵޗ/Cƙv@tfR_^@zKEK^n53{7P/ 5\=ۊ'!^G{ #ҭ? -CY - , r&o5`DVV^o$C*3d)LZ6Ô>ØKD- 5-M8WhR&+pc?|%⼟R UB K nqg uV@Nףlr<1kRjENՠ_T߬{c - o|ěIl&"=3sOQEsDXAnDԠiq -=]"URF%l25Z".ڪpA L=2RAˣi‡ݼߜI.G*̤f ZBMLF%F9"ro "~Y1lJSxS\DTL'ňO`g+"!\ 6`G[̤.NOYvBR׳"9>vεYs~F1 ;Sۈ/B-ZGDfăAGVHрB[F4pȣdf"hx0g}9*&c9֑;ߍ̡j>zAH5m]rzœDl~/c͹ZѾ0QRk%Lj) W5'02yoޠcƛa09*MĹA:={Κh)yבP'ך -9pu>O?T^Zάb-B!k4QvfB,8Ŏ~ )87^rϔ{&Vv$&f+[Hsڻy!JAs - w֬Jt:Evik;e3˼_!(iI J_t4Nrr6ݦX52_Pp -kL7X"w"oWxRVS5f W(NJQw0(u@] Yk˓h 9<!֓ =)DNԐ^  sq=솪޶6vQ(03'K3_]J!@hQzcj%xrk+:oJ5 !eHJ%2*S=or07-}>D 0. \S@ fȏ&M)C:glÂi1&NSƅPBa4V+M:\Gv+Du֬;,|JSSwG 8lѷ¾ws9~mUs]5e -')hhs-W;0&s)͑VdriLrX ;׸8%h́@(Ì B7TK!Lʭ*&čt f9yYt[܀Z{`&u|If͑;C2>bBȀ'*ǣ!~6*2^l&61kqtJ2ܻɚ)0I񹿵M @XY sʛ`% uBp3Ec'O(<sNMe>$8v:tѨn-\.@'I.*6q>?@ 斣ƩDlB ShARKU2'boRrfy>_g^NpckrcfʂA,iwΊ3;.ܜ$IձrNS;W9I:\fhsM3zy 4#8Ӡ&u -z$L goYk }]ץwݽ - -$^zob#i^7+]gchf(:D@\ #y{:2+y6ӾQst%s~oD2F8`/fϐLjC5|#`s ?C~ue!eQ,T5/_tv|^Q 'ka]^#ZЦxUݚcKTFV3AWiVI9-Ԭ78XnUKxyris=$yy|i ֳtA y2t,Wu/ZU:ۣZzq,y?h7+\%OSJwTNB$. H20|GD EC/w{# i@юA_h`0Aedz*:mn4c [vQMq}O-IdQ}ue5T_O96ص+Xտ+X\N]_b< -gtG&Sedy ʗux&>pM%n -헽,Ҵq:.}sgR{p{ޢ%Hڹ>q f_VwQ9m.;\'Gw}p:.Xr;W~|7i?È -endstream -endobj -99 0 obj -[ 224 0 R ] -endobj -100 0 obj -<< /Filter /FlateDecode /Length 6108 >> -stream -x=ˮ7r{}Y^9mX|ٲ_K20 x2;E&Iʯ|5]'򹇧U,EZ~woi5EEL/r:Nڛ0ioo?~B)g_ޭRJ!пWW>Z_ލ1/[ KiGD R]T5;cg1/~WeW?xp8ttG! |3δǙfdz1"s -s& -EX=a??_@6 '~$(%պM~Fci=m3 -ܝy?io;<;& a՝ -gxɼ?@rL"Co!#\Gw Qov@x3qrʍYo - eE{?3W(c6WP߆3 N8&N ;--/Bʬh&R|^Ogb{<cWIp<{. ݯay NX*' OQnҶ'%'ǓڂFo&͊Aؼ<x=2,1-b'3&=쏳5kAYq%~ኍ;`~"J`Py!XȫfMd0rhOb3:5aJE`p[̤QؔmV10Y4,Gw,7a>C8cnX]Ep>&'ճwP5,>L$x,7Qѹ%;!ы^Q4tTcOiKkpͧA/921{Dy^DI ->$P|;1 =N2NR9QM-;~dBŠ> -`pNDz\L?#&}Mӑ,3A@Dxzp;nyakH%h{5@]l[uTe+^ >$'=hF$g6&)_lCe;$;2ٸ~#7%fhbȅ4}ܽ1QNC1^ OMvb`oyd<ez{ʓKAdj/4'ƙWVasTpi@!側k T?%= O{{V,|["#YW5 -sMnM -ۤ9hb<ŋy2F=S=0t+ -,-kӍW;?9K>iJ=:Vy`7BVQ`=EA〜Vp)wqi@¸Ha$<}`Lq`'zWQ-q?ǯ=ɰ -CR2yv{9ƚ˨<<7,c`X4c)vjH|G)ivL;{@joaήqS˯'5 -^G] _6. `@M"K_A``NϽMlIK=l;][`{ڈl7M 2f2qYaclFH0Tt,[@aqt: -~$XZ_cw %<'h\RH6nG..5D:Ff쑼?F,{H ٺ#C}sꚓb9JbrKrUy_*rt/"i <%8 #NC{G"ؗ NQBa:o$I7F5 -T0#KDYӽ9斡EGane%ptsP+Y݉#ɍ⠾NJ 5t";ЏU?Fg "a*_\f&Alʕ;t⅝p霈7yq9\ lgO xG߂a, ԫb\ i[4B_"O(I4NJy},WHcדs_iF0ԽS)b ~'p}A4ԁ@0ƦL!_DZ7NrNKzvo/I㫳hY{mvٕr0Q(NPz4UHW+T!qD!y4} :I) -m z@yc ]`?xWv9Y7:7&-glN' I& Y0 j"rM .AP@V NlD!iazbyiSځˆ>%04฼vs0N?˦S2G^*\HDF0$F3DX,1ȇEgzo<_%-ZYxR7W炝ӅpBѩa.#ȉ?R&8o8xD=0%[;.*\vK.!]|ќ9<ݰT95Jf?3jk?ho *8r)b Y:5i|3ͥz:9? u8Ԟ?_mtK9'5ABxW!aIlߚ&'{ƗX#tT:7Ax46wϞ0"|P =-i%rYir4X SnKûH4(wĆ}m:3P{iw~}QWYĂ#&\+.HMYs2mCH";0YZrg{bZob41P՘YӔky\ 獌HK˻XGP:*l 8Gsm$ )uipݍZtTѨ߲R15M%>W.5zRbx--^_7~hBDߊdjR է>Uijzm,tV DڑBZcHʨY +ּ"We-v3nP -ӂ%_X|wTRa0e^ -C V{Z2dg&0\:eߴwOG|^ B#qӁwD'=S_HL[bӉQ{ C+M 2ش/xpf=BK~)LPOI&_N& ҉3d nC* ۃsY.ɠ`4Fgj* ug/1ԮKY K@=U#tg Y: ,h#< aH|I[R}ȃAsDM&r58fٍsfVS.̉Tjci{-3,ސ0|gifW"[{ie-'L9jCfȤqE3Iȕ}WV߫ofiSHӐ&xfǑ5)h+RGy.@>v˶opRކOd8yBN /vuF6~N}4rs:[Whт-%)tCJjGTo(9}f6r<+0iĆ\ _-fVASt%W'emߵ"y: ׺gـHeȢXc5a̱k0|yo8Z!&՛Jz y#H̆r#kDǷMUDW(tPJuzA5r ZQf۽j.-zSBs|H{"ǶknǰwHˀoU O$x1fqzN(9gNxە)8*t+9+(fnn@{۪ ժamˆ۷<w8Au*2 ;$ƍz;*@ӳs ':=3DK$P('KJ$QUQW8=T[ Hk YǔGI<(#fj j!0jYzX0Rm-5QxSqdf#=V\Z} ^/Yp^I&\\#߉io9G bK[TB,$,\"Z8FxR |_>vLZ #YwǓT 5nvYg5LQ6Y|YxQ$Ʒ+%ӥ5 j$j93v"'oH989y6yA_%}$BN՜S.\ZN9 e..FBpeWכ¾R"&FDVr>7& -ɊZf,+H-~yQeWŠx.$ߜGnΤ<^w(I2AD]) W*o sšJ XmޙszMqIC\&Ar -=Z!%ȇ G$ҏ ">,:!Ai'bk}HfRr/7TBKٯ[<S )7N&m~6ihn7X%7#wVq\ Z$d}~mUmDުgOLѹ΅l$7#w0R:һv0R>dP#"2z1˰S~&,ߎU8zdBy.*xGu~G$ 0dtO8aMwi r\`RR|(WV 0s.v,XsWH7H>_r9 -endstream -endobj -101 0 obj -<< /Filter /FlateDecode /Length 4842 >> -stream -x]Ɏ)ƷYiKh$ /I,؎ ~ɫ셬nvuHU"7oݳOn} 7ɍ5^៛o}ktwWĆo}iAT<>4#D652Z?h}yw(unA;? .j##_UYHYd O!rYyn *:3sqZϻT*PR`0 -8#2Aw.zHJ7(ǚc$ueU#1 y<=Tx~Dt^Y=$n6fn2~G ~Wʃpl9#rDfs7v2Ooɨ%O9J,.qylv:}sd\p|=ar,puW\c/ުh:Řiڻna1)G7)O=ET(XFfL*@6*wKA٫U;ma{B}˹pE . |W&_Q='q/-P\^m?bi@ʾBR9^w?;-2(X:CJ%,VO6 M5eC5plB[\4_kjCMrFt\i~dîBgsY ѪmB'f'<%kwY~S`Aq -srK6WƂkS-qeL` Gl_n#:)MO}BڎDkk% j3g$ {5i&הغX-7-vX IWY+֥%`9H8w ^4ymY4㸒N)5'F^'ō5_&6yo=k$j?~x7?/n5sgU_nQ c=#(Br8A3"sy,.7#&w&C dԪc2 VO4JIoľZkp;Aj~'a%JXޛb{ -0R!R=dJK{O(s@Ζ%YA5S$٨6@ceZo44F$Xaf''NfW9ĥ[Y֟䎮B -ņ5s!"#Ѽ|~?-5塧;"?Oo -=(DĻ>rq\іO᡺@ iVKzNJR/ -u:u4Bjr|)4 gl>$t;a4'?Ft1? '4Κ7!$dKrPJh("?a$c[TBG">+z쥌wK -trQsI x2*j`> -rNKmԠO 1Plʌ%(Q;2lKFN鍺N7@d? 3!0KaK#đZ%xH4ô?-#.:n2MZiG}'\oyḶYc*t9`vrj*7';tҸ[0yy#P=Y -pj9ҋU˔Ov8}Qy?i͔E10]ƍ᫛}Y'g򵫼+)|Թcq:x]BDAӃSwGcAXaم;8us -.* UڍF̑Ɛg) Iܩ{v|zdsVU3/Z#Eo0|;Ap)yOgb|v#8 rl7^`ر`-{3(j>͚)[z X?|60I ئw1Ö.=1Hɱ*Y=BԮΤx{K0]TkOhʱT VOT`n+bf"iTOShY=MmOQE'fg ?d޺3_u~VDcY}Brܩӝbl{,G-9X%A`itV s$0J޲G+KF Lo>kʴ&J/4rv\bo9 ΃Zq=7wy彶s]ӀحޠeV+zfu>-JH>Qγ*bG|,I'Ey+P)֓r6&zJ\县Tz@rgʀ(o9=ڱ{ @ D١4!5B bÈtq1rO&3,&=w]tLNkau?tPQ>fT3m56'*)<43i(HqߤJ[Kpjv4U]ZtnJ :`20`cT|ޣjX{hhF¯π&טM&mcMhIDGQC!d:jADRqU!+ lt bJ{GX Yv=\.s'qLӉ7w5g I3F&AG^/RN,Es`IScI -[3-nr-8_ǗdRVƧICnBcgbY >ȇ¡q?a'W3z<,ۅ7ҏ,T MBʤJiHF"YuE^/~zt$xc٥%5Dd񼤙LibJ,uK)s>6e.9aQ΄$hS="wNz !rsK=|9Kgt 5Dʍ}COg#FrH3>#AFJ[|yAҖl >$w>ŀ4R#RGᙁBO("2]El|AC <[nBM -_:cMzlu.];%9[WYy+l="_BD VM:Z3/(s9M+F.T1a/7ntSz9Y3mX9ڽ_ac[^Þ+,*nxҷ#ik>x6<.ɂ|/U l=qĈF(|b`'8ر9`5p7=7)$aa-{"1BӜɰ; @uc{41mtyfJ Q!}n1aB,_ y -VO=U:é`0:qA=($t!d5cR/$Hb2+G/p¦5vɖFƫtŒwdM}\) ަR~E) 7jB;ﰒ\N*ؓt?*-};쯪'詄giܧh$8t:K -=X{ہq.lDaզ7 -^YJ[3XA71,FAN=pv\ b#JZ~7xՒe^ôPINҞtjTnLe[ `znb }9KG_MG^iXJ/,2n!%[T/:|U1. `?zffeS2Iٹr˶[ܱ.\2+awy|}f6BTK{f6EJKv2R(Ƴ)RZ6"v6RZn#!:"-/h]2FJy|WKᅁ`boBo?AMsSlLq"̪ =T$^z" غќ@ nHl9}UgZ zcҀ6wm!4s̓<%⢇ro!j*7 -!+0&1w[2f\uhj18{ -K^޵>_:qq{ʽp -k 6륦Ӈ -ͬx|> -endobj -103 0 obj -<< /BaseFont /IAIDHB+LMRomanSlant10-Regular /Encoding 177 0 R /FirstChar 127 /FontDescriptor 228 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 229 0 R >> -endobj -104 0 obj -<< /Filter /FlateDecode /Length 6400 >> -stream -x]K$qϯ ֕&|z h&ynFг.뎏L2Iff1;%fe`0dˏq1??|zV\/~x#nH&ay5I.>_~^kFZG s+osj!U>7OӠxC6HO;0?~MkZAbJ_ )H}}~o pm d?S<>p] -]ITϯ9e_oݯ߼BOf“|l4jrmb2*^y fVk[5.ALvRWUMy[TYR^W[^iۚ/΢0~L{t%[EyhWk|ir,dЖE3f)xɸ&jkyK!Ғ-m&ä#v*Jykc'y+2~f֕>r.7Fbvܗ4j{$ԉ"&yޏss2,-Lqa}oT.\7ԍEwDYWT׊хeX$TMʘHҴ裪-ܖA+- (jbE '{*~ERy^9$Kcdhv(FT066֍/ug3egqRᖦ[HUIh2 )z=waHWi-C -NAt>JlcbÆ©7)s>z n5s,=Vmy;P+GʮM3)oi,]*+; ->=k#}cm4TRcg4eŜcekƛ[PkR*kiY駘py[*TrW;J..E -1~[_k.bj$@+`Ěybt|{^%&qf2r֤q30Hv'[hP Q@kLM9VR -6!/')Zp+9NywC<#zV4p^Jb*fr3nOϿx&vrYkG9\B? /dAB_j hL*PWkRذ˰! 2[bOb('mYilUyF} jXK"Tsx%˂KJ4TH@4vÊ_S(7>9x{$(ȕuE O6$pUsBaN8BeU^DzZMK2R d1ZAhr1| ֌ ? Z>Hn8Fu:F!R4=x9[ -lUn<2Fc6Aݠ`ӚC̣;mkm`uɘ!0>nm ,#nɠ+| 䌗 n>EdK&3oKb#`-*=7LG})W8)ఀ(Dϲ.,UhC] (G*BnY -\푬crC*ġ$WXO+.Q*E7IUltnNX -ErLzEᬇ죜E%.I=Ҩ@?[ ďhXXx=5Xy(UCgwm&@1A)(&bSI`şVP*`lRU0oKαbMo1쿾Fꡠ8 -vn:& rLZ}")qt1jtؙ񩚏JO31ЊgjC3wU,S=< 7ghGP6p;{a83<Y2rt)<)9z^v,qcbHC"jVOu 4{;(m` M8'{ PxS">Oqc pjQ[wÍI#ؤf`^ Aj6<i/Y!N<(jO"acJT|>PE`D_E>9j?)N{$ sD]9 -+(= c_׻#ӈE~9 ^OI!DgW$3k9~;C[UR@5O`i1,Q.ȶ˿ǻLǂ̛a ă[גi ̣ZMacs@\8owf*݌ާϗ]|anqە[tb" eg'@DsFZDW8rV*$?j3i#x"&FQ>;V3*ma@am䪘ed G)슗IuW+We<;,R ,-hg0P{Z YnlvG^CoJdv#[ZxЦZтуM=1{! =iy0NN֨鲽CIo$w#?LcW*2@L-IAz6#J3r+TSfm;i -t+anF2(86kDM1mN8ÌT69(S4H КhV 0E-x6p[8+1 !;zpaKg}eSfg|T"=rC#22-9j^lgw8";lOx~g/ݥ0g^ε QZ"Bϳ$r%~>Qϫߪmf#Hv&И2IA@ =t=.Aq|2ߍk`؄I14Hª(4 4fwq p"8׽!+j6m+L9gS(-ᆗ9QץbDti`XJM:v5uWD0;{=51R%QhhʤL3Ucѩ3l;|߁e/X!Ws𶒡ϥIAײީ`%XSatDN1#eA_%温Gr c]h[3'k\Ynsi[C֥~hO@n˄RH -U$㝼]Zp+T  =G&Z &A?GcDGZVyFQ;p-Gw+I}ꇒɋ^vEYĭl)n@CBF -sCU3g|,Ɇ; -?ftA.iF#IFU5ps ́~,&•-ncĂHK"34  -yb&ב@; -pMo{Fۃ"&)-+Ӎv ̅41<˙vDŽL,õ-e;!ӯL@Uus9X䖖,wnږgj KE'q"b׿vH\"TW*ѲW!qAEoruK[cLBc7Ogꨕ58LDƁE͛D;Vk9a%ݺx&jeNLSAaJ{\4*)bqw^SR6JzA|pIq!Qb//+R[adeKtP+فx99DZy=Oi -kZIudNh|1etrݿ(+X MD-6+#C/Z -tpIF{i'l%9xm}co/#[laHӭ8s:Gu7Þ$kaڸȡE@.\oQ\&F@5E<O GN -)xh9(NwbvT2NN{7Q NdH "o  рg Tnq¥IG||@cM|N6{erzx)n s['')b70-&]06psA-b] 5`)~;\pKN@s|-hUqjPRQ'qp,UTsأ*H7pLu>M2`2>룦 -|ovTˍ˄e;YXBݏ4j/@fX$\H Zܩ]8Mlay;8@s71y 732^I΢Ps H&a}.6U"ٷImDATnp -unce@> -stream -x]ݏ mbX"y hѢ $ı~8WzIhF⌆3#06;JEHQ݃yWfg/]kI2MfؑMJ┣#!%3a&2#3a7# b|\N.}_EZ1o1(n1)~tv!͆u퓢9L^1xN%9=l= @3Ew.Hp0@%-tq6Kli0Q#!?Oz3fC;Agi;+.MAn!LLW# ݒ%&nL< xnL!GQ @L4 WVq2/\g5|{.জ'97RN`io_OL#!Mf } -L3ޙ P4c!L{&0,Hߌ|L; 8Vʄ%{ u+f1LWNTSh?t4쩼@c3JchjMsq -*hX|C7:Yrjl&$Xnƿ3u.0PKM+iCT;'YohIM 34@z @Y0A~B<( 9*'yK2;}› -pe)J Pb}j~)( xRG2 -z]Hw2E9_xqQ*-Nro4dMXBBO Ҍt-Q݊q?8[4, r(/ZXU0LE׶D X -ːz ha)t-PP5 g}s4h0EB8!MӬw)նr -2~3Q&Gx4:"c22VC)$7Lz9'/G~oQ<Џ8#u]:488ĵ b#$WPl9o1́ w~5m΂}Z7 -$ؓhE~T2-R1xe[Mg*X37mbsUiPR^C/HBd&/f]UxïkLC 9WuPbNTʁ푬ЁuNZjI8e p$ ;m -a9% N%F;h9:mY-DSVGsFO ӎEN>_rF%+2uFbzo4)ER! m6o3ј/:tmӓz/ -բrlTS 1jb~gJ^cs^Y؊BɎ>(^ORukmj6V2,}g n`W3__?)\sYx9nZv1v`Y ]haN3t+9 'p@:Cn?s# -oӀ('8^1zדi%Ͷa(MܠĨ - ;?iV` 8Q 8_h`' -?x$0˃-6Bdh4^ gsͨ-pCr9y8`G!dS E4AC#~nќ9<$vQJ{X$Wa>k-vĎS .r%RdDs䈼|;37KY47#X5֛hCs-+ׄ ܛ*fV*RAtWI_MVg.̏r>z>0:]>Eƾ! ~Xk~7Gq0 ~E7jL -a08;Â4 -?#(VZo -:HIރ+ed^ȯߊ -OBhq'u*| 04b4LbZsj*b,~3vZ -闔ukQf=L𙣃:O Nƅ>mޢ,cVsp}#dJ…~ 5/]Nd|6vMW{Cw̮Y%ص?ٲsF|iy5/p=jubINz18:iN,k3ֲ`Ac۪u PrP>۳ʉ]RKj{=T緹P2N3RVqv+AvVQ'bT. H803sBRI'׏D>\Ky - ~YmI!V"a;&_ -ՒvSGZ*|-)fP8*_"n$?(>)R-T4n{f],RXt !O"_IqmOkN5%CJNkwbp.y' \8Gy٨l.,hPr$JU?XG{4?Rl6y–k*Y1_,8z?˕ HZ/:+Ul3w SF*%ׄoY5Kx't#s,˄%Q-]:6FH|.ahjT 7(^{n|uk VBnZײnuB-pd Hpt۽̉ɔ3|<hSՏ_R) -;5)5V\-U|'#$׬OUir?k2:FdQh Bl)V5~[k^ v#S+vkɥS=}T/^5K5ܡ00 ^:FLj\ ^{jXn{}`rjL {6yFSOs}0 ҟgr/ܿ`$? (Y>v!E%'bf}&&;||gv4|fGrgv4%#<y,qYml'])Fy[&4[wsyTTi+FV}cCh@=JL D,,?P`o>edH9e{{dP ׺*wЖ# n!%?b#81}R -)GYFkȁ:nRέ<|<9iZ[ p$8R3ϩr:eCiu4n?*m’0HB厗VNDmvws|H)o*%'GagM/k%;5lv\]ܾBtT)d 'xkknunDZXZ.p@JU -mhTe&n} J]־p5 "*\|Clp?x%.$??E9BgP3 -*93\ƴLq`'>rcp ^ $7,$ڊ:GVD4&xa4|\ѫp#迣-}Rj7]QHq cw&@,h׫=sS{[gv݄:njb9#$?P.,Hy9ZB~Nsh0&OҜƍKy2J܆5^sEµmFcn ֳsaë`ҝe -j urW/4F -K`g9ѼjV&)򩵔lvi˖eZvܟ v[u4!RgQT_;>)XM_2wJHK.a[~Z27Oc^&4~+:scO%F܇nd.M/\+08InrGWа{ĄzbUgKrP}Pq --`zjS2ZhRR ~3,b^KO*q~ $8@\1(j@b֭y !S؋vuҽ dq:[ds105F~Ig$ϕ tl5`feŤ;#ұQ/l2N'z ·Rħ#1ޓR;RBOII;_uZwnow\OuTx4!٘x?8"s| -u7o oR()kp -3%v E,ڄ4H ,>j9 -٬kLONHd\ mBRpvWjY[+\ݟ -44L #JS7hK_=54gd'ĺ "Vn K1(z|D#&|g cPǟC=ˏ -Kd9bPAnsy녈sIĹgE%<=CEҒ^tH^)!C!Cy#ytw{-󔋨;\u?N?p:Ny6FKۖr(9j;x4pT/wj>y3YNs'Fɵ5`͉T v&/.{`bōDDEtbڿlͭ}k-[ sB]APÓzt=9twb^d+mhx?3MÜV -*3 +E?hŚisSlM;cxД4hԨ`bO3cX KE,4s{ޕ5 -6ׂtn+!6{٦_B&{iCx1K":&u: -hiAnA\Zvg%0pk9QӎdFM*5Qmn;'R zk)VCY~!T+ -3[QX/ƿlY4Fm9ךN~ə$d -nﭴ -Z-001m^5\T,&W5 -%xl,^s; $LO(zaJIesrr .Z͈&(&q\F㒻m{keo1#d%; -s=^vj^L c[bqbR@)Kt~ؒi\ ӵ#P7A̔W|Mo>MVJ,pz Z"K`niCHt޶TB-cVRL+lZ'Vչ6eQo>̭[rۀji.=U'H}LQ\vzsuh퉦8\^iORm܏XvHNڶ%hPBN;A»[8k/ȟ[%i?7-/?;, -endstream -endobj -106 0 obj -<< /BaseFont /HCHTZC+CMR12 /FirstChar 40 /FontDescriptor 230 0 R /LastChar 61 /Subtype /Type1 /Type /Font /Widths 231 0 R >> -endobj -107 0 obj -<< /Filter /FlateDecode /Length 3683 >> -stream -x]Kϯqhvx|N8u`ǹ+J(-u5==bgbXl>Û^;()ĿopQ* -im %}} )oM+) ~k!pj_ wOTi)vQʗt#o>\kEaQxu|QgO}܉ 1Ԝ -ut?O f⾏C6 -뻮!M3d;0Y lVx:1 !F2UR@"d{mriݪBk5mߵ?ޑ~w_ 8CZQ0Oݍ4?h^x t&5Mu07XL%70(ZaG\r(ab^=ά;4^dK -ݘ{}b;;[θ׏|Caoۘ\"u(.fK<;Piσvz&< -M{)lgyv1)ڊOѲD&Œ(\W83Y;?Z8(ٔRT[R4^ -mCϩg%[ y&\fxo|y []9adӏÄP^oI{ys)_Ogkf)Ky"n{2_%p0j]:s[pVٵjȮ E;&cxYBѭ>ʬSJ"im.ri0r F_Cp 2vbR# Bb:Whn2܊qv25SΡAnS -Ѯa ^ڎ}X+n -?BW[@3**iE5.%z<}DZZ<.8>Q 9y:qv#ogū0mK`O>/Ub, hKY+tS$ٮΓM8Y?R@ֵ߲m 6s2S#Hyu/N:9-D;xE23ܶěG`QSC n.Z]n[H%dYM_ppq1fj%fg椼:o`ܙtik$+4͉Wh; 6;ydQ>1*T{{3^3v53^CFgTΎ<9y"ZM5@&\_$hB>m$(7jkce\@V Y\ss_La~5?^)8='ۼw_UѓJ@ u&0 ƒCT}Ȇ -J2cM>n~Vۭ%N|^~suE^qV@7&/vӗ+6䯾}FbH<"+!$.Hom~ëuGY?wPRͻuD]T>7E^:F 坯7/"?mQ8%'l|QCIl0WNdᤛy"D$Koe٠{K^GbU0!ѫo"uZ -I[;\LVEZ]Bhn&o[6 I9L⬗Ȃؗ2O|x~KL#QbԌl_Cd}$Jv~q-9l0cRͰSDEKڪ򾳦GD-*e7bb_^EA\}| nқVa< -endstream -endobj -108 0 obj -<< /Filter /FlateDecode /Length 4453 >> -stream -x\[ ~8kV$ xwRHa()Eu>}_/)fDq:0>g(Q/)j}+~/F/ ~\lKL_.?:x}:7_ϓ` =u[l.>+]PAqy\yt7<2)(JaBiUB~h6{ۧ!'EIڨy$lBUF"uE7({U%6fpyU6||$;xMs~,8g }ZrQ(Q:; -V4{H}$>DYf1٤e} -WEa9Sx&|=խeKP6 6(3gp=SJF$IYg9{32qo߾}f:Up9-;VVSZAf1ek n9PPy|'癧8iH+5cBW\A4C6WsO~>.[Tޢ^n|CGf9Bs90SVDrcJpscјI/9ZkJ|ˇ+.CƚF@i-=E; "#cU(_%V9%]-<8 3V1o'O}1W>F>=@i~lPW\P׊ʓcb"tf -ps*' FtIeFj]g9 >UiŰ9EY,O`LYF?] AGl?7ß.r<"vwӫ?cDaL@8PrAY/#z/X -K.\Xfㆊnˏ xy(; 7Z8ȁ}<ymeCE_M.~!S$ĭpc?OIYe4[OќaNHw9s Y9ܜ9.O} tar3e3d㴣icN_b޾Z> )7ۖ?̀5 Ih[-[b$=vɖhܙ)=4b$bRrCeÄ1Uj?$sˣ srnGݼNfxP:9Z{, wTp1n%HQJ\DBB7j ?-|je1nq+]{ -â['z\,8J;HO4Or% яd~~s{bЫ00!|=y/E"d'؁悸4(!Ȣ_Mr" ?ΈBxŲv *w!тH'fW\T-QPx]UulDLcSQvئ\>oyE'n/U:R (jaL̸wyѮ:2E0Ba/-8&GsBa#zz!!sT0TE㢲vH֏7Qn'79eΡP1 -%(ABK^ajf ь!nDGSzK!з\/j - çitPh9Я0ӱJNjg+!Uc6MoC#ͺF.Iq'k8&ιU&Ox\)*-ɿ`.̷UO -lB3&.q#{tŦD+$0oep[?^o1t __qGzio4O;$RGЄb9bRw)tC}q3׈{ؓTQKT]Y 5;o^2l6!u娋&%Ζ#Qt` <9aY+IB8͞}]FTyYpOh!\Ȥh=:t%:a˜0ڗ.H2{z"JzO?~bd :AXZSa5x:F:C_΋:}H-l^)8(m">oݢԨI/tUEvr|%/ز]Sv= -*GGHnH' -+I,OC”Uq蒇QgB},10WtU RELڳߨmгhA?LJETĴ@,Rb"嫛=TIL:T OǸGAڡW$,,7T*OWc!*SOժL%z6`'{W73dz[޿ZqgGt4Z2Đ/ \Kjb@OCΧzSTYəSNqK/2!sꪊWWd=QA=)ɧ3?GoȴVz TgJeg;!Br d^"tlٶqqcb.\9NtM# T98wHЬ# -opj~+{atRɖ7;yB5PKR܋c{[ -endstream -endobj -109 0 obj -<< /Filter /FlateDecode /Length 5238 >> -stream -x]KWR2m <@H`-pq-$,psE_=HwOwY3>|sgmLw)`MOxߜ5|ߓ!' |zw=OG2> 0&Xyo8GgGO^fyg;#mCFyu{OiE:?ghp }]K7Qݳy_yô<<$|4NO_x b1~HI~N$c$)$f٬0yasoc|?GK+'a%#ʢRCabol(aUfְ߳$NJ P'jo7b!oc~O)ezZ=Z^3eyt&y,]bİc7Mfv0Gi՝͂bT :IyhBAͦh[Cy qB9nFw`b4ݾaכsqy6!.+, 0>|K+C!LJQJ/vB.q6& F1Wh4.OVħ0,f/+ѸK4 9c4B& z0/FCyw/bPmN/tn% t#Qpp2杂 8qX!'tll+`/8Xa>J$86,[V0naߊ/ѥ %ϺÈ5BϏ>8&f0'E̤oF6ftM6'xfpLehgb d_/*&{gk6kmCosׅcm,qG&b?GCӰ.ɳ몼GtT -{I|~7&ƈ72q0B7kdL5!_cy2l9ƊAL#ÙT2b6 iˉx3ai bB;%! -r' -=V2Ja(d-krP|} -YkvءPkHa;}1;ێ%sưp`HyH;{ϝ~Ypm@L-MNIm޻riΦ=$VNZp>YwI.8Aoʎ\l3u%ID`LB&cNMd'}V_iܞfv^&fќZs{\6C{%NÊ bvzKr2yB:"[=`ki֑mW uUFTi l%XRl0ȵr&U;3.6)uYmÙl-(iMmܡeTݤpo=8pI@^4><DXO5\U;K 9]Nn -SVz -ND^U-ȋaNVYn$-@ H/8%tbrxp}g}w0anwFRs@^Cғ[ڨY8LFӒ=TtOa\T ~)r| [Ɇ?[t94/}B&iZͅr ߏs  E E.ZIOm6QPQ$6'CFQXzvaM_@OTpeh*獜=Yˑ]c+]@8bͦڹQN3Jֵ?'R/7ip\/XYzgTn6-Sw ØoOA.h*'֋yK ®i*ɹASmäk:0*]Hx -q:-kCQ<$ig3 ^j  L+ɹ~%9_ORnKǨl;G*b(Zw.*nhZ6o' FNY,!#{ |!okWg45O -> !w@mɫK>$H~T)n[PٟF )崕6?7=} P/; =/ Χt|vD;rQ#7[)Z.'<1"jb[Ul|%s -`n`;E-,w2zZ0c*B֫!TF9M^q9x(ZnLI^r:,B03x%b߱dIRhU=tܾ;@henf\CіH5~{;BL._sǮg[˚ -& UVslY- \ja5u~ fXЂX<P%E ghl~3#bXs|1G{YHؘXS*%6vMucbsUf|~9'?.ͶٕgYp„@<~(2 TdyC QS6k4ndOw&|)7ca  -ݪ6n\xxZL8۔CI_AxBi/GusBnc#3wExnѯzo=gDi7:L0P"E̊hiEf$IYb%"4(%GPr7R>q—Kp8WMz!m͚; B*wNsi)ߠt)}3|ARܫR4i=]tT&cǬS4Ԫ$Q5 -Qh/Hݚ)=|aԕ)`r2ss2;^Xfy+W2o$_~;&$i~7KϊqawIa+RgT]a%kJK(Jl7rר\`_)>-Iђ 4aK< Kq -4"4F$i3}YsG݀HFhZֻQa%)4%8A*g.]7dct*ѽ&.;)Q6NdM#_'%ns#O//) /QZ0 AlKx#kv;zMWTS9-B -3W{~ my0n?.$q)sꑪ|z$pѯ{B*_O6 iyL ʛY!yo@)ƶ6?sst r:] ʀ!d߸hd/1UI:viDbsoop~f9 đLqpz8qr79`BΒEP9DP,9q6]qW{ -å%lD}Җ럇KER6W| r?Ż r1^:[㈜)c6{:޳8ZR퐂O9jtʽݳ^ ^lK\&7åsp_l}\4k_LnIm HU,|)O#il3$כ!0_ucsY9Q(-LK'1R%[c`N5_;zgb )w&lD\2YTg:W[8}.u(5ΙCExߙ܂>jw)+K͵4<$иehG5S3a] g-Pw" 2CWdaU?FYkÜ f{Z SL\횏Y$kWw q5Pg\Pg8۸\]QhIkP\Ѯfc{>kަ.ʒ|K} q[=ػ{0ĨAh{8GA0ڑ 0Vnm{6Ym/u뮵sY@,YR-ڎǝ[r/܄H964 7H{bpY9KBP'hƾ 躹.O``gnn/Zkݾ̶HV%r5?ɳ~Kc~_ĸMv K̇eƯE?bՔ|,'\|s_&0%H -endstream -endobj -110 0 obj -[ 232 0 R ] -endobj -111 0 obj -<< /Filter /FlateDecode /Length 4056 >> -stream -x\n%Wh!,=H6YH $qS|llA]dXuϟ}3Ap9<|;wʃ n>y#Fs_[W8z>5o.Olº|=?u34nʷQPL*g܃UYw Nlfڀ}f:ge+QFR?+u۸$M#>FcUUQ ^#^kȬVxB1CQkl<|~ᡳ`:휚J)4F)`Vʻ)JF+OE"'MC+6aH}HS&eDfHֱ5h>UC`6fSQu0wR5?aM#O?!kT].D(3`R pGQخ+Ԟ;3Di*sN%q#GȤ#Ĝ6`kY$zJU)Fa]E;`/9~&<"q\9nr'QBcm:ZN~ uP>)iF&Nd[;!TU P[85=FoLƶCf;GRJ=)}lgiw"!mw ٸqM b"`gl`\vFgVLfle;jnDPIɤ]R[)H?5'ʼnv蕦ae8}}`JWE6]5)urwNnl5])&sk&-s:u%ѽNEI&Lnb-6``4˻FY/q`fQ@% -Kc7 -Ga,~'uxˑz)> zY8UƎ`nj?ݤ#[Wi )kWX,게1`̂d}>k.-Q6d3<0(!4)RV(swq;:Dn -n_Xt^l!|Pi]ݵ5%jL},&T { N h&p[:YVhT0^'HZv<͖~0g0McJ%cƘהn[zK>5Ȯ U, -$GR4Fyt^ -K^qC@ *]{UW }kp*{u7qgeͲ9Ǚyv?ULva3G/;KލX64Sa}Y==M}aN`PN;8yl:y6pikM5rdlRXwح3)ykDtNoފ[Zlvk-L.H*Ťrr"J3|P+ϦD]e 3ޱĪօO=K>L7i)N\Z!Vqi~=\L]^0.l>n4v;xijZOdX2 -y \+ K@}ݑ硣+9N,NtvciRg,~@ /&.`hKӨt.ݱ9Ne\*y}nC[ZB0#]Ե.iZR]%>]+JdDƴ͙ E^>ƿv5qXdSu9E Ib"#Y\ UL^({ ۱K7HW9, &ʦLH)WdjSǓZhiEm%]+{yM E>ؗ^ci% +2э|gfhzip}#B+bQ?Hk9jD˽wf*LNj9'-mi9?$dn6{ /d't0'mj9 i{^~4hKX2rz<cm`-RV&\xr>Yr;Y98.ΖeTJX$GUWs7D! ͆#Vߨžfh.$U5Y  -*&'N* ?(WMd(L\^X\kDE wQM͵9a͇O˜‡Mۇ3 &3/ǂ -ڢ\Ϲ|?7#欄(cbdT:K`~h"_6V0/hpR<kT1;eUܩ7&PYC"7'á8k1(|ټ(oBvcD~ rw+בDFϜZDKg 7$V[azP̾9pw>"Qp7;-)Ûx'\bN8Il0r=V 6ŚVqH vM Tg% Б،^GXN*h~a!a }6@$ T^ jm`;GE`m$a3+YQ ˺"" &s".yd(+TCnF"Aޝ7efAEYŢɧY{f8nN$慳<Ԅ‰8kI5"sP1bܓ5gk@*@U{\T"uP/Y" Eo*DkJD*2瀊l:L:A.A0y3m"r;.6q拰MlkMD}P`{uFr/bӢOy¿Qq} -endstream -endobj -112 0 obj -<< /Filter /FlateDecode /Length 5408 >> -stream -x=K&7nȥ%ROgEb;@⍍,v6zTIFDMJw?߾7߼z}gJCoɝ1IiBetZ{ദпR??> e ^{HL-}I߾cu>nY孿y5֫`hzLL |,kȋD~ok7Ua˜}@a޽=ǃ:h6*LoEx*['Є5o57GԠnuc?> .y~F<>Uv杮p[lk*B6.LB߷-*mVbs| $ēo>#lWw -yكu2M1]Z:gu#| j~xvZRj8pa3;B L2Xe&jIQ9ZzDxGK&czЯxo)b$\<"}l9*%A}b|O|nĊeη ,) -:4ZbI!if?uvG#f`+!蚨Ct$ZCfY#j |$ɽQps>'MTq.M*h6 "ޓA`$<#À1M#wܒ&k<0p -HS_Vb'ev\m"jq_avnEX{(6)ט  89AyfBb@3?[拀'Lgf:Uɘrhf"bDZb|{ߢ-;15@ )qh^ jd_X+>'@fUBd TZ AM/4HZdl&ؐG|#%ҩ.W\ i8Mlף04TQ^ KF(i5kNؽk2^ߊ?.{`'گGN -/͐0톶fs,SgFsXcA]\p$):\aH 6!w'-4.i蛏lYoOwҬog{R5  -ukww$)O4_7PGVI)L9#sBQ\ -c\ddz6#ozDę 8#x떴;>-1BwoMqrg ^oPxo j/s<Eהo '9[VSOВ}vMIa/.{!gQ5|^nY7D,j 8KcB*T șbT5zNf7715 <@46<ጊ$rD$;xM%#>po=%}g!̸mX+mM>v{isz︥S[!of%͙ڞr\q}e,y;is MK^xj*̹XH'SZt"@:/O.n),3kOBGK/uתxmXjsID]Ѕa\W{eEYfᖼKJlCA u6Zpy:w}-WBG#-O&@6x_80 y -mP %Ϟ؛ƮPlĬY -Wϵ+)ˆ60HǪ;ʛ\Req)ThruO(@'r1)Ȅ -ϷɑqD$aۓyd([0:p7Rp)9 |$rB-ymfv@V)򂜂/076&&HڴKA ߔڔT/*(U2FPT ̇2EH>Ms&ba: mTx0#AzOcZuϥq]i `p1Ы gf5Y@;6SqMAiH}Ǔ5_)ao m 䑋vVO䚏:gU|x߿mوu5hVZ]ދ [էյTl zI[,Lc5wEnN .h1jr75淩{ZL76q(}0U,es䕑6MҢdCAz{(J $u#4l*'"/|`_dyglvT5DJ=[ =4Y  ~1y/'NH>~?K*%4]ͩE.&omIO[G~9Y/u?n;RWuvմf !0 Vlww0aCTHq3 opKpmIۢ3 Q%kf^Śwt#Қr9IZq-599qɔ׬Y~-KwdIBS;2@074*!W\.dMN - TQG/S~I2G2h*>=-l9LAEF~x͒s6A[y;*ݲB}p NT)}e"DTv`+?% tKbDĔy7! GBn!D"(3<ZUlC 9\7)}ֵوjM%H~%RS`SFn8nFwzTfvřP~ue|XʓV'"@ -u$M@~R#?n8!L95uJ;: Llv_etC%{\ )p;skAd 'O?U>E0<_g+T|Ks"iߚBg[:|mi>rPϲR&?ml9:f;ϒ3cyuڸru!hcNX0K4[Er-%i.xY0 H߄@ZjSQd9cciDc΃6 4 :eH͂G/ڠ05u*jBT q BDl O_3n 6!~ZJe:-X$>Ʈ1BQzȹ;(.z3tpn7pd;=}na'Hёy'Ok:=F/ph9SثP-㰂v鷩uu1M!6hw@ҨjljM%Lk5JCu: B~s&19go!Ս fEH*q *$].T^uб̎=Sm27%E&˶>J[Tu['I$j]a|iq AE ϧl|I >=bDNk -ٍ'3eӁ*NTĝ,ˆER5FJ1#gfo?NEf#<L{rs0#7$ѦtHݾ6('6_߄܆tq<~_M)k>hZ۲n}^G雒0} ֚ײL-SOVc%U=K@^?Ge{FvQݒ@Ot|{JfPd[I*goEH#L81,k1>u Շ}GChF/o"~&cQo\/ ll3\ 6RϗA^9Fjij=YyU_-9@ZLFk皡s3U6`{:NOq3[oF\]͐b YEƃ砮_Ts\@.I6@ .ޙķi⏮2 i#w=4?NW 9Ws*qs\Ḧ́QԌH>,)a+ -8lFҍnF{=.n;אF;B_v;vttq@ruDrq|xzGFrɒt;qA F|ӹut.hHL̂ -ojST $+䀙r9z?9|@"1% ԭ^!Y LR",tU/e F?5֘Jp QFgfݩqi [ώo=EsΡա+pŕZ츆ݛe-=.g{=h~xStJ\;Y+%[(J;㲭Ѧ;Mk.?!}=7! -endstream -endobj -113 0 obj -<< /Filter /FlateDecode /Length 1629 >> -stream -xYn$7h.Y;`Z +؅ډSgٗ$XdիW)}xOMNp8uO}7JΌ7Kۙs8W~9@9ˑ~Ehiz4w IRaGF0jSǧbbdGz1DrS -ˆ6|rŇ_D˳!C{& - -rLѢ@+"8c HogBjրe_}A:/~]qae}z/fcI8ܛJ&u -` %`b)DtJ0L[T`>$r!Cȇ0jc2aXy~U#S~(g-ć82:(/s$[ҼV] ޻I׉%34K/ZsRD8Y#^w(gV Ti -I>dpeHQlPQ 1[W2A̽@5[l2oIy'f<2+9Wn/`31ܔQdi 3Lʹ93Gd.P[,# U"h9,'70C!Q"#lYH.<3j.oQÅI(&IB2eXq>I3W|w0:X2#biH^3>6.X/ht"[9;Fm4_3Q43|_Tv:q u?|p?k~ȳx"⦪ -Ss V # ƪG.yc։lyLVk̒9 t_7䆡_@J&tN -/eAW`P z;`Rc -N F0`{Dp -ڢ[2ҒpA|e~H@9$6ę/[z)SȽB;soUޙvoNqHݕՏǽrh"S|j|8ww?/0 -endstream -endobj -114 0 obj -<< /BBox [ 0 0 154 122 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105215+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105215+02'00') /Producer (GPL Ghostscript 9.26) /Title (p206.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 233 0 R /ProcSet [ /PDF ] >> /Subtype /Form /Type /XObject /Length 816 >> -stream -xTI9)EOJ`͂wTË Û.^8x4D>n~/IpP4\ޑB+I"rz\_=_Їui8ZD}\VzASPI3Y5gQ袭R :%Dc0+l]y.u _qwų!kNz[H^S%}C ZE8Mp9{֜v% Ml;a<Ј~\(X5<>vh~bwG#6{'~UXQJ8Hm#$]׀w&ik߽okvuaOt>Q cr8<ŕV -beM oXͮfW,rF724텏}UY  -2 -ScQgp Qұ2[f!r[-;qZ=+M;ekutW,2,njHGXР69cLg&Pc36FW-sWB㓅?5ĞG98eg}-"wl4H X IPPE"㏺!y%q:[d{WSԀcḒm8 -!M+f< V4E25 -%%w%i񡚥O^tA weqYzZ6UM m;ɶ@ED>}}C4K -endstream -endobj -115 0 obj -<< /BBox [ 0 0 311 104 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105216+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105216+02'00') /Producer (GPL Ghostscript 9.26) /Title (p207.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 234 0 R /Font << /R8 235 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1038 >> -stream -x՘n0~hz$vH ;!(,x}l93@drf:Lɟ~//!OϿ]:zv9uzp-/Ӳ6W{9bpqqn~:4bXׇO52Q,dpqL"vOr][NaGW⦜#i KOފ렂XC$PPe|}ۦ7dj -1'ok!Rm+j)A PzLb3]i\gCr /)8 Wϥ 9ϣTp8e&<9(8 UE1Q'5B1 ttugCr O~Bɗa$JI~VJi钭PzL3][ -?$9w=g+z; Ubx9K\v=gIz y ܡE -0 f̎Չ)Ih ?c0slZ$P~еpI;QAAb*8%`"=HA~mpI;Q(LGQgc<UEw%p+X}`P*G /yWMFVT7Zhi '}"= $NzD23]BA@C5  0oJ` -5 fh-R#]BA%@C}jw’j}/VTg ZHjK@3ȱ8Mu}VW.ۃ3cq]o@qӀGHHiމ3M`$f.mp<6~3y?^hgr@1ovu^8Gq`;Zl8iGZu?ezwve3N''G!DTrޭ&۰~=twr{ֺ/).bhSZ7u^jff?/୮ -endstream -endobj -116 0 obj -<< /BBox [ 0 0 311 104 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105216+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105216+02'00') /Producer (GPL Ghostscript 9.26) /Title (p208.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 236 0 R /Font << /R8 237 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1039 >> -stream -xՙMn8:Gm`c z "zdF,k|as?}>=ۯi\~J^}~py;|-vuMܧ<18m4GmmE}bG}j>}cKWP?u穦C91F!rT%-5_Hfߝ -ј_Z*0HJ U7VJ}ycζooxbFR9$`} -mIlc*]8:_{,xk KYKϩ(`Qqʂ_/xkTpH9O9st$OTC8 PσPƜg9s,%pNa)9SrXN!'] -ݘ,QN/<| ռp= ײӷdh^$sni;y)CB:~-n@`N뾥4T'!B90{ 8МniiHߩNB) -ݘ,ǔQgïm]w;"ƘNm뎮.SQ=l\˩{l2Vb @epjeHVxfx*B8*0@qlHfbJ@3Hov. j` YiLfYTP:t@3*5j1%  A;jҒ@ g5SQS'hcFRSBAzst_b'soTƳBO03N?Tj`앓]ݗd}w ˅T;vI$v6u5f$1k1u8Hle>?RaxS%*Jz>VDPX}률"ڿwQvhmáyt7.!붐Vj%S8(2YfGI -'#WVX?Fa 'pg{FW4'o2M>߾Novn²ηCxoj|g[O/|MͲˎ -endstream -endobj -117 0 obj -<< /BBox [ 0 0 311 104 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105216+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105216+02'00') /Producer (GPL Ghostscript 9.26) /Title (p209.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 238 0 R /Font << /R8 239 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1057 >> -stream -xՙMn0 :wM -яmIE74LEgvWH:jdg29L=<7Nu*en<ʼuZuiWȃK#P溺1>I 2ECG}h߻4uzeg\U8yEKXxr-B̶Gc~KaV1SD1Q@|cτۗ7j -6'{!nm@*n!9rH%+ XSr/)+8(17ϥ)2]SREtI ~F1-A0@L1+xL<\Q<ݘ(`r?%w_ |1;%MwJ)ɧeKS8D78!UNWw;W_ w^ ECBN߉>xםbN"E`)sqgp -͉o 8[DG!s2]SRrZ?p0'pXDG!Aݘ(Aŭ]w;"ƆwmluGYfѩBQ =lX [h=,Ō*3- XW--d=14E OD -8t6f3j!E )5Afj@ՉCYh}FZHt -i-DƟHX`IL- gQAZHt -iD}lϡQ -9fΠ9AA8>T`g/G4_RQ_NұS"-;QskCGXcFR5tug^z HE-gƃ*W11PQCJ3o,6T}{Zڿ/(;4J]n_XFjQ^hTb8<" -q¬^ӣ?qI^O'K]oNj{x,S;tyv?vL=囻 B#icG_1._r}/* -endstream -endobj -118 0 obj -<< /Filter /FlateDecode /Length 1199 >> -stream -xX=6 +< IEI!MS[lE;K}P;N@,Czxz1ᗃx=]HFo~?31Qi@ǻNG5?Y55+4u~<RRf,GvyDCZDzTߓƴ&%u?5/:|m`#({Ms@ AiY2`!fg|g$Ǐ U`PE> I9X_{-22)Rv,F$`,OD0EVa +>3^F[zZL:Vq,Pp.NEK'`(oI[NPl0 -WZ 2ˆ+=M}8BwVm%y<16HFvt><bQ4\hI s -@|'fL{{Dl`98^bI =/sL|y=9$S]&wǬ%rSugEjYQۯ‚PnE@2 ^E8F<eY]1;jH++hty`> kcj)O:17au5Ns.}n8+qp&)suEގ ΢4݉lAGƝGprߪZ˜GJR˄*1Oq!=T{΀稏8#1e.mgWOwR@ELz{RbWAGxM.olB$6ܶ'=z-ѮhZcMWCE{Sl%旯a†%"+i[>_ܽdem$R/}Ye/: -es>dmVYiWfijuaX-PNur0t - F̀J m - }M9wqXϤ_Lr<ʎ{j9dG|f7R }i+YG`ЄO}m}~Kn0$*#q%-DUvZ*=(0arb7us^*PPJ-j@BnrmK ͝>%kOn1SW5;w[tQ~_gC?`I -endstream -endobj -119 0 obj -<< /BBox [ 0 0 204 272 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105217+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105217+02'00') /Producer (GPL Ghostscript 9.26) /Title (p211.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 240 0 R /Font << /R8 241 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2290 >> -stream -xuY͎^5 ߧv,ƎEBlP Fj%, - ^'w -4s8Ή}rL=E׷^j{ xڞЀSl1hz:xCXScZ"|WL6I\ח 0aLC׆t QCb9LXx "|maPpXs.FM0.TCOhG9%^}>fĒ/IcCV -00aB_7Ї֯ ;9x, n0a%_wsX 4jy5ӿxXP`,th2VV|;DY{(qa-2aE#5E6ip6n:bm}۴ڼm;%$& & :b0a"F,LcH0'&ʱv` <Ɖњcb"{O|ڬ?ltM)rjlyGBM[(xEG-hF*| aFVا*8FmH KO*4cW̵W|َvϗ^i!/&|9_8ql/d|mo{@1t/2=+'Nt;{Ҋ1R=yq1/g4?DtS1dYHStn%CBy9K{x+{Dgϙ$m׾X߳EOb?خO4]/{gGx3wVE, 硏]45_ծ>©6'4.p7G5cʚ]Ն*|/K~yRO/-Z+0Xap zb/_ _s=ߖ.قIkfi@g%`Ur36vםMZz[%]zG_8aGy X84Pz󎘹>c;,oݏZw-H[-WmfsE[U*o'|:G4䰜'`-<첗=jq䆋wځne; Z%n.E1UXQR3H`K(O d ͿRL`Zz5w(Nڳc&sFf}rc1Kn"+]}DHjHLxAh౭B[ gLL 0!,`qj5XNA 8apv B>ٝbw8x3d5;lu` *]_/s&KsChe(4rF4umϯtb?d -$vn=a7D>%Aln;yע)f06zf(7& 1}:'ȱƮNki$ u+ۖ jԥg jCm)Y)9C-8  rG sXeIxp%Q@o8e8*s%"FnQ*+%g5SV556⻏ =V9,b )vcXjiUtS ݃zJ -Y/뗧n)ru(a }I۷nyZ~xuy1}K ,rZc|߭Lh0i_Lض0Kl-L(%G64U[_1LPr[a[آ$3$m 1.0"Hq*#ijď!kbT"92)B@<&DT5Bf !UHW.CntBLa#r :{-%H~ʜn>?|Pە>j4za!D!>eh?,~H'A(Y{'e3tp)= ?u7xC$Ӫ3"CzW#2C̓FBO!"=Tl[zMzqhKnSz%uKOBoÚz}{r}̱d|?r$y]˯?\phr -endstream -endobj -120 0 obj -<< /BBox [ 0 0 205 274 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105217+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105217+02'00') /Producer (GPL Ghostscript 9.26) /Title (p212.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 242 0 R /Font << /R8 243 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2275 >> -stream -xuYˎf9 OQ;zX؉s aCSoPҌ4 ^ߓCZ|w|~~~~f Go-x1wo8޷Mb iB,еZ6fQ[:-Vb ~|l)\_А`gс tm1AmL<ҖL_p( [ -sa0}rG T -[e.[[{ L\si[xĵҖX{ X0YH` >Fb |oUبrLw&x^N Vqvtp4vڌqhk3 K}][\ڌ6?-6c<`"804/е>0>aZ;>sB!rk}.}z!#r -;{lMs!r':JSxpHn$dOF"N%DJ $ /Vn,beWE>\&2^~#|8Һ7?>*Z`b]ZfBٷq6G>M=wSLWp*֊-X%GyϝՉ|0 3|!\o3A(N9ƅ7OtB#ۓ -UIH?YוYhR~{5ާJN'r<\2~)<(DoEZ3ָ d[g&Sm! mn0䩆Z۹f&maH]}nބf2vՕMA]ɱa\ߦ+QDLǘ{hmNlcݰ> niNWxa^Ec s!)Y'ZK܄'ҋН iT.'qdUrkifTU.jG%my*OW&55,ʝ~N˪ 1Mo]MνYUqr: ;d截\ -/F˺:4j65,Ǹʳg7J'uĻ~6]eI 볤 -uBdqyfn M_ft!I!'DKIc)5-kmWs jUN̸Ҩ99p o,#ؑ3\SQ 3buDyaPT<F/* g9Ecbь Z׻outyRW <3~'T^C_*}RcyPa~ m"5h#ugt xY-qxrkOj1oyw<֒Ejzu,hl5!}"ow+RЮyCGSv]X3yOo_τq]$հ;&Մ<aӏvb/zVwPP?,zU^/.~Wn<[~+ZUqTXt8VWs|c?p;sr[+[(|ӆ>^^}׷EkE -endstream -endobj -121 0 obj -<< /BBox [ 0 0 322 86 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105217+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105217+02'00') /Producer (GPL Ghostscript 9.26) /Title (p210.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 244 0 R /Font << /R8 245 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 554 >> -stream -xUn0 +x$@TI\ @?`̠ L{h{ @LRϏ>B<.S/'Qyr!`Q+A,7LPBAG7pWckA[T~hۡQܻ~OnM=)dIb%a0h@RK!RR bCЙX%X6ݘI:҆[6H8ut&ūS7ic$klUְT}Cy-.~ec}ẦmV݀ -iF 'Q3MScy&-"Dlaud1/Aӄq>j}z<M(/kIW -5;_gw{rJ`oTrvn$櫚41jVg~CmGzi/,ܥknJ,]Dh%_owHww7ɍWwg;waw,"aj>r9qR% -endstream -endobj -122 0 obj -<< /Filter /FlateDecode /Length 2673 >> -stream -xZKo$Wq$;ʈoFtsذ%!qnINwsza0nYWE'yAW+OJ Ӄ7(xr^ %ݓHi<}_z -T_I6(E_cItzo#GjHqo*~~0x>8__yX|\"UvUN -w2!*QTqDI,5%˂$_oh֭< -̗Q/B/묯eͳvO.y--k݆DƔm >%:]?"BjӉD!mp4(n,Ʋ55OF%d,m0ڟ7_VVDē,DO BIOhϯP - vdÈB,B\i7 IJ1$4oG\*=T4?p'gFYX@kX;b- jg2bdu@+G3Ǭ@فWH<$< - J%V)HUC@!@"% P:dyh䵎h8v˹8UD%#_؂M QKF f-knP]N:tXgVZm4Ճ4 ʐK(aQ>LzCڑu)c9?Si-H׉n"}}:KhwU]dG})s;t>>ӆwZˬ T1B$N;Eʏsz_K&80ț4KP0IExD) -\d|)mr1䒝(j9?i.Uߊ@_ )FKtckjRT5UZ72o4RnF@}̇-#_ -k mzٜLI4IUme\@%nbƨ(B$sk45cAyo&>mEЪ/O[+wQ娂 -W5˦wIBМІd>ZLv-l&`)*/tzzmf[sX7$DnM.d*ǰp?+$tHOIiP/ OIn{"V[ɲ}*ڛ6=  dXՏkc_%n|+q_f-iاTlm#fg-587u;-[_e`l%ʼn M֍&,s,eL5Nk@Y,6`Xfo: w>71J 0{eqӾk@󺛏|T DVoEp)!db 6Τ50.΄)&PΑ VNy褎p穢\$p;7* H:[A C6!Phs V)`QЇѼ,9@r=_7!g%$&S>PyQϓ Ma8*!T]3!ѥ=ᙏe4laV |AR6780V>@b#"jdЭYϡՇ[,~Ե5Yrޱ2'ЅNV8rt٥g@@d -dyq$IP#T_sVMw|2oc"%u;Hfv4'61VӾtg]ߚh0~|{z|sT/oq;}o0p90h|%7iႮ09<)a+#܋x(έ+J^{}zZnc2b %7Ir ikǻ=EK|? -endstream -endobj -123 0 obj -<< /BBox [ 0 0 149 231 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20250704113417Z00'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20250704113417Z00'00') /Producer (GPL Ghostscript 9.55.0) /Title (p213.eps) >> /PTEX.PageNumber 1 /Resources << /Font << /R7 246 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1903 >> -stream -x͊7 s&Щ%_ ^,MBK_ (eawl˲,~9g|Hl0HI.:5Lb+y.ç`[":PxZC̍v`<N]ZN-qi-\$#~SSMW'r6)?$=tJc71? y~.[ -O5,MY&x$OEb2I~~QV-[84e n}> a([Imvq G?> #< 9%X}w?<^: -|?s e)幪3! M#|d*MZr>K^l^.ӿ_:sWGI+pK`[ҖAY -,f|J[om~ IeEHa^`QDin{\'vຩْwОgIHS2qOMm1ں"Á 50 Җ2&! ,:sJc{)JoT_C/7\Խϯ\gbSpD ^jF$TG3ITǼ-ɍnch5euVuCϮJ%Km.J jU5h1m,-w$;_}-˩1 U -rG71ս{h5Q(/Ɲ|uy/,WFI- -G wɦ~> {bٓCE~b`!a.to|#bw!`ȑC0HұtVG:}](#0gi-#a1 0 j@:M_ #"Z@:/[;Re-G:n Ha#:m]GHuStMI@, ]97y0Y骓tR@*- ]ZH7Ítsnm[8F:oȐ[ HTk ƀtMr@C@T@e@:u@J! J2U54 ]5Z H"t"#wl H'06ҡ -Bkt}!FLA8ҍ.H/#Hшt9"IÐ4 6q2\ҙNn6C~JJJɷ*ڡJ'gJGcJGh(nU:Ҋ7)"VƭJCުt -2TH~jx{>J^OWc*}XṱJg*{\CN~y4&1,&jieYWMlկV-u/me-PK b5WﴊW\e_yď+T`Ԩ?juMRSRJ~+Y1JVo%+÷[LdV2|)Y!XJVo%+[LdV2{+يW d+"\Vd1%Hʼn+m]WJʕl+Y1Wkd+\V칒 ֦d+]VFt%K Jԕlū+ي[Wd+] /*q}?O珏oC\޲^=~::=r<̿ -xU~W|xl~K -endstream -endobj -124 0 obj -<< /BBox [ 0 0 358 251 ] /Filter /FlateDecode /FormType 1 /PTEX.InfoDict << /Author (capbroc@linux \(Sascha Krokowski\)) /CreationDate (D:20190621105218+02'00') /Creator (fig2dev Version 3.2 Patchlevel 3c) /ModDate (D:20190621105218+02'00') /Producer (GPL Ghostscript 9.26) /Title (214.eps) >> /PTEX.PageNumber 1 /Resources << /ExtGState 247 0 R /Font << /R8 248 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 3355 >> -stream -x[S,A ;vyʭ0wlCZٚ_wѿrG<?>Cr53w\q G#5|R<}k0(mN?}\:s98$wV+C|0AI)?x|}Tɻ㷿?zFrB9G*H934ZB+ ]/zC %.~}?Tׁwwo2x%̌(_vy5<˻o1כAjys9}Wm+-fweh߾8Hk_8mQJ}(|RwꛝXzxnlY*qN#EKijԿ뻙ށ:oFCǗ컩^j'Fp ;m?F0i6|NJa -ph'_߉_)C48gnpO!gE#4MkgVG<ܚc[9V#꒺b<{*x?Xr.R.ȱ#@oϱ{*q`0s ^:*h -̦[V㮷|s ^ךZے_l֞_k}ʯ|ϯ.U޾8Hk˯$F.l "9 0}g6A5>UW(vPOHtq0 (Pg: kHqU#_Wa7:HƩk@D: #4i+x;C-uPB)L -(4pL:! `Qq:6$7e{Xn'Ur8]:71`8Fa8k|a7\X Z} -qW(PPFPU!V~R]BQj\~Ҟ}*PW(Pgzԏhxx@zDD:1amێSA #AjvDCb*cqQKwXRfJXs: Xt p([c8& -TLcvQ7O6~ "XQIyAX(A%'U*X1! s!fnw{Np3וzsl1uc'թ]\vR] zWAuQE2I^i<=Eꎱ,bu%2 heH7~IDHuڸ3[@mTI^ aGז5X{<z٩x$)/L0ltWub>)Ji@'UtZ -*.Ҫ*}*X~9I }; ,28t*<]c"$! DT2#RP]tE'+/5H2"DW0n).clPNSȦF -}FEIKi|\mB+}Yԫhlbbӣ> 1WuXZA]l<]J`1aPU#]5#J;Ψg ,`_-dLƁ 4:%Κx|eLfh*$j#d3$y@ Elɀ`$±S8? X -q }Y4U^;n͉#&;| -jؔEL貝^ęNA&9զb| -Zg@2Kh&HO93q|yFqmP9f`Gg6v#Je}ݕB`ޓbڦH_zx6ߍ^*rl#n7(?}bt5{|έ1n"_27 -n3,\1;hƽlJrݰ pKgr u6A(Y0?c͉@1fEa62̨4Lpݰ[V o;H -+ 1UIu#tUf T|#N72yA~>mlZ"6΅b\2ݤ8YBonWуz.IUt}L*U"Oy28k }?1\ W'of[*`vNm%uGJQ|Qׯ*잚bz2U eL$'m&F*dE HM-/UӘɮAwc1c&nXp;{0x/4{8.h֜Brm%= %hK); TwUYzp\c( M$pݙi%cr%U}GS#a u Dwot/1⇴|R5s{BO6WaSqЏk_L]t NYd72ft(I+kjz1Q\i.U ^XA8 E}[pe߭y|'O!+ QC޿nyx3w%~QL'A9m1ز5mͦ1 -?-24o 0[v\M}~ 2?>OHQO de1d\?~#Ч> -stream -x\KݶWr<|<O..@@6 ]M7=")Naw:;$o~7#7QRDn>}F/xF(7>P|/R:pgĿ¿)_|Zߗ;7x^hiG4)YvQrt;HP;9OFDtЈ5/Sk(t~L1簣wMow*k6V-~z1eIr'MŌ89chkzYbIջ ե+ +H4b &aKB d I`W!0pER)փQ,(_gE(ɚW@#iE(V=XU<#,q|JבZV]7R ʝ|$:77CZ|%n,J "AOAw 6 :):*&Zt+i/ +XRXQ19Y\ĻPԬ˚h67Y<]w$;·zcƉaԔ5' #e2aEXj]Hf -' Nmc@ZJ8e[DGltN^٫ ,,|{Kr,H8e\`=flĸY\ͦ]Hݰ]j-tT`M8 TMMT5q U] E=V!Fgm[\`HBETP,$wٲ3-ehz6ʹe2ZQ[yED=Y&Tfm&`GLn֘8;(8`&wF[٬gFwi@tffմ6-/z[[j`2Պhli-9m,rJ̡fْD[\JʎCS.3;`MU/+%sz߉FE3`c]Nԋ.>4kRcDݲ l4gՙOx)w\w.[Dg@|k>tT7Y[7Wv1~˔֔m]~}V6e္ګtO"xz0< -ٚn?)i5MF2`2x5흵I|@TO dgANsm.Ȓg_cVz]ܕ))gTlHQUD PL1&ZS "r݈]מhYﱋ^]F. =513L- )J>.TfiC.ypwoy.(6'~$UN/QVVr;[7Ai'qzNH;a-fToMKWν# zGmޏA9F6lj&  -m +gHA?S5/ry^;qr[cu/rL`[ Ky++'Ŀ@ ,k@czDHՍ̳,F"+3}0'9ԃN6s`ݞwwPjZI`sdٽgSrc%>.t5 2t؆ _0)>wTD:Yw?Qj -H5:{)a:m"igV.![~y $12'c r &r)6Ztc7*cl 誌!KLq=&2n?1;>LBlvB0T·cg÷J|!CazPBޢ8&: Gzo3a:ZX_Pl_~1xNHx4)ORؠy ᡍVdž)n0Q„Q63 csfNl&d;6 yYumҞF("o:;T&PϞ" wVٻTm&(ij1[g9+/`tvn (6R%z2\j;8Ao(qngz/Z:g9e#1c>7^r&9t;@=|~li3zE 88%\!zI<_Ft-`i ~҂o(-aF `YY:KYktVuxaCgkO~:@43~.tb=xH)|D2\dԗ0RZ>iq/ 1|n ( 6Da%6Al37Ӿ@_MW@l6! -hk63ګVmfŏؔOn;f YMsc@' -"q -@cnoC);?14X@6D[ 54-dA^-fsl[҂ta_^aA~|fN;:>#;΅jypw U -4,RA.H.A(m =|{#lQEGMF;r3PPV{+PDWa3|X_rKx_a5?_y T᫛b)A,eU8= -_R^ѵ?.՚$l40}`̂Oź,g哶 d!nTk3Y&it|cX2WTx7|34ia`aG;qFWj°\9Z{c}c+4P jL x89XSA'[YR%NpzB,qЦy!T=fd@0̺!j չtw'B1z<鋰"yEz鼁YlUzr!ZlУ¾Un}_JT)WFBvLbLaggt< g۾*zTK蛊}>J<+`;|@};Kw{H9{9e$ ] ,K SɸJIo엧e}aZ:5>I}M`vs \3n p\gX'hh1fW26NDb:e 㥾\Al* nU*Iن!TTp.+(_~!+(u.fz!]I d?a+bz^\7=.VgKs{3dx}{tZ*4;6C3_*˥?juM]vwW;Z8⍃{ٓ?>\jYs)p%oriuUI0lɚX'ﮍiMK082M3,!!sӡ^켎w0| %$'tرa] d& YKo_;@/ze8|8.!M, ;5Q(ޤ6Xlm7iP|=n,[Vz&HjqklM%+}: ;:N&`ű#iKX(2)ԧCSn[^ 5G޻JXT&E -endstream -endobj -126 0 obj -<< /BaseFont /ABLKJA+LMRoman10-BoldItalic /DescendantFonts [ 249 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 250 0 R /Type /Font >> -endobj -127 0 obj -<< /BaseFont /XYMUCW+LMMono10-Italic /DescendantFonts [ 251 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 252 0 R /Type /Font >> -endobj -128 0 obj -<< /BaseFont /UUWBBG+LMRomanCaps10-Oblique /DescendantFonts [ 253 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 254 0 R /Type /Font >> -endobj -129 0 obj -<< /Filter /FlateDecode /Length 3067 >> -stream -x[Ko_᥽0/ߏ1c_m@.ɦA]dٿoH@aLJy~3ݏwx};Y'S3 >'έxJUx~WOW x1 9G(JOhT2κ= W??`R;S.?w$&0#2"İ}K[T7#JDB7[p4st"L]-kχB\'U~lB&j8#;Yوbǖ dwX6,Fiy2JA2U}>֣Ķ[<)sctncʶ^.ڋB{caVHŀ^D$RnE <:,Ri%$v>h!B.|:٪{%oȮ/y|S%zӨϑOY;P+&mXXRš;,(P1z a 9D%P9w82H:ױh*P4T0F(-#<ܠ%)w >ޒ|9Lk_cH$.X -̓Yf6{ǬtT<a"D-BG$KޒU4w@%XZ F -!21H/g'p ku\5ŊJb:=GiqS!wSeF0KbQxAlĚ -y̢%Ru֦;WCpTPXŞ- n] fPh^L8aZ0jcF'Ug)>ҳ*~U(zGd,Ɉ6B8.,,g4cPQ_m/'b1kDUCѡkEF24hH&Cw5I_ZF(+/7x;S wdzLH]D^4'~lƑ1_jhnt?&,PGjߞYQ"5rCiyϞ ˭W66JCpw$uc " -<r`A5T_TLLrPMjz0[VYEP1s#Cbz%GئHoںnUdz<.zU:#L: x\[Gr9@馫9}re)N,eqC%[m~cI/|z+g屡 mNO~9N,+ng7!)ؘק@bPoE`jf6/D,"RӤa/n,3O53JJGr h,)0>M,uK1ttZ'x&oIw%JBIȣv?~=Pec'!@5Jin{:  Λetxņrl(ZliJuɆ$;NKl 6$6UH4lvvgmhI֛H.YtYKx 0qMA!; / .> -stream -xˎ_1G dV `A>DɆ ጤȁnփ"GI|'?ON `;EoI -Bs^:zVߟzc%}{ޫW.L(!cО0&Jo\II$˲APufk/2LL0֤Fw03sik>2= TY Lt<܃gJ6}b,A)=iY]"A;(Y {c7.x 5.f=0Φ ſ_R#,#7R7UYE+7>P /Č/K]5?)OJz[4OMKZ?QFX3We'L&w1(eo kfPI4.L& uK3_m+mu]=mѓv/ySwk2y -Lؚw2D+jD]ިҪوBsl۩9'{chOp5ֻqN JyQ0FPF/_ca󳒡;A8r]R( mdQ2C'ҚK3X_rcj\fd=R挹 [/kqJ@0,4^ -s&B0눲yeEz`nF0F{Y<0 hB?gtb~X='1!&ʮ6@rS˕Fa|+pisv_.HzfcP{W- ŕb -P gF3hN#c,Ul)j/J}"Abog|CϮ x+e\RBD&7!$gp}>қ^˓ғ2tsER7T.vP7$PnUك1"荼̳J~1;{δ*Rz.|dG2P\2a'v H5yޑܶXuJWG(|׋C/ok/Y  xlW,Ts`c質(%c=܄to bU@A44J\MxI:(R,+F˓>"=j)ٞ{##XisRWO jD;1J P-^'eHc}_&Qd/@˩f˯\nK=\=}3/|)/jSY/ yc _"  =g^Hƺq"ݯ|za~Zб/`&U>Q"}v}* ϗ+i*YoCb7"Ţr$VF.-D,_$=4jCR-z%)HB1 5-FMVBNNʱj"!.=F@v>I-B;TwvYԚe<+4@ 3'L(2 BsHla2#"H(C̞|x\H&k>gzs(^]5 ypJyCQSW!_S}W$N U)i.&*ZLշ}%Sr08)S<,] PJHk7f/ -炋Ȝ6Wc nap}j*OeY4ܩ vY` .I[?hUŰ)a{Pn)H6%FGHyĴVƱ -bq?B|ZM,JƦufV2-XH̥oC-+'Ŝ/?UM) U qXvKOjDI2dmpCr9h:IQIcDꪝDagT[u3Fk)NjmaGko~uZPp+:l3P'W -@ 2/3ڜcYu`qZ>1N9+&ːioW)p3W&AoMU>_*\şԍYw?uejܶ2jr:֎_O%.*}]h|jSx#O\y[7t7;zf>K.`A0i! -L'b(,X{ͥ|%G$9TduSbEB=)Ni<+s(ZSG>͊Gz|ݩU#;G@>vfh+yoZT3ZϷ` -^]iV}^87bW?U7A))F/mI4ƒ7a/@cI-pٝ5sIk|83fw!7Nw(}lTw;_3}aD@G`# TCYIbeOJsRuzr[ވ#~ݵ}>Hk()|RZ-BJ4\8ųm};DŇ kppbP> -endobj -132 0 obj -<< /Filter /FlateDecode /Length 4178 >> -stream -x]I\ϯADi@-i D$  1=_q-یiRIȪ,7?l;Y?_yrHm| 1nBBɰuRz+w['%A.R;=EhKnkLhtFyOm3e]ڌvۗ?v>.A) `V7^g`T(h -k`P n}aç#3Ky KVМ"՘ڃkquxuX?tiT6 <_U JjRfóIys쪑JhjBKG9ugE{UўMߋNk-1(ݙ9kB~([ш|>#DT+yn&͈L"L& VPLC-K'BSҼ\KQYX);buZ򧸱2#:c?{mUUeUZV_a3̫femy-v,J!MfS䚜&o/FX3 r"7|m:fnag>GH:HhckBzK'ԦŒٟf@cE,h8VM%i?Z 2YeV= `nkY\j)GPsL% UHV[_i?cLWB˼]_7\p )M2< B /&ZFN -i -%b,lug0i e T?h Z$DʯўLB.8!?Bum0S-RιdEr&wazޮ(VH~fJt s^fPjs&\]f4Dx41gOGھՆ\A?cP%L97d{b.ycH -:x"@*Ӵ=cRޟ' k0h{X(?Aq.pPZߝl5?IEP+yei8wOxCu]= rɸv-$sMb~A},&6KjēOs.#uKOc/-AK:)(mr-?Omfb BXwy]+DZxdW18a -8)E#ŷnj9oI PA_Jxd:bWy瑸J2W:- (J -)`կ/ww[hg(THFof6KSL69 R(ptZ!y-lg --9% QZ5BG4½#ljA^OH -69仐} :]ff)&Uc Q6z^ q6vX ۶u9GwtŸ1 -g_w>Ծd$+t/BUo/Y rTf26.2]; X.d/vې6,߻#G/2u)XvdK<~Z*t9/B]]N< -i3F:@M* >%*4-viQ~1ۈZW;7ImKEwγ[@^1橵ѻ1[ņfyhvHzpY|w1lWgvTmY*\rkĵ"d̳ iZqi{sG 9tSGn?Z;´"iH23@[3*"՝GLC?>SX!̷Xt }颺(R)Kljlz!Цofi͊%B"&,BiNK:ۦRo}PV;q^WH \gyM.gh켬7\j\Aept5Л MրF1U SX4'Aؠbd]s+"u5 S8G:mS@Q 'tu)*aLLf"L-]VEw%/یao2K;&L{DZ^է e]sG UiST܂.îrR\MuuIsBi Mg9 -Imk] ukD܀^<*mnX`Աjdp " 2AzL2Y= 6"YbnT+ԡMd E&h]pt=Irs@7RBB@tWh"J?*`:210+`eA1A; XZ{?ocP6a;+HK)%W.v!Xh=HV -=rXhj[n[ -:Y՟e 8&`c*FBz8渗`Eٱ~Xa+ĺB}qa3mVRٴz>=Ea+~և^B-.Q>s;v`*MDy=m5}g{NWNX^VUYZ!rG#F#3"vXEp3pLaM-ɼb=ϡ%COTl -rF7T@@-&^uQ/뉠)zҺA3?.TQlZP!j[>{؞3ymec -Ctk*{j{IAHr.|@y4ͤ.[z n<Ɵ_Z?U%813ս xȧ\j{؇=͵2{?C؃vQOt+^{%:aQ۰f ө\(QURI#edJ"bib&?r{aL/},/:Rʒ vsP v+lSQ5=(7ΊŏYJZӁTitw0Wk*P(.7,eEorlRvyS6V95mVm5~xQ8Qֿ=~z}Ӭ~k 5gԌ[˩ XyO3n#򃹷H8G#(C`Sgbo uvQAgd]t[s vSCd}h YwGSϩcJ [4~GGȰ# o?ycm0igZOZewW{`fCnc-8EkQ΋ -e-l-^xgОmmQ*2'[[Z[qQkK_͑|8d<"ä,a)VkM Pi)XaTV#)IJ=[k@3X8pdac\'/v?^^c"5d(Coqu= Sfz+'8 zcwx? `DT!K|BX:!#XgNy4uX'%l;ġCm\psB%B-SCh+wiLJ #_o`#pdu=K,` {bya&uV)qdrl9`]Z]Nf 130V[9?:xP#' tyu}F!=/A5js>whhoĄ:9ZMZ@sW8NGd)RRS\PcbCᛠիoi7}ͲS3PF䲊'D”%\zu=^^X>n"|vHY#c*zw2OeoC2ғ/]$t!$ᓉf B7i6*|MIYCzTiDfˁzh#*q1fiW-s08@0&ZA ]+l%uMvP 97^vd_i ?n5Lr_PprJ -endstream -endobj -133 0 obj -<< /BaseFont /QXMCYO+LMRoman12-Italic /DescendantFonts [ 257 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 258 0 R /Type /Font >> -endobj -134 0 obj -<< /Filter /FlateDecode /Length 3285 >> -stream -xn9Q>CX˲d/;c/f`VMvZr4GR7YUw ߼s|soF|3:`F4M9*>[{|my|/~'L'ID(4fc B?_xXeU&ͽ7w "\&#83XjWVL e (CqqTYn.Ya $0W -OItrӺ2oǾ ?*g0inO@%h??2I2FzmXxbd2P, ߇ Kb T;0!Z%[39gA\g@1xQuQA: -j4lF$9IW<,Y:`wIY0 @LT%طN1(GB9ϴy6a-jÜ3iv4Ghq;,r~]i\S)wHk֩i!h%\]7,ńj=k3Md3(R $\fMv 1V]QD2m QMvX"JGlY7'vNl A Tg/<(}08Ѻ20~bѢ^#3'9PTa a# ;jӇ+Qv)Z/Ri4*0R̜}8q1+RIqn\9ެ1hBi^Цt 2MaW{8H2b|hsfD6~:e"J.&gG1⇪*@_OhUB f󶜐Bj"CqkIJ[qj*?Ӑ߳!9C2idm\ -$L1Rنç#QYo]ǖe7IU?nOz4djno\R ]1?OBc&(i>JtMheM[̳.~:eE93MH jgYbpD4Pg L66cS4+ }%SrU**~t~zR/VhWzrf`TDf^*ڜ>Gfř)̩FEb;Bu_ŤB>Ysa)hs<( ud=)mL&Ok)acI>f5u&Mz*4u( 4U=ryWg Gq݁?N@3g>PI5Qh|If}OZjܳqemƆ#{S96|i3&*g8i?E|w7` Vj%`_} - Q|N*'QJOCc#k[s%L:cƠlPZ¢y'7[Ob + J hj!o%@ (T:z/߼RJq6CKTOLFHQOe"^1D#HܳoO씊`EBR|\x̨l*~, L ~VqB}~|Ćg)L)Q -xB 0 ht~ݵkU>⨓iH~{ -n݄gF|%k:H l_`IS;:WZiۂ53ܩ,`ge$+LЙ5*,Pw yT89]gk2)'8 ]6_JnWYg;c,Αz,`eUh'[j[g -m 1LyԽ΅[iVc8hKGⳐB|,yBKd2߹!Cќ~5-"B\;gS\rC~µ -x6(# _^9UU!rN_!ϥjwY}֬\фas>ۜKWZLy;l9zYf'rRXk{>?OVϬ☒ϻ*1AsKm㽵Tw7sz⮌8 LJt]%H,qZg& kd`V FEn !7=JQg'CY-1\y1'YgkA -endstream -endobj -135 0 obj -<< /BaseFont /TRFEOG+LMMonoLt10-Bold /DescendantFonts [ 259 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 260 0 R /Type /Font >> -endobj -136 0 obj -<< /BaseFont /RSMHDP+LMRoman9-Regular /DescendantFonts [ 261 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 262 0 R /Type /Font >> -endobj -137 0 obj -<< /BaseFont /NEVVBE+LMMono10-Regular /DescendantFonts [ 263 0 R ] /Encoding /Identity-H /Subtype /Type0 /ToUnicode 264 0 R /Type /Font >> -endobj -138 0 obj -<< /Filter /FlateDecode /Length 27948 >> -stream -xԽˮf˕S&W#dX2,7lKwd$H2 w{~cÓ$먊p;VDXqx>_=woQ/}UevRw~Xc9g֩g~)^կQx=_؅9}}xZem|կ^|f[K?kWǷ5]sFFWu/~VzMKmURNWyGmSvӬky3кM>:{f}({-{/s2>_l%$_ZsK{#~[=ȟ/e/>9?ϲgn}kcZw*ǖL}5_V >WJ>4O<ڥlbȟ׶mVy?_g34uAw8lk6vMkqԭ菖@Pۦj_m-ΜQ6{cܟnлmŖWKHHEJ1ywlg}ԡI:i,3GNcu~yj/M}];YN@#֕fjL۷R揞f?U_EY_ct ?}pm闳gZkio{[zulߵz+V`/[ަva&O״{滟gXɬ;]M)sJwKziٰJ? ~;}ǴeS|Y&Y'q_}M'ng$cQ6vL4vMM -lS2e|~n -oXm't}}+ e[^LAڞSɞV~`Gy_Zn}2//s (?+؆fw['U6f ˺_2[R "fޱR{ri0~} /Ͼ+I1/о+I/߿l_}M#/k)uwWro?BdijޟPt?jzRҺcKu߯7̿Wv_Ywc)^ۚKr=_˚׿>v]#G5|_U<^ძ Y,RlX3uw/g}\p7n=ϧ{UO2 `iV]rVcb& nX;s-{bJ`6—P[V0ձZ7ÆFYY-N}'㎧6Z-% S{moakl3M2%g18fVYO[tz/ȃ[6l}Qu0>oۄ2muy*+f=ؐج]kv -I0;Ï> Zg0̎O[;)[ѧSaF>͵9}f}W ccǜ-ǪeSl|0Z;#۵P36Z?u[uqY|M&C| gi_;e6\|Û&C}j۶\SG -X|lNZ_]5('=~d&d/ωس߾ sӶ*l=Y䀻5\#.il8r[B6#UFdCfmۭ&^dl`్2ٙӤngX`O|ڳV}\}S ȂwdɹN ]ǮJ*Q~\a >{zˆl%6:\c6v!CAw;ں2vf@`x6Ў-3!\s%8?>rx uyv4=mbso;fM>`lo'?Rmg^ϓ6в;0@V;w.jQ{5giÕ7]3mm^9&1%~#_"5=+O!b_)\+AGnU\Ԗnj_=Ekn3/dU/ZKt>kh f_>xYbV{8"XqFZZb0A έ@zI[%Oֺzcڭ|1&ќ׶%pɛ}sjnMZd:-b+sd[C*GUyQ}[3w.Z&-WWB^ :gS}t7^1vق?ɋ/ԋ'wЅ%w3Q55gwM#P5#[Feh}35\b>1( hOϲE(GE,ڲ  Y9 R9 -6!I8̢u8hɶLU-mtܼ&>OKt!4a5k[֤QG|UfyWlCci6')h6Q?Rt1>EzMMh`_xU;H9\6=vA`|d11{e"ezq:s3rpVa7P-iYjڦNz? 9?j'Z"34VOi[V`2ejo2ocؑe(bTv) -7h]UYﷳm{gوF -Lf^Դ'.pX$ӓnQ[^- ms?EWj%Jz] ?в|3aߨU:{[;;U;q>vzfQktx&B[Nx/k9Xv(*le^T1ĵ!ܝNd4&T6aVۙPPLnn5t>yO=͚vVBŠxq -Y9 rGўvѲeV`:TOEMs -츳zgmO$ )̷G}iZg)]4Ee'cϒ( 6Żvrꨭ{M*׹g -:־sP f-# i߃L*?/UfDzKϧ`ey#UE!]{tQ,yP?]㵴nRCS<U~{ۦbE&js%MuU;.€q_,OO9%G~[toYG>s4GΊa17&#?S2ۻ63P=Lnç=J jES3oL}^^uqoDzIb2Pۛ=ʔK'LB3;8`k O爆]- t\pN>Z`}llbL+=wƌn&9nLʚM߱Me}PԱfa ֻv+CM~K\~7EbJtByb}z7jŕS&ne#} /3`JLl,oP]R۝_BuEt\۬ ؟T1pzhR=87e'lsJ|ҕm&Md$3&Qt.{ 5Vk'LjnäG맽_mRgAɌuTD*e36aqȁVBwoIse 9 4!w^tj"wY@KwKq!&y6I~=:v>;"D'jr]<&!T/k듣VYuj#~m5܏3L 3xǷL&u9Ԉh3B 3*dlzweQ1r`]Mb -h<Ep+p@n6hx[큚 +M"Ԫ/aFcCWyq֒j֐/XW5]Lsi1o4"yCbwUDx'EC#`tZ1p 446Zjn9ڽ,ۘ[ \mvG =L׌)ZnʊjMr9J{$j''IlsܝoFב1@kQMS ;.u:Rh@M5jx[sϚGQؙ]~Ii =Cem3MQmojtDv2ݮ^y9S:'-&55,jn: kflW=MK^Lh3" -C5zلsvcP;akj/.{Fp=m}w'f3Humׯ!ZLը u+z_-'GfimqZ,o!؏FhXovSeM6F$3͑1p\/DjGĺe]z"m5o\56; Lfw (쏠*CKǷxқ5Az'Qmz9v0 8۾e긑x,Zm{~H3x1ĔVpͣpw ĶPjm]xf2aF&_߄bpۤYbB+*V 0T ,gZrvuF9txSUdOr?Ϫ8:LTzW&?م\($ծm 9qEA}jM@``Yn95M&OȎBM3R.ew<gQ([^;+I/GnҍA%y'iq11L[:gUVqzc+N)6 ]z@:翱Q}%ksf6̞`g8jy{<Y:{; g EG׃03Z3mP4 }-6e+s=8ᕯ{Zg4SN1(OV>A}<27RhSӤ't B^^i\ؑ՜fNe:A?6wSoFW(FJl}#]nl^Æ&'PƧ,?~D`i7~Œn|*(d$fL@B#6 ǏfE(Hm;Z&KN!*k"n#S 1uAM@xg\`Xq*9sl~~@&)+3P4_`d@;K0staDZ۪Lh#LZ/ kEoi<Q;QK;`Y=fo![KA8 ~ʣ*;8lHBi[ڦ?Vʆ4gxbLގIjx6#$mh#osD! AT"{v{N IN -1OSv .R#mhNB-iS7I+Ә%1j$mzޒ:;{̂&!<l6D/V/>6m< J%Ô IhL΂v/X\bs'\y.v𹁭M?X_Dl!,f5K ^6<:(Q|k;% ;M_"KLQYñyZgl8ֶ|ڄIЌ!nEvRmP>3;c ؼVM 2enQgHV -fHnJЗ&jQۼ%{`T?b4p#?Cu d1LF>Lq3u ̾Ԡ QȻlf&flK4pQ̈i8򆈘={ ##=wvҰ{J0=!g>=Yx)v?- Ha X#AQ>Ф%>IkG$ 5GUUtbky=dX ϯ[iq5W6>}8a{| c;m݀0AX8!Y) p -m,H8"DX-[-UߐkRC7вN*ȿ ptF[,,u6Fu`_l% c'DcOF|N,JT-rRWɡU h:s-#AF3$k*㮖6n{X܌1@rJR[!T Yi4&? `3U!h(kg3ۓ0DhC9X`85*Xy }_v%y[q cvDLOQ2~am?!K^G #S'DC|JpEe vgD<Xt0Ua(v[eW;`;K|ȒzQ\\3^}a z=79rLr+((YE)3" drGqtY#cNaJf@̅*@<^  ì]_h>Z'R w8ԆL OtҤ A=K)SUvη"۵!615Y*>6n,lgzA$ǷBdW779Ȏ A?=Y?M'?A(T\l娣fL|̒hG:#ސ?>#0ߨACgpE~F^Cг41;dVEbf4Gȇ 7jjp'FD(hDj=(-|IIS)ۋ۝]o'vwStc,bZj6}|!HA=6bu6qbW%"ۑ\N!Oel}L8uw{|d-P G2>Kߝi>_MqH LPy|'Rvk᠎e~Mّ]@-;ǖ+MʦsK u鑈 93F֠d |1:\]\5XAXNC ifvc5I;ˊXtqMxuIƐRʒ$y;=@J[Fӑ( 5˙,}'IC#gC -q CM,[;BI**VaF R:DlA gqӑ,*|N&,Oo"|i.T\ښ~ -v+!N[i -; NEdxQP/Wĕx&H8"CYRER# $>ҳȷ 1we8 ;f>mT;%9>N ]gƇ s -I|;*,J1p{QێiG/X vZTR.`u'؉5K E-|+`OҊ;. yݍ΀EQb: |<-w #頔wb' O0o*7kDdLg'ʄ`lU{^%02O^ =<.u{is{YVwy_&x3})HVdq>HXhD'{dQVlii2RsQ%5M_pY *DuKlOU.>|ﭛmO>'Qn9!mT@ǥ"eiJf9? 37Wb3m.k y4ۨ;sl+[ ?X6ZMZ>m\nå q>Bt }wF'^qgX~ID g?M$l -Rͬyd~ Z6Wv rZN2.o5lόNoO 挤 -RJ-Å ؎ogH^= Y1T%9ڷEԷ>D`-zcl~v6Ą!V XUN8xBadomkp]O6 p_hZq"}v8ZR]xԵiǹh2HQ1t&?YJu2{/"z}1rT)&ab&&VUj0Ȑʉ&XEiZ#xɾGK _0ih"kLi P7))m=LX]\ޟ̹d=5MZrg8"Ϛ`&瑏(Uc$UqUFl8m1XpuF*ueIe0p~ﰼrf[#@8<4aռoFy\ہp+s[fka۱.ʟ׭r9 Ey.iCA1KY;0*,46\d!Ϭ<62#A}o(ˬ:N#CoO2{,Kt RCMUK9fa5hϰyd<$,nSYj;o_¨pqry" J={F' uO9f|4EӄѨDrfJ̔Zv|@%2ΒuX<#2_0Y9ODN9I*K+KaQN- dȮM~!,fF4faC۷C&?EKv,NF6ch#sG=s0;Wj:|"@A5b-u{d>]LEw8ZAZ V ;,RPU!tA ^cW l7˓<ƢJ͇r8Jם|>&Ƨ5yE6K'L4&l})Ա(pfI,&nBCiGOQ^\/98*xl:?I#a2}agv#D$۠ѱ -G@G kE-v,kv,yH8@L4ݷQ۽\#},= \ ?&JqXB=2b|IZxojv"WшlZ Rrf1GRJ6|7gQu{R4A w,LbL,rf|ܚ M IY[}YO>=klcՈPoJ+8cZ6.J%%><~"1 IC%6laTddٶo8zg W9 G扑ɡݍ\=$Hity 5_C,hG= 4MsS>=@#Ws CWW[myHv pyDtnϧkIӁc *Z6/x؇LvqؒWZ ſx1=@O#Ⲅ>sֳqD Su?{~[a3Q`Jup{GsRn%OCT칒CUNYt}:ˌ3m0{(e?U/#nπF2#-ǴmD=E䠍w"ZŃk{&G+<ֲ҉x#)1;HJ-QB/y% Qg}L)Yqu2"[ZLqOȼ 狀7zxL*y"^ -zZ3A(L"]lϛjʚM|:m9TpxOKпP'NP-/->xHx V ў<$VW;k>lr}if4?3-5n+yS4^^.!r0?#PKTTkR< ]0SzzV -F Sy ߷z&ֹbV5+9⾞9j._}: p:#"g&>> ,3}K4fh,➥ɘoSH̙9=ǃȆ!M1H\Sp hE# ydu:yٕg>tƸ%Q}ʫ$h<Z'昘/!?-&'3P#Ov`d6ݢdLiGk~,1A -3"ZYas20a74HAc"7HV$=Uiփ͐,yyr.}+@;a'xq?ecM%I -WpaEgFq d$`2l)x|ΈFqm‰J^^IpvّS> D燊rm_}^g/,k;U|ty'zX=OEщꉽ~C=tH 14Xqsct&AXrV@Z7d\zdzݣCׇ{c7Vh (]wQ'x/zDIGehzvp%1)Q( >%zYtH\A ګ'XuѸ#]'d "v|o{%m g`#Dr"S Kh].%6˝*|pʧM<¦ ~uj۵}ܝ~ܢUB٘ TKj[%]m[ <[*wQlk'ѴO'pq;pH^ꩁ-ت(R+n!kߥo[ Ӗ3p{9&p`⍛*ڞ 6J: fX UW$a^` ?07G'샷®8dOCD 6V0[<4voіD!ߒ[D0#[2A) h Yt[*XӹG{]jRmrrR)]lavD7a1cǭ ezAZ޴mN楫eC'863C+'&|y"G絛pO< ԋc.q8pC<: ;cίyrx !QoDLvOu.}ހ6,GKfh`f$HaЇŚENi3Q+AOs=QgS%Lh( -q[֧.GTX(Xc&8I⪃.@^i'b⽫@I~_33XH -ХUF1^Xs2,cl`;q#5'o)w.M!Y`\"r* q$:'yL`9$YD D]NX38]U܇QM'H+(o}mI[ ]$10*l`J -PZoB&`Hx)р=K%'%nqA46V.mvl]I[tU҄ݒR -*مm#\쩏Γ܈>`X͈Nbya]I!|I1K>AĥrVhpm 4t&mH])3/Z|S.kPvxg --ȉOC:Ul?~.C(ϡX -̀vC"]=KASF 8։5\nTm$^*X'AC: n9ghN4&jI3Bu߂rneF₥.R^:{wTz"o;‘#KD(`>8ki^L0NwDĪOSJf^!;])X%ng# p"cXgf!z߮Uv5؃W s8G1VE)t -NV\rGm]8{$a\詛a|SmUEc`ulImK&~(CKKJd^4re[s#ď[wՈbLa1pfu1 [ldXND}Y#kVXŎfXP`:Fv8I0ua2N/1&!}ZMٳ",)HKľYۭ3E"JvGWmk*{I)D qj}XD.}}"JBǙn]+m#Cwf -:mdY[׆aNF̴ވ9% -ʖ%Kq^$Xz- qhr?Hysww ZG0e -X^hk\ 4| 7F>AS#dI 񤨠ͽ*)7BKv5C4c#KV@F)fG6 K|hoEJ^m(p`ք VNԒZuaoc0ek]+lkv 0G"ϘlM;U]z&^"<+g+\ۯYł1{y0"zx[EɁxh5ѿz#$yzB;2TdU1$ 죘%nBxz"P0 =@;=(Bߤ(/߿L^˭_1q=Ů)d%?hH?kxG9uoDӞ .%?T3ĜE`)t -Ϥ'ǝ#(=!|HUb9>\ ӀPX۞XEsKXMeɭ0dDg[I<#K.>v,q00-Y~W*d:%tŭio琋_Y#>pםS=Y LJȏk~Ӥ'H 2&l8 b;E@Cҝܮcj^Jk :D`ɧaSs $[L)à E0.W5#dJ*\19 >DSiG-دӥbR-~4<ȳ)|3Yy; .Q,T.+gsH5"vlZ|Jp5**¨-hhn' -n[q.2<2 {k%A]m\fI1t%Lu!;9 ge;v>A\ynl;`fK|Fo\L7y<T/prr7RA=S9?P)<ð$%({:v\b6smm 1VUCXʓYRsV1If}3ra.>{́( +;:])Ee(D{<qC0B>uG kpY݇wQ{@' qY}\ ^B_W줺F'vc[duh}WqCojcMTfarguZ -b%'[9V52h&ÒG*[hK-enEd0ï;$~jr6gլV^݈%Lvf=gڨޑ^_"_mrs -BiX̜VWnY>,;&hH~/щy'u?>{VUa\KTS}\l{0׳'>=9D$ "?]=AnS&Lh{3a0|@$J)`SzJ^B70AQok"2g|w@2]B\9-p~`qAqJl~v<Pbힻ- fv!O;J6]\D+"ʣZiV1iDgYd ̐t W i:wBϔc HiډJKDg?(c$bpSŽe>[I*3U/1Ms$UDRdB/V ]Ȇ<0 -\z6jC-ḇ#KꠐΗxiYu|.6<ܫyG)^V6kKwL3CgV{a g֬"VDj)dOl[պU~E6tmC 3JPxڴإD8U8'sdKYe MM0=}[NY.YmEl/hbѼb^|yPaG:mXt=%JJ8A1-$$0HT(1HId}U%f$&E~uKm_ -FVQIb)F߹Y;/BzV69a .]fRe _rjCzcamI{yuޒ7۫Z NgT+WS఍˫629;kR\O/% -| ^8ʼ%Oj6$&0 -#I6 T Njn3慗q[#0o#$N~Eݰ»G`y4gP'Ȏµ7ڸ Nv?7^X[nɝ9|NI%H[%=z6s;/7a_^Ub/%eXgsqxg~:]W}%d:0r]vAe1/[6TTz3Ud't F4v] 3ik5c{Nty?so>]p Y;҅zt>3iOѶڅYv[M&w-KWǖ3nИUD95:p߼)- :SyR=)K`r+$ԘofӋܝky@jn?I.z9RHlx(%Chdz }{z/4v|/ە[m/P УD -yKC` -XHěaJҸé۟wGr{^SXغ -4A1TC5ZH}Dcռֹ#yBIWۺp~v&3As[&+F#뢺 ʬ0DeZWk[ޚI=-2cq| P7^: ,|\Ti_pmo{u/=z+\ -Iل6p ݄X{뀁v31U *%vsG/k:Y&>Bq@dY[(w;K˖?R d-BZis ?h{]j AO[_wşrmmimȽ,^}ozJO]XUomkIU~gmȉFw:x~Cߎkoulh|[6@?&J3x3B_?/vW?NգW~__uW%g%J/׿+;Dٗiܭѿgov}b+F#T V?߸ Ti֘V?zg6w??NZ?ޕO{չt*>\JOD֟Xa5l&W6,Yx?j"xOv -ؔI3}a;|A}{e%&FɭL߼G$|H~ x?XК:WRѺ%axofsOBoqn [|~TC+(khӀYۉGȀoщ7u Y}ͭPgW63[>-9u׏?hK?j,Q'B4m c%SM҈}#Z<~0W^5-[Kv>K{~HҰm UG H;}#hD_q~y~~-ئP%X'7F^uןw -ZO z>Ʌ?tM?W)_?/B雹~NS@n`ͯ _/-__&|W3=[~knԑ 3,Aer7cZMSW|&5Y-;o+}#t ?_o+kH5w'O ]a8-YK/%Rgf|:mߗ6*yo +?9S$M'ۺ>fQۇ~c75Ec]K6+s̢zE$^l=,Z4(A=L{2 zHg$)"?&*CMR^=Ы?%@Vm2DEⷵJZc46+VLPa{) {fD@bD8 -WnaO J0B&K J̕To 2?>ԻU$Bk)^M) ΢h$֥-IAb! GFqnXft}{'ʨ``S ju +C켙 @bl7j CJζX}ǁ\Μ|Gb.3X vaN -P{[*UGDCՇdmϛȋ)JR@56ӌ7綑 -74H޽=C0`ͤ! x9fSF7 DzS'.~zՆIr;2۹>/fK[ Y{MTh +#bk c㪏nr]׭BIUHm&R-V((dBmk&K ̘S7ek5ɤO9.j`5iX񽙶(VR>\lG^DIA.BsF^[g#tq{j(-.jO!m;(M+Y^n(Mn6S+ٳR3 Z^$ e\-@CB> m‹s9K"-d5k'47^с@Q;[;Bl7俇4`[ :GԾVZqoVbMs\zNjmDe]<ׁ>Ҧ~*wR8jmt( דhwPxu_3~O@5ٟ. 3iɺ*D̖hM@VOڬE# SIǃ(-#%<68i1'=#~@efPʞhUyeѺ&,ErJwG{!25DJY_ "VbiE9Moyl1zp[Re$,_>&n]  RRYx׍z~Yr\Vk}Q]հK:^B0T nu6L"֍DGJ̷Hy?ׄH-k7M:?X --ty+Zd0B )E#n7bbٛ9߆fўZƶIiw"l'rj14鯨2jCo$ƹh4a 1KB ;Vr.p)xHy-<,5|#ƴл/tBٗ,eFu\6chMMjS١,f)6u'&i|O_ C+551?QI%6o:jЅ2#a: ⥋)lsp\fW3zl։R/,5>/$Ќ{*:kG<#@"世P(S1f`@3ks#!D )Aeg{8Ɩq kn -#z*؎0G> -stream -xKo&;zV$R1Mc) Cs_/1} 3HQy"/_˫Ϟ()./^)zCO.J!8BIwyyNJozc%V鹣kzw! IYx$Csy/,T_geA/N[4ʄ?&"DX\b _FYX{Go\KKK)c9]C@3[" >{jsI^ГvE7?Foàƙx ?(08cP^cAH'xsxDasywVÞ "థn&xOaK1-ãP=lzvԈ'Qaf|{.3UchX)PgugGC9qnͭ3oYM8ca L?>,!@Y068+GZc-3ϲKȑܑ1K.f/8NrC~ )N̑ƳmaXd1;yLH TU`8b(v9}YYG;slv0Kq 3BR'Р -eeVg[UYY03;YY0S!;S;` 2{4#tÕFx?ldr6t$YM\XIf^3!/A}&/AGRm7J,A9t޺&A*(Rzw0 (YmOD^^ɥzW?7?7)0q{qܦ?.߽vDUʘ\?Ri鯽9$asD ?`-]^jy'cUgpH\) -@ͤD|+)mxtXV펬C4nD\€8g~J@/9yأC,:ӖDCy3kDRj[.zoSdfj5Q},*581;)M%`gs̸Ar3Ge W#+|Ml;?_+P! -Tb8Z4E󣄙'kڦn\#G9٨>m ǂX2eCycrq?q,>e.<kQ,^qҜЭPOw(Z-[ܽ3QTqMR6c/MV鰭fZ-0{ #ĥ+t |T6Aɹ@V('V3z cۺA8cfLP~ņ}6uìJ6XCeb/5Lh+4ikhZ ovEc]VXr!@m-=ȯ_v`\#Z8NaCa wL> &U"đCf.C|v)U>% -*: hӨ,z_kƥ^xjM$\b~A96 r=*)`G*d*E+ozIQcIl/_¯`ʩEei WkeMԔoSTʤOyחQAw:+m&M;ۉ#Ǫ$'7JʜX0 '`mg,\ ->˱>*}N/9R˖XFs_kS%2^XzIW %,0N6كR3ZSSWF&lI-gX .si Ϯ3ɕ%mE4VIg*RH*cMğ+S"ѺAvz96LNuځZ JzN酉]k"%gI+Ivf`\TY̶ϡ>6MK}eҘ]M," ='݄NozXB -wd@#@~wWAdƩ߱|':Ř8( Ed r? *z %ϲR,Oۭ\ iKo󝡗7Hqj4.%K %'9}oݧI\B}Z8Otk>]-'#T͸ҹn?T]rnl J6US hUu|Znp+G;"1&q=Aݵ-9~JX36m&[94ga p￲h VԴ 0_E),rT/ -$mB\QX G.T\.wڔmWbfИvsM,tG^䛿i,ý`] :=,)\LXt0J#|;x`+} -h{dtVLU7Voų^nvyuVl)Zo%!lL -^XeEv,OgP -.вyܴCFB(7]>U:޶L2rM¨oMCey4m{G5 !Щί%/`D_ %ލPi˰p~{ el{Dֈ\|W60 xDH5߹FuJV'F=7b'iغ1ݭ?x,wfUAFӓxjβx։o'S~(#GO7 -}J[A#X["=K\h-\.kW4t>-[$X8w -H셼y7ߑkkKǦj hi:W [KO|fcxw|ӇxzrZ|ήKXF(\Oˆ/fLB6"[cQvjkZ!{ʃzw[xq]f[lZ蕻F֡WCjNpV9eYH~sLp% xnr(i(ӏBڋ;DJ֯*Ȩ76_ЬpӳFFwՐ:#2)ɋ Cց(M=yнrOumT8䜰z_鰗ՌMytT&Kq,,qUu"=8쫯5la.lHOx|!>yZFMUVdH!Cu9/|Ч)^^h -endstream -endobj -141 0 obj -<< /Filter /FlateDecode /Length 4351 >> -stream -xn%xG G:( q'62999SHn٣' 4者*^ܤO/W{h5;=|!|@ڟNh6ޞ$O5߽>m{LZJ+'-gC+K][#M_8Ƀs1S8d[ c1A95J]7 +& M'= 5tӛV`خV *L38wf([a#Xj6g  xl%9~6Š`fiTQ  'Sl5큑C)aܶa62!0Q9jvP[ݦ)4y}& -5, MpaZzdC꤮]7ñy׹:y5X${$N%.05*Iw&\` Kp~q|8"i2tk|Z*BwCa&#YцI% Mz>n1;7kh_"xLUa2:7Mwͤcȟm –2'hQ]t98ٯXao2m..Z7m3Uo" -=3M699̩l&BOH? Fi1(a`dW1~7vbds֬}Gy)\l?pN9e+N83eX f3*asݤ94.f(27(ц}x1[*e#ҶЌeh8(8 1,*ٰ:T!׈0:hPU6 -]Fƣ6ȃssD]2'@ fUpV5P -UCȳ s6rB4ggkC0i2#5W(A.|<ڢҖAn[[nI9GFiCR'ӪW( vk{6ićɃR_mod5')B+~`賑ne8\5 Ou|vM3=a|* -qbFJ̼ۙ5;N*4:׽-J钷q ..` Oq&mgm`\)PytRDΛ"X?69# -F=}Vo!FeLIXۚ=&Y [.SӐͯv3Nx~Q6޽4} asaK[a1?ӫ0Gݯx4-3WFW8#0LV"&5aAF^MMaaJ*ce3mW-'=w?$8HZfjRSptj0*)3p -Di-}eFi񪈓Jmssh0,TmUqUsdDmWR\Κ_cei#\Zc'pYbA![SpeWSi:R75аzp2I̱ex\ZXLv ~ AG!Ujtk긘T7J1 - l=6ml*&hퟡ(dd%',v9"'hjKCF'%v:i#)l;^'v9N'8s96sl{tI.']0|>Ih"N8'c;~Nzct1:Ev9S2. gȏ+mi̥qU7p%YR̈|'|^4oVDf܆m6mP"9hiƼ?<UU417pWLCp. 8i}Jt’>rb -LI"BX]MŮ0fnvwPh:@(FҗHљYk#P+вhJ(;q@=@oԧh\s'.d "7.VNcRN9ma Ъe)]^ 3?2f2 Nk|g'hN[C֚.߹~ l/R =-J[Mq2#u4sTlSOY&w"etJkd֎ՌW=if.I͈xJE#}y%32:" gZRdP!c@&&gS7Pq.[68sRlFvS08#t"eRҊxJ0|BiN@IFȜg'} i62гcW jU4dr/,pWӧ-NJF2 f=6*;r3cXlaDz8qCK1L6oBiy~8|m,$Ñ6rla{Śs$m wP cE0;3LR]x!VȑFxrρ= HF -nvܛFBڗ`)M.;IɫѼ8dFqQ9P_x(|[H8pFa3ou*pyG GT1]Jar gZ&ȺQ2%z$YaHeu\q˦I1+ZJ唫5ҵeX.h}[w6`kɐL&7?梌r`wl'ǧ~7?ϗ'RۧL}xmqQ,جe~7/|t}P}A'ȕf43G<n{x˵9F}lt[m*kۿYke -o T{zwSt/Ik&KX?PKqU/k689ob`^f\#2l9}\P }w[}Mo8}:BҵY2KO٩V&Tlj HU ų|zjRG=C%̎(FbŊz7WP t`8!ٸb YKYqHwupl- -endstream -endobj -142 0 obj -<< /Filter /FlateDecode /Length 6970 >> -stream -x]K7c !oFڲff=}صac`f/ ʪ~yZ6j} x6>>}4kbO79X[!eI߾6&7` ~w_DOF2{|o?w;7G\3R -d Rp{/> 9ï t6O߰_t)QNMYLbᇏbQy%[P::??|u03}L HppxT5~b2wsVd>w CMQ K9 uSxE|̢^- 86M3mì:_6߾rM_؝a sk_1;#&xh]۷'9}xk1sۇp;:=N61c|l m\J zC?='cɎ$h ӑbr)z#O|9PK9gziXpINdgTGeE:qO!b? ϑ8N0@ -,`g;Տg';ڿEb1',Gnx9!r$zQR8,rgCXrz_g2L3KX#j6y"c)ˑ*-'8R}%$_dL/#גO -ֽN3i -*;-\~ďt kܵVۻĽmKuc>OvFcsT --3Oy{>e{AaI =;;Ґ20c܎/}$lNrvxipat'ц"Z8&3#FL, h#tOabOv;';ҀQ{t"1cTFqIIc}1 Ns-WO3/{g֘ϼn޹I/ )`j FytۆZt9ݑkCF2Ö:_ynϺGM{إun.M=$ +%v{Imȍꐻ5mgs:7l, ?M)_e]29Iھߝ]_;nRԤEj"`C`lj@aju+G5 10!->@ -%I Ѧ(5u /$bΘĢxnJDězpĞ;>VoPκW7/XM=݋렀T1BA>Ň|QX m}==;~-M=^v}7=&{JOϱ mrtΘZou? Y.RB{Ǹ[ -F$#92.{L>Oj*CJ ,)ΛRa1r%@t>6ʀ9eIz輸Hyd ZmaP)\8'ѱ'+pk+9Ag40]S y2)*#a9Z$K6GiiK;`r𰳊!\zezۈՠ;D_2$m`rv㓙A;, ?ch4Ȩٙ,&%@$1xjɘb OV*&M7 -'u h\ -e %k`c̽u ESwa+vD VA)"Z*FbxQRLf &*@m1bA8OP -r`\ 䢠tEOءYyc@V jAVAObV'˵2 -=eab>("M1R['[\(E$ - hԾ%%},X$0y)VAWBaU`J N<ˮk1ϪP"OvvJZ0ith9)'1%50/zWУo t4 +JGdWASH3Q`^u806,iAX:ƕz` [C;mD2ʈBCrIeLi V+&(nK -F,6`] !7r"ՑDMALR[b8@kJuPbfB{;hh X&(K#!J'Iℊ -kTECqb1IdqBh۟ssaƃFŸS8``C+}2x?&aca^sZA8[*h*hڣ]J D(Qtzfv`V+e470. zuG'3LYk>sX )@# -"ZcM&'-tuB<7P0Qbj&=G '117QiB&7ǂĸ0Y[˨¶LֶRD̆/(INk ^J+lCȉ3)7cL̥PM^^J.VGa!0JGSug3(j!6À.)6ƚ@1v׸&K Y"] 8Nm$ސl#1& k0F9dR( -z؆!]. sz$jY\M -?Y㭯;9i]VܲFfЊtzf30u9i§һٌJo-Xo$,iem;bfN E&C~"Zn a3^ѽ"Z{9a-ތkVgEX|:fqfʘEl"U&N"R_;q/,rgj -̰:-MIogM;&{c.h/Ţv޼|ZG'M<#{n|c™؈4͑3y6qkҜ6}FoS7ͷ+,>˺ndy" r<4x=#Ҕ0ů+AVQa#S8-:wf`UM$|Nz JNkQ?:wlt5ot5_ ,˱fwT$ٸ;j[ ?sGκ"c[(~hC톥phtD/N/zf,P`ѐO}1=:zm|>cOSߍV녖U%-׎ J~OPh2j~ojܺŹ42)Źj#a#/|˞ml4ʲ<=!Ր=r4öN8_S6GBM=BKjp^jx{IpjrZܱz/]ѳ-WEp]畗f~AUnpM2&QTcfzrvN=n.6;!<6;!şf;Yc|.d7> -stream -xɎ񮯘dqGe4FD7; q[~=U\Iv[2 a7X w7dy'Qw>RN{-Ow?J錔6Ӄ?/O7R-87H~fHsJgnOB՟_˃B o`Ae\҇lÙEzw4.JH}AO:45- nK% o;Y`O6 z+r6.2nHOVM'Fc^|RR3(5mЂud_ ?M,H|Dl&!,@MhDkz(H;R1/ -fz@D+#%u -LA=o_|HRQ͎8a\E("f() 6Ejm*S΢g+̮r e dP?=f4]X.0X|(^ |-ؙUnr˺-+j֤6k,ġ~#rݵE4B!WvPcߐI%ǸDPb{MVV+V7ICp -W^-C'B_z7?Ic%}'Fݟ^qXKPgNXo5`蘮03XIdgF;4ҵx_XBfWXѵVR괳G̿*O{ރ0E|=r9(o2iwV4ki^s[Okm~[":kj&[C;T~ԭ:}+#Bke1PЭ ;~VSD6?DTH  6:ğĘË}lA<1[.Kl:[篲1zdw#:)1F1N1N̑p_⒣9rcB?N@FC Iְ$6 ʟ%i[)H }[6MRWІ\H|`n v8 6) cd3tchtHcAeFh=)Jw`*^Z exS:79FIc!00GR91 -eܥ=60՝>7JnP'bLH҃XP}t*VS޽]1,مU%S-OC5U&+/Ԅ+Yȁkbhx~7!Rړ=#XgN<;=Pt04 䙘*AbrQ`{08E1aƁ?0FN0vRlHe9@:E'4MXmSߘQhdR_p\4XܕRS0$P=cA q=ȟepl1A_DԘ0Dzv tI#sfbt"0FVv|fC1Fm lu8a=s.,R瘊HՃBKe~*BMd%yǟ>ȒP\0-N{ ڣ^ "s5'1ľv뫩=ZuNe7kǵN[ -eRך/?ٴL4Z@12JE;ۢz-w$|Xa:*Ġ`bc0Hơn5aP*4Kؙ-sToA0sheO͸wPL!BZ<[^LWw`t-z3Jb$Z0ά*68fPghgvotPO[o]6"Ȇ]hawB+fpcۀ/7֏1(p.lq \x'Y0^{xCJiGdN55ȆDN[ jDKNr =9stG8'јE];.FnfÛ"v@OE}b09%pa0(KBզܟBO/cDS>W}5F¶C! GJuJioS -@+mi:ΓVB$BuЎj=Xs;gl@nE1h0~~@`~ۍj:o?]xd0,sg(w#\ #utT=/i&_ʢ_E2gRMN'sB:AL[.7KWDWe%,W6+Q}l*,>UT)젘@@HALj !+ )#K~|DoZ_&J[v~y 3z7^m(I%7zJ#|G6]$wL -4*KA%(եqcjZcòyvW]˧zTm=T E~ MJƬәnH5!ZA aDFƎ2rBӘ/|Gѝ3*Rk]-4,t/ftZ>,ءCLWSΈi-h Z3oc0^oP-Y/*yf%n5+y=9Vp=76sGՁnOefvkjjXG!)Hi ;eAL;cht=V`Wqg~(V~`D{tԉ d AƕqWn%9n~gv,0~e9/;Ȕvf+!'n\-hy G.qFkrI*s_b֩5OdMiXtˬ1h"֧J P ẁC=7QBmw0̲tya&P9:'PGF҃"̐Ea9^'&fؿ@鶔-BZi/~AUNН4 -U/Hr_N\4h&\\̙Hyd4W\"0]ٳRjq,"7iRLLrm,ݤ#.pb #l͂ao(PqgȁE[p/c5@[_L u;h.A툐?IPՂR*QmX}Oآ꫊7EZi߿zO:Q(AẮU+*6f.@7ܸ_ RRxUv_)_ m2_L9~c29o)ڥՖչٖ䅇ͻw8.aw0*̣Z:xQey)޴('v]oa}]u}/er!e҅ ä́mSbô\Qϼ UuXX2AOWhn$m>;X})]V-j>I_)s~Bl2WGw 4\bAa@X{mFh=nR`r@v"U]?q+vC'*K?ّIك񽌘W)lf!z(NtWg*iF]b%"WJ2\MOxnNٵ9޶L\go[aNXKo[JVÕXC;Y_HYf^RǠ\쑔MP6ˬu{2LA*f$ xg:M]P145%kp啜WVZn_QUvJvșP= DA4 QAuQhGAedq8ZuX;+ty=\ -9.]Wk""e>j-$]m0e@B#)ȍR=o޼سjC pk&]1"&HCe A7uiď ʠ&Ggm(PtCz`cqc`!+3*g-LCeL L҇fʥtsD61>+c/pCzRBcd\vȸnLgյOF,E铤^җ鴇7̶W%'؂Nkغ4kkQ,el棇ωeF\~g>4F -endstream -endobj -144 0 obj -<< /BaseFont /LRAWPD+LMMono10-Regular /Encoding 266 0 R /FirstChar 25 /FontDescriptor 267 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 268 0 R >> -endobj -145 0 obj -<< /Filter /FlateDecode /Length 6908 >> -stream -x][%q~_qga6k5F5b 7қl˷ K7>&H֣a5bbZ~/ވ7?M% -۷{#/&e\7"};!y[!NO=Q.Z=ߵ &I淠%(7ͷ\G=;Kt[QujCDDU\98=ۻ_-6E~ OV}eԋ'H˩î+YNX[ݱJ}qKUYwe-:zU$}ZS >˃*j{^jJr>q❰(v"ylYgu/G+Bˋ.ǃlH1&̢4Fƫ.z!=SΟn2#LOkۻwҀ=5-\ -== ?|E#3`8! gh dqW$kа/;wҪViAFO"y*kiN)=9]حüZ5#z_Իj([-Y[Ťo&v1~֧i蠧KL`PUL q~:jӭu6'`̡D~̦ڥŶF|xJh/0w2/owg^␀ٻwrEʐVү -K=rBc  44ȓ -yDcl_#2 ʈ(̔I@/zAjI'2c^ ] )l~U6XN9ĺ=21[޻E+REdohN?}VFĒUfP}\PG5(h]vnb~ؼ:6>50F4 ]W'v'j5Y -aF N]1$ﲻgD[b'P37Kza"9.ڑKhF?Nc݊El5A挛Ԗrz21{֥ G'I'Km2̀Fz4([ĺo/e}BYrPk=,vu4=N҇`+.Hh7mdQ.Zg̱vёVRqN(s\w䨒<<ڐn3FVp\.m&/ԁUԅxZ#8~2U]$svǴd1$f01A VzƳF †e㊯' lNZ@i:{tMH"&SJ94Cjߌ_Ø&eT5z4h~jmD# -nB?ORkpq1"U$W򥇁SzIr~߄t,LҒ|5Fs' t}d 힬 /"\K7B/>/,,nĠO9/{6_v#{=2uޓ>lef|7~IsI1J-…r y.NИAm#nXL\]j}|5iBvV/PsGe>etCINn#THa浑*E[ț<"U-͸Rm*u<=q9fG1Ė~M+PYB$82leyhq&N3q˿=TTt'ݜ91Ivݐƶ <+LФ7F(<p K'sA"ث\F$?vN-~DX 돁';ճGOY -(\?$(Ѷ/5W[Aė+1Ejcp(O ᒶ?q.[~7W+_#R^烟S M3QfN-9֤T.^="֎ {HܰFb)ODRĴFNuMj۞Oƙ'.D-U6kI2̍<ĴKy=?b 53h'댋?G\[ڕJecۀPu$?L$l'Āx̢Eq+M= wzb5>i:+OCt ֤zL&*Ut9*KϪϏ 48m(eg yDb1YPR-Z|rx)@q*D$VB$\H)Zq $(R0Ev al^&AQqpLA98q~\]l1_/% ZCgDdS[tL&MJXyФ6'qT&xu}mf5̸8̛͊V ψ]]JhIL4c1v$94$8yAܘHj &$Q)29V*]tsf)]jDs'B}G)/8 `!wq<*6D(WC瞃iN N04 64 &GVr-&D®@Wv4ũm]4hRF恆 -s9{f‘4*) .u֥ß؉h8N%DJF W[=*VQNd76z80y91o30oeje۸3+Gnvlw]tUn ޷;b1bJPYXybڱxh5 |wfVza_֩KY2ymboDCaemD(I%*8#EEAFJM)IV5+"jk yEIwh50 |w+Hݐhןզ hEy6dR{, -Exa#[T˳<\aX/7|`l\l? 4DDT:i0*jq4c=#it=,&SaRp)FY.&ԃtqg@нbN=-V l2"%MLЂൿD !M/R/9|9ܷI@ p4v@Җ$; -)L=~xgnv33Awc4=}v% vx[w]n%rSײf\-_ ҍ)(ӕy‡._BQRlųR&yITieč`(ɾs+ ᎞q5|6^ZgN_YgĬ+_ ϬynˍdZ~.m gY9H]W\B*^aޡfxВpBʇnh &^M׆z2C+Š楐c/ -k%F+~N+٪nzOcwYk9[:嘔Y55Eכ?\iU|X\ Y7&X)}"%3wO^z*J$o4[֟nA '|,(kOtܵT<40AđEl=J\ktjJ%B8SM!v`=T#=Y&(.61=bP2+9};'NkD}'=œzwmG p<~DF%JaFnZ_5ѳ$m{Ζ()CK1q;[#q)^hM0,t] -٨#/8'9qL xE]$viNLi`1A*lzB鈶6wuq!/\! -ha3 $ED$z$LQ(Ɛ]ZCLXlط)[MWv>Ew7Axx<*+"~=.Y"4/goJP@`iV+pbW$>iϜѵғy> -stream -x\Y~ׯIO hXo\r''Olvv ,F*]ꖷ7y>_|ɛ"J/r#O"Z(o?޾\JgG+%wO:/R{qTokV:V"gO߿j&'ۤKa߼q]h'3eE)}2OO{r_|w6nWC" R&/35LE4Ѐ'l/d%35ER - - FDg3^DcKBm$;숦gˡL<+m4S$ST*eea dUV6VV)zw,;~MWdG2` &2_eGH+hF2 ~Yf%gi 9[gVz|EEq+],LvFa∄4[}qhnrl{qh Ѥr˝ Zߐ1ZP%~"sWg^1{h6բ ă(EcU;幢>^ -m4ˋMXQYqnt[!tΝs`e/#DB(C8Zb7ek4c @ß%΅t&[WTFka9a▢J(-}IԾIPj WBhBUPkPPIz8ci*ϧŒl"$"IIB60F>_ ޭP -FJu ڹQ+Da,#DB ڒsբ0pʙ^r6++f0IQ#)o y{kF +T/R6`넲\͙DXQ:KmQzڢ Y%l@tYtDt3n)֩^AǎQ MNcAs\IGăbً@ ťcjYvUk$.BIqiRt> -@[6|4hYzk51w08oyND築 &$/хK&Kpo>d=ة(OUEYnN%? Y1] 7 -c ҁk$ִ`}0尳о9` QnFG*Zz -f,B 2?|/& -ޏC7/~߭%v+<5@Gбg[iv?+P/GZ[:)~;Jgܥ)@G_Z,RkY*#Þι~R Y~te%;ۤ`&^Ce0m-ףjO -lv<~{it=L1B -&# VRR2gWܙO9DԵpbH8OAB<}Ԏ9"jBj޽N(c|\Y3|e{z֪+wlU4`)J0ZD1su_& <|rfw,i`;g~UR-]&dqc7/ԉwQO/Wz9̣HMxI06VӲ=t>"9X֎ZT..MhI9I l) ]xF.Y]l*lP>Gr0Y+G?㪧8OvWI%NWASs@=,V! -[wg>3 }ִWՃG,@PئOZVѡ+0NVT?q% ? /rᰛ|7O4_4맅BCJ}QcLVP-*4U&ACOlhʹp'^XA^@jGs k9x9Q3#QE49/)5:^

xܻm_S#6)ϙ הw'yE_'N:~`m3uqP%{/A>VhSaS:)E{9ִV*3Oi-cĠgpf#{Aq#>to=p&ׅeҢJWOoe$-ؖ")@hb -=9Ź mS2 -MR!*qDΣ1z:^\mA\n@v{12-T5R@:2y0Q\c SoM(f>y}naY4brTU2)$&zg Iե)T2[7V(&5_;29of>yRgy` W)'ӣX5K7VÏxa?18OϭpJFt)1,t ~?5T̰#~ikb5Hk7A-Er6Ir/^Opd"劄?RM"8J@52H񰭎ux[s]~]Jˑo7>vNmp[̶zNs< -6J5;jOPt24T I>JaNP? 5d<|3z`_zҫb;ҲocFQ7sH.hޱnl[:1<<47ڇKJUtZ)=LzԤLJOn_yCv!}_5hhN.L7+aVazEq(!"6O<,R=KZ Piz?F>x7!cT_!Ya \t) lSj^ok[']hEc CMw5L'4@J_8ၗ#ua"uLm2=BBy -#<5z\^ Cjc"wdY+اqN9Ϸ_ -endstream -endobj -147 0 obj -[ 269 0 R ] -endobj -148 0 obj -<< /Filter /FlateDecode /Length 5099 >> -stream -xK_G*g^MmR F[zIi4#iY(/Ho^݋ϟ1Z%My CГc݄pwwZ{{봦2Z;[xM"=w 7_w==-"N+HOx%SV_2>Wzۻg~~d֬WBZ0*J)˨?f{)gOR/6--O!?-+JG2'( =0^ y6@B0y=&iHb$BuLJ`pk͔9,z͟r5iq0[9Pl -a(?[K{#?eSRN*[/#o_ǻpi_G!O@&bzZgyXpKeMb3iV;:Auxa$-$;5ӈ4mCVo`> vL:vYssXX1lz -ݱ0Ѓ!1#ԇ_ dp{Ԃ3J,`X;xQ*%|sH鄋z05kmL̐d+Z!idzk"pn"ލ#1E[{] /]_LJuVKc9LݡXG(}zC8.Af3"d xPh%0= 0^ ~A:F4Sm ʘA "؃|f4ne.`HL+28#l`If-=Y WxR9*9**/:*<^~ɗ7'no߽W'MiM/} e)$|/T I]5\ދRL3k$EB.NƝ7%$Lޒ}@v;?Pc i0#e$%xj/@]5C]mXN!lkM#0kK)5Od>N_R;}MgBTam0/?~뿿/d5,] sCiRPѮni@-U^zɾS!(̤uUJ¡OQZULO:OkuPmudaV -̆PL C-E&$ܱ,6tj0f)< gRDCy Mrm؃}<_35aTmx -F괔%GQ!u$9)NPRcJL.j5jt0뮐3:mW6JI0j뒗5;;C!2k: Zo'24,? jeGʴy2 z#ugs(pԖ ]] sQ{ "k(ތ>fqIPI4a/[:k! nGnR{٦ =>{40-mfqAMV*my9>'N&4X=Np89*Z^wͷP[ F`/D$ӷ:($ݚ KO{Jﰲl:ajLSgZz;¤TokzTz Wncl3h[fc.жDbuEll Nגּx"JOUZNBnV,Xlҥl݈0iߒL)t:< mbʹuLԭO#hB'ŌG>CJC=>R j<ӱDNR#ߥ޷wBav!K[챼x/0<·>eˬ35[\RXJ0)R?D03LG`Az*;Ip9T;םJ;gs2=՗G A@un(QLx~ooTs0Ӫgv8i\(ĐŅn܈[vA를F-`hqҺ3~撎0 [;qD6J.A LSYټu,mFȖ  p%aw 9G|H;{N -I1,|2L8WOp%^G|A91_Ҵ+M尝Qcp_/WAzer_VQ(S1nޫKA޲q=t8>=l'.E2 ?I>,*ҜoXZ*|>0FچeTɞYrIg]̼Bvy=O{];zyWI-V -in6_q癓qHv/~[1êHs=BM( 9Y:21\x ڑD;xg&"ry=o>O^l2bV!)lrԻͼsD8Fv`0PN8?8`BP&ŕNoHPKs06D-"AƆ|۸9({e݀浀jm_#OԬLp(c( ǝ[Aۃ MF%TAOyJH= O;x([) s"<䕴Ke?qw}r.5^a?zb.v0R})k l@~Ѐ]}X2-鹱a|̇^đXԄ' Gwȥ> BK; V\.ne -੻UE b$!͵KF)W!H+PxtP@D>dzD%\KQ7kMHWfXx4l; %1*bBXN 銘-kS&} /0<#^QuAեBb,'Xh9jxfp) arƩޟb`n uDu_iTaPjpnwNGɖz_7gĠ4S.0eeN)ǛA.$ZP!1|0|CASSd 3E|vLp|A6jH1(6h_3Moa/$W0p;n+G@}q]H+ƄL8@[qris;L\W Xd !I_p%#Mm<!`gZ`\1Bj#7Bʫ:6T{(?͡wY+cow,;Yw/. -endstream -endobj -149 0 obj -<< /Filter /FlateDecode /Length 3769 >> -stream -x\KWQg]@vl1Xpnd/Aif,{嗋_?zJ. ޹p`%DHϗk.iwɓqњsƋva%]}}l&d1\;\̿͝ xsG^|#b^JI;Pl"57aVlS-ߏycXlj$Nv1Ϋ)LHhqwԳm&&$ցjvSLSM*̥>ŕĨ[o)(۰H LbJ푎rvBTZGŘFuπ ag$dL@}8 &FX 8@cUqV*r+orVױ;r)g:F;1l ilY9cj/+ڵ=_ҐSgѝ=FgR A=dl1!&I1|0W ɇ1hH ƞvt7F'o[`~& \q4K~I` 9,SS^R4}f3雒zp1P -ܰ1LN\jQj`xr"- BRsg68,j;4#WM cɐ nj34#RfdFf'8#Pq$(E$}(.G!FeARIk:H$Q# 66*CCuGZ8؉*n(:2ǚ^VPzK(Qu;_2e2&tVݡGnj? %͝kg$,U+dP/1wXSRKƍ CpNƫL): -7(Ռw7[jtGp@v\ujt/}a)Jcc|떻BR>_Ujjp'$c?BcUlqѹzcjY -E3vt ɉr8.4,  fS֒Uae=``ϩz쀅49|hܵ')=V[$=C|Ldotm&Ut| 2́ru=c78Ji@Ս^xIS(bDffxb9p45OvbA ]39CW*":Е2ڍzWq4|/kl``{pr{(w \k|``"dwyg!lI4d@Ue \LӮԝD&G% "QT g{zyTfƿ_bdo/"V#3*Sׯtx7t6Hb(2_7vB$]Pm4 RxjҒ'P* 5߆|D<6%Zb2s̍%>=.'7/ ȅ~)y5+L:\$?iv]u!4x(d#yEV;ACtcMt=FF91&_bu†;#Z欷\zAQy -#qGSȆ9q(F QTo׍v!a䊢,w}P|j/k;#ÿܲSFS0m װosWgR2`eQp$>$ҭŷT$\nI_aP\KJ" 2I<A -[\+Y"})B5䮉{Qi{ > 4HӾ@-#:T wiMQ;RM`l=#ܼe$NO~1-yNI0^i5cC2( pOE0҉t!`5 Sɏ\TQDYz+7xP}r,8ӯ%qG̳aᇗDI;hv6Qu1'kͯ"}:{(1+=bqo;LW:=p -)gvn> -stream -x\IoW9dW= -Cć9 `LN)Mv !<5U,~myz߽V^Aҿ_)zB\ -Bsq㝔V_)7uc%}+x臞,Lo1Ϡ=}34 d -|L3 pI곟D\_"@/N[4%J}:9!tDilRYYt1`e[oƢy)(aji~5th>'P^xk*jT5N bԾ2pZVжu{C&_VPvV„J5dGF -z` e"xF p>yoctK Q- -pN g:JyPWYs&4UȡiC! -;69 FO,} - sȳ1@-UB'3ҏ錿fizʛjC Vew *jG[#V Û'ܒ#W>@I TVJ t2ĬPt %yυ:l)Fn\Y-l.gð@Y6,r769+7-%FBz!ߊy 17$ߐ~cзWj` 4Yݒ|aXn| Y>'sC5اEQ\m),b8kدI ľU5#,r !Pcnk9_| -sѿ -{}bHK鴪ǒz]B&cP7T (Iɽr" ,dnFC͹d>/5 0sM4QNH?,+`l(MnlRǼ`]yj@*[m~7u氺%6Nc):ki]!c wzGmεGjvGy 1͝ miJm_'!ẃ&Bލ~:ЦTV0mjaav2άYF 7xB]XޑH @{-dcCmRR5 wc*‡Vʻ"1qjvӘǪstAR3&dl1?ƑFݵy@e,/;9R^8VVE.\ZNaޢ]vG:[vA=V(%$Gi6 @L flLQ9ݗ)Ug.!ʎT\ -<De}'N5:vְSiP@}ԕ@?=imǖi-S MYb&/Փ{H -Bfǧ;PPQH%R#K*a9fe - m?5D݆7 j .-4qV>4ɿE-r/6S,̸L0yh0)&S\"BYT!pӨh~O ^i,J `Ey#Q m|?QyUף̦IVtsvїt?m%Ř4gƭ82ڴtaUy*E2"sbZT\xv3Dԫ>&΀]\廒Eo0 vD.[ mC9qA{A)hiTS! neΆhx'M]PnYVCl?\!}|ms-$Ey# -9w\+AQ#*wOrP{QB< ቭCmhrJpI>lCj..ym8,#ecXLȰmE%`lxj͙ ǍNZ}kWyD1B -{La sYG:+u~:j4I!~;+}1HRd-l/Uܶc -&|b/>`|nB>1?*H5I%lHE?za}( _+@i,,oR*oľn NW&b~җ!+#h-Vo!C#.Py9w7;-jdcH7Z쬞"f6$_!C շ}F`zsy:FFn` -`BAz_P:es+{&c-@! / -@5 Jhk۾X6FoaO!XZ`EtNqyLJKhw>՝VVȖ\lYQ樬F /7h?e1uGܦTʾ_RSسӳ_"覓 43䡩[*l7ۧJ);(9N]0hr<SyJɑ|tԨa<)ZQAAdȵK@ W[J98JyO^rur9pC >'u y(ⓄLB啸r֑tU`]JQG WA4edԨ"m]Ḃsmtr>UQ^MM <C6'!t{6w& rεl͹=8hTTuX3msS-nω듀gGT#ڰcm>H k˗;AÚr~iφɳps5|m@3dp6,N{5ػr>D -|a+ss}b+(no=ly^#^2ɹ7|T=JpX?WDҋ5%W?DON?.qw1v~՟қʛ)K]XaZb"#C0{ʵk}V$Lĩ1IQ1.%k^/H]c"1ױ9*'ec -(%#ޓR:*~?,P3SGJTvm,Xtr&wv{eOfOC .a>騂rf(W1S4HQ즴\M)TVEOM/WhG})O7WUĴNW8)݁#mjFSBh*=_OvM/Q$zCzkh!fAKe'yv_ lV-+H@{$$ɯ8 ҂f?&+oH}z}1-'Ş撏Fe̸)KCʎpRԒ_% ܱvNko#t ^b - aLkEzQsW-= -),ī&34XhVjLr"$|UF ZMu5l}. H!Kc]>Kϯ(?Ȝn -endstream -endobj -151 0 obj -<< /Filter /FlateDecode /Length 4399 >> -stream -x֧䖿JRJUpĝ7OEIz|~/y _gO# ,k^Lp|z^yǹQkostoy\! - o?}Yhç¢ 3wo~\K~x?/4LOqyOaN7N3A؃fU"FE"Vyi'IPLZܬ;$O]eM{iQpy˅h0 -L -İLEJݼWiN|{-y!etUF<0'4QFH4p.TH;oc4A!K@7T+[=E8>f/T*/IʠT >Q8H()-#بE\m].6|>P6X j`_v/&_эFq7twIK(gVX=`-{;p.({ZE0d*ʮl_E?+́xP <- "F~V(i nǩ`WIinyź[v)ۜ4|ɤ I81f6~?Z#D $CkG3xoI\.-?*xX&ٿ[^Zv-bNc!K/R7XΈ-0 qx C2{n煬vT1^U34(xDx{ܟf8ar\vg%>>,._oF3xNв@>1e 3L9*RЀażR - \Y)$V -澑B '%^ -ӡ kC>2t >g\==Bȧ.ڂyBD9 0wla,1*D a8ryƱ8B1> r8;:y@,g@8Ә6d>{ cfI 5P4ZQhG&b7 g@GVUO, :W]Љ_2>1iInas$.`92G/0 5= uBXzsPUyϹ?M*S*,\>fEzۭpLKZ;p{%LT=x:얛 iA ʋQϺJoe{5aݦ[BJ#FÝHtVﻉ;kߥ|o0 gB`Ryb\G4=t|nY$+Innrv`]/|{Ϫ(_QQ*7*^ w$'+X~ז_Vyw:ޝaOOռ?:>1kT>O+ռH ~"wb\?>l]& >WOF c\ƴ-W#-g -좍t/8kf^Lhl5҈-9<ԑ I2G0 @$(dPR襬W?U(C\ץҢYd}1;J4~Bc]j]w)rlW!Pdz"$]Ґ57jO;?꼝Z-K#>YN`A~v8Gb5DV)hɜhe2[&B?p|16?5H_)f- bR +ntzo& ~[wJ}jF"o"P6-:qsFXy>q]D tpO{ 8S#[.@6P&5jiɈ|-퍩P|li [":#PTӠT42oaGY(]N,Fކ?|Tm0y׎LAGTGcp,%btcD?=^7{̲>9zNTaaHZbn8YL(kQO(R[=D 0`=zA~8E:Э -`8LJcXt! 4^09QផҹvA tiegBY[ ͊mqшo3K+$UѢ+uu\GGh^:5”6YؔgbS&sI |xlHLνēI !lI#0(";SW˄yrqgq|& -1>a}f"~SU}cb" SQr`vIuxZ}e}pSi""#ٖp FlFzY] -5,Q)z@YNv͸5 LR^,5%q7 -|@kForpÄCC/T;.c.C^E)B<1 -d(n\?0L0*pF=F"GZ2?YۤI[u4CEӠϵwD}{u}7RӵN}"U$lƊ슄n&{gw$6.F&e |2U@37"˸QL*V鱍H(V _+|/3շ-(8-+s^iީIVC7^rֿt$A^Pp -S/7Pix2cM7z~7CܡWq\R--)TJM-wO9o5:f+Z_\C`СK'*4~`+ȩT;NxcCo%PEPWyo7 d?8l3B齛h'<DE//48O ,B7;b&V][w- b톂; WOG(Ұ_T<02򘚶 Y̹XYF3fVU &{sJ> -endobj -153 0 obj -[ 272 0 R ] -endobj -154 0 obj -<< /Filter /FlateDecode /Length 4278 >> -stream -x\IWQFdqdcP!ⓂKƈO>+.${ ћcWXb$^׏VLRA?_H|I0 c&iMϯF+)_Ǹߚ[|N) -cWi1xwOIvv -Di[?#J1AGib_9[I1(0} ~>j_`5N#TfE1,g̿~PRB* ْz"3cYYs1d R%`E4qqUxg )k'MEQ7P *sd0Y[g+I(7[eH;KZ9/r0f7 l_Y9`Z1{ 9-^\ >-o,[&g| `g-?NIx, ́RjA%eSr6ƶ: LMXϑIoߔ:Xfqm'y_vb=R\C5R.~\o9)s`yZfN20O^js->WvUIOzW(߮y|sIӂ!u=n7k"eS#gS-G(gc}\ 3{:X -\QUn2GNs4 _bњ ?NߥNS8=m]2|ZfИњ?NߥX\ZϦ8r[٣xקhCmI86O4axH?긗S.{Z_Y R8}J[_aI?&!vjf%!adT=~~ -g8D N0$!Xey>s%{+_-p,~+>NXFflN 7Wꑭynㅄ]agqJtS}r3 ތgɅ iUEW'fs g%ӑ^`+<~y~~OB!f\PV"Ϋ -S(z̎>l]tΥ줊LC#`Ojh(2LTh7gCƻdڿ&[ʘR1VUC9 aDs,洩:Co_/Ee9B2խ{ggUR6ԫ.As1V #goqQo:RAHhA/9Y!CE0fqQ]ez3RWWE'ڈ9-!ջzR}K5rB{:^#r =D{?.{ҵHʷ;d2#7nKG+Ld˰ASRA`:k.dy_8aCs9<8*JW}!t1a[om|CGXh\s";eS!jZ6%A<2#F,ۜ[ )`frnjcNՍ^a$PvIA<[؎(d5;msٹ˞Y8c_H;Fu1GrN.)ⴁ=Iu_u a\}9Yw/' -(j64lLY}UۨDF冿\ ᖈ -zܽiԬ~!aEvo:7Tc3 ('_*C5+_4Pc8h]R姑S -[7#M>W;A-4B­Vgɧp{_Z! RAR+E@A-0A@ *@]ɱ[I -JT"K.dT@]`'.]K@1AgoRFq\FB#pv4 nÉa컸ȴuq#IoeN6 |\i+aZGS[F-MGGܿgU qK؀*}]  H턃/7.6`bm6[s3'xdۓXO{9uN炍W1%` |᠗\{>]`jƙaE$B Ǹmn`A|Eltc w\4hxGA4j&QPt CS:B=ˋ50h5-pT|=?\(80jQ ֠pA`F$`nFCەkAZoIJBX!ﭖp>g"֍EdžQ^# ݀HgEqA7*RM6؎|s.魆 -!Vܥ?m֞rw0ZRr~90 kKD&cd GΗ86`ݱЛO@ٞqf"gNԂ !@yCwzߎ\9%WY"].\Q=)hu:XC\=#M8XsJp贑~䳹뿼?;гqX\l?fQ -xhh gD_KZIkqEQsr$JVEYe?ębt3q!31ܟjM4`k1({ֱZ!8lpC"ClHRN34 κxSߥ*W]U%=9 Z;jڦF^GKk篳*g -)d. ^g!QnвosD7`_^|a.V1}?Ѧ'YY~)k Y5D!{JuZNE5I?+Zn5nw?z{H,zh]x=V7> :)CmR!^e(jrz'Fvsz[8Z -(sdd|k6誇iI$E,]ZKRYYqyaXi2:,niZc >?&m¤iJ^" L)f^:ʚ1$ٌ`ko@3r4u3/ػO$,0>-GR󸜵NqY, GYj&:PvVif+"bKtmb|Ӵ$t;aQYG-E=FvdVd{žnjivte:|*ꃌl" -X\謓pyL`̱8$*+HC9oh*CSqٝ sP2P[G KԗmYê|G~-]Γ}O,/貌pXZ9d= -endstream -endobj -155 0 obj -<< /Filter /FlateDecode /Length 4919 >> -stream -x\IϯxGD#y:}v1|_W\I Axqb-_/\Ow<>,px' \47sq^2˗[͹|p5||'Os5V_;}'Vh3_iY'Ӭ -+<:˴:++|$S -lt"0/mLiLt7鿦[0 SgZgeN˾:=:u]9G\#Jz1#ċKyB$P?gȧM"#+3W^;U8qI&N]D鲱w^1,_qi^-hU860 vmr1kWamp%NIɬ'SJ3a:qf8-m?B4:˥:{G+ɝCe uOV]67LАc6uD4VU[W[cD领bGH /DZbߌlU e"uSߍi yNv?t:2W*ϚL4J@o ZS!@nI+VL+=RَFXL\7P n,$4߷< ۬X4` -Jo{N>*qK%~ܧ;SMt2i񼀴UYodATA6U_µx>B9ɨdD'=6XlټM_YEǾDkw&cFtZًtR~η/N?f7Jra\>N1k"akpO2W.BusϫDb] -T ӓFi i8R(@GfX:1OyX\oS(gz ɦg#L#}`HY|(tì{3'y2[j0T{t*`IrZ>ZԾTO=MjX 1YrD_N4r> R1vI? ? `JIX.~)R1DgTBP~y#.uT JjP)dί@LN.%#P\Բ12J> - g_qSc*Et$~:ZBef6/\ʤ,+H.^ Bd9Tif<S)nEu=\ Lkৃ6D7mŽX&<H nwNY BC - dhdK|ŒAnrwnpFցTE)Z~, EUe|̙ -X,xYY٭\YTT'oWQ ! E7ss7efeMa!'4Q4|ǽdFA*ThBǟQ*:=) $q"~q5ݿć#}A2ߺDܘx=@1kyO=ʐs\?e72m}b6vXi.4X0Nkw:qf3Kq̦ߩv7FR؇sU<]ϑAċ\/CDOgRw=L^#gbIw9$}ʙxf 39Q,ls6 OrT`s˫6@INYAo%Nqg:t3.1Eȍi؟DhrXж.ɼKKzuVNPx^N_)Ũ2xF5IcOH&ȨrF'pA(@r~V1z>8D~!9?{n0hJ5IHJ TG\TB vh{틱yN -S +bmi>SS`TL˯?#Tg/ޥ [-:Og%[rJvc셍nzثA$ {nmbw  fiVң[~:rZ+ -ud]JGdrW(: s ^C"7z*jbI.enYĬ- *sJ`@Ѷ3 "vP6G$*ĨfGQuPmQG -{$DKA~yÚ:)n1fI à2o,[(f!rW:\`.W'u7f9{}hRі2S^笎}OEi<--WFpWJuU@堀aɈ2bl:>-LL0EJf1pR?Yci^*W ;b!Ø[mt&YZ4c)M aƝtK/<v5~!33erPd>HGO5ix#9x]ӥnC! l5_R4\q9SuLY@ -R7MS_mlu1諅WZFiʣXk~7 %` -o#ݍxnPv1똅ﺍ@v\ -tR(rbiPK}ѱO#b\ 7T50E%`"/ʺ{3 pMFBMۿ7K$j滁E@%]+BC/0)5ݢR]l * l 1}{gI:ֻ9$ -$L;2ĕuYXKm$]\GbeR3";} - ]Fv`I ~S6`"wNB#WYhm>L4Car9I4`] LHU@1b/+pXU+yya}?~|Kk!y't%{j9?xjKWT)nתN$ϒ_/t{,Q2 k|zi`iAz9t3B`zlB^gbۭi1oPV , >PŠNYS˓Dc6u8  []n_}@.>4#х# E]%./6Y~摪8he,[[n#:9̢qec//tExgU(3R CM f+@?Ԁ>؂JX Vs[k-1RheNrìV#-KIrKX:2 H2֡+U0H7od%s~)|+//c^yłaKZD -2B(˔!NO BoTxҾ4?yБ%{/i6̣JIb["{J<0Tܾ4/pzwtëoShYZw;9V6Z*^dQP[)ooǯ&{ -ڡ[hKAR!2)l SZ۪K>e7SYWjk*7W_oDRp($xXJB/ȤWg --5`a i&U^9:׊CY$^|%cVM T1? m{< -endstream -endobj -156 0 obj -<< /Filter /FlateDecode /Length 4183 >> -stream -x\Kcd XZa@"xlI$x n䌅DzG ~~ъA1ox'x2HFawGiYvtfְ681p\ =Nl2Ev^db:!m\Q]FȋQKY0/'08'yAbFC̻Zm"e"99J+kyɏFTZۿH_<}ZC#DP xybɾi,e,%#WOw8re$8?⃟uAQ:ݻt4M*(dZ//^DQQYՊOR%j -FÂ*Jr99 -yuEc/KH@Ô}-m0?e>;ߚa_O9Ҙ'SFcRs\iLJ*v;V+3go.%3LFho?I+Zxl+ɴ-УqcNb$F-&ңR$k1xYM0 +dV%q}il<_%slX{̙_tAbӃ#^卙Pwq4,&6CQ ?oLr% 5{(xH5s2&rT'iq{'3 -:PwRz>h%HTҢ#o_|d: %]+D8-l5GO5KTF33`K&>#4j|H'Bi@[Q - }v#d:BauB4::1!d'iT ->Nx2՝N``CzF:-IFc*LkA'bP0f@SF u)xu@|pݚД$k!1Sj"1`"Rk$z`t $; ([vZ* >з`W'u=C&( $kaVKU@ 8"zR[0:/ RHK]_q I ۴ahɄ:pPNoV ?&L8 p#c2i&_k)^-@+Ϋl ,}Xc-jXz, -Rjm,TJ/pm79"Z1@tc&&dYeJ-Ȍn.: +ؒ2[ddfBfy^\36'$ zYEA֪V"yx^Ua -6&m]"&0=uBU겳 Wx,Z~6+E`"Cm /NͳrU:U4 Z~UŬpjNJ ןqɭB)D&-^Ռjji$ NZ$M A!XAE K&U  *XOqrDEeq$mH޹ů5)+DJa[-k+ڋ{-O8]!)/OqQX]:(@ -}~C}PB8xGM(As+lp#Q*=Ɓ8tdUbxVl"an9~;"E!dHzԞye;u}X},!`8ϼ Hv -:͕`}OSznmJ SK}_4R)!j1R'toϭC]%NVh q8qy2.ԇ4kR7(P9j"9e :Wr'A{ -\2NB.YFrTI#6N:T&5[+ő;Jn7HC#7tT\hp:(E97 LNꛕ])FR悤eG5ceѱ[Myұ+<,9xA = -.iݢv]1ibv=4dd^2 ,#xԬ:EJ!{;7~_fMᤎD-: z7-,g!~O%jO $j{yE~ylO{ڱ4xp~*9F-M_s.w[ro+`Cjtjh8SFMI-(H?;86- %')רWnJz^-܆,!䃭S;]V1rW0+W|Ipu,ժ.p&PIp$Bl*h$R6j/qw;FAqbpfʴp2EelݼlքEA@zɹ[U2 T[[Ѭ_JYu:*PrBol!/) b{r]|B/8Te;ws/kF1 y쫶'\|Ib99<:ĆrNa2X#]37Ë_$RCc=qBS.GEéQ"h9J)$RK)`˒!l"L^8!HQ<7xF|e$:iܫO|&RS#bC>Yr.!]psdb݆=~XDօJͺx;2<7oJ"z{{y;,¥~++KstTZ кq zT!>A4N@EzyVmeOQ~0K|_!p?]6%{Ȍ,|r[j2_1XrPJf[v45[Ry8S&ƌkqkĦpG&a\᷀Y؇؟]w22]飞ea5TVϭkep P=%I-aZ-HpuCvQKܛRwh)ֵLJ_Ul~M]ԚRi6gO,ϻ!*cex{cLԸED!Jۍ!mG Pq+5]TVM\c_b𺧐4֪HRsoRC;wTRF9^/鈛K[:=:1QG"ȮK؃sVo>gt.xfVO["z_V/mo_rB=|gRig)p"M)t.&y{ϗ,oC3t&nN9O뤍*b;-CxduX6k#%j]lj?g@ރ* -awqh5G#W>Fo,dc~yb7A!e(ŲTwbSixWL  aJhuazVi.ƭ] -ӻbW$G>K@ђIJ/BN[[}~:@,0Ag+[ -7]_mQk~OwZROy -endstream -endobj -157 0 obj -<< /Filter /FlateDecode /Length 2960 >> -stream -x[IoW<ɰ37< I{=X'&2|g(ƴӨ'1p'|ǧydLRk?<ȹRfro|&5e+r -58''eyJC}3OVAxI(tz8zDò˘}>QILdlF5bTZţ.>߇Lk z -^Y@zo *s٧_Ƽp|̻> @I8s?gf*'!brBMCH :فQIjM׌@b!CMVGe4Rw'i$ftp^uw j^ê4v򀸊jN[X* j:gp;b.M2΋%FNfhMGq%DRdΗõ4֠؂JH 𖔸(wI.n4I+ӓR$")ֹK>%~jW,Q,oMjָTgK~UIj )}a^mPI25H5Y~Oʃ~E*L% ~H!=-f-õU׮/:.KZ܂Uj@"o&v3 %fB9; PPڳ{ƅ?\tkԓ1^%9yͣd A9r% t^ h/Xb:Rֈo s -N'C6&iDJy|;cB))žO}w7ZwB|'nC\HkvhFi&Nڄk%@ LB>QT \ eWh?wv—JugG>_0wP;ٝ;؝;l&|isZgI7Th$45;$3~v(m<?7XmtƆ QPS\6X:ӄYpqaxhG4Α B9|ؕ DDHm/e[cվ 'kcLԎ _~6!=v>w}_1X5L<<.'TP2,QɡQR -Jz gG (@Q(`!v%ף5&G *((5 1}y͊fU}#%-(:Dr7$;IM`<7`33gV6lW>a99qGռ˦QiiuQqhZ1YEACV)V3u'zn; =-5S޷V&Ă<|gˆr@P=g>_s5w9Ҍ5Vg\ь% -+Dj\ȉ-n'.gC3)œV\=@ DOgV>c_uuT(Jf-\ù~.gC}8ԓ A(Ziݿ;J=α0inRNf^.ݜ5×{myjMS8tSA`IL#  oUc^6㬕aK׋Jvhڑ!E -t}T:_mc *;8.D~&dt3xIMUvIEW;"$BN /),Ωzkk?5.{W0j5oNN(bָ닠♗+y>5?*M8wfXi0J> -stream -x\Io$WQ:t|Eey  f4A#䘿q"Y dÐG}#kqNw"|\ 0y;ք?<_YHH=]Ry1+ɴ -d.x>|3c}w24˴{:WldF@D$܌ȹ~3fj9Uho[6em -7l6WvҀy2bY"Y~pLi]S,H"m5 ~0OB &3'4;s"bϴ zWS#JzBCrr^BhR֝p6&TPgZE5剕 u 2"jcT$lr2)PN*Up|\v&% I9Zv- T6L^6 -S)f7A;[CUWoV[[O&t[>'BORAŽ.mFbuBNtYp.:!꧕z -̸Otm9iCh7J4hDPxnI'n23+ -m(v WAjTLѲC\ Tq": L ba?J,ayH oWyަpyq>,%$"ɄB@&ic{ -Qq^R8]F_Q3G98erB(I0PJNN!;Hr"SnHC0+7L'Ji*A1U<: -UI) ^&PSdWιΊ9V>͡PuCȖMO~jil يFu &zP΅FqO 7s[LktWGns("DNqntVi#b8H E2}D} `J)9ǵn{9+"f>sv2ʝ$49v%0(qǖ -7R`smAX`7TH< -'#͈UMAI>lU&b=oN(-9.[bP4h5c^0ӑx[WS8bXyOr ItP]Y㜯U=\{2ˉx.G\I, eY/h{E皸=݊!Z- 2{C"D8F9qX4lU$24Pw8uªjJ)2[<UZ¬񈐺GaV"y$UG$J4IU8&W)ڴț;QҘyТE+ ynءtAa#5[;hBn&mh2_Ff‹C\v--J!i˓KLeùݩ ]R,dUHqLOnps qqzE? t_tm{Uf)ҍ0pzqkwSNə 8rlJFCVG4(2#1_;+Ob x@w@7tJxl `<$3CP>~Oc w-ײ˷<_2ii1gʉ>ГV'*5rsbxn/ABݒWK=W8B:rBFV%VE jk>}nd̼2ocy<259nLIt |(1Pu;d: I&X6:m%d~o-AI.xQ_&I)I J/oP8ɓji'&;Xqg$n ]DT="X#hw;?%moXEBLaK?h.|5tidI9^EF!=+XP&ĭKLi/ _Es0m\WMmpZc5<߫˱D>1Owx!`4-`3бaW |au^ f& q&n9zx#n>VMNN%7\VkF5|6!A;3:-f|F:PwuXۍgҊ{zc*s{dz^~:F ~OX58lF. *)*3#;JʤUGNTPI{&3:a T U -Uq}HûV G-` rܱܲr(4o67bgXy14PxuQ0v-CUiJ7VDGGgؔ|}T§+\^:"=uUI/P|}Ft!op(E7iJWBϨXs陋tG̽pZZ&$~P8''K.tΤ9^͆u"1+>9?,Po4o#p`N -endstream -endobj -159 0 obj -<< /Filter /FlateDecode /Length 4901 >> -stream -x\[~_1,^i "HC ǛH!fz=,uqE\~ O_~lE)wO䢅L0$|y|F0=^D -ǿ? - H5MO}}_-J&/d|}yqb志x ~^VTNi/?\I[/7x@D$/A -r$!o~ þ 0 w'|Ic hI`y~}z5?Z讙pgzry7u@bH9)%' -9ZI&12@xg)m6yl%c!Z[a--\!3rsfWL$09kb=ߕ,l=ԳQucާVf -^'t%`YZweϣY>fab -NHYQ(=DLB9k? #|hJ,k!ʵ6eP!̽l<(58)6 *SN:Xj4>?N&MH+sLr؁ck>:4s-S FʁIhĂظ ҇6&Y>LARL)bZNH:C:<l=^ȓyzdH9(}}Ȁ j-B4#!ovC s#[:ʿ[h,k!Mwv+l=(u$&Bz\ -R4y{K>4ԉت<: $jfﺻp`As~#z{i9ZȧΎ^O+= KlqA7;蜃4aC=t<>?Ѝ"X]Fá밆Spj$b?,$`Rz6"2rrD '<ߕZ&[:N6PK' Xz?4YbZ~Ǽ%q;LռBxWޝ$zCf2 -QfccY5 -mNن?_ *?T| !P$!VJ['\K%Ku ~%ovo釲 N=:_/Um"5C]#t%j`!IXv? HtQ~WdrOTaX7\d>CF]<>]U'X ^jIhŪ5"a7|?vݬB5ucJ_OS&u$y}{Ɖ&wb9cC16lx 3n"B=΂DO$K -(yB ~Ѧ_vsʟ^#3 j6ُ@Z(H`L[C#8.D0Iw -4AԄL!"昹קF0rȭJ^-S $B0h7JXU&e*sHrj=ndrc\+-#-LL_IeeFKapp@6svp#+HJ_WߔK9jTVHk.$b2m/e´Qڀ*9dG/od1 zafڅ8 eٛD$VZ~@Ps_GWy{-= -EzNY[9%:Y(#XW}FiN\,y #!Md(䓢A8Q͘*aVHz ARXQ*N3I)>q;7IJr7GK k=)2~ZNOvrsK,i.Ff7wO1-q馢2DotVMiaTѦAdw`LH4Fa Pr!:l -e4X:\ K'&;WvK:0K6ck +ɍF%isbit! RK{,cr#?.QA -!PENjt2h3N I..K@R9u `SI؜&`+w(Md!o_)9>K1Ș⯁`೓L& -_nJ QNgZwnnqyδK򺸗6eސW䚅 - ``]f!zSWsgYs!~UVAC iD9pfwKfy6a3-y!̻-h01Oģ󥥙AGl= mH”kY5T -(2!)oqXuqKh /˦v\7/T!U6\Hģz9Qл eUp:.:\?% Bkw$NEFbcbi2|UrW;ɶ.49HMQ "eqvO[1REIEUrǫ#&G0r}~ԉ}8j:וQ8FX7ƧzUS[L}N䅧[{W)K`w'de$z(Y^ű<,TEwL鹄!JءB~X'nBȦm>jҷ R"_ ǠXV !",Q@,'(߽!_ >Pn("Rծ5p:9v-'RF- -<̪-<חo}`qn -_!uo>7S8-P9ʔ9`8|9!9I*vvT/ -_&p T3#iQE^v,Ls0ٚn[`.#U\f?ZʮNhb::ˉ`]|62TU`KE;o\Ũ0o f {>$,__Hɨ|m.9\VDnB=Hf?'G[_Q%ѧ]& yTF5=KͽA-[r46Չ^J=8* [(ĵA9j}ڛ1Ay~SSIw; JW<-/TN6Fc旟Ւ>_u|uM%Zt51l>J@Z8P _elyU\`/("wBr!^;]ƍ4`#Z1*Ἇ[15ሿT1LetMe#(h^*G+_"5w& l~_RNi#U4hnT.R@KFG*)^tw&9Л7çeY9kV2 nMgVj [~r+Me'gGzhg'x=t<`JYl!w/dE !/x@fK\d4oUjr³*^jؕjr%Joښxls\/9uWqT=@3lI㷳U4wϰ,RO7p[knΜti1bal]2)9rv_Wk=Y-5 $Ck⭡5c|ԫ_ duK>'*A)^_NU mޝU SZdV^nr!ƌR]ahY(@uv\+1-] $Uv$מJoK;[IÿRcQQ*Fu,WpД%qޯeXob?CbpVA`xG,5E!tZ/5p+-$kj]BeprMM֔tMU_ S=󗤎.w  -&&l?f"2Gb!jhR\NK%g:goTM Oq ocŹ> -stream -xWˎ0Ys_cAaFtZuvv_uTP=y=6P}z]@~> -пe+b0`mk2:~>n@qOQ^߅׽=}ݚu%z%gC)[QbX V(\! 59e(}ZĻ5dC=aU`&*0LBh 'T57xioQI*2(ϵRjB{6B0x8Ắ\$wV)0IMPbujO e$WGDG o鐾;$FI)yiKgϓ%?6o}>2\kfMƲ+mVkvvV5)CVJw5:|/}BX (3*4 E0C mK:53TuSaӹ Rm.dh@OM7"Mv%M;Ѧ0K:' jy -d۵h,cGbkYRig,[+>tGå #|['{:Af[\ :"ۏb#B_b#M@Fa&ބ-&8?IҁAn;?GIur5aojɫ{C=ٻ~[ӯ -endstream -endobj -161 0 obj -<< /BaseFont /LMKJVR+PSTricksDotFont /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 273 0 R /Subtype /CIDFontType0 /Type /Font /W 274 0 R >> -endobj -162 0 obj -<< /Filter /FlateDecode /Length 370 >> -stream -x}R]k0}ϯ{(Ta"֮~PK٫MnH%0 sܣM ~u-dL)^%ҭW>QH/9RI\0sAJۓ3mmQ$pkgp9j!O0J%i -vgU=eVǓ..S` yB -h -)As6Uh7g9>FGqb"Sv#ǽvݍ5Z|> .$^T\߭Z/ -endstream -endobj -163 0 obj -<< /BaseFont /RDSPHF+LMRoman10-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 275 0 R /Subtype /CIDFontType0 /Type /Font /W 276 0 R >> -endobj -164 0 obj -<< /Filter /FlateDecode /Length 766 >> -stream -x]o0+J%cT !j-M  -? LӪUj'89>qӲ=6y}8mݽX[2z|omSl'EݩY4۪MwsVoe_Q8Xinavnf -7,>~=VM$0 ݃y];<C&*7U]V|Q,ʪHow c1tcמ}_k[ڶ$ݤp>!([1+(h՝?-m`E9BESa]v]om0ve'bI`>6@7( mQ4saM<4)kOqbAH 4e)IkKF`4ǺcHFS dIL>r -`+5v4؅#=a$FD#\JX]dh F H` 4 F Ht !p*#`4CO0$IT^HJ -F3BbSp©İU0R#Cb1881Np0$8(i8 5 {j8Hk+% Cd8H8C: H<HpP!zȐ4͔o2?\{d|2=Aώ`VSXA9X#S$w/ף>]P> /FontDescriptor 277 0 R /Subtype /CIDFontType0 /Type /Font /W 278 0 R >> -endobj -166 0 obj -<< /Filter /FlateDecode /Length 683 >> -stream -x}[k0F+mYR[B 7h5$e hrfvѪ?]eǩ1, Bmiڭ2 I>XO<-Ub?($O$(@1@bz-A3 p@+AxL߃$VJJ"XskN75 ds|' tD=yED EDTALf -5Sx`wQy5.?w܁jyy'3BጌXL1COl+m[a~UYsM]/kX6 -endstream -endobj -167 0 obj -<< /BaseFont /MYUXPV+LMRoman17-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 279 0 R /Subtype /CIDFontType0 /Type /Font /W 280 0 R >> -endobj -168 0 obj -<< /Filter /FlateDecode /Length 546 >> -stream -xKo0]8B 4 a"'cij uF?v.GJ&~jo4ZVy_JսJ) 5U~F݃Nި 9d;i!/J1s(?_wv_ -5>5eǢd&6zM[TRJ*![oℒ \(8d{AHDwg^jLvܨsfd'mܬoBDC_Wi% {k^Rq`#tnw*:jIB$畐mEz3mMl_'::aC(5QЍ(Rj"[tBq=Y\хW>F﻽tv6J~˺M} =<_ 7N9 -endstream -endobj -169 0 obj -<< /BaseFont /OABBKO+LMRoman12-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 281 0 R /Subtype /CIDFontType0 /Type /Font /W 282 0 R >> -endobj -170 0 obj -<< /Filter /FlateDecode /Length 661 >> -stream -xn0y -=$ql$RAk68QV[mV2/ccF޶j>t"}sJ/EF<^tukʭ]L=)J_4R\vl}x4Iӡ-{MO&aUB?u׍yfCETyst/ce6UGùqªho+kɄm]m+I=A;!Y*^fc7UeprEVs 岩t -Ď!di@xU;MwѹB4<$(IK@1)b*U@f -Z"c$GK uDXGU@ԏȓ'(}"'Y:ŻNg XK"X9֒<yA 9 %f30(hx[τj,A?3A5ahߩ;&(p^$&)p^$<8vEŒco%\vSbo8U~08TD<.> -endobj -172 0 obj -[ 625 833.3 777.8 0 0 750 722.2 0 722.2 0 722.2 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 277.8 500 833.3 0 0 0 0 388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 277.8 277.8 0 777.8 0 0 0 750 0 0 0 0 652.8 0 0 0 0 0 0 0 750 0 680.6 0 0 555.6 722.2 0 0 1027.8 0 0 0 277.8 0 277.8 500 0 0 500 0 0 555.6 444.4 0 500 0 277.8 0 0 277.8 833.3 555.6 500 0 0 391.7 0 0 555.6 0 0 527.8 0 444.4 0 0 0 500 500 ] -endobj -173 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /a /alpha /b /beta /c /comma /d /delta /e /epsilon1 /f /flat /g /gamma /greater /h /i /j /k /l /lambda /less /lscript /m /n /o /p /period /phi /pi /psi /q /r /rho /rho1 /s /sigma /slash /t /u /v /w /x /y /z) /Descent -194 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /FontFile 284 0 R /FontName /AMAITW+CMMI10 /ItalicAngle -14 /StemV 72 /Type /FontDescriptor /XHeight 431 >> -endobj -174 0 obj -[ 639.7 565.6 517.7 444.4 405.9 0 0 0 0 0 583.3 0 0 0 570 517 571.4 0 0 595.8 0 651.4 0 0 0 0 517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 777.8 500 777.8 0 0 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 0 0 0 0 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465 ] -endobj -175 0 obj -<< /Ascent 750 /CapHeight 683 /CharSet ( /L /O /approxequal /arrowdblboth /arrowdblleft /arrowdblright /arrowdown /arrowright /arrowup /asteriskmath /backslash /bar /braceleft /braceright /ceilingleft /ceilingright /element /emptyset /equivalence /existential /floorleft /floorright /greaterequal /infinity /intersection /lessequal /logicaland /logicalnot /logicalor /mapsto /minus /multiply /negationslash /periodcentered /perpendicular /propersubset /propersuperset /radical /reflexsubset /reflexsuperset /turnstileleft /union /universal) /Descent -194 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /FontFile 285 0 R /FontName /DDREJX+CMSY10 /ItalicAngle -14 /StemV 40 /Type /FontDescriptor /XHeight 431 >> -endobj -176 0 obj -[ 777.8 277.8 777.8 500 0 0 0 0 0 0 0 0 0 0 0 0 0 777.8 777.8 777.8 777.8 777.8 0 0 0 777.8 777.8 777.8 0 0 0 0 0 1000 500 500 0 0 0 0 1000 1000 0 0 1000 0 0 0 0 1000 666.7 0 0 0 0 0 555.6 555.6 666.7 500 0 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 689.7 0 0 796.1 0 0 0 0 0 0 0 0 0 0 0 666.7 666.7 0 666.7 666.7 611.1 0 444.4 444.4 444.4 444.4 500 500 0 0 277.8 0 0 0 500 0 833.3 ] -endobj -177 0 obj -<< /Differences [ 24 /cedilla /germandbls 34 /quotedblright 92 /quotedblleft 123 /endash 127 /dieresis ] /Type /Encoding >> -endobj -178 0 obj -<< /Ascent 0 /CapHeight 0 /CharSet ( /bullet /cedilla /dieresis /germandbls /quotedblleft /quotedblright) /Descent 0 /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /FontFile 286 0 R /FontName /JSWIMH+LMRoman10-Regular /ItalicAngle 0 /StemV 69 /Type /FontDescriptor /XHeight 431 >> -endobj -179 0 obj -[ 444.5 500 0 0 0 0 0 0 0 0 472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 ] -endobj -180 0 obj -<< /BaseFont /PIYJOA+LMRoman10-Italic /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 287 0 R /Subtype /CIDFontType0 /Type /Font /W 288 0 R >> -endobj -181 0 obj -<< /Filter /FlateDecode /Length 763 >> -stream -x}]o0+J%cT "1*մ]t A!\}nZWUĹLm(^9]pu5akҖxnbi;q.E]u7n.6Ҟf{̾WeJG\ϯOfpVת۸(ܨdTmv_5n0tu6p ^Wu2U'D(#֕_<;]& 賾 Omi۪~ן,0LDinkW֊a(h?eqgE9BESnUvU`N8w?_!VnQ|*~~h6 -$xJ=iPc,I<h@S D$DSP=4ǺcHFS dILށr -`$5v ]H0Fid@4"AAt`.t%!rAf F `J 4 F *H` 4F$1pF i$T0Jr4 FW0r <ȐxFQp]!b8 'p* -`HpPV Cb!faO ^t@tw`Hp\Б`Ht@> -endobj -183 0 obj -[ 663.6 0 0 0 0 0 0 0 0 0 767.4 0 0 0 0 0 0 0 0 0 0 0 531.3 0 0 0 0 0 0 0 0 0 0 295.1 0 0 0 0 0 0 413.2 413.2 0 826.4 0 0 0 0 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 0 0 0 826.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295.1 0 295.1 0 0 0 531.3 0 0 590.3 0 0 531.3 0 295.1 0 0 295.1 885.4 590.3 531.3 0 0 0 0 0 0 0 0 560.8 0 0 0 0 0 531.3 ] -endobj -184 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /A /B /C /E /F /G /I /J /K /L /M /N /O /Q /R /S /T /U /V /W /Z /a /alpha /b /beta /c /comma /d /delta /dotlessj /e /epsilon /epsilon1 /f /g /greater /h /i /j /k /l /less /lscript /m /n /o /omega /p /period /pi /r /rho1 /s /slash /t /u /v /w /x /y /z) /Descent -194 /Flags 4 /FontBBox [ -24 -250 1110 750 ] /FontFile 290 0 R /FontName /LTMODL+CMMI8 /ItalicAngle -14 /StemV 78 /Type /FontDescriptor /XHeight 431 >> -endobj -185 0 obj -[ 682.4 596.2 0 470.1 429.5 0 0 0 0 0 0 0 0 0 610.1 0 0 0 0 0 0 0 660.7 490.6 0 0 544.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295.1 295.1 826.4 531.3 826.4 0 0 795.8 801.4 757.3 0 778.7 672.4 827.9 0 460.7 580.4 896 722.6 1020.4 843.3 806.2 0 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 0 0 720 0 0 0 0 0 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 0 479.5 491.3 383.7 615.2 517.4 762.5 598.1 525.2 494.2 0 400.2 ] -endobj -186 0 obj -<< /Ascent 750 /CapHeight 683 /CharSet ( /O /arrowright /asteriskmath /backslash /bar /braceleft /braceright /ceilingleft /ceilingright /element /floorleft /floorright /greaterequal /infinity /lessequal /logicalnot /logicalor /minus /multiply /negationslash /prime /radical) /Descent -194 /Flags 4 /FontBBox [ -30 -955 1185 779 ] /FontFile 291 0 R /FontName /UCBASP+CMSY8 /ItalicAngle -14 /StemV 46 /Type /FontDescriptor /XHeight 431 >> -endobj -187 0 obj -[ 826.4 0 826.4 531.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 826.4 826.4 0 0 0 0 0 0 0 0 0 0 0 1062.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 288.2 1062.5 708.3 0 0 0 0 0 0 0 708.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 841.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 708.3 0 0 472.2 472.2 472.2 472.2 531.3 531.3 0 0 295.1 0 0 0 531.3 0 885.4 ] -endobj -188 0 obj -<< /Ascent 40 /CapHeight 0 /CharSet ( /braceex /bracehtipdownleft /bracehtipdownright /bracehtipupleft /bracehtipupright /braceleftBig /braceleftBigg /braceleftbig /braceleftbigg /braceleftbt /braceleftmid /bracelefttp /bracerightBig /bracerightbig /bracketleftbt /bracketleftex /bracketlefttp /bracketrightbt /bracketrightex /bracketrighttp /ceilingleftBig /ceilingleftbig /ceilingleftbigg /ceilingrightBig /ceilingrightbig /ceilingrightbigg /floorleftBig /floorleftbig /floorleftbigg /floorrightBig /floorrightbig /floorrightbigg /integraltext /logicalanddisplay /logicalandtext /parenleftBig /parenleftbig /parenleftbigg /parenleftbt /parenleftex /parenlefttp /parenrightBig /parenrightbig /parenrightbigg /parenrightbt /parenrightex /parenrighttp /productdisplay /summationdisplay /summationtext /uniondisplay /uniontext) /Descent -600 /Flags 4 /FontBBox [ -24 -2960 1454 772 ] /FontFile 292 0 R /FontName /COUOCP+CMEX10 /ItalicAngle 0 /StemV 47 /Type /FontDescriptor /XHeight 431 >> -endobj -189 0 obj -[ 458.3 458.3 0 0 472.2 472.2 472.2 472.2 583.3 583.3 0 0 0 0 0 0 597.2 597.2 736.1 736.1 0 0 583.3 583.3 583.3 583.3 750 0 0 0 0 0 0 0 0 0 0 0 0 0 805.6 0 0 0 0 0 0 0 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 0 888.9 0 888.9 0 888.9 0 875 875 875 875 0 0 0 0 0 0 0 0 0 0 0 0 1055.6 0 472.2 833.3 0 0 833.3 0 1444.4 1277.8 0 1111.1 0 0 1111.1 0 0 0 0 0 0 0 0 0 0 0 527.8 527.8 527.8 527.8 666.7 666.7 0 0 0 0 0 0 0 0 0 0 450 450 450 450 ] -endobj -190 0 obj -<< /BaseFont /UFQFJT+LMRomanSlant10-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 293 0 R /Subtype /CIDFontType0 /Type /Font /W 294 0 R >> -endobj -191 0 obj -<< /Filter /FlateDecode /Length 640 >> -stream -x[0F+$!sBH"Qu/]hא (  - ĉǞǃ/pZ[&}>y 8ߴ.uy^G[kݳ|X+SND;h䦏xCކTpfcۮ 9Ҕ#fNv)[g[ YY=-xn2:f=<melxFOMsΊ`2avoQ+ȪU_͹,AK5yu06ghS51kڀ_^yfv!hiIc1(c H"LAKD $˜!$B $)A -DOy @ -DDdF rOD $)ADdFȌhZz.3'@bH,KL"hM("EuQD0軄"KZK$DvItL%UP>,NKTI'2($"O($J -URBN"sZ)T63Nѹl>H2;zׇ]ԍ\޳'^ -endstream -endobj -192 0 obj -<< /Ascent 689 /CapHeight 689 /CharSet ( /dieresis /germandbls /quotedblleft /quotedblright) /Descent -194 /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /FontFile 295 0 R /FontName /JXJRLL+LMRoman10-Italic /ItalicAngle -14 /StemV 56 /Type /FontDescriptor /XHeight 431 >> -endobj -193 0 obj -[ 536.7 0 0 0 0 0 0 0 0 489.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511.1 ] -endobj -194 0 obj -<< /Ascent 686 /CapHeight 686 /CharSet ( /dieresis /endash) /Descent -194 /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /FontFile 296 0 R /FontName /WMLYBA+LMRoman10-Bold /ItalicAngle 0 /StemV 114 /Type /FontDescriptor /XHeight 444 >> -endobj -195 0 obj -[ 575 0 0 0 575 ] -endobj -196 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /A /B /C /H /L /N /P /U /V /a /b /comma /i /k /n /x) /Descent -194 /Flags 4 /FontBBox [ -31 -250 1026 750 ] /FontFile 297 0 R /FontName /RPFBFH+CMMI12 /ItalicAngle -14 /StemV 65 /Type /FontDescriptor /XHeight 431 >> -endobj -197 0 obj -[ 272 0 0 0 0 0 734 743.9 700.5 0 0 0 0 811.3 0 0 0 666.2 0 784.1 0 631.1 0 0 0 0 665 570.8 0 0 0 0 0 0 0 0 0 0 514 416.3 0 0 0 0 0 0 334 0 509.3 0 0 584.5 0 0 0 0 0 0 0 0 0 556.4 ] -endobj -198 0 obj -<< /Differences [ 136 /bullet ] /Type /Encoding >> -endobj -199 0 obj -[ 777.8 ] -endobj -200 0 obj -<< /A << /D (claim.6.16) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 238.785 377.836 263.076 389.679 ] /Subtype /Link /Type /Annot >> -endobj -201 0 obj -<< /A << /S /URI /Type /Action /URI (https://www.claymath.org/) >> /Border [ 0 0 1 ] /C [ 0 1 1 ] /H /I /Rect [ 268.201 253.11 358.71 264.921 ] /Subtype /Link /Type /Annot >> -endobj -202 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /five /four /one /seven /six /three /two /zero) /Descent -194 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /FontFile 298 0 R /FontName /IQSWSQ+CMR7 /ItalicAngle 0 /StemV 79 /Type /FontDescriptor /XHeight 431 >> -endobj -203 0 obj -[ 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 ] -endobj -204 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /f /k) /Descent -194 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /FontFile 299 0 R /FontName /ZEIBXI+CMMI7 /ItalicAngle -14 /StemV 81 /Type /FontDescriptor /XHeight 431 >> -endobj -205 0 obj -[ 557.1 0 0 0 0 607.3 ] -endobj -206 0 obj -<< /A << /D (claim.6.18) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 224.679 653.532 246.068 665.343 ] /Subtype /Link /Type /Annot >> -endobj -207 0 obj -<< /Ascent 464 /CapHeight 689 /CharSet ( /N /R /Z) /Descent 0 /Flags 4 /FontBBox [ -55 -420 2343 920 ] /FontFile 300 0 R /FontName /SVPXIN+MSBM10 /ItalicAngle 0 /StemV 40 /Type /FontDescriptor /XHeight 463 >> -endobj -208 0 obj -[ 722.2 0 0 0 722.2 0 0 0 0 0 0 0 666.7 ] -endobj -209 0 obj -<< /A << /D (claim.6.23) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 214.651 251.463 236.04 264.364 ] /Subtype /Link /Type /Annot >> -endobj -210 0 obj -<< /A << /D (figure.caption.115) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 483.186 605.289 499.12 617.34 ] /Subtype /Link /Type /Annot >> -endobj -211 0 obj -<< /A << /D (table.caption.116) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 294.961 160.883 349.077 172.814 ] /Subtype /Link /Type /Annot >> -endobj -212 0 obj -<< /Ascent 691 /CapHeight 691 /CharSet ( /M) /Descent -189 /Flags 4 /FontBBox [ -28 -257 1055 741 ] /FontFile 301 0 R /FontName /XEIKQG+EUFM10 /ItalicAngle 0 /StemV 76 /Type /FontDescriptor /XHeight 475 >> -endobj -213 0 obj -[ 1049.5 ] -endobj -214 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /eight /five /four /g /l /nine /o /one /parenleft /parenright /plus /seven /three /two /zero) /Descent -194 /Flags 4 /FontBBox [ -20 -250 1193 750 ] /FontFile 302 0 R /FontName /GYJDJU+CMR6 /ItalicAngle 0 /StemV 83 /Type /FontDescriptor /XHeight 431 >> -endobj -215 0 obj -[ 481.5 481.5 0 935.2 0 0 0 0 611.1 611.1 611.1 611.1 611.1 611.1 0 611.1 611.1 611.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611.1 0 0 0 0 351.8 0 0 611.1 ] -endobj -216 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /K /Q /T /a /alpha /c /h /i /j /k /l /lscript /m /n /o /p /r /s /t /u /x) /Descent -194 /Flags 4 /FontBBox [ 11 -250 1241 750 ] /FontFile 303 0 R /FontName /SYZLHO+CMMI6 /ItalicAngle -14 /StemV 85 /Type /FontDescriptor /XHeight 431 >> -endobj -217 0 obj -[ 804.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1025.7 0 0 0 0 0 966.5 0 0 731.1 0 0 0 0 0 0 0 0 0 0 0 518.5 674.9 0 559.1 0 0 0 0 725.7 445.6 511.6 660.9 401.6 1093.7 769.7 612.5 642.5 0 579.9 584.5 476.8 737.3 0 0 697.9 ] -endobj -218 0 obj -<< /Ascent 750 /CapHeight 683 /CharSet ( /asteriskmath /backslash /bar /floorleft /floorright /minus /prime) /Descent -194 /Flags 4 /FontBBox [ -4 -948 1329 786 ] /FontFile 304 0 R /FontName /LULPRI+CMSY6 /ItalicAngle -14 /StemV 52 /Type /FontDescriptor /XHeight 431 >> -endobj -219 0 obj -[ 963 0 0 638.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574.1 574.1 0 0 0 0 0 0 379.6 0 0 0 638.9 ] -endobj -220 0 obj -<< /BaseFont /LEJPUT+LMRoman8-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 305 0 R /Subtype /CIDFontType0 /Type /Font /W 306 0 R >> -endobj -221 0 obj -<< /Filter /FlateDecode /Length 464 >> -stream -x}K0| -){`1 D(IW{Z -62pȷ1R ďLwNSf^6L֊ 3iГZWRƹ:p_.6Wy _^m`!4(Kl͌Hdۯvo_1[ $qcLqښ-bk2S:FY\:Z9ʑ)AB> -endobj -223 0 obj -[ 531.3 ] -endobj -224 0 obj -<< /A << /D (claim.6.13) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 322.189 611.627 343.578 624.529 ] /Subtype /Link /Type /Annot >> -endobj -225 0 obj -<< /Differences [ 168 /dieresis 223 /germandbls ] /Type /Encoding >> -endobj -226 0 obj -<< /Ascent 722 /CapHeight 722 /CharSet ( /dieresis /germandbls) /Descent -217 /Flags 4 /FontBBox [ -173 -307 1003 949 ] /FontFile 308 0 R /FontName /UHPFJC+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /Type /FontDescriptor /XHeight 532 >> -endobj -227 0 obj -[ 333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611 ] -endobj -228 0 obj -<< /Ascent 689 /CapHeight 689 /CharSet ( /dieresis) /Descent -194 /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /FontFile 309 0 R /FontName /IAIDHB+LMRomanSlant10-Regular /ItalicAngle -9 /StemV 89 /Type /FontDescriptor /XHeight 431 >> -endobj -229 0 obj -[ 500 ] -endobj -230 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /eight /equal /five /four /one /parenleft /parenright /six /three /two /zero) /Descent -194 /Flags 4 /FontBBox [ -34 -251 988 750 ] /FontFile 310 0 R /FontName /HCHTZC+CMR12 /ItalicAngle 0 /StemV 65 /Type /FontDescriptor /XHeight 431 >> -endobj -231 0 obj -[ 380.8 380.8 0 0 0 0 0 0 489.6 489.6 489.6 489.6 489.6 489.6 489.6 0 489.6 0 0 0 0 761.6 ] -endobj -232 0 obj -<< /A << /D (cite.ImpagliazzoPZ01) /S /GoTo >> /Border [ 0 0 1 ] /C [ 0 1 0 ] /H /I /Rect [ 401.328 707.255 432.262 716.939 ] /Subtype /Link /Type /Annot >> -endobj -233 0 obj -<< /R7 311 0 R >> -endobj -234 0 obj -<< /R7 312 0 R >> -endobj -235 0 obj -<< /BaseFont /GPXIKJ+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 313 0 R /LastChar 56 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 500 500 500 500 ] >> -endobj -236 0 obj -<< /R7 314 0 R >> -endobj -237 0 obj -<< /BaseFont /YGWPZE+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 315 0 R /LastChar 52 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 ] >> -endobj -238 0 obj -<< /R7 316 0 R >> -endobj -239 0 obj -<< /BaseFont /YGWPZE+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 317 0 R /LastChar 52 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 ] >> -endobj -240 0 obj -<< /R7 318 0 R >> -endobj -241 0 obj -<< /BaseFont /YGWPZE+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 319 0 R /LastChar 52 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 ] >> -endobj -242 0 obj -<< /R7 320 0 R >> -endobj -243 0 obj -<< /BaseFont /YGWPZE+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 321 0 R /LastChar 52 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 ] >> -endobj -244 0 obj -<< /R7 322 0 R >> -endobj -245 0 obj -<< /BaseFont /KDAAFQ+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 323 0 R /LastChar 53 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 500 ] >> -endobj -246 0 obj -<< /BaseFont /KDAAFQ+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 324 0 R /LastChar 53 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 500 ] >> -endobj -247 0 obj -<< /R7 325 0 R >> -endobj -248 0 obj -<< /BaseFont /VNTYDY+Times-Roman /Encoding /WinAnsiEncoding /FirstChar 48 /FontDescriptor 326 0 R /LastChar 57 /Subtype /Type1 /Type /Font /Widths [ 500 500 500 500 500 500 500 500 500 500 ] >> -endobj -249 0 obj -<< /BaseFont /ABLKJA+LMRoman10-BoldItalic /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 327 0 R /Subtype /CIDFontType0 /Type /Font /W 328 0 R >> -endobj -250 0 obj -<< /Filter /FlateDecode /Length 553 >> -stream -xK@5 ^{ d_ 0ą~T!}{rmf9st%u&US^j 1FG56]\VÝJeyS%R6ӻ-~ܧmS9|(Ur]2SF3PW|d=\}bzޙYl6plvK8DU{Y+tT89mUQ^;A]%OlzC]LZN2AG^yRfڊ\h5\oyU|-J -y"g)o+uHoqƏ?ʏӍjy襆b#,.@ 2PKBRX = -!="-@-Abγ EPo@NDJ,a,b"c^b uTk%.! ?ӒU t&ЩRL~Kֳ>Ȱ:LqSߵϻP^N]s!IgygۦU1}q@U -endstream -endobj -251 0 obj -<< /BaseFont /XYMUCW+LMMono10-Italic /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 329 0 R /Subtype /CIDFontType0 /Type /Font /W 330 0 R >> -endobj -252 0 obj -<< /Filter /FlateDecode /Length 600 >> -stream -x}n0y -R8 -!A iiv68Q'TnjgxuNjCqٛnK0[`0WMu>צ7cl5_+.n;4..n{{#~_+SE<\uSږ:׏Y#md>OݴeeXt9,LUgW^H")NuŬ(g'wxsm;}^Clfm\`)͑ oK.K]x0Bld۟Y}UXk]ф#kY9ܼ*t[rQc>aLm/vS:M]E3$xE5`b -VBSLEA"7O)~3RcKWRL]멿',dr9 -endstream -endobj -253 0 obj -<< /BaseFont /UUWBBG+LMRomanCaps10-Oblique /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 331 0 R /Subtype /CIDFontType0 /Type /Font /W 332 0 R >> -endobj -254 0 obj -<< /Filter /FlateDecode /Length 524 >> -stream -x]o0+ $zTLHkn E"N lN+MROWnjgYɟsꛜ%hY}I{%$}boMctܨ_zICԿt.g鿿X,^vU4ۀݓM.:?aB- 9Jɴ*́[ofBMΎ^2Y#9uMvZlj&FRS3Tq/I}{JbFj7mL<\kb畤rj2u&o 'Hɿt S1H1.,H,( )4GЦ T֠iQ  W%r5A3n)\\G( h@)ȝt8/h XfbB~ -LA L;dG#t᠀/]Gnxc`܈jFUWɲÿ/G6 -endstream -endobj -255 0 obj -<< /Ascent 694 /CapHeight 683 /CharSet ( /V /a /bracketleft /bracketright /e /eight /equal /five /four /nine /one /parenleft /parenright /plus /r /seven /six /t /three /two /zero) /Descent -194 /Flags 4 /FontBBox [ -39 -250 1036 750 ] /FontFile 333 0 R /FontName /GTLTCP+CMR9 /ItalicAngle 0 /StemV 74 /Type /FontDescriptor /XHeight 431 >> -endobj -256 0 obj -[ 399.7 399.7 0 799.4 0 0 0 0 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 0 0 0 799.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 770.7 0 0 0 0 285.5 0 285.5 0 0 0 513.9 0 0 0 457.2 0 0 0 0 0 0 0 0 0 0 0 0 402 0 399.7 ] -endobj -257 0 obj -<< /BaseFont /QXMCYO+LMRoman12-Italic /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 334 0 R /Subtype /CIDFontType0 /Type /Font /W 335 0 R >> -endobj -258 0 obj -<< /Filter /FlateDecode /Length 530 >> -stream -x}O@9d$&q hT2{ NHo:3+(|UPq.D}"7xlO]}k rm8Ѫ.nHuqlɲR,7ACԿt)WGp|l_;v_W|7kY\gȔ+kʼgιa-EZWzΙ.d\JVI7x>e[2EV*ڙdĮo'gkU4W0$ tVjGoyElτRh_9{C75yAm./xJ/#tk0wj#o8zP}h>(fi-%6mxF! 4Yd " D)>-@kBM!Cm$p[Rb/kM,6iqB -endstream -endobj -259 0 obj -<< /BaseFont /TRFEOG+LMMonoLt10-Bold /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 336 0 R /Subtype /CIDFontType0 /Type /Font /W 337 0 R >> -endobj -260 0 obj -<< /Filter /FlateDecode /Length 543 >> -stream -x}[o0+HCss -EB*W6Qk8TˌϜ ~|lñ -'6kSR8]`0z!սI}}e.ԱrTUh<_%Y&tWv;mmJu',CnlL2'򋚶EOs`T_l{m0ٰ7}lOv(f*;O9[e:pcmܜ`n$5:kѤlu}&k(Q6y_ mKiUwn5q:Q02#-̫HoqS#$_Ө&F4*M P#Ơd 92͑%b3P9k>;J kzJ'P/E3b0%g)zO .@^32 =du14www{zaS0ܫx*gU> /FontDescriptor 338 0 R /Subtype /CIDFontType0 /Type /Font /W 339 0 R >> -endobj -262 0 obj -<< /Filter /FlateDecode /Length 495 >> -stream -x}Oo0=8 $BEZZk6q"'9sZi 3of<GϜ:e7+IoDDm^^UZ6\nW[YO:y+['҂J1~j2S@)թho:DA2,x?R,tx#璍zߗB -嬲1!E:yGe{RʛH\4[O] R:ƽ4e.[VBGh_ӽ&Z`85u䕼Ol?GRP/@?>ɔ),u! 5.@(M@r)h rU8-@/AN@k'L-M6 dl)b -AM_ ]uӖb\8/F tUCC 8/$2 e\M;UbuUפe o{+ -endstream -endobj -263 0 obj -<< /BaseFont /NEVVBE+LMMono10-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 340 0 R /Subtype /CIDFontType0 /Type /Font /W 341 0 R >> -endobj -264 0 obj -<< /Filter /FlateDecode /Length 692 >> -stream -x}K@W>dךL6 I~'sNuşsg9&~(D>&Zɹ^uqo|]]4s*7+~ZϖǺ$~uapŸoNExݵ]YW"M`Y88UER Ů eXKÆ܂m - k8aÕM gX7=?2 -endstream -endobj -265 0 obj -<< /A << /D (claim.5.4) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 209.455 262.026 225.39 271.829 ] /Subtype /Link /Type /Annot >> -endobj -266 0 obj -<< /Differences [ 25 /germandbls 127 /dieresis ] /Type /Encoding >> -endobj -267 0 obj -<< /Ascent 599 /CapHeight 599 /CharSet ( /dieresis /germandbls) /Descent -222 /Flags 4 /FontBBox [ -451 -316 731 1016 ] /FontFile 342 0 R /FontName /LRAWPD+LMMono10-Regular /ItalicAngle 0 /StemV 69 /Type /FontDescriptor /XHeight 431 >> -endobj -268 0 obj -[ 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 ] -endobj -269 0 obj -<< /A << /D (claim.2.20) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 163.244 535.884 184.633 547.695 ] /Subtype /Link /Type /Annot >> -endobj -270 0 obj -<< /BaseFont /NGUHEQ+LMRomanCaps10-Regular /CIDSystemInfo << /Ordering (Identity) /Registry (Adobe) /Supplement 0 >> /FontDescriptor 343 0 R /Subtype /CIDFontType0 /Type /Font /W 344 0 R >> -endobj -271 0 obj -<< /Filter /FlateDecode /Length 497 >> -stream -x0y -qB+hhkj8xgW*T$P>f!,GJ5/UL&5~ @'r*?A%\H}ݗ_o/TY]L=\kCjK&&K!N'N6ďRZ큻 I4,99sqB'k39[|u=[unłDz}sU R]Qx -AQgo涫j VowQx@1Z獀8J] XqЂ,6S_qU3I+mQDž$q&HK͐6HfCʑ|CZɫ QBOH9 ;%c|?BZ;b QFRG0DN"G 'O d8c<SbS7n^f{{!oz۴}+2^71R -endstream -endobj -272 0 obj -<< /A << /D (figure.caption.120) /S /GoTo >> /Border [ 0 0 1 ] /C [ 1 0 0 ] /H /I /Rect [ 252.197 691.309 268.131 701.352 ] /Subtype /Link /Type /Annot >> -endobj -273 0 obj -<< /Ascent 743 /CIDSet 345 0 R /CapHeight 550 /Descent -743 /Flags 4 /FontBBox [ -572 -743 572 743 ] /FontFile3 346 0 R /FontName /LMKJVR+PSTricksDotFont /ItalicAngle 0 /StemV 0 /Type /FontDescriptor /XHeight 500 >> -endobj -274 0 obj -[ 18 [ 0 0 ] 32 [ 0 ] ] -endobj -275 0 obj -<< /Ascent 1127 /CIDSet 347 0 R /CapHeight 683 /Descent -290 /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /FontFile3 348 0 R /FontName /RDSPHF+LMRoman10-Regular /ItalicAngle 0 /StemV 93 /Type /FontDescriptor /XHeight 431 >> -endobj -276 0 obj -[ 27 [ 750 500 778 ] 32 [ 500 ] 34 [ 708 556 ] 40 [ 278 278 722 444 278 278 764 556 ] 49 [ 681 444 500 778 278 653 306 500 500 785 500 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 833 778 500 500 681 556 389 389 ] 88 [ 278 778 778 528 472 ] 94 [ 278 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 159 [ 750 500 ] 250 [ 681 444 ] 317 [ 500 ] 337 [ 278 ] 442 [ 500 ] 578 [ 750 556 ] ] -endobj -277 0 obj -<< /Ascent 1133 /CIDSet 349 0 R /CapHeight 686 /Descent -295 /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /FontFile3 350 0 R /FontName /HLFSWS+LMRoman10-Bold /ItalicAngle 0 /StemV 106 /Type /FontDescriptor /XHeight 444 >> -endobj -278 0 obj -[ 27 [ 869 559 ] 34 [ 818 639 ] 40 [ 319 319 831 511 319 319 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 904 575 ] 62 [ 900 639 383 436 319 594 351 901 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 88 [ 319 ] 90 [ 864 607 543 ] 95 [ 863 474 639 454 ] 100 [ 575 575 ] 104 [ 800 447 575 575 885 639 ] 111 [ 869 607 1189 831 ] 116 [ 607 ] 118 [ 607 703 511 575 671 958 ] 125 [ 639 ] 160 [ 559 ] 442 [ 575 ] 579 [ 639 ] ] -endobj -279 0 obj -<< /Ascent 1125 /CIDSet 351 0 R /CapHeight 683 /Descent -286 /Flags 4 /FontBBox [ -400 -286 1338 1125 ] /FontFile3 352 0 R /FontName /MYUXPV+LMRoman17-Regular /ItalicAngle 0 /StemV 83 /Type /FontDescriptor /XHeight 431 >> -endobj -280 0 obj -[ 27 [ 693 459 ] 35 [ 511 ] 43 [ 406 ] 47 [ 511 ] 49 [ 628 406 ] 55 [ 276 459 459 726 459 ] 63 [ 511 ] 65 [ 328 250 ] 69 [ 719 485 576 250 ] 74 [ 850 772 ] 77 [ 511 ] 81 [ 459 459 ] 84 [ 511 ] 96 [ 354 511 359 ] 100 [ 459 459 ] 105 [ 354 459 459 693 511 ] 112 [ 485 ] 116 [ 485 ] 118 [ 485 ] 120 [ 406 ] 160 [ 459 ] 579 [ 511 ] ] -endobj -281 0 obj -<< /Ascent 1127 /CIDSet 353 0 R /CapHeight 683 /Descent -280 /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /FontFile3 354 0 R /FontName /OABBKO+LMRoman12-Regular /ItalicAngle 0 /StemV 91 /Type /FontDescriptor /XHeight 431 >> -endobj -282 0 obj -[ 27 [ 734 490 ] 34 [ 693 544 ] 42 [ 707 435 272 ] 46 [ 748 544 ] 49 [ 666 435 490 ] 53 [ 272 639 299 490 490 768 490 ] 62 [ 734 544 326 353 272 503 ] 69 [ 761 517 612 272 ] 74 [ 897 816 ] 77 [ 544 490 ] 81 [ 490 490 666 544 381 381 ] 88 [ 272 ] 90 [ 762 517 462 ] 95 [ 721 381 544 386 ] 100 [ 490 490 ] 104 [ 707 381 490 490 734 544 ] 111 [ 734 517 1006 707 ] 116 [ 517 ] 118 [ 517 598 435 490 571 816 ] 125 [ 544 ] 160 [ 490 ] 578 [ 734 544 ] ] -endobj -283 0 obj -<< /Filter /FlateDecode /Length1 2268 /Length2 16678 /Length3 0 /Length 18053 >> -stream -xT%z gkٶmnɶkdM1ٞ\mOdso]U}9* P΅ *`bbe`bb#'WrG GtrC&fa'ooq09x9y,LL5wY2v@g8rQ{O'+ K420sss:Y],MmV@ Ag`l`d!@MprNn@3 -ƶ1,ڛ;+S󇇫 *-Pte,?030?`ne(J1x04q7v3160rc29:Y9838[A0]3ڹ8Q힌M$\]b1#ؙ8Y@GԒj??z;;?H}́༝݀'WfV.??@<L `OefogeTU:{7= ǒq~|07*[E3pyP7.T;/#߂$\mlTSQZxc]]>B8&SY_yYF+g +_;)|*;[?tgAq՟*=oJq;S{?`d 1fP3ǟ `dwp|;1Qv?3Q hb (7ƶRs+-s}HAoY -`Tq|+eb0X>%_urq5F+'cg9oG.S+'SW[s]G6? G^3+#?(ԀWQlmq[+G]_V r?FSGx;W[?}}5d?`cAV~ hfbzhk8_/gK' _3ٿ:_?z/ǿGo1/_sɦNp8?O@))ou]HC0;$,f5St2uMfЦӝpHڮ8խ -ѫIkDgxv)'?`Մ|^}4?vː:r!)=Hz(_[W>ᐅ)Q ,#3ɚ&r'A@EN$O {Z䭳qkRŹ Gu|[(Ekѻhmpɣ(.u%J%ʮr^n2 om/{Y3"FMaw@.s;^sTwI@Ks }XjHnfA| wfqKȵU Tr M4: -݊[2 q(wЕ.N!d?89{WߪKO6 -&ݩ8FaTyyʼuƹr˭*L2O"!"6iH OGs*8e(a; -_U"#_8C"Trz%waMHD܈mc5v'z_ʥ)ⳬ$VԏS qRש@<`԰sY WOU!k qfbxlzۦJmnOAf*:ESŦ\)|DimJIryNTfDƥߛ*;iTT<^Mc(Ģ;{Rj8O{2d*<__!3SL;_/ۋǥ̍ˍܐͪ_0#8F7)'㹐]7\J|l7.?@Vy9[[|d]>S RU7={MgJHxvFax/ݖ_{Q_1x`˴IPq-/(T9ͱsqFŠ6-˰&}kKd810 #;HBndR^f'Oek5!=ͷvb}ݓIc?.-r\(vlvޙxAk'ڒQ8xSHŃˑXlzoY1zX_3b^<{Gǩ m}M@᫠QO#3RLٰ'}P@4[Ύ]ڝd&[롔2ajCRa{O .f:oiXC1L"zl; Ԭ9V]XefBδIdz /q3?˦\I%PCZUD\4[`>ˆ{mI N*& -$ $[e>S՞%𛿬$b^ŅDx ̱8Xq6ݦp'0 ks&u* ibPkbiLxaY144x:&gQ:*OB-rH$d%L4PXTfTŬϧ̏m>)3cՎ*w5ZJƋ ;f!y@W,e{tYY_ %/M&-gF(dmg E6VBOvDiP0[XƌM>ab$~0EO>S, +I6n(ЀT|+('õnGκ kUyO]%$ZSKY_lnI:1^/-^$:xQ"*~Zkd*Bafsf5.WWeK:ir8\a4O 8?R7o1+HISKܮ{~28pGaصhV2? ޗrL}V2%[ ;[sc?3#}UB</n;rkmlќlϝot6iGo/3M=aEELa4uN/LB-j&2(!P[m|Z2FRh' "')뱱1ZgB滵1GE}8(dƪ#ײj(|qxvK{.6r̉Z T8Ǚ@)/fQU%~?B*UR;OCii56h4-[O Ku]D)JÌL|%2|l=R7y#▇TF -G ]J)j)ȞJ~6V{%X͸!=]42엍&h ɖk[$6)yD9xBHSwX˕K6X{so׎|ᙼ8Y#؃7j QyJ~m`1s2x1Rf2hk\<Ԙ!Z8 zpD rf$tiLv4HH56:e^7QɣQ-\gDrFR>r6AWRPՎl{ؘuc 㽯q |hZO-S`O4`wlZ,}qlR&3N92n8N oҥJ9I~y1_[ZwyAY4gZb-Ӓam➩~UUNm# UDe#ڊvT}2:U\5Orl%燂 ?)N%4$h11*% - [!F@- W>>Vz!Qe/ XSiZw /揼m4d}Rڴ}KD"Նͱ_ -|y!#If;dfI'r$q_  pya{|UbzARs?^(YMx=H[[|:[%oqfS|?$pЯm޹mzgB=̛ES(D*+}-57{GPLhIPZUw;_%uT`'yXe*R*4=a+|B8Ɣ({xmH`W%knj\Ӓۛ6Q,aGoL0zOVBЗI!dix=õ; gbni&_F=% V=Ls[Qjp.'wK 1 9-3kҢ֚5pKh!g{DV8YpI]*/`Ok/g ߂U"yێ>a֋؅KUx~zLzL*kL쀗Gd1.k CH7q>:Y"PПqqpi/! k|Z<A+w[aDTٹ{AcʳI2-~uiZ!DCU>QcDF'+;Uk{Q`9 -I1[@9l_#3epi&eq5T&%)0֞f/X8{jϴ4G$FP D䐡_)[l?/"]6+vp!z:&vJPPտW2= hTt(9()D+j*r3 nW -. VcW6󒻬/3BҶh֋|%\eQԤ3/} QSXj7iΤnT%()kpBk_ OvO_u."6JMr,zP2+ER -Iˍwoĉ⵴M(ڃBc3h^%2d-/N˷^%: a_®c&̞[s*(Ნ2‹ Z~dfIKv:tF4L(I8 . Bh@Ҷ4ʄ\oBŔQc!R!3t.I;9o3=6O'%PKcEb-cCV 퉁H zx'={߹|ԝKA>a-HŜ~(<tvRbmhwtk 8.&$U22F[WN -GY%R{nd+G(Ұ߉ɂ*wmpd~~pKw7~2z-޷PM<;: (,%Xofd0&q\nSs+g/@f_ڳK0t6zmX{[ |`1|T?$dfj9p8qJj2HV_ 5m، /=wC2r Jdyk摰x7ԌvkKMMAYHA:vn杜лMȩSr)e8(qGb|}\(ʅl e*V25{ )\\ W BA XK6)|{ T*B&)!KK]#xsk ,5 kz -|gA5]Zouzb=O͈c=dNc,,|LۉWz5<7r|k t(@C_Y,ƞFW/7+( _[H{J7!Cx$9HK}Bh'eRpa qbOb#fv| Ԧ)&b~mž5ycNPn lMǺǐsL8d&[&^u IηLdCD8 -#ng q3lmppUN"tڮY CĵJVIEd}d#5sa-=oe&`FpS-;7)y>Dڴ_VλsXԔ"Bjcߌv]7Zpӌr6s7~ *xٱD'BJl\ϴGǬ{:V9k$^@o'{yV$ב*LP -|{n P8ATO񪁏 -~,]9 @`.4JОS 2zY[ez4-:( -r8ɊzO1Y -(,g'z^GIj3e -R~a[ͨ \vmМ?'1^5SvƎ͹LP7n^i҆6$Uy”ϤmdSҚU#hKoaۤYE04QMhI/>HoBCfmC{1$G.Fih,R:9'[q~G%~^Ö5֭^GEbɚ!GA7,|h#-ƚ߄#?%m#WAMaQvUR|]]qw!d-cY wEb׼J_.] Ià+B>VdE!{%j:0-\Cʾs,lcv N׵q%ʊg[#>Ju67XxR|,{l*d Vd2EEnQAL"I]e SR=Aۨf^, (? -,%EuKU퀚8𥎈:דA\YZl( kveQsfN7 =;-3pBo4yr hE;7E|HO@4U-5i4%Լʾ6CXb&.Bݱlw*[iaYP;dvLƪUFJbf`؝6gՊtKޘjTCD7T0HTzÙS5VX/jL(ca&PQȿdP jUFï#4 jD$3|Pku꤃MNgG hABn,_W>3eM-7x0k7m,EO&)cVڤ~d 馏sA7):S*T*Z'Q8,J -Gg!bRGgJ?p}:G@⤍ l=zLKł!o9јלc_a9_eq־| HNymu'<'&1o;jұQSf_o#M/+v"?"4yG~%-11WFv` o2/v.[WIkg*5cxB@Ccgn U+T{$ w)]SHIn>7d].rguu׫ےЛ Mp[~U}o6*-/ev)ʯiS5Uru*.M<1VP'ux@w;,S'i};l]ǒ([blx*5j!i 502bH\Wƛ\6Le5:Ui$ε&J6E)GE۪$'D[o]%VËNr$5&s+$J&YrR> :8.iw;&{/}lfdGuXV$V[i[7xƻV:-6~R!RLΖTX8JV[flQoH7жjR8g~u]ϳK/?wfw>=ig -q-uxL4i1.LxaALgi<}%s̏ `}MLmz.q<$'39q=`HXY[TfJlB灟2s;lJ=;> -^P; -%߳OW6P勑ij0Urno=Kk`tj 4LI{p'&:4%U2͎WH2BNі)? -Xwb]9a -@Vԙe)E`Eп{́jWpg%Ja7&5"zAF2ohYh,ȕr(N+iI4C -3Upr<m4B-- r3x7ed $=t]n\OEgڕN)Gh;$w@Df/94Y wgf,~+G%H>g֖n^,8UWC-2 -;)L `lj148ḣpԠ+%IByruY*ԾMZ)rr5R'W~V&M,!+B7QJ%8L1ۡ3[Ԑ2WTmK2'ԃH<5(Ky8wіi6ƫp E~_XBѴM F+Jps,TccfV@lcJ w'~4^߅-&&w(z-_ R7ۼ 3}VL^2۴W'=R]}5%?ɒTXZp'[#OǸ@)x!%VgP![Xc].~Pt?r+mx.p~\,#wia-r鲿G\l\&qoOpN./^ՎuQfu y|R||v^cXΟuJ} AZ“ C.E`Suaiv=#U˧1n^gbv5AV9©k -'rq[H~-~Zd ?XQ -):[qXkÏ9ŊB%h_@(Efd2Q%J}o+E|S4 Bv,4FAHM%!0KM>Ә($ +@ubA/P~d} PW dQfB>WE5X>W EŐSEykbȚ7%([Z#t̟M;yO\S9 tlǖCVIJHOuQTA&BX9BO^-54\@ShUt QkI$ rdG#PouN{.d 񰮎:|w-,ܦoN>ܟ E]eVep&~RClIZBc?A<7>ʉ`Y4 1MQ+~1O]*f|͎0ǽYIpab*|G)? YbmPֆ=QQn&qSbfƥ-O.~=S7<r!6œʘ܈W*3j 2o¯쑝A5h N1 ,7'_v +dZe+Mʼnf!EZjv v(rKX0ܕRGނ]S5Jd-=݀0) 6@|Xk}T -S.p&?}8M\j$y'+¢WQ{2V4&^XI Z1 l<+ -grvjܔt?e.ūH,Y錨9dENcQ}e=-@hXFZFݣ!BcFf0]{b,~il="Dl?yA%mI.Ey2MiFچRC~*~LjkmOŚ@fLldɮlЋ`.7/d͸>íQ9SmW@oǤ]ƶ?#b`z|׽Ij^c:Y -^21g(Sp -("KpT7K_` eޜɂ3[;@Ť=tNġΠ+FԡaPe/=\?Ri -7\33%@B#D[pDGb3\Q=}yL_ rE4>i2g &ۭ5^Ч(o/a!K){ăq;Td4aߥf//6OR[90(ӌ7MJVfl^h%f jq-9޻ƒB^vԓ[˜nPQk2 :`$Uq9y!x}b})l ||2iS)-ꯗ8(f5z z&F[~*o 0b&jZ -8[^>6fd\ߝ4 lCfe}+a.X+&}Xgh7']O۷]K3^xV,Mo8s7H̅+9)8V xbK\'H>zv?  O^tzlj@6Xph. -Kz=΁3&muWvY3oܷ1|Jj7ʦw3@ -{G2 wu>JOʮQut`_;t8}i5w}'AwJ\JjnyP[ln6XUH=wlBy3ʐ -c9Zڑ4a";餻9ɨ!sxOT1fuT3h} kU4E~d0ݡJ/ g0opb]?$>a (VUEA`ӡBP 0ﻳqΙaF2Mg0}2s-L~ wD[ˎl3o!3|cTqXo0(N%> 2O8hlYt_jLY7?q5e2J~nԚ]K]֤VՓW8TdӀ8+%"C&ݨUxLD.y#p}Irٜ\zF>|pU^W9O J$" TǨ)"4LT%t|#ilW0gh}'"PZUj~dHpkS >в:px/jF[m~ā2m "=a0ƪ^S%VX//gf(X;653MTvzpr\ءt LCu!~2#MjٍkP3%WeMWD65:xNe^)I~RkU7BP0\) - 9^0?l"mJўy׹'*8BiUw`D͟P#O6xʡ[!BFm#oB8eȣ$_϶svm/~Gyy+9x1K =b=2.ZGJ <#O=&wc-Pvsv8أ) xq!Ek)*r|-+=C}1︮һEz l.vQ)Ϋ=NJ|pvc;U8w -QrNAt~D - "A*ugCT"P6Xqxwl{@#%`kˍ2d=*3vm{R~3Qv(k8k&. ȣ GysƲD/Bԃxҿ;CMF -\.)j2oTf dD`nMk467Y_G2"Tha(qE -oeSh cEw|]b?,:zh^a))ϵ؈Lq𗾔t0짃>>Mf=(*|?HD8=["Nَ19̳mKHd6zMO P:U)1Pgjh@)$P@x3M{wRWl~kzź/5~Ucf7 )4^34TMZ۟)EU1Ddgod×3vYS$H m5n5I=78]];0DZLǹ3s8ٯxOUy`7ord"}3* c4)-Ġ戱L4|<u`"Q >OFw/x+];46:L&/^5b}pȅ{V\ -{qh{G]t_7Y׭̝Iu -(ɟŖS7WbN, Qfӽ׆hp֖쟽w{pV&Ʒ. >_ >_t'1՟Q*jTyH sZ]p~ 9JQ b/UXK8,J=1DF%%l_邳׌-})I_H-5'ע_k⋤TCMVOKUWUzИ -endstream -endobj -284 0 obj -<< /Filter /FlateDecode /Length1 2490 /Length2 20757 /Length3 0 /Length 22187 >> -stream -xPLӆ ; . ,-@p'{H@p.]y%y: -{t=KT5LLl̬ %%96V++3++;"&uD*m / g+xMl`wqظxYY쬬|1tpHJy{ "3|>hl||< 3{|-@ tV,,&v.Ζt@tv~ P6;5fD*_&@xdwٛrGewqll o߁@899{- [ @EZӕ`boon51# -0g\̜A.. 9.>I3 \w/_don; s7G-{PN6%?k@W+//zY>@&ep~> p@? puv0L {?@1A=VpXms,bJbr: N&v;+q[dϪ (go},O&n  Pv74@YX\5(IO/};׿- -%_S&Z hrr&!7:'3+A. O*_a :~?<`/V=3m@){33 0qv6B>l5zf{W Essҿ"x,",R%Vb!v!NkQC`-E(!/XkQC`-Eh!?֢ZtXky_ky~&%bbhg>X)mpho?cu|$S:a{lZ9aak>h7o+a+Tqgz,G -_υU9X'9G} -p۷106@n;_RUDѬi?c$vm\B, -g+>$$B%6"}5}u09'.Zx|CN j9'ὴJ"]hJթ9EGrYYkI3ġwجWXveWw[ŕy 95ӣfN9ׅDʰh + t|a97<!rzk\۫_nEk衼}Su@-|tF25>p|c45Mx=o4i$u8-])D)QG"ml<ܞ4 a-m7ju8Q8ɏAl;Ed@j'&zՊẻ[Nxa׋;BW >S0ۥ:UŰs39^+=lGx.%\a}u/q.p4fCɒ3Qڕ9 ݴhO#2C>H|MH2ru =MY`JiIaZul(p 2SkȤ$>0K=?^N ;iW3m9ZhnZ#g%(0 -pv3 )w+C>Y:_< -9ݹ+Jst6b|K.gSa=1Үŝ}(G,#9yH:<@1WŰ.$mZ}^|2h%ty bg\f5ZhK)r&k ﮴xjXÍb -$E(=Vqku ᧙)67nV ĤTߏɴu르gL6ml7;HbVE׌hvz߷b3R$?9OUE!$=ډy/^eØw+ ogM'u;wޤKȔ&+˭0+Pxs+~;7blmς}C|V 7fDXJGhρa 5Pu|ܧ9@Vę0D~WY7$,;qpp 9J0o?OYmHRܥ /DD[_)&hRIҲqvto׊8`\w@YT6d|{FSL~6Ӣ{Q&d +~dxMgD] yʼ2'ã܆|sb]% 4@}"臾] Cn|:L`ai Du.֑\a\srsGu{f[Gs5%pt`o.m -BFHi 0бoV >OWI]KЛK*6ߛ%x넍Fc|U RXW1ζI)9}0@!F5qjΖ(_ Ybf+1wO }߭@84NXC횖.ncO'1#RY |u"Y 'vEkSO 7sieK s5?FCtΛ6Ŧ]]L>.>b%t@ڒ ESIL=Yҗ161!-BIv1jŁUqtRս'"N$#aeBxe̅`P@:^Ķ sB _| H`xjʳ#ˎ:tCTVhab^*(ǩαs~J3#B.O?DҚ%f)x/_/]`s k,% -VE$w:-5Q,OH<22Ņ(ߜQfѷp'^?Z9] 'Pgtoe^X26 Dٶ1(Vh~l F/U.8C߀94쓳 ),6H2ph&?b_ů@)|9CMGdզdi*1>KѥS<]K:HDf^*o?]d2kkÕ/F -o= *wRXm||-eaJŹ繄Tlsq۶^2~ŮŹm* jUFރ<땬> !cʌ ]DکAQsIjYRϵo#}ɰ-5)n6b >r(ֶP -s B&`Mڌ -MSs r"HP`dyy4)ln7dĘ(FŦ>f\$DBvUcM:{حBBm]:!M%Pȳ}6f Gk23Cz͌ -N$^>Ҧ!Ql_lG|z> -|HHގ$lGD"އ+/ɔŞ7v:%FI1&itrh@&&&.]L9bԻ^]pA9ĻN y"^^3L4~5ScswQ l фlXΕn&.FǑgK}FpdI)=I+_o̹Lt s;u*ŏi[:1/SB,uh=lҚ~RTDJ^q$RLZK)=i4~E:Sr=FWhJey4T@8vҢ6fU[K/OWSi>}zs˙̅`X^I %Co,E]Z ec ևC^u({na64󪢶_ -Gz^N͔4d:GS R8rmwr}q/S^Y'ɐiWm3Oxm*Ede1aTtPoM𶲔hS[:șTd,?oOi/mcf_dJO~ѮEs+kO$kdu"]n -5p .6 /  ?rαgRFrr5%RcdꞒz 3$%TTdbAgR,xP-UYQD/M=ld;t»a\{?cv[C !yTT!?5biS͒ՌK;Tl^l2Oz)ϡw $=^ %rʺ[z'9XOȠQS  T0qĩ!`0ȥ$uoDU"ZӶU;'TVpg5-6^V+u:[03>)O:O7AamN; <#䀺a@>9)U96OEr-zW÷jʖ浾!e5W4S{½G>!lL 0w}# -GZw]!/vrO\}= /o"~l]cwA-/YƗq{]kWU:^&$OEOZ%|\k&{S tŻ3h m/8B&/'(>5BdprK{"lz(90#ԱnuYOYШ"y(ŎǛ\Bw2y3YL ?]-*ԅ&CKJ]j++h{ =d%5GB[&/EN -|gȺ썫6([.qr 驱x5C~H$/pR%(Q?{8Rƭshy]Ɯ+~hk漼;߯3a$~#SdRm*Ŭ]lGUH|1jϛ|.մ3bbaHEg5BkD,h^p-a\X[ S̉M;jLy.l3uGݰy᫵ls'r.48 -uh.:FvȦ +W(ϣgj C6-n_Uw?/>7eeZ_gAM"f?2/5Ii?z(ߊd=,!2д_R ๽q>PfE8 -?@r S0"uU6\pɳ^ÂyG+=[PBS8/ y3{ -g-W<(I|sa_qkU~vx_$*8Tkx)߿@q`HM.߼RLt\؋Pd' cqmoy\d nGz1`-墴׌)Vp_d\CyUnj:ng%AqE/JDXk{'g,nȲ>=Q}J=K#p^A':+R~'+ar)#o75I0qRjkqtt;8&l6%Ouڶ.7GN,{-֟*Z褙e?up * 4\s0B1[W2y6JE'lFhHc m<ڔoUN1T^Go RZD.l!FZM{fFaj +S %4M!gƦ6rm~@#&(ɭj9=__@ -QIɓ9kcy389=Π~"4Rxs5g8p2_zm4+F{a5&8 r0ˢ$tzL]OT׬cK8Ðla RbS^q38ynZc4W}>8XmrԢVv̘an~~9ԛ }\?sSxBJ+w^*qj7HPonJsa=k@F[ωi{M_k&*%7/a$3*iH: -}v%|Dдچ(߲jǺ -׻t]h>􌩼N. $G{M9 V]8L>lID8)hpBM]D_aȘzCq)>GzR"D/sL^A>+hPeIN^ Wu=GWQwmIc@ jo3X  JRi.Hfu$0٬ F@[f\ȁG[/?>31Oo6@8 -ijX q']3OԞAwyY kEskLu,1}=ݣTJ㤬~۫ѲާzUg$-\g,j j.ӱd^%'pNCxŠ b8_(. kFS5tU EaɹzTBKZ `nϡ|'+'n]10WgŰ ߪ_cV\$MfGͫDt57Hy *B&'M7n  -/&@(TYfFe`#5ql,#؏uE1 T0N1X7_mn>G7|" J~>Ƞԑ4.\Fd8y|҆@m)1QLbUB -`{ ?X"@}ދۋLI`$0G cj,UˋyXpag{Ѓ$YLsF=Ft9()CJ%R>uJzi F 'z@>]Dv QzqDwFZ]N[ƪԇ>\"86v&^L94JrdDm8! TIUNAڿJ.}k>n!j-N0dҧp\% =-0zibqEDލCiL2F}Kv]qk[2iK%ȾN%xdBJDm?ϵ z6Xjz|o~pL߾O׻5HUQS<O_}`!vl`5;z*X`:3/Y̜bU#Ty$U2^.&m+3jWsīVthvNĽ+: 7~<+:ch͚! -TG=e"S}i&|ox]M],ʬ'A%R⏈]_daŴ.9eNwkd$E)џGzj8K>W+`6) =o"Rq2A6hSoR=]DHstB-CO<|05Qm .vS{ATY8gB`ܓQS[u5뒹UU -q@[c -I dˇhnD(J1YxIyti&fA0lXC~;~NF'flDbym "-NS)z(DwQ΂%0OtGPg!#!|t,TD8b-)#llzVh%$s^QYf;{&.`84魪#i&h e~!AnNGzuNvo^ ғqpTU*L q8T8|or<3 -)F3M)X箖h;bl. -:}LE'g&fkmy(О` lg'wn9˿:67t *=/2JG,vYBN^?&oҡ±a+j*L]Z@v{]gFȢgֻt8)pnR>MHӮ`N, -T0UŔ/zۓXa +˃|㶒_ޫkվ_g - ,UD uEyϗbE TiRÞ0nq,|A#hUr'Q>5+liNI3؎XNR ]rzE Ec(ԙpFI꣮Yb!: D:M -DH4WzneXV/w8H;tcuwkD'^SM*؄&X4YV6X̾OYSA&?.qTrpQD6AWi,_ kd)KhR - \ `=bbKlE~:ؔijqTڗ#:9;'8q!ung(d>8g -|XftiXיGC?/f9*RiľIfHL;)e}X3>d~T}w=&?giIPgB64'a/Qk=fCIG`.b8PMa@͓I2" /1Zn#Cep{tͨvARM2A O(,J9uֻ)ܬ 7U9cOX8"RXqEdx{tU ZE_U vw ?L$%׏mjB|3*o!h#Fάsmŭ,M8)a\*Ț&8<}rrf7Pb⮳;謀%ǦSԁt~Qg -5.Tʼn-DhU!/Ovj=Ύ }[4p0ES'!+L%d#U<4 _NGԜI6F185BawFGOD›ʤ(u{齔)KkyJ14Gњp"{sGѩϥL1> rAȫ}2= -B{1AH~ێ7`b㼅5! kԖMw IkC@ϔrӑzo|ic?݋SyN -[ҌK9KIA UoTȤBOkLl*Mǹ#ϧ}y-Leג.zs+`봼vKFaA r2BK/uKm&f$Ig4ab!8 Fa4oagA4umx>mԍ0 彞͞|ǔ:.՝--ڸ@O Շ=AfZw#BrG5_DT/λ5g -b&C ɿ;e8X.de֘pP}.^#rJe& BsƽP(14.a)!%(~&av^UI)wSz:/ύYL:3I/m9BE^ٮ#s<%MzEIQq]ؽNp -Y̺85㪛TTc%q -DXX9?l`ty-Qa}@Ӄ~;]% -uTݬWU^< /wMw7 cW܋l] ՟u8r'0$q||I/R)w1B&-kv9Z RYJ{9<⻛)>TØ! 56# 숖N 734eE8XBE.' 1}6/Iȸhf%z٩42-M+ZQ;#Kn$v#!uLLЩiFdk=>D\f8TyJ< -l]%[A Rs_j_Fݭp[sGT9/)h(Z"w(d.h%!gPP߸H68_.L%&9EvU[]ֳ .Z1^qL -23Zr|@z Q@Ͱf -D]Gj'lGD>e );#wִo([ٿ-䏒 o cl<ƒ̿f !a7=G]אkl}m[l^^1 /MT0dV+F}ڧ$72Qd^q6}_fDv*H`jMGi8if&Q Ǣ7 xIeb+%d0}D|YLLA~/R%tcnކfQ<32GV޸ 1ϟl#? -b|ZیA>s#NȘofvuMsMŇ,X\U~-ֽ]С%4ĵ}8W`2Nd`|(5Yf1{֓:}Y)h/Le!|uU\Gǰ@)^t=AϬcдVK'R=܆'}< -A -~3(Ձ=Tr2Z[92.IKS!9E+ [ŋ\Km?#9)^}Ϟ~_՟F!+5v%Qh̅aEp*)AOQص?Hn7OqbY>SuB]tV{- K!DP,%TGhi\v$fԡ]Oi9$L~[-1Ѥd:aX 9g,,OCVZH{W -ֵG..l0RϭØτ"4|5;B@[qJ󫹡 jIG"ȍ -)bCn:ċo+IRߥ5D 2 11·REV&ŐGS=W@Kݷvuo+?wƱ"n&$&8\egO/ʽkJMB<FH\:LQ[~tf2<}k@:bIdjsLd/6 U9Eit`SY ~Ό\zkhPBJ[π @]}b`UnM5b5*5Vnrޛ+᝟\lkW_wo*:&b! 7 egV,4Vs 0>FPw1*r'8-Ue$j?^-ZLԘ_ppS`$b`M_Ϣnk[*K}C*:WLDm)f+.["bUzq "R]dtDB - Vc1O7'ri~øq[zaǼ!\K`~A> u6O[n]60|nFsbI8( fõ:B v:EPJ-Wϸn=u(*OA>t^hޤ#Q7řuwy0}6ּ)$pQd]c5E p:tR3<@Ҷg3 ÝYU˺Hy%GCzk) )%\/fg#PaFqE\XRЏ;q:i;``u`lĿ~f~Ӭ)v)!uJ+wm;Gg+ 5h=4LA1S-Ype坍RMޞ[{_{zuG&ٙfƕ@N,V'61b`]çz$!!"g9Ks!a=hdh^2 fմ< ?N~ /`la@%jt]=0UpsPTw?~cTƳ]@`3Bx4ąny*w4C+/ [/^Lgd;6ZÞ`MoC`I!9OlfdpX›xQΫadC'SD#r1fc6@Fݶ9m\e:Gs9N/1r[b5kp>cQ{nEM[)(o֬9Q gwDAo}9!e* Z`dzJbaQYeHivMޱ߭ѵſ&7],I!D?9>Q.>l"t;2?f 20 0ٕ·Ţ|11U4bϹ+g1jv睸88tңȧCA-(%;fOÁ߆HxDry+2_iL&)!mLa:1Qs:hD X 붨MdYjɼi*,ظ^NZw3-4sl<Pc*EzJ?(X5,7=  -mJE#QcƓ_'nMPDdrm lKq-,㊈d2v`F]%nOB.TUxy-#lZo!d9,n܍QZ痣%>BQL$OY?<fڙtBT/6qgW/3sr k$@4!\l^~ #* (u2um1nuq(Ʀ<]́@W|Q'?9/ -QԛYNJ^ -qc[+ex> _ $DȽG{Sm5 cnYJH3Gf1?~UFY<1S#\cR}F)b $: Juܳ0@ޖhjI9p+BTk+}|Y84& }ob>H<X&wi 8vxчf18<ZTrdQ}h|O3>C|&~rnbFYP -‚WZ ELs -|9\wX*%G?K.],"8o{9}1ek%9p9\;gɶ7, <ѐ|dAh[w>=|j%s"xTr42Y >;{70ݦwNһhẀN)( VQ46v5'?YUx%)Kk Ä˯hxArCW\3OL'&Ml hW=R /kIgc-FS2N.g K<-qӯJ ,zG&g|Tg_%Lp#`!/6$)}ð=d`w@*Kr( 0t68͢Q/C",o%GMmljoYBG}& ~y Gi7Ҷ =.7R0I"`V=3 = 3bM3+[{yd3[cx9;%/\a,d1H~ɔ@6; dYq{ -aFbAyibc>VR6TmFߙh5'Jt.כG]bٝBtUH7FoFʜAjg5;Y[}Y\|%wK'Lq4jg*E9/!ZLf)ciǛiWrlZȶ -;&bb!߼Rz'D>xwT#fn#Z;- àh>͸kkH<G+w$H%%0Af8lG*M,0rN$OA%]^mHI(*<ϭa;)&_4ANjU͟y-b*6=7Yr8mt7*mR~TzKZ ZM({n>7 ]j}Tmr O "{SO}?r+^u w}C Wb2ZW@a{79?~df\( ޝ J1H%> ^G廗@u{Ҕ8v g_;np/^'A}JV^'o6:v3XZCE&ISSw LLF4@:\ rQMBmʥk8NqpgkK^jwD/@~DyTw,z_XoO{k|hk?31ĥ->ѓFrWyZ> t؝w=yʮ|9ΟnyY\գ8Uջ0?,XniPٝlC]+E{b+ -64Gd.#_]Q#Iw -]W6;{Z2uҼ^W$8f~N5Ϭ 3 y'dD 3G8ţӂ!ؑt<}{8gA-?а!]m΀Xuݷx/e,I_h;3moyot,8!mnkn2Jv>E% %/4VPtw.,Ži+?\ܔ^.c2HG|0@ئL73p}m%DZcKPTTe؄ -#&gpp 'Wz37'i&:XuT;)2 3q3&Yn抷RKRQbBՐC B2x%k|-+%=4=)V -9b&hg݌&Xjh!ToϣϟNH5Qғ^fmg 7b#֝ 15[ƼoR_z4T(|uSRu-=qw#{LPjRLOtQڢ膺8mOL13}vZ&RM)KpLqgGjnqg!5jӡs{ [g+]UvLh}ЋY uj*(|M5>Zh̗F jοބEtƆdhi J1 UhD/lW6~iw<ΤN}񧸬#_ -2TX)v~Akk:8W5g:iɐX9oBIZgP -endstream -endobj -285 0 obj -<< /Filter /FlateDecode /Length1 2359 /Length2 11894 /Length3 0 /Length 13308 >> -stream -xP.L)Z=;AA[qBqwhbw-"ŝ;I~=+ݓ\MY -l;AYʚl66N66djj-;Ltu; KChbR2 syyll)]RvVe L- vv@2wY;!@GGKs@lix-,bvgxAl@7 -+e#XZvn4OsW -,Nn-NV@W;@S^ tCY&`gaܟslmd2J,/ꗢ9 oan2* #0fg~nv77;ЯY$qC+zެtkemde+ +wgVm';wԟ:Ppp.-/Z04_g3@u3 @ BfgXYB@;'Cak(v^C6h~~2V oY4Lo `axy oTeQ # ǟAgA g 7bf?7-7"w跜!PC;Uu42sh;@뜙M hf"dT;]ll#tA)-B;~,VZ`j U+8!-hk+/byyJ?VVտWVsggWJ_8wu{ZY,P:#!QI8@Or }BnPO,a0tp f D'~qj c?w :V_ z@Gg_&x9m^v, v j ]?gP};'F8~P]7U&mCm~w|GoЂeu4wvA;g?rC};m~5J -zuJx8Wt¹UV!7a&P#/NSV@q"A@ cAKi&]I_ L :*Qj|©|V&OIH@z{$D1֬LV•htx'?t;'hU`gw{x'^iz5eZ4Fa0O=6uKbDV`"TՔ*6m8h~ѵw̺ v^ʱ]v1sk~_W:R(|(操N,0M QeC'}kXuĬ -C>WKe<8W|wI+Gsm(O+S>Qz2hy,̎5M=ONFU!#Ȕ~sZzђ0{~Gf+D&kaT&g 1d1zh=|pHV%dX8zgQc\>kWX:<O.2̇] GSȌ`F!w1:JXKl_ uso2穝g|^pDӐd9]w_ɗu'Q$[GCtoWZ Ф(LKw7ьB>X)pZB|P7N6uUe -97rjpX,o&18CV̗9J`c[j'Mbo:C!]{sL`O- t[t'H^2xcjWH=DW-~O򽺴\f%VE堢ۨ}(('_ݡ~aCnyn„c VchL8wcxӏ -.o8B sR=0HH7Z~Xzyw\zʀR.Ժc%i>P(g\h7l҇Mфć6##?m,~~u֍=hy+E14 ֥0r vq}Tl$A U}:v]Q>g|~]%"VOZqA}:C;o7 \l$GΒ[3h) hMHQ&a8|;:1'S>T/heAb|h^;>,ұsΠ&5f'yiФ~<;5jloP,47[4_cJ2H>6䓑 EVѳ*wAK>% (z۬9g3`GGԽR҉ -8t툂 2G1BQjVa^َ8p۹r t-ۛE/$9?w -aJ/ -Ƣ -|*eߓlD5'W WвWLX f,b0L,& Nvva*[O8vUwuzY1ܚ?臞EP{u%kq8}4$8mlH6} Az+:M>Kgc$HNG/`e$(o*~7+0,=pYK{];/ &['zJ;zE-~O)6}[O~-gidFgLL=~UYsj.|g)'"ne+LhdoFòP{_tn;:)Dj뾦=Or}U%As@u/]؊h/c, -|QcyU"sd3Uϕ#C -s(FW#B4iDq{5kY3ý<eIk=f_^7wz]R=O{\:)9em]fR0krgd ,𬻞Q|tbKK1>(;ThrL>QLH]:%VqG1_R1R:x Qi(q|@ .oA|ؤY󤟶H0GS`O2D{o)yOhc|U'a-R%Kw -i ehw&7-So_ئ-Uɒm8|. -;P޸SODGtIuس '8_< }:%>ޜ0gQr[( R_[_ J9N) Z"`ܵ%d_8P98PsXZ,AoM;=̹|LROQɈ,au>{xO)3g8't>TK#(4ו xeh;6p]E3S\)+h#}yKakoJ3eJ"2vulV6 s]*9טccCԲ"qz-al/ ٢VbƜiss0 r}Kr%6_ :wԲc?`wEZ@ReiJ:ý6%(k*i|܊X2AT3r%SISK7 ׭uZ-79]Ev: k56pƪiN /([]%QR&m$4&>VfWm\2@G FX4*U ˙p걹u뛭<)W|j|#K ABP d2=MyA}0 `PI>yϣr0ȍqRu]= ot[pAo#)Zy6_ѹǨ"&4vE#Vn/G)WAg) (tye~] B K@.FWܥ4 s5I's$y]^țDxMmqAT{IGÒ/U"A%z5!HJqpz>,)WP9#D^ePLZ3J֝l#fX:F۶SbEAvH v:A!ݯ+# -ƟWCz"&E":'v|`I(\PD=A"A%g}Ss AgDj5w#34 C_:Ϳ>yt hzj- /(k9?JG6ęQ̓ĩ_s:lmsՈpʷzsP@յ*vgd4[4:g(ɷG~:kA:Ag -k,Y9уh$՛f#e7y$$z8b#ThRW#T:/HwI)"DXgوy[dIJ|'5AF1]C7뷣lKkY |'+so4 & -:Mxj޼EBoډo+XEq*"UJLg+Z?r;8"o2}UZjUo95{м> E {JL&}m|h͢XeY\ԥ{I/ݏrv-wP~,/ LMDA4vIX5ח+)9ݑӥ׌Kneu-e_v-"?j0.>0믿P`)`Do]J#0mu81XA -C:_ 8> G.|J@RmQ}JbPkexfoJ~cuqq+Ǿ/}O'LN#2ѩ٢c(n, *HLʖTOBiʏ#Ks)UI֣NۦHrȪ1 IuH~fL֙,f?=L_+rj*RԫqOp#4 WL414/r1%$U3hfDbW}jNelM-Rt/b.E醘o{^I,um9窥9bu)TnKƕ,C=#yNMAn#uFqhaR^M`\Dӂl8d/KE9)w'Q{wC8n ]G0:G )SK~D -xt>Oqr3/mQPaȖ\ ?QU,( \|3pheڰ&B¥KKv1 N/@{]e%ޣ^0YS\rL { f1b4ag|E)Tɉ -F2X'aQcj7=cKK3TI\Y+ >m7DМҨ(o}Qɼ88[Wɨk( 8f'72Jc38?WZ!5 R479|矟>z)to$s}{$w+GcR%XbV:Fgrr5z -Af&ֺ jYP'׬K ko 2˧dyE05{afPO1(9!ut#cþB-sK `$Sn`o*ɕ89|Ѫqn t'ͱ3}G"qm]s+V00E馮3zik"cխBY K%6%BiiS=^I(yj5!񳩖|K޴~˼oyH%d  ->m9G?MLjGH)8 ˠׇ6C)(8Mt*>r pLbګk=( #Ϣa6*])z궈lUB4v2=g^8`ߍGÙJDiQKq;Yugffq\Kv8i_ܟUWՠ[/1G\pܱc?xW nۚWJ90 -CkGA(V{cWx~HbTEUo.t-ŷe`u@]֗vhCKn穽+0|wIv! ;'XzaĄۈ?`mգwWv_{|_Ea!|6{G ( 5 \xk|ybSƺvW4x]\=\ZyU>|uv޼ 'ӝ+֩kF'VkwKOM(oet̉Py=ē4kؿȣ]s\ zMq͞,ꭎ @pXo,Խ3v9n{r.لg%Sd{oy(rߞk1#>5|_ְΤ,u>~lARHSN0&ng ;ʺWyD>HQ)6bBIǑVj0 ~8smRXݪbk|٦IJ!5G&KEՃ -a\5ύ4:Vc4Pcv\_S+oUH6=#^u5)+fF-~ܠ^5Iatx<ػ2r[SpgG9^7[9sy!sy\'x͙b䙗=GpGrW'jy|6 -?VՇqp#X1tgM(Iu9Sv)d$.9i=DuWʩؼUdzf@5)%'{ 90}VSL@˂[ ޠ[xV٧YtQwi;]zlJ̵)]SQ=?Ms<ĦV@|[cFj=E6vNi7}#ka*:6Ug}#|+ R8OdF9`dV*E9l@\?a,w VME(˄XTi9wpQ1A^oVM'ioRᛏdcp뙝P W(1qƵ -29=ĖX[S} DRnvlWϑ@tΦDȑyi@fh#]bx.Xe$ ʷ/I{LŷY&>tQ$( s"|TQEށG(|t664i0nNuy~96 - @qq|/ 6Je O̎7H4i/V5;Qk

VXcf8wj4)CLsj3\X"xm-7ͬirϱ$GG0[a^@)9Ҷ_k{%ŗ;1/j!I id;FWmP(ڐNn‘hƮQ`(R@a->~>#2V}R1E -C&}G)ex^8~ZGjs&ߢ<+Qv 7x3 ʫ(0v{3lh-x-:hi#,s(j-%( a+ȯ117/G߆ɶEkUEӛ 5d -4"7;txͭU+"a:qswLduznYD-|y&L+{Lӝ"k,GuܮGNF4\Ckǎ^ tN)CpO{7 Y|Vk kbkÐ`8_22HOBL@PK#\ mdvmb&] U6N!f6'kKWa]JE$ C_Ow1nt> 4Fy}HQh)zGQȱ2 À0+~-xE]H铠'\_OtfxBK8wekiԂ%S:ff%z-^B4Aus+R Y :P~NS hA$K {cM1]d6Rg(L*S(I,8fý*8)(_aϋ|G?=a/7<2{-MЌ 4:R#1<.ś]VwdˏvNlxHIOLS|ko丘lYMv <йFp8,{m?zWiNZvHّy#+oxƽH{oQ>R)&ƃ!j4,&{~ |X$Ù`J9Re2M#vN60Y;/(f&-wTN};b}&~~ɧbUZ%)+']5+ԅKXjC2lDQPMsXnsR)]`TLwb _|nvWJULJvFz!L*>S(Q|W81N<@y Ewul c\}fuZG`k1" NZqKN'IWN`b 0K@tkx[di0n4Jg""3e^R6׵y؂#͎'EZuOUuo|F=R HdKe+PUA2˟\'yG7t9-ڞ*Ӵ`JNQn2q!eԹ+3,_w}h+x<m{H%hཌྷcfqo}GW=ѕ,".f;,`uxPѪFI"Ũ(Vd6&aJi?z -s.}(BevuXMӊ%bX2]1u .4aD3fFg~hk4|T,X?[r/!%y\=W>=KPyl1z_ jل,gv2&7r{= xX2 F|V8gCi'= 'Kj]1/v9Uj[_J6b3 -!H2OH7kȲ WoO#{?wv*| g"C4{;&["O~la o-L7xB |DG8]s4ő!{W%!6J1@Eq%&AT)61E% ѯ0X"܋ -^aslfE&+9XF}CQ@ҪɢI@uM]HW1#ɧ}cp)K2rĘw$$#g0̾;|6c -endstream -endobj -286 0 obj -<< /Filter /FlateDecode /Length1 1724 /Length2 20581 /Length3 0 /Length 21710 >> -stream -xst]>[4۶mۙ8mnl 4jlQ/[fNǹ5kȉTM zf&1^hjk`a`bbC 'uXكČ]<NKGG79@:}8&y@eύ ?RD<,,]`[o@ -` 203?V*{hilk7*IEu%UjªNETUM] &&j$U~A- -j}>ˋ i+33]tr߰Q| 7Ts'{,]\x,\],lfi pw|\q}b W2$#_>p[_g 4v'WNII`glrA..loNN{'tz\7{٦ g+gṶl;3+?6yai qU5z?1x`8L3_Ĭ>xrwdmwys+_\AV@i0!`@SKƿ _3_>sc[g9l8}!0s̬L]>1.Te@?J1f [OQCTLڿpU0R?{M_T -Nvƶr)YZ٥]?/ ~l?&#eݏgf7߇,Mm@@ggۿҀD0ʨjJK'Ndjofs=>f@.)W ef0|?6Vٙ8c`?<\׮u)K{U'{Q?B]ax7Հd{xӳ2Y?aP933 5??=",ٛ[VVBs3Uc h$@dv(x}S@ZXo53͔v}}Qą'4+{He -~du$t|Orw>ŰLI%ѫX/v/Y`ntEXF_wyŒ6^7* Şq.|yzrXU?ՍpF$###P&!`g@Ϡ';JϊR|n4Z`Q OJVE`?;o -8 >T<,;ǭ׆#;I#/^ɢ FqTdqpF-F 4O:՗GLYpݴ:y^'}C;m-kvP:w` u.Q Dw\ 3%q -ܜ *h+?]kX;2*k41lc;᮱WrXļ"8նϖhkM|w,io8!GUh۬X|O*OH|(dmDUfG_*PPM\ ((g<Џ ZpĤc8zxbKQCT\yc_N7Ѓtذ>OooPr גJ9M3Žesl[vD}qՉ`5jFpPlA.oǛ0<Mtxڊ4EJ^?"zQϛ [ߘ"9MzF.ZNQC O5}DCR-@@Ľfm㳯+a]Ӊ~-NWJhs~q,#ZoT&ZRS'zf d&A.$Xʉ|ΪˌNepCR#fsl4kfw,(JhaPtғao|1.5V}Mus:U(袒3'"[C؉{\3(_E-?;3@LXwu yX?McI4utF|'lȗ(ӯ@Kvc=*T⩄Q<8rF1+ F - -TfyqF·`jKf@u<^AX"O_eNǦ}GOH!,YPOU,5ht I^@yg緹շnLi̠Eê(Ao~7g9cQ#z2PԤle}:oSa1zXuz=GBhDhj_9x/#Bx|F8c [/s *__<ڠI%B#K[?8r:FVzas$Ai3cWsbg=&4y/t GTI:;V˽SrbaիMǑعJqtP¶(}pVNuqnx$3(;<]8ӪĞIkh;BH 㯷:7<; 3>4D|A6 TO="V*?2J=t҃i9 0)c -:(m B:Ddq:b`뇖4FMe{[cya O=1֑l/|MI1V2qs-/G۹jE YROvMq{ /K-x?e|o |M@dhpo#ƦHx@J1# Oؾ^| O͈Ř6~S: -+g^ޡ:i(58Z(?㑨H@WFd#M-"׵;_k7I2J#LfTi2&FxCyҷ`t -JW^ \kWe#$[>vz:*<~UTEOSlq,8 -CIR? -<ڒvVSrJ#^xGd ꚧ^ۮ^;ސR8Xyt21J 8%~ײ#\Y"p`>G D;<Q+Z$ R|ha%st8kVPm\ݚLkpq4ֳ.fC ?Nnx|WfalA -h J%ICtn9u%W Ɗ' #sj]ġBZ}֪9$D`F)_ lɃ:gN~bQ09鶊,dO#ք4V]vd+<nbԝTI9[nJiպ7XHe}NPyS,"FO ڝ%Rџwy<$\M>>C٪z;(.FVxc ;8ԂH5??z{2 ^9ζgeRK[J^;p,jF&͗G$BI},~@ y*A4S5롉ژ ^G |78M9jY&'MIaS\3tte?A.m%I"ΖuFC:Lmm˽hy\)?f x(A.nlt=߉E-?hѫ]PD٢vqj -ͶGYBQTbp<ޛ,3iRO}>|ܢDG/LxJ 5[1WtYo.9?zֻ 36ˣg/?jvLfW;{5>xI8wZe0buIJOg6 {0LZ ZE^m',kSRƒ/HQn -ruy #* o4r/Ӗ|~CQqa©O7#c d崐4 C\4K-ReB2m} I t{ygh];5SԽ#yCx9}MƤ"]E:1;WQm1vT.Y!{ <5@콑8П@vјS#~M5+skl0;[Mi0_E j35 -WyaWo\> @( -; 6v0,gDd{Sw δ0a#aOBhnG[+g%O3} B9?܌\{WŞV3N_D։2oqxJŃhT*C-h7H5>ۭ] tqPJ Bǜ拵[1AA7V ( [9cO -\eFxAe -wsAva ~fkڠD$3=\lk]n,ΨCyY.6 8{^_M1 ϦVv;PZ?y ,"T` $/+$j5,2Xi*{) .g*5ʫvsM}K|l[F[A]ٓd3i'@%mI3ܶ?1ʑI3xĠGXmϴ[ͽ-x~.KgOaYL|D$oKV澅U[{п]5u|_ TG X")U6~E=NDsl͵Y@QK [ԇ:+qEfVWjw-9\LwMjM-Yp)*%|BQ.뢡㐳<\k8/^l@iOMV5^-BEPK~$i$-L2Jg~?sX(ӑ x7U_a?sz1X |J3U-L)JDZv]ʃ'FV]NĥEUHa[9r  -Ԯ,9/~vНri:4+YU 3ȉU?9~D:Nc4ʀ <%1iRa*!f|󌍁<΂ Nfs! vzMj> -qs -^}=\n(ޙ^IhZTL'{%jՖ(9 d$c9p}aHp?w,ґE!q,C;UUd`&mLS^h#=Le1Q$9*S'ePeE+PF# 5=][& o*P{:Cf 8Gr+pN{/ -a&=$H"guVőA"Uw'X[vA]>n vSx_' H+hKT+U<(62vsXb-2ԃg$E`Q˞؟"Y6gWADWNCEYx3yNkp . ns"oM$j\g*KgG_Nb\W*x85n7aB3AiQA= -K}Me29`N'Jp%MF4it !j"0P^>qYi3JquIʺXZ$L էA"n4h;juhfO8/՜HBoCę3/ \y.ݔW}f~!}a񾞱Orb#PlIiT80Q1\8u )&Q̈Px;Z c.z^(/Uf nח*Hs K?&$;gbq))= jWRN5~ tZ'oT| PW_~:Av v'[84% dln񝑗RհoCn˼ξ rLe_P~j]l$gj'N3$j[4w˫hz[WA>AulA#SûN<o.m+d{'UDO?x٧QT[8#Ku\5Tp|y53+QeLU^g^?BM,h8>Ukg - zqٯKZn/뵷n^IZq\FNŒHإbdc%:$C\TCO>A=(ڟ->֓h4 fI {s fuEћQѲGMpЋe(r"@~Yx̘}Ó7|D(hdڃ3@)=O;n{fÀV˒8 -MG\AfUN)-e:AQQR J/A;n kGnfQ)]LǤ7~OߎБw^2|/q*/$>E_5A^9b5/oJr'C/5ܗk7)qanrЀAAa79W27-P0=E8&+z? t Z RGSHЗC"VG6c0x u4\aWxAh?&b.}8@agw+u~F~{j -pV L$-opNQq|'RqVITwJ{)YԗH'EP) -8 ArYz!DU$:ЌDZUG}bߐ,_s :QjE0wY ܥłz$eBq8 58]+)H5Ib4V7+s:Ƥg rN5KUl?й pb14V'뢝*ıkYT{5W[2sˠmirH oqZT&$)S9'K4-n M`,.49wnOm5v4hnkn dqQ6F &]&{Ԕ7Dqn]c"5Ў[ yer^$( ,L~hA".1waPgeڎyX"xAb/Sh۩yΆ@CuOy39b̈;Ĝ֮ߨgX;VOwXZ kCT38"S60=H4My":2V&"y%g MihؕjJԣ&IJgщ߱-n S{p ji!D|/lg+Oe<~oדq_nNh &)Q֭Է|ށk}eB(Qzm&z4+y`>K ]5^a -$b/)-S}/6;R%bec8R&"~1t3Qn*|Y -bB㉅w;gǴqpmb|r\NMc5G!ʹ_ƫ\[tyOt]%F:Z/H+n8S1)Y -t.QBnYR(5;Iut$2|Ў_Mt)7vt^ -n5m* hv2;{DҵF*GpBH]62q8pVS5̴=y՗UJ~ \nU#%Q`g/b/tsQKL X?>,@f> sNcy` ܛ+&̬X~0cE渵aEt]qq)/Bd_yXW٨\ځpD$oal T*:f] \Ȝ95Jwl=ft5 s%%VZHǔB#BBneF{ۇI)ʬF[!pG@ӱG PP)6H:Ȕj/o%󳎵&Z@ `!y+]Sy(^o -'F9a^_@jY CJt9I1lUӱ{Ƚ!MϑR5Te oa^ND70A_E3ˡS2ۥe -L~x<=]Ġ#5{(OT g$g^ @0LR*L N߅A]"*&6gm7~)CaL4wpk2CVj'~EV#^UH63/Ypz:?ـ'9VaēC:_z8A\QBRڠ -b*vqX/B _H亵F¼z y*54LBX_Oߝm,vB3L95־|.\OcKЛ"/w$C0БyE鹞v|/,ͬ[.%;Ǣd2Sޯi,oRR|Uq.ņJ;(æ 9ݰe{_,?1b2ⴖ'ū 4R"x0o'?S4ވ -q q@te!Xr~&c9e=]F#<;WT{*L2jc2.҅ʭ|bw<5lO*:s?|$ER70HGPn~!"4Fø5 EnlHR;!l!zq0TdhIr6) bGx}j}`*$1Q|!PIAw^L(/16kZg` Qib''RoC EDF ;r.FԹWL(x %B%#WKuv%ecT8rS E )͍`XN(C10q<{oWr>tY7=dSG`d.U(e0&~ gQǂvۛ wA(dQ֍H}\ wgR'Kq8Oi4w {(2Ǎ~ZV##V1x,S{Qp':֐Sd%i谁n^@gqbi4]D+sD$zى|b[zJ~}xa L Xr&3|ㅾ7g lw/CN7сweҺǻ#j*RU򭂬Sn -tO>5 -,rx:֎1O 'ȶ -1)jHb4Czqy:GN1OHfIM/dNG]~~[E -êr,W]xnO|v&ю.}~Ƨe,j hGd{k&Sń%}7?5ǶT|'b\tOLUxK>]s!YF^ ЕKk"pZᛉٖ7JC~JVXJ'8="$^a> O+0bL^-VI^p=D,k@pj"*f4>,E$WO>(I diY@86S=w, &s㼈Բ:Y\x+[sPn֑Du5GV.Tm;0qdtH^<>L2B#lCnNZ*:hCퟋHGa 0d+{lJ%qhB -ޘNp{ KXZžNމ{] - 1w.&nL21x~!['CI-"+Ƣ-gxKB 0J;;靈ԗ*%2,1i]WlEPlglO-ixЪTB<%q茣ZT?Pw -ßHivԷk2u9dCRч"NoYE9CmQᦙr?2\ ¢D\a92Lw+-<IΩJµΥӔ40D+¨I}4"tRgQVqbc3s%^)c3HR2-yDbEiAU:F 2$k5gՒDPEZ‚K'BQXGE (lr0ik`Zg>P[V -h͖*@v(VANwRx~ - oH SqBf}ߗT:J񊏰iffo].mŽ osV#c6b,,sdg/^ލ,&:Os󠖼$"=dg#rvYJj/1'P@G=ݛ3ѮW$}R^LTpuWO0Aj 2jYNje1M|AT -&2PZ扨ݩdr2D$z mo̯ /HǕ<2V'1N! SZThvݝ=Ƴj(\_,;g.U(qFщdž/vF׿@JV&uNFx>Eȗ(z [?ڤͫ#u֌E, +B=ˆ#(7xY6hUmr>k_F4Qa &:TʥLjR!$c̭ 3Ҹ̢}:e+mu:0-, -*ɸ^9#HuV׀ϋ_uSZ~ceF>T}}[?/ߕ9; B1/}U{w~-0GCňqG$p/53ԭRJdzՈ_YpM՛NAa)gvsI Y]xI&)Ʋ#aJ?]V~UYqj(?#'s̴H̺ -!JSEKAj<>R+2ؒǁ+:{hq#AE .g\'S oDŽ;&n׻3elDZ>~M'h%i&ԏr(xP% O_Rx4zջa.6gӝLjƀ8F Gm5pw%wY9cMryo8UT vG,D ?w/|"=o}lAanכk@ۄ -$ }]pt@AqN]ZtYաjڜDUT쫿P=Z9nل!.F!ƞj9 $\ǟCnuBi]UD,rW9Gh |?H5=Sl8zzx:Թ;6JSC (Q1M`k.+y,Q2KEV?=:MaIHH07g8WHP9j6<n/NFװť'ɊH0SՖ_d@h g"&I4?i6d=B'7"j4C9IR|.w ,U*N,W[=pkV3G{d`2se]i^5Y``MՉeP$54Yڗ7t?P%?PوJmO[ܟoqD.(C P9Vl?J,x+Ԃ,|.^/N+ o0QIŐNkla&nYv!{:ɨD+cGEG?jނ/4x*|ɘ<bX%ҚA|rn2 ?2Æ4\N+axE/G $խKFz ~%xJ.w= 9f"7 H}Ij TЛ<%ϷF}!$+7"Q]]B]υ2CsP UӾ[+=1)LBU<`rPq7Ya#߱ڿ s[V3#7ZT&y1%>6wY"җҨ5V -"8 g[M0wu7=yM0~ m/ZeVU%!GO".e1-YG{,c~q&r1o*˜$#aGEdt) -5EU,_]ً)G4q@g\!?Q_;̰a@ӡ˂ -)7}S92D㧅wN.t¦t{KA/ye-]]]. Qǯx]dhTZ)G_f߫h*IJb$$O:=ˉ@U -ǝ$#cQmO`Es"2;d@@RDwA7.$pQowad۾XTvIK{#Ҷ /7piFA:ӡ:HXl$Y =B:jgӣqCoy^ 8U3|>O.AtN.!8p+o#{ i){ Pb2?S@՜bRٚF kMYԀ 2/@Iar.Ҏ3&{R< q<+BYm_ö!ɽy)~MWz뚢v1ܨz{ $_^"g&K+~ؠ[Mc6 ze!GJ)Fi%8SƲr^]wu%LZGȍ W+w_.EtskJ.1=?lFwQUͰ3 -/z{Si\B_.&u-O7"/# K|P&UNTRMᕑ3ĴR,%BZaG.\l5ell(gX`Г {7[Q秘 _K43De;BT.&8mΓzD{iZ\A+T)JՎj-&f};؃'lҢL)gЁi9(Ow T*M,DzD`qz+VULbB<*SR塆2W=2:̗I$FϩI2C7|)1ˣw[.|lnv+i)6dZi#ݠJTu֣[)Oc+#)Olpd|4LsFkKbɨI W_YiXRlӾ{id9bi;iqO+zhgGW1y#ĹP8#T}: J><J h2,K*1!cJi#,"Kza~,xbGz3H#{ JwP5zBu9C$9?"5D,N^M6YM5L# -UeHM ;/ca[  Q3wI\3a0,FDFto^|nFP6&m&ةٿ9i@q*~T>q@h@~h,NhÕiS9͹w,L2b*)1>I=d3ֹVq Eُ4W@{olȿ?_‘5d oe^2ƥԐI4encIL e -]pkؽѣvRNcj*juɶ=mdk*^D'eZ=fm3Lg i|혏Y=U1k?gi},أ1]>ivk$YU \;|D=c𢻟?!77IWH^RP;!/t\A?>yK>鯊\ -4~ĬM.`D -7x2hMCl'FZ xC) .>{0ԉ+7js9 gVZƳ -dC v<TMcS^\i -Y#2 gj}殩wr`")ԽORb6\P3fWN(dރO|D&! -eJڝ5Z8/AS0CKSuX|a7(QP0tߜo\ Lݔ_׺@Pyt=t&[^b)+^-_K84r$:.'C"0D4>n"ѿKڡ7-]M%U>)ɀмS b\\\޻ԽfG+T`+ד.)cމtdGdd[Ba:` yc{#$To.(Yj20 -VZcW6\)÷E=% U}|:ptbLFRlH5|5e1%ؓgm[p9hAֻ1. # -̈́>5o/By2'3da1C>0<.‰iG)*6}܆qHGJ3!p[{uscTّY4ۮnE"Y1}~s!Dt^!D&-&-.ZmŢFTҶۼ@e)J`?HXЦ|md_h۪v(@l|E/ [g+4T_yuG5XhA}P k@nS;&zA#szHzCŀ|UQ&9|9۝X 4s-҉ԍ#tAO0eu>.|Yed&s\8hR -VTu/FAiBc A}M*Ts$ٺuy³\H _7*cj~xIe -O3^ZCI}v~ޅ[R -ߠ}[ %~;}q񾏤T*jDBg|:6ZIVqB<+W6`|ʏ!6d6Ru@Gz?C`*Kᄄ 7dr~D]UhE83I(~.MF߶\'JtkPG[ojLQ f47YcJ`tP%F7> QQ3X(1sjp:3ݟ'$k`Dϫ$P -qQb^c)n2^,03*v ,9_*-lRk1nVMJqcٷ;С_yp]E35s)u-ZD#D;$¹.&/6&ÑY2鮖)'Z"TvY|,{CVsc@BHPa - ݽ+Ax^,ēy!cWʼn=gl,;^(KxyeC *Bz, S4A0 2IuBdMI Q ӄ$@^!)KV.bqۦX#[Rl`;8_MD4h)Pa[~G6Pڻexp@\-ox((Z3{"9ap3PAX>nؽs666N+`{dr%фQ1̪ @r”6 -XCFȝ/e]Nҍc2񗠮CR1u(VA7Wg?P':X72IзM=6eM=Km|/"WC2j/c; zf5H'aC6~rU^ >\Rk<C=?od,_@n=msCg҆PR{p(7jBXܸScL@OB iX TpԚ?2pwtLلrI!Q!K;) gv:r -LTAx>)DtLrgQ\lhckZ9fp00Kp9f_KkH_lY!%N(!;q3d"RxD&e}(DPZ9m@3*,̠IDWȞd\9,x'm N/n^Ea1.=(N\r?74!dD9ݞ8 Ad7l)b/1YǍJ=ToJoet'u}n?G*{BX˙moy:.֏ [ [!:A|[15=LAwQmwzѰL4c>7L_"n=65fp>%LMQT&s\$;H{5WIf\VOkҟ(r*B .+O)Dq9< h:Z[ uTa3hVVWG. -Jmf_ED f1; }-k2E3<I/4Dk4e"o -7>1)ugJvR -djCX~.D}̝fk0_#2 -02>V$aE5bC=7bGhj6\lI -R^)>/DA -&蝐^YpkwZ~ -yk8e1f1<uZWjI{nM6¢9#lShr.ʀ Ȅ@{Ch=b| Sݠ=#T7~A/a'端a[( -endstream -endobj -287 0 obj -<< /Ascent 1125 /CIDSet 355 0 R /CapHeight 683 /Descent -290 /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /FontFile3 356 0 R /FontName /PIYJOA+LMRoman10-Italic /ItalicAngle -15 /StemV 102 /Type /FontDescriptor /XHeight 431 >> -endobj -288 0 obj -[ 27 [ 743 511 ] 34 [ 704 460 ] 40 [ 307 307 716 460 307 307 755 511 ] 49 [ 678 460 511 767 307 653 307 511 511 774 460 ] 61 [ 778 743 511 358 386 307 525 307 769 460 627 256 778 897 818 743 562 511 ] 80 [ 767 511 511 678 511 409 409 ] 88 [ 307 767 767 460 511 ] 94 [ 307 729 422 562 409 307 511 511 511 ] 104 [ 716 332 511 511 743 537 ] 111 [ 743 460 999 664 ] 116 [ 464 743 486 613 409 511 613 882 894 562 588 ] 159 [ 743 511 ] 250 [ 678 460 ] 317 [ 537 ] 442 [ 511 ] 502 [ 307 ] 578 [ 743 537 ] ] -endobj -289 0 obj -<< /Filter /FlateDecode /Length1 1888 /Length2 10638 /Length3 0 /Length 11827 >> -stream -xP.[pw n;Bp'hp ;xٽ{WWS5sﴞ&W`3w0J;ػ2$ylloY85A?Q$jm _z g+4q)9lo p -@?b:|o `2s-AHaş2 O{6}2ϖ?濛*/&;Uf.6;|oOQU_(go3p_3A׺et>y,xlmkP&v [)vsox/%VW+j 1{KۿryUAfVzU\@<3fv6сw;[_)eo`qpqLMK\vr=5ppFlV;;?;QZX%XMMl h_`FAނ1ۚ,@nlb/ - ``Lfgb  \{pG s~jH]"Np䎶n.`H-\ -\YWj_&`NpIkܜAzG@3y3ֵňӊcHYStW;S:ɍM5ޣWƳly4l~Gm[W4sV~P,ui>+3 ֹ' W2DF$ط_|~r=yVhrtP@`NSey4u}l#>! ?>+4\tzl]1yg%O JUŖͨr.݅[`7jj`vj}S+g=S|^]rK'tܽlMg[YDQ:DUVաDcr.kD DpЎ)xf*M_+Ɗonjīz(5& %0=>өoy0u3ʮG lA|gx#',N>J*Kkz דҕl:`tLUtr"4~tm]#}zJ~]B-|ޱix2"Z#A-Rl 'ln=X4zɱ0FT @{G-B![BciRE80A#|ofyYsW#=K\v:czREPPRӀ*a+WtKPQPU.j}Y}osto95 -Fː@$|xhʂ#)g62D bݮ%ِM=zbhHjOu.oqf.MMrqp!HOkGbRu7D*C̯ {^KuKOmFr&18CF|dNp~-·\ 1KXMz4K^8\aym47}y)%zt|r]xj0Yg=RG7 -PrtJX>hkVht֦Vx2033m߈N\sΝBՓM^[RQm4!r P6D>Nl`DE{5rcgpf48@`ss/ɒSitط@C~| ЎK<!̫}[6j'MHE8$ -^PrϞ-ёnC!FSSK{8|,Ce3D9rTDWtdât- sd,j)K}wg wgQ]r(έv[ )OG$kiV:CysѼ !$K|{PC -vJF"K;/w㘢S̘Gb|:^!bBi>-ZshmkogEa0"lHzP'd -_mN#s9+9!hYK*b[lt"jwI+)}9ǘF.-Bo==Ŷuti!vbN{N>t9MN &7KĚgm԰6\z:L-sHYLˆ܆#FΊx7-Dd} G/$.5H_6xu2i8oq nU kh:J&“d,^{R};aLJ$$`&:w}T" -p\g3xEM-I(ZY!>F o1ryr0|ZG|:w?âTaAhI^TrOgG )LgDi0^.Kb9 _ȓ__&kv67rtfC;.@up$YaaɝB#؆ĊKM$*~7*ŒF>ꔬ3pv.0(!NC\<6RB#v1b-Os{{[&g -^|׾ yNeMx7|:~V@5n#яzZ_Z&!Jź9Ig|8_O~pTlw)Vu/ -ks wd9C*l<}q -HfUA r4 Rf?%\xΐN،#`a;7 -C!x$ $Fu J}8ᔙ_%[Ŋ`59-߾L{x+ɯaWH=LxX6Q,cGo٥N[*xybmo9k\9NhG-nYEMΨtE.;Ͼ>Cm{dPK;t} 1R$0uM5t(ޑ[ș)uP獨z0mx!XhazMyz!3S=Z|3[y3FXx4TFxBO2 2(P EUw7%uL Uo~ܢ/R.^8,$XK V}q;Qh7.q4fr{0riPڒ_%#o<4C -WLTaFe!)S¬*}ԅ܄<䶙T!ARHU s8"a{dӣ{y;NsQ֯*ev;>yuDf0@FR8]Lȷo r@YuT`TU2},[@AC8>]uKCu#pZ/blێ񹧌>$F=L 'G6MCAMf9wJ9(FcZ##X0rS:lpj"/!,+3`Ԟ<`r~JApRCL3Tn|A Z6mIX"*Ab(d]+;9,Sǝk{9L-FF} -.{hv_Ѵ=Mo3B&$/F'HʔAv0jZQ~$TijJmEp"ku 0m|CލZhA%6~w`N!{拓Ա($yaq 'M^ !'M,f[Ke%pfGYDEfnFl^,Fom*z֗S@`a#U3eʯ#z5ʇ:s9@QzlHbLspNHexEOi݀|ơ%{L7ٟcǜZ۶|(Mh:/ry=&_3yU7}S Վ~.UnFiٽ}Pz{!۵W^Ea*#|іeQݹ%0[? Q-@Ŷ""b״PNe -{r چM LJu$qJ2}֊|Om~u4!GG샘PÇB(LB2bɴ ,ĐfW,ʴ|@/f8U6l~g}!.m/5ađCgҔk -YR v+fLCVL)-Z=_I8sS:!b)R4\B'ᯭ˨7{v>Wgu&Wwm ~ 2^M5%y;G"?VE+m8 -({ tQiL.gv?V فuU)Nj1 5Hl@#{;dZЍظFh0B5YjmɫȊ踖Lܰf6bkcRƔCڕ_?썾tr43Vf/-o0'/|gk8Wx%/%;oKK6!iyl|'i[X+Tx}cw_*$O1_93AG="V\^DVs{^DiOҸEIsqZƐ8~"Ј+ - AW#/8uw2)/gGIz6z<x3NSlRKT^Xsr&-55eHz=Z[m.ZAghP{Oi-\RJhQ~yIۥ>TFiL[E%Va=gtLdr8w棔|،[[}a4͈#8oT ..X g\`5 -¨|=xХ)';EfMӲc8"ƞPՋȣk‘gS<=F)Xb8\EOP̎W.v?DO+H*[UmprRp'qy#UEUJ;46F:\kbCT;溽LZ1S66q Cb{k_G=h2/#UY&G4 ^AyKàlJϲQG_ -=[aBD?'b(-{|٘[0?MمOlWu]2 UUgʛ": o3 n]1a[ ϰ;܍c'3D`9Y/-bnq;d+ƔWP|P amLaJY0\m#籢2~;I/Xn+)|8!}񬴍pb#)M^|gJ^SZwj;:%h< (cV51>7tV߿`&=7399a`c dsUQ}lhɧN?0*!jsMSF@҆ u$EV%)l+j~W;M0+}&M#?1yqnWQ;:R"y뛾_*oD- t:N -قvTFn4c]ESjc:s~OnFG B(v&Ǡz/_tO`o'F# FnB='%8"0BJ4\G -|9E˥S -vWat* -\_> -"GPig$.P6m?ћ2v&a(ZE7+ %xrGl([B[+(+g' psG*@DS( fŝS$5Xm_Pr}s#VhiTRG!rU{pSs&Y K.O.+| ]*N/|f}8{E#G^fJkXNXbalPSxJ93i&m,C-)֪oՏxw7;cLd1>Hb ugk%AYFФZEY(oI@&ՏYqV~y Zyt -&EQU XCIyYsVyƦㅫtQVƎ=^ZMC+~¸Gѫd!K3=%#1'AO/RQJkb gل ʹW-"g0y)Judz"c1 Fyx2NRh'"XUygS(," !@]<7t! -Yl&Ta=Fů)@\Yז'BUޥ)`iZ*9nr4L66i(w"Ȩgf k`kw7KF}'gRP'ل*1EﺐHhqukFOI8np0_$-=2-TK.H$pjsq뱅oqhT,B(I17j63x/Q:K!. ƺ)1_Knr ܰI-EZ{O(5%ײT)%ZWi*7rX/`CWKPP"F)G :4oΏ%.nnxջHOr9DDT},*EA -E[3[hZ:v"L;g(@Y8GgȀ!|.o3oIBvF/d8k6D1=@c.M6w6Pbf͛$?I6 &k ѱm~ҥ58#3eIJ֒5_g}WrG0رp0A*7en,M3nLb((+ U|_D_5ћuVl^;wR4\rH+q&ʼ#0_fb`f: -v)+_fXYBt'wO}忔޻~͵bWru> ;9y HO2Mxs^>g`䓶Hi]DjR|Z(㈢.b6T E!QcfIv9J[l]V.7Y|z4  eg.axJ;)XE;uhjgrKxBB^&ȟbNSޛsHe{խҭ**-f}x)Cv ҖdByK#ǤHTupq_JD0^M}{ъ-M@0O,GEe;'TCn=$z -D y80΂ZB^z+n!sXp=1N -z!TCYP_Jf ȓ%/!YSu +jHHӽ'8sh(~'wo H'iAAc+%sժ/~%5D=[6<>Rh9 -Ul], ## ]#SaX骐 /"e1ܢJ]^"mԣPrz?Us[xT}K.〞S8QO\J9d  _D4}hKgu{<ī{xcD}}<9:$"j ]T;uu pWBAt c:pFVJa-o $XȐck@@&,tُd \#K^Ax&F %o8'l{VIMRd 8d!. Q®OȨ>eyP}ճPN4PDS6ᡨ5N^r݅itBD,ͩd3e'}aۇfp2uAѸ5CO(&B|s~!BZ$&lSoxBMq)TXcfH䰪訵.q3Z71xxZFQ!Cs{5 ~ag$ɳf'9,1ջDQO2|aݒ,sHRB$♝pl#c2s}/Sa4 - t]Wv$~X17f |Qʷ↤賱an1c^xY0>dMgyk|w3pKoMx373.zI#/ -gת2,V ]﷟ sֿh -y Kyya)K'G?ZY;!id#v8b DO=bn_F .lCr|Xp* -*k+@Tr W1|tbڡp-I.>,ƝߜAaVbQb~췮n@B'Z\Plꯓ-az3B~|CjW0aǙDJv;оPԆ@Rv>]%.b_Զᚢ2y]"v5GJ3':܏=KwECPR! F<2@}K:T<ѐ&*npSilEe4z׊cQ38͓~ lNq9!{Xڀ8tBKCUQ$QXY*s j]={ZpLFLEW>CwI^'\=rT棴`X|%L}컩> W]տ6*$Qa(4PT -)'N ޅ4;c*zBq/bbgѥU#a "QTʰ-ݗ 5Di=/;8=ifZ iF͘uZ)4,3M%6<5v0xX+݆%V;"V5̷/ZgKqۗROTN3p|0eK9 ؈~[̓2ڤq'\ $1yBN6<ԽP-VkugmlCbӄ K -]U>o-5-1 [> -stream -xP\۶ -C5ݝK; {{ cHAN(fkDD 02322Ñ;Y##S:8p@h8dmmRV&;77## m".Yz L FT&..ڿ@s# -lkdtr_!(y͜\]] mLhNf%#h 0@3z82?re['W $278_YyW'$dcf11 K S㟈6&PI?D\3*N!g f 010ހ] _Qf$leo?Yvv텬-h;l:];[_h?mLA3NJQ h`dd$YrXlr@^GZ;#Kе:Ttp@Ж:DmlZGf6v;h @ [c`u@&p3;A/? q .#Ab0A,? IA|2( `@8A fʮA(ʮ_tE]g03#jG/5x"W@ 0V -2st! hQA_ʘ*_1? R-PlAPXAP#][X ?9[>Gj8_:?AZM}@ v*ti13ݿ?tY@lձdvP~G+u _3"8 *psع x 9;8nkЭ?24[^5 hxu۟䅼H{`, -4(:"]!<$բ[N!g^#a;ؑ)a݇D{+^T,"KnosryH>BY$nM -A.67OEAPΕ2ZxAyj4.B_$r= wwQ4rI[06 tUKtH6$%|r?(!58n^VXR1tw #DZpܨY=BV,`ۡՌr8E8*No E NܔK W*nl}]L۾oq/"n,1/b6#UinY -sCLA,v4zk'>ןN~"?HWxhi_OZ4XҠ{9c^# jþp,gJӼhP\X-Id~1E 0{* /Y>F7#I; M Q_@{&tf [/d gSc<~ ;UDq>ހgRJlP^~CJ^&OԺϟaY(rR7ڝv4ڛa|^zl;M<@Homo0 b>oe" eju1/jR/eUv"+dqoZ\Y_{UgFq@"1HBo'mw?~MELnvptb{):l:ӤǟG[v(U0|tpvLNQ M"Fu?҈ ەǙ iW$rdxJXY(5Keʰ" -gZٙij]a!ߣԸbx-theBr }F(3X&[սVK4.sJvﷺ%,^=$| 7/t~E\AFNLrRkZ}x}G#\<;u Wߠ㏽\z^OݢE+X̙Rdb RE9N!\>Co<2ǹWUd+͍wY#N?+4(+y_n4s1DxH!(~G"`=v I -CyFqn7f]) zAG0ɗ `{&7,G.9?άt.P=&Mp^@i޺pz`D ㈶p8VkD(Ţƒ${ E+Hxgn$WY|֑m[PnmPIqY70y!-]n,zK _┧SV*Z@ikdA~.G6jyF;`?NIt%F]VK-ɩ!gyZ^HAWr ѳ,+noHBQ?8=n_l7.<:ƴЇWA23{/+eb%!~f)i( *73NS<*k:֦ߎ'Ʈ -jo,vË꺩Z"#C*URU%b)q<2ͦvcpkE 75|=4>VIF"|c^<$¾%#ˮCpῗ+mENa"9ș=T,eZ0tV꧰e6#9/^C[<֮>Ů_V>.u೘;;{'~f]ſWɊ+G4UQAo #m1-4HIĚ60"Ӌ ;B߇,cR/߆isD/k`?E[Atck*7}, :I!ar%gotD8nH7=&ci&K Ż"ٯ#Ej=K_M`DP{ [ޮik-`!`v= -+̇? %.>DWOcF'B#}ډ߯oJ yS+-CkdA#Fg+s<_ϓN8O[(tG]O,pśs%B8"Jhm7xg-J%u%}a%NwQ Omf8Q*~j954ਛԨ̚Ј- }xJ gi?S]xa%R4JFʘt҇>F2qA%.3! -2!uQn:w2Vwbm([ͮo6G;XxkCu/ӫHj_(8 Hhh9mDū7xXrз>~ɒ8}T`!dHCsoWnL05pœpp=XJf1;wuYFE8y/&&Y<ӅĀMpju%(XKSNlF=%l&RG[d:XOr&CoJV]8luVPp="tuxӔدnROlCx -)1d(X{=Sw7- :bl< C|W,/|Dغ -JvYͶ$V^ UH -#u*6+_J]{8`z%-J\.mB(HSķV 0n%y>vdU'Ɵ>R~JlCJ1y!ѻ~Tnһ@g F}5F\tza@oST5(&U{ Ί|Ir/{-Y4V9[!xITzuB9<Ʒb{?ɉϓ5_zeCpvb -Ý, -u2eS#`z4JL(UR2B7Q*;Ġk߄,)ȝĎ?%0N=\b3S2!A(c e؅G\tȓ~7}^׾ Бa-HA|Zy^ 3)gCdGsO TJ~֕_O>^ndB PG0.]*d"Uw抦W)5E1].M<#QZ Emr2Co U F# -ys#;^ xݸVȁ I|zK*T_!gm\_iô侉O ׄV6{]t<8M? "2O(IcKrIzi0Sց| -WXג#dX`6tu5;ʬ}-󞭓ŚXfAŢQ:(Bn‹$>$_zq?&i蔎,o)N{#Wb WZ -ȘܛouI>pQ)+a7*e(VQ<^~AdQ?i598.;:h}jKae~o;)K4"ܺ4*lh}&:j:շ#5;$'o&[~K+w>"KkOlVQgʴ:wy#'S<(a-$<_43 3pwj - Tat j&JRIP[j< -}&CC}Lj;4a`VAU:OT /A9o3Y ̮샪V"i{$/](?za_5Lʉ+9,/S?yBTE(9`wUv -}C˕lQ0`lbM$S,!JY4B6V$(ko;*G⥺L&4kŸϜT gN؝sIP,|tG5X`u&zݦCޖ ntIyd}{fX>_o,$ :Wո{ZtRO4etlvCpF0N[;B? "K8z&b= /WGk}.jL印^vYCa^N.(W ,:cU4&Q;?Ƨ}Sb:g^[":#M<&ܘ eC!OBWtA=XH"y'C4VtA6ҕ[VzĢ~_ʰ.XeG.)Z2}qCo)L|DdʇBU:Ec ̫.5V.} j5ьmyj[$:)U#"e^r Al>hXcqoQ'>ZCGF ]v`?q 74 -])ӻo R.{ Cݢ(u0=v'ί>OD7hQ"Y(.*qwvilf{QsЬ |/-$iʡ8Q -ojV ҿY`!/u~adqBd'X, >m'ЅAߚkWޣռo -N5h F{W9ܻRqwP+ x{$,Klt!S Za*Fh/^z*5av'6`Yw{vc;_z?F|/O<*LD'ǥ_)HG j|ƨg:8jlwΊR/[vZ]G{IErÅaX,!$Tr r[sZ= -.OB {/zlƝ0*S8C]^m`eBE$~1X֡&u}B; ;Oe%]';K<+ 3-i2V Kw#KAZJ'.Y_IPȎ"&VCv~m7M-ݐ4h~!ؔQ#r)rsitE McUjs2*Y9ITo(7‚GJԂQB {Qñ@CCQE F-N%OhƮ#ӣ4[&.7K\p4RVdӚB$NB)?"&T N MҲ̨)-C̀PV/)$yaL> 6FGsBBKTj&E -^d hʇYѣ>ºv|xe##Ԉ h. - Y,\DE5-lx ?Fkv3~{(ISĊ9ȭL[f)U1iiCdM#OB x/l6d)aXCRիlPEI_A΋4l"%gLwoUopgAwMCݺLZw7JՃGbS…×!pBb^7+ރB߅39"ĕIT -՞ҫV"MzU |'G5q|k!v 1dMWDf^g)!y/iFd@νk!l +Gb48pbWkɟe5Rqr*mEy#pP_E?d<: A\B2GE:v \sXowisCmVҕYK {$'|NTiH8'M,e_7;"=9`l[-n<6% .ϔS!P_myn,0@=ܾ$W IvZ"y%TRg38Asu!6E|}S}$ ]4z!wfNnٔs"' O Z] D -Km"ɉ .=*жrƥ A -*}ΖOuEU)nB&6GDE>&)ﰂω9(p7;Np8RR^>y*snd -%rRGK=xjC2|xANYOLfΰBN Ʒ KsN1x_,vSdTق5[^}N/4jD9B@+zǔ8c -ЮH>O= 7,2ku3ӽ J>D3ce7 KP$jyҋD1 aEN{q]M'ӞckeLs%g>it_ F‘;]=~"+/])NF$#ddeq7Nҥu]whU/bon5nVq(~MXtֲ kLrx OBn[w8|KAIvZ.7~.߽-}Xi'BxҍsZd~jRA_Qc| -~ɥ _ʂL8.4e9.}y)omj=GG!}^x])ӛA8[i繄$KPu&EB5\nتtE3/Jc_e +| -]Y-dw7Թpq6Qsp裒USS|mB_VNBgxωoJעvEll[GNxAOcallŁ~52@1ryҽo%t~8>|;„>} ?fwq -2Y[Wrcd-7|ycu%^VaNΠ' -]lEKp $o1=)]L>uq7Mn1P|+ "vuH~2ި|xU.p/]BX2T|_Y} I>qxcyf?48YwwpלtFKii^;/Pu;Sn$Ó|3 -,^ YQbYtMz6\o+77 s\1R&qv4WS -Ѹ?lV#F*Rnh wox~XN -%&'MUy훕/i _ǓOPAk[YyG!gh)++lWRu]_D1PP(IELy(a>'1ǟ'eΙrȦ5]FYώu t+}6cM$uݝTI+VP%h_ #ܟ2m7x MM69oZOWzd!h_"< E;)_8BJmBa&)vC`_dS7X9$n4T1dYQ _OOG M#f7M,09V(u@"t@q~il˱0+脶n6|fKT1 s,GGU]Oy~]v]W.4(ʶ4-KӤ1[ ~'iEIS~X~n(3o.ȕ)Dz媼}f8u=^NA"fO6Դ.zSdNW7N[dc RDxYMb2փ`ِ:Q~H_&%Njz\|7gXS3PI=MeݴAG^.cBJ΢b!uEAM%ŭ/IW;{}8/N1t*pǕ;)ؐq˚t+"_f.4!4DRV3ȕY6[,${ٳge>)dz&D4_^ 0U`T*VQ1:sC,)\$5y$+Rc(O%>N g_9fµ1ERm~FrLGSkj+v{,L1i-r2Hgoٖ)/Wgx [9pE@ihxeCB烏bU|tpb2{k Q9ebӞM܃&գ.UHƊ=W.̖PR>L4T 6)$?K"05~!}ACqEǷqM#R#7:2ƞhg1rH95tlbaaoz [Sɛ{kH~{'n9'Lj%yx#:*VY17M)ŏ[(m5 pLGynl>g ? xUX~F )mP7>ٕL0yťs۟^=Qx|DUM }`Fc) -O.F.粱DwV㢵xЉa0T xZ " k{˿(g$=2C/  #] 1>1}hM`]b)z|қHa((PٌmJ -^)Vh48pyQsrPR0!ć`D'DS[a Q@&m V-OnrT3mh - (,^< p,/N -6!R.Sa3-)Eirp/ w4m +ĻYIiz,K2:J0 -p*}OR>Om_Y bb\%.?hAVVfPIZ{+ ٙv1̶ -$q6s7GZkZ'4i"2 ! پ(kWZ?INZ|L]-wLRQB6еd0CȾ t20fl[I1a䋠pfB*:fl}y;aCRz:2%V!^ˋ|ž@o<`+ͅ}XNT TNu/r}T޲Pz_̐#83ȺOiWX7mHQEtpCs&KS+;1ؽqx9\Š:@v Iceםzs45yANF@~eꎟ(pO}+Kgȝ))Z+Xw} NmoPv5:=T/8R=p-O'`HaJJXX~\_8q.h;hw~?y^_LÀ'?_]UYosq l-R|gMn|ƴskVyqJD3pBxs^ H_Lj~LQ >BK[;Y _ O-=|a|W*ԟ}k.$ٗxM8rcY}BPpjYcNLϖ1-QpC ;%[/]d0~L[}:nC +edovه|M\$|}jl;dE]|„~c#`6iE|/ - L;[ -& gnow2鏎8f=}2#qp4/\&~ܜH“S(Q6R s-fN=/ѢVCoJڄ{;Q:iz+c;)E/IP"(Y8(Rh6E^RɟlسKwZ?G԰oI7 # w3MX;0.KbJ/n){z8 "8pk;K7}nd*P/ v`r$k}cٟJBi6J{Zg+IËqODʞEƄf|UQeQf7B-OS#u%/A;, &ܖ1 _y_,- eIQ 2@KSK1\]vuq/kQR0o훓#Trr}#oLf<|7/ _bw$k& 3]7[~GލjbVj rv)|Gegl(ELj>Vu_k!ZX`DGCedoo+Z0QnO7QU0) #II1QDIP|Z9z[Bۣ["#-%KTӏOm>NqݷP \p]DEלD)$$7o\qsda$ppZ21N`T;0AW= -Gka&&e:.1PW~ K&eQi`\ |2mlFP@7QM E;0U%ov]hB2(j`S<6\ySOBHFqRI -c𶛖^6<)lXca%%o!tJ_D&l/EaX_,Jܲ(r"4TXV:֛'_͌7 .B f2 7IɥѰdJ0b\ J^PAW ~qlN3!'b %Mv`"{o+* lBp9kYN/|}ET@E FG$4r,s>3^?_=fFt?rPí2aɸohO[iLKIO,6 +T_ϡY5 -dF ˌtlVIHkYrSe9ǀr6Rz hCjM&1*G)DJ(H(,x=:e_,A""DuUW$}Ad4[PCe?L.bm3UCk0 -Kgl/ 6S]vi"JJ Gޫ{N{dRw -@v}!.I!B6j%mFYmWt:/1zn`u>yo)GcGx΍v0Qc(ѫUjUoG^.| /Vs/gǓ6/^l(vأt_%igf4#(%KY?\0'CȜS YUs}!q(^EqQz2 - 'a3xsmo9U=?!;u/¨, -"X/!a\v0ȉ)zc圱e -Gt ;Zj΢Ey0k_Jdß>= U6q -akNXO%J~ y2(b#tr -iS&cVNc"L2]]+:8B]_X{WH 8ZTTI~e 6-OGV#-\x4EQX+p!^-cAY+ig}ZXޖ$H= P-Uf"]oNK^Rgԡe L9A7NQ6r%i%\5+T9B\%){|傱ZG/aeN^?\;VɽMN7#ִ!2 $;zy]>VfKq7ajzLL`_!u{ns8ps--M ya)[,Du%}EV97V3mkR|[2g6W4tW&T_8k[)%1|4v#F - \GH沽Qs,upvJrr+FȲT;Cq2VVOvxb^ -Z9!18A*A9HzxzeP^oJ6..9%>cX^otjŦL)QĹ:=i+B%.rFd}G&=FH̓i Ve2Br\7l!A֯~=nx9՜W='o. Я)94 n UdV$?~L.TVRquE;Dӿ -%wfsy#M`z7" ;iMA@l uMs&oa2T;12ÈKqtoDW/w:pPcFE2[m9`檱`B.ZՀI^D}m|V7z PLI>cgswI -,shm-`f Dj-&ƹo&%tZ*Mj0Oڙ02&bpG /i+¬o4P-˜xDC+ 4[?t3ٟU JX{rPqUV ECD'OK#יM)/4!?yNBLY4XM(` U"rPQXxTV|U/nrJ%&IqV3 ".e`k.`L# UL}jN[ʐepψ0 M4ZBl #4&E߮N|8b,ˆtj)cHvC7b"'޳ MjhO4gE5&fJ_>=gN)CMbv{6.=|:g$cB?c? $9b+%A˱[^nj|n7, %r 4I/!ݎƓ-=b%D.rqhTήUv { ->a1G- Ehkc#e1q7^wen)k Yž]xgwTUl46 :gVF${N urZ -.Z3;N75M! ,=7/7dzo ] b"GA<eTzK^ɜƙ;̊ljơdx%ƯI@R0:KhOw&EFsf'rE;'İcTKSlZ2AQ;s6ۀk'7{G4#<NJэO4ˮjl%O_}?I&ɠg,) -XGzeIe"mrm> -stream -xwTm>! H%!ݡK% Ht)!" (S|svf\sه :r5Tw*h雊y€FP+ $An(?-HJrD % TG -go$ 毯@60;_\\w8P Ap9`_lRvnn< 'WV sA]H(`cxv0?p}' G -wEE!P$ vpÁ go< N 7 n 9Bʚ h `g0/9J{@_YAq=_^Cy9}?*&/r Ņb@QQqin_Fu@?F5 (G Uǟ`se؁2-7&~ ewGf r9z递j-1UւB`NmUsCn878UvQr8P+׍/j[5&(jW F@~mD|( TˏZS뷾/]gFOHe %:Cp%YRz+DFb/ysm7eݸ#&e;sS냾7[l 벀vxA!e!#$|*O#^-]zmr(Yn2Y4>r=^5$12z&P"ꖏJޒf<ʉҌ"5]h[=P;ތ_{.-Уm3YtvT=)Jjcy>_b(c>8av0nڣ~ޕiFzTtrO=V˩܁2;>=sa"}?/H7Ϟq~)%}5Y$m6;ж[=M;Oƛ~Iװnч,W> -K蓖΋Q)p<5Npm꺈ܹ\]HsTBzdB\R<&RpO3 B[f+RGm,ڒ0ͣQEbvx`׳\,oC_GMPZk rXF>ɧzL R\+Ad c%bT\J81^][H; :xtMWpАµba"׷I'U'|N&kM3 .TT$׻ -2%]]q-]`?e|$2*ֳԶ5,AJ͕ߩO̠S#=yy;SkOyaJs=DkpFgjqxӕg1t/!̘%2D -/^WUjwc7n/̨eY6 tpO|a#qv08yMj#eFrrAzK^ܢe6/o(odN؏'[eca]ZΫ -/J6qZ+|ӠHH^:i$Ƚ ?ʘQgB5ʶzGCEOgr5rZ|yO~ȧMԍ#҄ eٶ{c`[At'ߴKB[s,IJ7 #@rP$VpDɣIR/u 7ֳ\oN)s:T$s v4<6|.94Dzmr87 :Dsš`y_clvw)}؏;\]04INn06?qގPo4O[ݘ䎧; 'Oo++" KI":DOFɴŨ2ƍ$g -JlJ/.xD־ݍ'"X`2gm&]Kx/]<ZH(Ӈ'L9_7TGEl+^\MEz$;. b4-.}ÇTfz/T6Cx?0[qQ|jv^>ӟAZMb8*ޮVc\ݠx|;d7}T;3N![0,T*Le^j9||i{yb_a 7[X*B`7 OJ׳*0D]+5TR|ӣ'R0Ԡ, p -C#iKσV,=>f!`^VhR`PpHTKk\Q (vr?S5!Y7a˼ œb"VQ"er_7f&x{ߗ q(Q P$W3 :!@?_gY3굋tU+J#<ğ#KiL!ى+묷Umu -ctپ#ry]@0[OTRhXC[ពuO}\Mg-\wr42SySל*AhDvcђ 0~m m?(=\"jc@ӻ6ܦ8ݴܥP<\J}5sUGO틒-%skKST>: b "~pc]~ֽ4'!"om67k: Sq|* w*s*|s# .q ;][x9o_^%-?QIE3 A`d?&I!k Nb@aͩfr٭JW/#o*1]r -4-da%hjÔZge9*g>#$G jHuʔcI,mb[vc3#z{< 1娐ɂD -'T 2ngI1n]G[?1tj#&n -0{ȏ9vߕef}M2P% e)}=ĝwuO Oc{[+G%)WOj=1@Ȋۗk*[/(!*.w-?>WuX`+DpZo` -^FgQxG9Fg۟h br(&|-9!avX``{?_ʤzr_E<]Xj4ztvG;4873k {{ 1gxŪ«]bֺ$O 8y+5zU-RkLÃBY.=`*ߎE2_.p}#-c,|t5?ZWjd#Tz\)0-x~*6%L72w`qra䖊9tZթ 戥$ס"FT0١x8GNх%z=fx CQzHr p.ѥew lY& -RS5ר8a$w&^jB#c.'Q^)%xG/rQW#}U $dŬatUE (Zc.,riv1kw;j*<BҜY)h> [5<}Z-W6Ԥ[[_P_xyXȾ{|YEAU Hy$bwե~v_<̧[6f 7n]\eH4Q8-oN@1"9i[%:XTSpU.aaVɧE_GSr0b>Wzz.&,2c|26ٺQ%_Ns77}z ;:=x4q^U}6'~`bIcrO96U]CRI0כ.g`|]// -$ɅgM&g~Ti #+wEB2]Gt66ПA ぬu)Oj_XQ$HIZpg]C*|jp*Uٽ>&pyOUQ]9 7/`-(EZ tC;MOh -6|$b>l=^SҾ9nz'zGn&yya9MT&遍U/[.'W`@&C~G`PG_/s^b):Lg24K쨛Ao͔:iiʠ$ 1Չ!6¡,(ɂ,IR89hݎL~!t7ᛒu]BnӶRl_a_Y5?/^XgvvrHpuuL=PUn|?hRo [,D9v. ->5D㠦5Ma?4l21<..dQ痛A:(BXZ 0Qt*j=Fϰ|$?if qo~~#k@ܼDh[7p1[0Dx51tъ[aЃwhl:PųP3^\x4]r1XDiYܥc -}dܛRʽ."^{7'z ﵫBZzH]sh3։W11k }M6ZKA-㊭̋wʹǘC kd-b, #  00:=YVh@Yk_a3DX'B0 |YmKL47Ux;w*p"2k4Eeܻ,#̬Ő:/r8V R%Ji`+[&ﯔbgc ˨ܩEc1nݮO)=qpgRѴSg`RT)^pH`⼚y7`㓫uO֤6ܑ꼿>΢]镌{>T"I(E8r4zNEO@ ֱVvXMƙrIS6#"ʼ%}4x?" icx6>4ET]}-˰Xw*5Sl)G?fȋj 365Ň!dItusneʼn;U -rl+MuʸdYQ=E_tl2'ٓ fv]ю=kѐ٣x*<3-y c ~ͻ0%H_Xf:bWI\'tGFmG:(W};A峱ޝO[unY#B@1 I짨 ]r3' *,};5_AhqF]i+eW/*Z9 -g뀵C/XuxxN-Uqž Ǒd곝6|upp!\~TLfm2UrArr"^|fԆ,dy[CqJs$▼q}q|~[˛r-KŊsĦBBvb^hl /ح}\5QL%$jdT[z)M$Mѝ'DfVNޠDZ *Nߠ3h'~U݂nq -$]NM( -w=FAUq[7 Ӧx.̃0SŬ,w^6nHǼ΃#λ#q=YuC'x Xs-yN9 "1=2r~.mEYvQs*[W˝->Z7t?E8% Sn$^::Te'~Ij6{Xf1<]Tl&&J@1R5ܤ-#|OXV& ,$Jj2z[_苟1D{EZ}6`Ԝ -G^fא f#/z%G5편s@=T,X=/BEpDѲއJyR{p8o{ThQ0:.R 8g,8Z:SUk !/½\["E-h&e8 3\e:ivSw9yg1;BQEKDnJډMb ܏%e\ -tM=y{9ſ#~]۵X>IIRMoW/70RX;iW ZHAr麛Nۉ/JxyϺmWw}TH~^!ۻͫlQuʄ=~T ۿgH$h""h|0HESG |nQ{;hЌ޲|TTɝ-j: KA>)y|ۺ]PlUU<$͹\ӫ/ ,$OR4D> -stream -xTnPN)e:C.Nlj{.zo0۽ )$ ubbH)ɼprsrriAi[gR ӓLrp99ܜBQ8.`S;B'sw[8=[ KHHOs l(,@6OM  FQ '';aWWWv#;%+dP9\@?J(m@ƎBд;4 fN@I` 6:>8ۚO -;_ʊ)nw[l1bcuۚ "+hk"dtO -JO]ɑlGyjdG~`S9-?Of`[S?0uв;yWfrq -q @4@B?O5xyAfOef(@08A`[zz~ ~\?yga[k9b)-)UKJJBlܼ6n!~N//@@Z̥ WOO%. {eBN>NSmg$lm'gK8lB;;=%2;*8?;ʂ@`'?sxro B96.Ncgbt8>MOz:U5q@;\Oz8m!NO&f?f 0vԞ2.-vOd 5rg_|>m_#I?_D0~f;/ǰy1xY\?xs<-{krWx>ȳqFe+3w|~GK|j }o^?(6 ~?ӧd̬!YgqOz|oxESd~j"5khg ts!{wϳ<!slx)==_2෤Eezoag  &NZml?}lO9Lxv38;<ӵ?%=ݶ IHeu`J RW?6t4Uw}r~Ʉ}Igw!mұ_kEkD2`z]MRt~@3 W9l4HtazglCuW lԼFPWP -*VzLR0V~ߗ|b҅Y8˜~2TELG"{yi|wB5M$![J>s;mRs {U1QYVyf?!T>d&.JՃSqz!.9f1@wN"IltɍW/o?†_ -D%O"N~/c獕 @R&-lC}UxL-f>L`<+[y9C&neXPkX7a3’7J1q -"MXM>QRmEÒ[cYm7GS#S'?G50HHd^sfnφy=UZx{3b6kNnM, rO$:^ș:6f|gfV"ez4AUY0  B#4 -WtgJΰ$( -uqW]XiyUR?߽ \Ûy9:z#ն8nEo R-ά5=.JJd&s tP -I -.O1tZ̸H(H`4~q{7PFE^հ8gEMZ1 p1(;P^x@^Sshg1<'anr0Iu5X*>no>#_iFFϠݼ=sA]@ٝ{%;/{g tTҍzI_3+{cx70s%[w%~E GhPFiIx;p}SPa:zP\]o5gnM۾TQ2**\4Q q }c9vv'!:LV?i|mQCF+@ն7lsvζ2EN(R;Y&;APƹMʑC_3?bm܌cN,> H)d ۆbO>!d&Ȝ<s篶fKx4?L0 24Ա_cWc&4tSEfL!0r*_$o7"k=cT0ݯ0H-CWR|J8W;Q!4Mfe|ڞ0`vŝ$^ Rm1MV6l+ϭLM<wmpv{-m(qteuinpx֏7ŀNP3 ]a_9U:qvR^ -0EO:=t:t__C/* Q%anRԶEä-/H~ua]s[X -"@ -6J.n⊑ gS~J,{9A+ngHƟ s{ʧWc Nk=6I| > t`Lbܬ@|ӷݮ03@7X.ѻ*z"DAU -hs4&?!:,l³T@ ~q7Qb^,kE~uƠ1ZxhU܍mJXe9LדɩH:,Ҵ/Q6QTjeua,UVw40 D=$(5B^FB/s{8;qUA+y!p4X–(ud#o]jwk Mj)μ+p{*3<]+u:%S#e9u# -s}o+S F~V, %+Xؖ+&yeU{XW#c>;˹ԑ[0H' fwNaϗG( .U5Yb{-jMYB>97wyۨeWQt:ʝ( 0rt,w6 {%`I 3.t7}w%,,,VIu˾ijM<9R2ʅ;dy頋k~X]]޻ ݛ=g%;g. .K`f~ӣЫV=8 zn#Mf㯜w!Ao#6GmlUrUŴ} -c[yދ:W -b9ޡ-Hg2@T"/œ>OSizc-_hΗ߬z]G,s >uXZTx PWh|hO7fX2&W^ 혰exP>7+<i!ߵ{, A;C^n 8%D%ӮXq>h{\onDԇp%{u O+qѰʘY [Bb&3T7&(xp[A*X-s7&y8^|I7_'b ޮ2*֣rX?#i/L"ջҽDވmR\,Jw$E"qw/ ktJ6 -l/g<?yKRkF V!M,N!@e8HĦ˖vUa[~8ĐC6SjƓAaK>jek;cOiң]cF|{!|$AʵuF)6"3I xe= -P Ɗ*fA# 5(/F#Mbj'!PE&)&V˴~ŌZ\ͮ,9-9\A -1syb6[PrL, -6+>(%-s1dz3Fkɯ츎uuGƲ(UəVDʼn.ULS'r'(%"yb\@#=hmѱB&g8Au7%9J3JmgcaB欨؞h󳨢0^57BM?h,9K~b_NT]Y[bh̛J"Fdgayq%ād*B2}f Ib[ -%9ǍF2YaiR^Gs]Ÿ⬓OfG7f'VaN3w5s?ڹ(imQcMٔAk0WLṤ5z$Cz(TdU b1x{n_\(M#]bc#: )]waQpK*CEk%̝"mYFv\{&xZ&&ZgUergy# '/ˉE x=Kp1w/jI_D5ęK+JտǪIQTsBFT9 -/ʍYȈ_gGb2Jw}[Jd]?OX7by#6h-xxR"vD $U>d%4\v\D4>$d`$!5tWm>1SE:"FGZ?u8Zf#Wb^g< -`/E]Y :P'ݮE((L_> aDK)U -6 nN$r$76NkU/V>r0 A5 FSuvod {oz׮dAV໚Sjk^H3"UJ9#gk.n'b6~R 3dKlMX;ХDUxi(oB-^~yJs6EI0;@YFzyPYOV|:RM%pF]_9:(}'+Ӭ:qzBm#LtZtaLX%(pU(gh%- Jv,@ tki/j›%O0إNB> -juVꡂ ~a݌A״z;daE6w P.oM+fmun*Lh9\YnېX7dj+? -&E$[k:ӊ@^vg} d3^%=]ݭͯ2uYX= -|j%㸓哢Sc<ܣCL9= IavJ[_@2eg@-6D4Z_vcȯ#}%|v7 膝Z* -UVA2_ R>,LhLwwi ɺon/!lZ(-Fi: -͚iwa-AEWx4V=V}HXe1I ~lqA@6Qg ˍ嚚KWPo6.qJ<ew`biV%FҊ!fsRc^_ѥ5WΩnP31Tx;7Ԋg]y0bNDgfy(6iIGeyROnɱ] .v$Z$xCU:t # #bTۍ:=*!f$'RD!P7L/op::}TK\4_r6?s "|Og!7{]CęWִmф&ha4KI׎{;*_o4HlZCoPp9rNXeİZPXZS`P*_'Rdoxyw렜6:/_{ƧmBE)[\`w}%W6kMI iAqj1mD+0.%ŪwceԖnKQ;*Bz im2Xo:-kOэa-QXwm>*ψEdtY":esKȪ쳏y[-oϰ@Z֗sacRw z 5=/iK YiII{@C)WuzCgx;xU\ٴxy/X^E4k1WZRT,ꗕ"la2})| ꙏ'`U4^qs.4QPd)  )-,!hs^d'B:eA[P=a&tλ/T=RWW T0/AͲ| -5'IǞvd-XAr.>P<,rNR?s+i cQyڷ#w @%I.YoN6{h!k2^(H)cy[L{~Ԍj79˧5F<:{?<7y+A">4p=A ؄͌K:_ȡlfO^wpiN-ba_O:XO!⸚ ˿9P~ǞZn-*xA;/+7R\qa:UnL`NԎh[:5%4f2"xmi#pY՞-Sp%tT/:Ѓ>P$Efl3&شN3[鱬F,uAh</ /ڛ7Oh4Wk<\*|rFh>Gf,6p=V6T#$_Dج 5/vUd7Wjxk&-}udK˃5G3K:11݀/܅EnOCNzxIuR=1r؋zJrOt0i= 7Is 'ݯ aI:-ƥI><gS B8ycBvM*pޅ>V+.* -%R3[ͩiD XT-i*\qR`DuT]$FGxL]6M͒Y k+oh/k`wTح&aY8>Q?\pk~.gOJ{ŀ`I5FiA9!'b ˖E}Qk+{h⎣.Qw9_6Mf2P 7z<4i ;p.jpeF߆i΅PA|Pԋi9,t@T"wSC]a @!XiAe"=܏RA -QKB>%|SOՒ,']rhJdٳ4W"N# =QN6<ij?9]UsAlw- \cƵPEO۞5zwe*CՄJjIYM!/,Hvq^L|+p|&Z`#t67Apx7!ʜ-3P@WW+ 128*scac[#mo7L5)sTeqX/W$ n QK2%iDJS+m`@{$lO ?%)<=`'&-F)?+^G*xS^Fj}6Hx&Tfڕ6.%APLe=҅ǵ,dl#YвFFyюE| )vsdg*2?h}VJ58bbյZ %; Ih.3{R*@Dlɽ!dFY:[Eθ<^#yhE#xU0AՉ\U0J%##Y#1Iu(1}Lll I1lYFM[Aۯ;\ - -e5qDVhԎNXmry&*nl,y\_O7ѯ&T%Tܔ^OKtTFSp&(OF4ou"LUs ;zeC&fq իuс4G14k&BAa,0io.~e\OCK|v~]Q+}ӕ$f̋G9 W{wKTX*|.,ZC%v߯a`;3#}X\7-hMu1Y}+XAɰj9& ^Ϊt*Ϳav5_Wje+ "t'R5YWp Z};K [bG|!L_Wג98t{ 43rݛ[Fy3 -endstream -endobj -293 0 obj -<< /Ascent 1127 /CIDSet 357 0 R /CapHeight 683 /Descent -290 /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /FontFile3 358 0 R /FontName /UFQFJT+LMRomanSlant10-Regular /ItalicAngle -10 /StemV 93 /Type /FontDescriptor /XHeight 431 >> -endobj -294 0 obj -[ 27 [ 750 500 ] 34 [ 708 556 ] 42 [ 722 444 278 ] 46 [ 764 556 ] 49 [ 681 444 500 ] 54 [ 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 ] 69 [ 778 528 625 278 ] 74 [ 917 833 ] 77 [ 556 ] 81 [ 500 500 681 556 389 389 ] 88 [ 278 ] 90 [ 778 528 ] 95 [ 736 392 556 394 ] 100 [ 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 ] 116 [ 528 ] 118 [ 528 611 444 500 583 ] 125 [ 556 ] 160 [ 500 ] 579 [ 556 ] ] -endobj -295 0 obj -<< /Filter /FlateDecode /Length1 1706 /Length2 8460 /Length3 0 /Length 9570 >> -stream -xww86KNE^G/! F7-ѻ $zykurﵯVF>Pf QA@^~I !.6A^~~a\V'0U# 1@qe@;` Ђ n#` ;B!w!O`nB@}h^: wvu^-^6Af0 *z: }N޻nn0qyo`P6P@x*{~_>\K@$w w/nlwvjsS@Iy{{{0{^7? o3qi'_ h!Aʰ@׻VC.8b5A M+@P;G Xݽ!xzx7?eM]v3s@?O WomG9@Ǧ%oԼ}O^QS / -߉T jz{>Eǻ>!`|KP7vt3:{B}g }?j7 ܛs؁]@G;@: ~7,A`wL KnJmaP_-O9G-eOm+-p1ܓІy]9•} G_W-y  1+;AW=.N6PAwgpOnM juED`/. EDwڶQ  -C܅<; - - -!w;Z?va1'n@]\ vBuɃ>n3f/-0)w[E+(|"]fU@P$o6]4}@lpa6RNMAJe2&sYmTL"dsH6[LSU"( -1a 'w֒R9vj+ -%P35 ֚ )kgQ+0}#%5`8DW-qyYk Iwd.$>D4hg?"nſwqMXDR cuu,XF"ë_JAyzsv n|aԗ1%99$5/ YXf+)Ӏ֖l~gZ,vį(^ђbL.T'>Uq(vhtzOT[+B6ڎH-'kr`'bª5Yq{}j'B;@cG=rз}x+ۉk툳ȜYT)q0+-5Þ߂iC ۰MC)l,+Fc.fb32”]vL4^<QK"R"{ \&( -$Jޕydpf$l7cI"kg.&IKDms%9r%cLO?i4)Z-,-h\/XEnl#h9@h(a^0Zqܓh%6/${Bl=Z\ +mUµE9u"=?Ņ>i7a#ɺIҊ.bM><+w*XR8l9ռpM#E1"c-_ ) W^+Wʜr -T쑴jx#IjQ 0X}'&e# 9I}Z”I%¼#oAȮGپ'R59M 6ϼ.\M{w5T -ssi7QCoG7Y/X,-w\<0=^bЉR0ժΆ7uvR+Cŭk)h DȖ -̳n '~n2CT@iSEE!B>,e-+2cq' .-K/~_Nu^CLs&R[J0I"|pv -w -C? qxGصDvs+Na/v?tLz\6#ˡJY[뭎Q -ҕwH eU -Yv,l/]w* -C1a9tNY1h#C':TOf*( -LoD3D^ZdfN^8eDK?8#X>U b$Mu,2~f͇)(:馵}5 J3?;X7A 56~=%>pQ"OxshD!Yk:QjZBg@5I:>S"8<~Aag}WpEMyV!q?h ﳽ/nIM'>eّ}uvdܕYkve$Vr =yH+L9'_mAkҡJl4PWA].ƭN\MȈxjY >JNh Y3e04i8_ڨe1$Mٳ,]sĦj8ɔO&K%9P,^ lq^dfDǸڌ{:b|I ̥%\hKLh/^H3}b@]v틙Tgk" ^F#qd1"֢٨^OO^,J5YasxFUy eN-+]#".T I0sZ${I :?%5ޗ,ĺMUyd; /{9"uގg ;3@BՑYuO'¨ts %J|\v,!-|Vٟ`]rf>m&dׅ.U`Uaqq;4!>}qqHAdlӶC ݊*[,dbi<;$p~P=mjYiV)et.Z -ffG SD NU4;^ r[#IfU ?p2*l~#."yoU& _-G.o$iySTZE|A 8lM"k50,M-S.7šwa(H~~nų}1wN=wà-ڲȄyMBV/W͓Dhus9&gKu_cȦ}@. |,nd+@eInQv. MJ\5; ͋UF^K_%e\^@Ӽۉܬ| [iDbRjj=*8kyUDh+*j Grěwv¿{\EWF]ְp):>Of:3&l8 G/xa:'+ӻv5۰N-ŷPhOţ_ZhJ%:Q[븟KG!5~#FCz+si$[н^x,l0 xajtz@kzN ƈXrx)bdѾ/H3zv/d*EOX3fI"6>)i2rȺyheU٠iNgOL&DeKM҄drŽ LExivj95@tgfUGMYўD 6᪤zjo]LZ^ok̰]E{@əj6>eI cրOoNvwoB`+&T;FզUˮ=UddHOM:h\'~mFT}Üc[T37}qel?8A&fQ~3B_J{յ,CZדnUۉǬbyP1ZNE~dS7\],?cv5MC)>o}= KP &}..,wޘfmt-2,n,,Kvjц ='|N6S_o{OOSX3+vߒ2.ۺ{5{*(vjYC^9\Y,RʿyQdODt'֋V<}o q}P/)a_ " -f݀t`7o`H!9?`X1VD =,"D/~䅧5GgHŘ{ʥ6Y(UQA@d,ͤZ6E١LJeԾ#z8[ߞѾNg%eʡ^V-fgPGX}HL=;tS}M;p(ͨngG^{Rѵw|&4 5 P:, :ZDkĽP0Wk7Wa߹p|̕-DXqԲ7ĬON n_ -_Vrȕ,*N 3aBc,Ӷ8GEUf0Jtvx0|֏./7=T9w>^ 5e~@ 1YMG[1G[,x+?ѻM蟻!8uI(9&OUŔ"N=K=L$/Oފh}aVb쀽ML;E2&5AF-yjՃTij17vq8puG91O#"u]Q֧CXRqU;{4RP֓#._F/(Є ?cM# ,⺹?T&!@p'S< -U,-ށc?HQVed&oKE8rnd+&r⏞\Qy ފ _p{_nlDG;v^ߗzr)f4Ƥs{R-+'X&T,jX֌2KRCA|?{ͷno<;~)(bN_uF8AZu~>);1lXtC{褣hteT"n6Iu_Ӕgr0ՕYblTŒ$i-{+uVPwڂAb7Id!-oMM1"ip3cIlIO5D񠯰flCu]5'E0K*JCddEM\=}Uʌ;(x=W7U_ yV=5e/~=ͦi h.L% xݥdk{d_]_ -SY3D^inX_L)!?g\Jy34X҈۫VBBQ+`VpFG3DWBmS힨|s[=7/WSV4Y2=\ty=GԸ_ -qK:1>[ۆ~C̔3?|齦5[lz߼uWiޗ63Թ Ha#UŮmSmt&6ϱa['Z<y>z*-&a/J1.$4 %BɣU>篧Hpo&Q/VM2d @ ].9MFT0O2ZU>_+H7iܠz :EQVI[QE,r0JJ&u/)b‹GRz"-7C2pm;/ mTyIk^q gl -A0Gf`AT)T݄ <>J3na`nȫ{aIcЇ,uV{mǘN!eӚ3_8d6_sӝmˮ\%3<[}~^_dO~%u -C{jغhm-H9 K#h[ĥa<Ĺ*+\tn%rڷ R,ߑ䌖6@ٍ2A]wBx,Z M` GY1*& |+ F]ƾ,5m88yJίա"0~J*@xO4c,:扨DrZ7[{ޝg!=^9Q__0{3)e^ FU72̙#w6![ -썅س ڢCUU^Yp鎸-a{ko-]$Dtݨ7ˢo_XT:TKԧB:$Зs?qb@@WYx7E™Pc2UgA&CYHJT,9~VeaKD]lѝm@֑( fazӧf7*7;g;$3luَy]"EBh5җ5A`KWt10@qf]h!&n(8O#^s T t^0N^R9 ;1=9TX{-歚Zl 3gx$$ue{nMq/3Q|c)LZC1WKfE j7VkM|[ p9. (9Zk~d~kϣQyB -*t;fॕc]Kc|hXg?JoєHn8x>oVQB}y?SxNp tryVor߶]H >`ige(P~#CpsVZ>N#j؎ :^6c>`jugNjÍCԴv8$B]ʩB`1mq:*@c2syDMqyeaQJ8mC%c|WNڽAM 'n2k[|S9%XHxΞdT44,mUQvz]OV*jWb-.pH4q/GܵuAtp)ӛi{Vܞ35"ݠ94!EZ"DKu - -ӊ --rwtKNQ oN,:@C{4=\z񾹔UՄ:Ŏ1zDSeXt1X智$# eKI*<e*(#֏H8]L,WJ+rzp6Թ~? !LL7g k\T;k0\y]7c -gUjj -endstream -endobj -296 0 obj -<< /Filter /FlateDecode /Length1 1630 /Length2 14393 /Length3 0 /Length 15460 >> -stream -xstݺ-v*mf۶mvlvIvm}=gpϪUEA b`twe`ad+:۳03:ؚX((ĜƮVƮ@^%@3G?f/X6g`b[Xi>S,,]`c`[o(#@ -`loeT`(:x|9hIT4h? 9::815u )zIPSoAPT7]AB]D]GY5X@gm'2@L5wvՑÃŕق|V.g31nftZUL.Ir}Riw>p[_ X+,3wۛ~}ށfT9;.濡:|^/_s+[_.:>ٱgtt'o=qy^73')R {31;O.pً?TmcaVs+{3󿬛92i[9e+?6 +t=M-G),͟8:8̍m]~V'8cw cY~sP.cokR 5s\?@όG/I7[[Ec; QvV^!ZPV.V@3e+WS/E-l;I~ -б{fX9ES{ _iO'uDEC.I؛:Y[X98^p̟`|J HL)G7W?3ߍd`0}6vwGe1:Y:;>`l) O_}-* ``p2sXX-_?^M 4[]r0 No (a<ԖMX͚/! -fS8K~O /ӦŴ}ՑR3}k"k$!2ɨXH6H}.31~,:zF_չQQ҆l湂׃2k< J;oT5. ߋK^n\th[OoFmTw^#CyHu8jFx5"[zS?\oaTZ5 w` Cp [btR":-֍\3l~6Bv9h<3<ʻ +Tl\T_=RwɟH\;lkB Zwiezʔaw8X)ih+1WPtM7Yʿ  8&pWS#~jNI/gtMZ| = K]4הMCZ)yjM(%Y^1JyJw98URT8{Ddޜ|AB7D|ڼ5-(sY}x }usz*`6jrk}ABYDwû4fo-c˾{(1>Y?5GIҧ B[[*iTم,Udug`綳[-HiYKUv'-s,a4ڟ9l-xTS*AwjBZ&|@D6P/YH( -B߶Uj()Ʒ7 RzdpSgK(ӭGV;Kw;T 6 GMG FjjDx.CxmyѤy}/v -4AŬ]Y<]:ThȲEjDyvFj5ͧ(ͻ)F:D!T禮8E  fՐɘ5xLVДro1F ʜ(FhY%qg/n˚?}85GG 00%3oϻp$)dM),Ov=~uBeG\D?NğTK.HjU z48R4OoiǪ bZo9޹2}M&25m,U~NגjV+,[,vQ1߀)7YHMMj^


[)#=G0;RM(7: h8f1e<2Qj-d+R: -TkPǯEshCFv= 37 ZhdfpHt^nWwz9ο1a`ÎV -)g2i- ɹXIGmUY(D LXgwf& "X8;uIʻ@WU#O:肀˶څ& :ωl02VUQSQdՖ2eF}̟ 2yWfw A!u.3kF eoyd!+HGT -9qr /5uko dtT h5%oD"ApeL_oS+yLK{a,DVcTT -\ET δ2{![LHy钿l?X p}Q>{=̘%:`LJkSԾʘ[k؃˭1(4wvmX&|oJfQ_5WN;c8[e -dN f~D}9ЗO̒#lEZ_ףtQf9?#; IA?2/5wc)d"|/@]̯prDM/^R4.BlJ `ïq n_oѺWv`ޛ䰂$hDc 49ajCJ806u؜ ^ZױbDH[۵}kgl5K7_]忠.ѓN}!0qP-C'D^U?iei@LBʤö]{Zr4,{QP?} < -ٸ`p9yvo]MAu!|kؠAh#ыN6;TZp߇ Tc*w&W#d<1yDD*b Kx"ECxU|!zt{tI" -(L.껂VXpIvp/:cٓhI\ +2Q_OTp{)ڭ(,%=Prb 5jOs8<(~Ǻ:K7`\$9j|×H}0CK i$U yO.&]RhbvS;lp}$)C83OxyXŽ? j4'Oxu;l~K2C9},s%Z!k-6ht.c~;*]>]~xU3btx#@][)AR&x2 -/=(*!iWHG1+ZNa'͙ 5ip~ZW:M_o IIQt'$"nKai2BQi4zVhd/6tFh">t~Pv5J,w=Y?TaVlV21 !]$]Jܸˁ -a1ϳQ.g 7$_@6z880CV!Tn_!anF*7Wf%$=KU7Ameȿ5G$om=1)- -C_G< R.n)uRF8ّ7,"] .=UІ6grXuNnmBXf#Thl#E\* 2֎"Ȉɴ [.1Mƽ ͢ /Mik-v| j#BԪvaEh,e6Ŗ&a,RLZԦ.ciOI4z_kmVK~p7U&e8!bA}igܪIv w $+FG<%92RGr)\$yM!)Pcktj4SsZ -weo -f0U(E*$s1Oi*5 -,0q+EΉN/E%| >J$eIu0Rhd.]3czxD>&rԡkG@,3{Px;JڙD2X)-y!FѬB!uĶZ"yk{alV( -xnx`%hGKm 3@X2 0~s9A -߃ۭyzh3NOn +YT/k$ --N+ -,Lnn$wO=T|M QOUXQsnbGRes+uю'K\<JȎcjȲ Vj,d铍d,X]YGtO#fW4 n/v`L/r&]Y;^=`S#2WE_=T) ̃;|= yЃľ(M\r6)=HX&osA3m .ei7e^@v 1VZ9+K1b mC0dݑ@T=Y;MPnK-a 앮;7Bח]4<ˋMxSDP[6<19٫e"o _3HfzAZ7î¹рpP8vg ?bsqqx4&50wP`u`Dwg[덽a!j,CȴV2]udG17-SSSa;VH[j||R5}a:6?f%f0P˱6+Ч^t"BZi x1e Jé]uzƊ:ȟ}"-A;koQ=-]j >,ef7 \;qa|Et'[_/xMYp)@жr`D-kiFVp-SnoN=F _6Wޤ쬃tTS|ġڥ_!Y^4wݨ-z+Ô{jyҮ`z?^|hb~@މ^Bޚ( U9zvE,g^.^b^%c%zF}}&>|̓/*ÙT>*iQ -p2-KG\뻚чs -|3 v#ՠ:W9<L9gf_=Ge `Gs6Me7Z1YkU~QSI*J$hz޻3Xο_vV@a/ ̔mw5K6TtUqt%^6- |J-&vRL%$C)=MI{%wn.ߎP+7Xy@aX8sQch\2KM@[mer;~V XZUCVJ6 -rQ1KztpAs*30b9؟g/ނ`3lC*Ou> -CXwJYve<2fG|4܉^ -6\MuBF?k?2G+`>gw-c&8ɦߎ!_bK֍/8=)@ϗ42}pw9cka fRvn -GWW=wk%Z/ٗ²9Os: "4ԙ,Qv9ts81H*xϭgu-\u;˗%$7wIeK=7-k=[GdY6|;r$6 0JBU'Zyg -~G=9. ilAAB籃785'pL"$!o3.(+T _OCɉNЅtVv= lfN鉢k,L 2&m+3,Y%Qȑ@tQu F|q6H+?\MY2F]u=6&chK75''?ET:PeNqqeǚ"Pn,JAU欋I03ׇ])Iޑ./<J\*gn+Ʀ[v>jL($;溡ds{:ӣ?C+-)t"EJlqPSx驼a$.%v{!dd Z~`m*ULD/2nFM;1>8A' 0; ptt[ge{jK/,&n+~yqeA [3z\v z"*2  2SJz@60vئ`d ;J8s Skt@\zI5K [֥@5edɥJ!@7 ?b5TdE85Olpe_=17]Ϟ(=>bz$bThXSVs(6t L&6]7Wl~ke 8q?l,,~o"IU94FS]ls0Ȓn<0JRp [b ^ 1w5Soɹ$ꖧMf@uЖ>DX0ԃ,!"=++ }ڻAP=XDkT2=v?L0 -VQJLފ^7o2c$oQr<ɤNW6_ER, bfcMh[dvBNUP.W\1Y؀7A'fVјU#w8P,ͨoi䚤(\> -f1 -O}6g{{TDf+:v=a 0zԧ,SM&UޣnJX#zo~h~eWJLM rWk~d9[%vk_9Ku/ʚ:/h&|H}R9 t<ѽ MaKǷXTM҈pc;;\HOc>InE憯ie>5q]zVD#yy:)( PJHՎO$Si&x=sC ;;p?ƀL^BN{:@HȘ6>owH #~ǹ!RZ|[gS)p[/y:,%J_}_U6BFB L(*xgJ[UM?b"5/ͺ:nfzy%Fs o!QCh8>KA#䆘JXㆱZw=@M*ڶ`.o3HXΫԽCz-m`wtB}I(7E5ē?#k] 9+؁.W|Edq'%8t2:ނe 'Hw){VkT,zՐ2E> nXSnAm^~/K!r4F0.Ma2!iR4ZWl2 F`*cTm&cWB|H 1b'Din ieM!.ґC틾@Xz[_l 2ݻ!YYh}]+M[+Sâ\JIsD f%$e&$k=~_ -7i@xM1U,T8qqۓGg`";[w[E* 0C9(L՚Lu?{#8MZ"G(zwcyѸzŢ~3聆:&$9[BB5?Yi㮒>HYHlTb/~쉝A(YWOW3\~2 -pjcB&M9lpڟHN茵+vBŒ Ytqy74r0d`;w:mPPPTs 4/ pg6=83S,f|9'6p2|yƷȮv.WсV<1y8 o&}>O /V_\ܥ;0xݼ@Ŋ:W8&񌍸 Ye.f>j$+lAFJBtn+C%a GJ(W˴[vᅗFjQU%7:\f٩Vy$Y+P ^ ɢ<'nvj6E>{,BZ/L|g5I>s:Qk1>2FOb ϮU#+z1^,m7p8K9fG!K5Ms?W`p+D(lwݞ=M1^&^)~.u]KL;e] -nΈ]qj` q)3B'#L1/ XH8 aN:#х0JoDC59sBL-X(HЊ &XF񁢘VJVηvpL[CD "J`2Y 5CS6sc2=q?uSF`4*4 o1z 1#3y<\kQ66}}j)w?(xyVp bd)Vy\*96ۂbO[4RGXٿ5E:yv 8B\ts5l?U@z<.U+?6hbZAi#, 7pkHne"~YfHku Կ~6uLkY/{S Tڕ=rW/f=DsH 䬖љa.~LY^q8o|1~Kq -I$d ޝ@@Fգ;9 .g+>Y.B -lMl\[;u%9)ӇSOMb]A7+iDHvЀO%+ (:ZR9"\ ->1hȗ1h)#FѴZ\j @|{o6v!Jhdج46JEF*2zH*,iȁses3& ħqƝ"U&bX2"j+%Ы1sjaڻrh1bjb+-Vzcv`h<SVI-p攵%NaͶwr?|6ٝzS0(x*`gv`[yܐ~F0.ql daqGZOJvVV~/#GۘWN!0dK#x ŝlꌂ\jk-}W2ɫHA/,s=0 y/HYC x3!Vg@' -SVex|͵| 493L~]_[+{FG/nU!hj_C0GD?&a243v~_AuX-x.r;(64€AZ<@#{;&\ 'Q"%9]k2>aqUXR t,y[%| d2@ l{qiҞ 4V2a2(_Fmxk&䠔$k.`՞v|tabKʮ!݅߻0>⭵kuJAv46#a ~`\LBu!\29Მ: ;U_S\T/ȟ!ԞaDK6e<9p-1k(ïJaa2:7AHÂN#{#1FPXR:H9-PҖãiMgL/Oe;%3!dOKWC?Pڼٵ*j>ё@]R}š=/Ag1WXw!9׮6dQ\^uJuU?Xnp~C%Sk!+p1#~㭪9sk1-P8#+=?6KNpoՖ}1&B5 .ոx.|_ 1.-EiG7F818⒎&5}1C ̞̿}FwIY"c+"˭ ,ެ5$Ú\v$/vxLV'Z*)|{-j^t*nQw`Z -#D̂9́LH~[բD40/6;q~ 8 ( ߍM֦^w 4Bݾѱ"{ZK5D[2?qF Аp 5ؙ)5Md薛Suա,13@eV erd@0w}}6v˜J*0eX/{X2t:ZCy)p?MўTq'M#4(o V*%rvNS%<{!%S*Ulu6$cV-? -endstream -endobj -297 0 obj -<< /Filter /FlateDecode /Length1 1633 /Length2 10314 /Length3 0 /Length 11381 >> -stream -xTZ. )%hqw(E -H ]SKq/Vܽc׺wed?{f١Td7e `GVvA<'V hGJABh"2v|1T -N6.  ;;]C @dPf(@@(*$da#ޔ! ;@25-/MmSB [:: BY!" %@:8 P1]+*-@K 1wt1v^6 S 6:^4v@_J0n?#)[A6@#3l ol 16y1quK5u9BY ?jd#Kf[[ @@ӗ=\k02(ɎM wKm"BWftq% *9a_~P=@*rp@o1/2+ 8|s2|al#fPc(%$ . ';r8?)U3};#ʃ!/q}T75P &m+·aI*_oQ\*{ɺhH*/`4 -:' ui' ->]{VlKr-ʋՀ y¼E}'SHp׶=I{QV@t$q# Smϴ>3\^b B-TbyPj{e{T$}XTBT|*L*V 6y~q,}h;v2֮]wU簽3E)8dIg+ ^P0vbg&_GPզ42-R*Uk۱{C5RhVwCש~-zg8LpȈ"^zOt@#-RǰN-C$A*/VGQJĩK~L38 4IB¡6˿"$W9~bšYGN]#iƄ3Ii7se, , ) -:̊»5>?׌r|%:F*|qwc,(:>AmcƽzAD[[ٓ[ lc=G<KWWjO)V"@'hnFKK>FHRFZ1l]iBbU*O@\1J"ER˺-_-@V3˱Y*@d5%_VbROvn qZnrT϶eJi. -G$4iX/m˕tmY?} >ip۪պbjz?m&] V1OYcq^Lٻ\I\tm@r|);a~P_UF׫! L $&! Uw(zb"e~R.!):צzʿe\Y;d:?H*G}h3hiWge&oIQ}mdI4yq4 @-􆛆;\7O/$En(}:ܧ㋂VjqѬcqߪ:m;P$a~ܘfaj&ϊ#ج]&),!w|y#|vh%Ts|9\[.s/M427r45߯ȑKlm\F7pjzJ>G;~'>N7}禒`A\Syz[@xyqRPws|l56LIlRw~'<]Cj-`ʥO-g֤!)s?63T/,:SisF>[{2 bd`Q6vۍA(x5kDѰ'Ft?ń|ϓi1R5l`n^&s,m{Nu!9[L&&7?V1G1gV]5 lN&I:3rOX]ꂋgmll:DYc,;WJeba[crm1tBna5<6wbgP1tXrP9dƖ0n=7?FpH[6p?̣!vz> -w=蕐'#:*s}8>7qE'v1|ʎwd65^O([-p oaķܘP]9~Nx V3o=ꪨ_l"ys7<աB&ܰ pJ/N hGXGf.hN7K/N'@k}' ;y4W?JʠPCy!gC?&֧bF.6ѥO$$١12Ǵ>3s׏ߌ8DQ=W/m9.l[&O-l:šN1ь*J+jbq#4HB?6ֹg .F? -"x.@>99jZSpRc ֓$n++%UBƠv:jq#Э>\و< /$X.*竌U,zc5mtBp (%7sٴLGV3=wHCķ|T`"k&XMr}*]K+~%'A}pgGIfqBo"q٪!(X%OpdS ',&QDeǒb'2vER{ #B7Uɼ6R߈B=}8HBtwoȥ.Lt~z`u7Mݝe|- IF9:vN0V7MK#opJ%Z]Lv1c`Tĝ!!ҳ?b9 -d=e/ fke=OH+r+wڤZt7o,])&?z>R⩦H{(Kd'«$Eiίy]|.Y +o̺axW[80ZklDPqGS%>ƁgL5.a7 bJ,D䁵v -lF߳]m1w=crhkTpϾU>`8ݮ?iy^."ۛr<;/>El0&P%:w y/ҩIQjDObpbƔ5JB82k/Xr LU2[{n[V&<93؂\e ,~W\y(0IܓV`N# 'd;0swٴ^C^ -3L<X:{ ⫖RM!%= ̷4{®{D?$>OU=FQx/%ol'??V+t`E,Ezk=0VQB#?78 ?c;{CFA)l*A )cZ< WvI>IG82\} C@~dk7gYǤ'4oNϞ2o w ' WH9T:LWHf4.YT~+H(;e&7beSƷQ5 8F?T8y#ՑL'FeUQb2)Vh DG)16'SID*HX&?a}S!7BJƹ,̳N!PK-NR_J$Ki5 (3nwA띕FߊGMJӠX߽Tgn%W{fd5._gBvגV VR69V?zvQq`REfeK܇#nrZKy`PJݑfSďU&ߙYh(_.-+懛(/w%D>D>9g&j)e"<>((xtf_,"m-KӰ_|6AkxvЭZ(XYr;-֒Ż~0^Ӝ͇ qNЉ|,(RdKE&* -ou{8ڲIdnizT$ zeCfR>6|.5:]o5, -έ4c7_bu -="&_"0g|녠)H FVhh? - 4&5S<}vW,{ǽE7Lo@.K8F$ -Ei}r{Yfԃi*Ei=GŮ%D@X~2q/|M?6L;,IhDw} 5?.g(ښl),^sxr.m/]G譱}bK@%MTM 2Q5iR4؊e}bs[8+} ֡S>q4+^\ZWg0G{JhC?XrDl<7BvR:a1a.t'NhvS=gHut8c*ϋ cXYKigQ ,0鑧:asH!k^U2/N#P8@(fmPfDⓘcqYF껭լ!84-9ptr!iHmx8 ͌62{Q=ܱdI3ua6KSrkM$t ,?b~ -ѓ)GC%sgA< BKF^.#{]6>N!3< C|'H*t(cRgȠԢЉ |ˇ -g\@u#iT|O/[Q#cW p: t9lr48!XR鉩^%m2h_unK%FԘb.K`\e+[/0`'c8CL=q7!ס -O9 }粂acOx+rF>:(i[#Gmd*b]hw~ K~5Zo\rH$N>ښ"4ŁIy\ࢎD -l8]hÙcFٙs1y_LԾ "ΓLUa(*D>)cгfƃgn]>z g⧻ qN5,wO<[?Dx2?iQ6'LPc p#8u95ErfJG18c>ntUxE2)kJ μg*[PF3'?FccݑObQJmXR. -{|6ڃ^֝63RKz=S:Jw: јm]aYmöא#İ9AaԤ5V بd0X,X<1HܕW9ax@!l5^:_dgV$'?QDzCߧv9@5qx60+y!f7+EU>j?It=lM+q&K6p*x ,ijwYݸSڹWc}o}{cLz*9S様mB\' 0ޱ13vo3'mE8dH)+a!EI-m+zZuߨᙿFhR{'hio ceYl-9ƒi[NU])yb]PӾQ Wke/hzGkU4SeUS Jg't=[$j gXtstK_r5#F'L*d{| -i܌;J%ˎHa-?}N1{-jXk7Io8# 5UnUq@MRtSmV?wh,X[Q8[\+I<22+~ÌSnG. wkd?vwb;$G#1=-eʨU%3o#dm8-m.>89Eq ~!* f $+D =g}~u{Ij3V"rj djBRr1ob8 uA!JZYSNPΗ%?$3wuO9h͹񘛰ުf{4P\C \‚p!-:=f`M-6ac'.n˞/..Z#_a0x"WָTU2"Ŵc{0qMYt~ dzD=" .! &]@ŝ@€1wqXr$jbV) j9t~׮+kWr+N3m*éV6Џn&@_a͸) -j).{r -Iz>\klS?:O@*ҧWXsWfsZM[$़5܋/:mjMj&1s_;.lveҘKkČ~U(ncCJQ죳tp82 -11fjg4EP+`or;?6ZS{LfyT x ̙ _Dr |aRb_~x -3Yj?v:k0 Kl4#`/?ֆoL4KV#Pj@f-"11z~-SqykV;F»FykL[ ݺ줤ǶꢮTtѴsc ,\vQ~fݓ`]5]zHG|P>۾9Noيb,Rjk/="V)Oӟ8Dj"_==];[O -2iZp:FQ2+*K3 u0¥)4? G3H0w RJ`U hl?-f;RFlym0h , :K0d4SsCgj{;T"jΪX75=s-%]]Ŏّ%G ҈F V'#[5%!<}hRMvXlYyϭShS7e#TbM6GD"=ݟ>r=4u|5\:ͩ{YL]NL -Ύ,qyKAReA-ÈwJ@x"o +gwz$:Wf>ܸ$:LFK*73 Ւy}%vqjsRtvʅ;-lN3MC*qwԭ P+,{:@:%3~GT7ҵ -<3 :!d^!ΫN a/q -+a;vqD.|VbHgB4Dڊ-I GOü6+P{{ BЌW"bmY&ΝcM#kCDE>L{|5 -endstream -endobj -298 0 obj -<< /Filter /FlateDecode /Length1 1498 /Length2 7107 /Length3 0 /Length 8108 >> -stream -xvT>%1:QlA钔0`chVDI锒PRBIo|9\w<}p +9!`HZ"J`10Xc G{@<0 - -Ec1U(릋D|=1 DR"% E`(Y*j!0 -+wqEcOk sBdd~k!`ٰ%>J6#H_='*! P@؝6,෮  b(zJAp(@e 8Aa߈8 -=B`"rJAA08P7,ٿ - sL!os{sJ_xuXng 0f{JA*;ruIiE@q(1Š,.pl 0=zMVacŵ `wmZ|56҆AFll J/3#ވMm h3ɏZXwײq<-Ho -)?}ƙP8,4MII|N4̊_Lޕfh> Ȉ4]`H!01KY 5y'biC\sZe@ ?(ί|B0pOfZzc: `;ž=C„IlMYA\{C~q4acWNtb 3-}6rJ:Nn_&@?,/Iяkfa>Lέ?/ έ3|X_ZX&ed4}3gKqyb.rAK5|򬜫l{BY6$Ô_<j}Oۙ -N߸vJ9T#p\Y#خ4hjMSkT/2In3Ƕ$j@ۇ/| {۞΍DhX uT({|DkÔRu36x^Dzm^Ӭ&9Q|JgyۦAT.iT>1q!HXBbaVCjowGz' -jR '7 -ĐKO"-&A=ӋX^^M3.N/DdUh$#v*v>V'~0a7 -yu*ѨpWzM^4L9ӭ}@ 5L@ -RؐO;ӽ/B=%; oj{> -<|ΩV$MAu󥻾U9֭b9}-%U`M7ǜW_-uVH &ft8+8MSfX^8D|#//\UhS{Ωz.R;2 glt_Xz!=*o˝[[VÉgF6jx]l?0- )OK]ƫzr -&A8Duo)nRP;hNa 6Z pu:݌9;w^6M(ͪm6v_v.aVXp{1HJ1K}UqVSD$ST1[;]rdh]tMM K ^D׷%ܲޕ YeP .ȩGg -ی|ɘV4 :*7Ch?(# /)Ijc+cynH1@kj.Eh^a lm$ rwUG_3M^@B7o8YF̢/y%d3$P4Z}cPu&xRzԽf=ܗd䪷W n6'qAZiy =gNʔowEԎOK҉u,?g9'IJΈPCY4WpC[aVقiZEEd0ؕeYdt곺࠿܌/\ '2E>A8p9,S`rq^,fK3HF=d9eh<ٮkdN .acXHjt{~ @H 䜳Xp~3R~1cg^Dpxs4yzIWU7TϛN*r:kG^eԬ#g*YH GHryyn|Q]Yft{{[omjD_Hѭh*L3=k2 |MVMefMy9p*{w<^1=uWܕޡ%C!WR(p"{-%仲N2Ler]or51Tޒ'";A=G9nt́]\oWN^[)X(NeŌe -M)c#f"^kGF^@QwDNȍHSCMZUG 2{}ڶfR:W|lHzT@ 7z W|[%k qrp~7l i֮B;$8FcbjQ %p"ц*Ožf+,k!/l2V/($7Cٸ_ u4`]zUÏtb樗B2{+NZ7~ɩ},ڈ:JߎO>ʦ1UUMOY1#`o:8^?I5o'\ GFJ o DvJ7{=p"d.d'xT,AD2ŗq=yi6j/:$v;k+ #Hr_9V?7v h a31̽:)CN%t@Hhgۃ~%NIm 3[{V{3EI[Q-fPΧ!;.KOɁTɑ>vO6A\?iAtFICRYDs堻Y/gW5A1Ԃqc8[GdcZp֋-Q--s+ $~>`p&B}63$FT941kRꈦ *K p^`F6wo0F_H(< -b\]'K/*(9^' 0K._۫>% -ɹly#ib - C|MV7+| d2}wH垔rT>.̇\ƏGoՂfo; Yfys4lb.-Vu '')*Y'R,6;wxīu &BN<v6CC /lRiJh#MZT4oILHv=Jԉ4:Ow.R-O -Eۭ -!h&\ I>^k2=z@nR*=G 6t |D - !_ֆ"zdc'e/@jkӃ=ΝeJ=%L\Q=Yp*ؠxΤ~GhhvY[yݮ6/8Fs2NήOrxǟcVQx6Y5EfR,?fSn!dt":h**!dႯ;~dd2T:hv(gƭM?*Teo=\Z/wAOXVu+/=SJi ))(ye,9Xק9+J}mYaYm^mED͊B\uj$RotWY-@$`]N#+߆/E3//l+Z#mwrH;*huƐ"r XCV?B$A扔׾>N޹.L9NVx6D!H4!ŊÃGje~ru{Z̕z0f1~6zđV#H,7{:P nd)1dzW 5 Zt*>3U=ʶ:tIaGI\שn[o'c՞hژCğ$qJM-;ݩ#|Kod@ -*<("ٻY_YHnDM ח;wUy,C&*둪Ȗ%Xqq6բ<_c36 b'.tؙd?h4$7Ж~n}3 v={ ]y%M<0j@&vкYdK5^<=8TU*?=t pE4^TI78U /ݍW66}L@l΂^K+ӫUQ,sn'ANU3en5^+K(3u-s@x^+d<8i|Vct蠗mwS._+TB<Bʽ^vK49穅*:-P䋰;qF0@.RO3%L2߫sQ,%aq6/5) "_kwW ů=^\X퐦Sɰ׻j/\?>楆yX}1yEŷ\>5St.܉kI-? -m<4h6 k_ű )2$<[o!.o] |~8".^h\?D9 te?RuR+[8\̺~i{ ve_0V*1K-}lFng48Xv}dˍ[mnaDiv#P1B]- fcOk sSkDIe?flxK\AR4yeMΝO|o'2QyMqe907:|&B/S׊wdk]]gg'Q85sQ܂K77vQ,⦿(T4ej$S}gA]v-u 3ZVµA.-h|BG]kOG&G7C> }tlth{_êzyv$bwKQ34th^Z>;c_#D7J#@'pßb,L:i7nZrX 7lIT/W|"M1Ǩf៦vf6<=xes;7: Y|քVJpPzb$vhy)V$G-,g9!?flXMIeں NDhq|`ܳ)V^6G^ӥx -eGדԙ}h?FƜ"ef p7]_KVRO8Z_TܲoXdžFF9:4e˦}\iA=,t2y_?La !?i (dN??67 -endstream -endobj -299 0 obj -<< /Filter /FlateDecode /Length1 1422 /Length2 6295 /Length3 0 /Length 7260 >> -stream -xtTk/)t 3tIt 0  3 !HI twI((" Rz{޻ֽkϳ{;!DA@)8ٍ`(8/5 DH/%w()Qh?m$  1)%vDK^0;@z+!]}a(t.7$));uA6uAWC$E+# -*%(-v@;ra(G @  `9< (o;Va(ተZ]W(⏳>_w _`` -F{ -U@`/G0{ap-w`><;!(+ UvJH(A?e;v_?uF  0/v'T]/J KnQWz#_Wo#  -G?roÿ%`Ph5;`DsM/;$ ->TQW4S?6EE@ q@}woWo#/Zp2܀A pC}K(w z\倦' -Hr gv0OP@8)P;= -H]C@_/: -/z W=?&zQK} H_($*} Є@Kzm>@ Qs Nk @/Q [W;@B})$D:̩6ZޛuLw7L, -ի2a50;kNTujԩvJS1?w&ۄc$)f\{REz1wޖs5d' I(Vox[]E ilj0Z=YveTNLAwݥw1!^{lOQ* "xU& yė9E^[dո-&V3{Mp"\b<_Kw;m^f)|g#qͲ[QWsqt3Dr-RxO6 C`p:ʸ=g,\>=TE:؏YM*˱cl¢qLCꉳTFvr<4Qe?( CG#gZ%nYRJJf41݁ۿ?{J|jBŸcL[*vC&LfI`cP9x I&1Ȭq!n-0klHwQ sf,(.dG0%'!"YjKwhse86ofTE{XP%iV̢ܔ.1 ]k~p妼)-wBm#dһ!##]7G!VٍE@KG,yI,e ; u-ǍmYIZE棃o;I:UB^CYXE]OوVE^vSEl]MVeY?Ts|pvm7Qm|'Q7IWvشK -mO 4 ̟켤d|#ۋTا=ZFO9awMۅt,4P o/":ɛ".* j dg"%Vth פǚ!g1ղw&6<'f*5_綰ZAc>G3D>Yk(Rj|Wi?[wiDthھD}^jui 8pJre?8g w#'*s=K -9?K -<(R%-9t+gMgTfH= L6ѹ5MM[튗;a7&1%l4tU]2FtDžIgְOW{R*D -y%=ƩS] &7Rӥ3fDo%Ș>M{[+5KM?b`p*}:E{"{Xy*9bPQ.k~5j -QJz+QP2砃4KOlRi`7ѡRG~bѢ/֞o9r&ʙ6 ؓyt)|,{F]戚d IɕPif)̑.*m~QH{c4 CXһ-715aNtRqPtJe-$?yu4,c@pS_ /ZkM>ǝw ̂:9 D| J4&N1njbPm=U$q2ƑuTcV0jowˆ[s ˉξveOk$g{1Ycm?&Z5)_d* \ ӓzdNG#bc07iӀ"m}qĐU寽(Skw_v]Ij0e*zZ+%IV0QsBE7(TǓJL"3JiTZW!qw3t_28W|ֆT0^ -_2֘"_t=r &Jfo;\W&ÌX>![K-e~WAk2 s P$l$훟OU+͗33J7\JvMc͎)N)HV5ܸˆdmCYKk6e*-ch,_s$Υz_koF/s^]щHƲTW:rs K[HT$]SY?[dr~@#(x|ECųԎ]ߦɥ \ۯY:_aeϙ+Jqj\ Z0ݎzLJ(lc+ -I"~3:(k`8-x,z)|'y\VϘlG -o;/8r[1o.O^ߞTq3:8B -*58\S9|a>o^?kvK&IGJe7K:Lqz\ӵk`g!~qtB:LmdGL3NkWWV-*Q^[gQ"w 4NLsR9]mWoZfHDޟPdѮPK|!j]ip? qt'ѧc\n՞=p,L)*oىbmIu١v| ^t}solfM4&w\8|$zu2{ OT3cy xئ'!fH#fz2w>XL$k& XiWMѹwEiUnzՐí(x%7Sj| 8.yz#Mu>> -NϢ?~\^^5FmR+C}׃/)~4)-/kJ޿: 3;KTV_#m&/Oh&D>4y,G$g\sd(\=&O -. p -_;T =seeH"uq̵RH\k}&}D0Xyx̅n.gW.;ɖZT%+6P{r^Wa /Y,"J[Xz4-)i2\mk,5cմȞN v[4AnчQ+-˽R}G4ݏ%s`~8qeM).CsBTI'SdFo-LaGxpۈܻI͝m76\'7`ÓJR vj7 y)> -stream -xS 8'hDZn1KY!";mƼcL -V -!J)7BBEu-Z,݄{-=<|9s9YیhxCܖx,OĨՏQsai곤!@ lr@3$'|C1[,!?b|;t @&kͥf Ӹ- atp~(nB! 0o!, @Rh5,F łg :8 -!vyy%|+=[%t؟G 8 `OىE-eiiN(f eO@CHG.- ͅ!_-&e0gi0<  -T |@D `: 7{. f(( 0 b&D@ /B#/q1߫n9oC<*?};y -c\;|n8gWT;߂p0M"ںDT::=X[:Р"˄yh \Ph?`zētC`.l*"pC&Q1-cspX.)OLuY4qN,2yY?\I>M}W{nyA0c:t}עL)i6ueFcǥz_;FZӹnV!bL{<{д85w3}BVL v -};2ּT4nڬVHokM>In9]1>NR@g٢S%yf-TUi$%fkCex;O nM[ç hV며JT+w6~pnadsD@o/ܷ)ۙ٪ެ.l}ImW6z.znv* 8 -n 礳2NYҩ5u_S* Gr(Rlvt/k%;ߑez7I`*6 E1c%Y;*k 6S\B4ه<}񷛏+Mxfx. 53y+㴂#k֞K9B%u!C]u:/W&up' SR˧>2S/ȪŤM9x.8ϣ:,8TJy aΰ) rS(QLبJ#u&2\w*2\ϩ|UouƏ{Sڝ*<^w1Z>32Dcy+.u6'7&ID 9U__tU}<鲍'clGo%Z-itґujåIĵ-וby;hiwznY䔱.o\@YHE{C7+of*5jȿ~l͹&jVИԿyPG=M8z)qY2M,_.r|XwKKRgd$P~_W_T/v*H7;7,xQ:.+w&}VF*!AҝɄ R id,ڳiWN$'̊1vS7V3cr^[^E0~ߠfD`~0`xv6f.i6t,Po+,g"7xHv!c -w`{ϒ}&.jӶgp8ξ4JimR JSn19Ӱ)WqyޟRz!Af)zȿ-yQP4ßw) jDw{͗˲UP!UĜo{,[XGx/NNgh%PΐGUFc$]|&+l6,2x`bJ2vrJ/Z}"s]߭=뗯 5uBZeiiY0NVHusal [30C\LI&NjRUPHƤ>!D2rtWK+rFc8- Txl25UɊb68qm;5MǨynDV-v!`je_M1hJHR h|&Pꋩ ePRUG dRjռduj9+N։dyxb^-xl -hC#ul.OaIf&|[Ȓ.7YS)a7F&EK2‹=]Pe.6phه*pʅciF^ZtC9v-;ev*3EK+$ێ-tKIH4ibrAi=:SG|%;f,;gmpFŖԚdVLmҴR 7IȄ#{.J~RZu@-ݪgo -~Rt*d3S;lqOMk/v>AOn:*1xv2OoE{շhJKP OR5vRvѼ_wgc7JDpz{u4es+%xR3۲([)rfUc扨'Im#.DD#sIUunokc8 -endstream -endobj -301 0 obj -<< /Filter /FlateDecode /Length1 1240 /Length2 1527 /Length3 0 /Length 2315 >> -stream -xT 8Ty'f%j&j$\ƥ!QC$d9g9L®PT+$JE'֥jgP۷=G6Q@34%J}BK`χ0w6lX(0)@R!YchdՂ<^_20%aLPaj#20Ap {|hr^x "B́"Fs-@x &7h&&`d<|H(yp^kI02`#\9x>; 8`u6p_8BXLD0O>#E^߽e|>`".Cqh2qhf?Q.@0 -#|& ?W, pRF'"<)B!:O5rڿq<ؓ~ۗN'<$B̃g N`3,0 !8OЄ[. @`LRzlC M| C\X|7#KubwY>yǃN%E7[ B![J-3IõDž$mSLS@ETHmn(rgza -@ĸMPqp$/O0*UnfhTKC9b m| I a3ʱۚ}+ʽY븹nSBHUjBңEn zy>հ6XuIjPGJ!HUX+]|IVޟПz-萝R^qˊ -|z姾M^ 7]Zhӊ,$'֮p5VKӸ7RJmӏJO=:+SrKl^ !2o1 N?oN'̌zW7ܫvTM$ܹ &=8֚*4SKe5Iїu'1U =]w8n)єz/7$"~]Izҋ;O?wNo᝘ҙ-4nPi(^#o{[0;Ij}r0TeWvB[mHZTicI[U/Τ^= pQ TaSpkq=Zte?:򈙸xt]Vf[pVꞑ\r4LÉ[22ߙlx\<<3FX >l?t~#G #ϴ]8 Z;OC[t>跅n#ߜ-8q^3$KK{lܭ!y\ͷ\P1wP3e-)>GY-Wߣ'߯v82Rh#;GJ?k[N6euzozN}ۍ<FWJlRU>5ڜ'm.鼾:t XѰbXXMwC}H7;Cp3oT #N!Fb$>i/hp⪒N.+? Kc%nŲ%]Qݾ\&B>N{Mղ W"%Z v`֪m -eiE9$wdOE{%9?Lq 11VGj;S97桠E5xZbO~;c(#8xA -?iosvż<[sk]~!"ounKHF[e'C9_ -endstream -endobj -302 0 obj -<< /Filter /FlateDecode /Length1 1624 /Length2 8099 /Length3 0 /Length 9163 >> -stream -xT7N# %! ݥ0` ƈ---!""%t#t(;?}ٞϽ9ca5YaP?/P/y@|Cb C`P`)(3- HJ P/C\x0(E抄C,6~qqQ90b@ * ``r@ \%xA.0 7 ppO-]6/> lCx` -p؀(-@it\?50?/ H`qt5ynjCEl::Aa^P?v/ -|FPXMO fF@8{8 -ntVQ\v( -`plQ7x̀}>YfuFcrT+q&J^ x~~qA((oT6?ՠv0P3pAc07 -mP_oE֣[Kт\ ?)@6B Xb--jj37 B6 _w - ua_ jlPO;~UoJ% @p8x$ G--\x0'ʉJ(DgA߀ -y(b>E|PTQ+[GIR |G -!?QBevup'0zFP8_P^UnxQ) H96=YdY7񝇿 M YK&Y~NK#~WIo(Fw^=1|wgقޡR!F[Dvգba(bf]oVDb'(KUԦTY}7,YeLS^sIwdY?o}2*NMŇIҪRƐ#{]ڝ['r,ڀU5YʰaMpx϶ `BR7Vj]H=YAIњ{ѕՌ{gyna_yTbhO3oR T\2orn/D%EU*Z~hmqQ\2lswrM#va|W@_b}1Ɇ߅mAA~`8%ΠxM%շ#w8˅ލgOkQ;QVUv[0`ʼyrX=ᗵF`S3Yd{M>?t]Vmh!rL++`f#dwj1G/#@\kI -1v]'~,H{(^i̼ -Ȉ/U#DN6,MsL;w5VdqVC"p̔ zshT\fd%h䘴MtόI(xªNM9Y)iYbU`@fGD*MVЊ3cv~'EZ8#$Tdb5X&@$_(y|L#BD>p*It܎)QՂD --u9 II> t@HU?4 o0]fXP}0 bZ-& /mehKZ JɘG\p'SO/ZBk#'PjeOJ,h^'cii3Pv=ڒ8x/ΞIᲰO&3" !{Uls4 ?={x|T i~@ Ί>] 1@dPɍ;F%)n[7P{ȆޟbM)vV9he ѽZb7 ]^%궸b\JenX&d'jgU> ƾWX؛HI{ͱzw}{ΊdM(tU'TRY Y_!ݩc~Ƣ1E@×XwUj#Zbk]ҊfYAL/瓣3υ_Re8U;Tn{Xt`b-F?1mT)ƐW1c[Еѝ|\6ڝ XZgc{.Sbo"[ubL<,LtQ6%K7[<|RF@ w#OC?%,0]Yenv4 ..?2!~w:Q'1ٗxAO,~kxB188{wW*c^HLhe))ۈIuFEF -IaXZ>& 8|W=vsXJ5Ou#11}Ԝ~P~ k{GkȬ,V"A3`cGDkCs #[fMx\i$'uRo0p>oA01{fɡP;` ed:8c|7:uJ_+zŊ/o%PE'չ;I\;\f">$!Hc*#bߛcȆzko ?*_dtK﴿5FOǻΉG#1jc~C[1obL<GILw,uxמ31%:X{r 5"n|v.Yסca\&W,#tIbi-'W% *I"7$R3qlvjC0Gs 9>`AOҚjG,5Ҵ4U7jN -W{bu!dÕ ͰɎ}\ X ޡq52ӽK{WγL3[0-)zZoINjuh1sZ= c+5j58Dx8nO\spFu-nn1:Ѓmlq~;B? - Gϥ;br}os3}~}[CgwrGqWõ=}ez_>oJؖws84ujtT|u pQ"LT$"-ƶڃ|Z\DrVwo41ү]÷<ll˩g+ح:8zW*ҒG8@lc۔5-[)k,2FywBA}rjѿ*RB}T¹cv"䮔rqmyN1﫜b\0z[,{/iDJ -]: +Vῌ8=E;4`&$kx{ٱuxbOT*]8Of/w 1#hzP0~ہk1Wn (]<}ng|ɍO*^Ӻ|Pi~t0l~kVsxHXތ3:[R [b=zdjNpS(NyAOcriJ#~gzB{4zW3|hC kș(WO:2OC\,hWw?Qٝ5*UWru;cd XY\gj"$dt>ؤ`Hlཫ"Fl7kswmVf/(ays.HD/i{F -}^x4b*odhEnـ71Z$_\CX@sG8jcsq>A!D"ju0gEs=C6;W|DN7ˊxD"L\ [T0\a+{Haggo.}q LߍE6s_۞Ƙh&ZF/뗉YtViĽQ_*-n$TJE8qZs5v K`gE泦V2jy15 :ـѻj*s7H$MĂ G:BxCauNim2򔖝 =ϗOS&T ÌqO2A70vHu&J5.;2-p:CK1P ] -[a2?xNDaAݚ8hSE}Z19>gLJ[ -|*g-TL> " W_kuTs'fk-Q~}k̆\>^w!oG0:΄ -v+f]bУqi;%bxW[Œ%3%>4R(p%NNZq \g>^U<1ng*<&EТ􌳿hH,90g6Y0y$,miG '- uE7^;󑝛2T'X`KJPjSϰ.xLEZ.CN} AHD^ d0EF_w4; YG>{I ܘ}6RoJV5{hށ^?/Fd6=> !.=5ݬ_+'tb~46:a)يULvnY~&Wbw^c?lF˫}X9;Q$*hT)|{G ,<;7VQp['($ -?%+(& Rm㡎+>+a\2Ya|7 AlYmbWBD2\ZG:]],V!A7ii!mUGؗG&Hl@ؓcH;Հjy;-IHr,[r9/W -P~IXAG3`Ntɨ˜`Y;_}QPgN_/>/^Dy)QŶl%T8΁008(cɊ{.hHo8rNB} ײ).^jg$lRq }فb&AC:wKFnr펀"{pute~$*׉9w^Ydp -D'MR*L8""Ac&ӂ{GؠXן1.'>Iw5',v^~wRȮt` -AW@=D"9&яѾGZ >_3% -N يmK?>P(}k5l\IuȾ,037>r0cm[7TYCYHEo/}pIrCw>^#EUMm8Dž E7}Xe] IR<$dY1Z  ^H>pkOh #^r LӍ<.ė ic[`jTSW@3{Q>ڽX䝍%cQ2xtP\2I|+Ռ꼫iOWA|X{NoLlvVҾwe^T߷X-zJ?D;'Gwt2ö6 O^<gGjdM|er ?h0_ړs'n*xCqbi0XQωxƁh:җ@L - e݁JO&IM;a:햓=+KY|^_(`@_L>156Q Y*ywx"cΧ!& -_l_nd5!_Jx);nnYAG^(B -L0$2=PhG(~HƜnED^Y=y%!THOiAPv>և4<PC 6M6c%- I ?w?$"ܬ`L6>&=>BTIm^[k'ABw_N)qkbnj۩ -B|)vU?& M!O\~ -ږ0a#N)$p*ߚ A6 -A:Mpyɺt?ܠ4~i)ݔg)܅r}e#[闐.+ƺ◼h;ذl?u N~ X6M:|.n`!QrÂi'tZ;H J9cMDTVńM2Ľpj[$[*r|La!@@^9ɔʃu")y9f$N&tcó y㷾R eɍC6ʴWF0 -) gUMwJ(}t3 D^BM˵>t -d[^`؃>ОeBhʼnar(Qx B}3?IF1dTZoҐ< :1Jk1gBdofDVdN6~ss"矺i]w"mDr+c_n=D^y}TVQ^DS5w+$a[yzʝ{jAӫ4,T_psZ~D鋽߶ফw`&TtUg46aoz}wkR" -/J^Ff vd;Sr&ziXzk_c߉GP3E+ur&}p5RZ3OƛXө5 -%f^%+kl[K -endstream -endobj -303 0 obj -<< /Filter /FlateDecode /Length1 1710 /Length2 10543 /Length3 0 /Length 11638 >> -stream -xP\ -c%]5 4.. .,Xp .{{Lkι6-69H!VUUpppqpp!vŨ Wп ]@fL Sut(8|BB.:dU6Vle +g irfk=4# ^Aqbg`3westcdx!-+d0@36TZ5/% -@+&h+ԝ@ell :Nf^`+%PSaxBXfٹ:BvfP?+7Ij̠ -t;A\\vPd# e,AW?cb>K$,ܜ:@2@EȬ@/?' yS ` %[>f o"TNNDAah]Cq8=t,1Tԙb_' o?fk'#/ǂao -5G, /?-HO5ß=o(Ak]kkUA`7UAC -:⬜oOI?T-H֎Dbr2vvTO =47$Yptn6'yOc~E>uh?u{&yhf]#7H^`rA\4Sp3`70YL+gRl)6=O&$q*$9E>GR׺Գ㼟'Lueb犨8Kt -ԾnG"7eyp?V.粤iFwS 2ܸGy9Mk7qEi憑n#) -I"OfE>](o/3۹vx<|V/-4dTzNPo?L9=X(ǭUʏVR'E -4ůEߐ$h"Sb$v~)\䫦ϑ^8)uB<~MGUg'M&C|5kcD0^pRwp<l?]HۆvO,{5KD|Ju^z|HT`|sgD8yzd%z!LJ^%Gܩ,c wA *\#mVĿs9p(0L8E[Ms^g ڶ 5<$apI {ؾ!Xɜc穂jk'ߏJg#,Oqs ~>4Ǒ L<Ғ[ˆ nPe*zi"ɼPxBaMfmnS%gJߒ0p)[(v)UKaRZRL+7>-De12)Bd.K6C_;G+U.g::6(Κ AehĿm8PK[kū_Yk?$"hŠ& 8zƈh_؟h\*D1_-/Db+lhN^H-&S ˙=])G̈ɇVjO6Uem6~0ç[tz$th]lYBZfe1G*.-C -Tu BUoT{d?. ERᦩo0Re:4)\ - -ň^Ð,I(+fvXofGC6Nw3C}qHS;(n>HRKUbWen2* C{ۚǺ`cx#6>n7x8HDK>,;n`xn E xoGo܆a=qSW" ̑o琗hyGDz\Ó(r1;7A OKw}j,NQU@)hR=x(ɶyR\pkmJ6k7 , -{<Z,pLg@lMx9[d[,&kY3V -fC@3oWlTRWgA@@.9ԈD D f@ݯ>ҪwX;_MPif%%:Uww{PEfR'NNtP=If3#Bm]JSLu~>&-"̻J -3}Kޒ޼u -حB7eGf$g+BK"0]ijOT{6KQZhp獜5G3Ej\q+Q~j.Ln}]4#ǴnJSZR/@/ jEnl(KI>=GlJ~vzR4q]hMYڷ vDҺxBPηDˆ7 ZHAf~$*)IF#%ѫl -1RCY# 6]TvOAlK>sjNa Q\լbCrkuxQuM)' a+2eg:c9Zn>9NhśIG.xa _EG[BmCm{ -.p<. 6P!E}lZb[X;pRޫDrc\ξ%,'w9Ȥ2R2 W R*nOL+#䀜<pZG1eRl_rUqGmmљwL/VM:%nMJ=Wij: m^*}(CˉHm\eXkQt7;z:R%ͻ*Ne=aZb)c7!GFfsmENQ#y+ -Hy ~ ^8%jU6cSLwwzAXO9uqTu0O"֠u-Ϫ\t_~O#R'y_|:{+VRj%u;{JCn^/>K&>&-H:Eǂ8dz6 ՞-`wiPbg!oyVCFdL*|Sŋ-pyQ"fPS^/P'3BaCFfs;P&.r{~bNӬD?{LH>UsqR4 1mw$ZAؔuK\"z|8 >!9_`aԔ䛪`ӟf_u oeF:tIO>r9|듋3=q:k<Hjס]2ܷ"|%keZ5XȤbxMKʝ -iyv`>o*:7{FzfAWo.lIu KwT[,#Q4rf -sXnF.P{~kزnۈQWtxaRRB_[w##dnƦ0x1[!枫[جWZ_ -AhFD 1 d eO>eVnX-w6~į;fپEn߀ߌ̘X4yJ1X cT@<.${oz|qJώ1 ` d 2rP&"nU䔿AUkGd,:nZ7㪥#L1ůLRݵRF2B,'kDΤTBg>[(+50lu7w5eE8|"=!_]ɱ72nEo5iC):oG'V{s7GSc;{o]f -0RJzN;a\"/{_k"`NcQ:K"v2@co*샺n%Y lQ\~]^כ!?})E(9h+^<<.$n%Y?z('/kb)-|yڄ{G-r]ZaE%fiM,Gf„G֜c -[x!ƒp JUS_sƣNnܪ*; -VΏĺRvQ<+'&ϳ99f/֩ra wA8vΌ>,'bVNGgB- &eR\{ )&l-/0ڌ0(] _ݾ`Æ*&g ^IM}N1]T,?z0JPqV:BF\V!Vv0O -iԛ!I. a3$Jy"#u uCf%i8=yUa%i/йaj̶$fQKPYxtN>܊qGJ sэ cmtq TdSGcFhEu| / mZj?(#iﳏW j?.4J랐綜e8#9crۚil9hrlxn،H~[$_pSPm]QG" XS5@^1B=LħqQYwyf"QAfeE+bϡ{%EBXs|9F1b Lm@J@uV'bsK1e/Ƕe+8 vŌyzIgSg0 ԝn6ln%`qb}n_6K҆eCbYQ(R;WP3 -f֎au4sC}T>kԒ1vh8"\$avKu'WWa[f) v.4TPw$3KmP^^.nՉWAj,H,ɳHykI"NomUp# M<1aADCo$m[f],@rOY#5z#ﲈ‡߸@ņ91A(~!t -(v;dc|$I bmf2}#,¿nn݇ ǜY)Ƥoq֢)ntfbLZ~eEjbrnn-퓢׆`/t#Aߢm!C$uo*n1ulQF{*0*LΚl$L]Z:mT]/X},Cp\Hcy>OܘYz3VO%1po}&3>Eɻ> -Y3 gJ?Hb1k|rkIS"'؇0wV[aZG8EN]c+7:vY+{sBoF$0?G_L؍%Af xʌkXx]zMvŏy=9rң3Č+H öAZLn-k[aB˲wel\bE6d=PZFJq&Vi[mJ_w★ntoIlcd/^| 'ªÅ]ZBƿˍjȩڡɝ_=9D.[z jlѯ1979ZUx"DNΉGԀ=xbLB[! -ֱY]%/|HexJAAXzGCkijN~Z ׋v܃ypUF>\9ΑLCܲI 3 O wXԦKZʃXmaF^]3#WY|)Տxf<9JiU'ሢl -b'a$m$8ͱ'8R#= Os=&bU\_TK~>U*bi5Wj⵰qޞ7dlݍ7#9&,UMr,mpoӌ@͛TҟZyuDU.oˣGObg_" xTu?fRr ~~QkC.y*9Vh iwHɔpfˋIeu4%0بT/xC ]&\C/'kMXނ3o_,\_vEo$Ζu؉) [є)cïW{}\C6̉(ZZD~R%9T{oY[(=ȮWDz5WQ,S?h38>XPOR5X_KKɦH Ȩ6:t]ĥmRK_8CDKïZogaCs7]&re' - -|#F}{XBHaE9Z|3pA{n:GL6rAMb>zfD]5KyHDBY;ȶ׶ GxHJ4C$oxVI5l3g -ߒf\Y3>[@&UIu2$5fX0nZ&x' 2~_saQKwJsn;\49R|(Ȁ}U?A}E Azva:U>4.h -E BE&\#E^b912k7gH@h]]޴m}d SwDy`]2(NNufpo|>}$w~05΅;zx Drۃ5q2~Lךuۼ)`7}e!YMV$tF7_=ljUj,SZJr<,%=k8g{ CHwCVl|N 5KMFNu%Mg+NH 5'hկ ~UR݂xeЖ!8b -L<9Gv^[KՍi0H>+)7P\(dp:a+;l?Cq|ԏiUҽ*7?j1S/ NVDlδoUINreZԠQΜwz8CޚZwI5yM!|ƷLY頋jH=)gPN bLdKf!;;mz"J, TD5MjkAu5^mAǒ쵂R1Ǟ2c6eɟ}| }ٔx;1Zh[{ -x6d_I&F16v_j]@7Y.Ӌh l%cs{Kd&5GbިH UޖKَ ͢WkmE59vHazaցcvԞ= 7<+Xd. ҏ>j|=*臟f5Q6Ow_SC!WoDb@z2t7Y^j1Yv_Gxb -ٍEY]zdXJz}1oְBر/%&_I~j=\]Pu:Ib{4Ic{sZ;Wsy/E:N8E6H˼W 阽Yy'10#3d'%<39=1> -stream -xvT[6)%RC0Ct7 # 1HH#% "H"Ғ*%qyk}z֚]u5FPLĊ E,@fpLoCc(8a,S`~($@er @RVC|P>B0j(Oŗ , +(ȉ -"`h3 Ї``|Eg aqJ!z*JH! v*,c&0 ~@̀3787nrB0;Ð|7 -CzCOo1 qvF! dck{(cUNvdl u[*,_K[}_j^-qz֢xz~@\ ̦TJJoPix] Uν]w6KE^T"oP1-hwCKD+|8%uLOEp"Sõle]' [\+{~{UL7G[nwk?d^ºyBy-U}ZE$5RZmA}&U$w* m1>ҏ*Ⓓ;I9 -1̃,8vs#(ڼ޻<^'2^&%gkH#rÑELҽkHam'WR3E{xuy.zPEݲhY5VW`i'5UdhrŇQߗ -~EnvWeߥhޛzeOte/nE(/A7ςE@p̐8PuezBh-{ּtL*$K|EoLY)3x1(b!>[.#)> KN!I d*`o <-{8B~߃Cc}wլ7'>K^ٽvz,tkpL{jhuweDJ7AsQ#bJboKmʷ|=ϼ5 -/x&K("*"M4UD-T_!|GdsS9e[ƓW"qdp7 :U#cq~Q^%bԷ)B˰qsWS\L6;5ĵ\OL_-elN143/YΩE =D ?9QqwhUdh2_+u5˒N4 >=6' -Vy]P%:vc@VV7\GdE6>~MAMiq]P닻Z_2ЖS  ~_eW/lxٖ~ǶC)/?کZz3w+.-|zsqFeGYGއḢ #IRT&V7 -!1:A &)CYQM@  };^(:0'ŭqd3rkuH-DSr_h6nYʈhb'2Q_l%-Ֆd>\I^kb"^3&2wj8_[caʋ3 -m7a|R/fRtMae8x;%\JLWv"Sr:ҹ|VqSo</=GeNc]&y6Bg?AV3!5e˙j!aN.Mħ`:m<z$o"^dV|z_ђzB8Oٕ?0]%飚P@{bBK db7)G^靑'zYB!%nBjM|s{ņN [x {O/FGƏX](mVfL] G[#dI3hC<*mK;US󓆑G_'w7bw,$S*&[dp& WL{зm3*S˔4:2*)T2 1cYisS#P abS<=e-`R}4Ys{\QU|}Wa+w_]LqeӏX4.ΥxGrdc=` - ?b0ID%b^5٥O ̖DDQZ$ZlQ}+ns06Ի H|6K[kKO GҔ2eu+ G6 .u٦pTB(Y+J$25@P{{mXrmE)kO:l]6IKw?IN3gR_,J쑙EiKۜ>S uv27# @,9"eĉ4VSZ#j!yG{9ƊЋi?SGFI+bba#DXzȴn4G;=saI0*+qH`v|5p'ƕ6((S-ΒB OkoFO.3~X[}W/S8,G^ܾf7`/J2dbx#/ew C]'UMfe;MuXᓕy|F:Jf?y[tȡ{?0*ϬcG0d4ܽnݒ+'DzIr -ٜ01ݦ;%3- e\' hR%PɓA񆲇YgΩ6V>m0iZ0N,7v-՛ ʁ|qMV]Q -)*>6nHV$_x66 _7_QCVf_,W :^͍=-`KW{p0E2V>/,GJvR&LLH=3op;f;h$CupoIjj:jzZgD_ZbHxay~ǯ"d-DV{u*?0`7ztV6.muRDپ%Tg+V[L$ɫ,f.Q:}SW=S{w|]-q .h?ij&拪LSEr%7Y&/%5frM^۶ -$HdO'07TsKrC*4AJ=Yϴ;Nj9YnNF~~"\d#t3Jdu`95[{Gp [fFK2.+0LBgf3!.? ;7{E:ƖξWL.|3.iXfuKGW),W*jل<;5ȳFIdJ#S- -S?!tQ'X2ĹZM)NRrcd1tCn -0gJÆIvsѳ9,,:{C.vlcF؇ؕMirꡘ^nOGFn%2DxY%.6Ljf 4t5GHHZI;.9t(ҠN ry w%@3Y{Eka|uJz">Wܹ3; H-\8ZZ#k鵨=r5!ڸjJbK6BEf 4.JeDjlcM'-<;oS4Jobo)м ,O0 -V!,sB)oRhУ%7ߡ+\{6%/Sxqi^iy2Ntn_>]ú3B\% 7aFWBoK|MCחH*(#DJʃJ#уl^#&6etMBo=nuXR!GW?8o?9fbV2Oxnz v^- 蘫c)k3$oomC݆HiftS 'hY$%_5m8}Z?klʋp|v&4~9y>d$Ҝߦa}MךSt)q v5^,#f)tlzA%rbq; իMiD{mϞl_ -endstream -endobj -305 0 obj -<< /Ascent 1125 /CIDSet 359 0 R /CapHeight 683 /Descent -292 /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /FontFile3 360 0 R /FontName /LEJPUT+LMRoman8-Regular /ItalicAngle 0 /StemV 98 /Type /FontDescriptor /XHeight 431 >> -endobj -306 0 obj -[ 27 [ 796 531 ] 35 [ 590 ] 43 [ 472 ] 47 [ 590 ] 49 [ 723 472 ] 55 [ 325 ] 59 [ 531 ] 63 [ 590 ] 65 [ 383 295 ] 69 [ 825 561 ] 77 [ 590 ] 88 [ 295 ] 95 [ 782 414 ] 98 [ 419 ] 105 [ 413 ] 108 [ 796 590 ] 111 [ 796 ] ] -endobj -307 0 obj -<< /Filter /FlateDecode /Length1 1640 /Length2 14978 /Length3 0 /Length 16084 >> -stream -xuTݺ-+ݭ; ,SܽHqw-^\ -EZws~~##e=:\Y##Td*L`Sޅ3eRZښ8ؙYY9ĝ&. bP6syO}`eCHNNs'@bdКP;08 { {8 diJŘr&f6`wg Ǭ PAZ=hebk[4:MuI5u:{auWaWДfH*iHZiMu@w%w>%5D5tU$Xp:9l= lO? ; 3ɒ|V g;t!N+ -= h $wNߚ -8\ hobob 4@ @ov96 ] 3[o_<1{WgͿo l rvqWE d )*JIk0) ϞIΎ=?J(xYl|wJڛQ;#OΓ ɓѵ=[-2oirtJW l@+zYmZiv;,Ll  pqrzoǿx 3w ?e-ߑ$@ϠҽO9`@dQ 9^RJ&v@?L@XiNv&9K<* 3/ɻE-mI8پLli7߻$l\w;Xde&io6[ع&NN&B`xkR,`/4Y͎T?bLu7VwqA -Q4qqy賾KoրTLabcqع|-_?|'gzWf!ia~E3_aOp>%¬ftI[ -2~:T!ضm)"{&~~(yZ̚AY+_ -u8I:{b٧/|mQ^ւd᱂FE2c/J?0 g\Ρgp,6+nd?(Y(暉F,>;2J0<Yr\,7WqDv)',KmPn.?1OG‹Fq;MtF-]\[9 ,*( UzȚc.lQ9)$O0ǽ?EP/֊ 7h %tak(,'+½oOE(TƲou\u+Ep0PźL uv_~a͛SU8<ל VpWsjT${ 5ǃT jVsV8 r1ll]$伟_[Y#>BU {fdsn?;sMɖ734R`xHj2'v8o-MjcbdM -gbF?L~>1FbaKAW4,?(>ؗ7bρ]"vQi;.Ne5ňEjޭ/1s@5i-_RMk,ax+1<])\Uf6͘qɁ@0Luq1,3}o zBgz"Z -q;ex j~x?~EE7'xj6 ? ?eҼy?OStvT/)ʖ,j;!Pq:f,5؎$4 u$c~&(>y4\ j Đ"gWx (R n o>e=ƭȾo4 jl3Xi"D0& )Ybg2O{04=TۏõٟG?~ۊdvFN&D}w"ՃZE:hK-3Èq781Ħ9m -De>ᖃ|8e* QeNPoj|=64˥2v⏃:/yS쮩xr1ky{pmq-اCgqS -4\y.)OS8XD}0n5AMi̖\I6V -vV (k 7fV3n]<K'ac"پYf%LCG0{HX&"Ga&핀LQo7v0?֕lIt1(Q1˜*.j}UVQIH(ܼPǜRKېD' vŽLƷ1p4 nwbCPKRzdd(3E]anģf]= 9&&K`%ydoWyjhDM؈J_1µBX/Zҧ\"Ċ3-O?@Hvr)װX2FZZ,yq!=|3ΐj2P JtE}Fu?~7Lڴ3^#,G<O:nN:=M,lr:Peg.B~D/ZcWϚL!e*3 ߙ} 5+&`\J[h4 ->\̶[fu%+jjc35!RDT}8 TȾѺ3¥t (#a]~%:`N{\LuRlL;|+Z "hKH߰F6Q'8H -x`Chc=MeHd1(hїȹwsK}wP~S_ -2i1pgA'K+.3|Jڒ_5B$WJZ9Нc]e:$Y:8;1$TNgoC46ws)ǫoP,;LBRgYMb$r2 w_w)?/oP N>2 DM$@| >)=u<bހKX;-[icrE}~~QB(1Ru5EAIg)z/F Еc„uOxm0ꞑTa#liʻLF*uvmx>[Q5"O}c#֌k мUM;:n%mFsۨci)K gX;pCVi2kll4Am yrjaw=En_=MṞcV-# [7't^M3*U;> -|G"_={)2BO͛H6 ݮ_L|[q}OI(  q,@F8l>hiMi$K皲VD -~%(Tf0OLX)á6c՘aOH(^uiz7:ك,Rb6nV4*~e.'3pi1] 'q/ :؜Iiί;p+Yͭ׮mn̕ux,n.LVLA{ʕu" }[̒LiㆸRn?IKU nbVm>4`Z>՝ZA|llQ#b ʖ33LVDRjQiNoAējYtjBǽ( 6< w{>quE<U.Ѩc wӨ/(9Иwc9Z\s\PWMkq9ѩSI)D]bC"#Wwqb SVR6Bޮ9",_j#:TJ}AU?pq8H}?EHV=r N2S~QϿxBjNyÈU%3|iR 6;;#V TʥV>cڀΨVI7>$/AKj5zk=b3˴+\9}-H׺g_܅~^VЅ~{Pi{04=O9+QS -\O~G2S )c7;r-2uv;.Ŝ=bf ?7&$bKn/@炤\e"{SSOXd06)C+w&VQH;CD[QK^la0NmǨ]E? 2'[bCZ PǸ\QkrY$Yc]W$<q{#Y$2QiS a+6OE"ΥHDm}Σ$uND@Nln!&^sy+.N| x惻`MIKkiNBcޑ jgD%u"}xC x&c?CɩňEyJ=! -p!e'yDJ`k.&Jч8tEr4dx"/S7*^n.۰ ?pP"~:w 9-v,'|n;u!tK1¯vC׭3'8uE3F>OZ2Q}u>#,*bSc`:Sp糼l,}[=%˗l#I#[=|FBH 3OOۡXmWD(а(<=8yZDIL]tjlS- gboDCC9==!NB!Q r-|Zv.z#43 ޫ<#*|2)6ENe:'=wD?5P8;4xCb'wZ6A]7թ4 ;$@+}d&3k" SE"(\p-$PaRCBo**dAS$n-- WC$ 15Vg|IDJaۖ9qEyfzJs64\eC5- lq1lnH}Bnt'G[$n]0:Y!z% %fR6$yRVX,5Eڐ]$^pDtm1!1W5rʡ_0#O8Ĺ_d_8|V"+.rb Χq3' OUnP{ԩe< C]BEB:8U?Vݲs2Mϐսr,T|m"d=ܺ*}}>(x ]C?r5YYq25aq~ֶ5T0ozi qYHg0[=x>,jvu-~7?Z;XR .oC].H*T -+uUYƴ2^CITQI#?fX"a$(ans=v]W&oRtÿRšTn- 9)ڭPr+njGqubQv/DLsdIm5IG2QuaiWAz]!'*[U_廮rʽ~qʬaY4*g^D9 )?V@/JZha2-5via>GJIgTNNk+}W$]ި9bܢYfۗՐj"AEl^FlH/U!#L_W`37ţcU?M%2i]jp%*'jzuij*۾Džg8~nCWƻm+dIb$>pnb+hCTg$iۨAUÏ+(e"qr["x?2}D'Sy -|#ٙ2&I[v| -} ->D$z[&¡3zEa.}q:dMxūOO^3އ7Fzxi5Þb}vܿCu3B~.ziޔ\[n -/;:}` 4BtL򧒪'@,ZKq*$OS_m B t[M_}P'4 ߭p-)&H;U]QzUI,~兲<Q9,slG( -:8Rfcp As|-IND-W-"#k/kZnFDŷ[NR8 1o? Fn;*E - - \fD.`5hOyϚa^Nx3 -vrz> -ϧrW..2>4RsW3̐11a*?! -bfjV6n}EE؊vGL364VRF&u4M gJfȃ~ҞI7h}դ=QbŪ5T lq gh &c^xm@:a3)*lmP8 DK*7 -,Ъ:vt+~I>ie:(@:O3.Ofis/t88:[q#\dШ 5KmmT},V<$QvdYy iWr2vl]N^hK-*݋^Ɨ5u=9t K[cij-(8".ϙdv#ߦcs*颩0ZԠ5 ٫(^)bXɢƱ&G¶F*"u6w[~F=ܴ[45UfAGpPH$I^$G/9!mԴeI`)` ^,Zp_ -: ?ΕQ?^^a)#Տ ]7XG6aC!l@#]FhZ,|'f<юas덇֎fhaؚhGOz4|8Y=,寱d(Q -y+>>Z9&ڊH=}?+BF;|[34&3>." -"],}Q=:2"'_6RNQ甦*G 6.ܭRTXdWٓԟIښUvD -d w-^M* sү2LQoߦp-(\ -- GpIsYU]tK2}=uR\EL"ۤ(%^UHN(A.>gR nEve0>~;824Ҕ(ܫ-2h~"3CC t^2mO ؐnؿgẽ pQ dvH:WDÉJVQ2W --3\JIո|緓>$d~"ס+kS901V' -[!4P]g'ޚQ.ƶSk[)!jv 7'$tECAB_B(C,_Cg}qjry0E ٯ<1~k)۶wn+9]PjP1M} -EaM ]-⼆c)*'!BB!+Nd@xEɛEq`bcv8AQ"R^/ RFa֗61 gJm'7W>v{'{&%ZgO+I=lD&msF!'b%݊B +Lʋ摻/dI"%5n3nc]s$zY-cĐ\Mք^ePյ!MƐadD/GnqbشLfJ:Ks&pVo8JOu]'tmL>i K6.wЋ?y $4 -^϶ -!R9^!G? 쉤1 j34Ircb7_7;9yDQkXWYTJ>IyUjD+W=φacdis3UjUՎwtiĀFoncl;o>_ߑ؍īWb/C8k2=vُ4F#]2o#D8sCdxc -v9Ѭě@?!*ıMzZ+G{&aC-?4 ,_GNz{4|\ Sxl0gB"UlfgŀvnhW")w8U -_HV cMd`ߞM y)x9nFD1W `diSK$ogɕzց3SNwWDGzԇsU(VQ=*n`5ݸŖ? Vߎ>ť=Pc\P%#=-9 ?a?dyGQgJ ҂$X"M8D f`6׃Vs^9׎Z ,;O C6lٶm~8 4pd |dx􅊅bdLz4x>5t5.&?"w5,YN<DϨ7ZUzZ`ؗ뚼F_<Ƽ捄+aÖoӪ J/Gg3韔zlNѺG3Z^@h3JM{rOXcKuv>#oUb M䪝d_' o1?u>\L+]iv&Q0XHyHeL]H ]$v;>ihi#%mFt"z"E!åu$>Sм3_tҋ/S#}uo 䖋 )Tao~b:?yt<šx XvtFE@a-%d09R/-R I0e)ÆLo㸑anUR9&snboÎZ, 5 -%++},@=e+\g.=`l;@*j<_ -a>.vݴaNwugXNKa+ G%v2Q8;h8By) Sl'N0fE-"$DMf(~b4;eeen}Gq&2?=VKf43Bp 0[xr"ǔ"XMs-}B+z^DWߢč-Y - HN~a|Xh"KUpNB:nf+%:z@҉FM$ - 42K>եjѠRUL 9fV>gUs]I7 aEXs|=)USRvLQCa * 8\ҭ3]9 /a )ftCQ_`uY1)"jS |%c6xI5@jOȻ[Du2⇾{I~()ENFm{v9Fy9?TS*zV%2*-xFZ"njtaR` ^]3A1"+Fy~r$6H9C0*o/$9YL{ ܕr#P3TFlW@Rc'B4sB1XѬnU(U qtM*d9'`г4BuEj-KPnh:(ĝ#/UE2j7;aD8*TⅨi{_W #z샥!+ տ_aNrb<~WݨͨE☱{r*^i7xk?7]+8^g²dU="p "L%n伒C& ZḆvD(-YZ<)ƯujTD^,qOe%ѩv~ٓ4R>(Fsf">-uyָ*d[}obbn|,+ҾΨOvjr*W\MPxX0 r3̯qV2DDFǝ9M}H7-#E&P,{&\ClxI|G:kWKGG ^rqbVhLںr̊tW+;3ԑ;#\$N Ga-yZ!{-7?;dEDSy^_Gv_/U9(7q~UQn<D -Z䶄㑸jbX9MFO'"L+fz)i|3 -k ,ti喦C/i칲3v-uaG[K߀;qt_e-̡fCTEH_ܒRH__CͷX)CmDVɥ[uuވu n 5|R(2|T9`x6mur0_AwICݞy2:4h Mo2}kSm詂TdO"` -jKe2^2\j*6= pqzRx\f1v5x8A4o7a,DX^a sI9j B'B KdzU3 QI.bt(+tmM 4{ :W%B*|`tea(fSzO˜zRb񆮛ȭKΛ'tn@tŎ؟և˦kf>(t(,lrye> 2B$tJVP(5|Yp _& -(f±HAinbޏNF(oݗ2|ɭ8Jj>6 Q9]0^?FL SBo@X}7[%ԕ }-1vrtwJ };)ME tiBiѝ1-l6yX>-8ᎾYGUW̝r&/ ?ӁӸ2*| \/H'wI9*;y[QȾ<_}f~HLyE^0kK|dޑ4[Ds^@ngMJz~uAh0*OJ59?*clga}X%VC?#&$a'/'+AhU),UK@Xmo}抁t 5EǻLxS˚QK sP NpEBGxm\DYŻ CcMѳm73?*(jܻe so&⠞+$0C 闳A/_,-Z_tJ3t!Xhd<*XT5t♨$> X"Y^,Lfka⡂Ox"7 O:~4UEddΰ0/oL74usO|̣= rkA*nA*XT?p"P.uspDqN% pWڷXvR]Yc\GtokXq0l.,eL跷nT=ZAhA?l!(|<\vZ^` vfQ؟ zն. N,şA;0{Ucg6n؃Ԗ؃k{ďl:r[^&ώ!lC"C J_=c]א7ֶ*D*^5S fyqLO1>nlHhWb*}֯'Kdǂ,.|cM19@w*oSQ25]Eq6xf͸Gg3Q^WOl KPW4묩cʹL~ -Bn̘пդkloPVRd21q_TJ@/ -aƂ>wOvtݏ"' w U -UVe=wo`,:_vUfʮm i7E^Pz2#ax*ӏq -endstream -endobj -308 0 obj -<< /Filter /FlateDecode /Length1 1608 /Length2 4459 /Length3 0 /Length 5265 >> -stream -xTgTk֕HyBE@+E)"RlTDHWH"|;3wyD!:p3B&HdS3o EH_ ٩("C@ H 2Plp2 0(b~8pAOQ -$D?@AK !$ -AրAQB$ #$ @a0 9$@05armW$QhQ .$N3Hhg$$p .$ ߩ,7HWDI^?PO$?d5bHǠv%K!'#G"$@QpD#Z))%f冄y >!2's[ -DH__,YuL}\ea\A* - -)`Epw Ӿ -% rri9F ĒEɫ/QFȊvrE>c`wݟ%' -9[;/hjQasKbo?~W&SڥvPi?i$,J b)7PX1Ԉhʅ,LS)4p٣V/oJ {gs =-9SVzty3b-Wi']HaQr% p%}j> -šhe 35sNmᙦHXpЀ4Ϭ|_1n-ILؗX^~Օ,["U -W*rN֠E#j}h7k(aHZ|{|7L{U[WV0=ZLҬSJ) -"8apa^SmV>nnQ*X~L+ ̏m]4 <Mse),*imn9o*qV+oHdn]fO0RrsS^i~ks8/Kkٔj.dMpzM8 NۂݐN -Ho4կozlqP ]kJ}v֓|ud> o"'fBYZ7e3#=V*]zVup>ϥ.r5Ãx. ]*D XߣόJ9)Gr:Ǎ>s;" -SO]k^GzUDtPgAj?;{.E\lw܃`4C쩊ZCU,S1˾iYqW 6NnNVԭ#cfbXnV6J٬Ҡ}uu[Zyݿ+ 6ɝ*HdpjD 4V_7m3E>A"*EL%Ch^16uR ٩o;?|YOL.x(2^7=zPe}jZN:à9 -##}Dp}3Wʶِ k*rK~ -Zn#}tZ~!n|]9vዲ_!NwL#|# 599S2]R N'3W7=o4ܶ/~MM7RlB eE^%^=2#wWG9-1?wR\or>iD z1~,uK/MԖ@Qj(_~^W)/~09TOwOj3[a7y!1Mw␒"'Ny#G*hnZL|=Hs)gK[";ϨΡ,`i[* ށQnMM=G7M /urE7V랲SV$)ritKNuHm+L=J[G !qtsmV簬ݰ3}|dw+wG3 fK?QEő5qiUN/Z#TiuX\B6ʹC+U˾t?)Բ޴s\ `[2Ə,Q*H]_e`:՚S6Q:E5j cs\D+MO;\)m1awWBXO߶%+69;c+l0ճʷYo[CA/R*G 岉V1Ε_9DA(vkC7)D˩/wt^S14r(Z5*z{9i9 tN3v}k[gocQ%♘%PԦ]^ŊqmFU&FMH:|nuOg+|"zejZ; -/!^L%s\'PݖH͍K[>[ bU7vu, ;6uOeΔoϽD8b_&ADaؾW=3΄A;z{wͲWG- =Wf ].Sn"޸W~uᡦ -81"D(lUA0:?4YjDR;Cdsqۨ[vxKD˜3v,2Hf/`z$}5I8kgwUjrMoO|e:Zd&sڸ.&ÎDKRZQ1X[`kIQq-f[*}w1=YG,iKnQF/3 ̆D|;oYDGʼc[b jffט+dxlhS* `vqEǭKNn!LbZH=M -(t'l@㰦Jgfk1Ov/]{kؿ⺘S@s$][3Znr4fvn_hMtCo rĊ&I1|8sFK\:ńb2^F5U46fF򓬚TxJ*9kOOΖyqǢeZgm a:KjmJӬcX,o,VhI#KT/UՑ)alEݍ6I²}-drG{.w&SH*M>:f|H/XY8Z&)6Dƭ>x4 -`i5@5{^YTbNMgycƶ -endstream -endobj -309 0 obj -<< /Filter /FlateDecode /Length1 1682 /Length2 17320 /Length3 0 /Length 18362 >> -stream -xstdߺ.vl+m۶mvff/sUgyZsEFB'dbgucg)ڪX:31)\ 􌌬dd"@Cg ;[QCg 7`ӂ :~*MF9= @i@əS 5R}{8Z;BG7_oaz M/GsZ(lF@sCkS)@PSSVH(+)PVqs/,"*jQ!yU1P Whߌ 𯻜9@G'i '2@t5u'͍ٞəь|N7;G+h 0.&t6+ߥZm,ӧ,ߘ28+?C [g񧡳hB/@rr?it| } m]域/oaa;w/:V63\X?k|Co@w1꒝1OeZkhXl%$y5&tjl'h1P8?NV[7%T,}Gr̝ྡ/D:Z`܊e71Չt^fϬvBĩWgS M*NeF[wtGkTd..P'h~UyP /}=h%QY(N#AH+$I:nrX)3 N.R"A8-(s+\,ޚibiV6YfxRYgҍrSY.vl4'`@G&nRVHr^r-8"HdxϔcK%z})IXN gH!5*&\Orj_:φYk΍qW,4G뗘#D:䞠r6.\)(t E1z -tmR;u Ynj, ;i*a뚏qE/ȇůhHIܧUAu>3[=-Q<Tv>YM頑u?/}Qfa%?&1⣚&3ȅN0>h2qG=;;J7T33TCE hYIss/JM1 11t q߯R3S,hlߞ';cBSMc/ DdNQ`q')ذJ2]}{X0w&]yO?Z(Y MV9!&Wܙg&y;ns@V=CɑZQL|">`DRs_(-cWUM/J0l"5~-,=Q -hzx8xRՙY -1v t8|_O,s6[8#.6.͌۾3G9(ԇԥ5df$[.Z*\'RPaG7 s--5^`` %\67;j>Vf9kf'h ܻIg9Eu(H#R`$ZpqAnNHIL:ޟ>D&K"iGR7y=Wub(بo@%p5~A)28Bpq;*O$E> _{ ߧ8ㄴcA8&lhf3.GqY\~WrQZzgDFh7 %-bfni8e\I+J9>z{h-2V-t?@IVܪ-|^`!;ˏoħFrBm5C.7kB7Zj?m-@izJ>vqsCJ%aPHہ4<3um#7ܠ}jCbU쭣\΋[H/1- &`pmGjYb0O,Yk8__voF6ڑh< -"͵ylmVz| 2c:KVu\t -}hǏZ+jIrs@=n@ˡ)/F?J?rxTq.P<YrǑ4^am2CoVi>z"%zGWk+) k:DΰXʣ2ҋ{SڗwS\,1%xs5 -ah (bMa6Xn-| ]=YtYVKQBY(//)rw#wW\T'HˋI=cQ*L -J%Ҫ4=b=> -[da3cb;-1߷ -:VaF8ngg|%Qi ݖ Iap] p O9Z16bzkw:B]p%Y@:|>NjUD,%@}l8tꇃۈCǨ4#Trjb&R`.4%bJ -t `]z0%>(ÇTlW|8Ia2o+Ǫ>#NP#) %{w!I+4qC]JkUrhq_ Eѫ`0>opWQ  $(|:L(^9i[6(U ̼KȊL/zPAѲDypV|3 +Wz5b)qwQw*Q KU2(krQЂ[07IC1ARsuCGwՃV#V| ;CzZ W⦳{.@ӽ냨!C#=az]nmj#ԨQ (nv>_(%'44q<|GJ[=cLLڄ羧\"045I -'9?~e\a%bamTBq~k^Ȱ&x G2qU-Sx4.Mj3%ɭҮrUZQA)Ej&M+H4(;4 {him{HՕ -DMiP"7Yp\|>M$G9IJQJƝF@dci7ɐbbl34*Z%z72RJ kW{a"#$ !¹9*D梴 -/B#z][,IK ưbILK:EunK0.LG?u}p!AY'Of+"7tKW,)Pt u7T츎ǽ*FvzϐZ؄S¢w>eѶ0M6]ݲ -6Nݲ -gۭ;ᶍs-'\=g/ڑuv>'$Wtlȼ\}%pbu%r23`QQFJ1w~X# -0' 726LA!-jp+:H /:0h5F.M33Dd,Ѽ!ߒ{;$:Er;([@V%«5uR}C8BLG'/^yCcڅp2W]Ҧ|b+nIow|jz8G׋;!p0^mBs5™ﲀ\ 3ŤÎ9Ļ$)Ntnz`Kї "g12eXlQX$jnDv6FB"<\BK*yePn0!Q`?Uw(ޒfL: Tyx +8 -,= YT|7mr$ߤUw({`%jU^҅ _m`[^(^̀%MєWjM $+ WuA:tyC?#HT})4elB#R֏5ѥ#|q: ?%ݢIX*(F4*bj%ocEzOQVZw:Y?@44<x;;\Q{V䓢D~j5_0G#/!%^ӽ+t"k%nɣg -W|Z, 3Yï4;[ڌ(S?5 ߺ٦nkDm⡑r纚` Jj[<s&/Fcȍ%-X+5㊳s-pH^掦J "(`2QIߠ52fS{ A/<'7qdݥ_qnV^Vb%Bh&uMR P]v~g7Cf+=YLdN-/+_ȸO{d}m6MeEZFC>6fwNPǓRxRg^+p_<^Т/+Xh!#b.!sȋR!9Cs}ŁTcO7pmmBnb Sb] R^G%P% PG{ *.06Ⅹi RwⱠ~E@Ս1Q0ЬPuiV:*n\%u7W -ޱlif(|(iӪ=W}HɈ/';W 4TMAjLu(v1AۂD^.8L6u}eO,1 -th"3peK -|_w4HѥWSht#ӀeLI<XfWp`e$'_}'KY'%ys{h-O>/ 5#5AQ˔MُgU-(c<xS CLQdxc@]jpmtm6d}7M}|6kTfk9}ȕK7]s|[s\hgsAap={͐# -z̩SٚMdsB鍓YӮv큑:(l7;k@vrka> Vno2GDVVf`?2Q=|w>p%7=8ڀF1#Wc M'yf/"_;[Ρb:bgR>a@q=Ӓk|;rz1Q߬.Cw@W<,tYM*,'q'eRDh\pZtϩC\7gR=sj~<*FZ9yyKNDYb kȺ'8t@4#ƚRdAG>f"(ld::TepT i"x Hـ-;u>߉u+„tOnZ( =Ǎsz?хbSP" UhGVMQ g}u:ṗFaqM&\75XC̸a#\ӳ^/#+d[ Aņ[A4бdXa~G3w9%D'҄ 8m)1[_ԆySLi%߲|5&L/%')I`yE㸣@6۟} GXy}[\(ҍp֠+DNql $pFTV[:0jϗ'w#C!͵Pn:HAAji{%H}Yue['|胭;nSxЍ܀Ii-~[+0R^-v0’6 FQ*}WCM%_8}.`Km<>2"eڰ\D݂hu٬`I^*ʍ_-?c,pGr7=sE|#h {{Y%:kG ԡ2 TW_O1S0B7 kAwŨ*6!oTٍ7ݟc&ÓBt|껇%/*}>Pg> z>JM$eeNtCђyE2&Ij6&p6(+ ЌL;1le4jzW({U[6vt1<=ZL_Jzz~u -Vh44-b`d{s+K\\M5w4 0AM q ^X6xOJnݫ i L6R[#}y Yf*)0Ǟua0OTîGL8MCp>0.+tHvϹ#;GlWC =Xj&ٷ 7WŦd8Ɩ//M:(#NAf+(J8wQnْy z' =\5/\mP (,vUUt`0#k9_ki -"Kk)IYPUt8@d9NEtNaK,FيLЩ2m(f _[.UT^^Vk '2D )`Xj)&zZe۴ɴ^a}95[X]?\ow1wݲY vIh_RF תfA:)0?c+E_ B}@|֫NgYCqYY絮U;'L 6}} [[>fК՟(XJ d, zgGz= -Z7*\ucP7POX&T4}(U#O;kT;̯jrAhb0^OG+z\bY_m ?;J[TtG{+* -Lm03_]Vapd-l=ܤQcWPP͐6>"wEig~Ÿ+pUHBoy#[DApq0UeV ~E \D+fVI1Jo - -Ԇ8FHCdq*YwYx[),9޻;(OZMӨgl^]ql)bK=- -aĐZ!evQ1=5>dL`"Ц8dvZ>jdz7%r$.[ ʊa>]?QGc[(qH—r'0Ϊ;wM -۲ٚ̔Iws[X 2{mzt^XgR-YU^p$Wܟ˽1Uj) mEP"J4էtJڗ4cg/o݁2gٔwU:ҭ O a>'-F`)Djp$D -}s2Jm<='Ug$8iݥ5 {Ŗt1Iwf - XvQ#G@3ὂn:Y1tkXb=k:"cj0^@!@@1PA`5cZ6{h.S<%76L.˾[8E>; -Lvkxfu!%E$JRВޙ&[ =И=e39܌q7ϰ3XecjorLUU=@ҵ.O2Ӛ1hiF'Us}&y48c|HO|zbKAk}M)SGR*b)^>HINWDjY)dm1y'7DW~(@G)é*&EHVI3l(N>X )9 %b0v-/[PkujŪ%ǧrr4p7NAd RE:Hߕ߉X?BwzO֐kz7):he0@F@B4.(OuSyW VM9]ܘipSXĦE*>]gǜN ㈶:*+/\C͹+Uq 4c9O#?@и˓F>jer"8l=X"h5FaAnmm+Mj[W#ڮ.K8r 3t"j%c/`dq6" WsCy ⋈y>BĎ,T8aW4/5'=L̽;4Xr`I "RWHAsQ%R6vdånE>{&qn8;.v~j%[sKd\IIiL9L`jusnB\! $NE-6X4]T47@D3̺hN?&XL9٧v&xP)YP%h/5jMi52;PJw7l-!R938?z+:pKţmA{~в`[<x%Rv wlyf<-0>- q`?`;Y`#bTu>T3\E$.z oH1ԺTry*d<։D^SL`=VZ-xKOvk- M p)ZY ZY=T::_@%{ӈȄ_Y_neϔR#rd5KjwMu:ua`#O߭Ʃ 8C`kge$!6#zE% Y ZSnbMi.**U1fIĺ {nF~%tƾ)S3keg"ۃqJ'T||#z3؜ǂaxc 1 ͂lM@[qFh`GU/Bf-mכTW)eZMĻQy?p3TS,u""Pxk;s< zZMoᠽv\J8$qT|\d'#"ɾ_ͽCWN_33s0/o%}^`u {NпM -!|1GaA&Ҩ-$4-]k` -oEح>F%ԹD7!~LjF"|ֺFs$29ͯqvUJkIъoZIB݄şUްv hNVUB=%vj"`D&E/%S:`ԪZ.j9}IЏIh}_@7D!lOj 芽2h\C"uCMhh_ѥfԊbpXxlfJӫ󀍷x 7hC϶AhAlt~_$cR/N -ţ&#k#wK')1_R'6gWe;,L9N9 [LI |[m ߖ;TNRюbply8rpwP"h 0=0;^g|mcYaEUNG󅚞A~D-U5 sEG"f3BɣWMJ%Z-􂯄J6$~ĬR$[`Cy ,wGf3NV[^YRqH??ie̵d={a8gąz{XL6Tաy,TAZ -68* ݹJ} dB%E}zg@J1ɑZ=tyځW~z!Ŗ3S'Z,(R^AefIjAwvdADAwqjuQ|'u@Ltj#,[RQ D?CC#Z^ N:8_VDIv(1Е,J}g#.EgcSvoEX)F-^!2%<(lIN.X(Nqx\>Bxbcus{6d#'Ru6M9z35>]]xf1;X^wPB"M{_bJw0|t]j!~幰 hӽX~,[2S '} -n6\B]98+3:`ITO'$P/{'iaWc~{pz0(lLQڵ3q4Dח_}?0!)A)Id.IOSp? -fOtUFa"N$}xuwu!tL -='.WNr WOH1sѮZW2v@(1s'H{ %5\RlcbLl 8]["lyOhG#v>/ Fv: uDpiVk/ x=VZ]wL ^*5 -^&䁷rvd F揟b,%u RW}R,rۖu?~4Jan'Y#S5nGTøiOIG]sZ#Ed$d1LZcqKRXv_;Dz߽[n DZ]ք,ˋsd?F_'1"@.L|˔MDTweMsX ЎKij"5;/:1z1A%bckܫvams|.^4wn+#FM<Jad$[6.ʖF, -(IE{散\D8~2~«Q'ؚ臅5nX|xE6l">\UI/1T^6_D%+\nx[~e˯$+N2ь4a1Wkm% bgO0lJ0nEd_|kjհdY9j $^I.N"Դ*͊z~ߺ#a$ 56C;mF÷AZ1W8h*Aҡss:z\j: -p6њielHN9U-NkfRNQ9m7G [\? n=Anj -/fnvk}wnv4f;JWyy*sBgpV2dyX:N >E- -1/'ҷ"/dͱ/N;1QC7`>tZ"CW/wH~b۰:46Jͪ y7gibfA:W>&9+zdE]4mwbMVb%r=b˳LR5Vsz! &˄l/l,F8.w`KJ]!rA3M#H {cl9Nc16ջ3AaWzwcnz,}lHդPT7U -endstream -endobj -310 0 obj -<< /Filter /FlateDecode /Length1 1568 /Length2 7664 /Length3 0 /Length 8704 >> -stream -xtT>݂t )ҢccNiNAARiF@C}smusu?ʶ=-("@1! PAI8M ((.(}~:8@HʊHQ P/GJrt8ąS@Ae Ddd~!((` `C!hw@B g!^WE; .0@ L`u" p `:n A o "$w?&`3vPw?A0u< l~&'=0 -D@a?) -Lseu*G_Cdwן;(' [W15DfA$@87@B~E~ |$j!rAh+? >l`4b>_'Z^8_T42Wo -JdR@Ͽ/P}ϻICd~S_4Tϟ w]ĵ!(_+'Y7`< ypdWV w߮ߛ:U e=6B]A1[}([BM:= -#\?_};]'.׳e\ӿK۟{'*! P ർD%$^" j R6@X@_(MH\#O]'"!^o@@e?g @ya2UPB r(ԻNvGH A+:?`{כ` `qX.ر*B]pQ^SV3r$9ԱrRy.6kÚ6>7Yi&@3\B|KHi⩷In#v6gSWir\. Luw`rqd|bMd!PRe _ilExϋƜ~Hԥ9 Z6WQj0]Ђs犮 j}ߒsXAFY\fs!{xg9־T^J&U-a@*qUFC[ef@TcΪ"[=} 2AZ>=`{gL؞p%>!8 Ӷ:bhY[xw))K]uL#3>S4GRzjvX>iE&)oZZs;IxMqryit:e>&ali=N+ƇYYKwCov,B*dzqvFsb$-ej:i.e 7{G|/Wc^hLz}mֹe$c0?B7-)\UN~F~e 04}>[ ::tMx;|uJ> L"9 ,;}0+/f8p#ĶGkSgGm!K".jnyuQ7Ӆ4j -o ti?2 %G}suгZqw﻽kE6ͼ ? *1!gǍ,g^ R,5n܁"Mh(ޅNf]7{&E1 H諁d/)S>S|.M˼k72)a7¤A.Hz[-g60oo!cz2 WU#G2tB$r2َ;| XGÌh=ً-P?N>jt)7Q|= ӑyz -KڙQY_="&h~Cbyc'A| {>5W/:.;Yp>u4uZJ7wg=.!֭9my-Evثh7#zk3B4!F]R guÉ~Ds&64RNiހo?;1qUwZX'kqxl.w6淐(!U1\퇬8V6y7EX7'IonDI ]7t1./X^{M1y{FKvdJ9j}g" {!tQ 8/$z$%NtE!ΓpE.7uGn䛏K$!3*gbj,)u9Yq|\{I"&|A˚k@椴gh5¦ -$|*42%Vl|E]J,g;I7%Kj -'ՋLk24K-'_1w{sPT0.H -2!HאcvR|[+w?}wQ0jvX ZGT܍yd}.5#Q5{BB3 -daGq52'bV6=/CT*잚 -N%]I>@@ ;̳Qhb詽).{/叟oW4%bx $)uQ?}ϯҳTN-ɕ}g+G<p.)бBh9(a2Lze,˳;C.>8vےf>5&ۜݲ⭻:h®zUz8M7c3VZ)+J{_V(XRɸey1rk9Fdmu9vR?e^`;Cm[ He-ˬfuR;Mv2%ܩ83 -D'8H@g5uQ]Zz Ôj4P] i x@(dE]qkEg :קdXÂjj$PS+O ˅YQ_ os&>n%cǔ//sr~ )?J|G9 -Yg=T@u@ 5#1.V]:%| V[ N[:_)4eChlY6AhOrr8; 5WC :vv+@h-ʫܖ,aI Ҿd]|k g ohe\v/קuf'L=q??5pɜt nx_yLۊg[vW=u(Jn.R9"YF>5Zר´oԠd" -٥"}&I{\8Yu '4d3)/{nlyWptE'+4c=Nt\NŤ l B#Dɗ4WAщj$i=,}|Vh|)NǮDWuwC&nBϸԾTQ]sɢ3C6` xS&r?sp=Zfx|}=UA:] we%nZby15]Wә~hi>YZ1j^D1߶G?nD-l'~%nv-&7Gsz0cX](&*Nyi -& "8)/],L4N`ҴT^x8Uعq">jL o2s{nLzlw'n>~{shE>J%EM>kX |z;-!>6VpOY}!ݮ;EXخڒ)5ܜg9N;?X|Js 5fRCj"@+$ЮC)8NZ&p[4&88쑆c\w^_)ng3 -t,},Bm6|{k YS -Qt^DmҼnW޵4Ht"t#5y+92$^ l[`ʰ\ 'Oj%r{xg =#;OZA];ɱ#M>+U p֢g%[K1yM&'Bd GU 6=AvAEb1B7TȱWRzE,wjP#w"ʘq5_%v-QrL2 -u'4̡Ao澧ۧ"zZQi)Qj:Zf4XdTn7,plR>%@bMнoEb26 Y$$4Lq97P[.$1c!kYF܁';پ۷DxFH Vy*Q:NJz~ier,<3;-=CC˟@7yDnTLK%KFE _|m<~Y?Ruvs+R2Kzㆌ\)֒2h08*/K -|Z*~V+EǕc"&/(羪OL誫I]CmbZLn&9I5k>q9Hn/L"zH¥7OG|z}mlvgNf6'xmoRh4) |O$bJy5ϗV8),8c~+K 0e'*񬐅Z6:p+4\_x9NOWFϡ' -zZ% oz?`$)/hശlE=gP%m Ʉ@qPw7*fTBhڏN|(DR. 'd2b+ T`>dE2=~K~a?gv:hgӝ :gQd$Wuμ:}?? Z^):ƃf0X53W6L FVQH鍕>` #ݨ7Jzb@C푢>@ fs#BTyԡw׈+缩N׻qpf/LAN. ck]NؔeL:<9ZZr}7!,AZ\T,Pk -_GNІ~ -Z SX҃Ea˵Ŀtp=jeUs3*0z,FDYӋЅ-7=  qOwUNSXdYesez2DnL|RQvO+Γ|e†U8}p <1[8S ݼuOX(EQs]@5fw_h٨vULH?ahx'"Y*=~ 9eTRxBAG&:(Ib;K LYM!ƹ}sݚy"5k/P&'k#?qUt)741z$hU8e^ɬB -H^Mڝ u75<118vV%8SZ|ɨ\R\g$6Z3[Py!W:#g63p$ׯ۱=݈ٚ[iJ 携/vGR7QCŸ?3MF, l01SvY%oc4v"˅J=n}"aONyp8u=NWnP؊op`#jVIu,bdk*|c<ْV.l.|ӛ r5ztVhu?K9̙{o,y [vA5~*n+8 j;z5~SGgلoaKc kp怺T]{[4B?3G #F(XGMZg b24j"W_Z5gţQ|^u^wG\. `Q턨4~"M: v}{`ȿ2ְ1=G[FȓnӲ:~%UK>liFd*n93MԓzVWvO,iTj5€Szjoo䝃ڇ.eU - 'Ih(ߘM8V;).PI~Sf;ls -endstream -endobj -311 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -312 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -313 0 obj -<< /Ascent 688 /CapHeight 688 /CharSet (/eight/five/four/one/seven/six/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 688 ] /FontFile3 361 0 R /FontName /GPXIKJ+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -314 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -315 0 obj -<< /Ascent 676 /CapHeight 676 /CharSet (/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 676 ] /FontFile3 362 0 R /FontName /YGWPZE+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -316 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -317 0 obj -<< /Ascent 676 /CapHeight 676 /CharSet (/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 676 ] /FontFile3 363 0 R /FontName /YGWPZE+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -318 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -319 0 obj -<< /Ascent 676 /CapHeight 676 /CharSet (/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 676 ] /FontFile3 364 0 R /FontName /YGWPZE+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -320 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -321 0 obj -<< /Ascent 676 /CapHeight 676 /CharSet (/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 676 ] /FontFile3 365 0 R /FontName /YGWPZE+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -322 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -323 0 obj -<< /Ascent 688 /CapHeight 688 /CharSet (/five/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 688 ] /FontFile3 366 0 R /FontName /KDAAFQ+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -324 0 obj -<< /Ascent 688 /CapHeight 688 /CharSet (/five/four/one/three/two) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 472 688 ] /FontFile3 367 0 R /FontName /KDAAFQ+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 70 /Type /FontDescriptor >> -endobj -325 0 obj -<< /OPM 1 /Type /ExtGState >> -endobj -326 0 obj -<< /Ascent 688 /CapHeight 688 /CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) /Descent -14 /Flags 65568 /FontBBox [ 0 -14 476 688 ] /FontFile3 368 0 R /FontName /VNTYDY+Times-Roman /ItalicAngle 0 /MissingWidth 250 /StemV 71 /Type /FontDescriptor >> -endobj -327 0 obj -<< /Ascent 1147 /CIDSet 369 0 R /CapHeight 686 /Descent -307 /Flags 4 /FontBBox [ -518 -307 1565 1147 ] /FontFile3 370 0 R /FontName /ABLKJA+LMRoman10-BoldItalic /ItalicAngle -15 /StemV 119 /Type /FontDescriptor /XHeight 444 >> -endobj -328 0 obj -[ 27 [ 866 591 ] 34 [ 817 532 ] 43 [ 532 356 ] 47 [ 591 ] 49 [ 757 532 ] 54 [ 727 ] 59 [ 532 ] 62 [ 896 591 414 ] 66 [ 356 ] 69 [ 895 ] 72 [ 297 ] 74 [ 1073 944 ] 77 [ 650 ] 81 [ 591 591 787 591 473 473 ] 88 [ 356 ] 96 [ 502 650 487 ] 104 [ 796 385 ] 107 [ 591 ] 109 [ 621 ] 113 [ 1160 768 ] 116 [ 561 ] 118 [ 562 709 491 ] 123 [ 1045 ] 160 [ 591 ] ] -endobj -329 0 obj -<< /Ascent 1016 /CIDSet 371 0 R /CapHeight 611 /Descent -316 /Flags 4 /FontBBox [ -491 -316 834 1016 ] /FontFile3 372 0 R /FontName /XYMUCW+LMMono10-Italic /ItalicAngle -15 /StemV 175 /Type /FontDescriptor /XHeight 431 >> -endobj -330 0 obj -[ 27 [ 525 525 ] 34 [ 525 525 ] 40 [ 525 525 525 525 ] 46 [ 525 525 ] 49 [ 525 525 ] 52 [ 525 ] 54 [ 525 525 525 525 525 525 ] 62 [ 525 525 525 525 525 525 ] 69 [ 525 525 525 525 ] 74 [ 525 525 525 525 525 ] 81 [ 525 525 525 525 ] 90 [ 525 ] 96 [ 525 525 525 ] 100 [ 525 525 ] 104 [ 525 525 525 525 ] 109 [ 525 ] 112 [ 525 ] 114 [ 525 ] 116 [ 525 ] 118 [ 525 525 525 525 ] ] -endobj -331 0 obj -<< /Ascent 1100 /CIDSet 373 0 R /CapHeight 683 /Descent -290 /Flags 4 /FontBBox [ -523 -290 1530 1100 ] /FontFile3 374 0 R /FontName /UUWBBG+LMRomanCaps10-Oblique /ItalicAngle -10 /StemV 106 /Type /FontDescriptor /XHeight 514 >> -endobj -332 0 obj -[ 27 [ 814 613 ] 34 [ 771 580 ] 42 [ 786 591 ] 47 [ 624 ] 49 [ 742 558 ] 55 [ 536 ] 59 [ 641 ] 62 [ 814 613 378 406 302 ] 69 [ 843 636 ] 72 [ 513 ] 74 [ 989 747 814 613 ] 81 [ 636 ] 84 [ 558 ] 91 [ 636 ] 96 [ 602 611 458 ] 104 [ 786 591 ] 109 [ 613 ] 111 [ 814 613 ] 116 [ 613 ] 118 [ 613 ] ] -endobj -333 0 obj -<< /Filter /FlateDecode /Length1 1735 /Length2 9825 /Length3 0 /Length 10945 >> -stream -xP-[p@pww  H 4ҍ4n w<4h3wWW]k:{CO.m)@!0vn.0^ sb\\Pe]@@&=A!e77/[@[P %C@q+,lc {#ɒ-,,;@Bj@-)%`^ -$f 9przxxp]9.6l0 rԁ?q`tm:Pkx 듃 -x QRh8 ijw 0g% Cl`@CA c!V ';x2p @AZ |;WK̕!0O,:: 0WɁ]@OG[!Pϟgk07+7'N= $fy gҖwp]/'JS~>NP' -t`.n ?V[X-a O'dy'i\Lf - -qr*jAo + `ps -~7p럈Jk(@O -Ow_ wuLk.~.˧7_QpspC[^韦 jЧ%VYW>m4K*=AV`0+;N@"1|s7e2*P-Y½uu,;Ď簊mkPIK]_;//C>k]x1M\XҊ\?+?RD{^񅩼:Ċ^ JH -а}NCJPu0 -*a$qhH*I} >JjR -dF $ͪc:cO=x*-ghpҦv=kƀqpy9˰/i&b\[WcWD<9ܘ WܯAeϮ#mM!$db3lAiRU/wgk_$;m/iE"Oؙ>x$k:hӿLöҸʙvL/XJhTBwnr}AgK5891-\!F=e<$Qt-ВӥsMUS-v8A&.4u[^ס3V,kӄn5}~YemayBSMHrt%wm@-C^>a0=X>߹ɥX,U))tn9$Z/L,8 ٤H6+ Z[5FJƍb)M/z 44ăbVhw]~^"n) #Rs32jQv::k+ -b'}hyabZi %ۮBCX% ʍZ4eXo^#Tx]Pp\Crn}ږ8AC}\g6ȳX= @sMW4 E#B.JxiKW噪f**MG 9bc{hhJ<-ՍX\Ӓ_XpK ӥ"X.BA۔b?IJՏe*@բ(3,Kj!D>\̯ONtyqMS`CJ%Z;=T1$G~ׁy=;A9o% -It<ۚ5̬80|8g$Ev7[.<`ۚ\!.C9)th&[2kAV,UЭ+4mvfHK'J6())4CFGZBuG_Uri|9@a$k*{\A=rx!&>\iVxy4Teod+)L@<>]M(`iaҬGCHLi<4,Q{Qꁘ$s3NxXg.ܨCp}TEXk$z"^~ы|h{6,V -[ZG(ʩbKO)^ qc7!Eb97ak `ohͣ^/f[ro a32)`:} W'y𚫒DϷ /^FV[. 30<a2$4f +Cmzq߂QB<{ſ@;X\TV첕8I#ѯk$kB~SHW۝tӊʝYtS?maY -pog^ѕ ym蓋d֣UMjoվFa}9PdLa_Ȍ!ȭ L亙dP,'e Y^ߨ]N+Uv  kIm"6=Jkr~!?cܙZReWD ,\^ZޞA>Χ9]=c=xknȣfW=VaxƢee?+a(/~OTk]m2 H,>"~0 <9@2/Xh.k? -bg1"U27w}5] j4 hA޹Jt1CYo~DxԷ_ XDI?m ^.l*#\u8锛Wb=X6)ˬtp'fMš1-AΟU7H]A/9K gTe|oҏ[-r*Q " 6 lZ q=~>dP֫$9-~"'Pk:J|X.ѤNˬSL%Ks]x 3:JͰcڸ~>\/Q%g.;R#dg/E;7%9J +,qƸWȓcB1жGZ:#qߵ^Cq%_c[Iw\,yLcevWjUv(O9ԡ+cV3}~:{BtȅUl4qQ1}_zxqQiau &dLh_x|V.ܱBVY6bz7#z~[.MYV,<9;khRs{tY1 - ^>҉G -}pnyZ5+3p6!q8G{Gy+C[\9tZ4boxgR\8 7m+j4㵥XI ꛟ۝2uB )akRA~o"PAZuCcz*'i3N]*aD/'g}'e=U[ ǯ%_xJ{Wq9M& x'`#at[7)8!hC8^b|x*fNB5%A;9d|IY1R8@qY -{$([*fD`jZuy |/qko;|a>UUМA!EQQ>6 bB o㕣0)æR9)3coy]Y")3o<, SkSx 0'U0\ rc{F6=A q2_TXӕ~G @*Q KuᣃJpcRh?f^P|zebTtnkdQ^_.@YlY`AU/#jbq4?ZM*Q8$ʃKRPegEIޥ`iq7}0>#CH|S}g1 K j\d6ױ@#o}$dXհ)N_ [9|mͲۗPv;e^)ݘHU; S8Zo*` c:~UhJаO -IDfU?qsz>~(BWt/f•vbg;4;{Js>{kW4|bMq詄 \ -/b?;7lۣ / U'9Αp-sXg@.-lU6.Cta8VsoOA/^Ɯ64C|Q#C2bwМF@Q\7o΅B -48< ' %A~i5ĪrՊ:,RB̲2I=.2ghռaq9&&IY(.1,J\Y]-vb-Ĭ{|(ٷzagEdb:,NfS.H rӔU1 ,=A!P׷:Ǜ?ɷ ܾ{r$x|;|"^"rU3| e2[7g/&vd)2K.qQG!gs:'nN:K%3 S=ǵHMQSΞ9ԶKȲΔf 6[#ƋOe^Mb Ѵ*2cwv\xLP"VU˩S0؃ 6"xYwVU=;ei#u 9 -]j[RB_j] h~&[i V԰`VVYR5 ccCmɗTx1) 4E%.\Э^^{Ts?U1ss<Âu%aDlpop ޓ 7tok5a=n,pQ3/{jxޏf^sdH1G%4ʶ0Xϧ)P_+rZ$s%ZǷ9įBZ1b1Pd]DNkΩgk"~K#:mHH,cڟR-55܎"]/jS5Oey/H e9xrx uQ蔙E]4r#F$ySr/jvQFo7A1=/{Sz2F4\HM+kmۧ(gQKU"BFbi#V*IËPMzv]}*XcS/n>^1 -1|1EscMW)6T<e´ Ҕ$jrÍ"[sN:=%֬ 3ZP:m| I_wuI -sIn"a_գ/lE!I?wM;J^8k 2p̽PQ, -Xn$ח/BDe?Xd/d;tu c&?.3a8Ni|4%rwD8o]d?5k,"~|c#vǷ"=d&u[hNx/Qi K"w~^Y N {{3˱fwz-Fe-ATVJ i7"WnJqkDUsvQ;3RUD$1Z+qDVX7#F0ydqSuyC(m-tE62Z^6LʛJhZ\[fC>&eqPs7GF7}u@^5f©0EbZ[^5LampS|)7YGŹl; -:g3C)OpBOl1SjŸo΍v&dzCY͏e;Αcڻ؅e,bZMy1Y.R*6Jb%aEr'S&?0o>=[9{C}Pqe¬_𺿜-B}#p°7P3*ҕip1'kʟA o ^~ WBkWB]a7Y'f "O#0PcgQV.l6pu|Wv%-c*Iu{A1FnϹ$K?y:$l2sIss+:p:U߼H --x+ܽ_)n,zo [a YH+X.=AMLo_c˿cޯJFn$oolɊweedo|`(ԭ JpRFńv`Ω: aԉPޞ?ʩ,E; w/޻2yd\wgV 8cs3uXT.Aw]%7h9Hg^ϋK#vLLk')j~u}ԨNg4ʇ(^/ARy\Თw|Q]1JW*KmJ]HP618>sSʚ n Ïn35)TTK<}l?M-~ -W(P(I? l>;CjWȳRNo _}Ҍ0C xIu7+Cu`Ҿt\ %i ); $i - -%nQېp߼Yl]bA={UƺLv̞(,Q#o!-YL˯݊O2wmUбÅ >u_wVllLҾԅۭ+IPr^7 Szт$o_J>! -S@(Ƅ+(ʈ'ZBW>F׾UO]@mWL9@0?N;a^ILtZ aEd' i`q6P?1@S1e6,d2o=R2{"O;?RKK7Ƭx$q\h##8rEK;t-CNk'Gr:+l[=@'@Z_dW=Kusq".CsUou&6j'O_Q, רL/qb8E^m|neD3W@H{zRS3oln-5.o:w:gV8v j?w(" +ˉo;)=DD,fXx)\g c"㧯xBMy?bؑ|I*EXI(H$C˕ZXS~&$8J6d_Nb̖*Jww;>ygX],eދ;M^õv;pgwa7M͐1q%kDKp{E# -u;iUjzDz۸ţWXFjhk3c!ֲʐ(}\jܺ~`ņAt0j4(32݁WyTx+ߊHBb!N,0Nq> -W ."5 mLY7JV-W -?gxܮ4ش%F#z諭)-[֞)V-'R|M|Nպ t+ >=8-T\5o$*A-&0\"R ٵDTk-P${M[>lY!I'qT3C멏![y̯c~h -vو2> |1hpys_*"gfoyҍO}B#CN&4麓8vT|'z( -+|ۨM/YgYW{zDqW1Q;KۆBpHxOu$֮8vOME^} ѹ|5ȭ7nFs "VgQYSzL?ρ%2cXfؐwHeaC_JxcC=,DZi* `kzwp] 9D#D -5+c YHN*txrj[,qo<ߵmܗZ:Xb '{տAOl;oƥ:fVicqW"nKXok!;qhŧUy۵J▸q%ʶ)] AR%X9bUj!93B Dy"~o*"ۋs˚*EO_$yCGy͗*%DQ,Xo}iu5{0[t., -le> -endobj -335 0 obj -[ 27 [ 727 500 ] 34 [ 688 450 ] 42 [ 700 450 ] 46 [ 738 500 ] 50 [ 450 500 ] 56 [ 500 500 ] 63 [ 500 ] 66 [ 300 ] 70 [ 450 ] 72 [ 250 ] 74 [ 877 800 ] 77 [ 550 500 ] 82 [ 500 ] 85 [ 400 400 ] 88 [ 300 ] 96 [ 413 550 400 ] 100 [ 500 500 ] 105 [ 325 500 500 ] 109 [ 525 ] 113 [ 977 650 ] 116 [ 450 ] 120 [ 400 500 ] ] -endobj -336 0 obj -<< /Ascent 1039 /CIDSet 377 0 R /CapHeight 611 /Descent -308 /Flags 4 /FontBBox [ -454 -308 734 1039 ] /FontFile3 378 0 R /FontName /TRFEOG+LMMonoLt10-Bold /ItalicAngle 0 /StemV 175 /Type /FontDescriptor /XHeight 431 >> -endobj -337 0 obj -[ 27 [ 525 525 ] 34 [ 525 ] 42 [ 525 ] 44 [ 525 525 525 525 ] 49 [ 525 525 ] 52 [ 525 ] 55 [ 525 ] 58 [ 525 ] 63 [ 525 ] 65 [ 525 525 525 525 ] 70 [ 525 525 525 ] 75 [ 525 525 525 ] 81 [ 525 525 525 ] 85 [ 525 525 ] 88 [ 525 ] 96 [ 525 525 525 ] 105 [ 525 ] 111 [ 525 525 525 525 ] 116 [ 525 ] 118 [ 525 ] 120 [ 525 ] ] -endobj -338 0 obj -<< /Ascent 1128 /CIDSet 379 0 R /CapHeight 683 /Descent -292 /Flags 4 /FontBBox [ -443 -292 1454 1128 ] /FontFile3 380 0 R /FontName /RSMHDP+LMRoman9-Regular /ItalicAngle 0 /StemV 95 /Type /FontDescriptor /XHeight 431 >> -endobj -339 0 obj -[ 28 [ 514 ] 43 [ 457 ] 50 [ 457 514 ] 56 [ 514 514 ] 59 [ 514 ] 63 [ 571 ] 70 [ 542 ] 72 [ 286 ] 75 [ 856 ] 77 [ 571 514 ] 81 [ 514 514 ] 84 [ 571 ] 96 [ 402 571 405 ] 100 [ 514 514 514 ] 105 [ 400 514 514 ] 109 [ 571 ] 112 [ 542 ] 119 [ 628 ] 121 [ 514 ] ] -endobj -340 0 obj -<< /Ascent 1016 /CIDSet 381 0 R /CapHeight 611 /Descent -316 /Flags 4 /FontBBox [ -451 -316 731 1016 ] /FontFile3 382 0 R /FontName /NEVVBE+LMMono10-Regular /ItalicAngle 0 /StemV 175 /Type /FontDescriptor /XHeight 431 >> -endobj -341 0 obj -[ 27 [ 525 525 525 ] 32 [ 525 ] 34 [ 525 525 ] 37 [ 525 ] 40 [ 525 525 525 525 ] 45 [ 525 525 525 ] 49 [ 525 525 525 525 ] 54 [ 525 525 ] 57 [ 525 525 525 ] 61 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 81 [ 525 525 525 525 525 525 ] 88 [ 525 525 525 525 ] 94 [ 525 525 525 525 525 525 525 525 525 ] 104 [ 525 525 525 525 525 525 ] 111 [ 525 525 525 525 525 525 ] 118 [ 525 525 525 525 ] 155 [ 525 ] 312 [ 525 ] 569 [ 525 ] ] -endobj -342 0 obj -<< /Filter /FlateDecode /Length1 1643 /Length2 13755 /Length3 0 /Length 14817 >> -stream -xeT\ݚ5Pkp`C! %Xpw .yOݧ5vGk>kl*2u&1s)Pfbcf((*@lLj@KW;g;3++'3l r4<`+== - t:;E D5gr3@ o &f3MlA.s<"3@ nЂ@+; hKdԔ5U :: #@RLIC -bhk:d(iy(!"w6oF _S-A4Z,,̖.`f%?4] g[hWw:V{(k3 o4_Nw*ߓߚv -? -** -{k0=lvuc{ipuvC?]BOq?mrpv"`amY;cSSR`Rx"f$ޥ `ggT\do/}kik5eK_~&4Nݻl߯7|4uqY7E `QPVd_'L dn` `8;x"뀝 .is?B0;)GW/09,;ڹu"O*YA@mk(=Yn?р꿔߲AL\l&6nG@L &[XTt,i|"Rt'd69P(5  oPCcޖ\=uk*cG&%6ŬPMNw$W[9՞9v,>qJnPѾֽxcat$;>ƤOl~ָ wL{= ^֫ʑszHŵjDŦ$eѹ8.Qv -5YF+HՓUH?IA} A83!g,`sla0->ƅaH[ٟ֓3sO5''ƧS(0V gM?_""|W@pmʟ9FrRB bGoeԦJh&y&Gru_1O$A#U89ݬ.+T!k[m -h;_crZ<3]!6oI+/1x(2TI[9x"O\;~| -"S^lu}:w".Qz -Ut#lUIp/ )һ3G5x`r/CƁi.v^[-\>u |(P~.9Ty7U12HSnX~JfΌ_1 )?5$?YB%8y4_C 29˛].8Yo Ԏp|Ǜ6catT<@m`hgŊ^8KCj؏%n,zѰ(8HBRQ߈oV&d u.|*ѳ -Kᄀv;hH+yM}0(YIF33ӨcVA^fe(١E=VK Ze\MO҄TT\@v^ŕՊ |-re8C8KOΖL>oF*Kٕ4wǭGf9e5郏 P (EuuU><_~ۂv*+;@^Fc6-V&:\+GQ}WYur]|&C#CP&62PyMVp> 4 @n?&]B LPDR% Qp,[x8EÃ9L˃Q^ Mf}'d!?[ݢhJ4Cl :$֛뎿l)캾t! `9P_K /ɇ+m(ooJ7]mD.0ʐ܈mK${6&<][:)^g2_I?ZIaQ*UP6"7>W5onMhlsYe/Vo,*X!dB0ƽw8ZbNZOJ[3t HV׷ʂ)я!Aܦ<,0й: 78.<.TtW;}`[l;ʥ+5|,JKJ9 JS.؊05Nv"k%)bOamN(yNBF,:[riΨfSb J V"Y" dI1JG=AA-7ǩ>!Q2:,oYztx:g~TL' (YΒŕ&fz&{ԔGu}w$$Ez_X=Sn$41f u7.# j'#ϑWf7Gt02NuCÃ'1\jO@fALW -Ђg2J\gj,!$(?j۶s. b[ w{fXKErwoh2=ʼnٸr3xKO?`QحUCk{*bc_dx_~<$ -pH-U9vaDv;qLm8S8M+^Nnk5Ď&9͖uaD"Vr=݆0r}=uNZyYClx |E"<BoZ=4~yzha9Bv|(#z ^ﺊKgdVqBH zA1v5B*cر`tF.V'@>:|'fp8hŋK5+8Q:hMDZ_]{`MM.^v)005Hs溉Jh́ąn GxdTzUl_`./-1]7/a3WUGvR,i"yVf[dGyEl,G= c LA'g -@JɧO',Xʷ@-!b lK.-z5a!D@( IH -ss4%w 9TWST]lXDXhxۄglDvHz*5b6/a0\fbW{\ -C)dJiM|Bp_|Cx IrezM_# C+cyޜ8ݰQb~]W=Bʼ5,Q yMGS+xZnLCYwX+,Uila'xg2Q_W60ܯoۈ}.ǚg {=+#Q3@QUqeA΍5L"vxF9.y&ӁtQyǚcB~Li؉ct8PJ0f07wP=}B܏?=@eM|۹=4?Pj5HN~`Z0|gbbn,xu @rW7Wmn _SUm(tF" gr -~ȫkP> -2'"} k=@7shQCTVՔAWiMjTIk2| :?߸`f@VaM\x?/\{fz`?lRfO)pjQaHC.83~L"W,D5IAFC8: -sf\ /&*F)ٓc+{9U/vxzcsMŖ'E L#n]1_)cQZH~YX[jlz.َJ`07sx(IG$ݶW_s >%HufG6Xȍߘ~6EњöE۩rp\7iDWN1e &8f U%iTG}Ȫcz0;)^~1 Ȅ ,4WX;07gɞسKC: Z -g(쪰 Thcv߇1m"1'N㔟M<2ICS  7I&D,H/v X~B3|Sg8.m -=iBPLw X*z2?M<wFym7??ϵ|A)d z=IMD8%|(Xlrēڦ%<")A>lj3g)wXA1~ JO>F~dү’VB?`0Hߴ: a1*8L_[ٶD31ShYŢuWQnQf ?6qܖHOf| ?W1!=U!Jc8cb & -nJ~ĸPx6i֯Ja#et}BOxfk[:EV0. aJ}ܸT{VT[/AIꖈ"XlٲXfΒKQ[!0W6bRܣr)t?c'xCD?s]Ob{ؼJpLHӿo4r#[sWn9sl@f,T&o*ٓ6w%6X,I:5I}ZW2~u'p]*܁#׀ݳ%c4EQL)S'(]q2?-Į!DtSN3(>vAm$wI<ɔW/X|UZSKp̶{g-7fGI•7 `O K_M]=<҃Pf9l -oHlq~1VG+ ^|\:+YdҴ7kj.4*oCByX~_\#o%1>7:2U!Ʃ5JmwJ0j>$˨'E0Li,[ e&lf8IXU EOngNbrndvjET:瀈K:| ȵF02K$˵Χ+aITw%3%-9k!ڎ83' Nl4>n.Rc*CYBp J_k62,9VS"kCxj+l> jG" 8 -(-c%)=t_Gޟq,j6| ]}QK3< sC->e~&Z6jMi!\βAk~/ҧ[ %?Sg8}aJI5%ÌE^ϲ +"cqi7YWnV?` ;>-]&3#wXy; 7ш j]\! VQ{XI ]I-^%\x^*,s֨Ig6ȱ"ZdoF/|<3PP$hO~˥ 8=.CFx(4pd *ީup 7F1_GOs+BA!&+-D7'Mo?cFa2/gMک jޣ: qɕDaҺNp(rㇸ"ban]znqȟg7;dgs*$wZ7jHX0(=8J#g6\x*B!T:dٚJE6ed;=IslNȶAM6 AfReBk,EgxT=qqx;eAYN|64{,k4i͜0T35oyޒj\E',@ΘmVoD"90'M^Vcd!:S^b*Xi[[v[5xA5*ޝ ƃ>Qw9TC{]¢0ح(kP.x~zџ< {d[öאYT9y]mQjB'Z"E+ /]N"£b$ lSMG(Ic3C-X8l67Z:s_Zh"1y> kX͞k}Nef jhyui7=@E( X-F$0eɢns˹2[a[o⒈4O ?$ŠM>.v}̗JMmx╄:1PJ] `';=T:[\.ݞhhsό C8QUr'J%TlTaKnd 9J6 ۠tTH>r)Hݬ$ʦK!L-iMO|`G\fť4 T@? 9OM'jN"k]C=bẈx_~hѾqw:Lʊ߸&mY:@hP &?Qq zgL!ٱaĒ/:LJ?ayO+:mE?qݞw MS%C&2`f^cs, B=O}|͟YÔp?!Se -I-#cb%^ wCȗ5@o&eƾ$e@~>C,phyw'5˷F?f<b!IڒOt!Y%x[NUshߘhܗSe.bΡ_jх򽶁fؽw2qmw -bi|.1b{`ۑ:KX|,:0wy,L6 L [^"U5w+NyJ( sӮ/Y>"]C -7C-^D6Ķq+Eڐ,PPlˈǠ]T%ИLQ.-޼m_^,w2mmx:^-|3띣X ǂ\cP%D8!(lo'Ï1rTyB.F9ٰIk9+Wody[AX &Uy8kdF- %bDu)Ņ╏Eݫu[\1$TyW̲Q"}5 K]l( u&(2w_>IX(]iKK A 9'%GY31O]57ʢV@`̘y -JD2DneNKmHals4Nxm7F/jљh3(Kӏhi$uX4WJ0Ր*O!:Ñ-ڟF| w~ 0"׸ӊEKS%HU*rS@ ؁|YwQS޴T%ّ÷'\ nǗ^>Wݡ|V7aD1S_}ic.'ժ^E#/,Oޠ A#'7l _:-|$ͳɿqx}їZL?Tm ;cF(D[jvr%y Tuy[~GB>*O+q4'9E\bsG`S168.V -`l!لƶ.+"h\u';X,Rvjk} w*j >dt3̈́f|XyE8"Z\ -)b c(!JcPylp.tT:TfO -aNjsu)!2'7CD\1>b) D;WH_: IJXʤP1ݲ}qF{]q D?W5gK؋i U8@89nN#K~ɮ/&H -2.@y^(ҁ]hң],ל"V0QeX.`#5 -onI ]_ΆF)Ɂ#g?as& ʌ슈qCe9`Pi{eo1=Q6 DUK5cG>Yϝ,Uon͙0ik-DZJq,'3qjj _)ƅRfjZu3|| CAkUo yu ưǪn'ijk .Q -lKDӺD2JQ%j8š,sHUTHl@&.zw}ƉU"7ω5-k|1fo s$OЧ#mu>(Ptt֢ND)$=Ls`kr5s+RHqp jI kt9N*' E^;!)gY;Oz{4ХXZ^zWvŴ~YrV6IEL T~v^B]L׾nEղsG{=qV[DAn!:缒OlgNȓG\y)O'/@amn +ibH[/W"` TP(ʁLxƅsEJ%dE]l=:85쑑n-utÍ3p23W2(䚑+狊 8=LnId1Q剞YU6&"mI}`}aVMn$kz>J/=E_elh^1l|RBۇ &0TI a!o\>5M搽JR<1Ȑ;bLBq6 x\N e[& D&gg4^`(1CfՃ T|}=vdEJBzn!p@P)AzEt)[d]Zm4NhnNs{<[9.+S/1߱G)#\=q ,,yU`Dy b>IUDKI\,~"a:N8M)4\x7f>Lz!_\zY?n7vfL <_4Mqj:ڐTӒ05~bmCƿ<6 8JGƾrA/y]:RWiER˪rk0%PvzAR n)4ppZس> -endobj -344 0 obj -[ 28 [ 613 ] 34 [ 771 ] 43 [ 591 ] 47 [ 624 ] 50 [ 558 ] 55 [ 536 ] 59 [ 641 ] 62 [ 814 613 378 ] 66 [ 302 ] 70 [ 636 683 513 ] 75 [ 747 ] 77 [ 613 ] 81 [ 636 ] 83 [ 742 558 ] 91 [ 636 ] 96 [ 602 611 458 ] 104 [ 786 591 ] 109 [ 613 ] 116 [ 613 ] 118 [ 613 ] ] -endobj -345 0 obj -<< /Filter /FlateDecode /Length 13 >> -stream -xc`0`h -endstream -endobj -346 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 681 >> -stream -xSkAibj?Ҁ6}-lRZ6 mTJa;IF0;PH/"xD -=Ѓ""x$l,F*"[{5 BSӓٓ8#]+BUjru>;ַe{kgyO$;\^> -stream -xc``~c@i$ 2 -endstream -endobj -348 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 9187 >> -stream -x{XWT5:cfK$64إ7me)˖EpA@`7cLbhPcIL̙pg5/& <g~9 -0++L  Zp%ƮX.(5p<%En(aczpB#l6V]h`\aåwf(I66ۼY c;;w2aҤi CwzO4i8,{ \"vڻz/`rHNQAn>^A^<7KY Q^A;&EVr\3<hl0f ņal,6M&b)Tl6fabacs-b`l[Va5Zlۀ9bl+ ێ9aΘ 抹aya>N, BP, $XEaX c XV``P /gt+,w>=~ 3 VCZMBBMcmTɲY춵gu=}7]2z?pw t=h @ͣtw7L&OwY?zjؒa?Q3t3EJ?|z`RtpOz.?_pEq v:mu?zdlM#l5^6JHoڱB7` b#1FKg5?qR8-v٘P=gHX8ŷ؎+o⚹~ -3i #$ؑvkœkdV_:{;6Tb^?`[7wz5btB3Fvsm900]yuW3qV0`ҠM^ּ܂Hg.q+:yvL6C/Iʣ򥅱J B8/LM&&0h{+%HSSX8d)bQD -:qIE|&΁ ".泶|a#  G.~Mݝx `zWjlW%᭔a"2#[g !އ*Q&ȫ?VM3h2Up AZ=iڤz=o_5!!9 v/ 4\_fne~0 ᅭ[a_C1;S-Rtb#<}iɻ1/ -@+bN5̮4xVUnun-4"mqثYV<ŸG?7V{Sq=GNؚ$Fx3.x4ƋsAVȒT b? Uhx IhDhYD,\S-Gh5"?@*81d5o5R{h逛87 (r,ы8ugjm˹g*$xs~OFAkHB\WAPqT<[_59N=rzO8ngt뵁׏7?YضڇA}o;vS?k|LyX<ަY|qw)ƫ-\ -5 ͂SB'|*.LO(Y - -YGQa)(cF+~-Q׽Vr? -kl h_kVѹڌb5ۄ&5IlMCx2ƒ|qy3Fwn⧃Tk믁&>P4F_\7׳Pu)UHL"rtw ؈zF7ihL}č^u?`_GW ')XC(͇5F~EFZ>_[R DytB(^x<nw;>yTF}($1=)¶x3pAZRkiTHS0ɑ[#d}GVv6E+"J),:BD,63)5I7f4[(:̕ -A;k;Ò橴Z+6TV|}Rwd iփwe$vYYbHnQ2crua43"mqJEk%H! -'nkK{>`WwhYZV.'"'e?Z?h -} W -pݕUgfw Y@4g|fVUugTU@PXa~B)IHhn8#YʐHZꪕ-4D qѾ>1YN-x^Vls5Sq-XEu*aAEqԢ(tjclch!&ߕ,U1Ry4O,-ͪ`BU~qLbJx;= <إ-4Ei^vEu3} gabDž[FXtZ5kx~3R]%fKsRY8(S#]~r` #=U U(Rx!ZU%S韖7FrHX\ggd$!~ ^;y.Ԭ ObRRԎW. x|.ExfrNB""4L#m9Cw 1oڛ.KK[zR 5/'k!7cя5h™+?ڟ(; ],˥3ӵYo<OnZ5)|gyzgIL.)4}<4<)4׋} -J.̽$2`<(MuRˈmteloo6ǯZX'* SM@i`-́MhK&z`w)+iJM~I\&RT5bKcWw?K%wX,3g0 - &@s;'ѐ!Sk.nQj%X -C2 {OG,Q;zsšz׵:52,+$*F&}ZBxN«.|D#che˾=d<!1 ~iUF봍_";t1n*U4a+/cvVW\yP{tM,OT $WQN<僜v.W1d]e *x[Bq&0԰z*)GFئǻ{|*=饤-fեF4%֮iH+Z(v|5MЪis4u_݀n\`!m(FrUP/r "mQ΅<̬k "d$t 8#NjOf`+ -pS< lFbp{d\5'$\y[$SIQ߷XelsNq9MD(A?I(|#NV-1is26QB]}z XidJf9^vSܻBn)PlFN$~OKi| -ss {͋OUpQ`ٝ0i>YeQBQ -X -(sr9S|Cw@p>2s'=fS -Jn(B_4Q$L1v^ -5@@ӡ^Kb0#fBEY4~jD /_E^ -O 8/o6̗ש[SO1w\_}TL_st;P薓ɉʵ!lP*%LJRUI4 3EF:+>֧{0xI?,h{/GW~6o>s!f(- 9):%u)h3N̹O)(|"|)mq}^KUtOg'}8%?hV2hťR 8BD:Hb>5f|f|͋z)P׼=%1ێz:ϳw4Z#32L+D8`CMFa2 %l@H?"bڶ3䇎3 [W!fIpܩ՟0 r*QPj&4Z4RBh$2+u\UN(dJwEt@՜H(z!|g;q]/ E>](`a]A㮚/ԃx̐M F2IqV}mߤyp{ OjMV>/,.~ؕ.d=w?]/o'((1w[JnP)P%0P(P<&x9)n;5)r . +j:J8i|Mu/oT3)xix|67&wϰԈK-7KyT MQĦ cW=C_|%]o-ZNWAIkLQUQEᑒVZNdBn.~꘺=FMiXfeSƣ4)r/,PgQE2tmI[/&IɢA]OU -ռ \)އOጬiK_3?UJv-J5/}r\}W"'-q:53O<,.gŭ p=~fE*ػ]=]̍Ar^g5Ξ41p}F0=YoBDy+S?'WmNˆzAkoD5XEdB%SJf 9B qѭώTGt,XHx(*~ɝOw7$1nJYP,[PZQQS׹E3e[f$/5)7U9FLCIIbKZ=t>-h1'$;L Z`>?{{t߼yz/U/N-E7܍3"85Cxn c$tbR\΢р8G]FN&ogk:v66@7A\]' A㋣8hde(˥Fp\ÓT_TFmx&A6Ӱ3eHU6Z\W %,w7te-'.Y5%IV$m )Gfd;BehF)ͭ1Qgt^V̟[s{E1#wsWwh;9-7_Q.{t3n#PH1 w+ǛΓ7c%rɼ녙]#q)uF4m3= æo0P16O lz{]Wk:Kў1h35Z6#3n -endstream -endobj -349 0 obj -<< /Filter /FlateDecode /Length 35 >> -stream -xc``0_;}t - -endstream -endobj -350 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 7349 >> -stream -xz X׻ ZDeKgVk+(Q@A@}!dEvA,պVkVkmZ[ ~O>< 0g2gP=zP":-[3`Cv/BQ%" N3yh^!LQԇoZ ! [`1tbp6$T~Dr[9iyA!~>aIǙUUK<F<TKƫW-$gTT}=oUnUvUz|BÃBGW UEޞ^/UjZ5a*'-*;;*[ a>C|&l%ׄN}QXi<ΎâT[CT^a~Cǿ᫿zn^M/PCQhj 5GQ Dj5zFEMަޡfQ9\ʁGͧBjZJ9Q˨JjrPk)ʕ@Qjʝ<͔MR~6ʟN * -¨**IIyR6D9؃\ 풯(3άLK:O~cE&0~T.A/3=^{F,{}2a}wGg5?̗i 5 zف~?(zRa?Yjsf0;xk\?߯ڦ[ @M ch!UkP +9:eqlZ= 0/h*Tf2(_#drCm < ) -%9,R;XqV5@Ψx-ף -%̿GƖ&7D՗9U OuKQ`R gq|łF8 C\hUF.Tɕ 7|r @u~)%cl ȟ_(8E^* CAOQZv0FX=9k LB0{yֻ  -;r8$ӗĵBJ,H;Ku{>EGv Q^,T徊s2z(V=AF d##>fƔ'q#?i2/#3) fVލҳ8MrTң!@}Y `ÌBH709.F3Q.Z5XdU ZڥWz]JryCNew"M,(0#3'kk:~&FbPg=y1EǞиuI߼&)OKim ]K&2@X#NkwFtq sL -X{iCwudwFr@Fث-ǘ=Vw -bWGPWNZ{iq&wJQzp;wGo_<0/oux`7'@gNAu"T4o4¸G> -6BG|>-VsݷxFUT4lSk}9: ڳl.鸹ts}蛺-Bٟ:D8)]58:@qʠ+X6x#ҧٚ}ʼ=Y9cv2agn]B-כ'*^A!%؄MsAcѢM<:{+|bC[ۅQ=u CxIV(x(𴿀)IhzFo -O0 Iwm$DA|@`b:ho -_6;C9ϳDwOVFArCe9\,EK -1>7dtѫ1D*$ʉrh#!'~ȉ-OPFmt<%~V_=Rđ4s;;5.4ȘO>-4b=(*`C<` -MR.7bmg<ߗ~8c;,1Oax_]{x\A -eʏl nYXyëRVݕvp߮Ow`3ܝ #/kJڷh[&~p]u*{N* -n! 6x&@쫬@F6( -)fyAUxLH3+E *E*-z&*rj:ݬ.?U!\ i@ה_'0R,; ?GAFwU"k̉3tLK3Ͱ>^D #bԻlya|8נ S:qX-hP8CL gtZhCQ & gQh25B31h>ӗ+EAOCUS[ϖ^2}#{Ѵ|o/Vln0a_ \[ٯ[1{9NYɟfn9KC/* -%Yx!H90};v'z& XyB*XutWƸhtGwbQtz-yGƔ'u{[z~5Tfl)p&} E]Vs0 JHk7&MG`RqANCFqi5rC8?+c6't_`8\tLy(lWh“AJĻ?*O> .\6ʏз_5G:]`.I;0hQx+*<"!8ۣp5s1|-agmS^6|uCbժ7K3g-TG`b1d55儧x~~8 B[+ La3Ň%G#Gb}2?MŖT2!K !ܤT kQJz0FK{KEsζ?7Qˎߜh;h -Q_᷹Ω4`1]hK(+1h<.Q/56JCt9RhqƵ^A7ߩӌƷhb c~~%;&NS%J[M^_Tĵ4*g[vQ/bIĨR -'(vkw#.fEO6<}%?  ܞ=zne~!9skL40db3-|3橏op@/&'j5i(8+l};JOfXtiJM6}Q*鹲[aw]@3j>auVI&aadt%+rо睺LÆ@x޺ -@[{ q9/efz}H2O;"u[^>0p:Խ=ӷ"<34 SWiA요ڒiJMcfľ͒ -Y*>. -afe -M">|6"_B+SD#m\rfl9C>.|v|zf"} -M}"~ ڊNKVוz}R'FF˖ZQZE%ʪjg/6skWᝉ+i3B]A`3'bv|'J%8uZ@vE#i|z~G;kN^@+ξ{գ'{I$=Z=颣ȯEQh5?.]-o &i| O93 Kf\xwm:-8 `=:V?q(*&@>D!̣U[%GҷoۗpxxlK~B3Qz[vWKt%tnmՒ\77vȒ R@z?X[a'*x-xx\)Np6x !Ir32s6نh~ dOI 6Eު:$\gɠRF6jfo^/(/=D%6i/](ʋ+ 44omLܘiJ (6FkWvMe[vS1b)Tx#L{ yb 'I3CGGdrr_-yffgF,̔GGED=aR: -?{|C LEQF{};xV7Y'Cq9!|*2=q&>KhfƋ,sr!mXCWTYx}[lOŻgӲ-|zїMb;b]Pd.ا~3?9#IwK -Ʉ릋  JYnm켅H{&<{I؉>ah;XgfO#\-@/y,ZA_ŻjWzh*tZ!`tVӺFҚ6U__ݛ,`7 4} xw`0!![8p;Qٍ7g_¶K j韛C8:* FÇ<̭jQ2cuAǨ(XxL: Yಀ30pLX!D5h#L1OA,)N;hμJ~Bmlq'Ny*k콶sx/tS#4"5mT$ :u39/?טpo ),a{c/N1;'M -iC㍣ ꯠ'aYb?rKzuS߅g$3]ܗhs8VVvҪ?Vnq3iˎˆVTwv ˴-'/Br?G i:-7ua?1T=gc^ӐW?_YtNf~vo!D|"+̽iY!'OJś-y@zH.7˒Zm2Bi<6@ }XN/0BRP -˪3>cNJAIBT‰}&6cjFH`5|xdSu8i(=THɀ8+ l>e7~sx>ct%MJpK{ _N'Rsg-PkMGءhzt華jٴ/bz^W} ЧKcD}(_x~n |"aڲ -.&5(fҫ6xel!o%wtj (1(t= "u^{o~TWN"}V ghׯЩޡS^[t -{*yym]TWA^}cd}=X~o(qxhor~M1 `U5SI(01đtۿgňEiǟ V|qe.l*˗sKl`Y! >#S}肅u0+ߐoj> -endstream -endobj -351 0 obj -<< /Filter /FlateDecode /Length 31 >> -stream -xc``L%MMW t -endstream -endobj -352 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 4705 >> -stream -xX TgIRe;ZwVֺ!=,ɗ@d a[+ՃkպV[Zoҏo{=&I7ёZr^(Ǎ\mу83W3<+,<5 M.Aoٷ9{<о B@Cr\,⦌q_q9(~H GzyΘ`,Xze<(8?,"Ac2Z1-H&& wb41OL &)4b:1 fsXBx~?@D'"ED"Q0C _ÈaR8{n=mDijH2LYޘƗ4duĹ5..A.VϤ>A-Է6<9+A`ݏ#Ak2mQq.;Ne%g(hYb`j(" t5,G57 -&c.`$,2V|3P,,1tE.S0E/VzT\I2p y4`џ.~.:[m֍L>=SyL<;%fj*$^Uui?V+;Jfш1}W^q9Pw$(q5f#3T>m_yf~U0B - I"TEr`jK*;؄.0V]bqm< _w\ -4G'k% ~' -#9xwjM1Kȳf7_}x{vZ80Nj -cpm=򿒔P2iH2 -~sy&v:I -uTlC)2JRJj8de.6 N\l 4AJb48.yI#V35=}Ax[F2#Qd4d [%EUlVv>FebHIm\i0֝M^ -sϗ}0t2O@^efyjF2GLsrPL/F ]kIw wέfצN٤Ҷ%}ANT7}2X9Ά@WCHX sH$o>T^ht2U"c0Y6՜>u0Ñ -ͦG+Ec:hJĐ0Ƒ]ɻGV624Z&)4 eM9 -,@QWbN%h&1k[~n*M ؀x?skjrڼĭIcΏz'B)?_9^ MG\8Y WzA": ѥbUbcaD7K$g -['7'EbKE. 8C9WYRR3ma#u1@E$cjI"oK@EX/<[C[P)F+}[1GYFZ ^^e2 w4 83o~m=VmShOMR3۲MA~eʠle%e;'U:qāi8 -~<"XRup/i )LyUL0)YJ6P !`2C- l)~[TW1Iw_wiv*vV9 j[dCrb_]_X̢1H,Mc -%z{,PSS{t/VYJXV[:[P " )0:`PuO3O)d{mkBFzΊܾs7 W=0Hg9q,3B؄oM&W.1)W0:l%0*R]/H0~v{f0p -;7کZ.1DaͷkZfU;gҚIJq1+kpI\l(޵MW]_=4m;jϑsuX9]:]Mf0.FSۃ\"W"hvY[tVGT"a_Hh(7-/9MR/!Ki;mǚXצX]|ޘ-ձ-&΀gdZ/RcS/l%'ӆ$o]K}30QpsLJ-.+!C4xMz&l1^e8.` #Y6{]SP[m":pn./~/3mo!2XuEEzC~WY<}q -rn+֒3 Z(iN tzVxYܚlW K(Tb{|c𡥅K>%g!=ȕd./2x[R$iHP -& -ힵThe^9'G!1_LGf`/Z=;zo~҆)a)+iYc~&?<}VUҢmxol#k s@AOĝOњlXZ$6/NOkh}y禢>:۠ϣ @v }G|NE(7h/a X& ]GjGe_F[ J[S'j dĥ9^JzD x('PX70t':&|5rMǯ5(a)W]r}W)Q:&}<ˆU=jI\Fqlr--{uQ3|npvU/ -mȒd4ENk2qA_|!vXcrnܵ(Fg292'lTiֻ7޽%7aoN歛g 2ִmD9l/E_|*Fv d,*ܞ\*؜iw5f%sYʼnbϤӘJMjd !`m4x|2b庺J&t篬EP!~_O7y=jM*-ҽ腿ߵi.9g _bୗysdkU軍*Y{x~'(䃄|$?o VWm ^#'!(YM#(㎊8||[%(b.BkK4ᝂ* pythSu!J2ǰH?ƶ6^1dDOZ)I.?mLL1$E[$+*,,30; ?;@hȨ3edɴc䩛ekQz`U`'d+ &c̒SeS4 啃k*Df>'(ORזePjdij}"dUHs3ËY8K(B|T^tjtEV Kde) qI]=X@~T>C vÀ/\g!/s%41 Ah^!w,$ ]hG}%忼T˥:nZ(GZTPAZ41> /Gʒ+Kp}]FL0uP C@,obi%b"/1og'ũ`0 FcnvKRm599&7f -endstream -endobj -353 0 obj -<< /Filter /FlateDecode /Length 32 >> -stream -xc``0.}[7_aҁ5 J -endstream -endobj -354 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 7449 >> -stream -xzXW,"I23QcGkbKTbAC ,]]`ATTPИ"(& cK!ok83<̈>}H4t"[ەk&دZsUL+5ϥa$`a0\$f'}E0IH2 DfSf1t`h܌C o) 6LnL2md -W]P.]b|dje(>#Twxxzʕ[*@+P7YG%U߁*wy#P!_a|R$qP<&*wP\k`@/kOFeۻHem:o57N_nd%‚@Gj_je"w p10b$>1@L$&T†F fb.1O, [ŽXB,%+*b5XOl 6&b Hl#΄ J ›!v_PDH!D(Fn"(55e2Sj(lY 8X[IT*%? #-7oJ=nEi;|wc{=fI: * 0(zу<䧡6\f0bX ˆ?g}YG?k?]xaKk \8JruiQLN;Cݏv(V*ȟ @WkR`i q8TSgTIj4ii- U[te0_" Lw :xfJŏ(ВB;vg{;93sV( @$wdagS97}]0k>M-/j<|:ʔCNtqQ{sj e3r <[A F{(.+Rv;?]paz;̢d']Ezj5vlBR@9dʖo, c,>Ec@.yy|rD.>y6Fy WI 큮>,NRSKq\##Y{QYvg[$Xb}C|25ܞRRH$ c|S[4Y^ỬyQkwa,58MAK3KІ#k]'46mK8!@&^ijJ:-cJd]pv'|q]cV :,3hch-8ρY=Nsoh;^E{ˆ<ҒsQ#+4qPTCLβ汨 24P7XZŢ>9f$% z Zɠb5ˢ7|! Uܔ$XםkvbFV8BD7iWn`m -rh0'̰ 9Ŧ7qE$RACh4k;\-%!'hY[C @Dt-fY\NЅӖe8smhF1NLYMQ4eb= aAtw;j_fP)`V4*3JJ'DD7ʟb9Ԫ ~I}!LNKH%$Y2c"VT9^rDR486C$wݱ+ڣ%_Z3MCS+p]qvمCܮ;3 VZzDPjUy]M&&jBA)EUyovŖyz0S?^6}gV G=RGG+u5 '{>L/}?i75؊-[ fu(4Y1ťtaZaV{0f_غ]'@* -t)5c&1A 2R,d`G?ӄ0"PXY u^} Ovv Mf*EL\Ȍcptc}rԐ 3YXVf !z' Fj+jT[Τ!k3 Et>AQ/94cWS\b-atac"ROP0_P (d[s|;E4pbC KE1td\LpΡF6e,^fw_9L>,5h- CB))qĤxZvqQ t58V8x8*SFzz,hA!n˒$o`/~,4dyhc^ 91Аp"̶$BI]{bqP*~'/tubZ T2G @w} p|ك(dLIbfl^jdvDC0iKC/n2Yl4+}􍸫-mYKXB -ᒤ8NdpN"=ub-8䄣I$G?:%964q0R}CgW(Ǒ"p뮀?8wWaܷQF{fXNBJ=魪^rY%v29[1Yr^,5܁wĘ ޑA#si2o!S~SzI"H5M5l4]Wv6FX߃Pκ/1avw8H'+ʢJŕ8(, a\&N{̑&t~VL7Xݦ$̃t*hRpώu}Ѫc5LpJn'ޓU棈?BEM(KBgBM'3جL`H {؍sd whΧEce+Οq/K}Z}Ci^̈IF<.by՞}n?6E0Ht7ozO[cf9}(Jk`cArMŠ^7w7_y0xuvoyQdnv 6mlb]"2vB65 ̷׵Bna "<bA%x 'rR_]b&e~mq1[:MAZ [P6p\94?qɴ%;+ϕtgPn;P3x2?~`sRV0 s̉Z_1Q@V0?qj:C *h{:Aܜ$n pcΖp1+'>l'B[^ + d]pNBZhU]WMyDcpI_n?{@ANɽ̂֐bdz!K>4C^\ 6aF7x +4x#ipu_: Yx̑(`~ׄ)ZPGHMP_^3/p^9Z9uO+'chM*(bK[2 ^mNW -x,5RTDyh ,%<ÙtJx߶nT`?Ĵ_Q<&n=h p"=o`4_6vƖc "UX2O/hJ\y(DD^{%Z0(0`l 'ΙЎ$hh>R=eKo1(c5aQ/ܞ}](hNxᜄ-,?m@ká*U (o>A/+T ުk5˹k+0bONtFaRR0 1דDlCB^xOmJ8Kz"KQ}pIYxKxm fuY{m6}ёYX1ۓSkV!n[]PYuh>}jo~9G/ȑ} 6 fv(0N9hB|^*<(Sw.hF1|{A8<8-J~ﲒzWouW6A}6O^oмy|(A-}XB#sؗXm??@ʽ2ذH:"3*?M{4<|}@\gڭ|?xa Pi-]U>JE-cm@kt A}DzjUV)(/^SVt<8ZI]]w[ \{y0m0/RWt4FDջc1f8ALoPUX -vPQ*eWl ,./N2`d8oaa3& )i)=De -endstream -endobj -355 0 obj -<< /Filter /FlateDecode /Length 44 >> -stream -xc``0_} 4 *PPL0 -endstream -endobj -356 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 10442 >> -stream -x{ xնn J* "( -2E&0&3N:tN!c80 N(8\ϫN@ѫy~~/| IW׿ lh,((hbk7, r7gMa\fZBf30 &|4a'Gi9GE佋9*?%ŽSQX6{ - -ƒ?y-OKI- ?oނف— _#(H N _;7si3rR2s÷$m $s f ߒV.gOL+HJ g'&&ںyKs9مϧ%$e$ϙ^ZXG -)ssSIfSHț - ܆[iMbRvaZa1~d!l6{`sGG1ql!$[=-Ŗb˰ -l%=Vck:yl=m6a-VElہvaX aX%aX*cX&`Xb|`B+DX)&ʰZCAK>jKKwAS^yT)\M>2&s/5y;^;!wMIʄ gB wxݟr{3&3Cyv=ă)/߆T4·6=)SɩigMo{3<,xYY>#`ѵ.8W--j(,2>f NW(QGW7HF)UjRuaRZE5}mVRj\ -0*CG8,j"C!ׅITr`:M]{xhy(  ‡xNPJz,>F& Tٚs7BԕXd4fTe@ѴW;Mpuuu JU~hxarxO6^S!^} ?1ǿ>XݿAM\<(t++_(FL#rOSPEp2|Ggx =M^ !kUFtSQ L6i`;r?>GaSApk0 І4܃LF' *B+ .KBBFLj뵲$.p,|N]h5/_Orm70Vwtw}Mqh\:vB?"S.1c90e@DEra\`6&+pz THc$: $NPE|_qc?DXڍ Uko88__@s|A8%<`5@Q@ Re؍UI2IГ)`A UJh6tϺ'' -'jGџmZBPm=Q`uϢp)4zLAY6_SBn;vo{;HW.ޮDM]b;סMFf_1o*9O8 ʁAaiWT)iliwx*42-3#Jk qi};Á=ƌzY]mlJپnWBM 5)mxB>>0?<"np3L|.^d6ڰp:iʸ)Aa3!^}7Om4|9wܦۣEL~Z9VѩK1'|Sg9\eYPN!jcZD!,B{~korٚ}7L5wYџod4w,&E *'{594:쿫!ӯgWq9LMʖ^X^Ln5}w* `™^'ISϼU* -F={/yw_y7Rˆ=Gt P?7D00??Rj+i[!"Vāe \vײEL A3 f+Q[ZGʨCqh!.J$^mi}VfzvZ~MqC Ʃ nnqp m(5r e^aFs%}Zg%FDzXlXb5X${X߽hBZ/h51BN7()} | klUaJGĠ+QmRQ""428xa2kJ,AU5z+ zXUt>(1Sop59͈6Œ2.vnE^_Aiz1a 3IrcHً^avW!RIoC&<$8K-tÛ"mFp3^o5:.V2JXw<σAa#m')Tdkqns,F1hp`Օý=t] ,\^^WMTk3ʼn oP"JK[uo±u 'O(hA~4LJ2$6hITBO'7*L2L "RI6dQfc]nqZL#)lP` %lvvs%I o:F%ML7%_kH& Z`HǴG)M[W='e@Wr37EJwѾ=G#ݱ:55+nSzCz^ -ez2Zg9b8q]1)?o3-,U^ Z93Z^3`l -Eq:Pu*PMف[5Pnb!wDνDr5rl.l#.dau'l 5œJH -ioacF -b5Y$RH!==nV,7lYzNVf+rgm$bCScŞN |w5+I sLu Z+ Fhr J!d \ -G6SML*ԛ*jik_ JOѦE2Őr SέvRBCRᦈ-d|jC "m$xf gʧ^e2fGVFM -` -[x3w1W3^DӕK,/il5ULtrR]t˰ $5x\aIX7#?9b$>t?f"|Ω90i&l k󵅩IP:ڭ/WRQ߅'jox8lyp+;DF,ԨLmH ]3:La[pU 5,*sM;zw]]/}d]8:UA9fOWcq{q iԦ5"Qj_o5;awm$@S+;xԸ(o48?ylB%5?#yl pK ÖPVUqM ]ڗL aٿ V- =*y8{nSjV%¸C iqF-(%^ܛ|pa&RYd֡h\ -brLJԲrKrVXN5#FJXp : -G Os5,ѽ\>:9{u:P@*w*oNDR}ܪѭ&_[7 -+W$&0aL3n/1e%Ya43ľ& utt3uuh;o$*8s )m=&&:&7H)>Lk%SY"ZP#DkZ C>dKGg):TzKk˫m56>v#iUc~4WkQſ22囼jo(tmFF)T> NSPh:ƫTzCwVFCM-e/ݾxL9/tnefk3'μjj1 tHa0埀Xsoa`n  - ~s{_z) ApEh>aR^}~& h4s@ʛ!fsp^ΨȜ4[K}ln'/8;S_^ x+b =\rwBy{<\3bs-L$>9+4šv\)E8|ɐU)(y⬝}8 /^|Du]  -}?Gfm>wC Sx)-ۢwɾ2}`>PsL$‚.|f e4ߤ2 a0S]eVR ̔e6X2a !)C֎ -1g(%[2f{_{ -i_9lwmpmD> 8| '@p,'(C%nn 9t!@_E= opۍ&ؔl$,nj15bbXjk4W{rApgҷt7ʮM܈O/RA=ȁY餶~g@%nĪJ,FcD[‰Hލnj6[oA3;.?]DytBSMZݦ}MZga1#b\҈Dhϲ~of3ZwP9{/{MDQdwucyo5hlgΊUYl+Fau0$z7]0is Ho}W~r FxY¦jN!TfDzO]oݺcF苘~ 8sJ@ĩP|krrBG[a1x8|so*7fu=,4]0fXcbY_ݯ;z$ݣIq;J5ܲaѣ| hN0UDS[ەjy -a -i!$^JEYZs3B-SC~\W}NT領?Yice1| q,^+\bXnt\[H -gžQ90dF ' 4AέR'שx\.[@FU9ЇyY{8Q뒁R+4jfu>K.$S aF{&Y$&P cbW'Va`Kob8a&24Tq #y`o)n'q˙|Yphpdʁr= -Vؾ'^xw .zOHBë\zاoZM0&cFꓨj֠3(`i9UO` - EET!7V"E,|fn1b tZKutVnm(^upC`m -_yac aQ+a'n6eD*^z5h7h{J#uz='SG1K^^f,Bkؾw]yGY`%2(\&!',gH3$3"ܸ'+GxhdeOݳlk4ō>~7 .:2KЌrKᙕHs>bp˘4oS⥿a YC hU_ȁQMԧ̨_h摓rcx"VJA2[>u1rY1d{pY5`/vn*79Ѐrʼnt^D޲(c/momMmj~yrY__Z1?g% -rYlGzJ[Y@I% 1uxQ=R ڤTS%N4!\h4r̛ot:Mav;y&;~Ș/0̦*y""g21[{}tTY+o vdOlB7  . U-H5elj}**)C|FLT[k(;TFUɉdvd& $~H4:B⡥|F7ai_d y?"QSIV,v63;ƅ&vquSÜIoѓ^? W|;LȘ\OE3_"z; ]iuve qeHLH3|1\x}Vc=oG\"͞X@iɶítrewq7[sܣ,ުw9okpU}?ǎHM==1굷AUt $D[we {>9}+fBtd_7RSP !O kEEOm ]B Dc,?(=qa=]ԦCFÐ`0&!a !"ɭ%:-rPlx8PrlPI Ĵd6T7h,ߣpڨx@-ʶ_ڮ\^~B]j`àvUapGߺj&UUW-k V(iV&l#~ - --JZ)f}*N*B-D樞Wۿ4!A;/=hWhԋ*V((4&9m.ZN\wU¡%\^/T[\IGIPt_IrU*tL1S'}iV'l0 <{'y=wWn5V< q7P;ƢLhHEz}[[WΗdެu"٬_~>wDȬkkp5_8S,)`$+U`ulіRmvi𡎦zo@Tf@bJ0_83"I([]Q$eꗧIvv\GZ"U[u҂0:e6R 0KzKMMB~ƶcǎxGG&^у2V>ízpwFP\Eyn整Ī·>Nȿup 8r=?P(ނ02s+$gAN#''[2d[XJT&{>PnҾRJ0 _;R8YF aH42,[)~wly@Q?[MnN#Ld4k[HM)?Ypw^}fzY R& D`hF -{xH Cآ*Hy剿>Bå?Ci ܐ4Z#s?o\a8t4x9%^J\UԸnjjν&q~sb4-T!sp/|zY$bkfafYLtQTU=9;u@X:1`#cͭɧ2?(AaqN1b5--Q "WnMзv]C× #0cxu7II7$\5짧j cM_ G]Ie7zDXo/Zˤܦz͐=aӁ6' -,0Vy- Ə8`WmUn3 n^ -endstream -endobj -357 0 obj -<< /Filter /FlateDecode /Length 32 >> -stream -xc``0.|K7_?aҁ) -endstream -endobj -358 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 7622 >> -stream -xz TTGm{ʵ cLܷ׸⮈,NMznQ׸E q4h4ĉW̗||O˩[zߧzޥZDCD"u W/\v̲ёQk"d& -G9f, #xga%$<(}<D;;Q}0E Ns 7GF8t Lw~b(AL=!aԄ'N:?:&).,$T&^":IGGGIB#ҵAxiH\<&ҵa҄R\PD|v(H*̜0A&2!̉3)~-\beK/XfxYL'$_{q^ۣlɒ(aj,5@M&SS7ԛ j&5zKyR^>U$zso8m|aۋΫOrpQ2p= -Uυ;^(yȾ ݗe(aq/M};Cp-X0\=b˯|5tfv.lMu1$f"Q qN.sS@F Ůob7ӻ#%7՚T`0z|B#hAxD1@AZ>i(_ n.ViMǬ\䟥5X6`#mFm3YZPW]E6[ Ɠ S*xvvQ̰ XN93ˠ!? -/)xI :'l{"{.ia]:7dڭa"/|9uޑJ UnW÷zqԥ;Ev-y,A݀Eh`f(FUv$,Z黙_zK¾^=f./6ROSa)w m.])r4W|F!8nծEwF#\9԰*М'eE6IS$~jKfaVdp \KKì}3`TIUshoGBViCm 6*1xy`^O*!Ȳ41Pii)I~M7OA*b mL>]GyjWoPp"ghU$vq/Dzj1U\?B@vK36˃AX4"` ur+Mpr fc=0[+`}pB,$KpD[JuZ;U~Y6Dx)PmOo&/&y4;<P~dzlYŷL{ma~:Hҧo-t?xˣi--2cٖd[u:vA6ަ!MuH=<[|+8 8-pʱ̷f>Rǀi AdezABx@{yVצUK ZJ iD4 ƭq_z6--0ZoҾYJ~1d5Vu;/9/ F C 7t%bK;L|v Th8V)N +vl#rn]Ɋrwwu;W}B7SH@[%_ǘ[jUeCv@>-9p/PWk=2NTon6mPn4Cq:I*& ˊNUlM2Â`MЌ,W=" v+lȝ&4Zm]9 -[8H ޚzB,z[Y: M,h Uod.IWU2SyvvN#]^b`-./.r;J O'OfvpO:ːZbZ:  -UtШ ΆиO" u{ =Inчk%!hWx2'? )țgAy~c`!7a=GP)A|Mzk驶}?xԆq)I8.T A*`3$`3eꝩPuDnP]²@?U mO"sV1Uc9[ݖ -aDN`ɩbh+W$[2[5lS[IVdmaz(έ1ASMjGBN-{\9ּPic -ɯ4XW?ɺY^VOK=%;j} -!\v#3oυ]t%&8w/>y0l -bZ?]] 55 9꾏ym|nCFm&Jdǽ7~W?paC'5%-f`!rgΣhAuZWyaLHȱ+ypZF+qw&6 VwmC8Up"Z))8O -;"9 -њ[s{#ڜ}W7&zoN9#9I ,.:Ncԕ{@F䴳9WPlwSXd]B!W(y]:yp&f)DByS8qf(eR32Nk e3ԣ '4 Wd*t|Bw!(\[Of̈v.QuHoX &;<l;~V0t!``;ׂ1O~!|ZOҌ& wJWi ۻ.9ڪ2@Ɵ3.-XEb`;Ll 02 @aN^:1]~Ì}ܦ^LѽJk8w+Du?Ux0[|;Ɂ˿ WTp{D,t[ޞ33moZ[&h6a"IsP wTf};?^?z;RyUH溨moM/H"L:T95{dPܯVeVݩbBe7np_ `& [,k<+7;;Wu=9.GPO;̦~A0v2jeBN J]K?Df?ʤ9wÑC|H:`0-:4%i8Yx -4+s a0{ٴM.47=YT۲sBi@D[Sfc㺿=Q'LC$8Z SU w;LIpL'qg$~^l`L+xZ4Tyh$ĖF\Ƥan\"8mbN&ߌihxik!V>h |?jy]Yǝv<%EKʦuڡ*Ic?~*r#q= m=? WxV%Po!S+zH R> SR}"OBDhp-"&</SqB}@.fK'|~9b< -K[rc{Z4\@V/OWDzњT+]`q(\{v4NX؍VHtV`w[YyB -7̻S9Armv}5, -gV.?D57ɽbnf Y(IZ}d>o,̃Ga!;TALPZJz10 䟎ۓQpi1|}eLB1d vu|z*hj-[y --V]Mj>IInǜL^sح\PYFX]W-rT D~~)::$X`Cq1pmc,eUKXK-@CRk` ɯg|#y 0dEqϫ -Xv5wo < !bwhF64$u@VSy_R =[-bAȱ7'b oFnV8 ڒI® QZ!(;/E6;zÄ+vmhwb'4%NbnDc@E-ˇR#c9㜆i#@`OGaȌ04!BR>S"XhL~8p J@YvW ml)6 =E%8;J -˾(7£NSǗwdN-3f+_7k])i\C,Y^/\/;r+Jk$^!^)ҕöm Y}f.d Vס<|Zɼ`zղmWEmpbʧK sMbO)_p84ilV^b xBsNhz1MEL[ S  ZdN Y:^'7]l99Cf-t9Nn -%ijB_ƥ3Sn.ُ?ŝR`p?-~DIOz4f>!o;" e]i<\0r@~fh2[Ayގ1;:(L=nOB4ׂ_UBzjE ǞEk-_(R'K0uy;; [UuX)q,V#sgiTZ.&Đ7mZHŮ&QXWA zF'hA\B>>jiNyNa֕(q -#Ee`YE+&2$BynKQ)ʵVH` _6"=[ @jlɺϊ~g7gzϭ}HнKz&6[P9z|{rpSU!XwyzKLs7M` |Ig ŠĔ[L02 -;]ߌqo6}nV@ ']?N/.;y^&kI(b^8m=jn]1hv@Gi))`]m#Ec_'[3f4fM4vtBWk#j_r2֜\& H5$Xvs pĹsM\rIC7 Q -&#(g^fR k-'ѵ7t)pܓf I6ZxQ0K - y!ǽؘ'| ; '?Ci$TxqD+kUb]λ-~9|+v7[4'mVrR\v枫 \V"!lf<\$<l_kV˾̿Px -/'6A\2~u^"ǯ\(9@ljZVm Ҩal9Ń6`q{8no{oo S=ӯMn3&NuxtsSJΎҳGEN$k -u4yyUڸLBKO}pShr:m<_ۿhWsJϞ[^'d1Iu:>A[/j%)CVth] -ڥ5e{B6/0ވEB|n2sĬ U/m#r 7(ѝG+ -"ɮ!k`\حGM -P_Xr$t,u|lGDQ4Ƿǚ\Va~9*Xk#&8;ѯ@h4M9;JkM> -stream -xc``LLcah\ V -endstream -endobj -360 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 2904 >> -stream -xW TWEDƴnFgF*VڊY*A3$@ <ay>Z]:%'ZQ>Zm^Vټu6]DS(6"NoV$F(WE#*mV fc/`/b>K -{ [ck&, vbX1XȬfal9rEDv:{@Y{N#I|*Mxv1Ҕ7Lux7`0s\S~$F$UlygsH3q]suvnH6@ 5gHa(򔘲~ O j*nFh`ҨVBęX=pW+]ŵT]v|-mxݩ`QE.]!Ab76ՙ#ZF+ˊDɟXkU -S[?%#Z.K5tËD97r,psb+IOA λWlߩϠ-Ȗm'~(!zIH@{p&gi1!TXLHfEЭEXCJ\Rƶ\~|s63JI /?zgDls_V|cJ5sREf1GAO -6gBN(1VPoMvo*!^p" -ͷA|`HlJFA5Yu]41KnR#-m!T4*w`0\u~촡g -A:7K粙 Hy2("!FꞸJ -=Ѓp:|eae7 P0%X9FI 3V qA$B^id0Fp7Ͽwtxf/$5 8J2S2rShrI8Ql{G@-i~O_[bkԚ4Ci {l$Œcx˰AvWw\GZ)F8Em }<<MC'Gȯm_/qU*m1T6)C`&oYyILOċo[ ;˺,÷oMI +r{V.U#=; v"j +9㰨k捈ydC?Tq֊RYpLx޴L]L2ӷPςݻ}X` U[UF"Fڎ?t,},B{ɣC}櫮Τ -LYnN#|7ȩ*5(dr,l -}BR^q0 ]Rv:plTUF+փ5ZOnRZțuPj"[p;w, 'd@ -0JdlȹINzG]叠=Cx z0l:y:e'k G~&_R𫟞\⫁7\|MUmYz8U L} Y[ghD:R&IAEaI48Lq8bXɎD` ƞk'$38TJ\| fٶqI†[bۼЮ j8 6nS89ܔKS-[3 89Yխ2cT4Jz -endstream -endobj -361 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 984 >> -stream -xkLgǟ2{EtqeA)0.٨JiҖKiqBL's" v0 a*Ȁ`Fda-n˒> Ȓs9 -x(qF2PGtk6,-|hE8!P,puoBO#PTdRmAAꏕkFyXHh<\"S4j|jQ*Ӫt6d*Hg?] x`3@ -6g)ʡy<=1BN!ymF7|v?" !B 2&Kl%[Tlev]uBK |G[3ޮjE>~!=t4+X -qzs2QGH}iC[>`b-)5M.;d7F8]ѯRrFhkC'j\zKquAIjKAqvU:`Xu/ꛍvIq`_©J -P#F{~I]hdCk 9 -I>z?dQ}֝k^jV2A)Qф"'kk`-iU~!Q*h -LMF'UTࠬqTYWVXځT2'S" ! !÷A> ?#eM,kGAH -̐> -stream -xcd`ab`dd M- M5~H3a!]#9nn?^ }o^D;|FhPs~AeQfzFBRTF%83=OA (K/M+M*-V۪^X,0<X MDDXe`ap`(GGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw Yjg=n&F{xxn20XJ$ -endstream -endobj -363 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 562 >> -stream -xcd`ab`dd M- M5~H3a!]#9nn?^ }o^D;|FhPs~AeQfzFBRTF%83=OA (K/M+M*-V۪^X,0<X MDDXe`ap`(GGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw Yjg=n&F{xxn20XJ$ -endstream -endobj -364 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 562 >> -stream -xcd`ab`dd M- M5~H3a!]#9nn?^ }o^D;|FhPs~AeQfzFBRTF%83=OA (K/M+M*-V۪^X,0<X MDDXe`ap`(GGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw Yjg=n&F{xxn20XJ$ -endstream -endobj -365 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 562 >> -stream -xcd`ab`dd M- M5~H3a!]#9nn?^ }o^D;|FhPs~AeQfzFBRTF%83=OA (K/M+M*-V۪^X,0<X MDDXe`ap`(GGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw Yjg=n&F{xxn20XJ$ -endstream -endobj -366 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 693 >> -stream -xcd`ab`dd M- M5~H3a!]# 9nn? ~^"h>]#4(\S[[9(3=DD!R*Zde&+mUJM/I,BCF F& B " b l@3080LccbGGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw YA~-?.2q[{ۜH4M)oj-wcWgwWwdk՛Z}gO׭Ρ`S^=ia\)%E;߻l>;}bgA~s-૝#llqofC -endstream -endobj -367 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 693 >> -stream -xcd`ab`dd M- M5~H3a!]# 9nn? ~^"h>]#4(\S[[9(3=DD!R*Zde&+mUJM/I,BCF F& B " b l@3080LccbGGg>d%},6i]9~aoaZ˾iIS9LɖSUk{Ǣߟ=d]VnBZ`CKLf6]t{!irٙ5U. $6]b7ǃA6F~bZdzB/J,.|{Ǻu.j:U1ۍ,1|4U9Jjj2^~k,9}{Ue +'~p~ג ҋNͯ)*.է9nON(*J}7iwC\ŏբ?~}okv7[dqZw YA~-?.2q[{ۜH4M)oj-wcWgwWwdk՛Z}gO׭Ρ`S^=ia\)%E;߻l>;}bgA~s-૝#llqofC -endstream -endobj -368 0 obj -<< /Filter /FlateDecode /Subtype /Type1C /Length 1176 >> -stream -xiPSg -"EI7E+ U[0(EmK !@TYuJ&VF b` Z8PKk;vQp:s;}{($!ZoX%MY0[$c -a%ْ!8< -;PTPxܑW7G]V;SIR/Q%VBxV;Ydt% gXU41&dwG,^4hrf @#D y#:$ACs4Q1p}@sq ofH"ic]^Kfu7*[JKɪ3x -Wd QfkMo"jMMKoҐ|SZn-=uCkT8]Of$o.VmKs#ԲPÀm'2{/Qc Voiur -eЫ=L?Юر>dCA i>AgdArn/,42% -@j_p$UdA}dq΁}YI~j['0Hnc;C1eĵL..OGomD -endstream -endobj -369 0 obj -<< /Filter /FlateDecode /Length 28 >> -stream -xc``0L^ @=\ -endstream -endobj -370 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 5191 >> -stream -xYyTSgڿ1Hqk꽱کuժU d! Hrl$%İ%;b1"n۪uj;9Nv:Wߋw3S;Ι9I8Iy~{rYHPb[mum-NXlz(i,^$LŧPsY>"ԣAm;!'CCƜ9sT\a5Me^'Bg YL1M I-KۗwU!)q?A/J拓H\*H)_*Se̗.S%)K5ҥEҥśv_mwٸD#'%$,^(.sں$q`s C&)1z,BA"ˑ*ed yYlD^G [ndE"H$GTD!H"AdH6@rRf -<!B\e&\`Obl( fGQޑd h=/ݍD{PՇ.a *M28xG|6⾻ (|Ld6Xd}$$vA svU#"n <>>NtsZ^W蔄,=:\6X٨f4ysJJd5Ϲ0h`0/Y3x9x6 oPAX'77jCF@طpe#d5xnhQc{2:yl}D?< ~~O:z%4pz9{G&]@?v-otb iDhgriʯ( OϞ׏`N EբL^Q"_ A -m&TD/)j䍎/uSӺY6V.DA3 4G -Fy~λmvw']"ݝ˔DyrD)1?Ծ]=n:(?Tw:b+{2J^2nU0Gaŭ9`i4MaZaă@2 0>?ː˔A4`s^P8u7w;?pFN)YgvcEP[IT I#[ZWG&R+_r`T <[Tk=V_&vϰ#@=UCI<ޞყX/Xclj2Zjq:#& ,$@rPi5Nw*=`U6D| -в;ٱw>VW -,f-b i EhJVgdnsv{شFqo#x轙G(X&ѤYwnx+ΚlncCk"8.L,'@ Y[ͣOހB\? Fa'g Y}Æ*CsjP -?x& );;˰='c8R-)Wcu/P5WWb?a\c#HC@͘?|owDH񮜘,1=i,ӑd:7CDs[߉٘ ͕kԨ/kPq{ԍG,,U\_H0cF{ȑg{t[l[1k5%'Ʀ^i xfTj 0VoC]4̆ۅï?bS멵W3/ᇕ{i5Rެ#4G X\"^A楦&Fll$lDUj&9Wɽхqqx[nbþBP6x:VHjdAF'waw9LƠ[qQȶ5\˛UxG Y7$-ijuRf05 &Pkŏp\e4y|PVҨ35;1z) -_3TZlE3}EMx5OiqF3(<}2`hA] ,^yDO}p8A| _)|[_ܙ܂g4H{_\ RLNTOO="ު۹m% I&fMG<>M&fv%SKF~-* 7 -`< -u 0B] , 8Z{ k47PRۇŌB-pFjWXNvѤ9FAMTdM@!;Zq >_ bSy9ISYXQu\e!jVe|AItB?ql;m#pېpn:fZs -Nꆳ L\9y2+ -X2c!aM6b' q^Q z|zձMOAWՕWZR3LzLc-,eį]\`lz6'U/}"vm{j,ް4~*XuS5.g=ٮn']082\07k[PuN`kG!+MZTUo;uJR'%t,?KDZy] *Qiω_[v%VS| %{t?C;c1VREse\<0i&ȉslG5Zp(kNw6N$'D[5bhH W0e;T  XMی6u=Nzt-!^LuNjrJZjwv:/O,ߗ!hjj[þ.砚D^1OJMEx\NVAl:t#V=T5?f_jh:k_ MzN;Ψ_e4`OBԥY;SH(s%q -J~Z T5Dd잮6ɨ]D][ mwX`J^dž0;͢"~ WKb0n0h aځ7\t_i NNkg8_qhMæ;c?tI,J ty钰b4WAėl_+Zٕi"N -߃3 _52l*3Vjk=CUPrke%&LletT՚@ea-[;Lr}&'VǑ$o$E%dfGGoېS3[k46s(/7ש1t Nd&Ed^ap|yS.?jMK5!|56_ FtZ!B^y9m[@oBiNCT|[@* @_5|mΆY%Z65L^Z5(-U͍&;=%U':}a|m^ ͜EK/Lǀ UN'+8x0aeٹyCxUwE"5[4> -stream -xc``0 -7_V32 -endstream -endobj -372 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 6180 >> -stream -xYy|U&T@` V,py {:$%$5^%ξ5( "D}ʸ3o›T9*uU|[͜/ >xأطϼq<>o -O_lي5n[fp.j.ǧ򯅱\)Cdh̨%*VXd]W!ѬLB,ы^yu)ߤOxtmW'V4JZ=?/VbXq[q=mzJ'/KY 2^@SUx̻85-怹tYKCGk6nzHb1c׶tvs?z X=92RU$|7-&b PrSqS+ѧ6y7 4Xo b9>FvĿkI ܛ͓̾f<#{spmǝ&Bfru4Z_rC^M#OjOvn -*\16ULG=8:sVŮ'pⴒn_RdЫA)(]ɾZA(M:3w]5)V;>m3$8tP=N>.#dƾ.I2Cjd:%+ -kڀ8U0̉%L/2^6n,}4O# x\[jo -eJ2@ G[PÇ2Q]JGjfh nvXd[.izx$D8ոmMP)nY*l!S'cc(SGcT;G"0 Ao8|f"_许\O2y;YzgWA`l TwkeaAO:):IOf4&G:-d0 lb63˛{ ~A(-! 0*j47a&),+:,7r4[\|[N5nInv?x#x0lwN}^cOgtp2;GW6*Gy P٢m(p)r Ɲ]G.;w_?ϼ3{[ Qr#m4ԤFT 8ygwa'Fi2pn!CT>PP荨72#Y␷T[.?u~OW>Q&OVo7|iH08`ϸl ~AWf\jSrw4юVϙ -B(Z;{K|wQR=?.8J4VoB-/(ܓG3Z7$cԺqRJ|pIУjks(՗Juh --EQi.F:pqR#t&Hc0p@ĵ!f(/`kL—+Ur#8XQ@ GBfW!G<(hlur7%[0w?`_"yq7|1@eW(E*B -|$D }ĭ{QH'#qEfhDɣVʁ4.H -3H/gT `2/KBiʜ^7ctБw+_ț=v'\ o$~E 3# H6G#'pA9TCR~ɤ#"JFJۓ:06]GeaINP8Ih2FDS;$b#K5DZQ3M[}8a'/#zu(CV *P$ePJeE]EQg=qEw=U41Skv4]vp鴿(J&z%J jNJ9N)gȪ%y|JVZ{/VmbpC-{UlH֫j -;N>2?/{P4T2A7%TD4:jރ5x]]Td\,O #ڭ-C羉C5FٺTTbX^JӶ -x\^|7&PdAmQÀq7mc260_i)XWm,Y_d(/ dxZIb뀓kґCbeAl>3K{~c>ʁs8,CA2Bt!Jmg̶*f!^\w#z!{{(`r>c<[H9qMúԆ|+U?L(É+E$k3)0&6`,1hp6.O V5,{9ug]R f=SK69|Br(-!6pF.dJA7dV=%1HMtzg< ٔHQfv\6qTM.hToPe.eb9;чs٬QFsrV*_cNbsp3qqXKf E4x#\e-`}*Ca4 79\^WkEl< # M9=>I -N+STL9]UJRkSB)7iusRky@;/>@yJ3$edlGFḜhvqv>kϣ#hw~]&+r,\Sd4 BtOa!|Wycg_Cޭ q{B>]Ip$R-ذ((*ʴr5qV Oƴd7[~\N0Ѭ$&8F@'F.ذy`6q?t -\:{q{_^Y,q5/:eY=![[udnSꂎ¹c^^[z5OǿbQh% |#>VJ_UোOo'ׯ^bˆj0uO0h,q|g- [pc y/:.WjE;YY>EUu2Z3W]k=Ѽe íU7P)I! 9%r)u4SG[^ir{G˻..S" -Wy_ zdRC)1bh/H ސCwJl+J㸞cTU:/死^^`,^ЖmO"A."6Gj1fpȠ^8t tMP'HElؕS(?r'RgpКRJIjG;k[{%/Zc+@"hY?>gp*E'/ZUqw.7<{bAvgqSItVW -{8Ҙcjc;P?v`Ky0z[z?KZ[O) m~j]6/]mUVY%啖TS}DlDx̉wNm%}xs~J\AГ/-:tdw+_֞wo|t -cHf$Y-;bBsi={'KPx#[Q t>np\ cTNUW8?SW,!Wq\hd];AUEǎOPp8P|jhJR2mqH>xsks] Cˋ[CpP]  zu3")m%5< ΎVvDpZ\jo(<'gE|[*t2lO] Kt6|5Al4Af^g? g9Hs>98΢A)4o( ʼn>]_KCEva,3m5VJSU$6r< RC6MmcG*+j薛$?jfg2&\Rj,.Z^Ə4y%'vtԕxQ6USv +ʒ5v{+:h.8;*#>_}%WRmQHvq^x7:)E*]yLjK jTm]TWM~LOBk=C*9T;t]6yQ R?s唫v[({4!|=kjw,9r|^Qxn);UYyvxȷDGɾ^Fym%&mI>@r <^TQ뫙& 4s]rii` 7ّ:_6sDt7[Vi)nbxp^ZR\,%%;VG sov^Lj(YU@,Km|(agבbPR]n9]-.ΤY%kkZl^inz^ma<<ѡԴ}dC^g{^YMU\:.jlPuQp58x^J38eVhC.΁+`LQmy7?D/Gw.S/T0 {67:n> -stream -xc``00L~C.8 -endstream -endobj -374 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 4689 >> -stream -xX XWQ$H,ZFE,f\@A hMXZ@fh轪MEZ -PqI|N2y &K|FL2$2[J^] TVBko,Z4tW3bff [/X%~!BBH ^&tzSc_~M%ʼnq75yM$C1OSP -ZQLw̚>gqFf691)G=+<|48Whzyl|JF~vJ:6=A|ztuLF>^MVOHWibS3i֫s5lu6#73{tlu~6ETMl&AѪs4ꥯ]^^I֨lFҌ933kg_=C [:f]ʗGǬ#G-CN&fO@MMLȈӼII) !`! b&1xXHD""XB,#+*b%$"H#2L")D9P*LrgOROju Je̓ˇ8 ~džTSK#G8+>G=(A3:t5BP+Fo;]cE׽doRI[I{OXks=`TQ-(L(⭜%8ݴbF8~ogfP HE&_ -[|F9Drf`HkZ٥c -zxg޼l֒va/C[r~W TZg~Y2g 0%;@[-Uh5 Ie7hQw⮏' V~qo({kfloh404/Uŋ#AIȣ.,c{Msז*h<5B\Q $lUK7xv!QTPtBTU]xzͥUB -R+c]8Ѹ L -|n^*јR0(s mߩol.66/ gPIf5$Ln]k`=M-@Pݗb&J -Uv[YC%MLA|h{p, onAhZP/t@ n/1f3_\._@f0Ahڒ̢0́7: - EI'~GRD' -D*l'Vv6t ldgA{f7t2?{V+jN`a>Y+K#g-)a7''#ahPa*1U ėϊQkA#!p \x -M7i`%=Ⱦ8hnnlf2wf0 HH NƂ*v_FMIJNL[ fb]o'ҿRi)a[$4 A"mN!+Ra?H3򨳏PqlX* 9\K  ;DHaWbH_#paoKy d1` "e5꓊e:~lnW~$:Cܣ@y ) }^'?={: EaS?#gOα.1: .=g4hmŽ]@GNꘋt_K 1@JKb$a:MD_`HCGV1J΄"wTZGD cA7Vv[j 7L))h| y,3NE,s0),jQ2$SMq}}pBx`ytXAJE+_? }8p^XDG(|+T٣hO >rBy\_BY9(#kIaM7i#~HMyL ps̉`\R&2Qf) ǚ/yX 9܏8U^_rh!q4/e.a)I(z8Q`S:n&V7n-ɡ&,)|&C _,=AgJml`Ԡ+p1~^^-W &SPI/"V2ݤw0̯sˣx -lIY z!Mßg1w2wY4m`Z'ٻ9-n+diurVZFRWPІ :8ұxh!vm C>g?%plCnGKˋ*vX wXV=t6ႩcB?ig!5r_ ߩ?`AC?v ,ţjYtޛ><7 n+xͧr,^Fc+X}<^ ioRaJYN(?dm6ITJ+ʲ -'+)<6.3OW̉+Jj]|g1=hC?'Js9ty}OK__J k:9YطA~!ޭDE6+w}PF5K>U4Ԃ~SFRYlqk/6+Yv? J37/v_IuW^[YV$;gh'BCc!woٳYuO9fvz%I*`łd<y~vwяƇKy1HK]$=MtT*Q* 3ƣrLih_hC -{5z}pš# -s hu -ۯd4aymwpgϊnA6|:,ԏ?|Q Ƣ(A -^w-up;W閂~ݭnM׫zU^cJ⋴ }tfˏ_axű#v!У?9{ -[I٬uv==mtV+!xgFܸ -Ťh&ک⬩EIVGƺw]s.wA'1 Y2f1Н~fy駫*^|cu5r͖.kn;+SymKh8 =7>!pPb#5g4* jww2]K`ܹbfSWC) -U`|E])^j vZ3htVHa|zhЋ%ݮcJZsG96i-LU}-6 y <֐t\S3Agf+`KV4n!JƼRc~$&; ɥ)t3/z]nuGf"P`aFr3T1ePQƞOg`?~Ba]]=i1WU~rھ[{ ߙ\noo@<5^[=n!^uc 6 +6Sܳ,Ij(b|၇/UK#CyX:w0Y官G-Vu`6C O _ v"Zq7cEft=q3N@$R懭_ʤ=l''a -FV"J#Z㶢/{׫Ʈ#;;'kio ̅D_iM )}"R̙8xZasr盙>% -׍2sr9 zd`32gM _KwK/cqԕyE A(zBqg16{K6k[-<`NgtMmLv&g+G?Bf v,һ,ljfڋҬukm_ h>D!2 " MY'j42Kk.lЩ')b!V`Βb~긠HP؜;a_MC B8 6{]A1zьD&y5[l̑N+{ipߧ΍eSAߡ9 j}l4u7Lih2Ly^|ncpzغ+زTg` ٙLJ%C~~!We̪fAh#m׸Z\Yze=a{?hHߤA<O VB\n*d~O~Zs 6n+;߭] NJp -endstream -endobj -375 0 obj -<< /Filter /FlateDecode /Length 24 >> -stream -xc``0068MMIls -endstream -endobj -376 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 5076 >> -stream -xX XT>#DEL 99STDŽjT7daٷmXYF@k\iMާO{`}vp0ooL~E/ZXoۙ13ż1opjC{1>;_7ï"{fG@hJ1v -O)VPAÛ> 8ΆOKޟ|(4mJI>+â0t;s鼟QhON0n}ԆDL,tq ̸=^ݸ7&pE_RBB5Gu2]><dRVSQD)!~~*|zC7)4 }ER ?rt.%v.sdGuBĮd0 u.ts܇^f wjp}|JQ[/D6o!QJBHV ` <|`ҟ?-{(jLCQhAd+&\5$gwKrK}HֈhD}bSȅ#w 9p9gEnUjt:ZIFf]ꯇZ/CmNs`rAf4Dw"~K?:)\ݜ5wF -SOE ;`̣trwmoS"D5^ijАbN06yo>[pwXn7LM%e4\fߔ_SSaH?1k 1 8c<POkaKEw0YhO7-\zP>*DnzγkgUx1B˽=C]m{:􌸿{9f4䜉ݛ,'V\|Ÿ/3}޽Km?=s"%Z;]MC?]ԭPHUa18DŽ~EWW0"X}|ʍ*,EnPNBNJFEȸX[U -mP RiSj"F[p:`ٚ%@X>zmrcT!u_#_cf>K Z 7ny& 1e\L: -T*3IUt?܊zԢ.VrJ!JF)E2ѷ4dZѧO]}wzz;aW8JHMgƣWv_ J[dD`Zd69쥔f^$kAq;(.Atu*WEHEUegktf0dže?ڋ?F]5Yh)[Ǭ.ӶO̧dPk,GHE&s@@=^g>`oA!W Բ\bO[v(`kP/o&xAkn&T@R*!P Y -Tu[Ky8kZZJQ42}Eۓ_]Dcz\+HDDD[RIU:r^(K<>P(ӱxV"& -6צig|UgǴn7[PdzǾ M)YZb*Qo09vJC{G}t)VUo֌^ ٛH]WOؗ7Ӥv$3s鼄@MZC3Sʫ/ 8OP(WVX\j5ध," H -^Uix=o\nH:B[!Z6WnyO.fv=.͗. ,2YhN\εR&MJO -Lt{IiC%Q-(baoJ?{ 5u!CHX+fB+eӚBp7#hiz>5E7OpQo6FYeTZ9(`Ӣ5OPhX&,V֪ W1ooŬŘG X]Q{ShMʣu'CѤ`Tƨ[&~,uPDz=>/f -sM䬹O)@"/M,*QŮzl|WW7c?6g -9-G[j-Qy19L & `|Ξpyj֜^NNijZZ ŵÃfE/j}#0z؋Rؾ|7b;K-8 <FF"1;ׂhZZRYxMT8Eh-W^#4LQ XdaˣlCwb)i%**8nR$A3J;O7\ z;)Va"|#6b5q1g\Ӹ v.n۟4}iފ^|\vxoi-U+JF%eKLg}o~~7gXѻTO]*O*X/ IOܝGFoC^p4$mu'K76ӐsEprvwЏpb5YJ%Y=&"g>@;yY_Y_9ƹ _϶\漏m9Ro Hmk%*"ҋ4? Mؖ);N=~vE:wd|%h`\CopVLvL - Чn,}!`pA/A;qZzp$Z-LH:HFZڿB[Le.;d4G[m6|1YPe ;EqĢKY{]-TXn ƃbt)ע*QRv?' _jљi[s(VJr -e2ZKw~:)PGGȍY@+%(,4) - aQuZ -)BFWD? u3Tj (,=WrPRna c3yz)'-PaU^NcaEoWw9r^![~" -y2B".'Jv$#ŽMƲANGPXȅ#He q;$z+/~I0R5,H$9f꠶+{]n77LoC!}xޏ-PQr#U5֖tծCeQ6Hߛ!Z%{9{ '2&^ݩSd]]li? g> -stream -xc``PTSU -endstream -endobj -378 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 3856 >> -stream -xXy\ڞ3XGkUVDjںUkݪ HPDed %DA@vŭrz]z ]n[ߙ?K8gΙNdDH!F[x+K^rAoXay&vʋ]tkⓄ8Z& 2\D~o$G9T0X_Tg8i눧y!#FO ~Bei1_2md֢l9Kbr*a!Ӽ5Y'*(W(W2lrAWkU$!INQnVJɐn4OQ&V%6ujYL'MJV\~:bޢ\֛)SJZZ,SZ51fj^cXd*훲U리XҢUkXeLT[T:sq10\hW/KT-/4LDSb* 1N!ZPn" - #j$5k9Oez{戽ymOs`_= L E_|^.G[ /4 M!_^ELA`1 g;Lt5_/܁w7YZbkg{FZ{ƺ;gw>((IyF )r2p ;( g@ `xS bzS*69M~ѣ97 %}Ҟi^+sN[QRK7rvٓgVXk3IMU^Xx#Xcg$4 -7 |IB%6!c QugdI(:HzXْg;BӁFPn]5&E#Kа&vU;Tm3ɡ ݾ1~e'>۴I px"%w= vFE0lqs|7p{{-*O9e96&JBާ!2ԵK^2A&j y w73_5KjQe(bx8SO7gP>wN=^ -.yL.>o_eĐ^5 *[mO-`?U[Ϟn qWf {Fni4ؑ~pP#|Gg*oba7 j[9Eg3.4î6)KRBT{(=؆S鋴IM8-[I9*fvqW~!O--+i6@ gg$2 or](}EeP},ݑjfs8XkNKpgq8FRG  \ -1R0>ǠC)cӄϮp %ᵁ~;,ǧJd%K@]<+zٷJ -=/4dވeb²cU-gqh$ |*C`$Q$)y<)EӏჲSGWRgۗn_$}FdڬN Vy} 1wAsw, yVJ-[%zmN gݿm-@yZUWe ,Yo`QEҢGp+/ 8;.I/BĵdǎTvY 65>UV`t7mb,g֒U.{3^YljkCe7eX )c`%]op J+)P@: 4 ?i0fђ%k.ݺ's~`x bñ&b!U[Ԭfg9wf ͸\9[VXD)@ uӂU C0; -?=8, cp&n`qGzgA44H}ݳb3:㟕9+0e&HM[| @/4m]-Zdo_rZss;*A|lk uL;AZie^T'qc97;-4'lP7{K4s0H*bs†Lq TeRg'C;hz>aWsu`. -PWpst8xXVJwK㗸Rep|Ifm0TEMݹFఱh^ ͔{?ds}yBE8+nce h/8cV7V tf֯M:qrSLQh7gM3إLz?@ xiܟRԟ~w 2C͛Aூ[]G8ߜq(r*r$vr -=R Nv֗"k2D#ce -BT4jdu@9H tTWnyA:8WH)47 7y J62:v9c&J(>M 6Wr1IXPe.d&G[p¼Qwľjr. v(_}NyB+cvCqnt#uQ*d -k~yHyّVBeu-X]?BWIcii sj]z̬WJ]JUNB֯2`k)'݃vAɧ,vju^[3g5הQ륮ʜ/H&Z)Mjk之|64e~_{O&*C/ܙhg(ube -؜QY3[:޹}(pC pҋ_Ŵ=!`(UtԻv-򁗜F:9:HűǪH@eۥ~z\d#Ə&bӇQ;+ępfEiMuD aSR^{#".|G<&6 _a" -endstream -endobj -379 0 obj -<< /Filter /FlateDecode /Length 24 >> -stream -xc```04-]IQ= -endstream -endobj -380 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 3685 >> -stream -xX XWڞDEP3UKuVQ *ZĪh.@L%"$9\rxA+ZVkյVUkgu?3L2s{o9:b<olڠeXzKe r~/y3c0#;᠓jq1Wb?&pFJ&/\urDŽC06=ya<ޘ?u_(xx8P#ZQEG%;Ł^ /*)oFHbE8DA*UbR%T5 -e;+rD%)N)URukCXxeiJ*UR8BNy)2pF-m X*s%{jqB))UK"*?_PHv*Kƪ#Չ<Llb2l>Ăl&c;1)EbQX4a,сc|;bS:!C89r?H‡xp~tبao hx#Fqy):-6$ h^5+NtVF vaGMe U G ]DΤuFe% wq;XKX$;JY.ݢŧDe_[[O\ygfފ4Yywf!.*Cws\iޕKWkj*ld<(V|*4MhtۜbH4=Ԧ퍭j:tDy?nDv$;w3ryQG/E V9 Es&X_XxWہBEu+ˁ Rg~6w'yKKeBIpd*__! a`!z&_eT;Ͽ8tuvM4ަY|εh}~ݞѫW0ނiѸ>ݳrzf;,B#f6&"ڈ62lr]I f ݼ%MBm +B $u0e7vKznMӝa"I;5:U4qfݖPK7o4!$hx~F|E6w&fdڛ -r0 7@\s hAږ:"ވV^Ո]Ϊn$En%0&yGT׶#6LPTBM_tfYhTDl!#exߐ#|3 {Xx=h[!Niavml! -K@Ŷ8õ+7{ɥt.XLe2IY[WZ,&Rib?6>mnˬ}8MM#A(xA' Su).PЂ\Ls9Ү@Gp9~BmÉ Jh3(mlF&H@erJaz(=Xo@gwUeuS%&c/m×q~y§%G!hc6o*r -L $J-7]yˆ"0bpLI6)95 oL~EҲ]/75.voJ>RПvϦ慮߲6=V#o"a_8wrP<>>-@6=M $,ug]XbQϧ Dr -ECVEE#6J,t|8,GOS}G#:I J٘EN47Fۢq/Cq͜-l%X  6K9yyhNڿG#ݾG64݂[kl/Q]b -sEuSvغ ۥNxWm#Ӫ Q(4 yгF3IT fW('}zܻ,!9ӹס[b 3)ji[-鹀xN#-:I! a .h~MI:WW - -D+"_k_/1vS5mgŠf֌WyůR(JFLRK7t 9qIza'<)"Z~צ 㭕hⶶx Rۤkȥ~> XMe&LiHճp L+6geAIeJSoPUS$Z^I|ҁ 7ǚƄ:y@f^T*[\Gu>@y2;*^ uFKFcj a\Ico.K[OL0Ohp{7u`MY7|7L-ʪE%yy .v]̝[-rW˱"6[J BJVAn]ْba&,P_v4T&0xG_$' S@ ~ >#>'>>f67歹g)\rz6=}MivsſdN{^!]nW,q4@_sf4<JGMӑԩsMtCw16SLfUȳo2V'SLL=7dC;6ܸMmJEgUh4EC!UX]a8td[q[[/'7uTł4tv .0_P Ɋ4Mc 1L4j(vGtE\AE w#o]X!zc+1w!=|^WIǩ;_"g5Zb"N#gw+[4^UtQ|%l0&Jg_ $&2K*PlQ~ȽBages{.AO9sNqnNn^ӈbV -endstream -endobj -381 0 obj -<< /Filter /FlateDecode /Length 37 >> -stream -xc``> !z - -endstream -endobj -382 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 7146 >> -stream -xzy\WQ;Vm]к=j* -UW} @ [XebݪҪ%ѪVݴ}ھg~~O03w=,9gVVdzi4RE[bdkY bgs<Y%++6AlMA*'qSmfq͙n*9#AoAU0!H`ga<-Y_x`DS=ǹ ӏF%uK헽PbB<=۝4xrpqT>;nуlki4n:ƽhe0?-{nپ3޻ˇ0u*DmYg_ -xp&v@z) -dr~'˻n/eRL Q)Y]3Z%39Lc fkP:FCBa&F]c1zz,YW+L+Y L 4s 玚*;$z.=MiGY%uխE=,teu ٥9dLf"J;_(D% cͣxq eعCe$'pR;b.R51RF8RvỸE^9&j脼?@U\fjHj_'6/`1v?0F(̊F.lqepeX9]Ea6/f޺HM&"^بؖ37deu{ċ6:WZ)WJR˼*Z'L('IO{dśd&/N`*ShjVjjen#*ȫ,(E9GǷ>궄VT_TP*jԔkh[ -9D]+pw{# 0u7o㉓%:T\YA۲pIX^V|V-NTȕYr:TMrR$K.זT"x%ED#drN"cUck/?^qAlL%<Pۄ!Vd^%2ND;!J%Ͽ w1Y2ܭ^D>}s7V0!EQl4qaawn)wA&Ym#i 'ɣ Vh #cTab8A3ggw M6 yscPyj 6[cX!t.3n '7zS>t WTbZ"QAaAaIcܯ~6p׈].0-V깝G%>36PjuW# L@t0 - -gȔ$ZZ5q؄HD9oUDMղ>m2Wdpz=Qˌ3:>5?ϼyciJF#cbaƁG;cM8믁][®3!%I wqQ!J56cb` O~v&ˤ#ʁQp/+6BJqz:(E;WGO{ -<*:mqeLao65'kkK[g><%r -qBv}ůRjTR(30eE4Z>yQs AX<КVFlg^&vۦND#'ae۝y\$(-bl5+oGziS0} Ki-;Wvr gw}ՕS}8̓KlxB!؋Ƶ۴͎Ka] ~WQ߲uO1LjE9 RԹ+Au#Ji׫ʬ_鏉\Gx. Gֵ3N!1ua(5J#~_o-A cx|] `i`.ǻ{ꮙ-F>_3&]nXe/|s;b5fqАٝf8mp -gaj -4x]Z{Ӣ{܄U‹Pl~Yn -7Ua1 [[:]14TUk"}o,8:[k][&62hl/Hdd E%(>?~80_XzKv/Lar~dkZ:;2":%h:RBe49~^F)ƯW-%᱊M,[dֲ{2TUmcIjmO9 -=*1ue$Y?Gu!Fx=3 (Z" EI*MUyBqE= xNVg3&VI =V5$v!8 -[TLhwMMY*XKֺڼJ,K)d}cNsMlo<N,3333E1f]M{oXL -4r~G` --()ROl kj n'vkstQ|U翹AP13u9"&CCigH T1.06K9n;a-S -udY]zo T x~iZ}ɵzXm6r mVkZ+3JQGMD{AIQtX,'(zKV)2n "ҧo~s t#R_<~b!@eDŽ-Cm$a5IMwwN\;u3̽mW+ϬPSU;>?g٦oz8{*AT!<&)231@*ޚQ8&eߐWovcn?zJI_-~0 zolI%6[?!$򚔰LW'?\`uXikviZP63Vw<?w.?9w7*\UY5 {j_w7ԓlkLPS`kM)m[ǎ`af?yFѻ<|uLd(մ O!\q'kd8oC^?H],WXN=aKPc1E_{j|r2E֍j9)4:[% s4+5֭L %?MLDJ\pZKkYq S,.ob YQڬO}=v},Bv=GX@p*id^r~Kf$J9f}%>,X~*'~>>lR(5. ?h~n~o$+ -ҭk9{ -0o7Vv;x8q-*$~jr~(6i7⹯\sp 4`c \Ï%P?sb9TS}Cc~$܉`9vr^<,~O@‹h?l !i- Cqݒ$/x?I5qf0_¤{ -hX 3]6S~6Õ Ux~iST*:(/L Ӓ4QHS] g^qK /Np z:m~O)rӳȆ"FW%3;sLjIOx:WXZ=!2!~ _ Ë0/yhGvyQ[#?=)HآhNܬ5#X=O熩plaihlH#''l:l&kGSy]tmcR6m-mf8\J Ze1d)H֔p -6l%zsF@iJQ&8Y̍S$E7b>}dWnG:?8`Q(?_%I1Eb$:EbtT?qsG4} 5cZ`Zn(uee$r -_l3opHk| -ll -u]6ن%@ -endstream -endobj -383 0 obj -<< /Filter /FlateDecode /Length 23 >> -stream -xc``PT^<%B.Q -endstream -endobj -384 0 obj -<< /Filter /FlateDecode /Subtype /CIDFontType0C /Length 3351 >> -stream -xW Xg2ft&XO[-zzޭԪ D@`r$%\DȀxvmϱVm^iӪ{o؟qg$y7~FFP2lrҍq׆\N0)\uԜ$}@`4EByi%MI|$K<=4;4dȌ{&ɿMdXo=cBOQ JFMRwdML iFͬgٚ#4˓w 5IY)Ux]M<Ц%evj6h7kr ZAdlHK7htrk3Im&'+EӴo,e5+ӓYfLƠjҌ9Ɯ>5r'1Df"\:~̕._8˜o5)ZcRz!g x>3)#6EC,EeL7P3-fQ/QS ej VPzjJTNeRF*7|&SJ2d}Ab i L+yϔ+(tptјc~:-nlϡC) <ΓuB` "~D1yZa3en[ig\vaLYBizyU^]EKE-) oa9:V.\W<9VCʌ˔* 0v|ސ!=Ko_<<$V|CzgobB$7NIt{]u終z%MW+w"a=}J_hMR+qc [FUWkyq[t\i^,fÇߡٓ(ZӰF|'Z{i=VLJh -5 'ɛm ߩ\ a\ cЛ̽\]6e)7#X!}7_EX y1zo`Jd컒{Եȝ&蛙OMB&Þ1"C/I7gqxZCQegzz&?'x&~JyP\},FU3+╃ (\CQ? f @n1o`kNR sUsoYabc#1-p%$(&h֔1k$Ƕٺ* ~ f#<@W(V‡$]"Lg8-H4sSqL0Hqd2@ςPW DjId#GAE?<x,c2/if X=בaѦ n99xaR G)q:aP|gzX':N&:awtd갉\+BTL?Wғ@)}hQo2|pEfa xKPTF\=l_0#>R[@K_B -!??Mb4OpGt !Qn".$_ x59p7Nw~]uAۄ=E)F\ [mO&f~O )h> ֎eЂd7|9>i"07 -|a_B53)mc?G'?˻'U -~AC+˛ ^K%[Esd]Jb߇5t:>O]iȁ*=$Kwy|MMm}9jc'=#t5U-19ͩ3"5X\,Ӯx̿1׌ saz=*84v.,pQb]'Zty]نk7mrn?9*,u*[Am@# czuslGvJsjHw7PBVmɬ5YlkorX8]ӥ#t;B VDo^T-<˃q%Qts?CЁ❫Nng !vbdQCP\gALeq*`2H hחՅe2~2"OPIhl+~ʒrT җF{e^ui8]n4{vT;5yvҷj-{XX,=Px -vmG)De~ąN'oTt}bɗzk*|4|CFd(:F=0v:.g +׸r;t(a -endstream -endobj -xref -0 385 -0000000000 65535 f -0000000015 00000 n -0000000080 00000 n -0000000244 00000 n -0000001133 00000 n -0000001511 00000 n -0000001835 00000 n -0000002206 00000 n -0000002589 00000 n -0000002936 00000 n -0000003310 00000 n -0000003673 00000 n -0000004021 00000 n -0000004408 00000 n -0000004832 00000 n -0000005265 00000 n -0000005650 00000 n -0000006059 00000 n -0000006471 00000 n -0000006882 00000 n -0000007219 00000 n -0000007593 00000 n -0000007956 00000 n -0000008353 00000 n -0000008738 00000 n -0000009139 00000 n -0000009512 00000 n -0000009928 00000 n -0000010259 00000 n -0000010625 00000 n -0000011050 00000 n -0000011436 00000 n -0000011835 00000 n -0000012200 00000 n -0000012589 00000 n -0000012939 00000 n -0000013380 00000 n -0000013756 00000 n -0000014190 00000 n -0000014604 00000 n -0000014977 00000 n -0000015314 00000 n -0000015715 00000 n -0000016076 00000 n -0000016485 00000 n -0000016899 00000 n -0000017314 00000 n -0000017702 00000 n -0000018063 00000 n -0000018412 00000 n -0000018773 00000 n -0000019172 00000 n -0000019509 00000 n -0000022858 00000 n -0000022913 00000 n -0000022985 00000 n -0000023139 00000 n -0000023295 00000 n -0000023448 00000 n -0000023604 00000 n -0000023760 00000 n -0000023901 00000 n -0000024044 00000 n -0000024186 00000 n -0000024358 00000 n -0000024513 00000 n -0000024535 00000 n -0000029475 00000 n -0000029615 00000 n -0000029757 00000 n -0000029898 00000 n -0000030040 00000 n -0000030201 00000 n -0000030372 00000 n -0000030542 00000 n -0000034710 00000 n -0000034853 00000 n -0000035026 00000 n -0000040017 00000 n -0000040053 00000 n -0000045354 00000 n -0000045494 00000 n -0000045637 00000 n -0000045665 00000 n -0000049959 00000 n -0000054814 00000 n -0000054956 00000 n -0000054984 00000 n -0000060317 00000 n -0000060353 00000 n -0000064759 00000 n -0000064901 00000 n -0000065042 00000 n -0000065184 00000 n -0000065325 00000 n -0000065480 00000 n -0000070171 00000 n -0000070343 00000 n -0000076103 00000 n -0000082009 00000 n -0000082037 00000 n -0000088220 00000 n -0000093137 00000 n -0000093309 00000 n -0000093488 00000 n -0000099963 00000 n -0000106505 00000 n -0000106647 00000 n -0000110405 00000 n -0000114933 00000 n -0000120246 00000 n -0000120275 00000 n -0000124406 00000 n -0000129889 00000 n -0000131593 00000 n -0000132857 00000 n -0000134374 00000 n -0000135892 00000 n -0000137428 00000 n -0000138702 00000 n -0000141471 00000 n -0000144225 00000 n -0000145256 00000 n -0000148004 00000 n -0000150369 00000 n -0000154202 00000 n -0000158809 00000 n -0000158969 00000 n -0000159124 00000 n -0000159285 00000 n -0000162427 00000 n -0000166062 00000 n -0000166204 00000 n -0000170457 00000 n -0000170613 00000 n -0000173973 00000 n -0000174128 00000 n -0000174284 00000 n -0000174440 00000 n -0000202464 00000 n -0000202493 00000 n -0000206726 00000 n -0000211152 00000 n -0000218197 00000 n -0000223451 00000 n -0000223623 00000 n -0000230606 00000 n -0000234856 00000 n -0000234885 00000 n -0000240059 00000 n -0000243903 00000 n -0000247935 00000 n -0000252409 00000 n -0000252570 00000 n -0000252599 00000 n -0000256952 00000 n -0000261946 00000 n -0000266204 00000 n -0000269239 00000 n -0000272954 00000 n -0000277930 00000 n -0000278849 00000 n -0000279050 00000 n -0000279494 00000 n -0000279697 00000 n -0000280537 00000 n -0000280737 00000 n -0000281494 00000 n -0000281697 00000 n -0000282317 00000 n -0000282520 00000 n -0000283255 00000 n -0000283791 00000 n -0000284233 00000 n -0000284740 00000 n -0000285251 00000 n -0000285972 00000 n -0000286364 00000 n -0000286505 00000 n -0000286799 00000 n -0000287040 00000 n -0000287242 00000 n -0000288079 00000 n -0000288484 00000 n -0000288879 00000 n -0000289350 00000 n -0000289839 00000 n -0000290293 00000 n -0000290626 00000 n -0000291631 00000 n -0000292095 00000 n -0000292303 00000 n -0000293017 00000 n -0000293302 00000 n -0000293545 00000 n -0000293794 00000 n -0000293829 00000 n -0000294103 00000 n -0000294302 00000 n -0000294370 00000 n -0000294397 00000 n -0000294561 00000 n -0000294753 00000 n -0000295018 00000 n -0000295087 00000 n -0000295313 00000 n -0000295354 00000 n -0000295518 00000 n -0000295744 00000 n -0000295803 00000 n -0000295966 00000 n -0000296136 00000 n -0000296307 00000 n -0000296530 00000 n -0000296558 00000 n -0000296869 00000 n -0000297094 00000 n -0000297387 00000 n -0000297714 00000 n -0000298001 00000 n -0000298270 00000 n -0000298472 00000 n -0000299010 00000 n -0000299252 00000 n -0000299279 00000 n -0000299443 00000 n -0000299529 00000 n -0000299782 00000 n -0000299919 00000 n -0000300168 00000 n -0000300193 00000 n -0000300488 00000 n -0000300597 00000 n -0000300771 00000 n -0000300806 00000 n -0000300841 00000 n -0000301044 00000 n -0000301079 00000 n -0000301266 00000 n -0000301301 00000 n -0000301488 00000 n -0000301523 00000 n -0000301710 00000 n -0000301745 00000 n -0000301932 00000 n -0000301967 00000 n -0000302158 00000 n -0000302349 00000 n -0000302384 00000 n -0000302595 00000 n -0000302801 00000 n -0000303428 00000 n -0000303629 00000 n -0000304303 00000 n -0000304510 00000 n -0000305108 00000 n -0000305464 00000 n -0000305721 00000 n -0000305923 00000 n -0000306527 00000 n -0000306728 00000 n -0000307345 00000 n -0000307547 00000 n -0000308116 00000 n -0000308318 00000 n -0000309084 00000 n -0000309246 00000 n -0000309331 00000 n -0000309584 00000 n -0000309815 00000 n -0000309979 00000 n -0000310186 00000 n -0000310757 00000 n -0000310929 00000 n -0000311162 00000 n -0000311203 00000 n -0000311442 00000 n -0000311975 00000 n -0000312212 00000 n -0000312684 00000 n -0000312923 00000 n -0000313270 00000 n -0000313509 00000 n -0000313973 00000 n -0000332142 00000 n -0000354445 00000 n -0000367869 00000 n -0000389695 00000 n -0000389936 00000 n -0000390453 00000 n -0000402396 00000 n -0000422042 00000 n -0000432135 00000 n -0000445693 00000 n -0000445939 00000 n -0000446379 00000 n -0000456063 00000 n -0000471639 00000 n -0000483136 00000 n -0000491358 00000 n -0000498732 00000 n -0000501827 00000 n -0000504256 00000 n -0000513533 00000 n -0000525287 00000 n -0000532981 00000 n -0000533219 00000 n -0000533454 00000 n -0000549654 00000 n -0000555033 00000 n -0000573511 00000 n -0000582329 00000 n -0000582376 00000 n -0000582423 00000 n -0000582693 00000 n -0000582740 00000 n -0000582989 00000 n -0000583036 00000 n -0000583285 00000 n -0000583332 00000 n -0000583581 00000 n -0000583628 00000 n -0000583877 00000 n -0000583924 00000 n -0000584178 00000 n -0000584432 00000 n -0000584479 00000 n -0000584759 00000 n -0000585004 00000 n -0000585372 00000 n -0000585611 00000 n -0000586003 00000 n -0000586249 00000 n -0000586559 00000 n -0000597619 00000 n -0000597860 00000 n -0000598193 00000 n -0000598430 00000 n -0000598767 00000 n -0000599005 00000 n -0000599281 00000 n -0000599519 00000 n -0000599995 00000 n -0000614928 00000 n -0000615172 00000 n -0000615449 00000 n -0000615535 00000 n -0000616314 00000 n -0000616433 00000 n -0000625719 00000 n -0000625827 00000 n -0000633275 00000 n -0000633379 00000 n -0000638183 00000 n -0000638288 00000 n -0000645836 00000 n -0000645953 00000 n -0000656495 00000 n -0000656600 00000 n -0000664321 00000 n -0000664416 00000 n -0000667419 00000 n -0000668494 00000 n -0000669147 00000 n -0000669800 00000 n -0000670453 00000 n -0000671106 00000 n -0000671890 00000 n -0000672674 00000 n -0000673942 00000 n -0000674043 00000 n -0000679333 00000 n -0000679431 00000 n -0000685710 00000 n -0000685806 00000 n -0000690594 00000 n -0000690691 00000 n -0000695866 00000 n -0000695963 00000 n -0000699918 00000 n -0000700015 00000 n -0000703799 00000 n -0000703909 00000 n -0000711154 00000 n -0000711250 00000 n -trailer << /Info 2 0 R /Root 1 0 R /Size 385 /ID [<8b41d259c856cf2ef2f3fd39b8622ab8><8b41d259c856cf2ef2f3fd39b8622ab8>] >> -startxref -714700 -%%EOF diff --git a/projects/priceservice/.env b/projects/priceservice/.env deleted file mode 100644 index d2b4107..0000000 --- a/projects/priceservice/.env +++ /dev/null @@ -1,46 +0,0 @@ -###> symfony/framework-bundle ### -APP_ENV=dev -APP_SECRET=39394fa79aef46ea9947b4f7198d689b -###< symfony/framework-bundle ### - -###> doctrine/doctrine-bundle ### -DATABASE_URL="mysql://root:password@db:3306/priceservice" -###< doctrine/doctrine-bundle ### - -###> symfony/messenger ### -# Choose one of the transports below -# MESSENGER_TRANSPORT_DSN=doctrine://default -# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages -# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages -###< symfony/messenger ### - -###> symfony/mailer ### -MAILER_DSN=null://null -###< symfony/mailer ### - -###> symfony/lock ### -# Choose one of the stores below -# postgresql+advisory://db_user:db_password@localhost/db_name -LOCK_DSN=flock -###< symfony/lock ### - -###> mitho vars ### -#IP list that are allowed to access the priceservice -MTO_ALLOWED_API_IPS="172.18.0.11,172.18.0.10,172.18.0.3,172.18.0.7,172.18.0.5,172.18.0.6,172.18.0.4,172.18.0.8,172.18.0.9" -MTO_ALLOWED_IMPORT_TRIGGER_IPS="172.18.0.13" -#Endpoint of the orm system for querying the current prices -MTO_ORM_IMPORT_ENDPOINT_URL="https://orm3stage.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1="https://orm3fallback.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2="https://orm3fallback.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_USER="mitho" -MTO_ORM_IMPORT_PWD="+sw2014" -#Endpoint of the article management system -MTO_SWAG_API_ENDPOINT_URL="https://gss6.dev.mitho-media.de/api/" -MTO_SWAG_API_USER="admin" -MTO_SWAG_API_PWD="31OCqgsarLMXRGTRGGAcuFTqbPRVrIaDyO7T2skI" -### REDIS vars ### -REDIS_HOST="redis" -REDIS_PORT=6379 -REDIS_PASS="" -MESSENGER_TRANSPORT_DSN=redis://redis:6379/messages -REDIS_CACHE_URL=redis://redis:6379 \ No newline at end of file diff --git a/projects/priceservice/.env.local b/projects/priceservice/.env.local deleted file mode 100644 index 84d0a37..0000000 --- a/projects/priceservice/.env.local +++ /dev/null @@ -1,40 +0,0 @@ -###> symfony/framework-bundle ### -APP_ENV=dev -APP_SECRET=39394fa79aef46ea9947b4f7198d689b -###< symfony/framework-bundle ### - -###> doctrine/doctrine-bundle ### -DATABASE_URL=mysql://db:db@db:3306/db -###< doctrine/doctrine-bundle ### - -###> symfony/mailer ### -MAILER_DSN=null://null -###< symfony/mailer ### - -###> symfony/lock ### -# Choose one of the stores below -# postgresql+advisory://db_user:db_password@localhost/db_name -LOCK_DSN=flock -###< symfony/lock ### - -###> mitho vars ### -#IP list that are allowed to access the priceservice -# DEV: ddev_default-Subnetz erlauben (Container-IPs wechseln bei restart) -MTO_ALLOWED_API_IPS="172.18.0.0/16" -MTO_ALLOWED_IMPORT_TRIGGER_IPS="172.18.0.0/16" -#Endpoint of the orm system for querying the current prices -MTO_ORM_IMPORT_ENDPOINT_URL="https://orm3stage.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1="https://orm3fallback.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2="https://orm3fallback2.goldsilbershop.de/api/sw-prices.php" -MTO_ORM_IMPORT_USER="mitho" -MTO_ORM_IMPORT_PWD="+sw2014" -#Endpoint of the article management system -MTO_SWAG_API_ENDPOINT_URL="https://gss6.ddev.site/api/" -MTO_SWAG_API_USER="admin" -MTO_SWAG_API_PWD="31OCqgsarLMXRGTRGGAcuFTqbPRVrIaDyO7T2skI" -### REDIS vars ### -REDIS_HOST="redis" -REDIS_PORT=6379 -REDIS_PASS="" -MESSENGER_TRANSPORT_DSN=redis://redis:6379/messages -REDIS_CACHE_URL=redis://redis:6379 \ No newline at end of file diff --git a/projects/priceservice/.gitignore b/projects/priceservice/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/bin/console b/projects/priceservice/bin/console deleted file mode 100755 index c933dc5..0000000 --- a/projects/priceservice/bin/console +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env php -=8.1", - "ext-ctype": "*", - "ext-iconv": "*", - "doctrine/doctrine-bundle": "^2.11", - "doctrine/doctrine-migrations-bundle": "^3.3", - "doctrine/orm": "^3.0", - "symfony/console": "6.4.*", - "symfony/dotenv": "6.4.*", - "symfony/flex": "^2", - "symfony/framework-bundle": "6.4.*", - "symfony/http-client": "6.4.*", - "symfony/lock": "6.4.*", - "symfony/messenger": "6.4.*", - "symfony/monolog-bundle": "^3.10", - "symfony/rate-limiter": "6.4.*", - "symfony/redis-messenger": "6.4.*", - "symfony/runtime": "6.4.*", - "symfony/security-bundle": "6.4.*", - "symfony/uid": "6.4.*", - "symfony/yaml": "6.4.*" - }, - "config": { - "allow-plugins": { - "php-http/discovery": true, - "symfony/flex": true, - "symfony/runtime": true - }, - "sort-packages": true - }, - "autoload": { - "psr-4": { - "App\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "App\\Tests\\": "tests/" - } - }, - "replace": { - "symfony/polyfill-ctype": "*", - "symfony/polyfill-iconv": "*", - "symfony/polyfill-php72": "*", - "symfony/polyfill-php73": "*", - "symfony/polyfill-php74": "*", - "symfony/polyfill-php80": "*", - "symfony/polyfill-php81": "*" - }, - "scripts": { - "auto-scripts": { - "cache:clear": "symfony-cmd", - "assets:install %PUBLIC_DIR%": "symfony-cmd" - }, - "post-install-cmd": [ - "@auto-scripts" - ], - "post-update-cmd": [ - "@auto-scripts" - ] - }, - "conflict": { - "symfony/symfony": "*" - }, - "extra": { - "symfony": { - "allow-contrib": false, - "require": "6.4.*", - "docker": false - } - }, - "require-dev": { - "symfony/maker-bundle": "^1.54" - } -} diff --git a/projects/priceservice/composer.lock b/projects/priceservice/composer.lock deleted file mode 100644 index abf7304..0000000 --- a/projects/priceservice/composer.lock +++ /dev/null @@ -1,5697 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "4227d96a027f137e5e4f0c8b38f681f0", - "packages": [ - { - "name": "doctrine/collections", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2eb07e5953eed811ce1b309a7478a3b236f2273d", - "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1", - "php": "^8.1", - "symfony/polyfill-php84": "^1.30" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ext-json": "*", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "keywords": [ - "array", - "collections", - "iterators", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.3.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", - "type": "tidelift" - } - ], - "time": "2025-03-22T10:17:19+00:00" - }, - { - "name": "doctrine/dbal", - "version": "4.3.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "ac336c95ea9e13433d56ca81c308b39db0e1a2a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/ac336c95ea9e13433d56ca81c308b39db0e1a2a7", - "reference": "ac336c95ea9e13433d56ca81c308b39db0e1a2a7", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1.5", - "php": "^8.2", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "doctrine/coding-standard": "13.0.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "2.1.17", - "phpstan/phpstan-phpunit": "2.0.6", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "11.5.23", - "slevomat/coding-standard": "8.16.2", - "squizlabs/php_codesniffer": "3.13.1", - "symfony/cache": "^6.3.8|^7.0", - "symfony/console": "^5.4|^6.3|^7.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.3.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2025-07-22T10:09:51+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" - }, - "time": "2025-04-07T20:06:18+00:00" - }, - { - "name": "doctrine/doctrine-bundle", - "version": "2.15.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d88294521a1bca943240adca65fa19ca8a7288c6", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6", - "shasum": "" - }, - "require": { - "doctrine/dbal": "^3.7.0 || ^4.0", - "doctrine/persistence": "^3.1 || ^4", - "doctrine/sql-formatter": "^1.0.1", - "php": "^8.1", - "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/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3", - "symfony/framework-bundle": "^6.4 || ^7.0", - "symfony/service-contracts": "^2.5 || ^3" - }, - "conflict": { - "doctrine/annotations": ">=3.0", - "doctrine/cache": "< 1.11", - "doctrine/orm": "<2.17 || >=4.0", - "symfony/var-exporter": "< 6.4.1 || 7.0.0", - "twig/twig": "<2.13 || >=3.0 <3.0.4" - }, - "require-dev": { - "doctrine/annotations": "^1 || ^2", - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^13", - "doctrine/deprecations": "^1.0", - "doctrine/orm": "^2.17 || ^3.1", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpstan/phpstan": "2.1.1", - "phpstan/phpstan-phpunit": "2.0.3", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9.6.22", - "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/doctrine-messenger": "^6.4 || ^7.0", - "symfony/messenger": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^7.2", - "symfony/property-info": "^6.4 || ^7.0", - "symfony/security-bundle": "^6.4 || ^7.0", - "symfony/stopwatch": "^6.4 || ^7.0", - "symfony/string": "^6.4 || ^7.0", - "symfony/twig-bridge": "^6.4 || ^7.0", - "symfony/validator": "^6.4 || ^7.0", - "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.13 || ^3.0.4" - }, - "suggest": { - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "ext-pdo": "*", - "symfony/web-profiler-bundle": "To use the data collector." - }, - "type": "symfony-bundle", - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org/" - } - ], - "description": "Symfony DoctrineBundle", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "database", - "dbal", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.15.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", - "type": "tidelift" - } - ], - "time": "2025-06-16T19:53:58+00:00" - }, - { - "name": "doctrine/doctrine-migrations-bundle", - "version": "3.4.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "5a6ac7120c2924c4c070a869d08b11ccf9e277b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/5a6ac7120c2924c4c070a869d08b11ccf9e277b9", - "reference": "5a6ac7120c2924c4c070a869d08b11ccf9e277b9", - "shasum": "" - }, - "require": { - "doctrine/doctrine-bundle": "^2.4", - "doctrine/migrations": "^3.2", - "php": "^7.2 || ^8.0", - "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "composer/semver": "^3.0", - "doctrine/coding-standard": "^12", - "doctrine/orm": "^2.6 || ^3", - "phpstan/phpstan": "^1.4 || ^2", - "phpstan/phpstan-deprecation-rules": "^1 || ^2", - "phpstan/phpstan-phpunit": "^1 || ^2", - "phpstan/phpstan-strict-rules": "^1.1 || ^2", - "phpstan/phpstan-symfony": "^1.3 || ^2", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/phpunit-bridge": "^6.3 || ^7", - "symfony/var-exporter": "^5.4 || ^6 || ^7" - }, - "type": "symfony-bundle", - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\MigrationsBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DoctrineMigrationsBundle", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "dbal", - "migrations", - "schema" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.4.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", - "type": "tidelift" - } - ], - "time": "2025-03-11T17:36:26+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2024-05-22T20:47:39+00:00" - }, - { - "name": "doctrine/inflector", - "version": "2.0.10", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^11.0", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25 || ^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.10" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2024-02-18T20:23:39+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, - { - "name": "doctrine/lexer", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", - "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.21" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2024-02-05T11:56:58+00:00" - }, - { - "name": "doctrine/migrations", - "version": "3.9.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/migrations.git", - "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/fa94c6f06b1bc6d4759481ec20b8b81d13e861be", - "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/dbal": "^3.6 || ^4", - "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2.0", - "php": "^8.1", - "psr/log": "^1.1.3 || ^2 || ^3", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0", - "symfony/var-exporter": "^6.2 || ^7.0" - }, - "conflict": { - "doctrine/orm": "<2.12 || >=4" - }, - "require-dev": { - "doctrine/coding-standard": "^13", - "doctrine/orm": "^2.13 || ^3", - "doctrine/persistence": "^2 || ^3 || ^4", - "doctrine/sql-formatter": "^1.0", - "ext-pdo_sqlite": "*", - "fig/log-test": "^1", - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-phpunit": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpstan/phpstan-symfony": "^2", - "phpunit/phpunit": "^10.3 || ^11.0 || ^12.0", - "symfony/cache": "^5.4 || ^6.0 || ^7.0", - "symfony/process": "^5.4 || ^6.0 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "suggest": { - "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", - "symfony/yaml": "Allows the use of yaml for migration configuration files." - }, - "bin": [ - "bin/doctrine-migrations" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Migrations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Michael Simonson", - "email": "contact@mikesimonson.com" - } - ], - "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", - "homepage": "https://www.doctrine-project.org/projects/migrations.html", - "keywords": [ - "database", - "dbal", - "migrations" - ], - "support": { - "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.9.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", - "type": "tidelift" - } - ], - "time": "2025-07-29T11:36:14+00:00" - }, - { - "name": "doctrine/orm", - "version": "3.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/orm.git", - "reference": "6deec3655ba3e8f15280aac11e264225854d2369" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/6deec3655ba3e8f15280aac11e264225854d2369", - "reference": "6deec3655ba3e8f15280aac11e264225854d2369", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/collections": "^2.2", - "doctrine/dbal": "^3.8.2 || ^4", - "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2", - "doctrine/inflector": "^1.4 || ^2.0", - "doctrine/instantiator": "^1.3 || ^2", - "doctrine/lexer": "^3", - "doctrine/persistence": "^3.3.1 || ^4", - "ext-ctype": "*", - "php": "^8.1", - "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/var-exporter": "^6.3.9 || ^7.0" - }, - "require-dev": { - "doctrine/coding-standard": "^13.0", - "phpbench/phpbench": "^1.0", - "phpdocumentor/guides-cli": "^1.4", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "2.0.3", - "phpstan/phpstan-deprecation-rules": "^2", - "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": { - "ext-dom": "Provides support for XSD validation for XML mapping files", - "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\ORM\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "Object-Relational-Mapper for PHP", - "homepage": "https://www.doctrine-project.org/projects/orm.html", - "keywords": [ - "database", - "orm" - ], - "support": { - "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/3.5.0" - }, - "time": "2025-07-01T17:40:53+00:00" - }, - { - "name": "doctrine/persistence", - "version": "4.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "45004aca79189474f113cbe3a53847c2115a55fa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/45004aca79189474f113cbe3a53847c2115a55fa", - "reference": "45004aca79189474f113cbe3a53847c2115a55fa", - "shasum": "" - }, - "require": { - "doctrine/event-manager": "^1 || ^2", - "php": "^8.1", - "psr/cache": "^1.0 || ^2.0 || ^3.0" - }, - "conflict": { - "doctrine/common": "<2.10" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "1.12.7", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^9.6", - "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Persistence\\": "src/Persistence" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://www.doctrine-project.org/projects/persistence.html", - "keywords": [ - "mapper", - "object", - "odm", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/4.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", - "type": "tidelift" - } - ], - "time": "2024-11-01T21:49:07+00:00" - }, - { - "name": "doctrine/sql-formatter", - "version": "1.5.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/d6d00aba6fd2957fe5216fe2b7673e9985db20c8", - "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ergebnis/phpunit-slow-test-detector": "^2.14", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5" - }, - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "https://jeremydorn.com/" - } - ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ], - "support": { - "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.5.2" - }, - "time": "2025-01-24T11:45:48+00:00" - }, - { - "name": "monolog/monolog", - "version": "3.9.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^2.0 || ^3.0" - }, - "provide": { - "psr/log-implementation": "3.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2.0", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "php-console/php-console": "^3.1.8", - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^10.5.17 || ^11.0.7", - "predis/predis": "^1.1 || ^2", - "rollbar/rollbar": "^4.0", - "ruflin/elastica": "^7 || ^8", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.9.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2025-03-24T10:02:05+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "time": "2022-11-25T14:36:26+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "symfony/cache", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "c88690befb8d4a85dc321fb78d677507f5eb141b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c88690befb8d4a85dc321fb78d677507f5eb141b", - "reference": "c88690befb8d4a85dc321fb78d677507f5eb141b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/cache": "^2.0|^3.0", - "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.3.6|^7.0" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" - }, - "provide": { - "psr/cache-implementation": "2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0", - "symfony/cache-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "classmap": [ - "Traits/ValueWrapper.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ], - "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-27T18:31:36+00:00" - }, - { - "name": "symfony/cache-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache-contracts.git", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/cache": "^3.0" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Cache\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to caching", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-03-13T15:25:07+00:00" - }, - { - "name": "symfony/clock", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/clock.git", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/clock": "^1.0", - "symfony/polyfill-php83": "^1.28" - }, - "provide": { - "psr/clock-implementation": "1.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/now.php" - ], - "psr-4": { - "Symfony\\Component\\Clock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Decouples applications from the system clock", - "homepage": "https://symfony.com", - "keywords": [ - "clock", - "psr20", - "time" - ], - "support": { - "source": "https://github.com/symfony/clock/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:18:03+00:00" - }, - { - "name": "symfony/config", - "version": "v6.4.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/af5917a3b1571f54689e56677a3f06440d2fe4c7", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/finder": "<5.4", - "symfony/service-contracts": "<2.5" - }, - "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/config/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-05-14T06:00:01+00:00" - }, - { - "name": "symfony/console", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9056771b8eca08d026cd3280deeec3cfd99c4d93", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-27T19:37:22+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0d9f24f3de0a83573fce5c9ed025d6306c6e166b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d9f24f3de0a83573fce5c9ed025d6306c6e166b", - "reference": "0d9f24f3de0a83573fce5c9ed025d6306c6e166b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4.20|^7.2.5" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" - }, - "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "symfony/config": "^6.1|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-23T06:49:06+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:21:43+00:00" - }, - { - "name": "symfony/doctrine-bridge", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "ef360932b8b342c0360b768b97776a12d5242db6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/ef360932b8b342c0360b768b97776a12d5242db6", - "reference": "ef360932b8b342c0360b768b97776a12d5242db6", - "shasum": "" - }, - "require": { - "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^2.5|^3.1|^4", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "doctrine/lexer": "<1.1", - "doctrine/orm": "<2.15", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/form": "<5.4.38|>=6,<6.4.6|>=7,<7.0.6", - "symfony/http-foundation": "<6.3", - "symfony/http-kernel": "<6.2", - "symfony/lock": "<6.3", - "symfony/messenger": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-bundle": "<5.4", - "symfony/security-core": "<6.4", - "symfony/validator": "<6.4" - }, - "require-dev": { - "doctrine/collections": "^1.0|^2.0", - "doctrine/data-fixtures": "^1.1|^2", - "doctrine/dbal": "^2.13.1|^3|^4", - "doctrine/orm": "^2.15|^3", - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.2|^7.0", - "symfony/doctrine-messenger": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4.38|^6.4.6|^7.0.6", - "symfony/http-kernel": "^6.3|^7.0", - "symfony/lock": "^6.3|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/proxy-manager-bridge": "^6.4", - "symfony/security-core": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Doctrine\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides integration for Doctrine with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-26T11:46:10+00:00" - }, - { - "name": "symfony/dotenv", - "version": "v6.4.16", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/1ac5e7e7e862d4d574258daf08bd569ba926e4a5", - "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "conflict": { - "symfony/console": "<5.4", - "symfony/process": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Dotenv\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Registers environment variables from a .env file", - "homepage": "https://symfony.com", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.4.16" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-11-27T11:08:19+00:00" - }, - { - "name": "symfony/error-handler", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "b088e0b175c30b4e06d8085200fa465b586f44fa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/b088e0b175c30b4e06d8085200fa465b586f44fa", - "reference": "b088e0b175c30b4e06d8085200fa465b586f44fa", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" - }, - "bin": [ - "Resources/bin/patch-type-declarations" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to manage errors and ease debugging PHP code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-13T07:39:48+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:18:03+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:21:43+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-10-25T15:07:50+00:00" - }, - { - "name": "symfony/finder", - "version": "v6.4.17", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/filesystem": "^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.17" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-12-29T13:51:37+00:00" - }, - { - "name": "symfony/flex", - "version": "v2.8.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/flex.git", - "reference": "423c36e369361003dc31ef11c5f15fb589e52c01" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/423c36e369361003dc31ef11c5f15fb589e52c01", - "reference": "423c36e369361003dc31ef11c5f15fb589e52c01", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.1", - "php": ">=8.0" - }, - "conflict": { - "composer/semver": "<1.7.2" - }, - "require-dev": { - "composer/composer": "^2.1", - "symfony/dotenv": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Symfony\\Flex\\Flex" - }, - "autoload": { - "psr-4": { - "Symfony\\Flex\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien.potencier@gmail.com" - } - ], - "description": "Composer plugin for Symfony", - "support": { - "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.8.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-05T07:45:19+00:00" - }, - { - "name": "symfony/framework-bundle", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/framework-bundle.git", - "reference": "ff892d3ab4b8aa35921bc2120a4b31d57948fe22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ff892d3ab4b8aa35921bc2120a4b31d57948fe22", - "reference": "ff892d3ab4b8aa35921bc2120a4b31d57948fe22", - "shasum": "" - }, - "require": { - "composer-runtime-api": ">=2.1", - "ext-xml": "*", - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.12|^7.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.1|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4", - "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^6.4|^7.0" - }, - "conflict": { - "doctrine/annotations": "<1.13.1", - "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/asset": "<5.4", - "symfony/asset-mapper": "<6.4", - "symfony/clock": "<6.3", - "symfony/console": "<5.4|>=7.0", - "symfony/dom-crawler": "<6.4", - "symfony/dotenv": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<6.3", - "symfony/lock": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<6.3", - "symfony/mime": "<6.4", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6", - "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4", - "symfony/security-core": "<5.4", - "symfony/security-csrf": "<5.4", - "symfony/serializer": "<6.4", - "symfony/stopwatch": "<5.4", - "symfony/translation": "<6.4", - "symfony/twig-bridge": "<5.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.4", - "symfony/web-profiler-bundle": "<6.4", - "symfony/workflow": "<6.4" - }, - "require-dev": { - "doctrine/annotations": "^1.13.1|^2", - "doctrine/persistence": "^1.3|^2|^3", - "dragonmantank/cron-expression": "^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "seld/jsonlint": "^1.10", - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/asset-mapper": "^6.4|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/html-sanitizer": "^6.1|^7.0", - "symfony/http-client": "^6.3|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.3|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/notifier": "^5.4|^6.0|^7.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/scheduler": "^6.4.4|^7.0.4", - "symfony/security-bundle": "^5.4|^6.0|^7.0", - "symfony/semaphore": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^6.4|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/web-link": "^5.4|^6.0|^7.0", - "symfony/workflow": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.10|^3.0.4" - }, - "type": "symfony-bundle", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\FrameworkBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-26T21:24:02+00:00" - }, - { - "name": "symfony/http-client", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client.git", - "reference": "19f11e742b94dcfd968a54f5381bb9082a88cb57" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/19f11e742b94dcfd968a54f5381bb9082a88cb57", - "reference": "19f11e742b94dcfd968a54f5381bb9082a88cb57", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-client-contracts": "~3.4.4|^3.5.2", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "3.0" - }, - "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", - "guzzlehttp/promises": "^1.4|^2.0", - "nyholm/psr7": "^1.0", - "php-http/httplug": "^1.0|^2.0", - "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", - "homepage": "https://symfony.com", - "keywords": [ - "http" - ], - "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-27T20:02:31+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "75d7043853a42837e68111812f4d964b01e5101c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/75d7043853a42837e68111812f4d964b01e5101c", - "reference": "75d7043853a42837e68111812f4d964b01e5101c", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-29T11:18:49+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "452d19f945ee41345fd8a50c18b60783546b7bd3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/452d19f945ee41345fd8a50c18b60783546b7bd3", - "reference": "452d19f945ee41345fd8a50c18b60783546b7bd3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" - }, - "conflict": { - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" - }, - "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-05-26T09:17:58+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "2bb2cba685aabd859f22cf6946554e8e7f3c329a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bb2cba685aabd859f22cf6946554e8e7f3c329a", - "reference": "2bb2cba685aabd859f22cf6946554e8e7f3c329a", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", - "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", - "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.4|^7.0.4", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", - "twig/twig": "^2.13|^3.0.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a structured process for converting a Request into a Response", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-28T08:14:51+00:00" - }, - { - "name": "symfony/lock", - "version": "v6.4.24", - "source": { - "type": "git", - "url": "https://github.com/symfony/lock.git", - "reference": "85ca8b5501a3ccac7d749e632e6fde5bf962bef0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/85ca8b5501a3ccac7d749e632e6fde5bf962bef0", - "reference": "85ca8b5501a3ccac7d749e632e6fde5bf962bef0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13", - "symfony/cache": "<6.2" - }, - "require-dev": { - "doctrine/dbal": "^2.13|^3|^4", - "predis/predis": "^1.1|^2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Lock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", - "homepage": "https://symfony.com", - "keywords": [ - "cas", - "flock", - "locking", - "mutex", - "redlock", - "semaphore" - ], - "support": { - "source": "https://github.com/symfony/lock/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-30T11:02:24+00:00" - }, - { - "name": "symfony/messenger", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/messenger.git", - "reference": "862d99460cd12a1e6cc2ef928b06ec4bae47d39f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/862d99460cd12a1e6cc2ef928b06ec4bae47d39f", - "reference": "862d99460cd12a1e6cc2ef928b06ec4bae47d39f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/clock": "^6.3|^7.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/console": "<6.3", - "symfony/event-dispatcher": "<5.4", - "symfony/event-dispatcher-contracts": "<2.5", - "symfony/framework-bundle": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/serializer": "<5.4" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/console": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/validator": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Samuel Roze", - "email": "samuel.roze@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps applications send and receive messages to/from other applications or via message queues", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/messenger/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-26T21:24:02+00:00" - }, - { - "name": "symfony/monolog-bridge", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9d14621e59f22c2b6d030d92d37ffe5ae1e60452", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452", - "shasum": "" - }, - "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Monolog\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides integration for Monolog with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-10-14T08:49:08+00:00" - }, - { - "name": "symfony/monolog-bundle", - "version": "v3.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", - "shasum": "" - }, - "require": { - "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", - "php": ">=7.2.5", - "symfony/config": "^5.4 || ^6.0 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", - "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", - "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.3 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony MonologBundle", - "homepage": "https://symfony.com", - "keywords": [ - "log", - "logging" - ], - "support": { - "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-06T17:08:13+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "v6.4.24", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "baee5736ddf7a0486dd68ca05aa4fd7e64458d3d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/baee5736ddf7a0486dd68ca05aa4fd7e64458d3d", - "reference": "baee5736ddf7a0486dd68ca05aa4fd7e64458d3d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-14T16:38:25+00:00" - }, - { - "name": "symfony/password-hasher", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/password-hasher.git", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "conflict": { - "symfony/security-core": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\PasswordHasher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Robin Chalas", - "email": "robin.chalas@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides password hashing utilities", - "homepage": "https://symfony.com", - "keywords": [ - "hashing", - "password" - ], - "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:18:03+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-12-23T08:48:59+00:00" - }, - { - "name": "symfony/polyfill-php83", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-php84", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "000df7860439609837bbe28670b0be15783b7fbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/000df7860439609837bbe28670b0be15783b7fbf", - "reference": "000df7860439609837bbe28670b0be15783b7fbf", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-02-20T12:04:08+00:00" - }, - { - "name": "symfony/polyfill-uuid", - "version": "v1.32.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-uuid": "*" - }, - "suggest": { - "ext-uuid": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Uuid\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for uuid functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "uuid" - ], - "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/property-access", - "version": "v6.4.18", - "source": { - "type": "git", - "url": "https://github.com/symfony/property-access.git", - "reference": "80e0378f2f058b60d87dedc3c760caec882e992c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/80e0378f2f058b60d87dedc3c760caec882e992c", - "reference": "80e0378f2f058b60d87dedc3c760caec882e992c", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^5.4|^6.0|^7.0" - }, - "require-dev": { - "symfony/cache": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\PropertyAccess\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides functions to read and write from/to an object or array using a simple string notation", - "homepage": "https://symfony.com", - "keywords": [ - "access", - "array", - "extraction", - "index", - "injection", - "object", - "property", - "property-path", - "reflection" - ], - "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-12-16T14:42:05+00:00" - }, - { - "name": "symfony/property-info", - "version": "v6.4.18", - "source": { - "type": "git", - "url": "https://github.com/symfony/property-info.git", - "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/94d18e5cc11a37fd92856d38b61d9cdf72536a1e", - "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "phpdocumentor/reflection-docblock": "<5.2", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<5.4|>=6.0,<6.4", - "symfony/serializer": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0|^2.0", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\PropertyInfo\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kévin Dunglas", - "email": "dunglas@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Extracts information about PHP class' properties using metadata of popular sources", - "homepage": "https://symfony.com", - "keywords": [ - "doctrine", - "phpdoc", - "property", - "symfony", - "type", - "validator" - ], - "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-01-21T10:52:27+00:00" - }, - { - "name": "symfony/rate-limiter", - "version": "v6.4.24", - "source": { - "type": "git", - "url": "https://github.com/symfony/rate-limiter.git", - "reference": "15a9a10fd0f060243c88ce98d5c29e9cc4b886e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/15a9a10fd0f060243c88ce98d5c29e9cc4b886e7", - "reference": "15a9a10fd0f060243c88ce98d5c29e9cc4b886e7", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/options-resolver": "^5.4|^6.0|^7.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/lock": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\RateLimiter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Wouter de Jong", - "email": "wouter@wouterj.nl" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a Token Bucket implementation to rate limit input and output in your application", - "homepage": "https://symfony.com", - "keywords": [ - "limiter", - "rate-limiter" - ], - "support": { - "source": "https://github.com/symfony/rate-limiter/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-10T08:14:14+00:00" - }, - { - "name": "symfony/redis-messenger", - "version": "v6.4.21", - "source": { - "type": "git", - "url": "https://github.com/symfony/redis-messenger.git", - "reference": "188c3d35cf7034b81efabae847cf682d88e9168e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/188c3d35cf7034b81efabae847cf682d88e9168e", - "reference": "188c3d35cf7034b81efabae847cf682d88e9168e", - "shasum": "" - }, - "require": { - "ext-redis": "*", - "php": ">=8.1", - "symfony/messenger": "^6.1|^7.0" - }, - "require-dev": { - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" - }, - "type": "symfony-messenger-bridge", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\Bridge\\Redis\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Redis extension Messenger Bridge", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/redis-messenger/tree/v6.4.21" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-07T08:43:35+00:00" - }, - { - "name": "symfony/routing", - "version": "v6.4.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/1f5234e8457164a3a0038a4c0a4ba27876a9c670", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-27T16:08:38+00:00" - }, - { - "name": "symfony/runtime", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/runtime.git", - "reference": "ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f", - "reference": "ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=8.1" - }, - "conflict": { - "symfony/dotenv": "<5.4" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin" - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Runtime\\": "", - "Symfony\\Runtime\\Symfony\\Component\\": "Internal/" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Enables decoupling PHP applications from global state", - "homepage": "https://symfony.com", - "keywords": [ - "runtime" - ], - "support": { - "source": "https://github.com/symfony/runtime/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-13T07:44:14+00:00" - }, - { - "name": "symfony/security-bundle", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-bundle.git", - "reference": "3db1460f539b23e74a119981ea6b3002302250bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/3db1460f539b23e74a119981ea6b3002302250bc", - "reference": "3db1460f539b23e74a119981ea6b3002302250bc", - "shasum": "" - }, - "require": { - "composer-runtime-api": ">=2.1", - "ext-xml": "*", - "php": ">=8.1", - "symfony/clock": "^6.3|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.11|^7.1.4", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.2", - "symfony/password-hasher": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.2|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/security-http": "^6.3.6|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/console": "<5.4", - "symfony/framework-bundle": "<6.4", - "symfony/http-client": "<5.4", - "symfony/ldap": "<5.4", - "symfony/serializer": "<6.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.4" - }, - "require-dev": { - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/twig-bridge": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1", - "web-token/jwt-signature-algorithm-eddsa": "^3.1", - "web-token/jwt-signature-algorithm-hmac": "^3.1", - "web-token/jwt-signature-algorithm-none": "^3.1", - "web-token/jwt-signature-algorithm-rsa": "^3.1" - }, - "type": "symfony-bundle", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\SecurityBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-23T20:18:57+00:00" - }, - { - "name": "symfony/security-core", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-core.git", - "reference": "527780a0482e592530174ca90e6189f64cdf6569" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/527780a0482e592530174ca90e6189f64cdf6569", - "reference": "527780a0482e592530174ca90e6189f64cdf6569", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher-contracts": "^2.5|^3", - "symfony/password-hasher": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/event-dispatcher": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/ldap": "<5.4", - "symfony/security-guard": "<5.4", - "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", - "symfony/validator": "<5.4" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "psr/container": "^1.1|^2.0", - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", - "symfony/validator": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Core\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - Core Library", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-05-30T08:33:44+00:00" - }, - { - "name": "symfony/security-csrf", - "version": "v6.4.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-csrf.git", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c34421b7d34efbaef5d611ab2e646a0ec464ffe3", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/security-core": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/http-foundation": "<5.4" - }, - "require-dev": { - "symfony/http-foundation": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Csrf\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - CSRF Library", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:18:03+00:00" - }, - { - "name": "symfony/security-http", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-http.git", - "reference": "815fcda8122a7850bf6d5d842ce03c20445295bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/815fcda8122a7850bf6d5d842ce03c20445295bb", - "reference": "815fcda8122a7850bf6d5d842ce03c20445295bb", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.3|^7.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/clock": "<6.3", - "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", - "symfony/http-client-contracts": "<3.0", - "symfony/security-bundle": "<5.4", - "symfony/security-csrf": "<5.4" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.3|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^3.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Http\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - HTTP Integration", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-23T20:18:57+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-25T09:37:31+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v6.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c", - "reference": "dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/service-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a way to profile code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.4.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-02-21T10:06:30+00:00" - }, - { - "name": "symfony/string", - "version": "v6.4.21", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.4.21" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-18T15:23:29+00:00" - }, - { - "name": "symfony/uid", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/uid.git", - "reference": "9c8592da78d7ee6af52011eef593350d87e814c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/9c8592da78d7ee6af52011eef593350d87e814c0", - "reference": "9c8592da78d7ee6af52011eef593350d87e814c0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-uuid": "^1.15" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Uid\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to generate and represent UIDs", - "homepage": "https://symfony.com", - "keywords": [ - "UID", - "ulid", - "uuid" - ], - "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-26T08:06:12+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-27T15:05:27+00:00" - }, - { - "name": "symfony/var-exporter", - "version": "v6.4.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "require-dev": { - "symfony/property-access": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows exporting any serializable PHP data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "lazy-loading", - "proxy", - "serialize" - ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-05-14T13:00:13+00:00" - }, - { - "name": "symfony/yaml", - "version": "v6.4.23", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/93e29e0deb5f1b2e360adfb389a20d25eb81a27b", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-03T06:46:12+00:00" - } - ], - "packages-dev": [ - { - "name": "nikic/php-parser", - "version": "v5.0.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" - }, - "time": "2024-01-07T17:17:35+00:00" - }, - { - "name": "symfony/maker-bundle", - "version": "v1.64.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/maker-bundle.git", - "reference": "c86da84640b0586e92aee2b276ee3638ef2f425a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c86da84640b0586e92aee2b276ee3638ef2f425a", - "reference": "c86da84640b0586e92aee2b276ee3638ef2f425a", - "shasum": "" - }, - "require": { - "doctrine/inflector": "^2.0", - "nikic/php-parser": "^5.0", - "php": ">=8.1", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/deprecation-contracts": "^2.2|^3", - "symfony/filesystem": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0" - }, - "conflict": { - "doctrine/doctrine-bundle": "<2.10", - "doctrine/orm": "<2.15" - }, - "require-dev": { - "composer/semver": "^3.0", - "doctrine/doctrine-bundle": "^2.5.0", - "doctrine/orm": "^2.15|^3", - "symfony/http-client": "^6.4|^7.0", - "symfony/phpunit-bridge": "^6.4.1|^7.0", - "symfony/security-core": "^6.4|^7.0", - "symfony/security-http": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0", - "twig/twig": "^3.0|^4.x-dev" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\MakerBundle\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", - "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", - "keywords": [ - "code generator", - "dev", - "generator", - "scaffold", - "scaffolding" - ], - "support": { - "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.64.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-23T16:12:08+00:00" - }, - { - "name": "symfony/process", - "version": "v6.4.20", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e2a61c16af36c9a07e5c9906498b73e091949a20", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.4.20" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-03-10T17:11:00+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=8.1", - "ext-ctype": "*", - "ext-iconv": "*" - }, - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/projects/priceservice/config/bundles.php b/projects/priceservice/config/bundles.php deleted file mode 100644 index dd32082..0000000 --- a/projects/priceservice/config/bundles.php +++ /dev/null @@ -1,10 +0,0 @@ - ['all' => true], - Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], - Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], - Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], - Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], - Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], -]; diff --git a/projects/priceservice/config/mitho/settings.yaml b/projects/priceservice/config/mitho/settings.yaml deleted file mode 100644 index ec1eaf6..0000000 --- a/projects/priceservice/config/mitho/settings.yaml +++ /dev/null @@ -1,25 +0,0 @@ -parameters: - mitho: - api: - expiredMaxTime: 3600 - maxPriceAge: 300 - priceListLimit: 2500 - cacheExpTime: 300 - cacheIsActive: true - cacheNamespaces: - rawData: 'price.data.raw' - rawDataDiffSteps: 'price.data.diffSteps' - rawDataWithArticle: 'price.data.withArticle' - - import: - orm: - url: '%env(MTO_ORM_IMPORT_ENDPOINT_URL)%' - urlBckp1: '%env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)%' - urlBckp2: '%env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)%' - user: '%env(MTO_ORM_IMPORT_USER)%' - pwd: '%env(MTO_ORM_IMPORT_PWD)%' - shopIds: [ 1,3,4,8 ] - chunksize: 500 - maxPriceAge: 240 - maxTimeStampAgeSpan: 360 - cashPriceStep: 13 \ No newline at end of file diff --git a/projects/priceservice/config/packages/cache.yaml b/projects/priceservice/config/packages/cache.yaml deleted file mode 100644 index 94e59c6..0000000 --- a/projects/priceservice/config/packages/cache.yaml +++ /dev/null @@ -1,6 +0,0 @@ -framework: - cache: - pools: - cache.rate_limiter: - adapter: cache.adapter.redis - provider: '%env(REDIS_CACHE_URL)%' \ No newline at end of file diff --git a/projects/priceservice/config/packages/doctrine.yaml b/projects/priceservice/config/packages/doctrine.yaml deleted file mode 100644 index aab1ac9..0000000 --- a/projects/priceservice/config/packages/doctrine.yaml +++ /dev/null @@ -1,61 +0,0 @@ -doctrine: - dbal: - url: '%env(resolve:DATABASE_URL)%' - server_version: '8.0' # oder 'mariadb-10.5' – je nach verwendeter DB - charset: utf8mb4 - default_table_options: - charset: utf8mb4 - collate: utf8mb4_unicode_ci - - profiling_collect_backtrace: '%kernel.debug%' - use_savepoints: true - - orm: - auto_generate_proxy_classes: true - enable_lazy_ghost_objects: true - report_fields_where_declared: true - validate_xml_mapping: true - naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware - - controller_resolver: - auto_mapping: false - - mappings: - App: - type: attribute - is_bundle: false - dir: '%kernel.project_dir%/src/Entity' - prefix: 'App\Entity' - alias: App - -when@test: - doctrine: - dbal: - dbname_suffix: '_test%env(default::TEST_TOKEN)%' - -when@prod: - doctrine: - dbal: - server_version: '8.0' # Prod explizit deklarieren - charset: utf8mb4 - default_table_options: - charset: utf8mb4 - collate: utf8mb4_unicode_ci - - orm: - auto_generate_proxy_classes: false - proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies' - query_cache_driver: - type: pool - pool: doctrine.system_cache_pool - result_cache_driver: - type: pool - pool: doctrine.result_cache_pool - - framework: - cache: - pools: - doctrine.result_cache_pool: - adapter: cache.app - doctrine.system_cache_pool: - adapter: cache.system diff --git a/projects/priceservice/config/packages/doctrine_migrations.yaml b/projects/priceservice/config/packages/doctrine_migrations.yaml deleted file mode 100644 index 29231d9..0000000 --- a/projects/priceservice/config/packages/doctrine_migrations.yaml +++ /dev/null @@ -1,6 +0,0 @@ -doctrine_migrations: - migrations_paths: - # namespace is arbitrary but should be different from App\Migrations - # as migrations classes should NOT be autoloaded - 'DoctrineMigrations': '%kernel.project_dir%/migrations' - enable_profiler: false diff --git a/projects/priceservice/config/packages/framework.yaml b/projects/priceservice/config/packages/framework.yaml deleted file mode 100644 index 980ee45..0000000 --- a/projects/priceservice/config/packages/framework.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# see https://symfony.com/doc/current/reference/configuration/framework.html -framework: - secret: '%env(APP_SECRET)%' - #csrf_protection: true - annotations: false - http_method_override: false - handle_all_throwables: true - - # Enables session support. Note that the session will ONLY be started if you read or write from it. - # Remove or comment this section to explicitly disable session support. - session: - handler_id: null - cookie_secure: auto - cookie_samesite: lax - - #esi: true - #fragments: true - php_errors: - log: true - -when@test: - framework: - test: true - session: - storage_factory_id: session.storage.factory.mock_file diff --git a/projects/priceservice/config/packages/lock.yaml b/projects/priceservice/config/packages/lock.yaml deleted file mode 100644 index 574879f..0000000 --- a/projects/priceservice/config/packages/lock.yaml +++ /dev/null @@ -1,2 +0,0 @@ -framework: - lock: '%env(LOCK_DSN)%' diff --git a/projects/priceservice/config/packages/messenger.yaml b/projects/priceservice/config/packages/messenger.yaml deleted file mode 100644 index a2cbde0..0000000 --- a/projects/priceservice/config/packages/messenger.yaml +++ /dev/null @@ -1,13 +0,0 @@ -framework: - messenger: - default_bus: messenger.bus.default - transports: - async: - dsn: '%env(MESSENGER_TRANSPORT_DSN)%' - options: - stream: messages - stream_max_entries: 100 - retry_strategy: - max_retries: 3 - routing: - 'App\Message\TriggerPriceImport': async diff --git a/projects/priceservice/config/packages/monolog.yaml b/projects/priceservice/config/packages/monolog.yaml deleted file mode 100644 index ba852ae..0000000 --- a/projects/priceservice/config/packages/monolog.yaml +++ /dev/null @@ -1,48 +0,0 @@ -monolog: - channels: - - deprecation - handlers: - file_log: - type: rotating_file - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: error - -when@dev: - monolog: - handlers: - main: - type: stream - path: '%kernel.logs_dir%/dev.log' - level: debug - channels: ['!event'] - - deprecation: - type: stream - path: '%kernel.logs_dir%/deprecations.log' - level: info - channels: [deprecation] - - stdout: - type: stream - path: php://stdout - level: debug - channels: ['!event'] - -when@prod: - monolog: - handlers: - file: - type: rotating_file - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: info - channels: ['!event'] - formatter: monolog.formatter.line - - deprecation: - type: rotating_file - path: '%kernel.logs_dir%/deprecations.log' - level: warning - channels: [deprecation] - - - diff --git a/projects/priceservice/config/packages/rate_limiter.yaml b/projects/priceservice/config/packages/rate_limiter.yaml deleted file mode 100644 index 3f687f4..0000000 --- a/projects/priceservice/config/packages/rate_limiter.yaml +++ /dev/null @@ -1,6 +0,0 @@ -framework: - rate_limiter: - price_import: - policy: fixed_window - limit: 1 - interval: '10 seconds' diff --git a/projects/priceservice/config/packages/routing.yaml b/projects/priceservice/config/packages/routing.yaml deleted file mode 100644 index 4b766ce..0000000 --- a/projects/priceservice/config/packages/routing.yaml +++ /dev/null @@ -1,12 +0,0 @@ -framework: - router: - utf8: true - - # Configure how to generate URLs in non-HTTP contexts, such as CLI commands. - # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands - #default_uri: http://localhost - -when@prod: - framework: - router: - strict_requirements: null diff --git a/projects/priceservice/config/packages/security.yaml b/projects/priceservice/config/packages/security.yaml deleted file mode 100644 index c27a58b..0000000 --- a/projects/priceservice/config/packages/security.yaml +++ /dev/null @@ -1,15 +0,0 @@ -security: - role_hierarchy: - ROLE_ADMIN: [ ROLE_PRICES, ROLE_USER ] - - password_hashers: - Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' - firewalls: - dev: - main: - access_control: - # api - - { path: ^/api/prices, roles: [ PUBLIC_ACCESS ], ips: '%env(MTO_ALLOWED_API_IPS)%' } - - { path: ^/api/prices, roles: [ ROLE_NO_ACCESS ] } - #- { path: ^/trigger-import, roles: [ PUBLIC_ACCESS ], ips: '%env(MTO_ALLOWED_IMPORT_TRIGGER_IPS)%'} - #- { path: ^/trigger-import, roles: [ ROLE_NO_ACCESS ]} \ No newline at end of file diff --git a/projects/priceservice/config/packages/uid.yaml b/projects/priceservice/config/packages/uid.yaml deleted file mode 100644 index 0152094..0000000 --- a/projects/priceservice/config/packages/uid.yaml +++ /dev/null @@ -1,4 +0,0 @@ -framework: - uid: - default_uuid_version: 7 - time_based_uuid_version: 7 diff --git a/projects/priceservice/config/preload.php b/projects/priceservice/config/preload.php deleted file mode 100644 index 5ebcdb2..0000000 --- a/projects/priceservice/config/preload.php +++ /dev/null @@ -1,5 +0,0 @@ -stopwatch->start('price_import'); - - $this->importService->writePrices($output); - - $event = $this->stopwatch->stop('price_import'); - $duration = number_format(($event?->getDuration() ?? 0) / 1000, 2); - - $io->success([ - 'Preisdaten erfolgreich nach Redis importiert.', - "Dauer: {$duration}s" - ]); - - return Command::SUCCESS; - - } catch (Throwable $e) { - $this->logger->error('Redis-Import fehlgeschlagen', [ - 'message' => $e->getMessage(), - 'trace' => $e->getTraceAsString(), - ]); - - $io->error('Fehler beim Redis-Import: ' . $e->getMessage()); - return Command::FAILURE; - } - } -} diff --git a/projects/priceservice/src/Command/RedisReadCommand.php b/projects/priceservice/src/Command/RedisReadCommand.php deleted file mode 100644 index 915da71..0000000 --- a/projects/priceservice/src/Command/RedisReadCommand.php +++ /dev/null @@ -1,52 +0,0 @@ -readService = $readService; - } - - protected function configure(): void - { - $this - ->addArgument('shopId', InputArgument::REQUIRED, 'Shop ID') - ->addArgument('step', InputArgument::REQUIRED, 'Price step') - ->addArgument('skus', InputArgument::IS_ARRAY | InputArgument::REQUIRED, 'Liste von SKUs (Leerzeichen-getrennt)') - ->addOption('akStep', null, InputOption::VALUE_OPTIONAL, 'Alternative Einkaufspreisstufe') - ->addOption('maxPriceAge', null, InputOption::VALUE_OPTIONAL, 'Maximales Alter in Sekunden') - ->addOption('noTax', null, InputOption::VALUE_NONE, 'Bruttopreise unterdrücken'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $shopId = (int) $input->getArgument('shopId'); - $step = (int) $input->getArgument('step'); - $skus = $input->getArgument('skus'); - $akStep = $input->getOption('akStep') !== null ? (int) $input->getOption('akStep') : null; - $maxPriceAge = $input->getOption('maxPriceAge') !== null ? (int) $input->getOption('maxPriceAge') : null; - $noTax = $input->getOption('noTax') ?? false; - - $data = $this->readService->getPrices($skus, $shopId, $step, $akStep, $maxPriceAge, $noTax); - - $output->writeln(json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); - return Command::SUCCESS; - } -} diff --git a/projects/priceservice/src/Command/TriggerTestCommand.php b/projects/priceservice/src/Command/TriggerTestCommand.php deleted file mode 100644 index c294b0d..0000000 --- a/projects/priceservice/src/Command/TriggerTestCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -writeln("Dispatching TriggerPriceImport with timestamp: $timestamp"); - - $this->bus->dispatch(new TriggerPriceImport($timestamp)); - - $output->writeln("Message dispatched. Check Redis stream 'messages'."); - return Command::SUCCESS; - } -} diff --git a/projects/priceservice/src/Controller/.gitignore b/projects/priceservice/src/Controller/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/src/Controller/Api/PricesController.php b/projects/priceservice/src/Controller/Api/PricesController.php deleted file mode 100644 index 0e1e891..0000000 --- a/projects/priceservice/src/Controller/Api/PricesController.php +++ /dev/null @@ -1,56 +0,0 @@ - Response::HTTP_METHOD_NOT_ALLOWED, - 'error' => 'This endpoint only accepts POST requests. Please use POST with a JSON payload.', - ], Response::HTTP_METHOD_NOT_ALLOWED); - } - - #[Route('/api/prices/{type}', name: 'api_prices_post', methods: ['POST'], utf8: true)] - public function indexPost(string $type = ''): JsonResponse - { - $request = $this->requestStack->getCurrentRequest(); - - try { - $params = json_decode($request->getContent(), true, 512, JSON_THROW_ON_ERROR); - } catch (Throwable $e) { - return new JsonResponse(['error' => 'Invalid JSON'], Response::HTTP_BAD_REQUEST); - } - - return $this->handleRequest($type, $params); - } - - private function handleRequest(string $type, array $params): JsonResponse - { - $callType = $type ?: RedisReadService::RAW_DATA; - - try { - $result = $this->readService->getPricesForSkus($params, $callType); - return new JsonResponse($result); - } catch (Throwable $e) { - return new JsonResponse(['error' => $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR); - } - } -} diff --git a/projects/priceservice/src/Controller/Trigger/PriceTriggerController.php b/projects/priceservice/src/Controller/Trigger/PriceTriggerController.php deleted file mode 100644 index 108b339..0000000 --- a/projects/priceservice/src/Controller/Trigger/PriceTriggerController.php +++ /dev/null @@ -1,75 +0,0 @@ -priceImportLimiter->create('price_import_trigger_limiter'); - $limit = $limiter->consume(); - - if (!$limit->isAccepted()) { - return new JsonResponse([ - 'status' => 'rate-limited', - 'retry_after' => $limit->getRetryAfter()?->getTimestamp() - time(), - ], 429); - } - - $timestamp = time(); // Default fallback - - if ($request->getContent()) { - try { - $payload = json_decode($request->getContent(), true, 512, JSON_THROW_ON_ERROR); - - if (is_array($payload) && isset($payload['timestamp']) && is_numeric($payload['timestamp'])) { - $timestamp = (int)$payload['timestamp']; - } - } catch (\JsonException $e) { - $this->logger->warning('Invalid JSON payload in optional body', ['error' => $e->getMessage(), 'payload' => $request->getContent()]); - } - } - - try { - $this->bus->dispatch( - new TriggerPriceImport((string)$timestamp), - [new TransportNamesStamp(['async'])] - ); - } catch (\Throwable $e) { - $this->logger->error('Dispatch failed', ['exception' => $e]); - - return new JsonResponse([ - 'status' => 'error', - 'message' => 'Dispatch failed', - ], 500); - } - - return new JsonResponse([ - 'status' => 'queued', - 'timestamp' => $timestamp, - ]); - } -} diff --git a/projects/priceservice/src/Entity/.gitignore b/projects/priceservice/src/Entity/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/src/Kernel.php b/projects/priceservice/src/Kernel.php deleted file mode 100644 index ee76147..0000000 --- a/projects/priceservice/src/Kernel.php +++ /dev/null @@ -1,49 +0,0 @@ -addMithoConfig($container); - parent::prepareContainer($container); - } - - /** - * @throws \Exception - */ - private function addMithoConfig($container): void - { - $loader = new YamlFileLoader($container, new FileLocator($this->getProjectDir())); - $loader->load('config/mitho/settings.yaml'); - $this->flattenParameter('mitho', $container); - } - - private function flattenParameter(string $name, ContainerBuilder $container): void - { - $value = $container->getParameter($name); - - if (!is_array($value)) { - return; - } - - foreach ($value as $key => $innerValue) { - $innerName = $name . '.' . $key; - $container->setParameter($innerName, $innerValue); - $this->flattenParameter($innerName, $container); - } - } - -} diff --git a/projects/priceservice/src/Message/SendNotification.php b/projects/priceservice/src/Message/SendNotification.php deleted file mode 100644 index fc00422..0000000 --- a/projects/priceservice/src/Message/SendNotification.php +++ /dev/null @@ -1,11 +0,0 @@ -timestamp ?? 'undefined'; - - $this->stopwatch->start('price_import_trigger'); - print('[Handler] Start Import with client timestamp: '.$ts."\n"); - - try { - $this->importService->writePrices(); - } catch (Throwable $exception) { - $this->logger->error('[Handler] Import error: ', [ - 'timestamp' => $ts, - 'message' => $exception->getMessage(), - 'exception' => $exception, - ]); - print('[Handler] Import error: '.$exception->getMessage()."\n"); - throw $exception; - } - - $event = $this->stopwatch->stop('price_import_trigger'); - $duration = number_format(($event?->getDuration() ?? 0) / 1000, 2); - print('[Handler] Import complete with client timestamp: '.$ts."\n"); - print('[Handler] Duration: '.$duration." s\n\n"); - } -} diff --git a/projects/priceservice/src/Repository/.gitignore b/projects/priceservice/src/Repository/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/src/Service/Adapter/Orm.php b/projects/priceservice/src/Service/Adapter/Orm.php deleted file mode 100644 index ee0d05a..0000000 --- a/projects/priceservice/src/Service/Adapter/Orm.php +++ /dev/null @@ -1,210 +0,0 @@ -container = $kernel->getContainer(); - $this->httpClient = $httpClient; - $this->logger = $logger; - } - - /** - * @param array $shopIds - * @return array|null - */ - public function call(array $shopIds): ?array - { - $result = null; - $this->shopIds = implode(',', $shopIds); - $this->setConfig(); - - foreach ($this->urlList as $url) { - $this->currentUrl = $url; - $this->setParams(); - - try { - $result = $this->runCall(); - break; - } catch (Throwable $throwable) { - $this->logger->error("Error in {$url}: " . $throwable->getMessage()); - } - } - - if ($result === null) { - throw new RuntimeException("All API calls failed. See errors before this message"); - } - - return $result; - } - - /** - * @return void - */ - private function setConfig(): void - { - $url = $this->container->getParameter('mitho.import.orm.url'); - $urlBckp1 = $this->container->getParameter('mitho.import.orm.urlBckp1'); - $urlBckp2 = $this->container->getParameter('mitho.import.orm.urlBckp2'); - $this->user = $this->container->getParameter('mitho.import.orm.user'); - $this->pwd = $this->container->getParameter('mitho.import.orm.pwd'); - $this->urlList = array_filter([$url, $urlBckp1, $urlBckp2]); - } - - /** - * @return void - */ - private function setParams(): void - { - $this->currentUrl = $this->currentUrl . '?shopids=' . $this->shopIds; - } - - /** - * @return string[] - */ - private function getHeaders(): array - { - return [ - 'Authorization: Basic ' . base64_encode($this->user . ':' . $this->pwd), - 'User-Agent' => 'MtoPriceService v2' - ]; - } - - /** - * @return int[] - */ - private function getOptions(): array - { - return [ - 'headers' => $this->getHeaders(), - 'timeout' => self::CLIENT_TIMEOUT_SECONDS, - 'max_duration' => self::CLIENT_MAX_DURATION_SECONDS, - ]; - } - - /** - * @return array|null - * @throws Exception - */ - private function runCall(): ?array - { - try { - $response = $this->httpClient->request( - 'GET', - $this->currentUrl, - $this->getOptions() - ); - - $statusCode = $response->getStatusCode() ?: 500; - - if ($statusCode !== self::SUCCESS_HTTP_STATUS) { - throw new HttpException($statusCode, "Unexpected HTTP status: $statusCode"); - } - - $responseArray = $response->toArray(); - $responseArray = !empty($responseArray) ? $responseArray : throw new RuntimeException('API response is empty, expected valid JSON data.'); - - //Check the age of data - $this->validateMaxAgeOfData($responseArray); - - return $responseArray; - - } catch (ClientExceptionInterface|DecodingExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface|TransportExceptionInterface $e) { - throw new HttpException($e->getCode(), 'HTTP Client Error: ' . $e->getMessage(), $e); - } catch (Throwable $e) { - throw new RuntimeException('Unexpected API system error: ' . $e->getMessage(), 0, $e); - } - } - - /** - * Check the age of the data and throw an exception if the data is older than the maximum time period - * @param array $responseArray - * @return void - */ - private function validateMaxAgeOfData(array $responseArray): void - { - $lastUpdate = $responseArray['data']['lastupdate'] ?? null; - - try { - $dateTime = new DateTimeImmutable($lastUpdate); - } catch (Exception) { - throw new RuntimeException('API response was not accepted at '.date('Y-m-d H:i:s').', because no valid timestamp was found.'); - } - - $timeSpan = (time() - $dateTime->getTimestamp()); - if ($timeSpan > self::MAX_AGE_PRICE_SECONDS) { - throw new RuntimeException('API response was not accepted at '.date('Y-m-d H:i:s').', because the date is out of range. Max age: ' . self::MAX_AGE_PRICE_SECONDS . ' | age of data: ' . $timeSpan); - } - } - -} \ No newline at end of file diff --git a/projects/priceservice/src/Service/Adapter/RedisClientService.php b/projects/priceservice/src/Service/Adapter/RedisClientService.php deleted file mode 100644 index 528cfb5..0000000 --- a/projects/priceservice/src/Service/Adapter/RedisClientService.php +++ /dev/null @@ -1,65 +0,0 @@ -redis === null) { - $this->redis = $this->withRetry(function () { - $host = $_ENV['REDIS_HOST']; - $port = $_ENV['REDIS_PORT']; - $timeout = 2.0; - - $redis = new Redis(); - - try { - $redis->connect($host, (int)$port, $timeout); - - if (!empty($_ENV['REDIS_PASS'])) { - $redis->auth($_ENV['REDIS_PASS']); - } - - return $redis; - } catch (\Throwable $e) { - throw $e; - } - }); - } - - return $this->redis; - } - - - /** - * Generic retry wrapper with exponential backoff. - * @throws Throwable - */ - private function withRetry(callable $callback, int $maxAttempts = 3, int $baseDelayMs = 100) - { - $attempt = 0; - do { - try { - return $callback(); - } catch (Throwable $e) { - $attempt++; - if ($attempt >= $maxAttempts) { - throw $e; - } - - $delay = $baseDelayMs * (2 ** ($attempt - 1)); - usleep($delay * 1000); // Convert ms to microseconds - } - } while (true); - } -} \ No newline at end of file diff --git a/projects/priceservice/src/Service/Prices/RedisImportService.php b/projects/priceservice/src/Service/Prices/RedisImportService.php deleted file mode 100644 index d21d22b..0000000 --- a/projects/priceservice/src/Service/Prices/RedisImportService.php +++ /dev/null @@ -1,483 +0,0 @@ -priceDataImportDir = $this->getDir(); - } - - /** - * Imports prices from ORM and saves them to a JSON file. - * - * This method calls the ORM adapter to fetch price data and saves it to a JSON file - * in the specified directory. It returns true if the import was successful, false otherwise. - * - * @return bool True if the import was successful, false otherwise. - */ - public function importPricesFromOrm(): bool - { - $fileName = $this->getPriceDataFeedPath(); - $ormResult = $this->ormAdapter->call($this->calledShopIds); - if ($ormResult) { - file_put_contents($fileName, json_encode($ormResult, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); - } else { - return false; - } - return true; - } - - /** - * Writes prices to Redis from the imported data. - * - * This method reads the price data from the JSON file created by `importPricesFromOrm()` - * and writes it to Redis, ensuring that the data is properly formatted and stored. - * - * @param OutputInterface|null $output Optional output interface for logging messages. - * @throws RuntimeException|RandomException|Throwable If there is an error during the import process. - */ - public function writePrices(?OutputInterface $output = null): void - { - $updateStartTimestamp = time(); - - if ($output) { - $this->consoleOutput = $output; - } - - //Set global lock to prevent concurrent imports - if (!$this->acquireGlobalLock()) { - throw new RuntimeException('An import is already in progress...'); - } - - // Check if Redis is available before proceeding - if (!$this->redis()->ping()) { - throw new RuntimeException('Redis is not available'); - } - - // Create a random file prefix to avoid conflicts - $this->randomFilePrefix = bin2hex(random_bytes(8)); - - $this->__WCO('Call ORM', 'comment'); - - //********************************************************** - //* Load data from ORM - //********************************************************** - try { - $this->stopwatch->start('call_orm'); - $this->importPricesFromOrm(); - $time = $this->stopwatch->stop('call_orm')?->getDuration() / 1000; - $this->__WCO("Time ORM call: {$time}s"); - } catch (Throwable $e) { - $this->handleException('Import from ORM failed', $e); - } - - //********************************************************** - //* Load data from saved feed with data from ORM - //********************************************************** - try { - $this->__WCO('Start save prices', 'comment'); - - $this->stopwatch->start('get_price_data_feed'); - $payload = $this->getPriceDataFromFeed(); - $time = $this->stopwatch->stop('get_price_data_feed')?->getDuration() / 1000; - $this->__WCO("Time load data: {$time}s"); - } catch (Throwable $e) { - $this->handleException('Failed to read price data feed', $e); - } - - if (!isset($payload['data']['shops']) || !is_array($payload['data']['shops'])) { - throw new RuntimeException('Invalid payload format: "shops" data is missing or not an array.'); - } - - - $timestamp = $payload['data']['real_pricedate'] ?? date('Y-m-d H:i:s'); - $unixTimestamp = strtotime($timestamp); - $version = $unixTimestamp; - - //********************************************************** - //* Write into redis from payload data from ORM - //********************************************************** - foreach ($payload['data']['shops'] as $shopId => $shopData) { - $shopId = (int)$shopId; - $currentVersion = $this->redis()->get("current_cache_version:$shopId"); - - //Set shop redis lock - if (!$this->acquireLock($shopId)) { - $this->__WCO("[INFO] Shop $shopId locked – skipping import.", 'error'); - continue; - } - - // Check if the current version matches the version to be imported - if($currentVersion == $version){ - $this->logger->info("Version: $version for Shop $shopId already exists, skipping import."); - continue; - } - - $watcherName = "write_shop_data_$shopId"; - $this->stopwatch->start($watcherName); - - try { - $this->importShopData($shopId, $shopData, $version, $timestamp, $unixTimestamp, $updateStartTimestamp); - $this->updateCurrentVersion($shopId, $version); - $this->manageVersionHistory($shopId, $version); - $this->__WCO("[SUCCESS] Imported Shop $shopId (Version $version).", 'fg=white'); - } catch (Throwable $e) { - // Don't stop the import for other shops, only log the error - $this->logger->error("Import failed for Shop $shopId: " . $e->getMessage(), ['trace' => $e->getTraceAsString()]); - $this->__WCO("[ERROR] Import failed for Shop $shopId: " . $e->getMessage(), 'error'); - } finally { - - // Reset lock for the shop - $this->releaseLock($shopId); - - $steps = count($shopData['items'][0]['steps'] ?? []); - $savedDataCount = count($shopData['items']) * $steps; - $time = $this->stopwatch->stop($watcherName)?->getDuration() / 1000; - $this->__WCO("Time write data ($savedDataCount keys): {$time}s"); - } - } - - // Clean up the JSON file after import - if (file_exists($this->getPriceDataFeedPath())) { - unlink($this->getPriceDataFeedPath()); - } - - $this->releaseGlobalLock(); - } - - //********************************************************** - //* HELPER METHODS - //********************************************************** - - /** - * Logs an informational message to the output interface. - * - * @param string $message The message to log. - * @param string|null $type The type of message (e.g., 'info', 'comment'). Defaults to 'info'. - */ - private function __WCO(string $message, ?string $type = 'info'): void - { - if ($this->consoleOutput instanceof OutputInterface) { - $this->consoleOutput?->writeln("<{$type}>$message"); - } - - } - - /** - * Handles exceptions by logging the error and throwing a RuntimeException. - * - * @param string $context The context in which the exception occurred. - * @param Throwable $e The exception to handle. - * @throws RuntimeException - */ - private function handleException(string $context, Throwable $e): void - { - $this->logger->error("$context: " . $e->getMessage(), ['trace' => $e->getTraceAsString()]); - throw new RuntimeException("$context: " . $e->getMessage(), 0, $e); - } - - /** - * Imports shop data into Redis. - * - * This method processes the shop data and writes it to Redis with a specific key format. - * It calculates gross prices based on the net prices and tax rates provided in the data. - * - * @param int $shopId The ID of the shop to import data for. - * @param array $shopData The data for the shop, including items and their prices. - * @param string $version The version of the data being imported. - * @param string $timestamp The timestamp of the data import. - * @param int $unixTimestamp The Unix timestamp of the data import. - * @throws RuntimeException|Throwable If there is an error writing to Redis. - */ - private function importShopData(int $shopId, array $shopData, string $version, string $timestamp, int $unixTimestamp, int $updateStartTimestamp): void - { - $errors = []; - foreach ($shopData['items'] as $item) { - $sku = $item['itemid']; - $taxrate = isset($item['taxrate']) ? ($item['taxrate'] / 100) : 0.0; - $cashPrice = $item['steps'][$this->cashPriceStep]['vk_price'] ?? 0.0; - $updateEndTimestamp = time(); - - foreach ($item['steps'] as $step => $prices) { - $key = "v{$version}:{$step}:{$shopId}:{$sku}"; - - $data = [ - 'sku' => $sku, - 'vk_price' => $prices['vk_price'], - 'vk_price_gross' => $this->calcGross($prices['vk_price'], $taxrate), - 'vk_g_price' => $prices['vk_price_g_net'], - 'vk_g_price_gross' => $this->calcGross($prices['vk_price_g_net'], $taxrate), - 'ak_price' => $prices['ak_price'], - 'ak_price_gross' => $this->calcGross($prices['ak_price'], $taxrate), - 'ak_g_price' => $prices['ak_price_g_net'], - 'ak_g_price_gross' => $this->calcGross($prices['ak_price_g_net'], $taxrate), - 'cash_price' => $cashPrice, - 'cash_price_gross' => $this->calcGross($cashPrice, $taxrate), - 'taxrate' => $taxrate, - 'last_update' => $timestamp, - 'timestamp' => $unixTimestamp, - 'update_start_timestamp' => $updateStartTimestamp, - 'update_end_timestamp' => $updateEndTimestamp - ]; - - // Write to Redis with a key that includes the version, step, shop ID, and SKU - try { - $this->redis()->set($key, json_encode($data), ['NX', 'EX' => self:: MAX_TTL_PRICE_KEY]); - } catch (\RedisException $e) { - $errors [] = "Failed to write Redis key: {$key}. Error: " . $e->getMessage() . "\n"; - } - - } - } - if ($errors) { - $this->logger->error(implode("", $errors)); - } - - } - - /** - * Returns the directory for price imports. - * - * This method checks if the directory exists and creates it if it does not. - * - * @return string The path to the price imports directory. - * @throws RuntimeException If the directory cannot be created. - */ - private function getDir(): string - { - $dir = $this->kernel->getProjectDir() . '/var/price_imports/'; - if (!is_dir($dir)) { - if (!mkdir($dir, 0777, true) && !is_dir($dir)) { - throw new RuntimeException(sprintf('Directory "%s" was not created', $dir)); - } - } - return $dir; - } - - /** - * Returns the path to the price data feed file. - * - * This method checks if the price data feed file exists and is readable. - * If not, it attempts to create the file. - * - * @return string The path to the price data feed file. - * @throws RuntimeException If the file cannot be created or is not readable. - */ - private function getPriceDataFeedPath(): string - { - $file = $this->priceDataImportDir . '/' . $this->randomFilePrefix . '_' . self::PRICE_DATA_FEED; - if (!is_readable($file)) { - if (!touch($file)) { - $msg = 'Input file not readable'; - $this->logger->error($msg, ['path' => $file]); - throw new RuntimeException($msg); - } - } - - return $file; - } - - /** - * Reads the price data feed from the JSON file. - * - * This method reads the JSON file containing price data and decodes it into an array. - * It throws an exception if the file is not readable or if the JSON format is invalid. - * - * @return array The decoded price data. - * @throws RuntimeException If the file is not readable or contains invalid JSON. - */ - private function getPriceDataFromFeed(): array - { - $file = $this->getPriceDataFeedPath(); - $json = file_get_contents($file); - $data = json_decode($json, true); - - if (!is_array($data)) { - $msg = 'Invalid JSON format in file'; - $this->logger->error($msg, ['path' => $file]); - throw new RuntimeException($msg); - } - - return $data; - } - - /** - * Calculates the gross price from the net price and tax rate. - * - * @param float $net The net price. - * @param float $taxRate The tax rate as a decimal (e.g., 0.19 for 19%). - * @return float The calculated gross price, rounded to two decimal places. - */ - private function calcGross(float $net, float $taxRate): float - { - return round($net * (1 + $taxRate), 2); - } - - /** - * Acquires a global lock to prevent concurrent imports. - * - * @return bool True if the lock was acquired, false if it was already held. - * @throws Throwable - */ - private function acquireGlobalLock(): bool - { - return $this->redis()->set('lock:import:global', time(), ['NX', 'EX' => self::LOCK_TTL]); - } - - /** - * Releases the global lock after import is complete. - * - * @return void - * @throws Throwable - */ - private function releaseGlobalLock(): void - { - $this->redis()->del('lock:import:global'); - } - - /** - * Acquires a lock for a specific shop to prevent concurrent imports. - * - * @param int $shopId The ID of the shop to lock. - * @return bool True if the lock was acquired, false if it was already held. - * @throws RuntimeException If there is an error acquiring the lock. - */ - private function acquireLock(int $shopId): bool - { - try { - return $this->redis()->set("lock:$shopId", time(), ['NX', 'EX' => self::LOCK_TTL]); - } catch (Throwable $e) { - throw new RuntimeException("Redis lock error for shop $shopId: {$e->getMessage()}"); - } - } - - /** - * Releases the lock for a specific shop. - * - * @param int $shopId The ID of the shop to release the lock for. - * @return void - */ - private function releaseLock(int $shopId): void - { - try { - $this->redis()->del("lock:$shopId"); - } catch (Throwable $e) { - $this->logger->warning("[WARN] Failed to release lock for Shop $shopId: {$e->getMessage()}"); - } - } - - /** - * Updates the current cache version for a specific shop. - * - * @param int $shopId The ID of the shop. - * @param string $version The new version to set. - * @throws RuntimeException|Throwable If there is an error updating the version. - */ - private function updateCurrentVersion(int $shopId, string $version): void - { - if (!$this->redis()->set("current_cache_version:$shopId", $version)) { - //Don't stop the import if one shop key fails, just only log the error - $this->logger->error("Failed to update current version for Shop {$shopId}: {$version}"); - } - } - - /** - * Manages the version history for a specific shop, keeping only the latest versions. - * - * @param int $shopId The ID of the shop. - * @param string $newVersion The new version to add to the history. - * @throws Throwable - */ - private function manageVersionHistory(int $shopId, string $newVersion): void - { - $versionListKey = "price_versions:$shopId"; - - $this->redis()->lPush($versionListKey, $newVersion); - $allVersions = $this->redis()->lRange($versionListKey, 0, -1); - $this->redis()->lTrim($versionListKey, 0, self::MAX_VERSIONS - 1); - $versionsToDelete = array_slice($allVersions, self::MAX_VERSIONS); - - foreach ($versionsToDelete as $oldVersion) { - $this->deleteVersionKeys($oldVersion, $shopId); - } - } - - /** - * Deletes all keys associated with a specific version for a shop. - * - * @param string $version The version to delete. - * @param int $shopId The ID of the shop. - * @throws Throwable - */ - private function deleteVersionKeys(string $version, int $shopId): void - { - $pattern = "v{$version}:*:$shopId:*"; - $cursor = null; - do { - $batch = $this->redis()->scan($cursor, $pattern, 500); - if ($batch) { - $this->redis()->del(...$batch); - } - } while ($cursor !== 0); - } - - /** - * Returns the Redis client instance. - * - * This method initializes the Redis client if it has not been created yet. - * - * @return Redis The Redis client instance. - * @throws Throwable - */ - private function redis(): Redis - { - if ($this->redis === null) { - $this->redis = $this->redisClientService->get(); - } - return $this->redis; - } -} diff --git a/projects/priceservice/src/Service/Prices/RedisReadService.php b/projects/priceservice/src/Service/Prices/RedisReadService.php deleted file mode 100644 index 4353644..0000000 --- a/projects/priceservice/src/Service/Prices/RedisReadService.php +++ /dev/null @@ -1,200 +0,0 @@ -redis = $clientService->get(); - } - - /** - * Retrieves prices for the given SKUs based on the current parameters and call type. - * - * @param array $currentParams The current parameters including SKU, shop ID, step, AK step, max price age, and no tax flag. - * @param string $currentCallType The type of call being made (e.g., RAW_DATA, RAW_DATA_DIFF_STEPS). - * @return array An associative array containing the success status, message, data, total count, and validity of MTO prices. - */ - public function getPricesForSkus(array $currentParams, string $currentCallType): array - { - $skus = $currentParams['sku']; - $shopId = $currentParams['shop']; - $step = $currentParams['step']; - $akStep = $currentParams['ak_step']; - $maxPriceAge = $currentParams['maxPriceAge']; - $noTax = $currentParams['noTax'] ?? false; - - $this->validateCallType($currentCallType); - - return $this->getPrices($skus, $shopId, $step, $akStep, $maxPriceAge, $noTax); - } - - private function validateCallType(string $callType): void - { - $validCallTypes = [ - self::RAW_DATA, - self::RAW_DATA_DIFF_STEPS, - self::RAW_DATA_WITH_ARTICLE - ]; - - if (!in_array($callType, $validCallTypes, true)) { - throw new \InvalidArgumentException("Invalid call type: $callType"); - } - } - - /** - * Retrieves prices for the given SKUs from Redis. - * - * @param array $skus List of SKUs to retrieve prices for. - * @param int $shopId The ID of the shop. - * @param int $step The price step to retrieve. - * @param int|null $akStep Optional AK step to retrieve. - * @param int|null $maxPriceAge Optional maximum age of the price data in seconds. - * @param bool $noTax Whether to exclude tax information from the result. - * @return array An associative array containing the success status, message, data, total count, and validity of MTO prices. - */ - public function getPrices(array $skus, int $shopId, int $step, ?int $akStep = null, ?int $maxPriceAge = null, bool $noTax = false): array - { - $microNow = microtime(true); - $version = $this->redis()->get("current_cache_version:$shopId"); - - if (!$version) { - return [ - 'success' => false, - 'message' => 'No active version found for shop', - 'data' => [], - 'total' => 0, - 'MTO-PRICES-VALID' => false, - 'showTax' => $noTax - ]; - } - - $result = []; - $mto_price_valid = true; - $now = time(); - $chunkSize = 100; - - // Preisdaten in Chunks laden - $priceDataAll = []; - foreach (array_chunk($skus, $chunkSize) as $chunk) { - if (!is_array($chunk)) continue; - $keys = array_map(fn($sku) => "v{$version}:{$step}:{$shopId}:{$sku}", $chunk); - $priceDataAll = array_merge($priceDataAll, $this->redis()->mget($keys)); - } - - // Optional: AK-Daten in Chunks laden - $akDataAll = []; - if ($akStep !== null) { - foreach (array_chunk($skus, $chunkSize) as $chunk) { - if (!is_array($chunk)) continue; - $akKeys = array_map(fn($sku) => "v{$version}:{$akStep}:{$shopId}:{$sku}", $chunk); - $akDataAll = array_merge($akDataAll, $this->redis()->mget($akKeys)); - } - } - - foreach ($skus as $index => $sku) { - $entry = $priceDataAll[$index] ? json_decode($priceDataAll[$index], true) : null; - if (!$entry) { - continue; - } - - $ak = $akDataAll[$index] ?? null; - if ($ak && is_string($ak)) { - $ak = json_decode($ak, true); - } - - $unit = str_starts_with($sku, 'BR-') ? 'Karat' : 'Gramm'; - $is_disabled = false; - - if ($maxPriceAge !== null && ($now - $entry['timestamp']) > $maxPriceAge) { - $mto_price_valid = false; - $is_disabled = true; - } - - if (!$entry['vk_price']) { - $mto_price_valid = false; - $is_disabled = true; - } - - $result[$sku] = [ - 'subshopId' => $shopId, - 'sku' => $sku, - 'step' => $step, - - 'price_net' => $entry['vk_price'], - 'price_num' => $entry['vk_price_gross'] ?? null, - 'price_currency' => $this->formatCurrency($entry['vk_price_gross'] ?? 0.0), - - 'ref_price_net' => $entry['vk_g_price'], - 'ref_price_num' => $entry['vk_g_price_gross'], - 'ref_price_currency' => '(' . $this->formatCurrency($entry['vk_g_price_gross']) . ' / 1 ' . $unit . ')', - 'ref_price_currency_raw' => $this->formatCurrency($entry['vk_g_price_gross']), - - 'ak_step' => $akStep ?? $step, - 'ak_price_net' => $ak['ak_price'] ?? $entry['ak_price'], - 'ak_price_num' => $ak['ak_price'] ?? $entry['ak_price'], - 'ak_price_currency' => $this->formatCurrency($ak['ak_price'] ?? $entry['ak_price'] ?? 0.00), - - 'cash_price_net' => $entry['cash_price'], - 'cash_price_num' => $entry['cash_price_gross'] ?? 0.0, - 'cash_price_currency' => $this->formatCurrency($entry['cash_price_gross'] ?? 0.0), - - 'is_disabled' => $is_disabled, - - 'taxrate' => round($entry['taxrate'] * 100), - 'version' => $version, - 'last_update' => date('d.m.Y H:i:s', strtotime($entry['last_update'])), - 'timestamp' => $entry['timestamp'], - 'timestampAsDate' => date('d.m.Y H:i:s', $entry['timestamp']), - 'updateStartTimestamp' => date('d.m.Y H:i:s', $entry['update_start_timestamp']), - 'updateEndTimestamp' => date('d.m.Y H:i:s', $entry['update_end_timestamp']), - ]; - } - - $timeGap = (microtime(true) - $microNow) * 1000; - - return [ - 'success' => true, - 'total' => count($result), - 'version' => $version, - 'MTO-PRICES-VALID' => $mto_price_valid, - 'timeGap' => round($timeGap, 2) . ' ms', - 'data' => $result, - 'showTax' => $noTax - ]; - } - - - /** - * Formats a float value as a currency string. - * - * @param float $value The value to format. - * @return string The formatted currency string. - */ - private function formatCurrency(float $value): string - { - return number_format($value, 2, ',', '.') . ' €'; - } - - /** - * Returns the Redis client instance. - * - * @return Redis - */ - private function redis(): Redis - { - if ($this->redis === null) { - $this->redis = $this->redisClientService->get(); - } - return $this->redis; - } -} diff --git a/projects/priceservice/symfony.lock b/projects/priceservice/symfony.lock deleted file mode 100644 index be8a3b3..0000000 --- a/projects/priceservice/symfony.lock +++ /dev/null @@ -1,164 +0,0 @@ -{ - "doctrine/deprecations": { - "version": "1.1", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "1.0", - "ref": "87424683adc81d7dc305eefec1fced883084aab9" - } - }, - "doctrine/doctrine-bundle": { - "version": "2.11", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "2.10", - "ref": "c170ded8fc587d6bd670550c43dafcf093762245" - }, - "files": [ - "config/packages/doctrine.yaml", - "src/Entity/.gitignore", - "src/Repository/.gitignore" - ] - }, - "doctrine/doctrine-migrations-bundle": { - "version": "3.3", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "3.1", - "ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33" - }, - "files": [ - "config/packages/doctrine_migrations.yaml", - "migrations/.gitignore" - ] - }, - "symfony/console": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "5.3", - "ref": "da0c8be8157600ad34f10ff0c9cc91232522e047" - }, - "files": [ - "bin/console" - ] - }, - "symfony/flex": { - "version": "2.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "1.0", - "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172" - }, - "files": [ - ".env" - ] - }, - "symfony/framework-bundle": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "6.4", - "ref": "a91c965766ad3ff2ae15981801643330eb42b6a5" - }, - "files": [ - "config/packages/cache.yaml", - "config/packages/framework.yaml", - "config/preload.php", - "config/routes/framework.yaml", - "config/services.yaml", - "public/index.php", - "src/Controller/.gitignore", - "src/Kernel.php" - ] - }, - "symfony/lock": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "5.2", - "ref": "8e937ff2b4735d110af1770f242c1107fdab4c8e" - }, - "files": [ - "config/packages/lock.yaml" - ] - }, - "symfony/maker-bundle": { - "version": "1.54", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "1.0", - "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" - } - }, - "symfony/messenger": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "6.0", - "ref": "ba1ac4e919baba5644d31b57a3284d6ba12d52ee" - }, - "files": [ - "config/packages/messenger.yaml" - ] - }, - "symfony/monolog-bundle": { - "version": "3.10", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "3.7", - "ref": "aff23899c4440dd995907613c1dd709b6f59503f" - }, - "files": [ - "config/packages/monolog.yaml" - ] - }, - "symfony/routing": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "6.2", - "ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6" - }, - "files": [ - "config/packages/routing.yaml", - "config/routes.yaml" - ] - }, - "symfony/security-bundle": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "6.4", - "ref": "2ae08430db28c8eb4476605894296c82a642028f" - }, - "files": [ - "config/packages/security.yaml", - "config/routes/security.yaml" - ] - }, - "symfony/uid": { - "version": "6.4", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "main", - "version": "6.2", - "ref": "d294ad4add3e15d7eb1bae0221588ca89b38e558" - }, - "files": [ - "config/packages/uid.yaml" - ] - } -} diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php deleted file mode 100644 index b0cb943..0000000 --- a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Ju8t4eN', - 'container.build_id' => '0c77a90f', - 'container.build_time' => 1780489561, - 'container.runtime_mode' => \in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? 'web=0' : 'web=1', -], __DIR__.\DIRECTORY_SEPARATOR.'ContainerJu8t4eN'); diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.lock b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.lock deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.meta b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.php.meta deleted file mode 100644 index 31f63c7b5e7ba7d6d743e44b2a5645d2eeb49ffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16316 zcmd5@TX&mA5YBJ$djku5LCTYxTXWi^K6Xy~qH}tdy~rd8=z{DxJ^AmQT|mYbk|jqH zy!ZkVJIpt;GxNLE@WmJVee;EBo_F>NzR#v--VHb2?d`31T`f|tFo{s5GB@zcyHT0U zjVG)~aLr4yvf^o~TcV#k_zAUZ_CvGsLxFp;vu5fsJ zi=?{Fy;47CkCrD zl}!pi8}jo#J4p+JE~y z@s1abPHU5&)mn9Z8c&^!O?3>io&62&k9DDhiqCqu59I}+!eB!x8ES-+N9-Z z+g&$RK{l}-mja(3?$ zlM9oBAyrUR=)6~N-47g1bKT?wjjpmFz25pRH;Z14*&9dG)PsF(d?iHC=b3-!=BrNg z+g@$8H{UP0k$<>4`&1j-`09t=682-V*jPN+d!O$L^?s>JV3kf|cB3mFSg+Y#iEAa7 zsoGfjw;%Xub(hUgrM~gi5xx7{N-Mo?ySjTclY0;oMpr=e=ODjTRq;AaEaTkA*WKSf ziPnPg6%M@>>xx0@RT^+~=gTVp$cqAMFJMc6$X^;qiXKgi-6$K3u6nS%?t1>)2GU+7 zwm09XcsW0f+6HY8V2Gq!nlYko55&t%rmDQ}XxOBExCYWrEscVUuY9gbPjHBD_brXU zrp?324&3q6`d-N{b5WTj>xyr4*}=rOwb3)g|7VfR>z%06TMBGiIoO*#(S>Xbe+7g# ze4%b3KkpclP49-2A5ytJkVtdU72T#*!->A15iQ!Rv!i;O<_stQPJ8CcbQXD*r}_L| z`f$+pJN5T69B^CpPntl3Seec%4BCPx`vG9`rEP0>q#rcoT8eNF&n=Z$nxwkxh(B!f zg(7GV@t2A0NIq!n#XIdgzz*0slun=u9euQ^W%*!S=2B@pWB|mo8y2{qoC)0+#BOs2 z8y@mP!z_-QGjL-#bUO}q4y9?8dY4Kj^za}(ZU$f|o#3=nNv@tT*{ZZU{}B*qiWu+YL+R7Qc2zE5N1 zBYTZ7zaC<7{MFd-BT(XP@uM~TE)|Cv45!y4p%;K9tfALg_Q2S2UxYFCeU6ZTpL~Ke z7m^0PjV+BYG8ci4unZzL? znh?rr{2YllI{dbW;M(`H%Gi-Ha)kI9~wzH z38jdLkUFLj(!SyW2_)r8z%{{ZBptOlHYC|zNH#uEquKm(bWAP9@(9yr=^EEHIS!1j zW)YGkilo9SA0v#K=JH$xKuLI5FUBS@jr@TsZA{^y;BnNF{ zWV7t-@v;ZTE*6o^YFH3+Dk4sU7-6L&fKO=chqT7d5wByzZig7zV%K<-`V)W^1@iAhq_^z9*&8;H=7&dj|V*u9$I53_O=9)2ugbE@a1u?^M%>2NQ z3C4=a#skO6-hj?_^uRj#?~*u2h7)YR>yP#NT`s3t|G;QsjL_2XQb7 zNQ30=?X&l39^X@`)Ez?HjY{o)^F?8lPQKZ9wRzxnyzHlJn_&l@^5Gi1f@lfH6w4{B z;hqBSwC_`l<^0R!21wNy4w8W=z;*8XkS#%b2U3(@b7tc^=}FF2pmqey_frIt4r_P;SMm~o!#bnhfv9&EoX$l zYPNWBbL6|MPou+`@T&Obt2;vtEv%LZ_0G+Fxqyj58wt`IC`m5Wzc9^PUGTd!=MskF smhRlKy;o= 7.4 when preloading is desired - -use Symfony\Component\DependencyInjection\Dumper\Preloader; - -if (in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { - return; -} - -require dirname(__DIR__, 3).'/vendor/autoload.php'; -(require __DIR__.'/App_KernelDevDebugContainer.php')->set(\ContainerJu8t4eN\App_KernelDevDebugContainer::class, null); -require __DIR__.'/ContainerJu8t4eN/EntityManagerGhostEbeb667.php'; -require __DIR__.'/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php'; -require __DIR__.'/ContainerJu8t4eN/getSession_Handler_NativeService.php'; -require __DIR__.'/ContainerJu8t4eN/getSession_FactoryService.php'; -require __DIR__.'/ContainerJu8t4eN/getServicesResetterService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_HttpUtilsService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_ChannelListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_AccessMapService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecurity_AccessListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getSecrets_VaultService.php'; -require __DIR__.'/ContainerJu8t4eN/getRouting_LoaderService.php'; -require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php'; -require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php'; -require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_CacheService.php'; -require __DIR__.'/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_DefaultBusService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php'; -require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php'; -require __DIR__.'/ContainerJu8t4eN/getHttpClient_UriTemplateService.php'; -require __DIR__.'/ContainerJu8t4eN/getHttpClient_TransportService.php'; -require __DIR__.'/ContainerJu8t4eN/getErrorControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php'; -require __DIR__.'/ContainerJu8t4eN/getDoctrineService.php'; -require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php'; -require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php'; -require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php'; -require __DIR__.'/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php'; -require __DIR__.'/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php'; -require __DIR__.'/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php'; -require __DIR__.'/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_SystemClearerService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_SystemService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_RateLimiterService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_GlobalClearerService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_AppClearerService.php'; -require __DIR__.'/ContainerJu8t4eN/getCache_AppService.php'; -require __DIR__.'/ContainerJu8t4eN/getTemplateControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/getRedirectControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/getRedisReadServiceService.php'; -require __DIR__.'/ContainerJu8t4eN/getRedisImportServiceService.php'; -require __DIR__.'/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php'; -require __DIR__.'/ContainerJu8t4eN/getPriceTriggerControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/getPricesControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php'; -require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php'; -require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php'; -require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php'; -require __DIR__.'/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php'; -require __DIR__.'/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php'; - -$classes = []; -$classes[] = 'Symfony\Bundle\FrameworkBundle\FrameworkBundle'; -$classes[] = 'Symfony\Bundle\SecurityBundle\SecurityBundle'; -$classes[] = 'Symfony\Bundle\MakerBundle\MakerBundle'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\DoctrineBundle'; -$classes[] = 'Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle'; -$classes[] = 'Symfony\Bundle\MonologBundle\MonologBundle'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter'; -$classes[] = 'Symfony\Component\Security\Core\Role\RoleHierarchy'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\DateTimeValueResolver'; -$classes[] = 'Symfony\Component\Clock\Clock'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\NotTaggedControllerValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver'; -$classes[] = 'Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver'; -$classes[] = 'Symfony\Bridge\Doctrine\Attribute\MapEntity'; -$classes[] = 'Symfony\Component\Security\Http\Controller\SecurityTokenValueResolver'; -$classes[] = 'Symfony\Component\Security\Http\Controller\UserValueResolver'; -$classes[] = 'Symfony\Component\Lock\PersistingStoreInterface'; -$classes[] = 'Symfony\Component\Lock\Store\StoreFactory'; -$classes[] = 'Symfony\Component\Messenger\Handler\HandlerDescriptor'; -$classes[] = 'Symfony\Component\HttpClient\Messenger\PingWebhookMessageHandler'; -$classes[] = 'Symfony\Component\Process\Messenger\RunProcessMessageHandler'; -$classes[] = 'Symfony\Component\Console\Messenger\RunCommandMessageHandler'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Console\Application'; -$classes[] = 'Symfony\Component\Messenger\Handler\RedispatchMessageHandler'; -$classes[] = 'Symfony\Component\DependencyInjection\ServiceLocator'; -$classes[] = 'App\Controller\Api\PricesController'; -$classes[] = 'App\Controller\Trigger\PriceTriggerController'; -$classes[] = 'Symfony\Component\RateLimiter\RateLimiterFactory'; -$classes[] = 'Symfony\Component\RateLimiter\Storage\CacheStorage'; -$classes[] = 'Symfony\Component\Lock\LockFactory'; -$classes[] = 'Monolog\Logger'; -$classes[] = 'App\MessageHandler\TriggerPriceImportHandler'; -$classes[] = 'App\Service\Adapter\RedisClientService'; -$classes[] = 'App\Service\Prices\RedisImportService'; -$classes[] = 'App\Service\Adapter\Orm'; -$classes[] = 'App\Service\Prices\RedisReadService'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\TemplateController'; -$classes[] = 'Symfony\Component\Cache\Adapter\FilesystemAdapter'; -$classes[] = 'Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer'; -$classes[] = 'Symfony\Component\Cache\Marshaller\DefaultMarshaller'; -$classes[] = 'Symfony\Component\Cache\Adapter\ArrayAdapter'; -$classes[] = 'Symfony\Component\Cache\Adapter\RedisAdapter'; -$classes[] = 'Symfony\Component\Cache\Adapter\AbstractAdapter'; -$classes[] = 'Symfony\Component\Cache\Adapter\AdapterInterface'; -$classes[] = 'Symfony\Component\Config\Resource\SelfCheckingResourceChecker'; -$classes[] = 'Symfony\Component\DependencyInjection\EnvVarProcessor'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\CacheAttributeListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\DebugHandlersListener'; -$classes[] = 'Symfony\Component\HttpKernel\Debug\ErrorHandlerConfigurator'; -$classes[] = 'Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\AccessDecisionManager'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\Strategy\AffirmativeStrategy'; -$classes[] = 'Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher'; -$classes[] = 'Symfony\Component\EventDispatcher\EventDispatcher'; -$classes[] = 'Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener'; -$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallMap'; -$classes[] = 'Symfony\Component\Security\Http\Logout\LogoutUrlGenerator'; -$classes[] = 'Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener'; -$classes[] = 'Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener'; -$classes[] = 'Symfony\Component\Security\Http\Authentication\AuthenticatorManager'; -$classes[] = 'Symfony\Bundle\SecurityBundle\EventListener\VoteListener'; -$classes[] = 'Symfony\Component\Stopwatch\Stopwatch'; -$classes[] = 'Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Registry'; -$classes[] = 'Doctrine\DBAL\Connection'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\ConnectionFactory'; -$classes[] = 'Doctrine\DBAL\Configuration'; -$classes[] = 'Doctrine\DBAL\Schema\DefaultSchemaManagerFactory'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager'; -$classes[] = 'Doctrine\DBAL\Logging\Middleware'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Middleware\DebugMiddleware'; -$classes[] = 'Doctrine\DBAL\Tools\DsnParser'; -$classes[] = 'Symfony\Bridge\Doctrine\ContainerAwareEventManager'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Middleware\BacktraceDebugDataHolder'; -$classes[] = 'Doctrine\ORM\Mapping\Driver\AttributeDriver'; -$classes[] = 'Doctrine\ORM\Configuration'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Mapping\MappingDriver'; -$classes[] = 'Doctrine\Persistence\Mapping\Driver\MappingDriverChain'; -$classes[] = 'Doctrine\ORM\Mapping\UnderscoreNamingStrategy'; -$classes[] = 'Doctrine\ORM\Mapping\DefaultQuoteStrategy'; -$classes[] = 'Doctrine\ORM\Mapping\DefaultTypedFieldMapper'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory'; -$classes[] = 'Doctrine\ORM\Proxy\Autoloader'; -$classes[] = 'Doctrine\ORM\EntityManager'; -$classes[] = 'Doctrine\ORM\Tools\AttachEntityListenersListener'; -$classes[] = 'Doctrine\Bundle\DoctrineBundle\ManagerConfigurator'; -$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaListener'; -$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener'; -$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\LockStoreSchemaListener'; -$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\PdoSessionHandlerSchemaListener'; -$classes[] = 'Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber'; -$classes[] = 'Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator'; -$classes[] = 'Symfony\Component\Uid\Factory\UlidFactory'; -$classes[] = 'Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator'; -$classes[] = 'Symfony\Component\Uid\Factory\UuidFactory'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ErrorController'; -$classes[] = 'Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer'; -$classes[] = 'Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\ErrorListener'; -$classes[] = 'Symfony\Contracts\HttpClient\HttpClientInterface'; -$classes[] = 'Symfony\Component\HttpClient\HttpClient'; -$classes[] = 'Symfony\Component\HttpClient\UriTemplateHttpClient'; -$classes[] = 'Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner'; -$classes[] = 'Symfony\Component\Runtime\Runner\Symfony\ResponseRunner'; -$classes[] = 'Symfony\Component\Runtime\SymfonyRuntime'; -$classes[] = 'Symfony\Component\HttpKernel\HttpKernel'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\TraceableControllerResolver'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver'; -$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver'; -$classes[] = 'Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory'; -$classes[] = 'App\Kernel'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\LocaleListener'; -$classes[] = 'Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Middleware\HandleMessageMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Handler\HandlersLocator'; -$classes[] = 'Symfony\Component\Messenger\Middleware\SendMessageMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Transport\Sender\SendersLocator'; -$classes[] = 'Symfony\Component\Messenger\Middleware\TraceableMiddleware'; -$classes[] = 'Symfony\Component\Messenger\MessageBus'; -$classes[] = 'Symfony\Component\Messenger\EventListener\AddErrorDetailsStampListener'; -$classes[] = 'Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener'; -$classes[] = 'Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener'; -$classes[] = 'Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener'; -$classes[] = 'Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware'; -$classes[] = 'Symfony\Component\Messenger\Retry\MultiplierRetryStrategy'; -$classes[] = 'Symfony\Component\Messenger\EventListener\SendFailedMessageForRetryListener'; -$classes[] = 'Symfony\Component\Messenger\RoutableMessageBus'; -$classes[] = 'Symfony\Component\Messenger\Transport\TransportInterface'; -$classes[] = 'Symfony\Component\Messenger\Transport\TransportFactory'; -$classes[] = 'Symfony\Component\Messenger\Transport\Serialization\PhpSerializer'; -$classes[] = 'Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory'; -$classes[] = 'Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory'; -$classes[] = 'Symfony\Component\Messenger\Transport\Sync\SyncTransportFactory'; -$classes[] = 'Monolog\Handler\StreamHandler'; -$classes[] = 'Monolog\Handler\RotatingFileHandler'; -$classes[] = 'Monolog\Processor\PsrLogMessageProcessor'; -$classes[] = 'Symfony\Component\DependencyInjection\ParameterBag\ContainerBag'; -$classes[] = 'Symfony\Component\HttpFoundation\RequestStack'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\ResponseListener'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\Router'; -$classes[] = 'Symfony\Component\Config\ResourceCheckerConfigCacheFactory'; -$classes[] = 'Symfony\Component\Routing\RequestContext'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\RouterListener'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader'; -$classes[] = 'Symfony\Component\Config\Loader\LoaderResolver'; -$classes[] = 'Symfony\Component\Routing\Loader\XmlFileLoader'; -$classes[] = 'Symfony\Component\HttpKernel\Config\FileLocator'; -$classes[] = 'Symfony\Component\Routing\Loader\YamlFileLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\PhpFileLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\GlobFileLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\DirectoryLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\ContainerLoader'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\AttributeRouteControllerLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\AttributeDirectoryLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\AttributeFileLoader'; -$classes[] = 'Symfony\Component\Routing\Loader\Psr4DirectoryLoader'; -$classes[] = 'Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault'; -$classes[] = 'Symfony\Component\String\LazyString'; -$classes[] = 'Symfony\Component\Security\Http\Firewall\AccessListener'; -$classes[] = 'Symfony\Component\Security\Http\AccessMap'; -$classes[] = 'Symfony\Component\HttpFoundation\ChainRequestMatcher'; -$classes[] = 'Symfony\Component\HttpFoundation\RequestMatcher\PathRequestMatcher'; -$classes[] = 'Symfony\Component\HttpFoundation\RequestMatcher\IpsRequestMatcher'; -$classes[] = 'Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy'; -$classes[] = 'Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver'; -$classes[] = 'Symfony\Component\Security\Core\Authorization\AuthorizationChecker'; -$classes[] = 'Symfony\Component\Security\Http\Firewall\ChannelListener'; -$classes[] = 'Symfony\Component\Security\Http\Firewall\ContextListener'; -$classes[] = 'Symfony\Component\Security\Csrf\CsrfTokenManager'; -$classes[] = 'Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator'; -$classes[] = 'Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage'; -$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallContext'; -$classes[] = 'Symfony\Component\Security\Http\Firewall\ExceptionListener'; -$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallConfig'; -$classes[] = 'Symfony\Component\Security\Http\HttpUtils'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\CheckCredentialsListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\CsrfProtectionListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\PasswordMigratingListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\SessionStrategyListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\UserCheckerListener'; -$classes[] = 'Symfony\Component\Security\Http\EventListener\CsrfTokenClearingLogoutListener'; -$classes[] = 'Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory'; -$classes[] = 'Symfony\Bundle\SecurityBundle\Routing\LogoutRouteLoader'; -$classes[] = 'Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage'; -$classes[] = 'Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage'; -$classes[] = 'Symfony\Component\Security\Core\User\InMemoryUserChecker'; -$classes[] = 'Symfony\Component\DependencyInjection\ContainerInterface'; -$classes[] = 'Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter'; -$classes[] = 'Symfony\Component\HttpFoundation\Session\SessionFactory'; -$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorageFactory'; -$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\MetadataBag'; -$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\SessionListener'; -$classes[] = 'Symfony\Component\HttpKernel\EventListener\ValidateRequestListener'; - -$preloaded = Preloader::preload($classes); diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml deleted file mode 100644 index 8f80c46..0000000 --- a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml +++ /dev/null @@ -1,6097 +0,0 @@ - - - - /var/www/html/priceservice - dev - %env(default:kernel.environment:APP_RUNTIME_ENV)% - %env(query_string:default:container.runtime_mode:APP_RUNTIME_MODE)% - %env(bool:default::key:web:default:kernel.runtime_mode:)% - %env(not:default:kernel.runtime_mode.web:)% - %env(bool:default::key:worker:default:kernel.runtime_mode:)% - true - /var/www/html/priceservice/var/cache/dev - /var/www/html/priceservice/var/cache/dev - /var/www/html/priceservice/var/log - - Symfony\Bundle\FrameworkBundle\FrameworkBundle - Symfony\Bundle\SecurityBundle\SecurityBundle - Symfony\Bundle\MakerBundle\MakerBundle - Doctrine\Bundle\DoctrineBundle\DoctrineBundle - Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle - Symfony\Bundle\MonologBundle\MonologBundle - - - - /var/www/html/priceservice/vendor/symfony/framework-bundle - Symfony\Bundle\FrameworkBundle - - - /var/www/html/priceservice/vendor/symfony/security-bundle - Symfony\Bundle\SecurityBundle - - - /var/www/html/priceservice/vendor/symfony/maker-bundle - Symfony\Bundle\MakerBundle - - - /var/www/html/priceservice/vendor/doctrine/doctrine-bundle - Doctrine\Bundle\DoctrineBundle - - - /var/www/html/priceservice/vendor/doctrine/doctrine-migrations-bundle - Doctrine\Bundle\MigrationsBundle - - - /var/www/html/priceservice/vendor/symfony/monolog-bundle - Symfony\Bundle\MonologBundle - - - UTF-8 - App_KernelDevDebugContainer - - - 3600 - 300 - 2500 - 300 - true - - price.data.raw - price.data.diffSteps - price.data.withArticle - - - - - %env(MTO_ORM_IMPORT_ENDPOINT_URL)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)% - %env(MTO_ORM_IMPORT_USER)% - %env(MTO_ORM_IMPORT_PWD)% - - 1 - 3 - 4 - 8 - - 500 - 240 - 360 - 13 - - - - - 3600 - 300 - 2500 - 300 - true - - price.data.raw - price.data.diffSteps - price.data.withArticle - - - 3600 - 300 - 2500 - 300 - true - - price.data.raw - price.data.diffSteps - price.data.withArticle - - price.data.raw - price.data.diffSteps - price.data.withArticle - - - %env(MTO_ORM_IMPORT_ENDPOINT_URL)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)% - %env(MTO_ORM_IMPORT_USER)% - %env(MTO_ORM_IMPORT_PWD)% - - 1 - 3 - 4 - 8 - - 500 - 240 - 360 - 13 - - - - %env(MTO_ORM_IMPORT_ENDPOINT_URL)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)% - %env(MTO_ORM_IMPORT_USER)% - %env(MTO_ORM_IMPORT_PWD)% - - 1 - 3 - 4 - 8 - - 500 - 240 - 360 - 13 - - %env(MTO_ORM_IMPORT_ENDPOINT_URL)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)% - %env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)% - %env(MTO_ORM_IMPORT_USER)% - %env(MTO_ORM_IMPORT_PWD)% - - 1 - 3 - 4 - 8 - - 1 - 3 - 4 - 8 - 500 - 240 - 360 - 13 - - console.command - console.error - console.signal - console.terminate - kernel.controller_arguments - kernel.controller - kernel.response - kernel.finish_request - kernel.request - kernel.view - kernel.exception - kernel.terminate - security.authentication.success - security.interactive_login - security.switch_user - - null - /_fragment - %env(APP_SECRET)% - false - false - - en - - error_controller - %env(default::SYMFONY_IDE)% - -1 - /var/www/html/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml - localhost - http - - kernel::loadRoutes - /var/www/html/priceservice/var/cache/dev - 80 - 443 - _/var/www/html/priceservice.App_KernelDevDebugContainer - _sf2_meta - - 0 - auto - true - lax - 1 - - null - 0 - - - - ROLE_PRICES - ROLE_USER - - - null - true - migrate - true - - dev - main - - - Doctrine\DBAL\Configuration - Doctrine\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector - Symfony\Bridge\Doctrine\ContainerAwareEventManager - Doctrine\Bundle\DoctrineBundle\ConnectionFactory - Doctrine\DBAL\Event\Listeners\MysqlSessionInit - Doctrine\DBAL\Event\Listeners\OracleSessionInit - Doctrine\Bundle\DoctrineBundle\Registry - - doctrine.orm.default_entity_manager - - default - - - Symfony\Bridge\Doctrine\Types\UuidType - - - Symfony\Bridge\Doctrine\Types\UlidType - - - - doctrine.dbal.default_connection - - default - Doctrine\ORM\Configuration - Doctrine\ORM\EntityManager - Doctrine\Bundle\DoctrineBundle\ManagerConfigurator - Doctrine\Common\Cache\ArrayCache - Doctrine\Common\Cache\ApcCache - Doctrine\Common\Cache\MemcacheCache - localhost - 11211 - Memcache - Doctrine\Common\Cache\MemcachedCache - localhost - 11211 - Memcached - Doctrine\Common\Cache\RedisCache - localhost - 6379 - Redis - Doctrine\Common\Cache\XcacheCache - Doctrine\Common\Cache\WinCacheCache - Doctrine\Common\Cache\ZendDataCache - Doctrine\Persistence\Mapping\Driver\MappingDriverChain - Doctrine\ORM\Mapping\Driver\AnnotationDriver - Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver - Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver - Doctrine\ORM\Mapping\Driver\PHPDriver - Doctrine\ORM\Mapping\Driver\StaticPHPDriver - Doctrine\ORM\Mapping\Driver\AttributeDriver - Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer - Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator - Symfony\Bridge\Doctrine\Validator\DoctrineInitializer - Symfony\Bridge\Doctrine\Security\User\EntityUserProvider - Doctrine\ORM\Tools\ResolveTargetEntityListener - Doctrine\ORM\Tools\AttachEntityListenersListener - Doctrine\ORM\Mapping\DefaultNamingStrategy - Doctrine\ORM\Mapping\UnderscoreNamingStrategy - Doctrine\ORM\Mapping\DefaultQuoteStrategy - Doctrine\ORM\Mapping\AnsiQuoteStrategy - Doctrine\ORM\Mapping\DefaultTypedFieldMapper - Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver - Doctrine\ORM\Cache\DefaultCacheFactory - Doctrine\ORM\Cache\Region\DefaultRegion - Doctrine\ORM\Cache\Region\FileLockRegion - Doctrine\ORM\Cache\Logging\CacheLoggerChain - Doctrine\ORM\Cache\Logging\StatisticsCacheLogger - Doctrine\ORM\Cache\CacheConfiguration - Doctrine\ORM\Cache\RegionsConfiguration - true - true - /var/www/html/priceservice/var/cache/dev/doctrine/orm/Proxies - Proxies - null - null - true - - - - exclusive - - event - - - - inclusive - - deprecation - - - - exclusive - - event - - - null - - - - - - - - - - - - - - - - - - - - mto:prices:import - - - Importiert verschachtelte ORM-Datenstruktur in Redis. - - - - - - - - mto:prices:read - - - Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs - - - - - - - - mto:test:trigger-import - - - Dispatches a TriggerPriceImport message for testing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %mitho.import.orm.shopIds% - 13 - - - - - - - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - - controller.targeted_value_resolver - - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - - controller.argument_value_resolver - - - controller.argument_value_resolver - - - controller.targeted_value_resolver - - - - - UTF-8 - false - - - - - - - - en - - false - - - - - - - - - - - - - error_controller - - - - - - - - error_controller - - true - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - null - - true - - - - /var/www/html/priceservice/var/cache/dev/http_cache - - - - - - - - - true - /var/www/html/priceservice/var/cache/dev/App_KernelDevDebugContainerDeprecations.log - - - - - - - - - - %env(APP_SECRET)% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ?resetRequestFormats - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - ?reset - - - ?reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - disableUsageTracking - setToken - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - reset - - - - - - - - - - - - - - - - - - - - getEnv - - - - - - - - get - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - /_fragment - - - - - - - - - /_fragment - - - - - - - true - - - - UTF-8 - - /var/www/html/priceservice - - - - - - - - - - - - - - - - - - - - - - - - - - about - - - Display information about the current project - - - - - - - /var/www/html/priceservice - - assets:install - - - Install bundle's web assets under a public directory - - - - - - - - - cache:clear - - - Clear the cache - - - - - - - - cache.app - cache.system - cache.validator - cache.serializer - cache.annotations - cache.property_info - cache.messenger.restart_workers_signal - cache.rate_limiter - cache.security_expression_language - cache.security_is_granted_attribute_expression_language - cache.doctrine.orm.default.result - cache.doctrine.orm.default.query - - - cache:pool:clear - - - Clear cache pools - - - - - - - - cache:pool:prune - - - Prune cache pools - - - - - - - - cache:pool:invalidate-tags - - - Invalidate cache tags for all or a specific pool - - - - - - - - cache.app - cache.system - cache.validator - cache.serializer - cache.annotations - cache.property_info - cache.messenger.restart_workers_signal - cache.rate_limiter - cache.security_expression_language - cache.security_is_granted_attribute_expression_language - cache.doctrine.orm.default.result - cache.doctrine.orm.default.query - - - cache:pool:delete - - - Delete an item from a cache pool - - - - - - - cache.app - cache.system - cache.validator - cache.serializer - cache.annotations - cache.property_info - cache.messenger.restart_workers_signal - cache.rate_limiter - cache.security_expression_language - cache.security_is_granted_attribute_expression_language - cache.doctrine.orm.default.result - cache.doctrine.orm.default.query - - - cache:pool:list - - - List available cache pools - - - - - - - - cache:warmup - - - Warm up an empty cache - - - - - - - debug:config - - - Dump the current configuration for an extension - - - - - - - config:dump-reference - - - Dump the default configuration for an extension - - - - - - - debug:container - - - Display current services for an application - - - - - - - lint:container - - - Ensure that arguments injected into services match type declarations - - - - - - null - - - debug:autowiring - - - List classes/interfaces you can use for autowiring - - - - - - dev - /var/www/html/priceservice - - debug:dotenv - - - List all dotenv files with variables and values - - - - - - - - debug:event-dispatcher - - - Display configured listeners for an application - - - - - - - - - - - - async - - - - messenger.bus.default - - null - null - - messenger:consume - - - Consume messages - - - - - - - - async - - - messenger:setup-transports - - - Prepare the required infrastructure for the transport - - - - - - - - - - App\MessageHandler\TriggerPriceImportHandler - - - - App\MessageHandler\TriggerPriceImportHandler - - - - - - process.messenger.process_message_handler - - - - - - console.messenger.execute_command_handler - - - - - - http_client.messenger.ping_webhook_handler - - - - - - messenger.redispatch_message_handler - - - - - - - debug:messenger - - - List messages you can dispatch using the message buses - - - - - - - - messenger:stop-workers - - - Stop workers after their current message - - - - - - - - async - - - messenger:stats - - - Show the message count for one or more transports - - - - - - - - - debug:router - - - Display current routes for an application - - - - - - - - - router:match - - - Help debug routes by simulating a path info match - - - - - - - lint:yaml - - - Lint a YAML file and outputs encountered errors - - - - - - - - - secrets:set - - - Set a secret in the vault - - - - - - - - - secrets:remove - - - Remove a secret from the vault - - - - - - - - - secrets:generate-keys - - - Generate new encryption keys - - - - - - - - - secrets:list - - - List all secrets - - - - - - - - - secrets:decrypt-to-local - - - Decrypt all secrets and stores them in the local vault - - - - - - - - - secrets:encrypt-from-local - - - Encrypt all local secrets to the vault - - - - - - false - - - - - - - - - - xWD+f+4fHz - 0 - /var/www/html/priceservice/var/cache/dev/pools/app - - - - - - - - - - - - - gzFyOgrUMJ - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - PKYIZkeD-j - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - v+zM9eQ80Y - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - qpKNNpO7D8 - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - 0Ynu8ZF78j - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - cKT2cMK4Oi - 0 - /var/www/html/priceservice/var/cache/dev/pools/app - - - - - - - - - - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - - 0 - %container.build_id% - - - - - - - - - 0 - /var/www/html/priceservice/var/cache/dev/pools/app - - - - - - - - PSR-6 provider service - - 0 - - - - - Redis connection service - - 0 - - - - - - - - - Redis connection service - - 0 - - - - - - - - - Memcached connection service - - 0 - - - - - - - - - DBAL connection service - - 0 - - - - - - - - - - PDO connection service - - 0 - - - - - - - - - - 0 - - - - - - null - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6 - - - - - - - http codes - delay ms - multiplier - max delay ms - jitter - - - - - - - null - - - - - GuzzleHttp\UriTemplate\UriTemplate - expand - - - - - - - - - expand - - - - - - - - - - - null - -1 - true - true - - - - - - null - %env(bool:default::key:web:default:kernel.runtime_mode:)% - - - %env(default::SYMFONY_IDE)% - - - - true - - - - event_dispatcher.dispatcher - - - - - - - - - kernel.response - - - onKernelResponse - - 0 - - - kernel.response - - - onKernelResponse - - 0 - - - console.command - - - onConsoleCommand - - 0 - - - kernel.response - - - onKernelResponse - - 0 - - - kernel.request - - - setDefaultLocale - - 100 - - - kernel.request - - - onKernelRequest - - 16 - - - kernel.finish_request - - - onKernelFinishRequest - - 0 - - - kernel.request - - - onKernelRequest - - 256 - - - kernel.response - - - onResponse - - -255 - - - kernel.controller_arguments - - - onControllerArguments - - 0 - - - kernel.exception - - - logKernelException - - 0 - - - kernel.exception - - - onKernelException - - -128 - - - kernel.response - - - removeCspHeader - - -128 - - - kernel.controller_arguments - - - onKernelControllerArguments - - 10 - - - kernel.response - - - onKernelResponse - - -10 - - - console.error - - - onConsoleError - - -128 - - - console.terminate - - - onConsoleTerminate - - -128 - - - console.error - - - onConsoleError - - 0 - - - kernel.request - - - configure - - 2048 - - - console.command - - - configure - - 2048 - - - kernel.request - - - onKernelRequest - - 32 - - - kernel.finish_request - - - onKernelFinishRequest - - 0 - - - kernel.exception - - - onKernelException - - -64 - - - kernel.request - - - onKernelRequest - - 128 - - - kernel.response - - - onKernelResponse - - -1000 - - - Symfony\Component\Messenger\Event\WorkerMessageFailedEvent - - - onMessageFailed - - 100 - - - Symfony\Component\Messenger\Event\WorkerMessageFailedEvent - - - onMessageFailed - - 200 - - - Symfony\Component\Messenger\Event\WorkerRunningEvent - - - onWorkerRunning - - 100 - - - Symfony\Component\Messenger\Event\WorkerStartedEvent - - - onWorkerStarted - - 0 - - - Symfony\Component\Messenger\Event\WorkerRunningEvent - - - onWorkerRunning - - 0 - - - Symfony\Component\Messenger\Event\WorkerMessageFailedEvent - - - onMessageFailed - - 0 - - - Symfony\Component\Messenger\Event\WorkerRunningEvent - - - onWorkerRunning - - 0 - - - kernel.controller_arguments - - - onKernelControllerArguments - - 20 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 0 - - - Symfony\Component\Security\Http\Event\LoginSuccessEvent - - - onLoginSuccess - - 0 - - - debug.security.authorization.vote - - - onVoterVote - - 0 - - - kernel.request - - - configureLogoutUrlGenerator - - 8 - - - kernel.request - - - onKernelRequest - - 8 - - - kernel.finish_request - - - onKernelFinishRequest - - 0 - - - console.error - - - onConsoleError - - 0 - - - console.terminate - - - onConsoleTerminate - - 0 - - - Symfony\Component\Messenger\Event\WorkerMessageHandledEvent - - - onWorkerMessageHandled - - 0 - - - Symfony\Component\Messenger\Event\WorkerMessageFailedEvent - - - onWorkerMessageFailed - - 0 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 512 - - - Symfony\Component\Security\Http\Event\LogoutEvent - - - onLogout - - 0 - - - - - - - - - - - - - - - - - - - - - - - - %env(bool:default::key:web:default:kernel.runtime_mode:)% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dev - - - - - dev - - - - - dev - - - - - dev - - - - - dev - - - - - dev - - - - dev - - - - - - - - - - - - - - - - - - - true - - - - - - - - kernel::loadRoutes - - /var/www/html/priceservice/var/cache/dev - true - Symfony\Component\Routing\Generator\CompiledUrlGenerator - Symfony\Component\Routing\Generator\Dumper\CompiledUrlGeneratorDumper - Symfony\Bundle\FrameworkBundle\Routing\RedirectableCompiledUrlMatcher - Symfony\Component\Routing\Matcher\Dumper\CompiledUrlMatcherDumper - true - service - - - - - en - - - - - - - localhost - http - 80 - 443 - - - - - - - - - - - - - - - - /var/www/html/priceservice - true - - - - - - - - - - - - - - - - null - - - 3 - 2 - - - - - - - /var/www/html/priceservice/config/secrets/%env(default:kernel.environment:APP_RUNTIME_ENV)% - - - - - base64:default::SYMFONY_DECRYPTION_SECRET - - - /var/www/html/priceservice/.env.dev.local - - - - - - - - - - - - - - - - - - - - - - - - - - - List of stores - - - - - - Store - - - - - - - %env(LOCK_DSN)% - - - - - - - - - - - - - Lhws3QS5KG - 0 - - - - - - - config - storage - null - - - - fixed_window - 1 - 10 seconds - price_import - - - - - - - - - - 7 - 7 - 5 - Symfony\Component\Uid\UuidV4 - null - null - - - Please set the "framework.uid.name_based_uuid_namespace" configuration option to use the "name_based_uuid.factory" service - - - - - - - - - - redis://localhost - - true - - - - memcached://localhost - - true - - - - - - - - 0 - false - - - - - - - onSessionUsage - - - - %session.storage.options% - - - - _sf2_meta - 0 - - - true - - - - - - _sf2_meta - 0 - - - true - - - /var/www/html/priceservice/var/cache/dev/sessions - MOCKSESSID - - - _sf2_meta - 0 - - - - - - - - - - - - null - - - - - A string or a connection object - - - - - - - - - - true - %session.storage.options% - - - - - - - - - - - - - - - - - - - async - - - - - - - - - - - - - - - json - - - - - - bus handler resolver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - max retries - delay ms - multiplier - max delay ms - - - - - - - - - - - - - - - - - - - - - - - - null - - The "%service_id%" service is deprecated, use the "Symfony\Component\Console\Command\SignalableCommandInterface" instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %env(MESSENGER_TRANSPORT_DSN)% - - messages - 100 - async - - - - - - 3 - 1000 - 2 - 0 - - - - - - - - - - - - false - false - - - - - - - - - - - - null - null - - - - controller.argument_value_resolver - - - - controller.argument_value_resolver - - - - - migrate - - - - none - - - - - - - - - - - - - %security.role_hierarchy.roles% - - - - - - - - - - - - - - - - - - null - null - - - - - - LogoutListener - FirewallConfig - - - - - LogoutListener - FirewallConfig - - - - name - user_checker - request_matcher - false - false - null - null - null - null - null - - null - null - - - - - - - - - - security.logout_uris - - - firewall - - - - security.ldap.ldap - base dn - search dn - search password - default_roles - uid key - filter - password_attribute - extra_fields (email etc) - - - - - - {^https?://%%s$}i - {^https://%%s$}i - - - - - - - - - - vJcW+E-A9I - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - - null - - - - - NPkLy80NR+ - 0 - %container.build_id% - /var/www/html/priceservice/var/cache/dev/pools/system - - - - - - - auto - - sha512 - 40 - false - true - 5000 - null - null - null - - - - - - - - - - - - - - - - - - - - - - - - - - PUBLIC_ACCESS - - null - - - - - ROLE_NO_ACCESS - - null - - - - - - - Provider Key - - - - - - enableUsageTracking - - - - - - event dispatcher - - - - - - - - target url - - - - - - - - Provider-shared Key - - - - - - - - The custom success handler service - - Provider-shared Key - - - - - - - - The custom failure handler service - - - - - - - - - - - - - - - Provider-shared Key - - null - - - false - - - - - User Provider - User Checker - Provider Key - - - _switch_user - ROLE_ALLOWED_TO_SWITCH - - false - - Target Route - - - - - - - false - - - - - - - - - - authenticators - - - provider key - - true - true - required badges - - - - - - - - - - - - - - authenticator manager - - - - - - - user provider - - - - - - - user checker - - - - - - - request rate limiter - - - - realm name - user provider - - - - - user provider - authentication success handler - authentication failure handler - options - - - - user provider - authentication success handler - authentication failure handler - options - - - - - - - - user provider - - firewall name - user key - credentials key - - credentials user identifier - - - - user provider - - firewall name - user key - - - - - - - access token handler - access token extractor - null - null - null - null - - - access token extractors - - - http client options - - - - http client - - claim - - - signature algorithm - signature key - audience - issuers - sub - - - - - signature key - - - signature algorithm - - - - ES256 - - - - ES384 - - - - ES512 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %security.firewalls% - - - - - - - false - - debug:firewall - - - Display information about your security firewall(s) - - - - dev - security.user_checker - null - true - false - null - dev - null - null - null - - null - null - - - - - - - - - - dev - - - - - - enableUsageTracking - - - - - - - - - - - - dev - - true - true - - - - - - - - - - - - - - - - dev - null - null - null - - false - - - - - - - - - - null - - - - main - security.user_checker - null - true - false - null - main - null - null - null - - null - null - - - - - - - - - - main - - - - - - enableUsageTracking - - - - - - - - - - - - main - - true - true - - - - - - - - - - - - - - - - main - null - null - null - - false - - - - - - - - - - null - - - - - - - - - - - ^/api/prices - - - - %env(MTO_ALLOWED_API_IPS)% - - - - - - - - - - - - - - - - - - - Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface - - - security:hash-password - - - Hash a user password - - - - - - - /var/www/html/priceservice - null - - - App - - - - - - - - - - - - - - - - App\Entity - - - - - App\Entity - - - - - - - %env(default::string:MAKER_PHP_CS_FIXER_BINARY_PATH)% - %env(default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH)% - - - - - - - - - - App - null - - - - - - - - - - - - - - - - - true - false - App - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - null - - - - - - - - - - - - - - The "%service_id%" service is deprecated, use "maker.maker.make_test" instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The "%service_id%" service is deprecated, use "maker.maker.make_listener" instead. - - - - - - - - - - The "%service_id%" service is deprecated, use "maker.maker.make_test" instead. - - - - - - - - - - - - - - - - - - /var/www/html/priceservice - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - %doctrine.dbal.connection_factory.types% - - - - - ibm_db2 - pdo_sqlsrv - pdo_mysql - pdo_mysql - pdo_pgsql - pdo_pgsql - pdo_pgsql - pdo_sqlite - pdo_sqlite - - - - - - - - - - - - - %doctrine.connections% - %doctrine.entity_managers% - default - default - - - - - - - - - - - - - - doctrine:database:create - - - - - - - - doctrine:database:drop - - - - - - - - doctrine:query:sql - - - - - - - - dbal:run-sql - - - - - - - - - - - - - - - - - - - - - - - postGenerateSchema - - doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener - - - - postGenerateSchema - - doctrine.orm.listeners.doctrine_token_provider_schema_listener - - - - postGenerateSchema - - doctrine.orm.listeners.pdo_session_handler_schema_listener - - - - postGenerateSchema - - doctrine.orm.listeners.lock_store_schema_listener - - - - loadClassMetadata - - doctrine.orm.default_listeners.attach_entity_listeners - - - - - - %env(resolve:DATABASE_URL)% - utf8mb4 - true - pdo_mysql - 600 - localhost - null - root - null - - 8.0 - - utf8mb4 - utf8mb4_unicode_ci - - - - null - - - - - - - - - %doctrine.connections% - %doctrine.entity_managers% - default - default - - - - - - - - - - - - - default - - - - - - - - - - - - - - - - - - - null - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - true - - - - - - - - - - - - - - - - - controller.argument_value_resolver - - null - - - null - null - null - - null - null - null - null - false - - - - - - - - - - doctrine:cache:clear-metadata - - - - - - - - doctrine:cache:clear-query - - - - - - - - doctrine:cache:clear-result - - - - - - - - doctrine:cache:clear-collection-region - - - - - - - - doctrine:schema:create - - - - - - - - doctrine:schema:drop - - - - - - - - doctrine:cache:clear-entity-region - - - - - - - - doctrine:mapping:info - - - - - - - - doctrine:cache:clear-query-region - - - - - - - - doctrine:query:dql - - - - - - - - doctrine:schema:update - - - - - - - - doctrine:schema:validate - - - - - - - App\Entity - - - - - - - - - - - - - - - - /var/www/html/priceservice/var/cache/dev/doctrine/orm/Proxies - - - Proxies - - - true - - - - - - Doctrine\Bundle\DoctrineBundle\Mapping\ClassMetadataFactory - - - Doctrine\ORM\EntityRepository - - - - - - - - - - - - - - - true - - - - - - - - - - - /var/www/html/priceservice/src/Entity - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Doctrine\Migrations\Version\MigrationFactory - - - - - - - - - - - - - - - - - DoctrineMigrations - /var/www/html/priceservice/migrations - - - false - - - true - - - true - - - - - - - - - - - - - - - doctrine:migrations:diff - - doctrine:migrations:diff - - - Generate a migration by comparing your current database to your mapping information. - - - - - - - doctrine:migrations:sync-metadata-storage - - doctrine:migrations:sync-metadata-storage - - - Ensures that the metadata storage is at the latest version. - - - - - - - doctrine:migrations:versions - - doctrine:migrations:list - - - Display a list of all available migrations and their status. - - - - - - - doctrine:migrations:current - - doctrine:migrations:current - - - Outputs the current version - - - - - - - doctrine:migrations:dump-schema - - doctrine:migrations:dump-schema - - - Dump the schema for your database to a migration. - - - - - - - doctrine:migrations:execute - - doctrine:migrations:execute - - - Execute one or more migration versions up or down manually. - - - - - - - doctrine:migrations:generate - - doctrine:migrations:generate - - - Generate a blank migration class. - - - - - - - doctrine:migrations:latest - - doctrine:migrations:latest - - - Outputs the latest version - - - - - - - doctrine:migrations:migrate - - doctrine:migrations:migrate - - - Execute a migration to a specified version or the latest available version. - - - - - - - doctrine:migrations:rollup - - doctrine:migrations:rollup - - - Rollup migrations by deleting all tracked versions and insert the one version that exists. - - - - - - - doctrine:migrations:status - - doctrine:migrations:status - - - View the status of a set of migrations. - - - - - - - doctrine:migrations:up-to-date - - doctrine:migrations:up-to-date - - - Tells you if your schema is up-to-date. - - - - - - - doctrine:migrations:version - - doctrine:migrations:version - - - Manually add and delete migration versions from the version table. - - - - - - - doctrine_migration_versions - - - - app - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - app - - - - - - - - /var/www/html/priceservice/var/log/dev.log - 0 - error - true - null - false - - - - - {filename}-{date} - Y-m-d - - - - - /var/www/html/priceservice/var/log/dev.log - debug - true - null - false - - - - - - - /var/www/html/priceservice/var/log/deprecations.log - info - true - null - false - - - - - - - php://stdout - debug - true - null - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %env(REDIS_CACHE_URL)% - - true - - - - - - - - - - - make:auth - - - Create a Guard authenticator of different flavors - - - - - - - - - - - make:command - - - Create a new console command class - - - - - - - - - - - make:twig-component - - - Create a Twig (or Live) component - - - - - - - - - - - make:controller - - - Create a new controller class - - - - - - - - - - - make:crud - - - Create CRUD for Doctrine entity class - - - - - - - - - - - make:docker:database - - - Add a database container to your compose.yaml file - - - - - - - - - - - make:entity - - - Create or update a Doctrine entity class, and optionally an API Platform resource - - - - - - - - - - - make:fixtures - - - Create a new class to load Doctrine fixtures - - - - - - - - - - - make:form - - - Create a new form class - - - - - - - - - - - - make:listener - - - - make:subscriber - - - - Creates a new event subscriber class or a new event listener class - - - - - - - - - - - make:message - - - Create a new message and handler - - - - - - - - - - - make:messenger-middleware - - - Create a new messenger middleware - - - - - - - - - - - make:registration-form - - - Create a new registration form system - - - - - - - - - - - make:reset-password - - - Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle - - - - - - - - - - - make:schedule - - - Create a scheduler component - - - - - - - - - - - make:serializer:encoder - - - Create a new serializer encoder class - - - - - - - - - - - make:serializer:normalizer - - - Create a new serializer normalizer class - - - - - - - - - - - make:twig-extension - - - Create a new Twig extension with its runtime class - - - - - - - - - - - - - make:test - - - - make:unit-test - make:functional-test - - - - Create a new test class - - - - - - - - - - - make:validator - - - Create a new validator and constraint class - - - - - - - - - - - make:voter - - - Create a new security voter class - - - - - - - - - - - make:user - - - Create a new security user class - - - - - - - - - - - make:migration - - - Create a new migration based on database changes - - - - - - - - - - - make:stimulus-controller - - - Create a new Stimulus controller - - - - - - - - - - - make:security:form-login - - - Generate the code needed for the form_login authenticator - - - - - - - - - - - make:security:custom - - - Create a custom security authenticator. - - - - - - - - - - - make:webhook - - - Create a new Webhook - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - messenger.bus.default - - - messenger.bus.default - - - - - true - - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - - - - request - - - - - - - - - - - - console - - - - - - - - - - - - messenger - - - - - - - - - - - - cache - - - - - - - - - - - - http_client - - - - - - - - - - - - php - - - - - - - - - - - - event - - - - - - router - - - - - - - - - - - - lock - - - - - - - - - - - - security - - - - - - - - - - - - doctrine - - - - - - - - - - - - deprecation - - - - - - - - - - - - - - - - event_dispatcher.dispatcher - - - - - - - Symfony\Component\Security\Http\Event\LoginSuccessEvent - - - onSuccessfulLogin - - 0 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - preCheckCredentials - - 256 - - - security.authentication.success - - - postCheckCredentials - - 256 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 0 - - - Symfony\Component\Security\Http\Event\LoginSuccessEvent - - - onLoginSuccess - - 0 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 512 - - - Symfony\Component\Security\Http\Event\LogoutEvent - - - onLogout - - 0 - - - - event_dispatcher.dispatcher - - - - - - - Symfony\Component\Security\Http\Event\LoginSuccessEvent - - - onSuccessfulLogin - - 0 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - preCheckCredentials - - 256 - - - security.authentication.success - - - postCheckCredentials - - 256 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 0 - - - Symfony\Component\Security\Http\Event\LoginSuccessEvent - - - onLoginSuccess - - 0 - - - Symfony\Component\Security\Http\Event\CheckPassportEvent - - - checkPassport - - 512 - - - Symfony\Component\Security\Http\Event\LogoutEvent - - - onLogout - - 0 - - - - - - - - - - - - - - - - - App\Controller\Api\PricesController - - - - - - App\Controller\Trigger\PriceTriggerController - - - - - - - - - - - - router.default - - - - - - - - - - - - router.cache_warmer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Symfony\Bundle\FrameworkBundle\Controller\AbstractController - Symfony\Bundle\FrameworkBundle\Controller\TemplateController - - - - - App\Kernel - App\Controller\Api\PricesController - App\Controller\Trigger\PriceTriggerController - Doctrine\Bundle\DoctrineBundle\Controller\ProfilerController - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - - - - - - - - - - - - - - App\Entity - - - - - - - - - mto:prices:import - - Importiert verschachtelte ORM-Datenstruktur in Redis. - false - - - - mto:prices:read - - Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs - false - - - - mto:test:trigger-import - - Dispatches a TriggerPriceImport message for testing - false - - - - about - - Display information about the current project - false - - - - assets:install - - Install bundle's web assets under a public directory - false - - - - cache:clear - - Clear the cache - false - - - - cache:pool:clear - - Clear cache pools - false - - - - cache:pool:prune - - Prune cache pools - false - - - - cache:pool:invalidate-tags - - Invalidate cache tags for all or a specific pool - false - - - - cache:pool:delete - - Delete an item from a cache pool - false - - - - cache:pool:list - - List available cache pools - false - - - - cache:warmup - - Warm up an empty cache - false - - - - debug:config - - Dump the current configuration for an extension - false - - - - config:dump-reference - - Dump the default configuration for an extension - false - - - - debug:container - - Display current services for an application - false - - - - lint:container - - Ensure that arguments injected into services match type declarations - false - - - - debug:autowiring - - List classes/interfaces you can use for autowiring - false - - - - debug:dotenv - - List all dotenv files with variables and values - false - - - - debug:event-dispatcher - - Display configured listeners for an application - false - - - - messenger:consume - - Consume messages - false - - - - messenger:setup-transports - - Prepare the required infrastructure for the transport - false - - - - debug:messenger - - List messages you can dispatch using the message buses - false - - - - messenger:stop-workers - - Stop workers after their current message - false - - - - messenger:stats - - Show the message count for one or more transports - false - - - - debug:router - - Display current routes for an application - false - - - - router:match - - Help debug routes by simulating a path info match - false - - - - lint:yaml - - Lint a YAML file and outputs encountered errors - false - - - - secrets:set - - Set a secret in the vault - false - - - - secrets:remove - - Remove a secret from the vault - false - - - - secrets:generate-keys - - Generate new encryption keys - false - - - - secrets:list - - List all secrets - false - - - - secrets:decrypt-to-local - - Decrypt all secrets and stores them in the local vault - false - - - - secrets:encrypt-from-local - - Encrypt all local secrets to the vault - false - - - - debug:firewall - - Display information about your security firewall(s) - false - - - - security:hash-password - - Hash a user password - false - - - - doctrine:migrations:diff - - Generate a migration by comparing your current database to your mapping information. - false - - - - doctrine:migrations:sync-metadata-storage - - Ensures that the metadata storage is at the latest version. - false - - - - doctrine:migrations:list - - Display a list of all available migrations and their status. - false - - - - doctrine:migrations:current - - Outputs the current version - false - - - - doctrine:migrations:dump-schema - - Dump the schema for your database to a migration. - false - - - - doctrine:migrations:execute - - Execute one or more migration versions up or down manually. - false - - - - doctrine:migrations:generate - - Generate a blank migration class. - false - - - - doctrine:migrations:latest - - Outputs the latest version - false - - - - doctrine:migrations:migrate - - Execute a migration to a specified version or the latest available version. - false - - - - doctrine:migrations:rollup - - Rollup migrations by deleting all tracked versions and insert the one version that exists. - false - - - - doctrine:migrations:status - - View the status of a set of migrations. - false - - - - doctrine:migrations:up-to-date - - Tells you if your schema is up-to-date. - false - - - - doctrine:migrations:version - - Manually add and delete migration versions from the version table. - false - - - - make:auth - - Create a Guard authenticator of different flavors - false - - - - make:command - - Create a new console command class - false - - - - make:twig-component - - Create a Twig (or Live) component - false - - - - make:controller - - Create a new controller class - false - - - - make:crud - - Create CRUD for Doctrine entity class - false - - - - make:docker:database - - Add a database container to your compose.yaml file - false - - - - make:entity - - Create or update a Doctrine entity class, and optionally an API Platform resource - false - - - - make:fixtures - - Create a new class to load Doctrine fixtures - false - - - - make:form - - Create a new form class - false - - - - make:listener - - make:subscriber - - Creates a new event subscriber class or a new event listener class - false - - - - make:message - - Create a new message and handler - false - - - - make:messenger-middleware - - Create a new messenger middleware - false - - - - make:registration-form - - Create a new registration form system - false - - - - make:reset-password - - Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle - false - - - - make:schedule - - Create a scheduler component - false - - - - make:serializer:encoder - - Create a new serializer encoder class - false - - - - make:serializer:normalizer - - Create a new serializer normalizer class - false - - - - make:twig-extension - - Create a new Twig extension with its runtime class - false - - - - make:test - - make:unit-test - make:functional-test - - Create a new test class - false - - - - make:validator - - Create a new validator and constraint class - false - - - - make:voter - - Create a new security voter class - false - - - - make:user - - Create a new security user class - false - - - - make:migration - - Create a new migration based on database changes - false - - - - make:stimulus-controller - - Create a new Stimulus controller - false - - - - make:security:form-login - - Generate the code needed for the form_login authenticator - false - - - - make:security:custom - - Create a custom security authenticator. - false - - - - make:webhook - - Create a new Webhook - false - - - - - - - App\Command\RedisImportCommand - App\Command\RedisReadCommand - App\Command\TriggerTestCommand - console.command.about - console.command.assets_install - console.command.cache_clear - console.command.cache_pool_clear - console.command.cache_pool_prune - console.command.cache_pool_invalidate_tags - console.command.cache_pool_delete - console.command.cache_pool_list - console.command.cache_warmup - console.command.config_debug - console.command.config_dump_reference - console.command.container_debug - console.command.container_lint - console.command.debug_autowiring - console.command.dotenv_debug - console.command.event_dispatcher_debug - console.command.messenger_consume_messages - console.command.messenger_setup_transports - console.command.messenger_debug - console.command.messenger_stop_workers - console.command.messenger_stats - console.command.router_debug - console.command.router_match - console.command.yaml_lint - console.command.secrets_set - console.command.secrets_remove - console.command.secrets_generate_key - console.command.secrets_list - console.command.secrets_decrypt_to_local - console.command.secrets_encrypt_from_local - security.command.debug_firewall - security.command.user_password_hash - doctrine.database_create_command - doctrine.database_drop_command - doctrine.query_sql_command - Doctrine\DBAL\Tools\Console\Command\RunSqlCommand - doctrine.cache_clear_metadata_command - doctrine.cache_clear_query_cache_command - doctrine.cache_clear_result_command - doctrine.cache_collection_region_command - doctrine.schema_create_command - doctrine.schema_drop_command - doctrine.clear_entity_region_command - doctrine.mapping_info_command - doctrine.clear_query_region_command - doctrine.query_dql_command - doctrine.schema_update_command - doctrine.schema_validate_command - doctrine_migrations.diff_command - doctrine_migrations.sync_metadata_command - doctrine_migrations.versions_command - doctrine_migrations.current_command - doctrine_migrations.dump_schema_command - doctrine_migrations.execute_command - doctrine_migrations.generate_command - doctrine_migrations.latest_command - doctrine_migrations.migrate_command - doctrine_migrations.rollup_command - doctrine_migrations.status_command - doctrine_migrations.up_to_date_command - doctrine_migrations.version_command - maker.auto_command.make_auth - maker.auto_command.make_command - maker.auto_command.make_twig_component - maker.auto_command.make_controller - maker.auto_command.make_crud - maker.auto_command.make_docker_database - maker.auto_command.make_entity - maker.auto_command.make_fixtures - maker.auto_command.make_form - maker.auto_command.make_listener - maker.auto_command.make_listener - maker.auto_command.make_message - maker.auto_command.make_messenger_middleware - maker.auto_command.make_registration_form - maker.auto_command.make_reset_password - maker.auto_command.make_schedule - maker.auto_command.make_serializer_encoder - maker.auto_command.make_serializer_normalizer - maker.auto_command.make_twig_extension - maker.auto_command.make_test - maker.auto_command.make_test - maker.auto_command.make_test - maker.auto_command.make_validator - maker.auto_command.make_voter - maker.auto_command.make_user - maker.auto_command.make_migration - maker.auto_command.make_stimulus_controller - maker.auto_command.make_security_form_login - maker.auto_command.make_security_custom - maker.auto_command.make_webhook - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The "%alias_id%" alias is deprecated, use "Symfony\Component\HttpFoundation\UriSigner" instead. - - - - - - - - - - - - - - - - - - - The "%alias_id%" service is deprecated, use the "routing.loader.attribute" service instead. - - - The "%alias_id%" service is deprecated, use the "routing.loader.attribute.directory" service instead. - - - The "%alias_id%" service is deprecated, use the "routing.loader.attribute.file" service instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The "%alias_id%" service is deprecated, use the "Symfony\Component\Console\Command\SignalableCommandInterface" instead. - - - - - - - - The "%alias_id%" service alias is deprecated, use "Symfony\Bundle\SecurityBundle\Security" instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml.meta b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainer.xml.meta deleted file mode 100644 index ed4f88e440c33813285b53c8cd71e476bd6d4357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15864 zcmd5@SyS6c5aze=1EOmV**vj?9JM(ppmtwem73EiktOd)=1404eS1c-5m+`hv1~nr zfFx_${dG@wf8E1|*dP8%hW^RdAtJ-$tA~lsvxm`HKAGm3%1Zbx)5&;rsfv7Ngc`j| zQZ@hMco+bUN zs}#6+;A57Q38?$0GW*dW>6->gs~1}f%Tu*VfAwvMRTGxU&P*?8_%7|8;$WxRe*4?= zju-b%YlA=4T6wb{PaX74briCl?G5fzJ|06Nv1hvrY+Bo|Y~_#K6|$N0dkDEUY3Xdc zYo;oJO|1K+z*m{y-0nbuZ)cOK+LQKdp5H6&5y<_Qo%c$aI{Rpiw2!y^rTv&)@5%?-YIaxRM#)*K zR+j$r2R>WfW#fIRuYYw!>;AUTN~_y0?sjH!Phvvv3W)X`hUbNA^1MGmELumx6$k9iuT9!}7WiFMrLk2)RyJ3OH$(hKFL2Nc> zu;L|08fJ0aoPis|A?tClb0~GI)VowNDL%qHjVbF(RVD`m3NZW-Z#4X{N+@CHKE6P3 zw1X58>@BC$shuaXJz5wedcLq5w}AX@g8`ydE8ei;#w`XB5OXv@6bUVSMPwWb>HCBS zeqgU*>Q_T7j=$;~ei%x;HGZ^&-=$(OgW>er5qcq5!V-FoWp|7n^F_pw@3SBf@RJP! z&4eVOuVd}=2v^uS4y|w4ZQ*;@CK&@`cCCs%``+@xJH`(qOr#$Z#1$YZNIak@q7p>` z))*67;pa%a-r=`C1XsS7mBx;Y8SiwOco%L&5lEH#Vn;3*L1t6A;C!JGtUh|a`mT|b zgGh=P3#mDY1MMpo;!qN%1Y8rWLef!-eM6FNg=Fm$6`J)QonvY#mS>pOOINrq$+2T} zHH`y_<5()BB1S1AL=u894Rs)C6gYH|qd@zH?glZ^^6NnJcvmp=`6VwCod`#HcI2S* z7+EhndcN$AvEw4PSq%+2BO+!b5encwl9P!#W>^6vzbL?slaJyWUrgnth zJU^YIx4iJq@sm9CMZh9N0>n6iUww$1v7$UCk*M%NdhO$6nX-B_QBFsuWG7}a&-a{!kG*fE|lVwzGF2o=UG4mm}fQ$O@M zMo3Xvdtg7=8_?N?9#|#+O%kVLIKlRt{#dQwNZlz-^>)K=PnoTSltM3@eC?LMi6{k!SVLed_MdC0(ArA*3 zu94ilefB=h`6HD|+#$rxsMO{skETZH3>)y2PuE~2L`yiPSPWqe z_ZD!cZQo)n=U*hZK&o;$NCu(+*SYOWnmno0p;kWUSczC+9QgqvjAK8*5w&!U71TC{ zwp~N#=KNlyvjP}zE30qc^9pE`eTh`^!a-EA-0tLH1ln7Vly{z$&>op7jvvp7{-_hZu6Q$sK5UQ^bDlU diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerCompiler.log b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerCompiler.log deleted file mode 100644 index 8ae9cf0..0000000 --- a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerCompiler.log +++ /dev/null @@ -1,645 +0,0 @@ -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand" (parent: .abstract.instanceof.App\Command\RedisImportCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\RedisImportCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand" (parent: .abstract.instanceof.App\Command\RedisReadCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\RedisReadCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand" (parent: .abstract.instanceof.App\Command\TriggerTestCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\TriggerTestCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController" (parent: .abstract.instanceof.App\Controller\Api\PricesController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController" (parent: .instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Controller\Api\PricesController" (parent: .instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController" (parent: .abstract.instanceof.App\Controller\Trigger\PriceTriggerController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController" (parent: .instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Controller\Trigger\PriceTriggerController" (parent: .instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler" (parent: .abstract.instanceof.App\MessageHandler\TriggerPriceImportHandler). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\MessageHandler\TriggerPriceImportHandler" (parent: .instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.app" (parent: cache.adapter.filesystem). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.system" (parent: cache.adapter.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.validator" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.serializer" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.annotations" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.property_info" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.messenger.restart_workers_signal" (parent: cache.app). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.system_clearer" (parent: cache.default_clearer). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.global_clearer" (parent: cache.default_clearer). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "secrets.decryption_key" (parent: container.env). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "lock.default.factory" (parent: lock.factory.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.rate_limiter" (parent: cache.adapter.redis). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "limiter.price_import" (parent: limiter). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.retry.multiplier_retry_strategy.async" (parent: messenger.retry.abstract_multiplier_retry_strategy). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.security_expression_language" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.security_is_granted_attribute_expression_language" (parent: cache.system). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES256" (parent: security.access_token_handler.oidc.signature). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES384" (parent: security.access_token_handler.oidc.signature). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES512" (parent: security.access_token_handler.oidc.signature). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.config.dev" (parent: security.firewall.config). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.context_listener.0" (parent: security.context_listener). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.session.dev" (parent: security.listener.session). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.authenticator.manager.dev" (parent: security.authenticator.manager). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.authenticator.dev" (parent: security.firewall.authenticator). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.user_checker.dev" (parent: security.listener.user_checker). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.exception_listener.dev" (parent: security.exception_listener). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.context.dev" (parent: security.firewall.context). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.config.main" (parent: security.firewall.config). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.context_listener.1" (parent: security.context_listener). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.session.main" (parent: security.listener.session). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.authenticator.manager.main" (parent: security.authenticator.manager). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.authenticator.main" (parent: security.firewall.authenticator). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.user_checker.main" (parent: security.listener.user_checker). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.exception_listener.main" (parent: security.exception_listener). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.context.main" (parent: security.firewall.context). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection.configuration" (parent: doctrine.dbal.connection.configuration). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection.event_manager" (parent: doctrine.dbal.connection.event_manager). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection" (parent: doctrine.dbal.connection). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_configuration" (parent: doctrine.orm.configuration). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_manager_configurator" (parent: doctrine.orm.manager_configurator.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_entity_manager" (parent: doctrine.orm.entity_manager.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_auth" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_command" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_twig_component" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_controller" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_crud" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_docker_database" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_entity" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_fixtures" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_form" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_listener" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_message" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_messenger_middleware" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_registration_form" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_reset_password" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_schedule" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_serializer_encoder" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_serializer_normalizer" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_twig_extension" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_test" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_validator" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_voter" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_user" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_migration" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_stimulus_controller" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_security_form_login" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_security_custom" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_webhook" (parent: maker.auto_command.abstract). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.traceable" (parent: messenger.middleware.traceable). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.add_bus_name_stamp_middleware" (parent: messenger.middleware.add_bus_name_stamp_middleware). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.send_message" (parent: messenger.middleware.send_message). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.handle_message" (parent: messenger.middleware.handle_message). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_schema_asset_filter_manager" (parent: doctrine.dbal.schema_asset_filter_manager). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.logging_middleware.default" (parent: doctrine.dbal.logging_middleware). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.debug_middleware.default" (parent: doctrine.dbal.debug_middleware). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.request" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.console" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.messenger" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.cache" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.http_client" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.php" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.event" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.router" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.lock" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.security" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.doctrine" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.deprecation" (parent: monolog.logger_prototype). -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\EventDispatcher\EventDispatcherInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\EventDispatcher\EventDispatcherInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\EventDispatcher\EventDispatcherInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\HttpKernelInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\RequestStack"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\HttpCache\StoreInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\UrlHelper"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\KernelInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Filesystem\Filesystem"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\Config\FileLocator"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\UriSigner"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\UriSigner"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ReverseContainer"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\String\Slugger\SluggerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Clock\ClockInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Clock\ClockInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\Fragment\FragmentUriGeneratorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "error_renderer.html"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "error_renderer"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Container\ContainerInterface $parameter_bag"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Container\ContainerInterface $parameterBag"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Cache\CacheItemPoolInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\CacheInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\TagAwareCacheInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\HttpClient\HttpClientInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Stopwatch\Stopwatch"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation.directory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation.file"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RouterInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\Generator\UrlGeneratorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\Matcher\UrlMatcherInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RequestContextAwareInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RequestContext"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyAccess\PropertyAccessorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyAccessExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyDescriptionExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyListExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyInitializableExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "lock.factory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Lock\LockFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Component\RateLimiter\RateLimiterFactory $price_import.limiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\RateLimiter\RateLimiterFactory $priceImportLimiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\UlidFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\UuidFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\NameBasedUuidFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\RandomBasedUuidFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\TimeBasedUuidFactory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_redis_provider"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_memcached_provider"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_doctrine_dbal_provider"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Contracts\Cache\TagAwareCacheInterface $cache.rate_limiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\TagAwareCacheInterface $cacheRateLimiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Contracts\Cache\CacheInterface $cache.rate_limiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\CacheInterface $cacheRateLimiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Cache\CacheItemPoolInterface $cache.rate_limiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Cache\CacheItemPoolInterface $cacheRateLimiter"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "SessionHandlerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "session.storage.factory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "session.handler"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\TokenGenerator\TokenGeneratorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\TokenStorage\TokenStorageInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\CsrfTokenManagerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Messenger\Transport\Serialization\SerializerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "messenger.default_serializer"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "messenger.listener.stop_worker_on_sigterm_signal_listener"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Messenger\MessageBusInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Bundle\SecurityBundle\Security"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Security"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Authentication\AuthenticationUtils"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Role\RoleHierarchyInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Firewall"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\FirewallMapInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\HttpUtils"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.password_hasher"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.authentication.session_strategy.dev"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.user_checker.dev"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.authentication.session_strategy.main"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.user_checker.main"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.context_locator"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\User\UserCheckerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\DBAL\Connection"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\Persistence\ManagerRegistry"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\Common\Persistence\ManagerRegistry"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.dbal.event_manager"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Doctrine\DBAL\Connection $default.connection"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\DBAL\Connection $defaultConnection"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\ORM\EntityManagerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_metadata_cache"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_result_cache"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_query_cache"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Doctrine\ORM\EntityManagerInterface $default.entity_manager"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\ORM\EntityManagerInterface $defaultEntityManager"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_entity_manager.event_manager"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.migrations.metadata_storage"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "logger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "argument_resolver.controller_locator"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.id_generator_locator"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $requestLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $consoleLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $messengerLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $cacheLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Log\LoggerInterface $http_clientLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $httpClientLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $phpLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $eventLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $routerLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $lockLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $securityLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $doctrineLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $deprecationLogger"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.6DxUFLS"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.27KOu4H"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.bJ.4HC5"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.L.EDYUC"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.LMuqDDe"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.jUv.zyj"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "http_client"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "controller_resolver"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "argument_resolver"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.access.decision_manager"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.authenticator.dev"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.authenticator.main"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.migrations.migrations_factory"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_metadata_driver"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.event_dispatcher.dev"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.event_dispatcher.main"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.gFlme_s"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.jxnIR8C"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.iUxT8yA"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator._kIAbz1"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator..Fs8Kd7"; reason: private alias. -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "App\Command\TriggerTestCommand" previously pointing to "messenger.bus.default" to "messenger.default_bus". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "App\Controller\Trigger\PriceTriggerController" previously pointing to "messenger.bus.default" to "messenger.default_bus". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "locale_listener" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "http_kernel" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "url_helper" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "services_resetter" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "fragment.renderer.inline" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.messenger_consume_messages" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.router_debug" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.router_match" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router_listener" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "Symfony\Bundle\FrameworkBundle\Controller\RedirectController" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.middleware.send_message" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.middleware.router_context" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.retry.send_failed_message_for_retry_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.routable_message_bus" previously pointing to "messenger.bus.default" to "messenger.default_bus". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.redispatch_message_handler" previously pointing to "messenger.bus.default" to "messenger.default_bus". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.logout_url_generator" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.context_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.listener.abstract" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.switchuser_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.switchuser_listener" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authenticator.manager" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "debug.security.firewall" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.event_registry" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.maker.make_registration_form" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.maker.make_reset_password" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.bus.default.middleware.send_message" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.5cAhUFF" previously pointing to "messenger.bus.default" to "messenger.default_bus". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".debug.security.voter.security.access.authenticated_voter" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".debug.security.voter.security.access.role_hierarchy_voter" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.O2p6Lk7" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.cUcW89y" previously pointing to "router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.sPNPNE7" previously pointing to "debug.event_dispatcher" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "App\Entity"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "container.env"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\Config\Loader\LoaderInterface"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Request"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Response"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Session\SessionInterface"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.system"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.apcu"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.filesystem"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.psr6"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.redis"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.redis_tag_aware"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.memcached"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.doctrine_dbal"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.pdo"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.array"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "http_client.abstract_retry_strategy"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "lock.store.combined.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "lock.factory.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "limiter"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.send_message"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.handle_message"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.add_bus_name_stamp_middleware"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.traceable"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.retry.abstract_multiplier_retry_strategy"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.context"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.lazy_context"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.config"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.missing"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.ldap"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.chain"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout_listener"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.session"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.clear_site_data"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.cookie_clearing"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.default"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_success_handler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.success_handler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_failure_handler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.failure_handler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.exception_listener"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.switchuser_listener"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.manager"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.authenticator"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.user_provider.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.user_checker"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.session"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.login_throttling"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.http_basic"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.form_login"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.json_login"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.x509"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.remote_user"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.access_token"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.access_token.chain_extractor"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc_user_info.http_client"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc_user_info"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc.jwk"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc.signature"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "maker.auto_command.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.event_manager"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.configuration"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.schema_asset_filter_manager"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logging_middleware"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.debug_middleware"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_transaction"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_ping_connection"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_close_connection"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_open_transaction_logger"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.configuration"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.entity_manager.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.manager_configurator.abstract"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.security.user.provider"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.logger_prototype"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.activation_strategy.not_found"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.handler.fingers_crossed.error_level_activation_strategy"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\RedisImportCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\RedisReadCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\TriggerTestCommand"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Controller\Api\PricesController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Controller\Trigger\PriceTriggerController"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\MessageHandler\TriggerPriceImportHandler"; reason: abstract. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "App\Message\SendNotification"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "App\Message\TriggerPriceImport"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_cache"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_cache.store"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "url_helper"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "uri_signer"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "reverse_container"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "slugger"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.handler"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.uri_generator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.renderer.inline"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.validator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.serializer"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.annotations"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.property_info"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_client.uri_template_expander.guzzle"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_client.uri_template_expander.rize"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.log_processor"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.debug_logger_configurator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_accessor"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_info"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_info.reflection_extractor"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "lock.strategy.majority"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "name_based_uuid.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "random_based_uuid.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "time_based_uuid.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".cache_connection.GD_MSZC"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".cache_connection.JKE6keX"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.property_access"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.factory.php_bridge"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.factory.mock_file"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.handler.native_file"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.abstract_handler"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.marshaller"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.runtime.security_csrf"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.symfony_serializer"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.middleware.validation"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.middleware.router_context"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.amqp.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.sqs.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.beanstalkd.factory"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.listener.stop_worker_signals_listener"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.helper"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.session_strategy_noop"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker_locator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication_utils"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.impersonate_url_generator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.validator.user_password"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.security_expression_language"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_password_hasher"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.firewall.event_dispatcher_locator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authenticator.managers_locator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_authenticator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.header"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.query_string"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.request_body"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES256"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES384"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES512"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.security"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker.chain.dev"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker.chain.main"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.php_compat_util"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_functional_test"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_subscriber"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_unit_test"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.doctrine"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.twig.doctrine_extension"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.well_known_schema_asset_filter"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.connection_expiries"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".1_ServiceLocator~BsiXTm7"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type_guesser.doctrine"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type.entity"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.validator.unique"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.validator_initializer"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.listeners.resolve_target_entity"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.default"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.underscore"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.ansi"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_entity_manager.property_info_extractor"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.connection_loader"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.em_loader"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.connection_registry_loader"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.chrome_php"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.gelf_message"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.html"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.json"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.line"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.loggly"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.normalizer"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.scalar"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.wildfire"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.logstash"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.http_client"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.lLv4pWF"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.ldap_locator"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.handler.null_internal"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.XXv1IfR"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.e_.xxAP"; reason: unused. -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.O2p6Lk7.App\Controller\Api\PricesController" to "App\Controller\Api\PricesController". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "limiter.price_import" to "App\Controller\Trigger\PriceTriggerController". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.O2p6Lk7.App\Controller\Trigger\PriceTriggerController" to "App\Controller\Trigger\PriceTriggerController". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "App\Service\Adapter\Orm" to "App\Service\Prices\RedisImportService". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "clock" to "argument_resolver.datetime". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "error_handler.error_renderer.html" to "error_controller". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.controller_resolver" to "http_kernel". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.argument_resolver" to "http_kernel". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.console" to "console.error_listener". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "cache_clearer" to "console.command.cache_clear". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.XnSA3F0" to "console.command.cache_pool_invalidate_tags". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.listener.reset_services" to "console.command.messenger_consume_messages". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "console.messenger.application" to "console.messenger.execute_command_handler". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.http_client" to "http_client.transport". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "http_client.uri_template.inner" to "http_client.uri_template". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.php" to "debug.error_handler_configurator". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.controller_resolver.inner" to "debug.controller_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.argument_resolver.inner" to "debug.argument_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.xml" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.yml" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.php" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.glob" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.directory" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.container" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute.directory" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute.file" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.psr4" to "routing.resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.LD5oJC8" to "routing.loader.container". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.resolver" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.cUcW89y.router.cache_warmer" to "router.cache_warmer". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "secrets.decryption_key" to "secrets.vault". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "container.getenv" to "secrets.decryption_key". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.lock" to "lock.default.factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".cache_connection.IuJY3Yv" to "cache.rate_limiter". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "limiter.storage.price_import" to "limiter.price_import". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "lock.default.factory" to "limiter.price_import". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.storage.factory.native" to "session.factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.TpoC7U9" to "session_listener". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_generator" to "security.csrf.token_manager". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.retry_strategy_locator" to "messenger.retry.send_failed_message_for_retry_listener". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.5cAhUFF" to "messenger.routable_message_bus". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.transport.native_php_serializer" to "messenger.transport.async". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.transport_factory" to "messenger.transport.async". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.LcVn9Hr" to "security.token_storage". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.role_hierarchy" to "security.access.role_hierarchy_voter". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.RKxp8he" to "security.access_map". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.lSKjE8t" to "security.access_map". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.access.decision_manager.inner" to "debug.security.access.decision_manager". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map" to "debug.security.firewall". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout_url_generator" to "debug.security.firewall". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.firewall.authenticator.dev.inner" to "debug.security.firewall.authenticator.dev". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.dev" to "security.firewall.map.context.dev". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map.config.dev" to "security.firewall.map.context.dev". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.firewall.authenticator.main.inner" to "debug.security.firewall.authenticator.main". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.main" to "security.firewall.map.context.main". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map.config.main" to "security.firewall.map.context.main". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.FFUBg3B" to ".security.request_matcher.RKxp8he". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.autoloader_util" to "maker.file_manager". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.autoloader_finder" to "maker.autoloader_util". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.template_component_generator" to "maker.generator". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.event_registry" to "maker.maker.make_listener". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.user_class_builder" to "maker.maker.make_user". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.connection_factory.dsn_parser" to "doctrine.dbal.connection_factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_schema_manager_factory" to "doctrine.dbal.default_connection.configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_schema_asset_filter_manager" to "doctrine.dbal.default_connection.configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logging_middleware.default" to "doctrine.dbal.default_connection.configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.debug_middleware.default" to "doctrine.dbal.default_connection.configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.VHsrTPK" to "doctrine.dbal.default_connection.event_manager". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.configuration" to "doctrine.dbal.default_connection". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.connection_factory" to "doctrine.dbal.default_connection". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "ulid.factory" to "doctrine.ulid_generator". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "uuid.factory" to "doctrine.uuid_generator". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "cache.doctrine.orm.default.metadata" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".doctrine.orm.default_metadata_driver" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.naming_strategy.underscore_number_aware" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.quote_strategy.default" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.typed_field_mapper.default" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_entity_listener_resolver" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.container_repository_factory" to "doctrine.orm.default_configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.configuration_loader" to "doctrine.migrations.dependency_factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.entity_manager_registry_loader" to "doctrine.migrations.dependency_factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.configuration" to "doctrine.migrations.configuration_loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.storage.table_storage" to "doctrine.migrations.configuration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.container_aware_migrations_factory.inner" to "doctrine.migrations.container_aware_migrations_factory". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_authenticator" to "maker.auto_command.make_auth". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_command" to "maker.auto_command.make_command". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_twig_component" to "maker.auto_command.make_twig_component". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_controller" to "maker.auto_command.make_controller". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_crud" to "maker.auto_command.make_crud". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_docker_database" to "maker.auto_command.make_docker_database". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_entity" to "maker.auto_command.make_entity". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_fixtures" to "maker.auto_command.make_fixtures". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_form" to "maker.auto_command.make_form". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_listener" to "maker.auto_command.make_listener". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_message" to "maker.auto_command.make_message". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_messenger_middleware" to "maker.auto_command.make_messenger_middleware". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_registration_form" to "maker.auto_command.make_registration_form". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_reset_password" to "maker.auto_command.make_reset_password". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_schedule" to "maker.auto_command.make_schedule". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_serializer_encoder" to "maker.auto_command.make_serializer_encoder". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_serializer_normalizer" to "maker.auto_command.make_serializer_normalizer". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_twig_extension" to "maker.auto_command.make_twig_extension". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_test" to "maker.auto_command.make_test". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_validator" to "maker.auto_command.make_validator". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_voter" to "maker.auto_command.make_voter". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_user" to "maker.auto_command.make_user". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_migration" to "maker.auto_command.make_migration". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_stimulus_controller" to "maker.auto_command.make_stimulus_controller". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_form_login" to "maker.auto_command.make_security_form_login". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_custom_authenticator" to "maker.auto_command.make_security_custom". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_webhook" to "maker.auto_command.make_webhook". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user_value_resolver" to ".debug.value_resolver.security.user_value_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.security_token_value_resolver" to ".debug.value_resolver.security.security_token_value_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.entity_value_resolver" to ".debug.value_resolver.doctrine.orm.entity_value_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.backed_enum_resolver" to ".debug.value_resolver.argument_resolver.backed_enum_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.uid" to ".debug.value_resolver.argument_resolver.uid". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.datetime" to ".debug.value_resolver.argument_resolver.datetime". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.request_attribute" to ".debug.value_resolver.argument_resolver.request_attribute". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.request" to ".debug.value_resolver.argument_resolver.request". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.session" to ".debug.value_resolver.argument_resolver.session". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.service" to ".debug.value_resolver.argument_resolver.service". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.default" to ".debug.value_resolver.argument_resolver.default". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.variadic" to ".debug.value_resolver.argument_resolver.variadic". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.not_tagged_controller" to ".debug.value_resolver.argument_resolver.not_tagged_controller". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.query_parameter_value_resolver" to ".debug.value_resolver.argument_resolver.query_parameter_value_resolver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.senders_locator" to "messenger.bus.default.middleware.send_message". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.bus.default.messenger.handlers_locator" to "messenger.bus.default.middleware.handle_message". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "process.messenger.process_message_handler" to ".messenger.handler_descriptor.QXXNQ9d". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "console.messenger.execute_command_handler" to ".messenger.handler_descriptor.kEzMhfs". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "http_client.messenger.ping_webhook_handler" to ".messenger.handler_descriptor.6kVvRT.". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.redispatch_message_handler" to ".messenger.handler_descriptor.p4Qvabm". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.authenticated_voter" to ".debug.security.voter.security.access.authenticated_voter". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.role_hierarchy_voter" to ".debug.security.voter.security.access.role_hierarchy_voter". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".doctrine.orm.default_metadata_driver.inner" to ".doctrine.orm.default_metadata_driver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.KLVvNIq" to ".doctrine.orm.default_metadata_driver". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.doctrine" to "doctrine.dbal.logging_middleware.default". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.event_dispatcher.dev.inner" to "debug.security.event_dispatcher.dev". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.event_dispatcher.main.inner" to "debug.security.event_dispatcher.main". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.EMavxuq" to ".service_locator.EMavxuq.router.default". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.cUcW89y" to ".service_locator.cUcW89y.router.cache_warmer". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_metadata_factory" to "debug.argument_resolver.inner". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.gHpsvM5" to "debug.argument_resolver.inner". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authenticator.manager.dev" to "debug.security.firewall.authenticator.dev.inner". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authenticator.manager.main" to "debug.security.firewall.authenticator.main.inner". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.fTO7dT0" to "console.command_loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.EMavxuq.router.default" to "router". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.router" to "router". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "config_cache_factory" to "router". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.event_dispatcher.inner" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.event" to "event_dispatcher". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.tcCj4Pw" to "security.access_map". -Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.tcCj4Pw" to "security.access_map". -Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass: Tag "container.error" was defined on service(s) "argument_resolver.request_payload", but was never used. Did you mean "container.preload", "container.decorator", "container.stack"? -Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass: Tag "container.decorator" was defined on service(s) "http_client.uri_template", "debug.security.access.decision_manager", "debug.security.firewall.authenticator.dev", "debug.security.firewall.authenticator.main", "doctrine.migrations.container_aware_migrations_factory", "debug.security.event_dispatcher.dev", "debug.security.event_dispatcher.main", "event_dispatcher", but was never used. Did you mean "container.error"? \ No newline at end of file diff --git a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerDeprecations.log b/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerDeprecations.log deleted file mode 100644 index c856afc..0000000 --- a/projects/priceservice/var/cache/dev/App_KernelDevDebugContainerDeprecations.log +++ /dev/null @@ -1 +0,0 @@ -a:0:{} \ No newline at end of file diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x.legacy b/projects/priceservice/var/cache/dev/ContainerGfxmI0x.legacy deleted file mode 100644 index e69de29..0000000 diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/App_KernelDevDebugContainer.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/App_KernelDevDebugContainer.php deleted file mode 100644 index ea611ef..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/App_KernelDevDebugContainer.php +++ /dev/null @@ -1,1118 +0,0 @@ -targetDir = \dirname($containerDir); - $this->parameters = $this->getDefaultParameters(); - - $this->services = $this->privates = []; - $this->syntheticIds = [ - 'kernel' => true, - ]; - $this->methodMap = [ - 'debug.stopwatch' => 'getDebug_StopwatchService', - 'event_dispatcher' => 'getEventDispatcherService', - 'http_kernel' => 'getHttpKernelService', - 'request_stack' => 'getRequestStackService', - 'router' => 'getRouterService', - ]; - $this->fileMap = [ - 'App\\Controller\\Api\\PricesController' => 'getPricesControllerService', - 'App\\Controller\\Trigger\\PriceTriggerController' => 'getPriceTriggerControllerService', - 'App\\MessageHandler\\TriggerPriceImportHandler' => 'getTriggerPriceImportHandlerService', - 'Symfony\\Bundle\\FrameworkBundle\\Controller\\RedirectController' => 'getRedirectControllerService', - 'Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController' => 'getTemplateControllerService', - 'cache.app' => 'getCache_AppService', - 'cache.app_clearer' => 'getCache_AppClearerService', - 'cache.global_clearer' => 'getCache_GlobalClearerService', - 'cache.security_is_granted_attribute_expression_language' => 'getCache_SecurityIsGrantedAttributeExpressionLanguageService', - 'cache.system' => 'getCache_SystemService', - 'cache.system_clearer' => 'getCache_SystemClearerService', - 'cache_warmer' => 'getCacheWarmerService', - 'console.command_loader' => 'getConsole_CommandLoaderService', - 'container.env_var_processors_locator' => 'getContainer_EnvVarProcessorsLocatorService', - 'container.get_routing_condition_service' => 'getContainer_GetRoutingConditionServiceService', - 'debug.error_handler_configurator' => 'getDebug_ErrorHandlerConfiguratorService', - 'doctrine' => 'getDoctrineService', - 'doctrine.dbal.default_connection' => 'getDoctrine_Dbal_DefaultConnectionService', - 'doctrine.orm.default_entity_manager' => 'getDoctrine_Orm_DefaultEntityManagerService', - 'error_controller' => 'getErrorControllerService', - 'messenger.default_bus' => 'getMessenger_DefaultBusService', - 'monolog.logger.deprecation' => 'getMonolog_Logger_DeprecationService', - 'routing.loader' => 'getRouting_LoaderService', - 'services_resetter' => 'getServicesResetterService', - ]; - $this->aliases = [ - 'App\\Kernel' => 'kernel', - 'database_connection' => 'doctrine.dbal.default_connection', - 'doctrine.orm.entity_manager' => 'doctrine.orm.default_entity_manager', - ]; - - $this->privates['service_container'] = static function ($container) { - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventSubscriberInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ResponseListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/LocaleListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ValidateRequestListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ErrorListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/CacheAttributeListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/container/src/ContainerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/RunnerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/Runner/Symfony/ResponseRunner.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/RuntimeInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/GenericRuntime.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/SymfonyRuntime.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/HttpKernelInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/TerminableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/HttpKernel.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Controller/ControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ArgumentResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ArgumentResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceProviderInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceLocatorTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ServiceLocator.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-foundation/RequestStack.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ResetInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/stopwatch/Stopwatch.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RequestContext.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/RouterListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/SessionListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AuthorizationCheckerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AuthorizationChecker.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorageInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceSubscriberInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorage.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/AuthenticationTrustResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/AuthenticationTrustResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/EventListener/IsGrantedAttributeListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AccessDecisionManagerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/TraceableAccessDecisionManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AccessDecisionManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/Strategy/AccessDecisionStrategyInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/Strategy/AffirmativeStrategy.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/EventListener/FirewallListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/Debug/TraceableFirewallListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/FirewallMapInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/Security/FirewallMap.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Logout/LogoutUrlGenerator.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/FirewallListenerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/AbstractListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/ContextListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/ResettableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Logger.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/Handler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventDispatcher.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RequestContextAwareInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Matcher/UrlMatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Generator/UrlGeneratorInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RouterInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Matcher/RequestMatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Router.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Routing/Router.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/config/ConfigCacheFactoryInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php'; - }; - } - - public function compile(): void - { - throw new LogicException('You cannot compile a dumped container that was already compiled.'); - } - - public function isCompiled(): bool - { - return true; - } - - public function getRemovedIds(): array - { - return require $this->containerDir.\DIRECTORY_SEPARATOR.'removed-ids.php'; - } - - protected function load($file, $lazyLoad = true): mixed - { - if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) { - return $class::do($this, $lazyLoad); - } - - if ('.' === $file[-4]) { - $class = substr($class, 0, -4); - } else { - $file .= '.php'; - } - - $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file; - - return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service; - } - - protected function createProxy($class, \Closure $factory) - { - class_exists($class, false) || require __DIR__.'/'.$class.'.php'; - - return $factory(); - } - - /** - * Gets the public 'debug.stopwatch' shared service. - * - * @return \Symfony\Component\Stopwatch\Stopwatch - */ - protected static function getDebug_StopwatchService($container) - { - return $container->services['debug.stopwatch'] = new \Symfony\Component\Stopwatch\Stopwatch(true); - } - - /** - * Gets the public 'event_dispatcher' shared service. - * - * @return \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher - */ - protected static function getEventDispatcherService($container) - { - $a = new \Monolog\Logger('event'); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $container->services['event_dispatcher'] = $instance = new \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), $a, ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('kernel.response', [#[\Closure(name: 'security.context_listener.0', class: 'Symfony\\Component\\Security\\Http\\Firewall\\ContextListener')] fn () => ($container->privates['security.context_listener.0'] ?? self::getSecurity_ContextListener_0Service($container)), 'onKernelResponse'], 0); - $instance->addListener('kernel.response', [#[\Closure(name: 'security.context_listener.1', class: 'Symfony\\Component\\Security\\Http\\Firewall\\ContextListener')] fn () => ($container->privates['security.context_listener.1'] ?? self::getSecurity_ContextListener_1Service($container)), 'onKernelResponse'], 0); - $instance->addListener('console.command', [#[\Closure(name: 'doctrine_migrations.schema_filter_listener', class: 'Doctrine\\Bundle\\MigrationsBundle\\EventListener\\SchemaFilterListener')] fn () => ($container->privates['doctrine_migrations.schema_filter_listener'] ??= new \Doctrine\Bundle\MigrationsBundle\EventListener\SchemaFilterListener('doctrine_migration_versions')), 'onConsoleCommand'], 0); - $instance->addListener('kernel.response', [#[\Closure(name: 'response_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener')] fn () => ($container->privates['response_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\ResponseListener('UTF-8', false)), 'onKernelResponse'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'setDefaultLocale'], 100); - $instance->addListener('kernel.request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'onKernelRequest'], 16); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'validate_request_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener')] fn () => ($container->privates['validate_request_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\ValidateRequestListener()), 'onKernelRequest'], 256); - $instance->addListener('kernel.response', [#[\Closure(name: 'disallow_search_engine_index_response_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener')] fn () => ($container->privates['disallow_search_engine_index_response_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener()), 'onResponse'], -255); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'onControllerArguments'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'logKernelException'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'onKernelException'], -128); - $instance->addListener('kernel.response', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'removeCspHeader'], -128); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'controller.cache_attribute_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener')] fn () => ($container->privates['controller.cache_attribute_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\CacheAttributeListener()), 'onKernelControllerArguments'], 10); - $instance->addListener('kernel.response', [#[\Closure(name: 'controller.cache_attribute_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener')] fn () => ($container->privates['controller.cache_attribute_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\CacheAttributeListener()), 'onKernelResponse'], -10); - $instance->addListener('console.error', [#[\Closure(name: 'console.error_listener', class: 'Symfony\\Component\\Console\\EventListener\\ErrorListener')] fn () => ($container->privates['console.error_listener'] ?? $container->load('getConsole_ErrorListenerService')), 'onConsoleError'], -128); - $instance->addListener('console.terminate', [#[\Closure(name: 'console.error_listener', class: 'Symfony\\Component\\Console\\EventListener\\ErrorListener')] fn () => ($container->privates['console.error_listener'] ?? $container->load('getConsole_ErrorListenerService')), 'onConsoleTerminate'], -128); - $instance->addListener('console.error', [#[\Closure(name: 'console.suggest_missing_package_subscriber', class: 'Symfony\\Bundle\\FrameworkBundle\\EventListener\\SuggestMissingPackageSubscriber')] fn () => ($container->privates['console.suggest_missing_package_subscriber'] ??= new \Symfony\Bundle\FrameworkBundle\EventListener\SuggestMissingPackageSubscriber()), 'onConsoleError'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.debug_handlers_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener')] fn () => ($container->privates['debug.debug_handlers_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DebugHandlersListener(NULL, $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'))), 'configure'], 2048); - $instance->addListener('console.command', [#[\Closure(name: 'debug.debug_handlers_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener')] fn () => ($container->privates['debug.debug_handlers_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DebugHandlersListener(NULL, $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'))), 'configure'], 2048); - $instance->addListener('kernel.request', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelRequest'], 32); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelException'], -64); - $instance->addListener('kernel.request', [#[\Closure(name: 'session_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener')] fn () => ($container->privates['session_listener'] ?? self::getSessionListenerService($container)), 'onKernelRequest'], 128); - $instance->addListener('kernel.response', [#[\Closure(name: 'session_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener')] fn () => ($container->privates['session_listener'] ?? self::getSessionListenerService($container)), 'onKernelResponse'], -1000); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.retry.send_failed_message_for_retry_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\SendFailedMessageForRetryListener')] fn () => ($container->privates['messenger.retry.send_failed_message_for_retry_listener'] ?? $container->load('getMessenger_Retry_SendFailedMessageForRetryListenerService')), 'onMessageFailed'], 100); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.failure.add_error_details_stamp_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\AddErrorDetailsStampListener')] fn () => ($container->privates['messenger.failure.add_error_details_stamp_listener'] ??= new \Symfony\Component\Messenger\EventListener\AddErrorDetailsStampListener()), 'onMessageFailed'], 200); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.dispatch_pcntl_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\DispatchPcntlSignalListener')] fn () => ($container->privates['messenger.listener.dispatch_pcntl_signal_listener'] ??= new \Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener()), 'onWorkerRunning'], 100); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerStartedEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_restart_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnRestartSignalListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_restart_signal_listener'] ?? $container->load('getMessenger_Listener_StopWorkerOnRestartSignalListenerService')), 'onWorkerStarted'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_restart_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnRestartSignalListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_restart_signal_listener'] ?? $container->load('getMessenger_Listener_StopWorkerOnRestartSignalListenerService')), 'onWorkerRunning'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_stop_exception_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnCustomStopExceptionListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_stop_exception_listener'] ??= new \Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener()), 'onMessageFailed'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_stop_exception_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnCustomStopExceptionListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_stop_exception_listener'] ??= new \Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener()), 'onWorkerRunning'], 0); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'controller.is_granted_attribute_listener', class: 'Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener')] fn () => ($container->privates['controller.is_granted_attribute_listener'] ?? self::getController_IsGrantedAttributeListenerService($container)), 'onKernelControllerArguments'], 20); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('debug.security.authorization.vote', [#[\Closure(name: 'debug.security.voter.vote_listener', class: 'Symfony\\Bundle\\SecurityBundle\\EventListener\\VoteListener')] fn () => ($container->privates['debug.security.voter.vote_listener'] ?? $container->load('getDebug_Security_Voter_VoteListenerService')), 'onVoterVote'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'configureLogoutUrlGenerator'], 8); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'onKernelRequest'], 8); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('console.error', [#[\Closure(name: 'maker.console_error_listener', class: 'Symfony\\Bundle\\MakerBundle\\Event\\ConsoleErrorSubscriber')] fn () => ($container->privates['maker.console_error_listener'] ??= new \Symfony\Bundle\MakerBundle\Event\ConsoleErrorSubscriber()), 'onConsoleError'], 0); - $instance->addListener('console.terminate', [#[\Closure(name: 'maker.console_error_listener', class: 'Symfony\\Bundle\\MakerBundle\\Event\\ConsoleErrorSubscriber')] fn () => ($container->privates['maker.console_error_listener'] ??= new \Symfony\Bundle\MakerBundle\Event\ConsoleErrorSubscriber()), 'onConsoleTerminate'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageHandledEvent', [#[\Closure(name: 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager', class: 'Symfony\\Bridge\\Doctrine\\Messenger\\DoctrineClearEntityManagerWorkerSubscriber')] fn () => ($container->privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] ?? $container->load('getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService')), 'onWorkerMessageHandled'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager', class: 'Symfony\\Bridge\\Doctrine\\Messenger\\DoctrineClearEntityManagerWorkerSubscriber')] fn () => ($container->privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] ?? $container->load('getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService')), 'onWorkerMessageFailed'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the public 'http_kernel' shared service. - * - * @return \Symfony\Component\HttpKernel\HttpKernel - */ - protected static function getHttpKernelService($container) - { - $a = new \Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver($container, ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container))); - $a->allowControllers(['Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController', 'Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController']); - $a->allowControllers(['App\\Kernel', 'App\\Controller\\Api\\PricesController', 'App\\Controller\\Trigger\\PriceTriggerController', 'Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController']); - $b = ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)); - - return $container->services['http_kernel'] = new \Symfony\Component\HttpKernel\HttpKernel(($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)), new \Symfony\Component\HttpKernel\Controller\TraceableControllerResolver($a, $b), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), new \Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver(new \Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory(), new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.debug.value_resolver.security.user_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Security_UserValueResolverService')); - yield 1 => ($container->privates['.debug.value_resolver.security.security_token_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Security_SecurityTokenValueResolverService')); - yield 2 => ($container->privates['.debug.value_resolver.doctrine.orm.entity_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService')); - yield 3 => ($container->privates['.debug.value_resolver.argument_resolver.backed_enum_resolver'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService')); - yield 4 => ($container->privates['.debug.value_resolver.argument_resolver.uid'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_UidService')); - yield 5 => ($container->privates['.debug.value_resolver.argument_resolver.datetime'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_DatetimeService')); - yield 6 => ($container->privates['.debug.value_resolver.argument_resolver.request_attribute'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService')); - yield 7 => ($container->privates['.debug.value_resolver.argument_resolver.request'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_RequestService')); - yield 8 => ($container->privates['.debug.value_resolver.argument_resolver.session'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_SessionService')); - yield 9 => ($container->privates['.debug.value_resolver.argument_resolver.service'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_ServiceService')); - yield 10 => ($container->privates['.debug.value_resolver.argument_resolver.default'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_DefaultService')); - yield 11 => ($container->privates['.debug.value_resolver.argument_resolver.variadic'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_VariadicService')); - yield 12 => ($container->privates['.debug.value_resolver.argument_resolver.not_tagged_controller'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService')); - }, 13), new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'Symfony\\Bridge\\Doctrine\\ArgumentResolver\\EntityValueResolver' => ['privates', '.debug.value_resolver.doctrine.orm.entity_value_resolver', 'get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\BackedEnumValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.backed_enum_resolver', 'get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DateTimeValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.datetime', 'get_Debug_ValueResolver_ArgumentResolver_DatetimeService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.default', 'get_Debug_ValueResolver_ArgumentResolver_DefaultService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.query_parameter_value_resolver', 'get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request_attribute', 'get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request_payload', 'get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request', 'get_Debug_ValueResolver_ArgumentResolver_RequestService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.service', 'get_Debug_ValueResolver_ArgumentResolver_ServiceService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.session', 'get_Debug_ValueResolver_ArgumentResolver_SessionService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\UidValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.uid', 'get_Debug_ValueResolver_ArgumentResolver_UidService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.variadic', 'get_Debug_ValueResolver_ArgumentResolver_VariadicService', true], - 'Symfony\\Component\\Security\\Http\\Controller\\SecurityTokenValueResolver' => ['privates', '.debug.value_resolver.security.security_token_value_resolver', 'get_Debug_ValueResolver_Security_SecurityTokenValueResolverService', true], - 'Symfony\\Component\\Security\\Http\\Controller\\UserValueResolver' => ['privates', '.debug.value_resolver.security.user_value_resolver', 'get_Debug_ValueResolver_Security_UserValueResolverService', true], - 'argument_resolver.not_tagged_controller' => ['privates', '.debug.value_resolver.argument_resolver.not_tagged_controller', 'get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService', true], - ], [ - 'Symfony\\Bridge\\Doctrine\\ArgumentResolver\\EntityValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\BackedEnumValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DateTimeValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\UidValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => '?', - 'Symfony\\Component\\Security\\Http\\Controller\\SecurityTokenValueResolver' => '?', - 'Symfony\\Component\\Security\\Http\\Controller\\UserValueResolver' => '?', - 'argument_resolver.not_tagged_controller' => '?', - ])), $b), true); - } - - /** - * Gets the public 'request_stack' shared service. - * - * @return \Symfony\Component\HttpFoundation\RequestStack - */ - protected static function getRequestStackService($container) - { - return $container->services['request_stack'] = new \Symfony\Component\HttpFoundation\RequestStack(); - } - - /** - * Gets the public 'router' shared service. - * - * @return \Symfony\Bundle\FrameworkBundle\Routing\Router - */ - protected static function getRouterService($container) - { - $a = new \Monolog\Logger('router'); - $a->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $container->services['router'] = $instance = new \Symfony\Bundle\FrameworkBundle\Routing\Router((new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'routing.loader' => ['services', 'routing.loader', 'getRouting_LoaderService', true], - ], [ - 'routing.loader' => 'Symfony\\Component\\Config\\Loader\\LoaderInterface', - ]))->withContext('router.default', $container), 'kernel::loadRoutes', ['cache_dir' => $container->targetDir.'', 'debug' => true, 'generator_class' => 'Symfony\\Component\\Routing\\Generator\\CompiledUrlGenerator', 'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\CompiledUrlGeneratorDumper', 'matcher_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableCompiledUrlMatcher', 'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper', 'strict_requirements' => true, 'resource_type' => 'service'], ($container->privates['router.request_context'] ?? self::getRouter_RequestContextService($container)), ($container->privates['parameter_bag'] ??= new \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag($container)), $a, 'en'); - - $instance->setConfigCacheFactory(new \Symfony\Component\Config\ResourceCheckerConfigCacheFactory(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['dependency_injection.config.container_parameters_resource_checker'] ??= new \Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker($container)); - yield 1 => ($container->privates['config.resource.self_checking_resource_checker'] ??= new \Symfony\Component\Config\Resource\SelfCheckingResourceChecker()); - }, 2))); - - return $instance; - } - - /** - * Gets the private '.service_locator.zJyh7qS' shared service. - * - * @return \Symfony\Component\DependencyInjection\ServiceLocator - */ - protected static function get_ServiceLocator_ZJyh7qSService($container) - { - return $container->privates['.service_locator.zJyh7qS'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'security.firewall.map.context.dev' => ['privates', 'security.firewall.map.context.dev', 'getSecurity_Firewall_Map_Context_DevService', true], - 'security.firewall.map.context.main' => ['privates', 'security.firewall.map.context.main', 'getSecurity_Firewall_Map_Context_MainService', true], - ], [ - 'security.firewall.map.context.dev' => '?', - 'security.firewall.map.context.main' => '?', - ]); - } - - /** - * Gets the private 'controller.is_granted_attribute_listener' shared service. - * - * @return \Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener - */ - protected static function getController_IsGrantedAttributeListenerService($container) - { - $a = ($container->privates['security.authorization_checker'] ?? self::getSecurity_AuthorizationCheckerService($container)); - - if (isset($container->privates['controller.is_granted_attribute_listener'])) { - return $container->privates['controller.is_granted_attribute_listener']; - } - - return $container->privates['controller.is_granted_attribute_listener'] = new \Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener($a, NULL); - } - - /** - * Gets the private 'debug.security.access.decision_manager' shared service. - * - * @return \Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager - */ - protected static function getDebug_Security_Access_DecisionManagerService($container) - { - return $container->privates['debug.security.access.decision_manager'] = new \Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager(new \Symfony\Component\Security\Core\Authorization\AccessDecisionManager(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.debug.security.voter.security.access.authenticated_voter'] ?? $container->load('get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService')); - yield 1 => ($container->privates['.debug.security.voter.security.access.role_hierarchy_voter'] ?? $container->load('get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService')); - }, 2), new \Symfony\Component\Security\Core\Authorization\Strategy\AffirmativeStrategy(false))); - } - - /** - * Gets the private 'debug.security.event_dispatcher.dev' shared service. - * - * @return \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher - */ - protected static function getDebug_Security_EventDispatcher_DevService($container) - { - $container->privates['debug.security.event_dispatcher.dev'] = $instance = new \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.session.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\SessionStrategyListener')] fn () => ($container->privates['security.listener.session.dev'] ?? $container->load('getSecurity_Listener_Session_DevService')), 'onSuccessfulLogin'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.user_checker.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.dev'] ?? $container->load('getSecurity_Listener_UserChecker_DevService')), 'preCheckCredentials'], 256); - $instance->addListener('security.authentication.success', [#[\Closure(name: 'security.listener.user_checker.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.dev'] ?? $container->load('getSecurity_Listener_UserChecker_DevService')), 'postCheckCredentials'], 256); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the private 'debug.security.event_dispatcher.main' shared service. - * - * @return \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher - */ - protected static function getDebug_Security_EventDispatcher_MainService($container) - { - $container->privates['debug.security.event_dispatcher.main'] = $instance = new \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.session.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\SessionStrategyListener')] fn () => ($container->privates['security.listener.session.main'] ?? $container->load('getSecurity_Listener_Session_MainService')), 'onSuccessfulLogin'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.user_checker.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.main'] ?? $container->load('getSecurity_Listener_UserChecker_MainService')), 'preCheckCredentials'], 256); - $instance->addListener('security.authentication.success', [#[\Closure(name: 'security.listener.user_checker.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.main'] ?? $container->load('getSecurity_Listener_UserChecker_MainService')), 'postCheckCredentials'], 256); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the private 'debug.security.firewall' shared service. - * - * @return \Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener - */ - protected static function getDebug_Security_FirewallService($container) - { - $a = ($container->privates['.service_locator.zJyh7qS'] ?? self::get_ServiceLocator_ZJyh7qSService($container)); - - if (isset($container->privates['debug.security.firewall'])) { - return $container->privates['debug.security.firewall']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['debug.security.firewall'])) { - return $container->privates['debug.security.firewall']; - } - - return $container->privates['debug.security.firewall'] = new \Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener(new \Symfony\Bundle\SecurityBundle\Security\FirewallMap($a, new RewindableGenerator(function () use ($container) { - yield 'security.firewall.map.context.dev' => NULL; - yield 'security.firewall.map.context.main' => NULL; - }, 2)), $b, new \Symfony\Component\Security\Http\Logout\LogoutUrlGenerator(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->services['router'] ?? self::getRouterService($container)), ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)))); - } - - /** - * Gets the private 'exception_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\ErrorListener - */ - protected static function getExceptionListenerService($container) - { - return $container->privates['exception_listener'] = new \Symfony\Component\HttpKernel\EventListener\ErrorListener('error_controller', ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container)), true, []); - } - - /** - * Gets the private 'locale_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\LocaleListener - */ - protected static function getLocaleListenerService($container) - { - return $container->privates['locale_listener'] = new \Symfony\Component\HttpKernel\EventListener\LocaleListener(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), 'en', ($container->services['router'] ?? self::getRouterService($container)), false, []); - } - - /** - * Gets the private 'monolog.handler.file_log' shared service. - * - * @return \Monolog\Handler\RotatingFileHandler - */ - protected static function getMonolog_Handler_FileLogService($container) - { - $container->privates['monolog.handler.file_log'] = $instance = new \Monolog\Handler\RotatingFileHandler((\dirname(__DIR__, 3).'/log/dev.log'), 0, 'error', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - $instance->setFilenameFormat('{filename}-{date}', 'Y-m-d'); - - return $instance; - } - - /** - * Gets the private 'monolog.handler.main' shared service. - * - * @return \Monolog\Handler\StreamHandler - */ - protected static function getMonolog_Handler_MainService($container) - { - $container->privates['monolog.handler.main'] = $instance = new \Monolog\Handler\StreamHandler((\dirname(__DIR__, 3).'/log/dev.log'), 'debug', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } - - /** - * Gets the private 'monolog.handler.stdout' shared service. - * - * @return \Monolog\Handler\StreamHandler - */ - protected static function getMonolog_Handler_StdoutService($container) - { - $container->privates['monolog.handler.stdout'] = $instance = new \Monolog\Handler\StreamHandler('php://stdout', 'debug', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } - - /** - * Gets the private 'monolog.logger' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_LoggerService($container) - { - $container->privates['monolog.logger'] = $instance = new \Monolog\Logger('app'); - - $instance->useMicrosecondTimestamps(true); - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'monolog.logger.request' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_Logger_RequestService($container) - { - $container->privates['monolog.logger.request'] = $instance = new \Monolog\Logger('request'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'monolog.logger.security' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_Logger_SecurityService($container) - { - $container->privates['monolog.logger.security'] = $instance = new \Monolog\Logger('security'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'parameter_bag' shared service. - * - * @return \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag - */ - protected static function getParameterBagService($container) - { - return $container->privates['parameter_bag'] = new \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag($container); - } - - /** - * Gets the private 'router.request_context' shared service. - * - * @return \Symfony\Component\Routing\RequestContext - */ - protected static function getRouter_RequestContextService($container) - { - return $container->privates['router.request_context'] = \Symfony\Component\Routing\RequestContext::fromUri('', 'localhost', 'http', 80, 443); - } - - /** - * Gets the private 'router_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\RouterListener - */ - protected static function getRouterListenerService($container) - { - return $container->privates['router_listener'] = new \Symfony\Component\HttpKernel\EventListener\RouterListener(($container->services['router'] ?? self::getRouterService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->privates['router.request_context'] ?? self::getRouter_RequestContextService($container)), ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container)), \dirname(__DIR__, 4), true); - } - - /** - * Gets the private 'security.authorization_checker' shared service. - * - * @return \Symfony\Component\Security\Core\Authorization\AuthorizationChecker - */ - protected static function getSecurity_AuthorizationCheckerService($container) - { - $a = ($container->privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['security.authorization_checker'])) { - return $container->privates['security.authorization_checker']; - } - - return $container->privates['security.authorization_checker'] = new \Symfony\Component\Security\Core\Authorization\AuthorizationChecker(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), $a, false, false); - } - - /** - * Gets the private 'security.context_listener.0' shared service. - * - * @return \Symfony\Component\Security\Http\Firewall\ContextListener - */ - protected static function getSecurity_ContextListener_0Service($container) - { - return $container->privates['security.context_listener.0'] = new \Symfony\Component\Security\Http\Firewall\ContextListener(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new RewindableGenerator(fn () => new \EmptyIterator(), 0), 'dev', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), ($container->privates['debug.security.event_dispatcher.dev'] ?? self::getDebug_Security_EventDispatcher_DevService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), [($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), 'enableUsageTracking']); - } - - /** - * Gets the private 'security.context_listener.1' shared service. - * - * @return \Symfony\Component\Security\Http\Firewall\ContextListener - */ - protected static function getSecurity_ContextListener_1Service($container) - { - return $container->privates['security.context_listener.1'] = new \Symfony\Component\Security\Http\Firewall\ContextListener(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new RewindableGenerator(fn () => new \EmptyIterator(), 0), 'main', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), ($container->privates['debug.security.event_dispatcher.main'] ?? self::getDebug_Security_EventDispatcher_MainService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), [($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), 'enableUsageTracking']); - } - - /** - * Gets the private 'security.token_storage' shared service. - * - * @return \Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage - */ - protected static function getSecurity_TokenStorageService($container) - { - return $container->privates['security.token_storage'] = new \Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - ], [ - 'request_stack' => '?', - ])); - } - - /** - * Gets the private 'session_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\SessionListener - */ - protected static function getSessionListenerService($container) - { - return $container->privates['session_listener'] = new \Symfony\Component\HttpKernel\EventListener\SessionListener(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'logger' => ['privates', 'monolog.logger', 'getMonolog_LoggerService', false], - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - 'session_factory' => ['privates', 'session.factory', 'getSession_FactoryService', true], - ], [ - 'logger' => '?', - 'request_stack' => '?', - 'session_factory' => '?', - ]), true, $container->parameters['session.storage.options']); - } - - public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (isset($this->buildParameters[$name])) { - return $this->buildParameters[$name]; - } - - if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) { - throw new ParameterNotFoundException($name); - } - if (isset($this->loadedDynamicParameters[$name])) { - return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - - return $this->parameters[$name]; - } - - public function hasParameter(string $name): bool - { - if (isset($this->buildParameters[$name])) { - return true; - } - - return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters); - } - - public function setParameter(string $name, $value): void - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - public function getParameterBag(): ParameterBagInterface - { - if (!isset($this->parameterBag)) { - $parameters = $this->parameters; - foreach ($this->loadedDynamicParameters as $name => $loaded) { - $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - foreach ($this->buildParameters as $name => $value) { - $parameters[$name] = $value; - } - $this->parameterBag = new FrozenParameterBag($parameters); - } - - return $this->parameterBag; - } - - private $loadedDynamicParameters = [ - 'kernel.runtime_environment' => false, - 'kernel.runtime_mode' => false, - 'kernel.runtime_mode.web' => false, - 'kernel.runtime_mode.cli' => false, - 'kernel.runtime_mode.worker' => false, - 'kernel.build_dir' => false, - 'kernel.cache_dir' => false, - 'mitho' => false, - 'mitho.import' => false, - 'mitho.import.orm' => false, - 'mitho.import.orm.url' => false, - 'mitho.import.orm.urlBckp1' => false, - 'mitho.import.orm.urlBckp2' => false, - 'mitho.import.orm.user' => false, - 'mitho.import.orm.pwd' => false, - 'kernel.secret' => false, - 'debug.file_link_format' => false, - 'debug.container.dump' => false, - 'router.cache_dir' => false, - 'doctrine.orm.proxy_dir' => false, - ]; - private $dynamicParameters = []; - - private function getDynamicParameter(string $name) - { - $container = $this; - $value = match ($name) { - 'kernel.runtime_environment' => $container->getEnv('default:kernel.environment:APP_RUNTIME_ENV'), - 'kernel.runtime_mode' => $container->getEnv('query_string:default:container.runtime_mode:APP_RUNTIME_MODE'), - 'kernel.runtime_mode.web' => $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'), - 'kernel.runtime_mode.cli' => $container->getEnv('not:default:kernel.runtime_mode.web:'), - 'kernel.runtime_mode.worker' => $container->getEnv('bool:default::key:worker:default:kernel.runtime_mode:'), - 'kernel.build_dir' => $container->targetDir.'', - 'kernel.cache_dir' => $container->targetDir.'', - 'mitho' => [ - 'api' => [ - 'expiredMaxTime' => 3600, - 'maxPriceAge' => 300, - 'priceListLimit' => 2500, - 'cacheExpTime' => 300, - 'cacheIsActive' => true, - 'cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - ], - 'import' => [ - 'orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - ], - ], - 'mitho.import' => [ - 'orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - ], - 'mitho.import.orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - 'mitho.import.orm.url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'mitho.import.orm.urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'mitho.import.orm.urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'mitho.import.orm.user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'mitho.import.orm.pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'kernel.secret' => $container->getEnv('APP_SECRET'), - 'debug.file_link_format' => $container->getEnv('default::SYMFONY_IDE'), - 'debug.container.dump' => ($container->targetDir.''.'/App_KernelDevDebugContainer.xml'), - 'router.cache_dir' => $container->targetDir.'', - 'doctrine.orm.proxy_dir' => ($container->targetDir.''.'/doctrine/orm/Proxies'), - default => throw new ParameterNotFoundException($name), - }; - $this->loadedDynamicParameters[$name] = true; - - return $this->dynamicParameters[$name] = $value; - } - - protected function getDefaultParameters(): array - { - return [ - 'kernel.project_dir' => \dirname(__DIR__, 4), - 'kernel.environment' => 'dev', - 'kernel.debug' => true, - 'kernel.logs_dir' => (\dirname(__DIR__, 3).'/log'), - 'kernel.bundles' => [ - 'FrameworkBundle' => 'Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle', - 'SecurityBundle' => 'Symfony\\Bundle\\SecurityBundle\\SecurityBundle', - 'MakerBundle' => 'Symfony\\Bundle\\MakerBundle\\MakerBundle', - 'DoctrineBundle' => 'Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle', - 'DoctrineMigrationsBundle' => 'Doctrine\\Bundle\\MigrationsBundle\\DoctrineMigrationsBundle', - 'MonologBundle' => 'Symfony\\Bundle\\MonologBundle\\MonologBundle', - ], - 'kernel.bundles_metadata' => [ - 'FrameworkBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/framework-bundle'), - 'namespace' => 'Symfony\\Bundle\\FrameworkBundle', - ], - 'SecurityBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/security-bundle'), - 'namespace' => 'Symfony\\Bundle\\SecurityBundle', - ], - 'MakerBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/maker-bundle'), - 'namespace' => 'Symfony\\Bundle\\MakerBundle', - ], - 'DoctrineBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/doctrine/doctrine-bundle'), - 'namespace' => 'Doctrine\\Bundle\\DoctrineBundle', - ], - 'DoctrineMigrationsBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/doctrine/doctrine-migrations-bundle'), - 'namespace' => 'Doctrine\\Bundle\\MigrationsBundle', - ], - 'MonologBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/monolog-bundle'), - 'namespace' => 'Symfony\\Bundle\\MonologBundle', - ], - ], - 'kernel.charset' => 'UTF-8', - 'kernel.container_class' => 'App_KernelDevDebugContainer', - 'mitho.api' => [ - 'expiredMaxTime' => 3600, - 'maxPriceAge' => 300, - 'priceListLimit' => 2500, - 'cacheExpTime' => 300, - 'cacheIsActive' => true, - 'cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - ], - 'mitho.api.expiredMaxTime' => 3600, - 'mitho.api.maxPriceAge' => 300, - 'mitho.api.priceListLimit' => 2500, - 'mitho.api.cacheExpTime' => 300, - 'mitho.api.cacheIsActive' => true, - 'mitho.api.cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - 'mitho.api.cacheNamespaces.rawData' => 'price.data.raw', - 'mitho.api.cacheNamespaces.rawDataDiffSteps' => 'price.data.diffSteps', - 'mitho.api.cacheNamespaces.rawDataWithArticle' => 'price.data.withArticle', - 'mitho.import.orm.shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'mitho.import.orm.shopIds.0' => 1, - 'mitho.import.orm.shopIds.1' => 3, - 'mitho.import.orm.shopIds.2' => 4, - 'mitho.import.orm.shopIds.3' => 8, - 'mitho.import.orm.chunksize' => 500, - 'mitho.import.orm.maxPriceAge' => 240, - 'mitho.import.orm.maxTimeStampAgeSpan' => 360, - 'mitho.import.orm.cashPriceStep' => 13, - 'event_dispatcher.event_aliases' => [ - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => 'console.command', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => 'console.error', - 'Symfony\\Component\\Console\\Event\\ConsoleSignalEvent' => 'console.signal', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => 'console.terminate', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => 'kernel.controller_arguments', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => 'kernel.controller', - 'Symfony\\Component\\HttpKernel\\Event\\ResponseEvent' => 'kernel.response', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => 'kernel.finish_request', - 'Symfony\\Component\\HttpKernel\\Event\\RequestEvent' => 'kernel.request', - 'Symfony\\Component\\HttpKernel\\Event\\ViewEvent' => 'kernel.view', - 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => 'kernel.exception', - 'Symfony\\Component\\HttpKernel\\Event\\TerminateEvent' => 'kernel.terminate', - 'Symfony\\Component\\Security\\Core\\Event\\AuthenticationSuccessEvent' => 'security.authentication.success', - 'Symfony\\Component\\Security\\Http\\Event\\InteractiveLoginEvent' => 'security.interactive_login', - 'Symfony\\Component\\Security\\Http\\Event\\SwitchUserEvent' => 'security.switch_user', - ], - 'fragment.renderer.hinclude.global_template' => NULL, - 'fragment.path' => '/_fragment', - 'kernel.http_method_override' => false, - 'kernel.trust_x_sendfile_type_header' => false, - 'kernel.trusted_hosts' => [ - - ], - 'kernel.default_locale' => 'en', - 'kernel.enabled_locales' => [ - - ], - 'kernel.error_controller' => 'error_controller', - 'debug.error_handler.throw_at' => -1, - 'router.request_context.host' => 'localhost', - 'router.request_context.scheme' => 'http', - 'router.request_context.base_url' => '', - 'router.resource' => 'kernel::loadRoutes', - 'request_listener.http_port' => 80, - 'request_listener.https_port' => 443, - 'session.metadata.storage_key' => '_sf2_meta', - 'session.storage.options' => [ - 'cache_limiter' => '0', - 'cookie_secure' => 'auto', - 'cookie_httponly' => true, - 'cookie_samesite' => 'lax', - 'gc_probability' => 1, - ], - 'session.save_path' => NULL, - 'session.metadata.update_threshold' => 0, - 'data_collector.templates' => [ - - ], - 'security.role_hierarchy.roles' => [ - 'ROLE_ADMIN' => [ - 0 => 'ROLE_PRICES', - 1 => 'ROLE_USER', - ], - ], - 'security.access.denied_url' => NULL, - 'security.authentication.manager.erase_credentials' => true, - 'security.authentication.session_strategy.strategy' => 'migrate', - 'security.authentication.hide_user_not_found' => true, - 'security.firewalls' => [ - 0 => 'dev', - 1 => 'main', - ], - 'security.logout_uris' => [ - - ], - 'doctrine.dbal.configuration.class' => 'Doctrine\\DBAL\\Configuration', - 'doctrine.data_collector.class' => 'Doctrine\\Bundle\\DoctrineBundle\\DataCollector\\DoctrineDataCollector', - 'doctrine.dbal.connection.event_manager.class' => 'Symfony\\Bridge\\Doctrine\\ContainerAwareEventManager', - 'doctrine.dbal.connection_factory.class' => 'Doctrine\\Bundle\\DoctrineBundle\\ConnectionFactory', - 'doctrine.dbal.events.mysql_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\MysqlSessionInit', - 'doctrine.dbal.events.oracle_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\OracleSessionInit', - 'doctrine.class' => 'Doctrine\\Bundle\\DoctrineBundle\\Registry', - 'doctrine.entity_managers' => [ - 'default' => 'doctrine.orm.default_entity_manager', - ], - 'doctrine.default_entity_manager' => 'default', - 'doctrine.dbal.connection_factory.types' => [ - 'uuid' => [ - 'class' => 'Symfony\\Bridge\\Doctrine\\Types\\UuidType', - ], - 'ulid' => [ - 'class' => 'Symfony\\Bridge\\Doctrine\\Types\\UlidType', - ], - ], - 'doctrine.connections' => [ - 'default' => 'doctrine.dbal.default_connection', - ], - 'doctrine.default_connection' => 'default', - 'doctrine.orm.configuration.class' => 'Doctrine\\ORM\\Configuration', - 'doctrine.orm.entity_manager.class' => 'Doctrine\\ORM\\EntityManager', - 'doctrine.orm.manager_configurator.class' => 'Doctrine\\Bundle\\DoctrineBundle\\ManagerConfigurator', - 'doctrine.orm.cache.array.class' => 'Doctrine\\Common\\Cache\\ArrayCache', - 'doctrine.orm.cache.apc.class' => 'Doctrine\\Common\\Cache\\ApcCache', - 'doctrine.orm.cache.memcache.class' => 'Doctrine\\Common\\Cache\\MemcacheCache', - 'doctrine.orm.cache.memcache_host' => 'localhost', - 'doctrine.orm.cache.memcache_port' => 11211, - 'doctrine.orm.cache.memcache_instance.class' => 'Memcache', - 'doctrine.orm.cache.memcached.class' => 'Doctrine\\Common\\Cache\\MemcachedCache', - 'doctrine.orm.cache.memcached_host' => 'localhost', - 'doctrine.orm.cache.memcached_port' => 11211, - 'doctrine.orm.cache.memcached_instance.class' => 'Memcached', - 'doctrine.orm.cache.redis.class' => 'Doctrine\\Common\\Cache\\RedisCache', - 'doctrine.orm.cache.redis_host' => 'localhost', - 'doctrine.orm.cache.redis_port' => 6379, - 'doctrine.orm.cache.redis_instance.class' => 'Redis', - 'doctrine.orm.cache.xcache.class' => 'Doctrine\\Common\\Cache\\XcacheCache', - 'doctrine.orm.cache.wincache.class' => 'Doctrine\\Common\\Cache\\WinCacheCache', - 'doctrine.orm.cache.zenddata.class' => 'Doctrine\\Common\\Cache\\ZendDataCache', - 'doctrine.orm.metadata.driver_chain.class' => 'Doctrine\\Persistence\\Mapping\\Driver\\MappingDriverChain', - 'doctrine.orm.metadata.annotation.class' => 'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver', - 'doctrine.orm.metadata.xml.class' => 'Doctrine\\ORM\\Mapping\\Driver\\SimplifiedXmlDriver', - 'doctrine.orm.metadata.yml.class' => 'Doctrine\\ORM\\Mapping\\Driver\\SimplifiedYamlDriver', - 'doctrine.orm.metadata.php.class' => 'Doctrine\\ORM\\Mapping\\Driver\\PHPDriver', - 'doctrine.orm.metadata.staticphp.class' => 'Doctrine\\ORM\\Mapping\\Driver\\StaticPHPDriver', - 'doctrine.orm.metadata.attribute.class' => 'Doctrine\\ORM\\Mapping\\Driver\\AttributeDriver', - 'doctrine.orm.proxy_cache_warmer.class' => 'Symfony\\Bridge\\Doctrine\\CacheWarmer\\ProxyCacheWarmer', - 'form.type_guesser.doctrine.class' => 'Symfony\\Bridge\\Doctrine\\Form\\DoctrineOrmTypeGuesser', - 'doctrine.orm.validator.unique.class' => 'Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntityValidator', - 'doctrine.orm.validator_initializer.class' => 'Symfony\\Bridge\\Doctrine\\Validator\\DoctrineInitializer', - 'doctrine.orm.security.user.provider.class' => 'Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider', - 'doctrine.orm.listeners.resolve_target_entity.class' => 'Doctrine\\ORM\\Tools\\ResolveTargetEntityListener', - 'doctrine.orm.listeners.attach_entity_listeners.class' => 'Doctrine\\ORM\\Tools\\AttachEntityListenersListener', - 'doctrine.orm.naming_strategy.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultNamingStrategy', - 'doctrine.orm.naming_strategy.underscore.class' => 'Doctrine\\ORM\\Mapping\\UnderscoreNamingStrategy', - 'doctrine.orm.quote_strategy.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultQuoteStrategy', - 'doctrine.orm.quote_strategy.ansi.class' => 'Doctrine\\ORM\\Mapping\\AnsiQuoteStrategy', - 'doctrine.orm.typed_field_mapper.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultTypedFieldMapper', - 'doctrine.orm.entity_listener_resolver.class' => 'Doctrine\\Bundle\\DoctrineBundle\\Mapping\\ContainerEntityListenerResolver', - 'doctrine.orm.second_level_cache.default_cache_factory.class' => 'Doctrine\\ORM\\Cache\\DefaultCacheFactory', - 'doctrine.orm.second_level_cache.default_region.class' => 'Doctrine\\ORM\\Cache\\Region\\DefaultRegion', - 'doctrine.orm.second_level_cache.filelock_region.class' => 'Doctrine\\ORM\\Cache\\Region\\FileLockRegion', - 'doctrine.orm.second_level_cache.logger_chain.class' => 'Doctrine\\ORM\\Cache\\Logging\\CacheLoggerChain', - 'doctrine.orm.second_level_cache.logger_statistics.class' => 'Doctrine\\ORM\\Cache\\Logging\\StatisticsCacheLogger', - 'doctrine.orm.second_level_cache.cache_configuration.class' => 'Doctrine\\ORM\\Cache\\CacheConfiguration', - 'doctrine.orm.second_level_cache.regions_configuration.class' => 'Doctrine\\ORM\\Cache\\RegionsConfiguration', - 'doctrine.orm.auto_generate_proxy_classes' => true, - 'doctrine.orm.enable_lazy_ghost_objects' => true, - 'doctrine.orm.proxy_namespace' => 'Proxies', - 'doctrine.migrations.preferred_em' => NULL, - 'doctrine.migrations.preferred_connection' => NULL, - 'monolog.use_microseconds' => true, - 'monolog.swift_mailer.handlers' => [ - - ], - 'monolog.handlers_to_channels' => [ - 'monolog.handler.stdout' => [ - 'type' => 'exclusive', - 'elements' => [ - 0 => 'event', - ], - ], - 'monolog.handler.deprecation' => [ - 'type' => 'inclusive', - 'elements' => [ - 0 => 'deprecation', - ], - ], - 'monolog.handler.main' => [ - 'type' => 'exclusive', - 'elements' => [ - 0 => 'event', - ], - ], - 'monolog.handler.file_log' => NULL, - ], - 'console.command.ids' => [ - - ], - ]; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/EntityManagerGhostEbeb667.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/EntityManagerGhostEbeb667.php deleted file mode 100644 index c4db0f1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/EntityManagerGhostEbeb667.php +++ /dev/null @@ -1,45 +0,0 @@ - [parent::class, 'cache', null, 16], - "\0".parent::class."\0".'closed' => [parent::class, 'closed', null, 16], - "\0".parent::class."\0".'config' => [parent::class, 'config', null, 16], - "\0".parent::class."\0".'conn' => [parent::class, 'conn', null, 16], - "\0".parent::class."\0".'eventManager' => [parent::class, 'eventManager', null, 16], - "\0".parent::class."\0".'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16], - "\0".parent::class."\0".'filterCollection' => [parent::class, 'filterCollection', null, 16], - "\0".parent::class."\0".'metadataFactory' => [parent::class, 'metadataFactory', null, 16], - "\0".parent::class."\0".'proxyFactory' => [parent::class, 'proxyFactory', null, 16], - "\0".parent::class."\0".'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16], - "\0".parent::class."\0".'unitOfWork' => [parent::class, 'unitOfWork', null, 16], - 'cache' => [parent::class, 'cache', null, 16], - 'closed' => [parent::class, 'closed', null, 16], - 'config' => [parent::class, 'config', null, 16], - 'conn' => [parent::class, 'conn', null, 16], - 'eventManager' => [parent::class, 'eventManager', null, 16], - 'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16], - 'filterCollection' => [parent::class, 'filterCollection', null, 16], - 'metadataFactory' => [parent::class, 'metadataFactory', null, 16], - 'proxyFactory' => [parent::class, 'proxyFactory', null, 16], - 'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16], - 'unitOfWork' => [parent::class, 'unitOfWork', null, 16], - ]; -} - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -if (!\class_exists('EntityManagerGhostEbeb667', false)) { - \class_alias(__NAMESPACE__.'\\EntityManagerGhostEbeb667', 'EntityManagerGhostEbeb667', false); -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/RequestPayloadValueResolverGhost3590451.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/RequestPayloadValueResolverGhost3590451.php deleted file mode 100644 index eac4e19..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/RequestPayloadValueResolverGhost3590451.php +++ /dev/null @@ -1,28 +0,0 @@ - [parent::class, 'serializer', null, 530], - "\0".parent::class."\0".'translator' => [parent::class, 'translator', null, 530], - "\0".parent::class."\0".'validator' => [parent::class, 'validator', null, 530], - 'serializer' => [parent::class, 'serializer', null, 530], - 'translator' => [parent::class, 'translator', null, 530], - 'validator' => [parent::class, 'validator', null, 530], - ]; -} - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -if (!\class_exists('RequestPayloadValueResolverGhost3590451', false)) { - \class_alias(__NAMESPACE__.'\\RequestPayloadValueResolverGhost3590451', 'RequestPayloadValueResolverGhost3590451', false); -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCacheWarmerService.php deleted file mode 100644 index ec01078..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCacheWarmerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['cache_warmer'] = new \Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['config_builder.warmer'] ?? $container->load('getConfigBuilder_WarmerService')); - yield 1 => ($container->privates['router.cache_warmer'] ?? $container->load('getRouter_CacheWarmerService')); - yield 2 => ($container->privates['doctrine.orm.proxy_cache_warmer'] ?? $container->load('getDoctrine_Orm_ProxyCacheWarmerService')); - }, 3), true, ($container->targetDir.''.'/App_KernelDevDebugContainerDeprecations.log')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppClearerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppClearerService.php deleted file mode 100644 index 9dabc01..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppClearerService.php +++ /dev/null @@ -1,26 +0,0 @@ -services['cache.app_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppService.php deleted file mode 100644 index ec998af..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_AppService.php +++ /dev/null @@ -1,44 +0,0 @@ -services['cache.app'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('3ch+vfAnYd', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_App_TaggableService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_App_TaggableService.php deleted file mode 100644 index 72cfd2a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_App_TaggableService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['cache.app.taggable'] = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(($container->services['cache.app'] ?? $container->load('getCache_AppService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_GlobalClearerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_GlobalClearerService.php deleted file mode 100644 index 376118a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_GlobalClearerService.php +++ /dev/null @@ -1,33 +0,0 @@ -services['cache.global_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService')), 'cache.doctrine.orm.default.result' => ($container->privates['cache.doctrine.orm.default.result'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter()), 'cache.doctrine.orm.default.query' => ($container->privates['cache.doctrine.orm.default.query'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_Messenger_RestartWorkersSignalService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_Messenger_RestartWorkersSignalService.php deleted file mode 100644 index 69a5354..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_Messenger_RestartWorkersSignalService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['cache.messenger.restart_workers_signal'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('p-vvwonJ+5', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_RateLimiterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_RateLimiterService.php deleted file mode 100644 index 9fcd9cd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_RateLimiterService.php +++ /dev/null @@ -1,42 +0,0 @@ -privates['cache.rate_limiter'] = $instance = new \Symfony\Component\Cache\Adapter\RedisAdapter(\Symfony\Component\Cache\Adapter\AbstractAdapter::createConnection($container->getEnv('REDIS_CACHE_URL'), ['lazy' => true]), 'Ysu6vzaXuc', 0, ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php deleted file mode 100644 index e7d1260..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['cache.security_is_granted_attribute_expression_language'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('pQb2Ziu4kH', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemClearerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemClearerService.php deleted file mode 100644 index 744347e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemClearerService.php +++ /dev/null @@ -1,26 +0,0 @@ -services['cache.system_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService'))]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemService.php deleted file mode 100644 index 7c1f49e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getCache_SystemService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['cache.system'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('yx81lGDddZ', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConfigBuilder_WarmerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConfigBuilder_WarmerService.php deleted file mode 100644 index a6902fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConfigBuilder_WarmerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['config_builder.warmer'] = new \Symfony\Bundle\FrameworkBundle\CacheWarmer\ConfigBuilderCacheWarmer(($container->services['kernel'] ?? $container->get('kernel', 1)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_CommandLoaderService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_CommandLoaderService.php deleted file mode 100644 index 1122a8f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_CommandLoaderService.php +++ /dev/null @@ -1,210 +0,0 @@ -services['console.command_loader'] = new \Symfony\Component\Console\CommandLoader\ContainerCommandLoader(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'App\\Command\\RedisImportCommand' => ['privates', '.App\\Command\\RedisImportCommand.lazy', 'getRedisImportCommand_LazyService', true], - 'App\\Command\\RedisReadCommand' => ['privates', '.App\\Command\\RedisReadCommand.lazy', 'getRedisReadCommand_LazyService', true], - 'App\\Command\\TriggerTestCommand' => ['privates', '.App\\Command\\TriggerTestCommand.lazy', 'getTriggerTestCommand_LazyService', true], - 'console.command.about' => ['privates', '.console.command.about.lazy', 'get_Console_Command_About_LazyService', true], - 'console.command.assets_install' => ['privates', '.console.command.assets_install.lazy', 'get_Console_Command_AssetsInstall_LazyService', true], - 'console.command.cache_clear' => ['privates', '.console.command.cache_clear.lazy', 'get_Console_Command_CacheClear_LazyService', true], - 'console.command.cache_pool_clear' => ['privates', '.console.command.cache_pool_clear.lazy', 'get_Console_Command_CachePoolClear_LazyService', true], - 'console.command.cache_pool_prune' => ['privates', '.console.command.cache_pool_prune.lazy', 'get_Console_Command_CachePoolPrune_LazyService', true], - 'console.command.cache_pool_invalidate_tags' => ['privates', '.console.command.cache_pool_invalidate_tags.lazy', 'get_Console_Command_CachePoolInvalidateTags_LazyService', true], - 'console.command.cache_pool_delete' => ['privates', '.console.command.cache_pool_delete.lazy', 'get_Console_Command_CachePoolDelete_LazyService', true], - 'console.command.cache_pool_list' => ['privates', '.console.command.cache_pool_list.lazy', 'get_Console_Command_CachePoolList_LazyService', true], - 'console.command.cache_warmup' => ['privates', '.console.command.cache_warmup.lazy', 'get_Console_Command_CacheWarmup_LazyService', true], - 'console.command.config_debug' => ['privates', '.console.command.config_debug.lazy', 'get_Console_Command_ConfigDebug_LazyService', true], - 'console.command.config_dump_reference' => ['privates', '.console.command.config_dump_reference.lazy', 'get_Console_Command_ConfigDumpReference_LazyService', true], - 'console.command.container_debug' => ['privates', '.console.command.container_debug.lazy', 'get_Console_Command_ContainerDebug_LazyService', true], - 'console.command.container_lint' => ['privates', '.console.command.container_lint.lazy', 'get_Console_Command_ContainerLint_LazyService', true], - 'console.command.debug_autowiring' => ['privates', '.console.command.debug_autowiring.lazy', 'get_Console_Command_DebugAutowiring_LazyService', true], - 'console.command.dotenv_debug' => ['privates', '.console.command.dotenv_debug.lazy', 'get_Console_Command_DotenvDebug_LazyService', true], - 'console.command.event_dispatcher_debug' => ['privates', '.console.command.event_dispatcher_debug.lazy', 'get_Console_Command_EventDispatcherDebug_LazyService', true], - 'console.command.messenger_consume_messages' => ['privates', '.console.command.messenger_consume_messages.lazy', 'get_Console_Command_MessengerConsumeMessages_LazyService', true], - 'console.command.messenger_setup_transports' => ['privates', '.console.command.messenger_setup_transports.lazy', 'get_Console_Command_MessengerSetupTransports_LazyService', true], - 'console.command.messenger_debug' => ['privates', '.console.command.messenger_debug.lazy', 'get_Console_Command_MessengerDebug_LazyService', true], - 'console.command.messenger_stop_workers' => ['privates', '.console.command.messenger_stop_workers.lazy', 'get_Console_Command_MessengerStopWorkers_LazyService', true], - 'console.command.messenger_stats' => ['privates', '.console.command.messenger_stats.lazy', 'get_Console_Command_MessengerStats_LazyService', true], - 'console.command.router_debug' => ['privates', '.console.command.router_debug.lazy', 'get_Console_Command_RouterDebug_LazyService', true], - 'console.command.router_match' => ['privates', '.console.command.router_match.lazy', 'get_Console_Command_RouterMatch_LazyService', true], - 'console.command.yaml_lint' => ['privates', '.console.command.yaml_lint.lazy', 'get_Console_Command_YamlLint_LazyService', true], - 'console.command.secrets_set' => ['privates', '.console.command.secrets_set.lazy', 'get_Console_Command_SecretsSet_LazyService', true], - 'console.command.secrets_remove' => ['privates', '.console.command.secrets_remove.lazy', 'get_Console_Command_SecretsRemove_LazyService', true], - 'console.command.secrets_generate_key' => ['privates', '.console.command.secrets_generate_key.lazy', 'get_Console_Command_SecretsGenerateKey_LazyService', true], - 'console.command.secrets_list' => ['privates', '.console.command.secrets_list.lazy', 'get_Console_Command_SecretsList_LazyService', true], - 'console.command.secrets_decrypt_to_local' => ['privates', '.console.command.secrets_decrypt_to_local.lazy', 'get_Console_Command_SecretsDecryptToLocal_LazyService', true], - 'console.command.secrets_encrypt_from_local' => ['privates', '.console.command.secrets_encrypt_from_local.lazy', 'get_Console_Command_SecretsEncryptFromLocal_LazyService', true], - 'security.command.debug_firewall' => ['privates', '.security.command.debug_firewall.lazy', 'get_Security_Command_DebugFirewall_LazyService', true], - 'security.command.user_password_hash' => ['privates', '.security.command.user_password_hash.lazy', 'get_Security_Command_UserPasswordHash_LazyService', true], - 'doctrine.database_create_command' => ['privates', 'doctrine.database_create_command', 'getDoctrine_DatabaseCreateCommandService', true], - 'doctrine.database_drop_command' => ['privates', 'doctrine.database_drop_command', 'getDoctrine_DatabaseDropCommandService', true], - 'doctrine.query_sql_command' => ['privates', 'doctrine.query_sql_command', 'getDoctrine_QuerySqlCommandService', true], - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => ['privates', 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', 'getRunSqlCommandService', true], - 'doctrine.cache_clear_metadata_command' => ['privates', 'doctrine.cache_clear_metadata_command', 'getDoctrine_CacheClearMetadataCommandService', true], - 'doctrine.cache_clear_query_cache_command' => ['privates', 'doctrine.cache_clear_query_cache_command', 'getDoctrine_CacheClearQueryCacheCommandService', true], - 'doctrine.cache_clear_result_command' => ['privates', 'doctrine.cache_clear_result_command', 'getDoctrine_CacheClearResultCommandService', true], - 'doctrine.cache_collection_region_command' => ['privates', 'doctrine.cache_collection_region_command', 'getDoctrine_CacheCollectionRegionCommandService', true], - 'doctrine.schema_create_command' => ['privates', 'doctrine.schema_create_command', 'getDoctrine_SchemaCreateCommandService', true], - 'doctrine.schema_drop_command' => ['privates', 'doctrine.schema_drop_command', 'getDoctrine_SchemaDropCommandService', true], - 'doctrine.clear_entity_region_command' => ['privates', 'doctrine.clear_entity_region_command', 'getDoctrine_ClearEntityRegionCommandService', true], - 'doctrine.mapping_info_command' => ['privates', 'doctrine.mapping_info_command', 'getDoctrine_MappingInfoCommandService', true], - 'doctrine.clear_query_region_command' => ['privates', 'doctrine.clear_query_region_command', 'getDoctrine_ClearQueryRegionCommandService', true], - 'doctrine.query_dql_command' => ['privates', 'doctrine.query_dql_command', 'getDoctrine_QueryDqlCommandService', true], - 'doctrine.schema_update_command' => ['privates', 'doctrine.schema_update_command', 'getDoctrine_SchemaUpdateCommandService', true], - 'doctrine.schema_validate_command' => ['privates', 'doctrine.schema_validate_command', 'getDoctrine_SchemaValidateCommandService', true], - 'doctrine_migrations.diff_command' => ['privates', '.doctrine_migrations.diff_command.lazy', 'get_DoctrineMigrations_DiffCommand_LazyService', true], - 'doctrine_migrations.sync_metadata_command' => ['privates', '.doctrine_migrations.sync_metadata_command.lazy', 'get_DoctrineMigrations_SyncMetadataCommand_LazyService', true], - 'doctrine_migrations.versions_command' => ['privates', '.doctrine_migrations.versions_command.lazy', 'get_DoctrineMigrations_VersionsCommand_LazyService', true], - 'doctrine_migrations.current_command' => ['privates', '.doctrine_migrations.current_command.lazy', 'get_DoctrineMigrations_CurrentCommand_LazyService', true], - 'doctrine_migrations.dump_schema_command' => ['privates', '.doctrine_migrations.dump_schema_command.lazy', 'get_DoctrineMigrations_DumpSchemaCommand_LazyService', true], - 'doctrine_migrations.execute_command' => ['privates', '.doctrine_migrations.execute_command.lazy', 'get_DoctrineMigrations_ExecuteCommand_LazyService', true], - 'doctrine_migrations.generate_command' => ['privates', '.doctrine_migrations.generate_command.lazy', 'get_DoctrineMigrations_GenerateCommand_LazyService', true], - 'doctrine_migrations.latest_command' => ['privates', '.doctrine_migrations.latest_command.lazy', 'get_DoctrineMigrations_LatestCommand_LazyService', true], - 'doctrine_migrations.migrate_command' => ['privates', '.doctrine_migrations.migrate_command.lazy', 'get_DoctrineMigrations_MigrateCommand_LazyService', true], - 'doctrine_migrations.rollup_command' => ['privates', '.doctrine_migrations.rollup_command.lazy', 'get_DoctrineMigrations_RollupCommand_LazyService', true], - 'doctrine_migrations.status_command' => ['privates', '.doctrine_migrations.status_command.lazy', 'get_DoctrineMigrations_StatusCommand_LazyService', true], - 'doctrine_migrations.up_to_date_command' => ['privates', '.doctrine_migrations.up_to_date_command.lazy', 'get_DoctrineMigrations_UpToDateCommand_LazyService', true], - 'doctrine_migrations.version_command' => ['privates', '.doctrine_migrations.version_command.lazy', 'get_DoctrineMigrations_VersionCommand_LazyService', true], - 'maker.auto_command.make_auth' => ['privates', '.maker.auto_command.make_auth.lazy', 'get_Maker_AutoCommand_MakeAuth_LazyService', true], - 'maker.auto_command.make_command' => ['privates', '.maker.auto_command.make_command.lazy', 'get_Maker_AutoCommand_MakeCommand_LazyService', true], - 'maker.auto_command.make_twig_component' => ['privates', '.maker.auto_command.make_twig_component.lazy', 'get_Maker_AutoCommand_MakeTwigComponent_LazyService', true], - 'maker.auto_command.make_controller' => ['privates', '.maker.auto_command.make_controller.lazy', 'get_Maker_AutoCommand_MakeController_LazyService', true], - 'maker.auto_command.make_crud' => ['privates', '.maker.auto_command.make_crud.lazy', 'get_Maker_AutoCommand_MakeCrud_LazyService', true], - 'maker.auto_command.make_docker_database' => ['privates', '.maker.auto_command.make_docker_database.lazy', 'get_Maker_AutoCommand_MakeDockerDatabase_LazyService', true], - 'maker.auto_command.make_entity' => ['privates', '.maker.auto_command.make_entity.lazy', 'get_Maker_AutoCommand_MakeEntity_LazyService', true], - 'maker.auto_command.make_fixtures' => ['privates', '.maker.auto_command.make_fixtures.lazy', 'get_Maker_AutoCommand_MakeFixtures_LazyService', true], - 'maker.auto_command.make_form' => ['privates', '.maker.auto_command.make_form.lazy', 'get_Maker_AutoCommand_MakeForm_LazyService', true], - 'maker.auto_command.make_listener' => ['privates', '.maker.auto_command.make_listener.lazy', 'get_Maker_AutoCommand_MakeListener_LazyService', true], - 'maker.auto_command.make_message' => ['privates', '.maker.auto_command.make_message.lazy', 'get_Maker_AutoCommand_MakeMessage_LazyService', true], - 'maker.auto_command.make_messenger_middleware' => ['privates', '.maker.auto_command.make_messenger_middleware.lazy', 'get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService', true], - 'maker.auto_command.make_registration_form' => ['privates', '.maker.auto_command.make_registration_form.lazy', 'get_Maker_AutoCommand_MakeRegistrationForm_LazyService', true], - 'maker.auto_command.make_reset_password' => ['privates', '.maker.auto_command.make_reset_password.lazy', 'get_Maker_AutoCommand_MakeResetPassword_LazyService', true], - 'maker.auto_command.make_schedule' => ['privates', '.maker.auto_command.make_schedule.lazy', 'get_Maker_AutoCommand_MakeSchedule_LazyService', true], - 'maker.auto_command.make_serializer_encoder' => ['privates', '.maker.auto_command.make_serializer_encoder.lazy', 'get_Maker_AutoCommand_MakeSerializerEncoder_LazyService', true], - 'maker.auto_command.make_serializer_normalizer' => ['privates', '.maker.auto_command.make_serializer_normalizer.lazy', 'get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService', true], - 'maker.auto_command.make_twig_extension' => ['privates', '.maker.auto_command.make_twig_extension.lazy', 'get_Maker_AutoCommand_MakeTwigExtension_LazyService', true], - 'maker.auto_command.make_test' => ['privates', '.maker.auto_command.make_test.lazy', 'get_Maker_AutoCommand_MakeTest_LazyService', true], - 'maker.auto_command.make_validator' => ['privates', '.maker.auto_command.make_validator.lazy', 'get_Maker_AutoCommand_MakeValidator_LazyService', true], - 'maker.auto_command.make_voter' => ['privates', '.maker.auto_command.make_voter.lazy', 'get_Maker_AutoCommand_MakeVoter_LazyService', true], - 'maker.auto_command.make_user' => ['privates', '.maker.auto_command.make_user.lazy', 'get_Maker_AutoCommand_MakeUser_LazyService', true], - 'maker.auto_command.make_migration' => ['privates', '.maker.auto_command.make_migration.lazy', 'get_Maker_AutoCommand_MakeMigration_LazyService', true], - 'maker.auto_command.make_stimulus_controller' => ['privates', '.maker.auto_command.make_stimulus_controller.lazy', 'get_Maker_AutoCommand_MakeStimulusController_LazyService', true], - 'maker.auto_command.make_security_form_login' => ['privates', '.maker.auto_command.make_security_form_login.lazy', 'get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService', true], - 'maker.auto_command.make_security_custom' => ['privates', '.maker.auto_command.make_security_custom.lazy', 'get_Maker_AutoCommand_MakeSecurityCustom_LazyService', true], - 'maker.auto_command.make_webhook' => ['privates', '.maker.auto_command.make_webhook.lazy', 'get_Maker_AutoCommand_MakeWebhook_LazyService', true], - ], [ - 'App\\Command\\RedisImportCommand' => '?', - 'App\\Command\\RedisReadCommand' => '?', - 'App\\Command\\TriggerTestCommand' => '?', - 'console.command.about' => '?', - 'console.command.assets_install' => '?', - 'console.command.cache_clear' => '?', - 'console.command.cache_pool_clear' => '?', - 'console.command.cache_pool_prune' => '?', - 'console.command.cache_pool_invalidate_tags' => '?', - 'console.command.cache_pool_delete' => '?', - 'console.command.cache_pool_list' => '?', - 'console.command.cache_warmup' => '?', - 'console.command.config_debug' => '?', - 'console.command.config_dump_reference' => '?', - 'console.command.container_debug' => '?', - 'console.command.container_lint' => '?', - 'console.command.debug_autowiring' => '?', - 'console.command.dotenv_debug' => '?', - 'console.command.event_dispatcher_debug' => '?', - 'console.command.messenger_consume_messages' => '?', - 'console.command.messenger_setup_transports' => '?', - 'console.command.messenger_debug' => '?', - 'console.command.messenger_stop_workers' => '?', - 'console.command.messenger_stats' => '?', - 'console.command.router_debug' => '?', - 'console.command.router_match' => '?', - 'console.command.yaml_lint' => '?', - 'console.command.secrets_set' => '?', - 'console.command.secrets_remove' => '?', - 'console.command.secrets_generate_key' => '?', - 'console.command.secrets_list' => '?', - 'console.command.secrets_decrypt_to_local' => '?', - 'console.command.secrets_encrypt_from_local' => '?', - 'security.command.debug_firewall' => '?', - 'security.command.user_password_hash' => '?', - 'doctrine.database_create_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\CreateDatabaseDoctrineCommand', - 'doctrine.database_drop_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\DropDatabaseDoctrineCommand', - 'doctrine.query_sql_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\Proxy\\RunSqlDoctrineCommand', - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', - 'doctrine.cache_clear_metadata_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\MetadataCommand', - 'doctrine.cache_clear_query_cache_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\QueryCommand', - 'doctrine.cache_clear_result_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\ResultCommand', - 'doctrine.cache_collection_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\CollectionRegionCommand', - 'doctrine.schema_create_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\CreateCommand', - 'doctrine.schema_drop_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\DropCommand', - 'doctrine.clear_entity_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\EntityRegionCommand', - 'doctrine.mapping_info_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\InfoCommand', - 'doctrine.clear_query_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\QueryRegionCommand', - 'doctrine.query_dql_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\RunDqlCommand', - 'doctrine.schema_update_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\UpdateCommand', - 'doctrine.schema_validate_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ValidateSchemaCommand', - 'doctrine_migrations.diff_command' => '?', - 'doctrine_migrations.sync_metadata_command' => '?', - 'doctrine_migrations.versions_command' => '?', - 'doctrine_migrations.current_command' => '?', - 'doctrine_migrations.dump_schema_command' => '?', - 'doctrine_migrations.execute_command' => '?', - 'doctrine_migrations.generate_command' => '?', - 'doctrine_migrations.latest_command' => '?', - 'doctrine_migrations.migrate_command' => '?', - 'doctrine_migrations.rollup_command' => '?', - 'doctrine_migrations.status_command' => '?', - 'doctrine_migrations.up_to_date_command' => '?', - 'doctrine_migrations.version_command' => '?', - 'maker.auto_command.make_auth' => '?', - 'maker.auto_command.make_command' => '?', - 'maker.auto_command.make_twig_component' => '?', - 'maker.auto_command.make_controller' => '?', - 'maker.auto_command.make_crud' => '?', - 'maker.auto_command.make_docker_database' => '?', - 'maker.auto_command.make_entity' => '?', - 'maker.auto_command.make_fixtures' => '?', - 'maker.auto_command.make_form' => '?', - 'maker.auto_command.make_listener' => '?', - 'maker.auto_command.make_message' => '?', - 'maker.auto_command.make_messenger_middleware' => '?', - 'maker.auto_command.make_registration_form' => '?', - 'maker.auto_command.make_reset_password' => '?', - 'maker.auto_command.make_schedule' => '?', - 'maker.auto_command.make_serializer_encoder' => '?', - 'maker.auto_command.make_serializer_normalizer' => '?', - 'maker.auto_command.make_twig_extension' => '?', - 'maker.auto_command.make_test' => '?', - 'maker.auto_command.make_validator' => '?', - 'maker.auto_command.make_voter' => '?', - 'maker.auto_command.make_user' => '?', - 'maker.auto_command.make_migration' => '?', - 'maker.auto_command.make_stimulus_controller' => '?', - 'maker.auto_command.make_security_form_login' => '?', - 'maker.auto_command.make_security_custom' => '?', - 'maker.auto_command.make_webhook' => '?', - ]), ['mto:prices:import' => 'App\\Command\\RedisImportCommand', 'mto:prices:read' => 'App\\Command\\RedisReadCommand', 'mto:test:trigger-import' => 'App\\Command\\TriggerTestCommand', 'about' => 'console.command.about', 'assets:install' => 'console.command.assets_install', 'cache:clear' => 'console.command.cache_clear', 'cache:pool:clear' => 'console.command.cache_pool_clear', 'cache:pool:prune' => 'console.command.cache_pool_prune', 'cache:pool:invalidate-tags' => 'console.command.cache_pool_invalidate_tags', 'cache:pool:delete' => 'console.command.cache_pool_delete', 'cache:pool:list' => 'console.command.cache_pool_list', 'cache:warmup' => 'console.command.cache_warmup', 'debug:config' => 'console.command.config_debug', 'config:dump-reference' => 'console.command.config_dump_reference', 'debug:container' => 'console.command.container_debug', 'lint:container' => 'console.command.container_lint', 'debug:autowiring' => 'console.command.debug_autowiring', 'debug:dotenv' => 'console.command.dotenv_debug', 'debug:event-dispatcher' => 'console.command.event_dispatcher_debug', 'messenger:consume' => 'console.command.messenger_consume_messages', 'messenger:setup-transports' => 'console.command.messenger_setup_transports', 'debug:messenger' => 'console.command.messenger_debug', 'messenger:stop-workers' => 'console.command.messenger_stop_workers', 'messenger:stats' => 'console.command.messenger_stats', 'debug:router' => 'console.command.router_debug', 'router:match' => 'console.command.router_match', 'lint:yaml' => 'console.command.yaml_lint', 'secrets:set' => 'console.command.secrets_set', 'secrets:remove' => 'console.command.secrets_remove', 'secrets:generate-keys' => 'console.command.secrets_generate_key', 'secrets:list' => 'console.command.secrets_list', 'secrets:decrypt-to-local' => 'console.command.secrets_decrypt_to_local', 'secrets:encrypt-from-local' => 'console.command.secrets_encrypt_from_local', 'debug:firewall' => 'security.command.debug_firewall', 'security:hash-password' => 'security.command.user_password_hash', 'doctrine:database:create' => 'doctrine.database_create_command', 'doctrine:database:drop' => 'doctrine.database_drop_command', 'doctrine:query:sql' => 'doctrine.query_sql_command', 'dbal:run-sql' => 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', 'doctrine:cache:clear-metadata' => 'doctrine.cache_clear_metadata_command', 'doctrine:cache:clear-query' => 'doctrine.cache_clear_query_cache_command', 'doctrine:cache:clear-result' => 'doctrine.cache_clear_result_command', 'doctrine:cache:clear-collection-region' => 'doctrine.cache_collection_region_command', 'doctrine:schema:create' => 'doctrine.schema_create_command', 'doctrine:schema:drop' => 'doctrine.schema_drop_command', 'doctrine:cache:clear-entity-region' => 'doctrine.clear_entity_region_command', 'doctrine:mapping:info' => 'doctrine.mapping_info_command', 'doctrine:cache:clear-query-region' => 'doctrine.clear_query_region_command', 'doctrine:query:dql' => 'doctrine.query_dql_command', 'doctrine:schema:update' => 'doctrine.schema_update_command', 'doctrine:schema:validate' => 'doctrine.schema_validate_command', 'doctrine:migrations:diff' => 'doctrine_migrations.diff_command', 'doctrine:migrations:sync-metadata-storage' => 'doctrine_migrations.sync_metadata_command', 'doctrine:migrations:list' => 'doctrine_migrations.versions_command', 'doctrine:migrations:current' => 'doctrine_migrations.current_command', 'doctrine:migrations:dump-schema' => 'doctrine_migrations.dump_schema_command', 'doctrine:migrations:execute' => 'doctrine_migrations.execute_command', 'doctrine:migrations:generate' => 'doctrine_migrations.generate_command', 'doctrine:migrations:latest' => 'doctrine_migrations.latest_command', 'doctrine:migrations:migrate' => 'doctrine_migrations.migrate_command', 'doctrine:migrations:rollup' => 'doctrine_migrations.rollup_command', 'doctrine:migrations:status' => 'doctrine_migrations.status_command', 'doctrine:migrations:up-to-date' => 'doctrine_migrations.up_to_date_command', 'doctrine:migrations:version' => 'doctrine_migrations.version_command', 'make:auth' => 'maker.auto_command.make_auth', 'make:command' => 'maker.auto_command.make_command', 'make:twig-component' => 'maker.auto_command.make_twig_component', 'make:controller' => 'maker.auto_command.make_controller', 'make:crud' => 'maker.auto_command.make_crud', 'make:docker:database' => 'maker.auto_command.make_docker_database', 'make:entity' => 'maker.auto_command.make_entity', 'make:fixtures' => 'maker.auto_command.make_fixtures', 'make:form' => 'maker.auto_command.make_form', 'make:listener' => 'maker.auto_command.make_listener', 'make:subscriber' => 'maker.auto_command.make_listener', 'make:message' => 'maker.auto_command.make_message', 'make:messenger-middleware' => 'maker.auto_command.make_messenger_middleware', 'make:registration-form' => 'maker.auto_command.make_registration_form', 'make:reset-password' => 'maker.auto_command.make_reset_password', 'make:schedule' => 'maker.auto_command.make_schedule', 'make:serializer:encoder' => 'maker.auto_command.make_serializer_encoder', 'make:serializer:normalizer' => 'maker.auto_command.make_serializer_normalizer', 'make:twig-extension' => 'maker.auto_command.make_twig_extension', 'make:test' => 'maker.auto_command.make_test', 'make:unit-test' => 'maker.auto_command.make_test', 'make:functional-test' => 'maker.auto_command.make_test', 'make:validator' => 'maker.auto_command.make_validator', 'make:voter' => 'maker.auto_command.make_voter', 'make:user' => 'maker.auto_command.make_user', 'make:migration' => 'maker.auto_command.make_migration', 'make:stimulus-controller' => 'maker.auto_command.make_stimulus_controller', 'make:security:form-login' => 'maker.auto_command.make_security_form_login', 'make:security:custom' => 'maker.auto_command.make_security_custom', 'make:webhook' => 'maker.auto_command.make_webhook']); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AboutService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AboutService.php deleted file mode 100644 index 9354cb8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AboutService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.about'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AboutCommand(); - - $instance->setName('about'); - $instance->setDescription('Display information about the current project'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AssetsInstallService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AssetsInstallService.php deleted file mode 100644 index fe32ac9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_AssetsInstallService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.assets_install'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand(($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()), \dirname(__DIR__, 4)); - - $instance->setName('assets:install'); - $instance->setDescription('Install bundle\'s web assets under a public directory'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheClearService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheClearService.php deleted file mode 100644 index 2c87c72..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheClearService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.cache_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand(new \Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer(new RewindableGenerator(fn () => new \EmptyIterator(), 0)), ($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem())); - - $instance->setName('cache:clear'); - $instance->setDescription('Clear the cache'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolClearService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolClearService.php deleted file mode 100644 index 0760666..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolClearService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:clear'); - $instance->setDescription('Clear cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolDeleteService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolDeleteService.php deleted file mode 100644 index 6a561d4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolDeleteService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_delete'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:delete'); - $instance->setDescription('Delete an item from a cache pool'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolInvalidateTagsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolInvalidateTagsService.php deleted file mode 100644 index 6557b24..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolInvalidateTagsService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['console.command.cache_pool_invalidate_tags'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'cache.app' => ['privates', 'cache.app.taggable', 'getCache_App_TaggableService', true], - 'cache.rate_limiter' => ['privates', '.cache.rate_limiter.taggable', 'get_Cache_RateLimiter_TaggableService', true], - ], [ - 'cache.app' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter', - 'cache.rate_limiter' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter', - ])); - - $instance->setName('cache:pool:invalidate-tags'); - $instance->setDescription('Invalidate cache tags for all or a specific pool'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolListService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolListService.php deleted file mode 100644 index 4f14a83..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolListService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_list'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand(['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:list'); - $instance->setDescription('List available cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolPruneService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolPruneService.php deleted file mode 100644 index 9818c17..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CachePoolPruneService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.cache_pool_prune'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand(new RewindableGenerator(function () use ($container) { - yield 'cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')); - yield 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')); - }, 2)); - - $instance->setName('cache:pool:prune'); - $instance->setDescription('Prune cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheWarmupService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheWarmupService.php deleted file mode 100644 index 9964f85..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_CacheWarmupService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_warmup'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand(($container->services['cache_warmer'] ?? $container->load('getCacheWarmerService'))); - - $instance->setName('cache:warmup'); - $instance->setDescription('Warm up an empty cache'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDebugService.php deleted file mode 100644 index 231503d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDebugService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.config_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand(); - - $instance->setName('debug:config'); - $instance->setDescription('Dump the current configuration for an extension'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDumpReferenceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDumpReferenceService.php deleted file mode 100644 index 88bedd3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ConfigDumpReferenceService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.config_dump_reference'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand(); - - $instance->setName('config:dump-reference'); - $instance->setDescription('Dump the default configuration for an extension'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerDebugService.php deleted file mode 100644 index 94aecca..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerDebugService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.container_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand(); - - $instance->setName('debug:container'); - $instance->setDescription('Display current services for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerLintService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerLintService.php deleted file mode 100644 index 2b7ed0a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_ContainerLintService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.container_lint'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand(); - - $instance->setName('lint:container'); - $instance->setDescription('Ensure that arguments injected into services match type declarations'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DebugAutowiringService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DebugAutowiringService.php deleted file mode 100644 index 7d63ad1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DebugAutowiringService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.debug_autowiring'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand(NULL, ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - - $instance->setName('debug:autowiring'); - $instance->setDescription('List classes/interfaces you can use for autowiring'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DotenvDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DotenvDebugService.php deleted file mode 100644 index a08171f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_DotenvDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.dotenv_debug'] = $instance = new \Symfony\Component\Dotenv\Command\DebugCommand('dev', \dirname(__DIR__, 4)); - - $instance->setName('debug:dotenv'); - $instance->setDescription('List all dotenv files with variables and values'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_EventDispatcherDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_EventDispatcherDebugService.php deleted file mode 100644 index 718fb68..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_EventDispatcherDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.event_dispatcher_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand(($container->privates['.service_locator.sPNPNE7'] ?? $container->load('get_ServiceLocator_SPNPNE7Service'))); - - $instance->setName('debug:event-dispatcher'); - $instance->setDescription('Display configured listeners for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerConsumeMessagesService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerConsumeMessagesService.php deleted file mode 100644 index a4549e4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerConsumeMessagesService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.messenger_consume_messages'] = $instance = new \Symfony\Component\Messenger\Command\ConsumeMessagesCommand(($container->privates['messenger.routable_message_bus'] ?? $container->load('getMessenger_RoutableMessageBusService')), ($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService')), ['async'], new \Symfony\Component\Messenger\EventListener\ResetServicesListener(($container->services['services_resetter'] ?? $container->load('getServicesResetterService'))), ['messenger.bus.default'], NULL, NULL); - - $instance->setName('messenger:consume'); - $instance->setDescription('Consume messages'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerDebugService.php deleted file mode 100644 index 6caf3bc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_debug'] = $instance = new \Symfony\Component\Messenger\Command\DebugCommand(['messenger.bus.default' => ['App\\Message\\TriggerPriceImport' => [['App\\MessageHandler\\TriggerPriceImportHandler', []], ['App\\MessageHandler\\TriggerPriceImportHandler', []]], 'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => [['process.messenger.process_message_handler', []]], 'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => [['console.messenger.execute_command_handler', []]], 'Symfony\\Component\\HttpClient\\Messenger\\PingWebhookMessage' => [['http_client.messenger.ping_webhook_handler', []]], 'Symfony\\Component\\Messenger\\Message\\RedispatchMessage' => [['messenger.redispatch_message_handler', []]]]]); - - $instance->setName('debug:messenger'); - $instance->setDescription('List messages you can dispatch using the message buses'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerSetupTransportsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerSetupTransportsService.php deleted file mode 100644 index a8130e7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerSetupTransportsService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_setup_transports'] = $instance = new \Symfony\Component\Messenger\Command\SetupTransportsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']); - - $instance->setName('messenger:setup-transports'); - $instance->setDescription('Prepare the required infrastructure for the transport'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStatsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStatsService.php deleted file mode 100644 index 4426d73..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStatsService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_stats'] = $instance = new \Symfony\Component\Messenger\Command\StatsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']); - - $instance->setName('messenger:stats'); - $instance->setDescription('Show the message count for one or more transports'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStopWorkersService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStopWorkersService.php deleted file mode 100644 index 1031dc8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_MessengerStopWorkersService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_stop_workers'] = $instance = new \Symfony\Component\Messenger\Command\StopWorkersCommand(($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService'))); - - $instance->setName('messenger:stop-workers'); - $instance->setDescription('Stop workers after their current message'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterDebugService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterDebugService.php deleted file mode 100644 index 465e9fd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterDebugService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.router_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand(($container->services['router'] ?? self::getRouterService($container)), ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - - $instance->setName('debug:router'); - $instance->setDescription('Display current routes for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterMatchService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterMatchService.php deleted file mode 100644 index 438083f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_RouterMatchService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.router_match'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand(($container->services['router'] ?? self::getRouterService($container)), new RewindableGenerator(fn () => new \EmptyIterator(), 0)); - - $instance->setName('router:match'); - $instance->setDescription('Help debug routes by simulating a path info match'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsDecryptToLocalService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsDecryptToLocalService.php deleted file mode 100644 index 7523f31..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsDecryptToLocalService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_decrypt_to_local'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsDecryptToLocalCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:decrypt-to-local'); - $instance->setDescription('Decrypt all secrets and stores them in the local vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsEncryptFromLocalService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsEncryptFromLocalService.php deleted file mode 100644 index 35f6f7b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsEncryptFromLocalService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_encrypt_from_local'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsEncryptFromLocalCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:encrypt-from-local'); - $instance->setDescription('Encrypt all local secrets to the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsGenerateKeyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsGenerateKeyService.php deleted file mode 100644 index bab64b0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsGenerateKeyService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_generate_key'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsGenerateKeysCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:generate-keys'); - $instance->setDescription('Generate new encryption keys'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsListService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsListService.php deleted file mode 100644 index 79e545b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsListService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_list'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsListCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:list'); - $instance->setDescription('List all secrets'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsRemoveService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsRemoveService.php deleted file mode 100644 index cfe1b63..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsRemoveService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_remove'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsRemoveCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:remove'); - $instance->setDescription('Remove a secret from the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsSetService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsSetService.php deleted file mode 100644 index 43c2006..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_SecretsSetService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_set'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsSetCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:set'); - $instance->setDescription('Set a secret in the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_YamlLintService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_YamlLintService.php deleted file mode 100644 index 827928d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_Command_YamlLintService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.yaml_lint'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\YamlLintCommand(); - - $instance->setName('lint:yaml'); - $instance->setDescription('Lint a YAML file and outputs encountered errors'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_ErrorListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_ErrorListenerService.php deleted file mode 100644 index fe494f5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getConsole_ErrorListenerService.php +++ /dev/null @@ -1,30 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $container->privates['console.error_listener'] = new \Symfony\Component\Console\EventListener\ErrorListener($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorService.php deleted file mode 100644 index 2d1f29e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['container.env_var_processor'] = new \Symfony\Component\DependencyInjection\EnvVarProcessor($container, new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')); - }, 1)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorsLocatorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorsLocatorService.php deleted file mode 100644 index 22311f6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_EnvVarProcessorsLocatorService.php +++ /dev/null @@ -1,65 +0,0 @@ -services['container.env_var_processors_locator'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'base64' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'bool' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'const' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'csv' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'default' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'defined' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'enum' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'file' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'float' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'int' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'json' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'key' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'not' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'query_string' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'require' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'resolve' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'shuffle' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'string' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'trim' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'url' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - ], [ - 'base64' => '?', - 'bool' => '?', - 'const' => '?', - 'csv' => '?', - 'default' => '?', - 'defined' => '?', - 'enum' => '?', - 'file' => '?', - 'float' => '?', - 'int' => '?', - 'json' => '?', - 'key' => '?', - 'not' => '?', - 'query_string' => '?', - 'require' => '?', - 'resolve' => '?', - 'shuffle' => '?', - 'string' => '?', - 'trim' => '?', - 'url' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_GetRoutingConditionServiceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_GetRoutingConditionServiceService.php deleted file mode 100644 index 8eb94a8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getContainer_GetRoutingConditionServiceService.php +++ /dev/null @@ -1,23 +0,0 @@ -services['container.get_routing_condition_service'] = ($container->privates['.service_locator.Xbsa8iG'] ??= new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [], []))->get(...); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_ErrorHandlerConfiguratorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_ErrorHandlerConfiguratorService.php deleted file mode 100644 index 8b0ff41..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_ErrorHandlerConfiguratorService.php +++ /dev/null @@ -1,30 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $container->services['debug.error_handler_configurator'] = new \Symfony\Component\HttpKernel\Debug\ErrorHandlerConfigurator($a, NULL, -1, true, true, ($container->services['monolog.logger.deprecation'] ?? $container->load('getMonolog_Logger_DeprecationService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_DevService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_DevService.php deleted file mode 100644 index 1f1d356..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_DevService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['debug.security.firewall.authenticator.dev'] = new \Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener(new \Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener(new \Symfony\Component\Security\Http\Authentication\AuthenticatorManager([], ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['debug.security.event_dispatcher.dev'] ?? self::getDebug_Security_EventDispatcher_DevService($container)), 'dev', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), true, true, []))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_MainService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_MainService.php deleted file mode 100644 index c4770ae..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Firewall_Authenticator_MainService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['debug.security.firewall.authenticator.main'] = new \Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener(new \Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener(new \Symfony\Component\Security\Http\Authentication\AuthenticatorManager([], ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['debug.security.event_dispatcher.main'] ?? self::getDebug_Security_EventDispatcher_MainService($container)), 'main', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), true, true, []))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Voter_VoteListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Voter_VoteListenerService.php deleted file mode 100644 index a0f2036..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDebug_Security_Voter_VoteListenerService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['debug.security.voter.vote_listener'])) { - return $container->privates['debug.security.voter.vote_listener']; - } - - return $container->privates['debug.security.voter.vote_listener'] = new \Symfony\Bundle\SecurityBundle\EventListener\VoteListener($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_CurrentCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_CurrentCommandService.php deleted file mode 100644 index 50e5409..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_CurrentCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.current_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\CurrentCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:current'); - - $instance->setName('doctrine:migrations:current'); - $instance->setDescription('Outputs the current version'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DiffCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DiffCommandService.php deleted file mode 100644 index 64e6073..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DiffCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.diff_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\DiffCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:diff'); - - $instance->setName('doctrine:migrations:diff'); - $instance->setDescription('Generate a migration by comparing your current database to your mapping information.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DumpSchemaCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DumpSchemaCommandService.php deleted file mode 100644 index 3eb931e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_DumpSchemaCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.dump_schema_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:dump-schema'); - - $instance->setName('doctrine:migrations:dump-schema'); - $instance->setDescription('Dump the schema for your database to a migration.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_ExecuteCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_ExecuteCommandService.php deleted file mode 100644 index 3e9405f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_ExecuteCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.execute_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\ExecuteCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:execute'); - - $instance->setName('doctrine:migrations:execute'); - $instance->setDescription('Execute one or more migration versions up or down manually.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_GenerateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_GenerateCommandService.php deleted file mode 100644 index 63265bb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_GenerateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.generate_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\GenerateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:generate'); - - $instance->setName('doctrine:migrations:generate'); - $instance->setDescription('Generate a blank migration class.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_LatestCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_LatestCommandService.php deleted file mode 100644 index 0655978..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_LatestCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.latest_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\LatestCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:latest'); - - $instance->setName('doctrine:migrations:latest'); - $instance->setDescription('Outputs the latest version'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_MigrateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_MigrateCommandService.php deleted file mode 100644 index bc4d2b2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_MigrateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.migrate_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\MigrateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:migrate'); - - $instance->setName('doctrine:migrations:migrate'); - $instance->setDescription('Execute a migration to a specified version or the latest available version.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_RollupCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_RollupCommandService.php deleted file mode 100644 index 75e329f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_RollupCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.rollup_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\RollupCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:rollup'); - - $instance->setName('doctrine:migrations:rollup'); - $instance->setDescription('Rollup migrations by deleting all tracked versions and insert the one version that exists.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_StatusCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_StatusCommandService.php deleted file mode 100644 index b9836de..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_StatusCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.status_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\StatusCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:status'); - - $instance->setName('doctrine:migrations:status'); - $instance->setDescription('View the status of a set of migrations.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_SyncMetadataCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_SyncMetadataCommandService.php deleted file mode 100644 index 910bafa..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_SyncMetadataCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.sync_metadata_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:sync-metadata-storage'); - - $instance->setName('doctrine:migrations:sync-metadata-storage'); - $instance->setDescription('Ensures that the metadata storage is at the latest version.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_UpToDateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_UpToDateCommandService.php deleted file mode 100644 index 57ae06a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_UpToDateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.up_to_date_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\UpToDateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:up-to-date'); - - $instance->setName('doctrine:migrations:up-to-date'); - $instance->setDescription('Tells you if your schema is up-to-date.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionCommandService.php deleted file mode 100644 index 734b60d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.version_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\VersionCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:version'); - - $instance->setName('doctrine:migrations:version'); - $instance->setDescription('Manually add and delete migration versions from the version table.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionsCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionsCommandService.php deleted file mode 100644 index 0da6290..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineMigrations_VersionsCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.versions_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\ListCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:versions'); - - $instance->setName('doctrine:migrations:list'); - $instance->setDescription('Display a list of all available migrations and their status.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineService.php deleted file mode 100644 index 3254c56..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrineService.php +++ /dev/null @@ -1,29 +0,0 @@ -services['doctrine'] = new \Doctrine\Bundle\DoctrineBundle\Registry($container, $container->parameters['doctrine.connections'], $container->parameters['doctrine.entity_managers'], 'default', 'default'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearMetadataCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearMetadataCommandService.php deleted file mode 100644 index 3eaad0d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearMetadataCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_metadata_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-metadata'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearQueryCacheCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearQueryCacheCommandService.php deleted file mode 100644 index 089e231..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearQueryCacheCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_query_cache_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-query'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearResultCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearResultCommandService.php deleted file mode 100644 index db50f86..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheClearResultCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_result_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-result'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheCollectionRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheCollectionRegionCommandService.php deleted file mode 100644 index 6aa2af8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_CacheCollectionRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_collection_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\CollectionRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-collection-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearEntityRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearEntityRegionCommandService.php deleted file mode 100644 index bc283a0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearEntityRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.clear_entity_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\EntityRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-entity-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearQueryRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearQueryRegionCommandService.php deleted file mode 100644 index 7598b69..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_ClearQueryRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.clear_query_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-query-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseCreateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseCreateCommandService.php deleted file mode 100644 index e938b5e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseCreateCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.database_create_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - - $instance->setName('doctrine:database:create'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseDropCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseDropCommandService.php deleted file mode 100644 index 5cc500a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_DatabaseDropCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.database_drop_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - - $instance->setName('doctrine:database:drop'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnectionService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnectionService.php deleted file mode 100644 index 3a4ae2e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnectionService.php +++ /dev/null @@ -1,52 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $b->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $b->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - $c = new \Doctrine\Bundle\DoctrineBundle\Middleware\DebugMiddleware(($container->privates['doctrine.debug_data_holder'] ??= new \Doctrine\Bundle\DoctrineBundle\Middleware\BacktraceDebugDataHolder(['default'])), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - $c->setConnectionName('default'); - - $a->setSchemaManagerFactory(new \Doctrine\DBAL\Schema\DefaultSchemaManagerFactory()); - $a->setSchemaAssetsFilter(new \Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager([($container->privates['doctrine_migrations.schema_filter_listener'] ??= new \Doctrine\Bundle\MigrationsBundle\EventListener\SchemaFilterListener('doctrine_migration_versions'))])); - $a->setMiddlewares([new \Doctrine\DBAL\Logging\Middleware($b), $c]); - - return $container->services['doctrine.dbal.default_connection'] = (new \Doctrine\Bundle\DoctrineBundle\ConnectionFactory($container->parameters['doctrine.dbal.connection_factory.types'], new \Doctrine\DBAL\Tools\DsnParser(['db2' => 'ibm_db2', 'mssql' => 'pdo_sqlsrv', 'mysql' => 'pdo_mysql', 'mysql2' => 'pdo_mysql', 'postgres' => 'pdo_pgsql', 'postgresql' => 'pdo_pgsql', 'pgsql' => 'pdo_pgsql', 'sqlite' => 'pdo_sqlite', 'sqlite3' => 'pdo_sqlite'])))->createConnection(['url' => $container->getEnv('resolve:DATABASE_URL'), 'charset' => 'utf8mb4', 'use_savepoints' => true, 'driver' => 'pdo_mysql', 'idle_connection_ttl' => 600, 'host' => 'localhost', 'port' => NULL, 'user' => 'root', 'password' => NULL, 'driverOptions' => [], 'serverVersion' => '8.0', 'defaultTableOptions' => ['charset' => 'utf8mb4', 'collate' => 'utf8mb4_unicode_ci']], $a, NULL, []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnection_EventManagerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnection_EventManagerService.php deleted file mode 100644 index a0c3110..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Dbal_DefaultConnection_EventManagerService.php +++ /dev/null @@ -1,38 +0,0 @@ -privates['doctrine.dbal.default_connection.event_manager'] = new \Symfony\Bridge\Doctrine\ContainerAwareEventManager(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'doctrine.orm.default_listeners.attach_entity_listeners' => ['privates', 'doctrine.orm.default_listeners.attach_entity_listeners', 'getDoctrine_Orm_DefaultListeners_AttachEntityListenersService', true], - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => ['privates', 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener', 'getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService', true], - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => ['privates', 'doctrine.orm.listeners.doctrine_token_provider_schema_listener', 'getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService', true], - 'doctrine.orm.listeners.lock_store_schema_listener' => ['privates', 'doctrine.orm.listeners.lock_store_schema_listener', 'getDoctrine_Orm_Listeners_LockStoreSchemaListenerService', true], - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => ['privates', 'doctrine.orm.listeners.pdo_session_handler_schema_listener', 'getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService', true], - ], [ - 'doctrine.orm.default_listeners.attach_entity_listeners' => '?', - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => '?', - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => '?', - 'doctrine.orm.listeners.lock_store_schema_listener' => '?', - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => '?', - ]), [[['postGenerateSchema'], 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.doctrine_token_provider_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.pdo_session_handler_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.lock_store_schema_listener'], [['loadClassMetadata'], 'doctrine.orm.default_listeners.attach_entity_listeners']]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_MappingInfoCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_MappingInfoCommandService.php deleted file mode 100644 index 232e43b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_MappingInfoCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.mapping_info_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\InfoCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:mapping:info'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php deleted file mode 100644 index 971b677..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')); - - if (isset($container->privates['doctrine.migrations.container_aware_migrations_factory'])) { - return $container->privates['doctrine.migrations.container_aware_migrations_factory']; - } - - return $container->privates['doctrine.migrations.container_aware_migrations_factory'] = new \Doctrine\Bundle\MigrationsBundle\MigrationsFactory\ContainerAwareMigrationFactory($a->getMigrationFactory(), $container); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_DependencyFactoryService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_DependencyFactoryService.php deleted file mode 100644 index f6d0c57..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Migrations_DependencyFactoryService.php +++ /dev/null @@ -1,43 +0,0 @@ -addMigrationsDirectory('DoctrineMigrations', (\dirname(__DIR__, 4).'/migrations')); - $a->setAllOrNothing(false); - $a->setCheckDatabasePlatform(true); - $a->setTransactional(true); - $a->setMetadataStorageConfiguration(new \Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration()); - - $container->privates['doctrine.migrations.dependency_factory'] = $instance = \Doctrine\Migrations\DependencyFactory::fromEntityManager(new \Doctrine\Migrations\Configuration\Migration\ExistingConfiguration($a), \Doctrine\Migrations\Configuration\EntityManager\ManagerRegistryEntityManager::withSimpleDefault(($container->services['doctrine'] ?? $container->load('getDoctrineService'))), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - - $instance->setDefinition('Doctrine\\Migrations\\Version\\MigrationFactory', #[\Closure(name: 'doctrine.migrations.container_aware_migrations_factory', class: 'Doctrine\\Bundle\\MigrationsBundle\\MigrationsFactory\\ContainerAwareMigrationFactory')] fn () => ($container->privates['doctrine.migrations.container_aware_migrations_factory'] ?? $container->load('getDoctrine_Migrations_ContainerAwareMigrationsFactoryService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Command_EntityManagerProviderService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Command_EntityManagerProviderService.php deleted file mode 100644 index 615541c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Command_EntityManagerProviderService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.command.entity_manager_provider'] = new \Doctrine\Bundle\DoctrineBundle\Orm\ManagerRegistryAwareEntityManagerProvider(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultConfigurationService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultConfigurationService.php deleted file mode 100644 index 14f3c6c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultConfigurationService.php +++ /dev/null @@ -1,82 +0,0 @@ -privates['doctrine.orm.default_configuration'] = $instance = new \Doctrine\ORM\Configuration(); - - $a = new \Doctrine\Persistence\Mapping\Driver\MappingDriverChain(); - $a->addDriver(($container->privates['doctrine.orm.default_attribute_metadata_driver'] ??= new \Doctrine\ORM\Mapping\Driver\AttributeDriver([(\dirname(__DIR__, 4).'/src/Entity')], true)), 'App\\Entity'); - - $instance->setEntityNamespaces(['App' => 'App\\Entity']); - $instance->setMetadataCache(new \Symfony\Component\Cache\Adapter\ArrayAdapter()); - $instance->setQueryCache(($container->privates['cache.doctrine.orm.default.query'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())); - $instance->setResultCache(($container->privates['cache.doctrine.orm.default.result'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())); - $instance->setMetadataDriverImpl(new \Doctrine\Bundle\DoctrineBundle\Mapping\MappingDriver($a, new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'doctrine.ulid_generator' => ['privates', 'doctrine.ulid_generator', 'getDoctrine_UlidGeneratorService', true], - 'doctrine.uuid_generator' => ['privates', 'doctrine.uuid_generator', 'getDoctrine_UuidGeneratorService', true], - ], [ - 'doctrine.ulid_generator' => '?', - 'doctrine.uuid_generator' => '?', - ]))); - $instance->setProxyDir(($container->targetDir.''.'/doctrine/orm/Proxies')); - $instance->setProxyNamespace('Proxies'); - $instance->setAutoGenerateProxyClasses(true); - $instance->setSchemaIgnoreClasses([]); - $instance->setClassMetadataFactoryName('Doctrine\\Bundle\\DoctrineBundle\\Mapping\\ClassMetadataFactory'); - $instance->setDefaultRepositoryClassName('Doctrine\\ORM\\EntityRepository'); - $instance->setNamingStrategy(new \Doctrine\ORM\Mapping\UnderscoreNamingStrategy(0, true)); - $instance->setQuoteStrategy(new \Doctrine\ORM\Mapping\DefaultQuoteStrategy()); - $instance->setTypedFieldMapper(new \Doctrine\ORM\Mapping\DefaultTypedFieldMapper()); - $instance->setEntityListenerResolver(new \Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver($container)); - $instance->setLazyGhostObjectEnabled(true); - $instance->setIdentityGenerationPreferences([]); - $instance->setRepositoryFactory(new \Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory(($container->privates['.service_locator.Xbsa8iG'] ??= new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [], [])))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultEntityManagerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultEntityManagerService.php deleted file mode 100644 index 283dbb9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultEntityManagerService.php +++ /dev/null @@ -1,37 +0,0 @@ -services['doctrine.orm.default_entity_manager'] = $container->createProxy('EntityManagerGhostEbeb667', static fn () => \EntityManagerGhostEbeb667::createLazyGhost(static fn ($proxy) => self::do($container, $proxy))); - } - - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/Proxy/Autoloader.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/persistence/src/Persistence/ObjectManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManagerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/doctrine-bundle/src/ManagerConfigurator.php'; - - $instance = ($lazyLoad->__construct(($container->services['doctrine.dbal.default_connection'] ?? $container->load('getDoctrine_Dbal_DefaultConnectionService')), ($container->privates['doctrine.orm.default_configuration'] ?? $container->load('getDoctrine_Orm_DefaultConfigurationService')), ($container->privates['doctrine.dbal.default_connection.event_manager'] ?? $container->load('getDoctrine_Dbal_DefaultConnection_EventManagerService'))) && false ?: $lazyLoad); - - ($container->privates['doctrine.orm.default_manager_configurator'] ??= new \Doctrine\Bundle\DoctrineBundle\ManagerConfigurator([], []))->configure($instance); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php deleted file mode 100644 index 25598ba..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['doctrine.orm.default_listeners.attach_entity_listeners'] = new \Doctrine\ORM\Tools\AttachEntityListenersListener(); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php deleted file mode 100644 index 2b5653a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaListener([]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php deleted file mode 100644 index 6f91432..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.doctrine_token_provider_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener(new RewindableGenerator(fn () => new \EmptyIterator(), 0)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php deleted file mode 100644 index d2bf629..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['doctrine.orm.listeners.lock_store_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\LockStoreSchemaListener(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.lock.default.store.TTEh_gT'] ?? $container->load('get_Lock_Default_Store_TTEhGTService')); - }, 1)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php deleted file mode 100644 index a8b5271..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.pdo_session_handler_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\PdoSessionHandlerSchemaListener(($container->privates['session.handler.native'] ?? $container->load('getSession_Handler_NativeService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php deleted file mode 100644 index 92da975..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] = new \Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_ProxyCacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_ProxyCacheWarmerService.php deleted file mode 100644 index dd67450..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_Orm_ProxyCacheWarmerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.proxy_cache_warmer'] = new \Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QueryDqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QueryDqlCommandService.php deleted file mode 100644 index aa46fe1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QueryDqlCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.query_dql_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:query:dql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QuerySqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QuerySqlCommandService.php deleted file mode 100644 index 9bf9332..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_QuerySqlCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.query_sql_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\Proxy\RunSqlDoctrineCommand(($container->privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] ?? $container->load('getManagerRegistryAwareConnectionProviderService'))); - - $instance->setName('doctrine:query:sql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaCreateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaCreateCommandService.php deleted file mode 100644 index 8aec4fb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaCreateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_create_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:create'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaDropCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaDropCommandService.php deleted file mode 100644 index a1d6e10..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaDropCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_drop_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:drop'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaUpdateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaUpdateCommandService.php deleted file mode 100644 index c8cd479..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaUpdateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_update_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:update'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaValidateCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaValidateCommandService.php deleted file mode 100644 index 51654cb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_SchemaValidateCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.schema_validate_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:validate'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UlidGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UlidGeneratorService.php deleted file mode 100644 index 5808567..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UlidGeneratorService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['doctrine.ulid_generator'] = new \Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator(new \Symfony\Component\Uid\Factory\UlidFactory()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UuidGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UuidGeneratorService.php deleted file mode 100644 index 9fcbc0a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getDoctrine_UuidGeneratorService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['doctrine.uuid_generator'] = new \Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator(new \Symfony\Component\Uid\Factory\UuidFactory(7, 7, 5, 'Symfony\\Component\\Uid\\UuidV4', NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getErrorControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getErrorControllerService.php deleted file mode 100644 index 44659f7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getErrorControllerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()); - - return $container->services['error_controller'] = new \Symfony\Component\HttpKernel\Controller\ErrorController(($container->services['http_kernel'] ?? self::getHttpKernelService($container)), 'error_controller', new \Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer(\Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer::isDebug($a, true), 'UTF-8', ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE'))), \dirname(__DIR__, 4), \Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer::getAndCleanOutputBuffer($a), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_TransportService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_TransportService.php deleted file mode 100644 index d194279..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_TransportService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['http_client.transport'] = $instance = \Symfony\Component\HttpClient\HttpClient::create([], 6); - - $a = new \Monolog\Logger('http_client'); - $a->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $instance->setLogger($a); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_UriTemplateService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_UriTemplateService.php deleted file mode 100644 index 3a15316..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getHttpClient_UriTemplateService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['http_client.uri_template'] = new \Symfony\Component\HttpClient\UriTemplateHttpClient(($container->privates['http_client.transport'] ?? $container->load('getHttpClient_TransportService')), NULL, []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getLoaderInterfaceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getLoaderInterfaceService.php deleted file mode 100644 index befcb88..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getLoaderInterfaceService.php +++ /dev/null @@ -1,23 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_auth'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeAuthenticator($a, ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), $b, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.security_controller_builder'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityControllerBuilder())), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:auth'); - $instance->setDescription('Create a Guard authenticator of different flavors'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCommandService.php deleted file mode 100644 index f7945fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCommandService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_command'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeCommand(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:command'); - $instance->setDescription('Create a new console command class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeControllerService.php deleted file mode 100644 index 619b241..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeControllerService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_controller'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeController(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:controller'); - $instance->setDescription('Create a new controller class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCrudService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCrudService.php deleted file mode 100644 index 87b88f3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeCrudService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_crud'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeCrud(($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:crud'); - $instance->setDescription('Create CRUD for Doctrine entity class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeDockerDatabaseService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeDockerDatabaseService.php deleted file mode 100644 index e3b4ffb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeDockerDatabaseService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_docker_database'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeDockerDatabase($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:docker:database'); - $instance->setDescription('Add a database container to your compose.yaml file'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeEntityService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeEntityService.php deleted file mode 100644 index fb09670..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeEntityService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_entity'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeEntity($a, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), NULL, $b, ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService'))), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:entity'); - $instance->setDescription('Create or update a Doctrine entity class, and optionally an API Platform resource'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFixturesService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFixturesService.php deleted file mode 100644 index a4d22d0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFixturesService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_fixtures'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeFixtures(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:fixtures'); - $instance->setDescription('Create a new class to load Doctrine fixtures'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFormService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFormService.php deleted file mode 100644 index d3450b4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeFormService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_form'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeForm(($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:form'); - $instance->setDescription('Create a new form class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeListenerService.php deleted file mode 100644 index ebbb72d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeListenerService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.auto_command.make_listener'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeListener(new \Symfony\Bundle\MakerBundle\EventRegistry(($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:listener'); - $instance->setAliases(['make:subscriber']); - $instance->setDescription('Creates a new event subscriber class or a new event listener class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessageService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessageService.php deleted file mode 100644 index fd0b054..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessageService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_message'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMessage($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:message'); - $instance->setDescription('Create a new message and handler'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessengerMiddlewareService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessengerMiddlewareService.php deleted file mode 100644 index 526853d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMessengerMiddlewareService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_messenger_middleware'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMessengerMiddleware(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:messenger-middleware'); - $instance->setDescription('Create a new messenger middleware'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMigrationService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMigrationService.php deleted file mode 100644 index b85f12e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeMigrationService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_migration'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMigration(\dirname(__DIR__, 4), ($container->privates['maker.file_link_formatter'] ?? $container->load('getMaker_FileLinkFormatterService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:migration'); - $instance->setDescription('Create a new migration based on database changes'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeRegistrationFormService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeRegistrationFormService.php deleted file mode 100644 index fb98f77..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeRegistrationFormService.php +++ /dev/null @@ -1,38 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_registration_form'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeRegistrationForm($a, ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->services['router'] ?? self::getRouterService($container))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:registration-form'); - $instance->setDescription('Create a new registration form system'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeResetPasswordService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeResetPasswordService.php deleted file mode 100644 index 3d89a71..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeResetPasswordService.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_reset_password'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeResetPassword($a, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService')), ($container->services['router'] ?? self::getRouterService($container))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:reset-password'); - $instance->setDescription('Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeScheduleService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeScheduleService.php deleted file mode 100644 index c95a3b6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeScheduleService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_schedule'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSchedule($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:schedule'); - $instance->setDescription('Create a scheduler component'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityCustomService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityCustomService.php deleted file mode 100644 index 2f44078..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityCustomService.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_security_custom'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\Security\MakeCustomAuthenticator($a, $b), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:security:custom'); - $instance->setDescription('Create a custom security authenticator.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityFormLoginService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityFormLoginService.php deleted file mode 100644 index ce4056e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSecurityFormLoginService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_security_form_login'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\Security\MakeFormLogin($a, ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), ($container->privates['maker.security_controller_builder'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityControllerBuilder())), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:security:form-login'); - $instance->setDescription('Generate the code needed for the form_login authenticator'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerEncoderService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerEncoderService.php deleted file mode 100644 index 8675bb7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerEncoderService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_serializer_encoder'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSerializerEncoder(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:serializer:encoder'); - $instance->setDescription('Create a new serializer encoder class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerNormalizerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerNormalizerService.php deleted file mode 100644 index d3f4fd1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeSerializerNormalizerService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_serializer_normalizer'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSerializerNormalizer(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:serializer:normalizer'); - $instance->setDescription('Create a new serializer normalizer class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeStimulusControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeStimulusControllerService.php deleted file mode 100644 index 0f5f557..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeStimulusControllerService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_stimulus_controller'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeStimulusController(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:stimulus-controller'); - $instance->setDescription('Create a new Stimulus controller'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTestService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTestService.php deleted file mode 100644 index bfa7926..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTestService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.auto_command.make_test'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTest(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:test'); - $instance->setAliases(['make:unit-test', 'make:functional-test']); - $instance->setDescription('Create a new test class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigComponentService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigComponentService.php deleted file mode 100644 index 91a9ace..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigComponentService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_twig_component'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTwigComponent($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:twig-component'); - $instance->setDescription('Create a Twig (or Live) component'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigExtensionService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigExtensionService.php deleted file mode 100644 index 26f8119..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeTwigExtensionService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_twig_extension'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTwigExtension(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:twig-extension'); - $instance->setDescription('Create a new Twig extension with its runtime class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeUserService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeUserService.php deleted file mode 100644 index 07edb52..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeUserService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_user'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeUser($a, new \Symfony\Bundle\MakerBundle\Security\UserClassBuilder(), ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService'))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:user'); - $instance->setDescription('Create a new security user class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeValidatorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeValidatorService.php deleted file mode 100644 index 3001721..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeValidatorService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_validator'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeValidator(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:validator'); - $instance->setDescription('Create a new validator and constraint class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeVoterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeVoterService.php deleted file mode 100644 index 90e242b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeVoterService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_voter'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeVoter(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:voter'); - $instance->setDescription('Create a new security voter class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeWebhookService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeWebhookService.php deleted file mode 100644 index c90c8c4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_AutoCommand_MakeWebhookService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_webhook'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeWebhook($a, $b), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:webhook'); - $instance->setDescription('Create a new Webhook'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_DoctrineHelperService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_DoctrineHelperService.php deleted file mode 100644 index ff98f98..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_DoctrineHelperService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['maker.doctrine_helper'] = new \Symfony\Bundle\MakerBundle\Doctrine\DoctrineHelper('App\\Entity', ($container->services['doctrine'] ?? $container->load('getDoctrineService')), ['default' => [['App\\Entity', ($container->privates['doctrine.orm.default_attribute_metadata_driver'] ??= new \Doctrine\ORM\Mapping\Driver\AttributeDriver([(\dirname(__DIR__, 4).'/src/Entity')], true))]]]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_EntityClassGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_EntityClassGeneratorService.php deleted file mode 100644 index 60edcdb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_EntityClassGeneratorService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['maker.entity_class_generator'] = new \Symfony\Bundle\MakerBundle\Doctrine\EntityClassGenerator(($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileLinkFormatterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileLinkFormatterService.php deleted file mode 100644 index 2d50b01..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileLinkFormatterService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['maker.file_link_formatter'] = new \Symfony\Bundle\MakerBundle\Util\MakerFileLinkFormatter(($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileManagerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileManagerService.php deleted file mode 100644 index ea40301..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_FileManagerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['maker.file_manager'] = new \Symfony\Bundle\MakerBundle\FileManager(($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()), new \Symfony\Bundle\MakerBundle\Util\AutoloaderUtil(new \Symfony\Bundle\MakerBundle\Util\ComposerAutoloaderFinder('App')), ($container->privates['maker.file_link_formatter'] ?? $container->load('getMaker_FileLinkFormatterService')), \dirname(__DIR__, 4), NULL); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_GeneratorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_GeneratorService.php deleted file mode 100644 index f5540f4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_GeneratorService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['maker.generator'] = new \Symfony\Bundle\MakerBundle\Generator(($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), 'App', NULL, new \Symfony\Bundle\MakerBundle\Util\TemplateComponentGenerator(true, false, 'App')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_Renderer_FormTypeRendererService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_Renderer_FormTypeRendererService.php deleted file mode 100644 index 91e9cfc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMaker_Renderer_FormTypeRendererService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['maker.renderer.form_type_renderer'] = new \Symfony\Bundle\MakerBundle\Renderer\FormTypeRenderer(($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getManagerRegistryAwareConnectionProviderService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getManagerRegistryAwareConnectionProviderService.php deleted file mode 100644 index a10e47b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getManagerRegistryAwareConnectionProviderService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] = new \Doctrine\Bundle\DoctrineBundle\Dbal\ManagerRegistryAwareConnectionProvider(new \Doctrine\Bundle\DoctrineBundle\Registry($container, $container->parameters['doctrine.connections'], $container->parameters['doctrine.entity_managers'], 'default', 'default')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_HandleMessageService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_HandleMessageService.php deleted file mode 100644 index 1f44fc6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_HandleMessageService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['messenger.bus.default.middleware.handle_message'] = $instance = new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(['App\\Message\\TriggerPriceImport' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.F4AMIZd'] ?? $container->load('get_Messenger_HandlerDescriptor_F4AMIZdService')); - yield 1 => ($container->privates['.messenger.handler_descriptor.F4AMIZd'] ?? $container->load('get_Messenger_HandlerDescriptor_F4AMIZdService')); - }, 2), 'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.QXXNQ9d'] ?? $container->load('get_Messenger_HandlerDescriptor_QXXNQ9dService')); - }, 1), 'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.kEzMhfs'] ?? $container->load('get_Messenger_HandlerDescriptor_KEzMhfsService')); - }, 1), 'Symfony\\Component\\HttpClient\\Messenger\\PingWebhookMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.6kVvRT.'] ?? $container->load('get_Messenger_HandlerDescriptor_6kVvRT_Service')); - }, 1), 'Symfony\\Component\\Messenger\\Message\\RedispatchMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.p4Qvabm'] ?? $container->load('get_Messenger_HandlerDescriptor_P4QvabmService')); - }, 1)]), false); - - $instance->setLogger(($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_SendMessageService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_SendMessageService.php deleted file mode 100644 index dd36f2d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_SendMessageService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['.service_locator.B4dyivW'] ?? $container->load('get_ServiceLocator_B4dyivWService')); - - if (isset($container->privates['messenger.bus.default.middleware.send_message'])) { - return $container->privates['messenger.bus.default.middleware.send_message']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['messenger.bus.default.middleware.send_message'])) { - return $container->privates['messenger.bus.default.middleware.send_message']; - } - - $container->privates['messenger.bus.default.middleware.send_message'] = $instance = new \Symfony\Component\Messenger\Middleware\SendMessageMiddleware(new \Symfony\Component\Messenger\Transport\Sender\SendersLocator(['App\\Message\\TriggerPriceImport' => ['async']], $a), $b, true); - - $instance->setLogger(($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_TraceableService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_TraceableService.php deleted file mode 100644 index 4845bfb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Bus_Default_Middleware_TraceableService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['messenger.bus.default.middleware.traceable'] = new \Symfony\Component\Messenger\Middleware\TraceableMiddleware(($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), 'messenger.bus.default'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_DefaultBusService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_DefaultBusService.php deleted file mode 100644 index 5202a70..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_DefaultBusService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['messenger.default_bus'] = new \Symfony\Component\Messenger\MessageBus(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['messenger.bus.default.middleware.traceable'] ?? $container->load('getMessenger_Bus_Default_Middleware_TraceableService')); - yield 1 => ($container->privates['messenger.bus.default.middleware.add_bus_name_stamp_middleware'] ??= new \Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware('messenger.bus.default')); - yield 2 => ($container->privates['messenger.middleware.reject_redelivered_message_middleware'] ??= new \Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware()); - yield 3 => ($container->privates['messenger.middleware.dispatch_after_current_bus'] ??= new \Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware()); - yield 4 => ($container->privates['messenger.middleware.failed_message_processing_middleware'] ??= new \Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware()); - yield 5 => ($container->privates['messenger.bus.default.middleware.send_message'] ?? $container->load('getMessenger_Bus_Default_Middleware_SendMessageService')); - yield 6 => ($container->privates['messenger.bus.default.middleware.handle_message'] ?? $container->load('getMessenger_Bus_Default_Middleware_HandleMessageService')); - }, 7)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php deleted file mode 100644 index 874d06b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['messenger.listener.stop_worker_on_restart_signal_listener'] = new \Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener(($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_ReceiverLocatorService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_ReceiverLocatorService.php deleted file mode 100644 index e26a0c0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_ReceiverLocatorService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['messenger.receiver_locator'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - 'messenger.transport.async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - ], [ - 'async' => '?', - 'messenger.transport.async' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php deleted file mode 100644 index 768e82f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['messenger.retry.multiplier_retry_strategy.async'] = new \Symfony\Component\Messenger\Retry\MultiplierRetryStrategy(3, 1000, 2, 0); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_SendFailedMessageForRetryListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_SendFailedMessageForRetryListenerService.php deleted file mode 100644 index d44012f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Retry_SendFailedMessageForRetryListenerService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['.service_locator.B4dyivW'] ?? $container->load('get_ServiceLocator_B4dyivWService')); - - if (isset($container->privates['messenger.retry.send_failed_message_for_retry_listener'])) { - return $container->privates['messenger.retry.send_failed_message_for_retry_listener']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['messenger.retry.send_failed_message_for_retry_listener'])) { - return $container->privates['messenger.retry.send_failed_message_for_retry_listener']; - } - - return $container->privates['messenger.retry.send_failed_message_for_retry_listener'] = new \Symfony\Component\Messenger\EventListener\SendFailedMessageForRetryListener($a, new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.retry.multiplier_retry_strategy.async', 'getMessenger_Retry_MultiplierRetryStrategy_AsyncService', true], - ], [ - 'async' => '?', - ]), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService')), $b); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_RoutableMessageBusService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_RoutableMessageBusService.php deleted file mode 100644 index 9f19b4b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_RoutableMessageBusService.php +++ /dev/null @@ -1,36 +0,0 @@ -services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')); - - if (isset($container->privates['messenger.routable_message_bus'])) { - return $container->privates['messenger.routable_message_bus']; - } - - return $container->privates['messenger.routable_message_bus'] = new \Symfony\Component\Messenger\RoutableMessageBus(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'messenger.bus.default' => ['services', 'messenger.default_bus', 'getMessenger_DefaultBusService', true], - ], [ - 'messenger.bus.default' => '?', - ]), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_AsyncService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_AsyncService.php deleted file mode 100644 index 6f34bf0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_AsyncService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['messenger.transport.async'] = (new \Symfony\Component\Messenger\Transport\TransportFactory(new RewindableGenerator(function () use ($container) { - yield 0 => (new \Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory()); - yield 1 => ($container->privates['messenger.transport.sync.factory'] ?? $container->load('getMessenger_Transport_Sync_FactoryService')); - yield 2 => ($container->privates['messenger.transport.in_memory.factory'] ??= new \Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory()); - }, 3)))->createTransport($container->getEnv('MESSENGER_TRANSPORT_DSN'), ['stream' => 'messages', 'stream_max_entries' => 100, 'transport_name' => 'async'], new \Symfony\Component\Messenger\Transport\Serialization\PhpSerializer()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_Sync_FactoryService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_Sync_FactoryService.php deleted file mode 100644 index 3852298..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMessenger_Transport_Sync_FactoryService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['messenger.routable_message_bus'] ?? $container->load('getMessenger_RoutableMessageBusService')); - - if (isset($container->privates['messenger.transport.sync.factory'])) { - return $container->privates['messenger.transport.sync.factory']; - } - - return $container->privates['messenger.transport.sync.factory'] = new \Symfony\Component\Messenger\Transport\Sync\SyncTransportFactory($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Handler_DeprecationService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Handler_DeprecationService.php deleted file mode 100644 index 32940f2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Handler_DeprecationService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['monolog.handler.deprecation'] = $instance = new \Monolog\Handler\StreamHandler((\dirname(__DIR__, 3).'/log/deprecations.log'), 'info', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_CacheService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_CacheService.php deleted file mode 100644 index 91505ac..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_CacheService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['monolog.logger.cache'] = $instance = new \Monolog\Logger('cache'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_DeprecationService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_DeprecationService.php deleted file mode 100644 index 54dca8d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_DeprecationService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['monolog.logger.deprecation'] = $instance = new \Monolog\Logger('deprecation'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.deprecation'] ?? $container->load('getMonolog_Handler_DeprecationService'))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_MessengerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_MessengerService.php deleted file mode 100644 index 35d93c9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getMonolog_Logger_MessengerService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['monolog.logger.messenger'] = $instance = new \Monolog\Logger('messenger'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPriceTriggerControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPriceTriggerControllerService.php deleted file mode 100644 index 5563d8c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPriceTriggerControllerService.php +++ /dev/null @@ -1,45 +0,0 @@ -privates['.lock.default.store.TTEh_gT'] ?? $container->load('get_Lock_Default_Store_TTEhGTService'))); - - $b = new \Monolog\Logger('lock'); - $b->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $b->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $b->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $a->setLogger($b); - - $container->services['App\\Controller\\Trigger\\PriceTriggerController'] = $instance = new \App\Controller\Trigger\PriceTriggerController(($container->services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')), new \Symfony\Component\RateLimiter\RateLimiterFactory(['policy' => 'fixed_window', 'limit' => 1, 'interval' => '10 seconds', 'id' => 'price_import'], new \Symfony\Component\RateLimiter\Storage\CacheStorage(($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))), $a), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - - $instance->setContainer(($container->privates['.service_locator.O2p6Lk7'] ?? $container->load('get_ServiceLocator_O2p6Lk7Service'))->withContext('App\\Controller\\Trigger\\PriceTriggerController', $container)); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPricesControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPricesControllerService.php deleted file mode 100644 index 5572a37..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getPricesControllerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['App\\Controller\\Api\\PricesController'] = $instance = new \App\Controller\Api\PricesController(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->privates['App\\Service\\Prices\\RedisReadService'] ?? $container->load('getRedisReadServiceService'))); - - $instance->setContainer(($container->privates['.service_locator.O2p6Lk7'] ?? $container->load('get_ServiceLocator_O2p6Lk7Service'))->withContext('App\\Controller\\Api\\PricesController', $container)); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedirectControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedirectControllerService.php deleted file mode 100644 index 69f914e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedirectControllerService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['router.request_context'] ?? self::getRouter_RequestContextService($container)); - - return $container->services['Symfony\\Bundle\\FrameworkBundle\\Controller\\RedirectController'] = new \Symfony\Bundle\FrameworkBundle\Controller\RedirectController(($container->services['router'] ?? self::getRouterService($container)), $a->getHttpPort(), $a->getHttpsPort()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommandService.php deleted file mode 100644 index 4d1d7de..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\RedisImportCommand'] = $instance = new \App\Command\RedisImportCommand(($container->privates['App\\Service\\Prices\\RedisImportService'] ?? $container->load('getRedisImportServiceService')), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - - $instance->setName('mto:prices:import'); - $instance->setDescription('Importiert verschachtelte ORM-Datenstruktur in Redis.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommand_LazyService.php deleted file mode 100644 index d8ce754..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\RedisImportCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:prices:import', [], 'Importiert verschachtelte ORM-Datenstruktur in Redis.', false, #[\Closure(name: 'App\\Command\\RedisImportCommand')] fn (): \App\Command\RedisImportCommand => ($container->privates['App\\Command\\RedisImportCommand'] ?? $container->load('getRedisImportCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportServiceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportServiceService.php deleted file mode 100644 index 91a3933..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisImportServiceService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1)); - $b = ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)); - - return $container->privates['App\\Service\\Prices\\RedisImportService'] = new \App\Service\Prices\RedisImportService(($container->privates['App\\Service\\Adapter\\RedisClientService'] ??= new \App\Service\Adapter\RedisClientService()), new \App\Service\Adapter\Orm($a, ($container->privates['http_client.uri_template'] ?? $container->load('getHttpClient_UriTemplateService')), $b), $b, $container->parameters['mitho.import.orm.shopIds'], 13, $a, ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommandService.php deleted file mode 100644 index 192881f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\RedisReadCommand'] = $instance = new \App\Command\RedisReadCommand(($container->privates['App\\Service\\Prices\\RedisReadService'] ?? $container->load('getRedisReadServiceService'))); - - $instance->setName('mto:prices:read'); - $instance->setDescription('Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommand_LazyService.php deleted file mode 100644 index 9b77007..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\RedisReadCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:prices:read', [], 'Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs', false, #[\Closure(name: 'App\\Command\\RedisReadCommand')] fn (): \App\Command\RedisReadCommand => ($container->privates['App\\Command\\RedisReadCommand'] ?? $container->load('getRedisReadCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadServiceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadServiceService.php deleted file mode 100644 index 33ab3d3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRedisReadServiceService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['App\\Service\\Prices\\RedisReadService'] = new \App\Service\Prices\RedisReadService(($container->privates['App\\Service\\Adapter\\RedisClientService'] ??= new \App\Service\Adapter\RedisClientService())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouter_CacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouter_CacheWarmerService.php deleted file mode 100644 index fba3422..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouter_CacheWarmerService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['router.cache_warmer'] = new \Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer((new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'router' => ['services', 'router', 'getRouterService', false], - ], [ - 'router' => '?', - ]))->withContext('router.cache_warmer', $container)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouting_LoaderService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouting_LoaderService.php deleted file mode 100644 index 5abd3c5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRouting_LoaderService.php +++ /dev/null @@ -1,72 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1))); - $c = new \Symfony\Bundle\FrameworkBundle\Routing\AttributeRouteControllerLoader('dev'); - - $a->addLoader(new \Symfony\Component\Routing\Loader\XmlFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\YamlFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\PhpFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\GlobFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\DirectoryLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\ContainerLoader(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'kernel' => ['services', 'kernel', 'getKernelService', true], - 'security.route_loader.logout' => ['privates', 'security.route_loader.logout', 'getSecurity_RouteLoader_LogoutService', true], - ], [ - 'kernel' => 'App\\Kernel', - 'security.route_loader.logout' => 'Symfony\\Bundle\\SecurityBundle\\Routing\\LogoutRouteLoader', - ]), 'dev')); - $a->addLoader($c); - $a->addLoader(new \Symfony\Component\Routing\Loader\AttributeDirectoryLoader($b, $c)); - $a->addLoader(new \Symfony\Component\Routing\Loader\AttributeFileLoader($b, $c)); - $a->addLoader(new \Symfony\Component\Routing\Loader\Psr4DirectoryLoader($b)); - - return $container->services['routing.loader'] = new \Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader($a, ['utf8' => true], []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRunSqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRunSqlCommandService.php deleted file mode 100644 index 3242622..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getRunSqlCommandService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand'] = $instance = new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(($container->privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] ?? $container->load('getManagerRegistryAwareConnectionProviderService'))); - - $instance->setName('dbal:run-sql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecrets_VaultService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecrets_VaultService.php deleted file mode 100644 index b07227d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecrets_VaultService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['secrets.vault'] = new \Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault((\dirname(__DIR__, 4).'/config/secrets/'.$container->getEnv('string:default:kernel.environment:APP_RUNTIME_ENV')), \Symfony\Component\String\LazyString::fromCallable($container->getEnv(...), 'base64:default::SYMFONY_DECRYPTION_SECRET')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessListenerService.php deleted file mode 100644 index b8a6be1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessListenerService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['security.access_listener'])) { - return $container->privates['security.access_listener']; - } - - return $container->privates['security.access_listener'] = new \Symfony\Component\Security\Http\Firewall\AccessListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), $a, ($container->privates['security.access_map'] ?? $container->load('getSecurity_AccessMapService')), false); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessMapService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessMapService.php deleted file mode 100644 index e953ce1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_AccessMapService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['security.access_map'] = $instance = new \Symfony\Component\Security\Http\AccessMap(); - - $a = new \Symfony\Component\HttpFoundation\RequestMatcher\PathRequestMatcher('^/api/prices'); - - $instance->add(new \Symfony\Component\HttpFoundation\ChainRequestMatcher([$a, new \Symfony\Component\HttpFoundation\RequestMatcher\IpsRequestMatcher([$container->getEnv('MTO_ALLOWED_API_IPS')])]), ['PUBLIC_ACCESS'], NULL); - $instance->add(new \Symfony\Component\HttpFoundation\ChainRequestMatcher([$a]), ['ROLE_NO_ACCESS'], NULL); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Authentication_SessionStrategyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Authentication_SessionStrategyService.php deleted file mode 100644 index 4b54a08..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Authentication_SessionStrategyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['security.authentication.session_strategy'] = new \Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy('migrate', ($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_ChannelListenerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_ChannelListenerService.php deleted file mode 100644 index 8f0b814..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_ChannelListenerService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['router.request_context'] ?? self::getRouter_RequestContextService($container)); - - return $container->privates['security.channel_listener'] = new \Symfony\Component\Security\Http\Firewall\ChannelListener(($container->privates['security.access_map'] ?? $container->load('getSecurity_AccessMapService')), ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), $a->getHttpPort(), $a->getHttpsPort()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_DebugFirewallService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_DebugFirewallService.php deleted file mode 100644 index ddbd778..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_DebugFirewallService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['security.command.debug_firewall'] = $instance = new \Symfony\Bundle\SecurityBundle\Command\DebugFirewallCommand($container->parameters['security.firewalls'], ($container->privates['.service_locator.zJyh7qS'] ?? self::get_ServiceLocator_ZJyh7qSService($container)), ($container->privates['.service_locator.sPNPNE7'] ?? $container->load('get_ServiceLocator_SPNPNE7Service')), ['dev' => [], 'main' => []], false); - - $instance->setName('debug:firewall'); - $instance->setDescription('Display information about your security firewall(s)'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_UserPasswordHashService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_UserPasswordHashService.php deleted file mode 100644 index aff290f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Command_UserPasswordHashService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['security.command.user_password_hash'] = $instance = new \Symfony\Component\PasswordHasher\Command\UserPasswordHashCommand(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService')), ['Symfony\\Component\\Security\\Core\\User\\PasswordAuthenticatedUserInterface']); - - $instance->setName('security:hash-password'); - $instance->setDescription('Hash a user password'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenManagerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenManagerService.php deleted file mode 100644 index d524eb7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenManagerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['security.csrf.token_manager'] = new \Symfony\Component\Security\Csrf\CsrfTokenManager(new \Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator(), ($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService')), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenStorageService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenStorageService.php deleted file mode 100644 index ea7011f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Csrf_TokenStorageService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.csrf.token_storage'] = new \Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_DevService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_DevService.php deleted file mode 100644 index d1711b4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_DevService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['security.firewall.map.context.dev'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['security.channel_listener'] ?? $container->load('getSecurity_ChannelListenerService')); - yield 1 => ($container->privates['security.context_listener.0'] ?? self::getSecurity_ContextListener_0Service($container)); - yield 2 => ($container->privates['debug.security.firewall.authenticator.dev'] ?? $container->load('getDebug_Security_Firewall_Authenticator_DevService')); - yield 3 => ($container->privates['security.access_listener'] ?? $container->load('getSecurity_AccessListenerService')); - }, 4), new \Symfony\Component\Security\Http\Firewall\ExceptionListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), ($container->privates['security.http_utils'] ?? $container->load('getSecurity_HttpUtilsService')), 'dev', NULL, NULL, NULL, ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), false), NULL, new \Symfony\Bundle\SecurityBundle\Security\FirewallConfig('dev', 'security.user_checker', NULL, true, false, NULL, 'dev', NULL, NULL, NULL, [], NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_MainService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_MainService.php deleted file mode 100644 index c5e1317..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Firewall_Map_Context_MainService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['security.firewall.map.context.main'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['security.channel_listener'] ?? $container->load('getSecurity_ChannelListenerService')); - yield 1 => ($container->privates['security.context_listener.1'] ?? self::getSecurity_ContextListener_1Service($container)); - yield 2 => ($container->privates['debug.security.firewall.authenticator.main'] ?? $container->load('getDebug_Security_Firewall_Authenticator_MainService')); - yield 3 => ($container->privates['security.access_listener'] ?? $container->load('getSecurity_AccessListenerService')); - }, 4), new \Symfony\Component\Security\Http\Firewall\ExceptionListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), ($container->privates['security.http_utils'] ?? $container->load('getSecurity_HttpUtilsService')), 'main', NULL, NULL, NULL, ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), false), NULL, new \Symfony\Bundle\SecurityBundle\Security\FirewallConfig('main', 'security.user_checker', NULL, true, false, NULL, 'main', NULL, NULL, NULL, [], NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_HttpUtilsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_HttpUtilsService.php deleted file mode 100644 index f91e50c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_HttpUtilsService.php +++ /dev/null @@ -1,27 +0,0 @@ -services['router'] ?? self::getRouterService($container)); - - return $container->privates['security.http_utils'] = new \Symfony\Component\Security\Http\HttpUtils($a, $a, '{^https?://%s$}i', '{^https://%s$}i'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CheckAuthenticatorCredentialsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CheckAuthenticatorCredentialsService.php deleted file mode 100644 index 78d73ec..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CheckAuthenticatorCredentialsService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.check_authenticator_credentials'] = new \Symfony\Component\Security\Http\EventListener\CheckCredentialsListener(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CsrfProtectionService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CsrfProtectionService.php deleted file mode 100644 index 0550acf..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_CsrfProtectionService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.csrf_protection'] = new \Symfony\Component\Security\Http\EventListener\CsrfProtectionListener(($container->privates['security.csrf.token_manager'] ?? $container->load('getSecurity_Csrf_TokenManagerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_PasswordMigratingService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_PasswordMigratingService.php deleted file mode 100644 index ffdcd98..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_PasswordMigratingService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.password_migrating'] = new \Symfony\Component\Security\Http\EventListener\PasswordMigratingListener(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_DevService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_DevService.php deleted file mode 100644 index 7cdca74..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_DevService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.session.dev'] = new \Symfony\Component\Security\Http\EventListener\SessionStrategyListener(($container->privates['security.authentication.session_strategy'] ?? $container->load('getSecurity_Authentication_SessionStrategyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_MainService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_MainService.php deleted file mode 100644 index 6b2a236..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_Session_MainService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.session.main'] = new \Symfony\Component\Security\Http\EventListener\SessionStrategyListener(($container->privates['security.authentication.session_strategy'] ?? $container->load('getSecurity_Authentication_SessionStrategyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_DevService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_DevService.php deleted file mode 100644 index 596f400..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_DevService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.listener.user_checker.dev'] = new \Symfony\Component\Security\Http\EventListener\UserCheckerListener(($container->privates['security.user_checker'] ??= new \Symfony\Component\Security\Core\User\InMemoryUserChecker())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_MainService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_MainService.php deleted file mode 100644 index 9d9e3fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Listener_UserChecker_MainService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.listener.user_checker.main'] = new \Symfony\Component\Security\Http\EventListener\UserCheckerListener(($container->privates['security.user_checker'] ??= new \Symfony\Component\Security\Core\User\InMemoryUserChecker())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Logout_Listener_CsrfTokenClearingService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Logout_Listener_CsrfTokenClearingService.php deleted file mode 100644 index d71fdfa..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_Logout_Listener_CsrfTokenClearingService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.logout.listener.csrf_token_clearing'] = new \Symfony\Component\Security\Http\EventListener\CsrfTokenClearingLogoutListener(($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_PasswordHasherFactoryService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_PasswordHasherFactoryService.php deleted file mode 100644 index ad4616e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_PasswordHasherFactoryService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['security.password_hasher_factory'] = new \Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory(['Symfony\\Component\\Security\\Core\\User\\PasswordAuthenticatedUserInterface' => ['algorithm' => 'auto', 'migrate_from' => [], 'hash_algorithm' => 'sha512', 'key_length' => 40, 'ignore_case' => false, 'encode_as_base64' => true, 'iterations' => 5000, 'cost' => NULL, 'memory_cost' => NULL, 'time_cost' => NULL]]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_RouteLoader_LogoutService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_RouteLoader_LogoutService.php deleted file mode 100644 index a2a159e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSecurity_RouteLoader_LogoutService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.route_loader.logout'] = new \Symfony\Bundle\SecurityBundle\Routing\LogoutRouteLoader([], 'security.logout_uris'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getServicesResetterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getServicesResetterService.php deleted file mode 100644 index 37f783d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getServicesResetterService.php +++ /dev/null @@ -1,110 +0,0 @@ -services['services_resetter'] = new \Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter(new RewindableGenerator(function () use ($container) { - if (isset($container->services['request_stack'])) { - yield 'request_stack' => ($container->services['request_stack'] ?? null); - } - if (isset($container->services['cache.app'])) { - yield 'cache.app' => ($container->services['cache.app'] ?? null); - } - if (isset($container->services['cache.system'])) { - yield 'cache.system' => ($container->services['cache.system'] ?? null); - } - if (false) { - yield 'cache.validator' => null; - } - if (false) { - yield 'cache.serializer' => null; - } - if (false) { - yield 'cache.annotations' => null; - } - if (false) { - yield 'cache.property_info' => null; - } - if (isset($container->privates['cache.messenger.restart_workers_signal'])) { - yield 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? null); - } - if (isset($container->privates['http_client.transport'])) { - yield 'http_client.transport' => ($container->privates['http_client.transport'] ?? null); - } - if (isset($container->privates['http_client.uri_template'])) { - yield 'http_client' => ($container->privates['http_client.uri_template'] ?? null); - } - if (isset($container->services['debug.stopwatch'])) { - yield 'debug.stopwatch' => ($container->services['debug.stopwatch'] ?? null); - } - if (isset($container->services['event_dispatcher'])) { - yield 'debug.event_dispatcher' => ($container->services['event_dispatcher'] ?? null); - } - if (false) { - yield 'debug.log_processor' => null; - } - if (isset($container->privates['cache.rate_limiter'])) { - yield 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? null); - } - if (isset($container->privates['session_listener'])) { - yield 'session_listener' => ($container->privates['session_listener'] ?? null); - } - if (isset($container->privates['messenger.transport.in_memory.factory'])) { - yield 'messenger.transport.in_memory.factory' => ($container->privates['messenger.transport.in_memory.factory'] ?? null); - } - if (isset($container->privates['security.token_storage'])) { - yield 'security.token_storage' => ($container->privates['security.token_storage'] ?? null); - } - if (false) { - yield 'cache.security_expression_language' => null; - } - if (isset($container->services['cache.security_is_granted_attribute_expression_language'])) { - yield 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? null); - } - if (isset($container->privates['debug.security.firewall'])) { - yield 'debug.security.firewall' => ($container->privates['debug.security.firewall'] ?? null); - } - if (isset($container->privates['debug.security.firewall.authenticator.dev'])) { - yield 'debug.security.firewall.authenticator.dev' => ($container->privates['debug.security.firewall.authenticator.dev'] ?? null); - } - if (isset($container->privates['debug.security.firewall.authenticator.main'])) { - yield 'debug.security.firewall.authenticator.main' => ($container->privates['debug.security.firewall.authenticator.main'] ?? null); - } - if (isset($container->services['doctrine'])) { - yield 'doctrine' => ($container->services['doctrine'] ?? null); - } - if (isset($container->privates['doctrine.debug_data_holder'])) { - yield 'doctrine.debug_data_holder' => ($container->privates['doctrine.debug_data_holder'] ?? null); - } - if (isset($container->privates['monolog.handler.file_log'])) { - yield 'monolog.handler.file_log' => ($container->privates['monolog.handler.file_log'] ?? null); - } - if (isset($container->privates['monolog.handler.main'])) { - yield 'monolog.handler.main' => ($container->privates['monolog.handler.main'] ?? null); - } - if (isset($container->privates['monolog.handler.deprecation'])) { - yield 'monolog.handler.deprecation' => ($container->privates['monolog.handler.deprecation'] ?? null); - } - if (isset($container->privates['monolog.handler.stdout'])) { - yield 'monolog.handler.stdout' => ($container->privates['monolog.handler.stdout'] ?? null); - } - }, fn () => 0 + (int) (isset($container->services['request_stack'])) + (int) (isset($container->services['cache.app'])) + (int) (isset($container->services['cache.system'])) + (int) (false) + (int) (false) + (int) (false) + (int) (false) + (int) (isset($container->privates['cache.messenger.restart_workers_signal'])) + (int) (isset($container->privates['http_client.transport'])) + (int) (isset($container->privates['http_client.uri_template'])) + (int) (isset($container->services['debug.stopwatch'])) + (int) (isset($container->services['event_dispatcher'])) + (int) (false) + (int) (isset($container->privates['cache.rate_limiter'])) + (int) (isset($container->privates['session_listener'])) + (int) (isset($container->privates['messenger.transport.in_memory.factory'])) + (int) (isset($container->privates['security.token_storage'])) + (int) (false) + (int) (isset($container->services['cache.security_is_granted_attribute_expression_language'])) + (int) (isset($container->privates['debug.security.firewall'])) + (int) (isset($container->privates['debug.security.firewall.authenticator.dev'])) + (int) (isset($container->privates['debug.security.firewall.authenticator.main'])) + (int) (isset($container->services['doctrine'])) + (int) (isset($container->privates['doctrine.debug_data_holder'])) + (int) (isset($container->privates['monolog.handler.file_log'])) + (int) (isset($container->privates['monolog.handler.main'])) + (int) (isset($container->privates['monolog.handler.deprecation'])) + (int) (isset($container->privates['monolog.handler.stdout']))), ['request_stack' => ['?resetRequestFormats'], 'cache.app' => ['reset'], 'cache.system' => ['reset'], 'cache.validator' => ['reset'], 'cache.serializer' => ['reset'], 'cache.annotations' => ['reset'], 'cache.property_info' => ['reset'], 'cache.messenger.restart_workers_signal' => ['reset'], 'http_client.transport' => ['?reset'], 'http_client' => ['?reset'], 'debug.stopwatch' => ['reset'], 'debug.event_dispatcher' => ['reset'], 'debug.log_processor' => ['reset'], 'cache.rate_limiter' => ['reset'], 'session_listener' => ['reset'], 'messenger.transport.in_memory.factory' => ['reset'], 'security.token_storage' => ['disableUsageTracking', 'setToken'], 'cache.security_expression_language' => ['reset'], 'cache.security_is_granted_attribute_expression_language' => ['reset'], 'debug.security.firewall' => ['reset'], 'debug.security.firewall.authenticator.dev' => ['reset'], 'debug.security.firewall.authenticator.main' => ['reset'], 'doctrine' => ['reset'], 'doctrine.debug_data_holder' => ['reset'], 'monolog.handler.file_log' => ['reset'], 'monolog.handler.main' => ['reset'], 'monolog.handler.deprecation' => ['reset'], 'monolog.handler.stdout' => ['reset']]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_FactoryService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_FactoryService.php deleted file mode 100644 index 35c16df..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_FactoryService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['session_listener'] ?? self::getSessionListenerService($container)); - - if (isset($container->privates['session.factory'])) { - return $container->privates['session.factory']; - } - - return $container->privates['session.factory'] = new \Symfony\Component\HttpFoundation\Session\SessionFactory(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorageFactory($container->parameters['session.storage.options'], ($container->privates['session.handler.native'] ?? $container->load('getSession_Handler_NativeService')), new \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag('_sf2_meta', 0), true), [$a, 'onSessionUsage']); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_Handler_NativeService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_Handler_NativeService.php deleted file mode 100644 index 3f3bbcb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getSession_Handler_NativeService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['session.handler.native'] = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler(new \SessionHandler()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTemplateControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTemplateControllerService.php deleted file mode 100644 index 3b86781..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTemplateControllerService.php +++ /dev/null @@ -1,25 +0,0 @@ -services['Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController'] = new \Symfony\Bundle\FrameworkBundle\Controller\TemplateController(NULL); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerPriceImportHandlerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerPriceImportHandlerService.php deleted file mode 100644 index 14993ca..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerPriceImportHandlerService.php +++ /dev/null @@ -1,25 +0,0 @@ -services['App\\MessageHandler\\TriggerPriceImportHandler'] = new \App\MessageHandler\TriggerPriceImportHandler(($container->privates['App\\Service\\Prices\\RedisImportService'] ?? $container->load('getRedisImportServiceService')), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommandService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommandService.php deleted file mode 100644 index 81e3f37..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\TriggerTestCommand'] = $instance = new \App\Command\TriggerTestCommand(($container->services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService'))); - - $instance->setName('mto:test:trigger-import'); - $instance->setDescription('Dispatches a TriggerPriceImport message for testing'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommand_LazyService.php deleted file mode 100644 index c7168fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/getTriggerTestCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\TriggerTestCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:test:trigger-import', [], 'Dispatches a TriggerPriceImport message for testing', false, #[\Closure(name: 'App\\Command\\TriggerTestCommand')] fn (): \App\Command\TriggerTestCommand => ($container->privates['App\\Command\\TriggerTestCommand'] ?? $container->load('getTriggerTestCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Cache_RateLimiter_TaggableService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Cache_RateLimiter_TaggableService.php deleted file mode 100644 index 4ce9835..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Cache_RateLimiter_TaggableService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['.cache.rate_limiter.taggable'] = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_About_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_About_LazyService.php deleted file mode 100644 index 6324048..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_About_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.about.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('about', [], 'Display information about the current project', false, #[\Closure(name: 'console.command.about', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\AboutCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\AboutCommand => ($container->privates['console.command.about'] ?? $container->load('getConsole_Command_AboutService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_AssetsInstall_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_AssetsInstall_LazyService.php deleted file mode 100644 index c06b80a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_AssetsInstall_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.assets_install.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('assets:install', [], 'Install bundle\'s web assets under a public directory', false, #[\Closure(name: 'console.command.assets_install', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\AssetsInstallCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand => ($container->privates['console.command.assets_install'] ?? $container->load('getConsole_Command_AssetsInstallService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheClear_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheClear_LazyService.php deleted file mode 100644 index e9b29fa..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheClear_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_clear.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:clear', [], 'Clear the cache', false, #[\Closure(name: 'console.command.cache_clear', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CacheClearCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand => ($container->privates['console.command.cache_clear'] ?? $container->load('getConsole_Command_CacheClearService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolClear_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolClear_LazyService.php deleted file mode 100644 index 7844f58..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolClear_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_clear.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:clear', [], 'Clear cache pools', false, #[\Closure(name: 'console.command.cache_pool_clear', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolClearCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand => ($container->privates['console.command.cache_pool_clear'] ?? $container->load('getConsole_Command_CachePoolClearService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolDelete_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolDelete_LazyService.php deleted file mode 100644 index b12af7f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolDelete_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_delete.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:delete', [], 'Delete an item from a cache pool', false, #[\Closure(name: 'console.command.cache_pool_delete', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolDeleteCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand => ($container->privates['console.command.cache_pool_delete'] ?? $container->load('getConsole_Command_CachePoolDeleteService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolInvalidateTags_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolInvalidateTags_LazyService.php deleted file mode 100644 index 0a616ae..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolInvalidateTags_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_invalidate_tags.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:invalidate-tags', [], 'Invalidate cache tags for all or a specific pool', false, #[\Closure(name: 'console.command.cache_pool_invalidate_tags', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolInvalidateTagsCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand => ($container->privates['console.command.cache_pool_invalidate_tags'] ?? $container->load('getConsole_Command_CachePoolInvalidateTagsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolList_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolList_LazyService.php deleted file mode 100644 index 595c4d5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolList_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_list.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:list', [], 'List available cache pools', false, #[\Closure(name: 'console.command.cache_pool_list', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolListCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand => ($container->privates['console.command.cache_pool_list'] ?? $container->load('getConsole_Command_CachePoolListService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolPrune_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolPrune_LazyService.php deleted file mode 100644 index edd6c62..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CachePoolPrune_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_prune.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:prune', [], 'Prune cache pools', false, #[\Closure(name: 'console.command.cache_pool_prune', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolPruneCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand => ($container->privates['console.command.cache_pool_prune'] ?? $container->load('getConsole_Command_CachePoolPruneService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheWarmup_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheWarmup_LazyService.php deleted file mode 100644 index dd56f1d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_CacheWarmup_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_warmup.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:warmup', [], 'Warm up an empty cache', false, #[\Closure(name: 'console.command.cache_warmup', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CacheWarmupCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand => ($container->privates['console.command.cache_warmup'] ?? $container->load('getConsole_Command_CacheWarmupService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDebug_LazyService.php deleted file mode 100644 index aab0e31..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.config_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:config', [], 'Dump the current configuration for an extension', false, #[\Closure(name: 'console.command.config_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ConfigDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand => ($container->privates['console.command.config_debug'] ?? $container->load('getConsole_Command_ConfigDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDumpReference_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDumpReference_LazyService.php deleted file mode 100644 index 6ff83c5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ConfigDumpReference_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.config_dump_reference.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('config:dump-reference', [], 'Dump the default configuration for an extension', false, #[\Closure(name: 'console.command.config_dump_reference', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ConfigDumpReferenceCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand => ($container->privates['console.command.config_dump_reference'] ?? $container->load('getConsole_Command_ConfigDumpReferenceService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerDebug_LazyService.php deleted file mode 100644 index adc85b1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.container_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:container', [], 'Display current services for an application', false, #[\Closure(name: 'console.command.container_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ContainerDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand => ($container->privates['console.command.container_debug'] ?? $container->load('getConsole_Command_ContainerDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerLint_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerLint_LazyService.php deleted file mode 100644 index d7e3983..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_ContainerLint_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.container_lint.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('lint:container', [], 'Ensure that arguments injected into services match type declarations', false, #[\Closure(name: 'console.command.container_lint', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ContainerLintCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand => ($container->privates['console.command.container_lint'] ?? $container->load('getConsole_Command_ContainerLintService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DebugAutowiring_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DebugAutowiring_LazyService.php deleted file mode 100644 index 6c0bedf..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DebugAutowiring_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.debug_autowiring.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:autowiring', [], 'List classes/interfaces you can use for autowiring', false, #[\Closure(name: 'console.command.debug_autowiring', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\DebugAutowiringCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand => ($container->privates['console.command.debug_autowiring'] ?? $container->load('getConsole_Command_DebugAutowiringService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DotenvDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DotenvDebug_LazyService.php deleted file mode 100644 index 239c5b3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_DotenvDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.dotenv_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:dotenv', [], 'List all dotenv files with variables and values', false, #[\Closure(name: 'console.command.dotenv_debug', class: 'Symfony\\Component\\Dotenv\\Command\\DebugCommand')] fn (): \Symfony\Component\Dotenv\Command\DebugCommand => ($container->privates['console.command.dotenv_debug'] ?? $container->load('getConsole_Command_DotenvDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_EventDispatcherDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_EventDispatcherDebug_LazyService.php deleted file mode 100644 index 77a1630..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_EventDispatcherDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.event_dispatcher_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:event-dispatcher', [], 'Display configured listeners for an application', false, #[\Closure(name: 'console.command.event_dispatcher_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\EventDispatcherDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand => ($container->privates['console.command.event_dispatcher_debug'] ?? $container->load('getConsole_Command_EventDispatcherDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerConsumeMessages_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerConsumeMessages_LazyService.php deleted file mode 100644 index 24d3f6a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerConsumeMessages_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_consume_messages.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:consume', [], 'Consume messages', false, #[\Closure(name: 'console.command.messenger_consume_messages', class: 'Symfony\\Component\\Messenger\\Command\\ConsumeMessagesCommand')] fn (): \Symfony\Component\Messenger\Command\ConsumeMessagesCommand => ($container->privates['console.command.messenger_consume_messages'] ?? $container->load('getConsole_Command_MessengerConsumeMessagesService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerDebug_LazyService.php deleted file mode 100644 index bc407dc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:messenger', [], 'List messages you can dispatch using the message buses', false, #[\Closure(name: 'console.command.messenger_debug', class: 'Symfony\\Component\\Messenger\\Command\\DebugCommand')] fn (): \Symfony\Component\Messenger\Command\DebugCommand => ($container->privates['console.command.messenger_debug'] ?? $container->load('getConsole_Command_MessengerDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerSetupTransports_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerSetupTransports_LazyService.php deleted file mode 100644 index e3cdbb3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerSetupTransports_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_setup_transports.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:setup-transports', [], 'Prepare the required infrastructure for the transport', false, #[\Closure(name: 'console.command.messenger_setup_transports', class: 'Symfony\\Component\\Messenger\\Command\\SetupTransportsCommand')] fn (): \Symfony\Component\Messenger\Command\SetupTransportsCommand => ($container->privates['console.command.messenger_setup_transports'] ?? $container->load('getConsole_Command_MessengerSetupTransportsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStats_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStats_LazyService.php deleted file mode 100644 index 030e804..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStats_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_stats.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:stats', [], 'Show the message count for one or more transports', false, #[\Closure(name: 'console.command.messenger_stats', class: 'Symfony\\Component\\Messenger\\Command\\StatsCommand')] fn (): \Symfony\Component\Messenger\Command\StatsCommand => ($container->privates['console.command.messenger_stats'] ?? $container->load('getConsole_Command_MessengerStatsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStopWorkers_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStopWorkers_LazyService.php deleted file mode 100644 index 1b027b7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_MessengerStopWorkers_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_stop_workers.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:stop-workers', [], 'Stop workers after their current message', false, #[\Closure(name: 'console.command.messenger_stop_workers', class: 'Symfony\\Component\\Messenger\\Command\\StopWorkersCommand')] fn (): \Symfony\Component\Messenger\Command\StopWorkersCommand => ($container->privates['console.command.messenger_stop_workers'] ?? $container->load('getConsole_Command_MessengerStopWorkersService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterDebug_LazyService.php deleted file mode 100644 index 0fe8338..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.router_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:router', [], 'Display current routes for an application', false, #[\Closure(name: 'console.command.router_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\RouterDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand => ($container->privates['console.command.router_debug'] ?? $container->load('getConsole_Command_RouterDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterMatch_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterMatch_LazyService.php deleted file mode 100644 index a3bdebd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_RouterMatch_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.router_match.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('router:match', [], 'Help debug routes by simulating a path info match', false, #[\Closure(name: 'console.command.router_match', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\RouterMatchCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand => ($container->privates['console.command.router_match'] ?? $container->load('getConsole_Command_RouterMatchService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsDecryptToLocal_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsDecryptToLocal_LazyService.php deleted file mode 100644 index d0052f0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsDecryptToLocal_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_decrypt_to_local.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:decrypt-to-local', [], 'Decrypt all secrets and stores them in the local vault', false, #[\Closure(name: 'console.command.secrets_decrypt_to_local', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsDecryptToLocalCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsDecryptToLocalCommand => ($container->privates['console.command.secrets_decrypt_to_local'] ?? $container->load('getConsole_Command_SecretsDecryptToLocalService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsEncryptFromLocal_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsEncryptFromLocal_LazyService.php deleted file mode 100644 index 81ab1e7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsEncryptFromLocal_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_encrypt_from_local.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:encrypt-from-local', [], 'Encrypt all local secrets to the vault', false, #[\Closure(name: 'console.command.secrets_encrypt_from_local', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsEncryptFromLocalCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsEncryptFromLocalCommand => ($container->privates['console.command.secrets_encrypt_from_local'] ?? $container->load('getConsole_Command_SecretsEncryptFromLocalService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsGenerateKey_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsGenerateKey_LazyService.php deleted file mode 100644 index 5b2f233..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsGenerateKey_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_generate_key.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:generate-keys', [], 'Generate new encryption keys', false, #[\Closure(name: 'console.command.secrets_generate_key', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsGenerateKeysCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsGenerateKeysCommand => ($container->privates['console.command.secrets_generate_key'] ?? $container->load('getConsole_Command_SecretsGenerateKeyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsList_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsList_LazyService.php deleted file mode 100644 index bedfafc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsList_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_list.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:list', [], 'List all secrets', false, #[\Closure(name: 'console.command.secrets_list', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsListCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsListCommand => ($container->privates['console.command.secrets_list'] ?? $container->load('getConsole_Command_SecretsListService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsRemove_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsRemove_LazyService.php deleted file mode 100644 index a41aa0f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsRemove_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_remove.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:remove', [], 'Remove a secret from the vault', false, #[\Closure(name: 'console.command.secrets_remove', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsRemoveCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsRemoveCommand => ($container->privates['console.command.secrets_remove'] ?? $container->load('getConsole_Command_SecretsRemoveService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsSet_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsSet_LazyService.php deleted file mode 100644 index 2f6b08e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_SecretsSet_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_set.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:set', [], 'Set a secret in the vault', false, #[\Closure(name: 'console.command.secrets_set', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsSetCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsSetCommand => ($container->privates['console.command.secrets_set'] ?? $container->load('getConsole_Command_SecretsSetService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_YamlLint_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_YamlLint_LazyService.php deleted file mode 100644 index 63377c8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Console_Command_YamlLint_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.yaml_lint.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('lint:yaml', [], 'Lint a YAML file and outputs encountered errors', false, #[\Closure(name: 'console.command.yaml_lint', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\YamlLintCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\YamlLintCommand => ($container->privates['console.command.yaml_lint'] ?? $container->load('getConsole_Command_YamlLintService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php deleted file mode 100644 index 510ffbb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['.debug.security.voter.security.access.authenticated_voter'])) { - return $container->privates['.debug.security.voter.security.access.authenticated_voter']; - } - - return $container->privates['.debug.security.voter.security.access.authenticated_voter'] = new \Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter(new \Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter(($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver())), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php deleted file mode 100644 index a76c6e0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php +++ /dev/null @@ -1,37 +0,0 @@ -services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['.debug.security.voter.security.access.role_hierarchy_voter'])) { - return $container->privates['.debug.security.voter.security.access.role_hierarchy_voter']; - } - - return $container->privates['.debug.security.voter.security.access.role_hierarchy_voter'] = new \Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter(new \Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter(new \Symfony\Component\Security\Core\Role\RoleHierarchy($container->parameters['security.role_hierarchy.roles'])), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php deleted file mode 100644 index 8cf52e5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.backed_enum_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php deleted file mode 100644 index 1e34653..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.datetime'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\DateTimeValueResolver(new \Symfony\Component\Clock\Clock()), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php deleted file mode 100644 index e0c3676..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.default'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php deleted file mode 100644 index 248a569..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.not_tagged_controller'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\NotTaggedControllerValueResolver(($container->privates['.service_locator.HBdvAhp'] ?? $container->load('get_ServiceLocator_HBdvAhpService'))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php deleted file mode 100644 index bc4b34b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.query_parameter_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php deleted file mode 100644 index e43e30c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request_attribute'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php deleted file mode 100644 index 26ca874..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request_payload'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(throw new RuntimeException('You can neither use "#[MapRequestPayload]" nor "#[MapQueryString]" since the Serializer component is not installed. Try running "composer require symfony/serializer-pack".'), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestService.php deleted file mode 100644 index b1a5316..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_RequestService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php deleted file mode 100644 index c417b8a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.service'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver(($container->privates['.service_locator.HBdvAhp'] ?? $container->load('get_ServiceLocator_HBdvAhpService'))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_SessionService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_SessionService.php deleted file mode 100644 index 4aba5e4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_SessionService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.session'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_UidService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_UidService.php deleted file mode 100644 index a736f57..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_UidService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.uid'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php deleted file mode 100644 index b45ee2c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.variadic'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php deleted file mode 100644 index 602e249..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['.debug.value_resolver.doctrine.orm.entity_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver(($container->services['doctrine'] ?? $container->load('getDoctrineService')), NULL, new \Symfony\Bridge\Doctrine\Attribute\MapEntity(NULL, NULL, NULL, [], NULL, NULL, NULL, NULL, false), []), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php deleted file mode 100644 index 30023a6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.security.security_token_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\Security\Http\Controller\SecurityTokenValueResolver(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_UserValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_UserValueResolverService.php deleted file mode 100644 index acc4a30..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Debug_ValueResolver_Security_UserValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.security.user_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\Security\Http\Controller\UserValueResolver(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_CurrentCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_CurrentCommand_LazyService.php deleted file mode 100644 index be7de33..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_CurrentCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.current_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:current', [], 'Outputs the current version', false, #[\Closure(name: 'doctrine_migrations.current_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\CurrentCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\CurrentCommand => ($container->privates['doctrine_migrations.current_command'] ?? $container->load('getDoctrineMigrations_CurrentCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DiffCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DiffCommand_LazyService.php deleted file mode 100644 index 02da725..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DiffCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.diff_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:diff', [], 'Generate a migration by comparing your current database to your mapping information.', false, #[\Closure(name: 'doctrine_migrations.diff_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\DiffCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\DiffCommand => ($container->privates['doctrine_migrations.diff_command'] ?? $container->load('getDoctrineMigrations_DiffCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php deleted file mode 100644 index 73d92fa..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.dump_schema_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:dump-schema', [], 'Dump the schema for your database to a migration.', false, #[\Closure(name: 'doctrine_migrations.dump_schema_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\DumpSchemaCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand => ($container->privates['doctrine_migrations.dump_schema_command'] ?? $container->load('getDoctrineMigrations_DumpSchemaCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_ExecuteCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_ExecuteCommand_LazyService.php deleted file mode 100644 index 3a53c5c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_ExecuteCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.execute_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:execute', [], 'Execute one or more migration versions up or down manually.', false, #[\Closure(name: 'doctrine_migrations.execute_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\ExecuteCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\ExecuteCommand => ($container->privates['doctrine_migrations.execute_command'] ?? $container->load('getDoctrineMigrations_ExecuteCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_GenerateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_GenerateCommand_LazyService.php deleted file mode 100644 index 002c251..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_GenerateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.generate_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:generate', [], 'Generate a blank migration class.', false, #[\Closure(name: 'doctrine_migrations.generate_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\GenerateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\GenerateCommand => ($container->privates['doctrine_migrations.generate_command'] ?? $container->load('getDoctrineMigrations_GenerateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_LatestCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_LatestCommand_LazyService.php deleted file mode 100644 index 33ac3d3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_LatestCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.latest_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:latest', [], 'Outputs the latest version', false, #[\Closure(name: 'doctrine_migrations.latest_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\LatestCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\LatestCommand => ($container->privates['doctrine_migrations.latest_command'] ?? $container->load('getDoctrineMigrations_LatestCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_MigrateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_MigrateCommand_LazyService.php deleted file mode 100644 index 3222a38..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_MigrateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.migrate_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:migrate', [], 'Execute a migration to a specified version or the latest available version.', false, #[\Closure(name: 'doctrine_migrations.migrate_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\MigrateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\MigrateCommand => ($container->privates['doctrine_migrations.migrate_command'] ?? $container->load('getDoctrineMigrations_MigrateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_RollupCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_RollupCommand_LazyService.php deleted file mode 100644 index d4f78f6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_RollupCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.rollup_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:rollup', [], 'Rollup migrations by deleting all tracked versions and insert the one version that exists.', false, #[\Closure(name: 'doctrine_migrations.rollup_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\RollupCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\RollupCommand => ($container->privates['doctrine_migrations.rollup_command'] ?? $container->load('getDoctrineMigrations_RollupCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_StatusCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_StatusCommand_LazyService.php deleted file mode 100644 index 9804d5d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_StatusCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.status_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:status', [], 'View the status of a set of migrations.', false, #[\Closure(name: 'doctrine_migrations.status_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\StatusCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\StatusCommand => ($container->privates['doctrine_migrations.status_command'] ?? $container->load('getDoctrineMigrations_StatusCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php deleted file mode 100644 index ed9a592..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.sync_metadata_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:sync-metadata-storage', [], 'Ensures that the metadata storage is at the latest version.', false, #[\Closure(name: 'doctrine_migrations.sync_metadata_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\SyncMetadataCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand => ($container->privates['doctrine_migrations.sync_metadata_command'] ?? $container->load('getDoctrineMigrations_SyncMetadataCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_UpToDateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_UpToDateCommand_LazyService.php deleted file mode 100644 index 33d9871..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_UpToDateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.up_to_date_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:up-to-date', [], 'Tells you if your schema is up-to-date.', false, #[\Closure(name: 'doctrine_migrations.up_to_date_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\UpToDateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\UpToDateCommand => ($container->privates['doctrine_migrations.up_to_date_command'] ?? $container->load('getDoctrineMigrations_UpToDateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionCommand_LazyService.php deleted file mode 100644 index ef6e8d6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.version_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:version', [], 'Manually add and delete migration versions from the version table.', false, #[\Closure(name: 'doctrine_migrations.version_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\VersionCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\VersionCommand => ($container->privates['doctrine_migrations.version_command'] ?? $container->load('getDoctrineMigrations_VersionCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionsCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionsCommand_LazyService.php deleted file mode 100644 index 9896e37..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_DoctrineMigrations_VersionsCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.versions_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:list', [], 'Display a list of all available migrations and their status.', false, #[\Closure(name: 'doctrine_migrations.versions_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\ListCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\ListCommand => ($container->privates['doctrine_migrations.versions_command'] ?? $container->load('getDoctrineMigrations_VersionsCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Lock_Default_Store_TTEhGTService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Lock_Default_Store_TTEhGTService.php deleted file mode 100644 index e7fe61d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Lock_Default_Store_TTEhGTService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.lock.default.store.TTEh_gT'] = \Symfony\Component\Lock\Store\StoreFactory::createStore($container->getEnv('LOCK_DSN')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeAuth_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeAuth_LazyService.php deleted file mode 100644 index 2e75c8e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeAuth_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_auth.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:auth', [], 'Create a Guard authenticator of different flavors', false, #[\Closure(name: 'maker.auto_command.make_auth', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_auth'] ?? $container->load('getMaker_AutoCommand_MakeAuthService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCommand_LazyService.php deleted file mode 100644 index a272f1a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:command', [], 'Create a new console command class', false, #[\Closure(name: 'maker.auto_command.make_command', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_command'] ?? $container->load('getMaker_AutoCommand_MakeCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeController_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeController_LazyService.php deleted file mode 100644 index d6cc1aa..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeController_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_controller.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:controller', [], 'Create a new controller class', false, #[\Closure(name: 'maker.auto_command.make_controller', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_controller'] ?? $container->load('getMaker_AutoCommand_MakeControllerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCrud_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCrud_LazyService.php deleted file mode 100644 index c6d53a1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeCrud_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_crud.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:crud', [], 'Create CRUD for Doctrine entity class', false, #[\Closure(name: 'maker.auto_command.make_crud', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_crud'] ?? $container->load('getMaker_AutoCommand_MakeCrudService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php deleted file mode 100644 index 942a482..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_docker_database.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:docker:database', [], 'Add a database container to your compose.yaml file', false, #[\Closure(name: 'maker.auto_command.make_docker_database', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_docker_database'] ?? $container->load('getMaker_AutoCommand_MakeDockerDatabaseService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeEntity_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeEntity_LazyService.php deleted file mode 100644 index f5140d5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeEntity_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_entity.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:entity', [], 'Create or update a Doctrine entity class, and optionally an API Platform resource', false, #[\Closure(name: 'maker.auto_command.make_entity', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_entity'] ?? $container->load('getMaker_AutoCommand_MakeEntityService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeFixtures_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeFixtures_LazyService.php deleted file mode 100644 index 703f4ed..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeFixtures_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_fixtures.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:fixtures', [], 'Create a new class to load Doctrine fixtures', false, #[\Closure(name: 'maker.auto_command.make_fixtures', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_fixtures'] ?? $container->load('getMaker_AutoCommand_MakeFixturesService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeForm_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeForm_LazyService.php deleted file mode 100644 index ae005d8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeForm_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_form.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:form', [], 'Create a new form class', false, #[\Closure(name: 'maker.auto_command.make_form', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_form'] ?? $container->load('getMaker_AutoCommand_MakeFormService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeListener_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeListener_LazyService.php deleted file mode 100644 index f9e56bd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeListener_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_listener.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:listener', ['make:subscriber'], 'Creates a new event subscriber class or a new event listener class', false, #[\Closure(name: 'maker.auto_command.make_listener', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_listener'] ?? $container->load('getMaker_AutoCommand_MakeListenerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessage_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessage_LazyService.php deleted file mode 100644 index 04f18a1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessage_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_message.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:message', [], 'Create a new message and handler', false, #[\Closure(name: 'maker.auto_command.make_message', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_message'] ?? $container->load('getMaker_AutoCommand_MakeMessageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php deleted file mode 100644 index 5aa2b51..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_messenger_middleware.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:messenger-middleware', [], 'Create a new messenger middleware', false, #[\Closure(name: 'maker.auto_command.make_messenger_middleware', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_messenger_middleware'] ?? $container->load('getMaker_AutoCommand_MakeMessengerMiddlewareService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMigration_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMigration_LazyService.php deleted file mode 100644 index c559ca8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeMigration_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_migration.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:migration', [], 'Create a new migration based on database changes', false, #[\Closure(name: 'maker.auto_command.make_migration', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_migration'] ?? $container->load('getMaker_AutoCommand_MakeMigrationService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php deleted file mode 100644 index b41a334..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_registration_form.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:registration-form', [], 'Create a new registration form system', false, #[\Closure(name: 'maker.auto_command.make_registration_form', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_registration_form'] ?? $container->load('getMaker_AutoCommand_MakeRegistrationFormService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeResetPassword_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeResetPassword_LazyService.php deleted file mode 100644 index 41e2219..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeResetPassword_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_reset_password.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:reset-password', [], 'Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle', false, #[\Closure(name: 'maker.auto_command.make_reset_password', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_reset_password'] ?? $container->load('getMaker_AutoCommand_MakeResetPasswordService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSchedule_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSchedule_LazyService.php deleted file mode 100644 index b943733..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSchedule_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_schedule.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:schedule', [], 'Create a scheduler component', false, #[\Closure(name: 'maker.auto_command.make_schedule', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_schedule'] ?? $container->load('getMaker_AutoCommand_MakeScheduleService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php deleted file mode 100644 index f9efe6a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_security_custom.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:security:custom', [], 'Create a custom security authenticator.', false, #[\Closure(name: 'maker.auto_command.make_security_custom', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_security_custom'] ?? $container->load('getMaker_AutoCommand_MakeSecurityCustomService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php deleted file mode 100644 index aa2b7ad..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_security_form_login.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:security:form-login', [], 'Generate the code needed for the form_login authenticator', false, #[\Closure(name: 'maker.auto_command.make_security_form_login', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_security_form_login'] ?? $container->load('getMaker_AutoCommand_MakeSecurityFormLoginService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php deleted file mode 100644 index 24fb5d5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_serializer_encoder.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:serializer:encoder', [], 'Create a new serializer encoder class', false, #[\Closure(name: 'maker.auto_command.make_serializer_encoder', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_serializer_encoder'] ?? $container->load('getMaker_AutoCommand_MakeSerializerEncoderService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php deleted file mode 100644 index 3fd06fb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_serializer_normalizer.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:serializer:normalizer', [], 'Create a new serializer normalizer class', false, #[\Closure(name: 'maker.auto_command.make_serializer_normalizer', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_serializer_normalizer'] ?? $container->load('getMaker_AutoCommand_MakeSerializerNormalizerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeStimulusController_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeStimulusController_LazyService.php deleted file mode 100644 index ccd33ac..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeStimulusController_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_stimulus_controller.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:stimulus-controller', [], 'Create a new Stimulus controller', false, #[\Closure(name: 'maker.auto_command.make_stimulus_controller', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_stimulus_controller'] ?? $container->load('getMaker_AutoCommand_MakeStimulusControllerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTest_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTest_LazyService.php deleted file mode 100644 index 87e1e2d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTest_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_test.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:test', ['make:unit-test', 'make:functional-test'], 'Create a new test class', false, #[\Closure(name: 'maker.auto_command.make_test', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_test'] ?? $container->load('getMaker_AutoCommand_MakeTestService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php deleted file mode 100644 index 173d116..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_twig_component.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:twig-component', [], 'Create a Twig (or Live) component', false, #[\Closure(name: 'maker.auto_command.make_twig_component', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_twig_component'] ?? $container->load('getMaker_AutoCommand_MakeTwigComponentService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php deleted file mode 100644 index 99f959e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_twig_extension.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:twig-extension', [], 'Create a new Twig extension with its runtime class', false, #[\Closure(name: 'maker.auto_command.make_twig_extension', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_twig_extension'] ?? $container->load('getMaker_AutoCommand_MakeTwigExtensionService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeUser_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeUser_LazyService.php deleted file mode 100644 index 8156490..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeUser_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_user.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:user', [], 'Create a new security user class', false, #[\Closure(name: 'maker.auto_command.make_user', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_user'] ?? $container->load('getMaker_AutoCommand_MakeUserService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeValidator_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeValidator_LazyService.php deleted file mode 100644 index 9bfccfb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeValidator_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_validator.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:validator', [], 'Create a new validator and constraint class', false, #[\Closure(name: 'maker.auto_command.make_validator', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_validator'] ?? $container->load('getMaker_AutoCommand_MakeValidatorService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeVoter_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeVoter_LazyService.php deleted file mode 100644 index f4f9b39..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeVoter_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_voter.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:voter', [], 'Create a new security voter class', false, #[\Closure(name: 'maker.auto_command.make_voter', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_voter'] ?? $container->load('getMaker_AutoCommand_MakeVoterService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeWebhook_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeWebhook_LazyService.php deleted file mode 100644 index 888e036..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Maker_AutoCommand_MakeWebhook_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_webhook.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:webhook', [], 'Create a new Webhook', false, #[\Closure(name: 'maker.auto_command.make_webhook', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_webhook'] ?? $container->load('getMaker_AutoCommand_MakeWebhookService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_6kVvRT_Service.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_6kVvRT_Service.php deleted file mode 100644 index e3f3258..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_6kVvRT_Service.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.messenger.handler_descriptor.6kVvRT.'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\HttpClient\Messenger\PingWebhookMessageHandler(($container->privates['http_client.uri_template'] ?? $container->load('getHttpClient_UriTemplateService'))), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_F4AMIZdService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_F4AMIZdService.php deleted file mode 100644 index 6273e63..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_F4AMIZdService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['.messenger.handler_descriptor.F4AMIZd'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(($container->services['App\\MessageHandler\\TriggerPriceImportHandler'] ?? $container->load('getTriggerPriceImportHandlerService')), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_KEzMhfsService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_KEzMhfsService.php deleted file mode 100644 index c44095e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_KEzMhfsService.php +++ /dev/null @@ -1,31 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1))); - $a->setAutoExit(false); - - return $container->privates['.messenger.handler_descriptor.kEzMhfs'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Console\Messenger\RunCommandMessageHandler($a), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_P4QvabmService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_P4QvabmService.php deleted file mode 100644 index db9b805..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_P4QvabmService.php +++ /dev/null @@ -1,32 +0,0 @@ -services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')); - - if (isset($container->privates['.messenger.handler_descriptor.p4Qvabm'])) { - return $container->privates['.messenger.handler_descriptor.p4Qvabm']; - } - - return $container->privates['.messenger.handler_descriptor.p4Qvabm'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Messenger\Handler\RedispatchMessageHandler($a), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_QXXNQ9dService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_QXXNQ9dService.php deleted file mode 100644 index 3b2205c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Messenger_HandlerDescriptor_QXXNQ9dService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.messenger.handler_descriptor.QXXNQ9d'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Process\Messenger\RunProcessMessageHandler(), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_DebugFirewall_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_DebugFirewall_LazyService.php deleted file mode 100644 index 389b6ca..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_DebugFirewall_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.security.command.debug_firewall.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:firewall', [], 'Display information about your security firewall(s)', false, #[\Closure(name: 'security.command.debug_firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Command\\DebugFirewallCommand')] fn (): \Symfony\Bundle\SecurityBundle\Command\DebugFirewallCommand => ($container->privates['security.command.debug_firewall'] ?? $container->load('getSecurity_Command_DebugFirewallService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_UserPasswordHash_LazyService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_UserPasswordHash_LazyService.php deleted file mode 100644 index 1a312f8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_Security_Command_UserPasswordHash_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.security.command.user_password_hash.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('security:hash-password', [], 'Hash a user password', false, #[\Closure(name: 'security.command.user_password_hash', class: 'Symfony\\Component\\PasswordHasher\\Command\\UserPasswordHashCommand')] fn (): \Symfony\Component\PasswordHasher\Command\UserPasswordHashCommand => ($container->privates['security.command.user_password_hash'] ?? $container->load('getSecurity_Command_UserPasswordHashService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_B4dyivWService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_B4dyivWService.php deleted file mode 100644 index fa84cb0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_B4dyivWService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['.service_locator.B4dyivW'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - 'messenger.transport.async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - ], [ - 'async' => '?', - 'messenger.transport.async' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_HBdvAhpService.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_HBdvAhpService.php deleted file mode 100644 index f4df450..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_HBdvAhpService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['.service_locator.HBdvAhp'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'App\\Kernel::loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'App\\Kernel::registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel::loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel::registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel:loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel:registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - ], [ - 'App\\Kernel::loadRoutes' => '?', - 'App\\Kernel::registerContainerConfiguration' => '?', - 'kernel::loadRoutes' => '?', - 'kernel::registerContainerConfiguration' => '?', - 'kernel:loadRoutes' => '?', - 'kernel:registerContainerConfiguration' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_O2p6Lk7Service.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_O2p6Lk7Service.php deleted file mode 100644 index d451642..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_O2p6Lk7Service.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['.service_locator.O2p6Lk7'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'http_kernel' => ['services', 'http_kernel', 'getHttpKernelService', false], - 'parameter_bag' => ['privates', 'parameter_bag', 'getParameterBagService', false], - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - 'router' => ['services', 'router', 'getRouterService', false], - 'security.authorization_checker' => ['privates', 'security.authorization_checker', 'getSecurity_AuthorizationCheckerService', false], - 'security.csrf.token_manager' => ['privates', 'security.csrf.token_manager', 'getSecurity_Csrf_TokenManagerService', true], - 'security.token_storage' => ['privates', 'security.token_storage', 'getSecurity_TokenStorageService', false], - ], [ - 'http_kernel' => '?', - 'parameter_bag' => '?', - 'request_stack' => '?', - 'router' => '?', - 'security.authorization_checker' => '?', - 'security.csrf.token_manager' => '?', - 'security.token_storage' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_SPNPNE7Service.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_SPNPNE7Service.php deleted file mode 100644 index 97a23b3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_SPNPNE7Service.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['.service_locator.sPNPNE7'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'event_dispatcher' => ['services', 'event_dispatcher', 'getEventDispatcherService', false], - 'security.event_dispatcher.dev' => ['privates', 'debug.security.event_dispatcher.dev', 'getDebug_Security_EventDispatcher_DevService', false], - 'security.event_dispatcher.main' => ['privates', 'debug.security.event_dispatcher.main', 'getDebug_Security_EventDispatcher_MainService', false], - ], [ - 'event_dispatcher' => '?', - 'security.event_dispatcher.dev' => '?', - 'security.event_dispatcher.main' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_Y4Zrx_Service.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_Y4Zrx_Service.php deleted file mode 100644 index aa37843..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/get_ServiceLocator_Y4Zrx_Service.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['.service_locator.y4_Zrx.'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'loader' => ['privates', '.errored..service_locator.y4_Zrx..Symfony\\Component\\Config\\Loader\\LoaderInterface', NULL, 'Cannot autowire service ".service_locator.y4_Zrx.": it needs an instance of "Symfony\\Component\\Config\\Loader\\LoaderInterface" but this type has been excluded from autowiring.'], - ], [ - 'loader' => 'Symfony\\Component\\Config\\Loader\\LoaderInterface', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/removed-ids.php b/projects/priceservice/var/cache/dev/ContainerGfxmI0x/removed-ids.php deleted file mode 100644 index 45ea04c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerGfxmI0x/removed-ids.php +++ /dev/null @@ -1,836 +0,0 @@ - true, - '.App\\Command\\RedisImportCommand.lazy' => true, - '.App\\Command\\RedisReadCommand.lazy' => true, - '.App\\Command\\TriggerTestCommand.lazy' => true, - '.Doctrine\\DBAL\\Connection $default.connection' => true, - '.Doctrine\\ORM\\EntityManagerInterface $default.entity_manager' => true, - '.Psr\\Cache\\CacheItemPoolInterface $cache.rate_limiter' => true, - '.Psr\\Container\\ContainerInterface $parameter_bag' => true, - '.Psr\\Log\\LoggerInterface $http_clientLogger' => true, - '.Symfony\\Component\\RateLimiter\\RateLimiterFactory $price_import.limiter' => true, - '.Symfony\\Contracts\\Cache\\CacheInterface $cache.rate_limiter' => true, - '.Symfony\\Contracts\\Cache\\TagAwareCacheInterface $cache.rate_limiter' => true, - '.abstract.instanceof.App\\Command\\RedisImportCommand' => true, - '.abstract.instanceof.App\\Command\\RedisReadCommand' => true, - '.abstract.instanceof.App\\Command\\TriggerTestCommand' => true, - '.abstract.instanceof.App\\Controller\\Api\\PricesController' => true, - '.abstract.instanceof.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.abstract.instanceof.App\\MessageHandler\\TriggerPriceImportHandler' => true, - '.cache.rate_limiter.taggable' => true, - '.cache_connection.GD_MSZC' => true, - '.cache_connection.IuJY3Yv' => true, - '.cache_connection.JKE6keX' => true, - '.console.command.about.lazy' => true, - '.console.command.assets_install.lazy' => true, - '.console.command.cache_clear.lazy' => true, - '.console.command.cache_pool_clear.lazy' => true, - '.console.command.cache_pool_delete.lazy' => true, - '.console.command.cache_pool_invalidate_tags.lazy' => true, - '.console.command.cache_pool_list.lazy' => true, - '.console.command.cache_pool_prune.lazy' => true, - '.console.command.cache_warmup.lazy' => true, - '.console.command.config_debug.lazy' => true, - '.console.command.config_dump_reference.lazy' => true, - '.console.command.container_debug.lazy' => true, - '.console.command.container_lint.lazy' => true, - '.console.command.debug_autowiring.lazy' => true, - '.console.command.dotenv_debug.lazy' => true, - '.console.command.event_dispatcher_debug.lazy' => true, - '.console.command.messenger_consume_messages.lazy' => true, - '.console.command.messenger_debug.lazy' => true, - '.console.command.messenger_setup_transports.lazy' => true, - '.console.command.messenger_stats.lazy' => true, - '.console.command.messenger_stop_workers.lazy' => true, - '.console.command.router_debug.lazy' => true, - '.console.command.router_match.lazy' => true, - '.console.command.secrets_decrypt_to_local.lazy' => true, - '.console.command.secrets_encrypt_from_local.lazy' => true, - '.console.command.secrets_generate_key.lazy' => true, - '.console.command.secrets_list.lazy' => true, - '.console.command.secrets_remove.lazy' => true, - '.console.command.secrets_set.lazy' => true, - '.console.command.yaml_lint.lazy' => true, - '.debug.security.voter.security.access.authenticated_voter' => true, - '.debug.security.voter.security.access.role_hierarchy_voter' => true, - '.debug.value_resolver.argument_resolver.backed_enum_resolver' => true, - '.debug.value_resolver.argument_resolver.datetime' => true, - '.debug.value_resolver.argument_resolver.default' => true, - '.debug.value_resolver.argument_resolver.not_tagged_controller' => true, - '.debug.value_resolver.argument_resolver.query_parameter_value_resolver' => true, - '.debug.value_resolver.argument_resolver.request' => true, - '.debug.value_resolver.argument_resolver.request_attribute' => true, - '.debug.value_resolver.argument_resolver.request_payload' => true, - '.debug.value_resolver.argument_resolver.service' => true, - '.debug.value_resolver.argument_resolver.session' => true, - '.debug.value_resolver.argument_resolver.uid' => true, - '.debug.value_resolver.argument_resolver.variadic' => true, - '.debug.value_resolver.doctrine.orm.entity_value_resolver' => true, - '.debug.value_resolver.security.security_token_value_resolver' => true, - '.debug.value_resolver.security.user_value_resolver' => true, - '.doctrine.orm.default_metadata_driver' => true, - '.doctrine.orm.default_metadata_driver.inner' => true, - '.doctrine_migrations.current_command.lazy' => true, - '.doctrine_migrations.diff_command.lazy' => true, - '.doctrine_migrations.dump_schema_command.lazy' => true, - '.doctrine_migrations.execute_command.lazy' => true, - '.doctrine_migrations.generate_command.lazy' => true, - '.doctrine_migrations.latest_command.lazy' => true, - '.doctrine_migrations.migrate_command.lazy' => true, - '.doctrine_migrations.rollup_command.lazy' => true, - '.doctrine_migrations.status_command.lazy' => true, - '.doctrine_migrations.sync_metadata_command.lazy' => true, - '.doctrine_migrations.up_to_date_command.lazy' => true, - '.doctrine_migrations.version_command.lazy' => true, - '.doctrine_migrations.versions_command.lazy' => true, - '.errored..service_locator.y4_Zrx..Symfony\\Component\\Config\\Loader\\LoaderInterface' => true, - '.instanceof.App\\MessageHandler\\TriggerPriceImportHandler.0.App\\MessageHandler\\TriggerPriceImportHandler' => true, - '.instanceof.Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController.0.App\\Controller\\Api\\PricesController' => true, - '.instanceof.Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController.0.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\RedisImportCommand' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\RedisReadCommand' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\TriggerTestCommand' => true, - '.instanceof.Symfony\\Contracts\\Service\\ServiceSubscriberInterface.0.App\\Controller\\Api\\PricesController' => true, - '.instanceof.Symfony\\Contracts\\Service\\ServiceSubscriberInterface.0.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.lock.default.store.TTEh_gT' => true, - '.maker.auto_command.make_auth.lazy' => true, - '.maker.auto_command.make_command.lazy' => true, - '.maker.auto_command.make_controller.lazy' => true, - '.maker.auto_command.make_crud.lazy' => true, - '.maker.auto_command.make_docker_database.lazy' => true, - '.maker.auto_command.make_entity.lazy' => true, - '.maker.auto_command.make_fixtures.lazy' => true, - '.maker.auto_command.make_form.lazy' => true, - '.maker.auto_command.make_listener.lazy' => true, - '.maker.auto_command.make_message.lazy' => true, - '.maker.auto_command.make_messenger_middleware.lazy' => true, - '.maker.auto_command.make_migration.lazy' => true, - '.maker.auto_command.make_registration_form.lazy' => true, - '.maker.auto_command.make_reset_password.lazy' => true, - '.maker.auto_command.make_schedule.lazy' => true, - '.maker.auto_command.make_security_custom.lazy' => true, - '.maker.auto_command.make_security_form_login.lazy' => true, - '.maker.auto_command.make_serializer_encoder.lazy' => true, - '.maker.auto_command.make_serializer_normalizer.lazy' => true, - '.maker.auto_command.make_stimulus_controller.lazy' => true, - '.maker.auto_command.make_test.lazy' => true, - '.maker.auto_command.make_twig_component.lazy' => true, - '.maker.auto_command.make_twig_extension.lazy' => true, - '.maker.auto_command.make_user.lazy' => true, - '.maker.auto_command.make_validator.lazy' => true, - '.maker.auto_command.make_voter.lazy' => true, - '.maker.auto_command.make_webhook.lazy' => true, - '.messenger.handler_descriptor.6kVvRT.' => true, - '.messenger.handler_descriptor.F4AMIZd' => true, - '.messenger.handler_descriptor.QXXNQ9d' => true, - '.messenger.handler_descriptor.kEzMhfs' => true, - '.messenger.handler_descriptor.p4Qvabm' => true, - '.security.command.debug_firewall.lazy' => true, - '.security.command.user_password_hash.lazy' => true, - '.security.request_matcher.FFUBg3B' => true, - '.security.request_matcher.RKxp8he' => true, - '.security.request_matcher.lSKjE8t' => true, - '.security.request_matcher.tcCj4Pw' => true, - '.service_locator..Fs8Kd7' => true, - '.service_locator.27KOu4H' => true, - '.service_locator.5cAhUFF' => true, - '.service_locator.6DxUFLS' => true, - '.service_locator.B4dyivW' => true, - '.service_locator.EMavxuq' => true, - '.service_locator.EMavxuq.router.default' => true, - '.service_locator.HBdvAhp' => true, - '.service_locator.KLVvNIq' => true, - '.service_locator.L.EDYUC' => true, - '.service_locator.LD5oJC8' => true, - '.service_locator.LMuqDDe' => true, - '.service_locator.LcVn9Hr' => true, - '.service_locator.O2p6Lk7' => true, - '.service_locator.O2p6Lk7.App\\Controller\\Api\\PricesController' => true, - '.service_locator.O2p6Lk7.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.service_locator.TpoC7U9' => true, - '.service_locator.VHsrTPK' => true, - '.service_locator.XXv1IfR' => true, - '.service_locator.Xbsa8iG' => true, - '.service_locator.XnSA3F0' => true, - '.service_locator._kIAbz1' => true, - '.service_locator.bJ.4HC5' => true, - '.service_locator.cUcW89y' => true, - '.service_locator.cUcW89y.router.cache_warmer' => true, - '.service_locator.e_.xxAP' => true, - '.service_locator.fTO7dT0' => true, - '.service_locator.gFlme_s' => true, - '.service_locator.gHpsvM5' => true, - '.service_locator.iUxT8yA' => true, - '.service_locator.jUv.zyj' => true, - '.service_locator.jxnIR8C' => true, - '.service_locator.lLv4pWF' => true, - '.service_locator.sPNPNE7' => true, - '.service_locator.w7.f4fT' => true, - '.service_locator.y4_Zrx.' => true, - '.service_locator.zJyh7qS' => true, - 'App\\Command\\RedisImportCommand' => true, - 'App\\Command\\RedisReadCommand' => true, - 'App\\Command\\TriggerTestCommand' => true, - 'App\\Entity' => true, - 'App\\Message\\SendNotification' => true, - 'App\\Message\\TriggerPriceImport' => true, - 'App\\Service\\Adapter\\Orm' => true, - 'App\\Service\\Adapter\\RedisClientService' => true, - 'App\\Service\\Prices\\RedisImportService' => true, - 'App\\Service\\Prices\\RedisReadService' => true, - 'Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController' => true, - 'Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider' => true, - 'Doctrine\\Common\\Persistence\\ManagerRegistry' => true, - 'Doctrine\\DBAL\\Connection' => true, - 'Doctrine\\DBAL\\Connection $defaultConnection' => true, - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => true, - 'Doctrine\\ORM\\EntityManagerInterface' => true, - 'Doctrine\\ORM\\EntityManagerInterface $defaultEntityManager' => true, - 'Doctrine\\Persistence\\ManagerRegistry' => true, - 'Psr\\Cache\\CacheItemPoolInterface' => true, - 'Psr\\Cache\\CacheItemPoolInterface $cacheRateLimiter' => true, - 'Psr\\Clock\\ClockInterface' => true, - 'Psr\\Container\\ContainerInterface $parameterBag' => true, - 'Psr\\EventDispatcher\\EventDispatcherInterface' => true, - 'Psr\\Log\\LoggerInterface' => true, - 'Psr\\Log\\LoggerInterface $cacheLogger' => true, - 'Psr\\Log\\LoggerInterface $consoleLogger' => true, - 'Psr\\Log\\LoggerInterface $deprecationLogger' => true, - 'Psr\\Log\\LoggerInterface $doctrineLogger' => true, - 'Psr\\Log\\LoggerInterface $eventLogger' => true, - 'Psr\\Log\\LoggerInterface $httpClientLogger' => true, - 'Psr\\Log\\LoggerInterface $lockLogger' => true, - 'Psr\\Log\\LoggerInterface $messengerLogger' => true, - 'Psr\\Log\\LoggerInterface $phpLogger' => true, - 'Psr\\Log\\LoggerInterface $requestLogger' => true, - 'Psr\\Log\\LoggerInterface $routerLogger' => true, - 'Psr\\Log\\LoggerInterface $securityLogger' => true, - 'SessionHandlerInterface' => true, - 'Symfony\\Bundle\\SecurityBundle\\Security' => true, - 'Symfony\\Component\\Clock\\ClockInterface' => true, - 'Symfony\\Component\\Config\\Loader\\LoaderInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ReverseContainer' => true, - 'Symfony\\Component\\ErrorHandler\\ErrorRenderer\\FileLinkFormatter' => true, - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => true, - 'Symfony\\Component\\Filesystem\\Filesystem' => true, - 'Symfony\\Component\\HttpFoundation\\Request' => true, - 'Symfony\\Component\\HttpFoundation\\RequestStack' => true, - 'Symfony\\Component\\HttpFoundation\\Response' => true, - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => true, - 'Symfony\\Component\\HttpFoundation\\UriSigner' => true, - 'Symfony\\Component\\HttpFoundation\\UrlHelper' => true, - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => true, - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentUriGeneratorInterface' => true, - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => true, - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => true, - 'Symfony\\Component\\HttpKernel\\KernelInterface' => true, - 'Symfony\\Component\\HttpKernel\\UriSigner' => true, - 'Symfony\\Component\\Lock\\LockFactory' => true, - 'Symfony\\Component\\Messenger\\MessageBusInterface' => true, - 'Symfony\\Component\\Messenger\\Transport\\Serialization\\SerializerInterface' => true, - 'Symfony\\Component\\PasswordHasher\\Hasher\\PasswordHasherFactoryInterface' => true, - 'Symfony\\Component\\PasswordHasher\\Hasher\\UserPasswordHasherInterface' => true, - 'Symfony\\Component\\PropertyAccess\\PropertyAccessorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyAccessExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyDescriptionExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyInfoExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyInitializableExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyListExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyReadInfoExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyTypeExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyWriteInfoExtractorInterface' => true, - 'Symfony\\Component\\RateLimiter\\RateLimiterFactory $priceImportLimiter' => true, - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => true, - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => true, - 'Symfony\\Component\\Routing\\RequestContext' => true, - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => true, - 'Symfony\\Component\\Routing\\RouterInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\Storage\\TokenStorageInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManagerInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationCheckerInterface' => true, - 'Symfony\\Component\\Security\\Core\\Role\\RoleHierarchyInterface' => true, - 'Symfony\\Component\\Security\\Core\\Security' => true, - 'Symfony\\Component\\Security\\Core\\User\\UserCheckerInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\TokenGenerator\\TokenGeneratorInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\TokenStorage\\TokenStorageInterface' => true, - 'Symfony\\Component\\Security\\Http\\Authentication\\AuthenticationUtils' => true, - 'Symfony\\Component\\Security\\Http\\Authentication\\UserAuthenticatorInterface' => true, - 'Symfony\\Component\\Security\\Http\\Firewall' => true, - 'Symfony\\Component\\Security\\Http\\FirewallMapInterface' => true, - 'Symfony\\Component\\Security\\Http\\HttpUtils' => true, - 'Symfony\\Component\\Security\\Http\\Session\\SessionAuthenticationStrategyInterface' => true, - 'Symfony\\Component\\Stopwatch\\Stopwatch' => true, - 'Symfony\\Component\\String\\Slugger\\SluggerInterface' => true, - 'Symfony\\Component\\Uid\\Factory\\NameBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\RandomBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\TimeBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\UlidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\UuidFactory' => true, - 'Symfony\\Contracts\\Cache\\CacheInterface' => true, - 'Symfony\\Contracts\\Cache\\CacheInterface $cacheRateLimiter' => true, - 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => true, - 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface $cacheRateLimiter' => true, - 'Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface' => true, - 'Symfony\\Contracts\\HttpClient\\HttpClientInterface' => true, - 'argument_metadata_factory' => true, - 'argument_resolver' => true, - 'argument_resolver.backed_enum_resolver' => true, - 'argument_resolver.controller_locator' => true, - 'argument_resolver.datetime' => true, - 'argument_resolver.default' => true, - 'argument_resolver.not_tagged_controller' => true, - 'argument_resolver.query_parameter_value_resolver' => true, - 'argument_resolver.request' => true, - 'argument_resolver.request_attribute' => true, - 'argument_resolver.request_payload' => true, - 'argument_resolver.service' => true, - 'argument_resolver.session' => true, - 'argument_resolver.uid' => true, - 'argument_resolver.variadic' => true, - 'cache.adapter.apcu' => true, - 'cache.adapter.array' => true, - 'cache.adapter.doctrine_dbal' => true, - 'cache.adapter.filesystem' => true, - 'cache.adapter.memcached' => true, - 'cache.adapter.pdo' => true, - 'cache.adapter.psr6' => true, - 'cache.adapter.redis' => true, - 'cache.adapter.redis_tag_aware' => true, - 'cache.adapter.system' => true, - 'cache.annotations' => true, - 'cache.app.taggable' => true, - 'cache.default_clearer' => true, - 'cache.default_doctrine_dbal_provider' => true, - 'cache.default_marshaller' => true, - 'cache.default_memcached_provider' => true, - 'cache.default_redis_provider' => true, - 'cache.doctrine.orm.default.metadata' => true, - 'cache.doctrine.orm.default.query' => true, - 'cache.doctrine.orm.default.result' => true, - 'cache.early_expiration_handler' => true, - 'cache.messenger.restart_workers_signal' => true, - 'cache.property_access' => true, - 'cache.property_info' => true, - 'cache.rate_limiter' => true, - 'cache.security_expression_language' => true, - 'cache.serializer' => true, - 'cache.validator' => true, - 'cache_clearer' => true, - 'clock' => true, - 'config.resource.self_checking_resource_checker' => true, - 'config_builder.warmer' => true, - 'config_cache_factory' => true, - 'console.command.about' => true, - 'console.command.assets_install' => true, - 'console.command.cache_clear' => true, - 'console.command.cache_pool_clear' => true, - 'console.command.cache_pool_delete' => true, - 'console.command.cache_pool_invalidate_tags' => true, - 'console.command.cache_pool_list' => true, - 'console.command.cache_pool_prune' => true, - 'console.command.cache_warmup' => true, - 'console.command.config_debug' => true, - 'console.command.config_dump_reference' => true, - 'console.command.container_debug' => true, - 'console.command.container_lint' => true, - 'console.command.debug_autowiring' => true, - 'console.command.dotenv_debug' => true, - 'console.command.event_dispatcher_debug' => true, - 'console.command.messenger_consume_messages' => true, - 'console.command.messenger_debug' => true, - 'console.command.messenger_setup_transports' => true, - 'console.command.messenger_stats' => true, - 'console.command.messenger_stop_workers' => true, - 'console.command.router_debug' => true, - 'console.command.router_match' => true, - 'console.command.secrets_decrypt_to_local' => true, - 'console.command.secrets_encrypt_from_local' => true, - 'console.command.secrets_generate_key' => true, - 'console.command.secrets_list' => true, - 'console.command.secrets_remove' => true, - 'console.command.secrets_set' => true, - 'console.command.yaml_lint' => true, - 'console.error_listener' => true, - 'console.messenger.application' => true, - 'console.messenger.execute_command_handler' => true, - 'console.suggest_missing_package_subscriber' => true, - 'container.env' => true, - 'container.env_var_processor' => true, - 'container.getenv' => true, - 'controller.cache_attribute_listener' => true, - 'controller.is_granted_attribute_listener' => true, - 'controller_resolver' => true, - 'data_collector.doctrine' => true, - 'data_collector.security' => true, - 'debug.argument_resolver' => true, - 'debug.argument_resolver.inner' => true, - 'debug.controller_resolver' => true, - 'debug.controller_resolver.inner' => true, - 'debug.debug_handlers_listener' => true, - 'debug.debug_logger_configurator' => true, - 'debug.event_dispatcher' => true, - 'debug.event_dispatcher.inner' => true, - 'debug.file_link_formatter' => true, - 'debug.log_processor' => true, - 'debug.security.access.decision_manager' => true, - 'debug.security.access.decision_manager.inner' => true, - 'debug.security.event_dispatcher.dev' => true, - 'debug.security.event_dispatcher.dev.inner' => true, - 'debug.security.event_dispatcher.main' => true, - 'debug.security.event_dispatcher.main.inner' => true, - 'debug.security.firewall' => true, - 'debug.security.firewall.authenticator.dev' => true, - 'debug.security.firewall.authenticator.dev.inner' => true, - 'debug.security.firewall.authenticator.main' => true, - 'debug.security.firewall.authenticator.main.inner' => true, - 'debug.security.voter.vote_listener' => true, - 'dependency_injection.config.container_parameters_resource_checker' => true, - 'disallow_search_engine_index_response_listener' => true, - 'doctrine.cache_clear_metadata_command' => true, - 'doctrine.cache_clear_query_cache_command' => true, - 'doctrine.cache_clear_result_command' => true, - 'doctrine.cache_collection_region_command' => true, - 'doctrine.clear_entity_region_command' => true, - 'doctrine.clear_query_region_command' => true, - 'doctrine.database_create_command' => true, - 'doctrine.database_drop_command' => true, - 'doctrine.dbal.connection' => true, - 'doctrine.dbal.connection.configuration' => true, - 'doctrine.dbal.connection.event_manager' => true, - 'doctrine.dbal.connection_expiries' => true, - 'doctrine.dbal.connection_factory' => true, - 'doctrine.dbal.connection_factory.dsn_parser' => true, - 'doctrine.dbal.debug_middleware' => true, - 'doctrine.dbal.debug_middleware.default' => true, - 'doctrine.dbal.default_connection.configuration' => true, - 'doctrine.dbal.default_connection.event_manager' => true, - 'doctrine.dbal.default_schema_asset_filter_manager' => true, - 'doctrine.dbal.default_schema_manager_factory' => true, - 'doctrine.dbal.event_manager' => true, - 'doctrine.dbal.logging_middleware' => true, - 'doctrine.dbal.logging_middleware.default' => true, - 'doctrine.dbal.schema_asset_filter_manager' => true, - 'doctrine.dbal.well_known_schema_asset_filter' => true, - 'doctrine.debug_data_holder' => true, - 'doctrine.id_generator_locator' => true, - 'doctrine.mapping_info_command' => true, - 'doctrine.migrations.configuration' => true, - 'doctrine.migrations.configuration_loader' => true, - 'doctrine.migrations.connection_loader' => true, - 'doctrine.migrations.connection_registry_loader' => true, - 'doctrine.migrations.container_aware_migrations_factory' => true, - 'doctrine.migrations.container_aware_migrations_factory.inner' => true, - 'doctrine.migrations.dependency_factory' => true, - 'doctrine.migrations.em_loader' => true, - 'doctrine.migrations.entity_manager_registry_loader' => true, - 'doctrine.migrations.metadata_storage' => true, - 'doctrine.migrations.migrations_factory' => true, - 'doctrine.migrations.storage.table_storage' => true, - 'doctrine.orm.command.entity_manager_provider' => true, - 'doctrine.orm.configuration' => true, - 'doctrine.orm.container_repository_factory' => true, - 'doctrine.orm.default_attribute_metadata_driver' => true, - 'doctrine.orm.default_configuration' => true, - 'doctrine.orm.default_entity_listener_resolver' => true, - 'doctrine.orm.default_entity_manager.event_manager' => true, - 'doctrine.orm.default_entity_manager.property_info_extractor' => true, - 'doctrine.orm.default_listeners.attach_entity_listeners' => true, - 'doctrine.orm.default_manager_configurator' => true, - 'doctrine.orm.default_metadata_cache' => true, - 'doctrine.orm.default_metadata_driver' => true, - 'doctrine.orm.default_query_cache' => true, - 'doctrine.orm.default_result_cache' => true, - 'doctrine.orm.entity_manager.abstract' => true, - 'doctrine.orm.entity_value_resolver' => true, - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => true, - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => true, - 'doctrine.orm.listeners.lock_store_schema_listener' => true, - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => true, - 'doctrine.orm.listeners.resolve_target_entity' => true, - 'doctrine.orm.manager_configurator.abstract' => true, - 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager' => true, - 'doctrine.orm.naming_strategy.default' => true, - 'doctrine.orm.naming_strategy.underscore' => true, - 'doctrine.orm.naming_strategy.underscore_number_aware' => true, - 'doctrine.orm.proxy_cache_warmer' => true, - 'doctrine.orm.quote_strategy.ansi' => true, - 'doctrine.orm.quote_strategy.default' => true, - 'doctrine.orm.security.user.provider' => true, - 'doctrine.orm.typed_field_mapper.default' => true, - 'doctrine.orm.validator.unique' => true, - 'doctrine.orm.validator_initializer' => true, - 'doctrine.query_dql_command' => true, - 'doctrine.query_sql_command' => true, - 'doctrine.schema_create_command' => true, - 'doctrine.schema_drop_command' => true, - 'doctrine.schema_update_command' => true, - 'doctrine.schema_validate_command' => true, - 'doctrine.twig.doctrine_extension' => true, - 'doctrine.ulid_generator' => true, - 'doctrine.uuid_generator' => true, - 'doctrine_migrations.current_command' => true, - 'doctrine_migrations.diff_command' => true, - 'doctrine_migrations.dump_schema_command' => true, - 'doctrine_migrations.execute_command' => true, - 'doctrine_migrations.generate_command' => true, - 'doctrine_migrations.latest_command' => true, - 'doctrine_migrations.migrate_command' => true, - 'doctrine_migrations.rollup_command' => true, - 'doctrine_migrations.schema_filter_listener' => true, - 'doctrine_migrations.status_command' => true, - 'doctrine_migrations.sync_metadata_command' => true, - 'doctrine_migrations.up_to_date_command' => true, - 'doctrine_migrations.version_command' => true, - 'doctrine_migrations.versions_command' => true, - 'error_handler.error_renderer.html' => true, - 'error_renderer' => true, - 'error_renderer.html' => true, - 'exception_listener' => true, - 'file_locator' => true, - 'filesystem' => true, - 'form.type.entity' => true, - 'form.type_guesser.doctrine' => true, - 'fragment.handler' => true, - 'fragment.renderer.inline' => true, - 'fragment.uri_generator' => true, - 'http_cache' => true, - 'http_cache.store' => true, - 'http_client' => true, - 'http_client.abstract_retry_strategy' => true, - 'http_client.messenger.ping_webhook_handler' => true, - 'http_client.transport' => true, - 'http_client.uri_template' => true, - 'http_client.uri_template.inner' => true, - 'http_client.uri_template_expander.guzzle' => true, - 'http_client.uri_template_expander.rize' => true, - 'limiter' => true, - 'limiter.price_import' => true, - 'limiter.storage.price_import' => true, - 'locale_aware_listener' => true, - 'locale_listener' => true, - 'lock.default.factory' => true, - 'lock.factory' => true, - 'lock.factory.abstract' => true, - 'lock.store.combined.abstract' => true, - 'lock.strategy.majority' => true, - 'logger' => true, - 'maker.auto_command.abstract' => true, - 'maker.auto_command.make_auth' => true, - 'maker.auto_command.make_command' => true, - 'maker.auto_command.make_controller' => true, - 'maker.auto_command.make_crud' => true, - 'maker.auto_command.make_docker_database' => true, - 'maker.auto_command.make_entity' => true, - 'maker.auto_command.make_fixtures' => true, - 'maker.auto_command.make_form' => true, - 'maker.auto_command.make_listener' => true, - 'maker.auto_command.make_message' => true, - 'maker.auto_command.make_messenger_middleware' => true, - 'maker.auto_command.make_migration' => true, - 'maker.auto_command.make_registration_form' => true, - 'maker.auto_command.make_reset_password' => true, - 'maker.auto_command.make_schedule' => true, - 'maker.auto_command.make_security_custom' => true, - 'maker.auto_command.make_security_form_login' => true, - 'maker.auto_command.make_serializer_encoder' => true, - 'maker.auto_command.make_serializer_normalizer' => true, - 'maker.auto_command.make_stimulus_controller' => true, - 'maker.auto_command.make_test' => true, - 'maker.auto_command.make_twig_component' => true, - 'maker.auto_command.make_twig_extension' => true, - 'maker.auto_command.make_user' => true, - 'maker.auto_command.make_validator' => true, - 'maker.auto_command.make_voter' => true, - 'maker.auto_command.make_webhook' => true, - 'maker.autoloader_finder' => true, - 'maker.autoloader_util' => true, - 'maker.console_error_listener' => true, - 'maker.doctrine_helper' => true, - 'maker.entity_class_generator' => true, - 'maker.event_registry' => true, - 'maker.file_link_formatter' => true, - 'maker.file_manager' => true, - 'maker.generator' => true, - 'maker.maker.make_authenticator' => true, - 'maker.maker.make_command' => true, - 'maker.maker.make_controller' => true, - 'maker.maker.make_crud' => true, - 'maker.maker.make_custom_authenticator' => true, - 'maker.maker.make_docker_database' => true, - 'maker.maker.make_entity' => true, - 'maker.maker.make_fixtures' => true, - 'maker.maker.make_form' => true, - 'maker.maker.make_form_login' => true, - 'maker.maker.make_functional_test' => true, - 'maker.maker.make_listener' => true, - 'maker.maker.make_message' => true, - 'maker.maker.make_messenger_middleware' => true, - 'maker.maker.make_migration' => true, - 'maker.maker.make_registration_form' => true, - 'maker.maker.make_reset_password' => true, - 'maker.maker.make_schedule' => true, - 'maker.maker.make_serializer_encoder' => true, - 'maker.maker.make_serializer_normalizer' => true, - 'maker.maker.make_stimulus_controller' => true, - 'maker.maker.make_subscriber' => true, - 'maker.maker.make_test' => true, - 'maker.maker.make_twig_component' => true, - 'maker.maker.make_twig_extension' => true, - 'maker.maker.make_unit_test' => true, - 'maker.maker.make_user' => true, - 'maker.maker.make_validator' => true, - 'maker.maker.make_voter' => true, - 'maker.maker.make_webhook' => true, - 'maker.php_compat_util' => true, - 'maker.renderer.form_type_renderer' => true, - 'maker.security_config_updater' => true, - 'maker.security_controller_builder' => true, - 'maker.template_component_generator' => true, - 'maker.template_linter' => true, - 'maker.user_class_builder' => true, - 'messenger.bus.default' => true, - 'messenger.bus.default.messenger.handlers_locator' => true, - 'messenger.bus.default.middleware.add_bus_name_stamp_middleware' => true, - 'messenger.bus.default.middleware.handle_message' => true, - 'messenger.bus.default.middleware.send_message' => true, - 'messenger.bus.default.middleware.traceable' => true, - 'messenger.default_serializer' => true, - 'messenger.failure.add_error_details_stamp_listener' => true, - 'messenger.listener.dispatch_pcntl_signal_listener' => true, - 'messenger.listener.reset_services' => true, - 'messenger.listener.stop_worker_on_restart_signal_listener' => true, - 'messenger.listener.stop_worker_on_sigterm_signal_listener' => true, - 'messenger.listener.stop_worker_on_stop_exception_listener' => true, - 'messenger.listener.stop_worker_signals_listener' => true, - 'messenger.middleware.add_bus_name_stamp_middleware' => true, - 'messenger.middleware.dispatch_after_current_bus' => true, - 'messenger.middleware.doctrine_close_connection' => true, - 'messenger.middleware.doctrine_open_transaction_logger' => true, - 'messenger.middleware.doctrine_ping_connection' => true, - 'messenger.middleware.doctrine_transaction' => true, - 'messenger.middleware.failed_message_processing_middleware' => true, - 'messenger.middleware.handle_message' => true, - 'messenger.middleware.reject_redelivered_message_middleware' => true, - 'messenger.middleware.router_context' => true, - 'messenger.middleware.send_message' => true, - 'messenger.middleware.traceable' => true, - 'messenger.middleware.validation' => true, - 'messenger.receiver_locator' => true, - 'messenger.redispatch_message_handler' => true, - 'messenger.retry.abstract_multiplier_retry_strategy' => true, - 'messenger.retry.multiplier_retry_strategy.async' => true, - 'messenger.retry.send_failed_message_for_retry_listener' => true, - 'messenger.retry_strategy_locator' => true, - 'messenger.routable_message_bus' => true, - 'messenger.senders_locator' => true, - 'messenger.transport.amqp.factory' => true, - 'messenger.transport.async' => true, - 'messenger.transport.beanstalkd.factory' => true, - 'messenger.transport.in_memory.factory' => true, - 'messenger.transport.native_php_serializer' => true, - 'messenger.transport.redis.factory' => true, - 'messenger.transport.sqs.factory' => true, - 'messenger.transport.symfony_serializer' => true, - 'messenger.transport.sync.factory' => true, - 'messenger.transport_factory' => true, - 'monolog.activation_strategy.not_found' => true, - 'monolog.formatter.chrome_php' => true, - 'monolog.formatter.gelf_message' => true, - 'monolog.formatter.html' => true, - 'monolog.formatter.json' => true, - 'monolog.formatter.line' => true, - 'monolog.formatter.loggly' => true, - 'monolog.formatter.logstash' => true, - 'monolog.formatter.normalizer' => true, - 'monolog.formatter.scalar' => true, - 'monolog.formatter.wildfire' => true, - 'monolog.handler.deprecation' => true, - 'monolog.handler.file_log' => true, - 'monolog.handler.fingers_crossed.error_level_activation_strategy' => true, - 'monolog.handler.main' => true, - 'monolog.handler.null_internal' => true, - 'monolog.handler.stdout' => true, - 'monolog.http_client' => true, - 'monolog.logger' => true, - 'monolog.logger.cache' => true, - 'monolog.logger.console' => true, - 'monolog.logger.doctrine' => true, - 'monolog.logger.event' => true, - 'monolog.logger.http_client' => true, - 'monolog.logger.lock' => true, - 'monolog.logger.messenger' => true, - 'monolog.logger.php' => true, - 'monolog.logger.request' => true, - 'monolog.logger.router' => true, - 'monolog.logger.security' => true, - 'monolog.logger_prototype' => true, - 'monolog.processor.psr_log_message' => true, - 'name_based_uuid.factory' => true, - 'parameter_bag' => true, - 'process.messenger.process_message_handler' => true, - 'property_accessor' => true, - 'property_info' => true, - 'property_info.reflection_extractor' => true, - 'random_based_uuid.factory' => true, - 'response_listener' => true, - 'reverse_container' => true, - 'router.cache_warmer' => true, - 'router.default' => true, - 'router.request_context' => true, - 'router_listener' => true, - 'routing.loader.annotation' => true, - 'routing.loader.annotation.directory' => true, - 'routing.loader.annotation.file' => true, - 'routing.loader.attribute' => true, - 'routing.loader.attribute.directory' => true, - 'routing.loader.attribute.file' => true, - 'routing.loader.container' => true, - 'routing.loader.directory' => true, - 'routing.loader.glob' => true, - 'routing.loader.php' => true, - 'routing.loader.psr4' => true, - 'routing.loader.xml' => true, - 'routing.loader.yml' => true, - 'routing.resolver' => true, - 'secrets.decryption_key' => true, - 'secrets.local_vault' => true, - 'secrets.vault' => true, - 'security.access.authenticated_voter' => true, - 'security.access.decision_manager' => true, - 'security.access.role_hierarchy_voter' => true, - 'security.access_listener' => true, - 'security.access_map' => true, - 'security.access_token_extractor.header' => true, - 'security.access_token_extractor.query_string' => true, - 'security.access_token_extractor.request_body' => true, - 'security.access_token_handler.oidc' => true, - 'security.access_token_handler.oidc.jwk' => true, - 'security.access_token_handler.oidc.signature' => true, - 'security.access_token_handler.oidc.signature.ES256' => true, - 'security.access_token_handler.oidc.signature.ES384' => true, - 'security.access_token_handler.oidc.signature.ES512' => true, - 'security.access_token_handler.oidc_user_info' => true, - 'security.access_token_handler.oidc_user_info.http_client' => true, - 'security.authentication.custom_failure_handler' => true, - 'security.authentication.custom_success_handler' => true, - 'security.authentication.failure_handler' => true, - 'security.authentication.listener.abstract' => true, - 'security.authentication.session_strategy' => true, - 'security.authentication.session_strategy.dev' => true, - 'security.authentication.session_strategy.main' => true, - 'security.authentication.session_strategy_noop' => true, - 'security.authentication.success_handler' => true, - 'security.authentication.switchuser_listener' => true, - 'security.authentication.trust_resolver' => true, - 'security.authentication_utils' => true, - 'security.authenticator.access_token' => true, - 'security.authenticator.access_token.chain_extractor' => true, - 'security.authenticator.form_login' => true, - 'security.authenticator.http_basic' => true, - 'security.authenticator.json_login' => true, - 'security.authenticator.manager' => true, - 'security.authenticator.manager.dev' => true, - 'security.authenticator.manager.main' => true, - 'security.authenticator.managers_locator' => true, - 'security.authenticator.remote_user' => true, - 'security.authenticator.x509' => true, - 'security.authorization_checker' => true, - 'security.channel_listener' => true, - 'security.command.debug_firewall' => true, - 'security.command.user_password_hash' => true, - 'security.context_listener' => true, - 'security.context_listener.0' => true, - 'security.context_listener.1' => true, - 'security.csrf.token_generator' => true, - 'security.csrf.token_manager' => true, - 'security.csrf.token_storage' => true, - 'security.event_dispatcher.dev' => true, - 'security.event_dispatcher.main' => true, - 'security.exception_listener' => true, - 'security.exception_listener.dev' => true, - 'security.exception_listener.main' => true, - 'security.firewall' => true, - 'security.firewall.authenticator' => true, - 'security.firewall.authenticator.dev' => true, - 'security.firewall.authenticator.main' => true, - 'security.firewall.config' => true, - 'security.firewall.context' => true, - 'security.firewall.context_locator' => true, - 'security.firewall.event_dispatcher_locator' => true, - 'security.firewall.lazy_context' => true, - 'security.firewall.map' => true, - 'security.firewall.map.config.dev' => true, - 'security.firewall.map.config.main' => true, - 'security.firewall.map.context.dev' => true, - 'security.firewall.map.context.main' => true, - 'security.helper' => true, - 'security.http_utils' => true, - 'security.impersonate_url_generator' => true, - 'security.ldap_locator' => true, - 'security.listener.check_authenticator_credentials' => true, - 'security.listener.csrf_protection' => true, - 'security.listener.login_throttling' => true, - 'security.listener.password_migrating' => true, - 'security.listener.session' => true, - 'security.listener.session.dev' => true, - 'security.listener.session.main' => true, - 'security.listener.user_checker' => true, - 'security.listener.user_checker.dev' => true, - 'security.listener.user_checker.main' => true, - 'security.listener.user_provider.abstract' => true, - 'security.logout.listener.clear_site_data' => true, - 'security.logout.listener.cookie_clearing' => true, - 'security.logout.listener.csrf_token_clearing' => true, - 'security.logout.listener.default' => true, - 'security.logout.listener.session' => true, - 'security.logout_listener' => true, - 'security.logout_url_generator' => true, - 'security.password_hasher' => true, - 'security.password_hasher_factory' => true, - 'security.role_hierarchy' => true, - 'security.route_loader.logout' => true, - 'security.security_token_value_resolver' => true, - 'security.token_storage' => true, - 'security.untracked_token_storage' => true, - 'security.user.provider.chain' => true, - 'security.user.provider.in_memory' => true, - 'security.user.provider.ldap' => true, - 'security.user.provider.missing' => true, - 'security.user_authenticator' => true, - 'security.user_checker' => true, - 'security.user_checker.chain.dev' => true, - 'security.user_checker.chain.main' => true, - 'security.user_checker.dev' => true, - 'security.user_checker.main' => true, - 'security.user_checker_locator' => true, - 'security.user_password_hasher' => true, - 'security.user_value_resolver' => true, - 'security.validator.user_password' => true, - 'session.abstract_handler' => true, - 'session.factory' => true, - 'session.handler' => true, - 'session.handler.native' => true, - 'session.handler.native_file' => true, - 'session.marshaller' => true, - 'session.marshalling_handler' => true, - 'session.storage.factory' => true, - 'session.storage.factory.mock_file' => true, - 'session.storage.factory.native' => true, - 'session.storage.factory.php_bridge' => true, - 'session_listener' => true, - 'slugger' => true, - 'time_based_uuid.factory' => true, - 'twig.runtime.security_csrf' => true, - 'ulid.factory' => true, - 'uri_signer' => true, - 'url_helper' => true, - 'uuid.factory' => true, - 'validate_request_listener' => true, -]; diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/App_KernelDevDebugContainer.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/App_KernelDevDebugContainer.php deleted file mode 100644 index 17c963f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/App_KernelDevDebugContainer.php +++ /dev/null @@ -1,1118 +0,0 @@ -targetDir = \dirname($containerDir); - $this->parameters = $this->getDefaultParameters(); - - $this->services = $this->privates = []; - $this->syntheticIds = [ - 'kernel' => true, - ]; - $this->methodMap = [ - 'debug.stopwatch' => 'getDebug_StopwatchService', - 'event_dispatcher' => 'getEventDispatcherService', - 'http_kernel' => 'getHttpKernelService', - 'request_stack' => 'getRequestStackService', - 'router' => 'getRouterService', - ]; - $this->fileMap = [ - 'App\\Controller\\Api\\PricesController' => 'getPricesControllerService', - 'App\\Controller\\Trigger\\PriceTriggerController' => 'getPriceTriggerControllerService', - 'App\\MessageHandler\\TriggerPriceImportHandler' => 'getTriggerPriceImportHandlerService', - 'Symfony\\Bundle\\FrameworkBundle\\Controller\\RedirectController' => 'getRedirectControllerService', - 'Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController' => 'getTemplateControllerService', - 'cache.app' => 'getCache_AppService', - 'cache.app_clearer' => 'getCache_AppClearerService', - 'cache.global_clearer' => 'getCache_GlobalClearerService', - 'cache.security_is_granted_attribute_expression_language' => 'getCache_SecurityIsGrantedAttributeExpressionLanguageService', - 'cache.system' => 'getCache_SystemService', - 'cache.system_clearer' => 'getCache_SystemClearerService', - 'cache_warmer' => 'getCacheWarmerService', - 'console.command_loader' => 'getConsole_CommandLoaderService', - 'container.env_var_processors_locator' => 'getContainer_EnvVarProcessorsLocatorService', - 'container.get_routing_condition_service' => 'getContainer_GetRoutingConditionServiceService', - 'debug.error_handler_configurator' => 'getDebug_ErrorHandlerConfiguratorService', - 'doctrine' => 'getDoctrineService', - 'doctrine.dbal.default_connection' => 'getDoctrine_Dbal_DefaultConnectionService', - 'doctrine.orm.default_entity_manager' => 'getDoctrine_Orm_DefaultEntityManagerService', - 'error_controller' => 'getErrorControllerService', - 'messenger.default_bus' => 'getMessenger_DefaultBusService', - 'monolog.logger.deprecation' => 'getMonolog_Logger_DeprecationService', - 'routing.loader' => 'getRouting_LoaderService', - 'services_resetter' => 'getServicesResetterService', - ]; - $this->aliases = [ - 'App\\Kernel' => 'kernel', - 'database_connection' => 'doctrine.dbal.default_connection', - 'doctrine.orm.entity_manager' => 'doctrine.orm.default_entity_manager', - ]; - - $this->privates['service_container'] = static function ($container) { - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventSubscriberInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ResponseListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/LocaleListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ValidateRequestListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/ErrorListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/CacheAttributeListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/container/src/ContainerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/RunnerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/Runner/Symfony/ResponseRunner.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/RuntimeInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/GenericRuntime.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/runtime/SymfonyRuntime.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/HttpKernelInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/TerminableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/HttpKernel.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Controller/ControllerResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ArgumentResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ArgumentResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceProviderInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceLocatorTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/dependency-injection/ServiceLocator.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-foundation/RequestStack.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ResetInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/stopwatch/Stopwatch.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RequestContext.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/RouterListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/EventListener/SessionListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AuthorizationCheckerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AuthorizationChecker.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorageInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/service-contracts/ServiceSubscriberInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/Token/Storage/TokenStorage.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/AuthenticationTrustResolverInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authentication/AuthenticationTrustResolver.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/EventListener/IsGrantedAttributeListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AccessDecisionManagerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/TraceableAccessDecisionManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/AccessDecisionManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/Strategy/AccessDecisionStrategyInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-core/Authorization/Strategy/AffirmativeStrategy.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/EventListener/FirewallListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/Debug/TraceableFirewallListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/FirewallMapInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-bundle/Security/FirewallMap.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Logout/LogoutUrlGenerator.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/FirewallListenerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/AbstractListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/security-http/Firewall/ContextListener.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/ResettableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Logger.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/Handler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php'; - include_once \dirname(__DIR__, 4).'/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventDispatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/event-dispatcher/EventDispatcher.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RequestContextAwareInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Matcher/UrlMatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Generator/UrlGeneratorInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/RouterInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Matcher/RequestMatcherInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/routing/Router.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Routing/Router.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/config/ConfigCacheFactoryInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php'; - include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php'; - }; - } - - public function compile(): void - { - throw new LogicException('You cannot compile a dumped container that was already compiled.'); - } - - public function isCompiled(): bool - { - return true; - } - - public function getRemovedIds(): array - { - return require $this->containerDir.\DIRECTORY_SEPARATOR.'removed-ids.php'; - } - - protected function load($file, $lazyLoad = true): mixed - { - if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) { - return $class::do($this, $lazyLoad); - } - - if ('.' === $file[-4]) { - $class = substr($class, 0, -4); - } else { - $file .= '.php'; - } - - $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file; - - return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service; - } - - protected function createProxy($class, \Closure $factory) - { - class_exists($class, false) || require __DIR__.'/'.$class.'.php'; - - return $factory(); - } - - /** - * Gets the public 'debug.stopwatch' shared service. - * - * @return \Symfony\Component\Stopwatch\Stopwatch - */ - protected static function getDebug_StopwatchService($container) - { - return $container->services['debug.stopwatch'] = new \Symfony\Component\Stopwatch\Stopwatch(true); - } - - /** - * Gets the public 'event_dispatcher' shared service. - * - * @return \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher - */ - protected static function getEventDispatcherService($container) - { - $a = new \Monolog\Logger('event'); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $container->services['event_dispatcher'] = $instance = new \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), $a, ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('kernel.response', [#[\Closure(name: 'security.context_listener.0', class: 'Symfony\\Component\\Security\\Http\\Firewall\\ContextListener')] fn () => ($container->privates['security.context_listener.0'] ?? self::getSecurity_ContextListener_0Service($container)), 'onKernelResponse'], 0); - $instance->addListener('kernel.response', [#[\Closure(name: 'security.context_listener.1', class: 'Symfony\\Component\\Security\\Http\\Firewall\\ContextListener')] fn () => ($container->privates['security.context_listener.1'] ?? self::getSecurity_ContextListener_1Service($container)), 'onKernelResponse'], 0); - $instance->addListener('console.command', [#[\Closure(name: 'doctrine_migrations.schema_filter_listener', class: 'Doctrine\\Bundle\\MigrationsBundle\\EventListener\\SchemaFilterListener')] fn () => ($container->privates['doctrine_migrations.schema_filter_listener'] ??= new \Doctrine\Bundle\MigrationsBundle\EventListener\SchemaFilterListener('doctrine_migration_versions')), 'onConsoleCommand'], 0); - $instance->addListener('kernel.response', [#[\Closure(name: 'response_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener')] fn () => ($container->privates['response_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\ResponseListener('UTF-8', false)), 'onKernelResponse'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'setDefaultLocale'], 100); - $instance->addListener('kernel.request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'onKernelRequest'], 16); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'locale_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener')] fn () => ($container->privates['locale_listener'] ?? self::getLocaleListenerService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'validate_request_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener')] fn () => ($container->privates['validate_request_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\ValidateRequestListener()), 'onKernelRequest'], 256); - $instance->addListener('kernel.response', [#[\Closure(name: 'disallow_search_engine_index_response_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener')] fn () => ($container->privates['disallow_search_engine_index_response_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener()), 'onResponse'], -255); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'onControllerArguments'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'logKernelException'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'onKernelException'], -128); - $instance->addListener('kernel.response', [#[\Closure(name: 'exception_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener')] fn () => ($container->privates['exception_listener'] ?? self::getExceptionListenerService($container)), 'removeCspHeader'], -128); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'controller.cache_attribute_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener')] fn () => ($container->privates['controller.cache_attribute_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\CacheAttributeListener()), 'onKernelControllerArguments'], 10); - $instance->addListener('kernel.response', [#[\Closure(name: 'controller.cache_attribute_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener')] fn () => ($container->privates['controller.cache_attribute_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\CacheAttributeListener()), 'onKernelResponse'], -10); - $instance->addListener('console.error', [#[\Closure(name: 'console.error_listener', class: 'Symfony\\Component\\Console\\EventListener\\ErrorListener')] fn () => ($container->privates['console.error_listener'] ?? $container->load('getConsole_ErrorListenerService')), 'onConsoleError'], -128); - $instance->addListener('console.terminate', [#[\Closure(name: 'console.error_listener', class: 'Symfony\\Component\\Console\\EventListener\\ErrorListener')] fn () => ($container->privates['console.error_listener'] ?? $container->load('getConsole_ErrorListenerService')), 'onConsoleTerminate'], -128); - $instance->addListener('console.error', [#[\Closure(name: 'console.suggest_missing_package_subscriber', class: 'Symfony\\Bundle\\FrameworkBundle\\EventListener\\SuggestMissingPackageSubscriber')] fn () => ($container->privates['console.suggest_missing_package_subscriber'] ??= new \Symfony\Bundle\FrameworkBundle\EventListener\SuggestMissingPackageSubscriber()), 'onConsoleError'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.debug_handlers_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener')] fn () => ($container->privates['debug.debug_handlers_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DebugHandlersListener(NULL, $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'))), 'configure'], 2048); - $instance->addListener('console.command', [#[\Closure(name: 'debug.debug_handlers_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener')] fn () => ($container->privates['debug.debug_handlers_listener'] ??= new \Symfony\Component\HttpKernel\EventListener\DebugHandlersListener(NULL, $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'))), 'configure'], 2048); - $instance->addListener('kernel.request', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelRequest'], 32); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('kernel.exception', [#[\Closure(name: 'router_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener')] fn () => ($container->privates['router_listener'] ?? self::getRouterListenerService($container)), 'onKernelException'], -64); - $instance->addListener('kernel.request', [#[\Closure(name: 'session_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener')] fn () => ($container->privates['session_listener'] ?? self::getSessionListenerService($container)), 'onKernelRequest'], 128); - $instance->addListener('kernel.response', [#[\Closure(name: 'session_listener', class: 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener')] fn () => ($container->privates['session_listener'] ?? self::getSessionListenerService($container)), 'onKernelResponse'], -1000); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.retry.send_failed_message_for_retry_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\SendFailedMessageForRetryListener')] fn () => ($container->privates['messenger.retry.send_failed_message_for_retry_listener'] ?? $container->load('getMessenger_Retry_SendFailedMessageForRetryListenerService')), 'onMessageFailed'], 100); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.failure.add_error_details_stamp_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\AddErrorDetailsStampListener')] fn () => ($container->privates['messenger.failure.add_error_details_stamp_listener'] ??= new \Symfony\Component\Messenger\EventListener\AddErrorDetailsStampListener()), 'onMessageFailed'], 200); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.dispatch_pcntl_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\DispatchPcntlSignalListener')] fn () => ($container->privates['messenger.listener.dispatch_pcntl_signal_listener'] ??= new \Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener()), 'onWorkerRunning'], 100); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerStartedEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_restart_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnRestartSignalListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_restart_signal_listener'] ?? $container->load('getMessenger_Listener_StopWorkerOnRestartSignalListenerService')), 'onWorkerStarted'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_restart_signal_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnRestartSignalListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_restart_signal_listener'] ?? $container->load('getMessenger_Listener_StopWorkerOnRestartSignalListenerService')), 'onWorkerRunning'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_stop_exception_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnCustomStopExceptionListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_stop_exception_listener'] ??= new \Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener()), 'onMessageFailed'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerRunningEvent', [#[\Closure(name: 'messenger.listener.stop_worker_on_stop_exception_listener', class: 'Symfony\\Component\\Messenger\\EventListener\\StopWorkerOnCustomStopExceptionListener')] fn () => ($container->privates['messenger.listener.stop_worker_on_stop_exception_listener'] ??= new \Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener()), 'onWorkerRunning'], 0); - $instance->addListener('kernel.controller_arguments', [#[\Closure(name: 'controller.is_granted_attribute_listener', class: 'Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener')] fn () => ($container->privates['controller.is_granted_attribute_listener'] ?? self::getController_IsGrantedAttributeListenerService($container)), 'onKernelControllerArguments'], 20); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('debug.security.authorization.vote', [#[\Closure(name: 'debug.security.voter.vote_listener', class: 'Symfony\\Bundle\\SecurityBundle\\EventListener\\VoteListener')] fn () => ($container->privates['debug.security.voter.vote_listener'] ?? $container->load('getDebug_Security_Voter_VoteListenerService')), 'onVoterVote'], 0); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'configureLogoutUrlGenerator'], 8); - $instance->addListener('kernel.request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'onKernelRequest'], 8); - $instance->addListener('kernel.finish_request', [#[\Closure(name: 'debug.security.firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener')] fn () => ($container->privates['debug.security.firewall'] ?? self::getDebug_Security_FirewallService($container)), 'onKernelFinishRequest'], 0); - $instance->addListener('console.error', [#[\Closure(name: 'maker.console_error_listener', class: 'Symfony\\Bundle\\MakerBundle\\Event\\ConsoleErrorSubscriber')] fn () => ($container->privates['maker.console_error_listener'] ??= new \Symfony\Bundle\MakerBundle\Event\ConsoleErrorSubscriber()), 'onConsoleError'], 0); - $instance->addListener('console.terminate', [#[\Closure(name: 'maker.console_error_listener', class: 'Symfony\\Bundle\\MakerBundle\\Event\\ConsoleErrorSubscriber')] fn () => ($container->privates['maker.console_error_listener'] ??= new \Symfony\Bundle\MakerBundle\Event\ConsoleErrorSubscriber()), 'onConsoleTerminate'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageHandledEvent', [#[\Closure(name: 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager', class: 'Symfony\\Bridge\\Doctrine\\Messenger\\DoctrineClearEntityManagerWorkerSubscriber')] fn () => ($container->privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] ?? $container->load('getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService')), 'onWorkerMessageHandled'], 0); - $instance->addListener('Symfony\\Component\\Messenger\\Event\\WorkerMessageFailedEvent', [#[\Closure(name: 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager', class: 'Symfony\\Bridge\\Doctrine\\Messenger\\DoctrineClearEntityManagerWorkerSubscriber')] fn () => ($container->privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] ?? $container->load('getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService')), 'onWorkerMessageFailed'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the public 'http_kernel' shared service. - * - * @return \Symfony\Component\HttpKernel\HttpKernel - */ - protected static function getHttpKernelService($container) - { - $a = new \Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver($container, ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container))); - $a->allowControllers(['Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController', 'Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController']); - $a->allowControllers(['App\\Kernel', 'App\\Controller\\Api\\PricesController', 'App\\Controller\\Trigger\\PriceTriggerController', 'Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController']); - $b = ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)); - - return $container->services['http_kernel'] = new \Symfony\Component\HttpKernel\HttpKernel(($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)), new \Symfony\Component\HttpKernel\Controller\TraceableControllerResolver($a, $b), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), new \Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver(new \Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory(), new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.debug.value_resolver.security.user_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Security_UserValueResolverService')); - yield 1 => ($container->privates['.debug.value_resolver.security.security_token_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Security_SecurityTokenValueResolverService')); - yield 2 => ($container->privates['.debug.value_resolver.doctrine.orm.entity_value_resolver'] ?? $container->load('get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService')); - yield 3 => ($container->privates['.debug.value_resolver.argument_resolver.backed_enum_resolver'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService')); - yield 4 => ($container->privates['.debug.value_resolver.argument_resolver.uid'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_UidService')); - yield 5 => ($container->privates['.debug.value_resolver.argument_resolver.datetime'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_DatetimeService')); - yield 6 => ($container->privates['.debug.value_resolver.argument_resolver.request_attribute'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService')); - yield 7 => ($container->privates['.debug.value_resolver.argument_resolver.request'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_RequestService')); - yield 8 => ($container->privates['.debug.value_resolver.argument_resolver.session'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_SessionService')); - yield 9 => ($container->privates['.debug.value_resolver.argument_resolver.service'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_ServiceService')); - yield 10 => ($container->privates['.debug.value_resolver.argument_resolver.default'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_DefaultService')); - yield 11 => ($container->privates['.debug.value_resolver.argument_resolver.variadic'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_VariadicService')); - yield 12 => ($container->privates['.debug.value_resolver.argument_resolver.not_tagged_controller'] ?? $container->load('get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService')); - }, 13), new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'Symfony\\Bridge\\Doctrine\\ArgumentResolver\\EntityValueResolver' => ['privates', '.debug.value_resolver.doctrine.orm.entity_value_resolver', 'get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\BackedEnumValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.backed_enum_resolver', 'get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DateTimeValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.datetime', 'get_Debug_ValueResolver_ArgumentResolver_DatetimeService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.default', 'get_Debug_ValueResolver_ArgumentResolver_DefaultService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.query_parameter_value_resolver', 'get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request_attribute', 'get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request_payload', 'get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.request', 'get_Debug_ValueResolver_ArgumentResolver_RequestService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.service', 'get_Debug_ValueResolver_ArgumentResolver_ServiceService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.session', 'get_Debug_ValueResolver_ArgumentResolver_SessionService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\UidValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.uid', 'get_Debug_ValueResolver_ArgumentResolver_UidService', true], - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => ['privates', '.debug.value_resolver.argument_resolver.variadic', 'get_Debug_ValueResolver_ArgumentResolver_VariadicService', true], - 'Symfony\\Component\\Security\\Http\\Controller\\SecurityTokenValueResolver' => ['privates', '.debug.value_resolver.security.security_token_value_resolver', 'get_Debug_ValueResolver_Security_SecurityTokenValueResolverService', true], - 'Symfony\\Component\\Security\\Http\\Controller\\UserValueResolver' => ['privates', '.debug.value_resolver.security.user_value_resolver', 'get_Debug_ValueResolver_Security_UserValueResolverService', true], - 'argument_resolver.not_tagged_controller' => ['privates', '.debug.value_resolver.argument_resolver.not_tagged_controller', 'get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService', true], - ], [ - 'Symfony\\Bridge\\Doctrine\\ArgumentResolver\\EntityValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\BackedEnumValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DateTimeValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\QueryParameterValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\UidValueResolver' => '?', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => '?', - 'Symfony\\Component\\Security\\Http\\Controller\\SecurityTokenValueResolver' => '?', - 'Symfony\\Component\\Security\\Http\\Controller\\UserValueResolver' => '?', - 'argument_resolver.not_tagged_controller' => '?', - ])), $b), true); - } - - /** - * Gets the public 'request_stack' shared service. - * - * @return \Symfony\Component\HttpFoundation\RequestStack - */ - protected static function getRequestStackService($container) - { - return $container->services['request_stack'] = new \Symfony\Component\HttpFoundation\RequestStack(); - } - - /** - * Gets the public 'router' shared service. - * - * @return \Symfony\Bundle\FrameworkBundle\Routing\Router - */ - protected static function getRouterService($container) - { - $a = new \Monolog\Logger('router'); - $a->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $container->services['router'] = $instance = new \Symfony\Bundle\FrameworkBundle\Routing\Router((new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'routing.loader' => ['services', 'routing.loader', 'getRouting_LoaderService', true], - ], [ - 'routing.loader' => 'Symfony\\Component\\Config\\Loader\\LoaderInterface', - ]))->withContext('router.default', $container), 'kernel::loadRoutes', ['cache_dir' => $container->targetDir.'', 'debug' => true, 'generator_class' => 'Symfony\\Component\\Routing\\Generator\\CompiledUrlGenerator', 'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\CompiledUrlGeneratorDumper', 'matcher_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableCompiledUrlMatcher', 'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper', 'strict_requirements' => true, 'resource_type' => 'service'], ($container->privates['router.request_context'] ?? self::getRouter_RequestContextService($container)), ($container->privates['parameter_bag'] ??= new \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag($container)), $a, 'en'); - - $instance->setConfigCacheFactory(new \Symfony\Component\Config\ResourceCheckerConfigCacheFactory(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['dependency_injection.config.container_parameters_resource_checker'] ??= new \Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker($container)); - yield 1 => ($container->privates['config.resource.self_checking_resource_checker'] ??= new \Symfony\Component\Config\Resource\SelfCheckingResourceChecker()); - }, 2))); - - return $instance; - } - - /** - * Gets the private '.service_locator.zJyh7qS' shared service. - * - * @return \Symfony\Component\DependencyInjection\ServiceLocator - */ - protected static function get_ServiceLocator_ZJyh7qSService($container) - { - return $container->privates['.service_locator.zJyh7qS'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'security.firewall.map.context.dev' => ['privates', 'security.firewall.map.context.dev', 'getSecurity_Firewall_Map_Context_DevService', true], - 'security.firewall.map.context.main' => ['privates', 'security.firewall.map.context.main', 'getSecurity_Firewall_Map_Context_MainService', true], - ], [ - 'security.firewall.map.context.dev' => '?', - 'security.firewall.map.context.main' => '?', - ]); - } - - /** - * Gets the private 'controller.is_granted_attribute_listener' shared service. - * - * @return \Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener - */ - protected static function getController_IsGrantedAttributeListenerService($container) - { - $a = ($container->privates['security.authorization_checker'] ?? self::getSecurity_AuthorizationCheckerService($container)); - - if (isset($container->privates['controller.is_granted_attribute_listener'])) { - return $container->privates['controller.is_granted_attribute_listener']; - } - - return $container->privates['controller.is_granted_attribute_listener'] = new \Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener($a, NULL); - } - - /** - * Gets the private 'debug.security.access.decision_manager' shared service. - * - * @return \Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager - */ - protected static function getDebug_Security_Access_DecisionManagerService($container) - { - return $container->privates['debug.security.access.decision_manager'] = new \Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager(new \Symfony\Component\Security\Core\Authorization\AccessDecisionManager(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.debug.security.voter.security.access.authenticated_voter'] ?? $container->load('get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService')); - yield 1 => ($container->privates['.debug.security.voter.security.access.role_hierarchy_voter'] ?? $container->load('get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService')); - }, 2), new \Symfony\Component\Security\Core\Authorization\Strategy\AffirmativeStrategy(false))); - } - - /** - * Gets the private 'debug.security.event_dispatcher.dev' shared service. - * - * @return \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher - */ - protected static function getDebug_Security_EventDispatcher_DevService($container) - { - $container->privates['debug.security.event_dispatcher.dev'] = $instance = new \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.session.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\SessionStrategyListener')] fn () => ($container->privates['security.listener.session.dev'] ?? $container->load('getSecurity_Listener_Session_DevService')), 'onSuccessfulLogin'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.user_checker.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.dev'] ?? $container->load('getSecurity_Listener_UserChecker_DevService')), 'preCheckCredentials'], 256); - $instance->addListener('security.authentication.success', [#[\Closure(name: 'security.listener.user_checker.dev', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.dev'] ?? $container->load('getSecurity_Listener_UserChecker_DevService')), 'postCheckCredentials'], 256); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the private 'debug.security.event_dispatcher.main' shared service. - * - * @return \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher - */ - protected static function getDebug_Security_EventDispatcher_MainService($container) - { - $container->privates['debug.security.event_dispatcher.main'] = $instance = new \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher(new \Symfony\Component\EventDispatcher\EventDispatcher(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.session.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\SessionStrategyListener')] fn () => ($container->privates['security.listener.session.main'] ?? $container->load('getSecurity_Listener_Session_MainService')), 'onSuccessfulLogin'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.user_checker.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.main'] ?? $container->load('getSecurity_Listener_UserChecker_MainService')), 'preCheckCredentials'], 256); - $instance->addListener('security.authentication.success', [#[\Closure(name: 'security.listener.user_checker.main', class: 'Symfony\\Component\\Security\\Http\\EventListener\\UserCheckerListener')] fn () => ($container->privates['security.listener.user_checker.main'] ?? $container->load('getSecurity_Listener_UserChecker_MainService')), 'postCheckCredentials'], 256); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.check_authenticator_credentials', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CheckCredentialsListener')] fn () => ($container->privates['security.listener.check_authenticator_credentials'] ?? $container->load('getSecurity_Listener_CheckAuthenticatorCredentialsService')), 'checkPassport'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LoginSuccessEvent', [#[\Closure(name: 'security.listener.password_migrating', class: 'Symfony\\Component\\Security\\Http\\EventListener\\PasswordMigratingListener')] fn () => ($container->privates['security.listener.password_migrating'] ?? $container->load('getSecurity_Listener_PasswordMigratingService')), 'onLoginSuccess'], 0); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\CheckPassportEvent', [#[\Closure(name: 'security.listener.csrf_protection', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfProtectionListener')] fn () => ($container->privates['security.listener.csrf_protection'] ?? $container->load('getSecurity_Listener_CsrfProtectionService')), 'checkPassport'], 512); - $instance->addListener('Symfony\\Component\\Security\\Http\\Event\\LogoutEvent', [#[\Closure(name: 'security.logout.listener.csrf_token_clearing', class: 'Symfony\\Component\\Security\\Http\\EventListener\\CsrfTokenClearingLogoutListener')] fn () => ($container->privates['security.logout.listener.csrf_token_clearing'] ?? $container->load('getSecurity_Logout_Listener_CsrfTokenClearingService')), 'onLogout'], 0); - - return $instance; - } - - /** - * Gets the private 'debug.security.firewall' shared service. - * - * @return \Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener - */ - protected static function getDebug_Security_FirewallService($container) - { - $a = ($container->privates['.service_locator.zJyh7qS'] ?? self::get_ServiceLocator_ZJyh7qSService($container)); - - if (isset($container->privates['debug.security.firewall'])) { - return $container->privates['debug.security.firewall']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['debug.security.firewall'])) { - return $container->privates['debug.security.firewall']; - } - - return $container->privates['debug.security.firewall'] = new \Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener(new \Symfony\Bundle\SecurityBundle\Security\FirewallMap($a, new RewindableGenerator(function () use ($container) { - yield 'security.firewall.map.context.dev' => NULL; - yield 'security.firewall.map.context.main' => NULL; - }, 2)), $b, new \Symfony\Component\Security\Http\Logout\LogoutUrlGenerator(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->services['router'] ?? self::getRouterService($container)), ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)))); - } - - /** - * Gets the private 'exception_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\ErrorListener - */ - protected static function getExceptionListenerService($container) - { - return $container->privates['exception_listener'] = new \Symfony\Component\HttpKernel\EventListener\ErrorListener('error_controller', ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container)), true, []); - } - - /** - * Gets the private 'locale_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\LocaleListener - */ - protected static function getLocaleListenerService($container) - { - return $container->privates['locale_listener'] = new \Symfony\Component\HttpKernel\EventListener\LocaleListener(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), 'en', ($container->services['router'] ?? self::getRouterService($container)), false, []); - } - - /** - * Gets the private 'monolog.handler.file_log' shared service. - * - * @return \Monolog\Handler\RotatingFileHandler - */ - protected static function getMonolog_Handler_FileLogService($container) - { - $container->privates['monolog.handler.file_log'] = $instance = new \Monolog\Handler\RotatingFileHandler((\dirname(__DIR__, 3).'/log/dev.log'), 0, 'error', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - $instance->setFilenameFormat('{filename}-{date}', 'Y-m-d'); - - return $instance; - } - - /** - * Gets the private 'monolog.handler.main' shared service. - * - * @return \Monolog\Handler\StreamHandler - */ - protected static function getMonolog_Handler_MainService($container) - { - $container->privates['monolog.handler.main'] = $instance = new \Monolog\Handler\StreamHandler((\dirname(__DIR__, 3).'/log/dev.log'), 'debug', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } - - /** - * Gets the private 'monolog.handler.stdout' shared service. - * - * @return \Monolog\Handler\StreamHandler - */ - protected static function getMonolog_Handler_StdoutService($container) - { - $container->privates['monolog.handler.stdout'] = $instance = new \Monolog\Handler\StreamHandler('php://stdout', 'debug', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } - - /** - * Gets the private 'monolog.logger' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_LoggerService($container) - { - $container->privates['monolog.logger'] = $instance = new \Monolog\Logger('app'); - - $instance->useMicrosecondTimestamps(true); - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'monolog.logger.request' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_Logger_RequestService($container) - { - $container->privates['monolog.logger.request'] = $instance = new \Monolog\Logger('request'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'monolog.logger.security' shared service. - * - * @return \Monolog\Logger - */ - protected static function getMonolog_Logger_SecurityService($container) - { - $container->privates['monolog.logger.security'] = $instance = new \Monolog\Logger('security'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } - - /** - * Gets the private 'parameter_bag' shared service. - * - * @return \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag - */ - protected static function getParameterBagService($container) - { - return $container->privates['parameter_bag'] = new \Symfony\Component\DependencyInjection\ParameterBag\ContainerBag($container); - } - - /** - * Gets the private 'router.request_context' shared service. - * - * @return \Symfony\Component\Routing\RequestContext - */ - protected static function getRouter_RequestContextService($container) - { - return $container->privates['router.request_context'] = \Symfony\Component\Routing\RequestContext::fromUri('', 'localhost', 'http', 80, 443); - } - - /** - * Gets the private 'router_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\RouterListener - */ - protected static function getRouterListenerService($container) - { - return $container->privates['router_listener'] = new \Symfony\Component\HttpKernel\EventListener\RouterListener(($container->services['router'] ?? self::getRouterService($container)), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->privates['router.request_context'] ?? self::getRouter_RequestContextService($container)), ($container->privates['monolog.logger.request'] ?? self::getMonolog_Logger_RequestService($container)), \dirname(__DIR__, 4), true); - } - - /** - * Gets the private 'security.authorization_checker' shared service. - * - * @return \Symfony\Component\Security\Core\Authorization\AuthorizationChecker - */ - protected static function getSecurity_AuthorizationCheckerService($container) - { - $a = ($container->privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['security.authorization_checker'])) { - return $container->privates['security.authorization_checker']; - } - - return $container->privates['security.authorization_checker'] = new \Symfony\Component\Security\Core\Authorization\AuthorizationChecker(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), $a, false, false); - } - - /** - * Gets the private 'security.context_listener.0' shared service. - * - * @return \Symfony\Component\Security\Http\Firewall\ContextListener - */ - protected static function getSecurity_ContextListener_0Service($container) - { - return $container->privates['security.context_listener.0'] = new \Symfony\Component\Security\Http\Firewall\ContextListener(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new RewindableGenerator(fn () => new \EmptyIterator(), 0), 'dev', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), ($container->privates['debug.security.event_dispatcher.dev'] ?? self::getDebug_Security_EventDispatcher_DevService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), [($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), 'enableUsageTracking']); - } - - /** - * Gets the private 'security.context_listener.1' shared service. - * - * @return \Symfony\Component\Security\Http\Firewall\ContextListener - */ - protected static function getSecurity_ContextListener_1Service($container) - { - return $container->privates['security.context_listener.1'] = new \Symfony\Component\Security\Http\Firewall\ContextListener(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new RewindableGenerator(fn () => new \EmptyIterator(), 0), 'main', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), ($container->privates['debug.security.event_dispatcher.main'] ?? self::getDebug_Security_EventDispatcher_MainService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), [($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), 'enableUsageTracking']); - } - - /** - * Gets the private 'security.token_storage' shared service. - * - * @return \Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage - */ - protected static function getSecurity_TokenStorageService($container) - { - return $container->privates['security.token_storage'] = new \Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage(($container->privates['security.untracked_token_storage'] ??= new \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage()), new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - ], [ - 'request_stack' => '?', - ])); - } - - /** - * Gets the private 'session_listener' shared service. - * - * @return \Symfony\Component\HttpKernel\EventListener\SessionListener - */ - protected static function getSessionListenerService($container) - { - return $container->privates['session_listener'] = new \Symfony\Component\HttpKernel\EventListener\SessionListener(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'logger' => ['privates', 'monolog.logger', 'getMonolog_LoggerService', false], - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - 'session_factory' => ['privates', 'session.factory', 'getSession_FactoryService', true], - ], [ - 'logger' => '?', - 'request_stack' => '?', - 'session_factory' => '?', - ]), true, $container->parameters['session.storage.options']); - } - - public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (isset($this->buildParameters[$name])) { - return $this->buildParameters[$name]; - } - - if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) { - throw new ParameterNotFoundException($name); - } - if (isset($this->loadedDynamicParameters[$name])) { - return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - - return $this->parameters[$name]; - } - - public function hasParameter(string $name): bool - { - if (isset($this->buildParameters[$name])) { - return true; - } - - return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters); - } - - public function setParameter(string $name, $value): void - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - public function getParameterBag(): ParameterBagInterface - { - if (!isset($this->parameterBag)) { - $parameters = $this->parameters; - foreach ($this->loadedDynamicParameters as $name => $loaded) { - $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - foreach ($this->buildParameters as $name => $value) { - $parameters[$name] = $value; - } - $this->parameterBag = new FrozenParameterBag($parameters); - } - - return $this->parameterBag; - } - - private $loadedDynamicParameters = [ - 'kernel.runtime_environment' => false, - 'kernel.runtime_mode' => false, - 'kernel.runtime_mode.web' => false, - 'kernel.runtime_mode.cli' => false, - 'kernel.runtime_mode.worker' => false, - 'kernel.build_dir' => false, - 'kernel.cache_dir' => false, - 'mitho' => false, - 'mitho.import' => false, - 'mitho.import.orm' => false, - 'mitho.import.orm.url' => false, - 'mitho.import.orm.urlBckp1' => false, - 'mitho.import.orm.urlBckp2' => false, - 'mitho.import.orm.user' => false, - 'mitho.import.orm.pwd' => false, - 'kernel.secret' => false, - 'debug.file_link_format' => false, - 'debug.container.dump' => false, - 'router.cache_dir' => false, - 'doctrine.orm.proxy_dir' => false, - ]; - private $dynamicParameters = []; - - private function getDynamicParameter(string $name) - { - $container = $this; - $value = match ($name) { - 'kernel.runtime_environment' => $container->getEnv('default:kernel.environment:APP_RUNTIME_ENV'), - 'kernel.runtime_mode' => $container->getEnv('query_string:default:container.runtime_mode:APP_RUNTIME_MODE'), - 'kernel.runtime_mode.web' => $container->getEnv('bool:default::key:web:default:kernel.runtime_mode:'), - 'kernel.runtime_mode.cli' => $container->getEnv('not:default:kernel.runtime_mode.web:'), - 'kernel.runtime_mode.worker' => $container->getEnv('bool:default::key:worker:default:kernel.runtime_mode:'), - 'kernel.build_dir' => $container->targetDir.'', - 'kernel.cache_dir' => $container->targetDir.'', - 'mitho' => [ - 'api' => [ - 'expiredMaxTime' => 3600, - 'maxPriceAge' => 300, - 'priceListLimit' => 2500, - 'cacheExpTime' => 300, - 'cacheIsActive' => true, - 'cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - ], - 'import' => [ - 'orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - ], - ], - 'mitho.import' => [ - 'orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - ], - 'mitho.import.orm' => [ - 'url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'chunksize' => 500, - 'maxPriceAge' => 240, - 'maxTimeStampAgeSpan' => 360, - 'cashPriceStep' => 13, - ], - 'mitho.import.orm.url' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL'), - 'mitho.import.orm.urlBckp1' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1'), - 'mitho.import.orm.urlBckp2' => $container->getEnv('MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2'), - 'mitho.import.orm.user' => $container->getEnv('MTO_ORM_IMPORT_USER'), - 'mitho.import.orm.pwd' => $container->getEnv('MTO_ORM_IMPORT_PWD'), - 'kernel.secret' => $container->getEnv('APP_SECRET'), - 'debug.file_link_format' => $container->getEnv('default::SYMFONY_IDE'), - 'debug.container.dump' => ($container->targetDir.''.'/App_KernelDevDebugContainer.xml'), - 'router.cache_dir' => $container->targetDir.'', - 'doctrine.orm.proxy_dir' => ($container->targetDir.''.'/doctrine/orm/Proxies'), - default => throw new ParameterNotFoundException($name), - }; - $this->loadedDynamicParameters[$name] = true; - - return $this->dynamicParameters[$name] = $value; - } - - protected function getDefaultParameters(): array - { - return [ - 'kernel.project_dir' => \dirname(__DIR__, 4), - 'kernel.environment' => 'dev', - 'kernel.debug' => true, - 'kernel.logs_dir' => (\dirname(__DIR__, 3).'/log'), - 'kernel.bundles' => [ - 'FrameworkBundle' => 'Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle', - 'SecurityBundle' => 'Symfony\\Bundle\\SecurityBundle\\SecurityBundle', - 'MakerBundle' => 'Symfony\\Bundle\\MakerBundle\\MakerBundle', - 'DoctrineBundle' => 'Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle', - 'DoctrineMigrationsBundle' => 'Doctrine\\Bundle\\MigrationsBundle\\DoctrineMigrationsBundle', - 'MonologBundle' => 'Symfony\\Bundle\\MonologBundle\\MonologBundle', - ], - 'kernel.bundles_metadata' => [ - 'FrameworkBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/framework-bundle'), - 'namespace' => 'Symfony\\Bundle\\FrameworkBundle', - ], - 'SecurityBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/security-bundle'), - 'namespace' => 'Symfony\\Bundle\\SecurityBundle', - ], - 'MakerBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/maker-bundle'), - 'namespace' => 'Symfony\\Bundle\\MakerBundle', - ], - 'DoctrineBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/doctrine/doctrine-bundle'), - 'namespace' => 'Doctrine\\Bundle\\DoctrineBundle', - ], - 'DoctrineMigrationsBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/doctrine/doctrine-migrations-bundle'), - 'namespace' => 'Doctrine\\Bundle\\MigrationsBundle', - ], - 'MonologBundle' => [ - 'path' => (\dirname(__DIR__, 4).'/vendor/symfony/monolog-bundle'), - 'namespace' => 'Symfony\\Bundle\\MonologBundle', - ], - ], - 'kernel.charset' => 'UTF-8', - 'kernel.container_class' => 'App_KernelDevDebugContainer', - 'mitho.api' => [ - 'expiredMaxTime' => 3600, - 'maxPriceAge' => 300, - 'priceListLimit' => 2500, - 'cacheExpTime' => 300, - 'cacheIsActive' => true, - 'cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - ], - 'mitho.api.expiredMaxTime' => 3600, - 'mitho.api.maxPriceAge' => 300, - 'mitho.api.priceListLimit' => 2500, - 'mitho.api.cacheExpTime' => 300, - 'mitho.api.cacheIsActive' => true, - 'mitho.api.cacheNamespaces' => [ - 'rawData' => 'price.data.raw', - 'rawDataDiffSteps' => 'price.data.diffSteps', - 'rawDataWithArticle' => 'price.data.withArticle', - ], - 'mitho.api.cacheNamespaces.rawData' => 'price.data.raw', - 'mitho.api.cacheNamespaces.rawDataDiffSteps' => 'price.data.diffSteps', - 'mitho.api.cacheNamespaces.rawDataWithArticle' => 'price.data.withArticle', - 'mitho.import.orm.shopIds' => [ - 0 => 1, - 1 => 3, - 2 => 4, - 3 => 8, - ], - 'mitho.import.orm.shopIds.0' => 1, - 'mitho.import.orm.shopIds.1' => 3, - 'mitho.import.orm.shopIds.2' => 4, - 'mitho.import.orm.shopIds.3' => 8, - 'mitho.import.orm.chunksize' => 500, - 'mitho.import.orm.maxPriceAge' => 240, - 'mitho.import.orm.maxTimeStampAgeSpan' => 360, - 'mitho.import.orm.cashPriceStep' => 13, - 'event_dispatcher.event_aliases' => [ - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => 'console.command', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => 'console.error', - 'Symfony\\Component\\Console\\Event\\ConsoleSignalEvent' => 'console.signal', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => 'console.terminate', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => 'kernel.controller_arguments', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => 'kernel.controller', - 'Symfony\\Component\\HttpKernel\\Event\\ResponseEvent' => 'kernel.response', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => 'kernel.finish_request', - 'Symfony\\Component\\HttpKernel\\Event\\RequestEvent' => 'kernel.request', - 'Symfony\\Component\\HttpKernel\\Event\\ViewEvent' => 'kernel.view', - 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => 'kernel.exception', - 'Symfony\\Component\\HttpKernel\\Event\\TerminateEvent' => 'kernel.terminate', - 'Symfony\\Component\\Security\\Core\\Event\\AuthenticationSuccessEvent' => 'security.authentication.success', - 'Symfony\\Component\\Security\\Http\\Event\\InteractiveLoginEvent' => 'security.interactive_login', - 'Symfony\\Component\\Security\\Http\\Event\\SwitchUserEvent' => 'security.switch_user', - ], - 'fragment.renderer.hinclude.global_template' => NULL, - 'fragment.path' => '/_fragment', - 'kernel.http_method_override' => false, - 'kernel.trust_x_sendfile_type_header' => false, - 'kernel.trusted_hosts' => [ - - ], - 'kernel.default_locale' => 'en', - 'kernel.enabled_locales' => [ - - ], - 'kernel.error_controller' => 'error_controller', - 'debug.error_handler.throw_at' => -1, - 'router.request_context.host' => 'localhost', - 'router.request_context.scheme' => 'http', - 'router.request_context.base_url' => '', - 'router.resource' => 'kernel::loadRoutes', - 'request_listener.http_port' => 80, - 'request_listener.https_port' => 443, - 'session.metadata.storage_key' => '_sf2_meta', - 'session.storage.options' => [ - 'cache_limiter' => '0', - 'cookie_secure' => 'auto', - 'cookie_httponly' => true, - 'cookie_samesite' => 'lax', - 'gc_probability' => 1, - ], - 'session.save_path' => NULL, - 'session.metadata.update_threshold' => 0, - 'data_collector.templates' => [ - - ], - 'security.role_hierarchy.roles' => [ - 'ROLE_ADMIN' => [ - 0 => 'ROLE_PRICES', - 1 => 'ROLE_USER', - ], - ], - 'security.access.denied_url' => NULL, - 'security.authentication.manager.erase_credentials' => true, - 'security.authentication.session_strategy.strategy' => 'migrate', - 'security.authentication.hide_user_not_found' => true, - 'security.firewalls' => [ - 0 => 'dev', - 1 => 'main', - ], - 'security.logout_uris' => [ - - ], - 'doctrine.dbal.configuration.class' => 'Doctrine\\DBAL\\Configuration', - 'doctrine.data_collector.class' => 'Doctrine\\Bundle\\DoctrineBundle\\DataCollector\\DoctrineDataCollector', - 'doctrine.dbal.connection.event_manager.class' => 'Symfony\\Bridge\\Doctrine\\ContainerAwareEventManager', - 'doctrine.dbal.connection_factory.class' => 'Doctrine\\Bundle\\DoctrineBundle\\ConnectionFactory', - 'doctrine.dbal.events.mysql_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\MysqlSessionInit', - 'doctrine.dbal.events.oracle_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\OracleSessionInit', - 'doctrine.class' => 'Doctrine\\Bundle\\DoctrineBundle\\Registry', - 'doctrine.entity_managers' => [ - 'default' => 'doctrine.orm.default_entity_manager', - ], - 'doctrine.default_entity_manager' => 'default', - 'doctrine.dbal.connection_factory.types' => [ - 'uuid' => [ - 'class' => 'Symfony\\Bridge\\Doctrine\\Types\\UuidType', - ], - 'ulid' => [ - 'class' => 'Symfony\\Bridge\\Doctrine\\Types\\UlidType', - ], - ], - 'doctrine.connections' => [ - 'default' => 'doctrine.dbal.default_connection', - ], - 'doctrine.default_connection' => 'default', - 'doctrine.orm.configuration.class' => 'Doctrine\\ORM\\Configuration', - 'doctrine.orm.entity_manager.class' => 'Doctrine\\ORM\\EntityManager', - 'doctrine.orm.manager_configurator.class' => 'Doctrine\\Bundle\\DoctrineBundle\\ManagerConfigurator', - 'doctrine.orm.cache.array.class' => 'Doctrine\\Common\\Cache\\ArrayCache', - 'doctrine.orm.cache.apc.class' => 'Doctrine\\Common\\Cache\\ApcCache', - 'doctrine.orm.cache.memcache.class' => 'Doctrine\\Common\\Cache\\MemcacheCache', - 'doctrine.orm.cache.memcache_host' => 'localhost', - 'doctrine.orm.cache.memcache_port' => 11211, - 'doctrine.orm.cache.memcache_instance.class' => 'Memcache', - 'doctrine.orm.cache.memcached.class' => 'Doctrine\\Common\\Cache\\MemcachedCache', - 'doctrine.orm.cache.memcached_host' => 'localhost', - 'doctrine.orm.cache.memcached_port' => 11211, - 'doctrine.orm.cache.memcached_instance.class' => 'Memcached', - 'doctrine.orm.cache.redis.class' => 'Doctrine\\Common\\Cache\\RedisCache', - 'doctrine.orm.cache.redis_host' => 'localhost', - 'doctrine.orm.cache.redis_port' => 6379, - 'doctrine.orm.cache.redis_instance.class' => 'Redis', - 'doctrine.orm.cache.xcache.class' => 'Doctrine\\Common\\Cache\\XcacheCache', - 'doctrine.orm.cache.wincache.class' => 'Doctrine\\Common\\Cache\\WinCacheCache', - 'doctrine.orm.cache.zenddata.class' => 'Doctrine\\Common\\Cache\\ZendDataCache', - 'doctrine.orm.metadata.driver_chain.class' => 'Doctrine\\Persistence\\Mapping\\Driver\\MappingDriverChain', - 'doctrine.orm.metadata.annotation.class' => 'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver', - 'doctrine.orm.metadata.xml.class' => 'Doctrine\\ORM\\Mapping\\Driver\\SimplifiedXmlDriver', - 'doctrine.orm.metadata.yml.class' => 'Doctrine\\ORM\\Mapping\\Driver\\SimplifiedYamlDriver', - 'doctrine.orm.metadata.php.class' => 'Doctrine\\ORM\\Mapping\\Driver\\PHPDriver', - 'doctrine.orm.metadata.staticphp.class' => 'Doctrine\\ORM\\Mapping\\Driver\\StaticPHPDriver', - 'doctrine.orm.metadata.attribute.class' => 'Doctrine\\ORM\\Mapping\\Driver\\AttributeDriver', - 'doctrine.orm.proxy_cache_warmer.class' => 'Symfony\\Bridge\\Doctrine\\CacheWarmer\\ProxyCacheWarmer', - 'form.type_guesser.doctrine.class' => 'Symfony\\Bridge\\Doctrine\\Form\\DoctrineOrmTypeGuesser', - 'doctrine.orm.validator.unique.class' => 'Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntityValidator', - 'doctrine.orm.validator_initializer.class' => 'Symfony\\Bridge\\Doctrine\\Validator\\DoctrineInitializer', - 'doctrine.orm.security.user.provider.class' => 'Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider', - 'doctrine.orm.listeners.resolve_target_entity.class' => 'Doctrine\\ORM\\Tools\\ResolveTargetEntityListener', - 'doctrine.orm.listeners.attach_entity_listeners.class' => 'Doctrine\\ORM\\Tools\\AttachEntityListenersListener', - 'doctrine.orm.naming_strategy.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultNamingStrategy', - 'doctrine.orm.naming_strategy.underscore.class' => 'Doctrine\\ORM\\Mapping\\UnderscoreNamingStrategy', - 'doctrine.orm.quote_strategy.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultQuoteStrategy', - 'doctrine.orm.quote_strategy.ansi.class' => 'Doctrine\\ORM\\Mapping\\AnsiQuoteStrategy', - 'doctrine.orm.typed_field_mapper.default.class' => 'Doctrine\\ORM\\Mapping\\DefaultTypedFieldMapper', - 'doctrine.orm.entity_listener_resolver.class' => 'Doctrine\\Bundle\\DoctrineBundle\\Mapping\\ContainerEntityListenerResolver', - 'doctrine.orm.second_level_cache.default_cache_factory.class' => 'Doctrine\\ORM\\Cache\\DefaultCacheFactory', - 'doctrine.orm.second_level_cache.default_region.class' => 'Doctrine\\ORM\\Cache\\Region\\DefaultRegion', - 'doctrine.orm.second_level_cache.filelock_region.class' => 'Doctrine\\ORM\\Cache\\Region\\FileLockRegion', - 'doctrine.orm.second_level_cache.logger_chain.class' => 'Doctrine\\ORM\\Cache\\Logging\\CacheLoggerChain', - 'doctrine.orm.second_level_cache.logger_statistics.class' => 'Doctrine\\ORM\\Cache\\Logging\\StatisticsCacheLogger', - 'doctrine.orm.second_level_cache.cache_configuration.class' => 'Doctrine\\ORM\\Cache\\CacheConfiguration', - 'doctrine.orm.second_level_cache.regions_configuration.class' => 'Doctrine\\ORM\\Cache\\RegionsConfiguration', - 'doctrine.orm.auto_generate_proxy_classes' => true, - 'doctrine.orm.enable_lazy_ghost_objects' => true, - 'doctrine.orm.proxy_namespace' => 'Proxies', - 'doctrine.migrations.preferred_em' => NULL, - 'doctrine.migrations.preferred_connection' => NULL, - 'monolog.use_microseconds' => true, - 'monolog.swift_mailer.handlers' => [ - - ], - 'monolog.handlers_to_channels' => [ - 'monolog.handler.stdout' => [ - 'type' => 'exclusive', - 'elements' => [ - 0 => 'event', - ], - ], - 'monolog.handler.deprecation' => [ - 'type' => 'inclusive', - 'elements' => [ - 0 => 'deprecation', - ], - ], - 'monolog.handler.main' => [ - 'type' => 'exclusive', - 'elements' => [ - 0 => 'event', - ], - ], - 'monolog.handler.file_log' => NULL, - ], - 'console.command.ids' => [ - - ], - ]; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/EntityManagerGhostEbeb667.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/EntityManagerGhostEbeb667.php deleted file mode 100644 index 32b5559..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/EntityManagerGhostEbeb667.php +++ /dev/null @@ -1,45 +0,0 @@ - [parent::class, 'cache', null, 16], - "\0".parent::class."\0".'closed' => [parent::class, 'closed', null, 16], - "\0".parent::class."\0".'config' => [parent::class, 'config', null, 16], - "\0".parent::class."\0".'conn' => [parent::class, 'conn', null, 16], - "\0".parent::class."\0".'eventManager' => [parent::class, 'eventManager', null, 16], - "\0".parent::class."\0".'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16], - "\0".parent::class."\0".'filterCollection' => [parent::class, 'filterCollection', null, 16], - "\0".parent::class."\0".'metadataFactory' => [parent::class, 'metadataFactory', null, 16], - "\0".parent::class."\0".'proxyFactory' => [parent::class, 'proxyFactory', null, 16], - "\0".parent::class."\0".'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16], - "\0".parent::class."\0".'unitOfWork' => [parent::class, 'unitOfWork', null, 16], - 'cache' => [parent::class, 'cache', null, 16], - 'closed' => [parent::class, 'closed', null, 16], - 'config' => [parent::class, 'config', null, 16], - 'conn' => [parent::class, 'conn', null, 16], - 'eventManager' => [parent::class, 'eventManager', null, 16], - 'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16], - 'filterCollection' => [parent::class, 'filterCollection', null, 16], - 'metadataFactory' => [parent::class, 'metadataFactory', null, 16], - 'proxyFactory' => [parent::class, 'proxyFactory', null, 16], - 'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16], - 'unitOfWork' => [parent::class, 'unitOfWork', null, 16], - ]; -} - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -if (!\class_exists('EntityManagerGhostEbeb667', false)) { - \class_alias(__NAMESPACE__.'\\EntityManagerGhostEbeb667', 'EntityManagerGhostEbeb667', false); -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php deleted file mode 100644 index bcca13d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php +++ /dev/null @@ -1,28 +0,0 @@ - [parent::class, 'serializer', null, 530], - "\0".parent::class."\0".'translator' => [parent::class, 'translator', null, 530], - "\0".parent::class."\0".'validator' => [parent::class, 'validator', null, 530], - 'serializer' => [parent::class, 'serializer', null, 530], - 'translator' => [parent::class, 'translator', null, 530], - 'validator' => [parent::class, 'validator', null, 530], - ]; -} - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -if (!\class_exists('RequestPayloadValueResolverGhost3590451', false)) { - \class_alias(__NAMESPACE__.'\\RequestPayloadValueResolverGhost3590451', 'RequestPayloadValueResolverGhost3590451', false); -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCacheWarmerService.php deleted file mode 100644 index f4e9d0e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCacheWarmerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['cache_warmer'] = new \Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['config_builder.warmer'] ?? $container->load('getConfigBuilder_WarmerService')); - yield 1 => ($container->privates['router.cache_warmer'] ?? $container->load('getRouter_CacheWarmerService')); - yield 2 => ($container->privates['doctrine.orm.proxy_cache_warmer'] ?? $container->load('getDoctrine_Orm_ProxyCacheWarmerService')); - }, 3), true, ($container->targetDir.''.'/App_KernelDevDebugContainerDeprecations.log')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppClearerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppClearerService.php deleted file mode 100644 index 09f062a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppClearerService.php +++ /dev/null @@ -1,26 +0,0 @@ -services['cache.app_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppService.php deleted file mode 100644 index 0c07636..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_AppService.php +++ /dev/null @@ -1,44 +0,0 @@ -services['cache.app'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('xWD+f+4fHz', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_App_TaggableService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_App_TaggableService.php deleted file mode 100644 index 460f8ae..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_App_TaggableService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['cache.app.taggable'] = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(($container->services['cache.app'] ?? $container->load('getCache_AppService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_GlobalClearerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_GlobalClearerService.php deleted file mode 100644 index 9ecaf17..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_GlobalClearerService.php +++ /dev/null @@ -1,33 +0,0 @@ -services['cache.global_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService')), 'cache.doctrine.orm.default.result' => ($container->privates['cache.doctrine.orm.default.result'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter()), 'cache.doctrine.orm.default.query' => ($container->privates['cache.doctrine.orm.default.query'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php deleted file mode 100644 index 353bfb6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['cache.messenger.restart_workers_signal'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('cKT2cMK4Oi', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_RateLimiterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_RateLimiterService.php deleted file mode 100644 index 8237d9f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_RateLimiterService.php +++ /dev/null @@ -1,42 +0,0 @@ -privates['cache.rate_limiter'] = $instance = new \Symfony\Component\Cache\Adapter\RedisAdapter(\Symfony\Component\Cache\Adapter\AbstractAdapter::createConnection($container->getEnv('REDIS_CACHE_URL'), ['lazy' => true]), 'Lhws3QS5KG', 0, ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true))); - - $instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php deleted file mode 100644 index 3baed00..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['cache.security_is_granted_attribute_expression_language'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('NPkLy80NR+', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemClearerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemClearerService.php deleted file mode 100644 index e8aeb92..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemClearerService.php +++ /dev/null @@ -1,26 +0,0 @@ -services['cache.system_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService'))]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemService.php deleted file mode 100644 index 8a0697e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getCache_SystemService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['cache.system'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('gzFyOgrUMJ', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConfigBuilder_WarmerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConfigBuilder_WarmerService.php deleted file mode 100644 index 1d92890..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConfigBuilder_WarmerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['config_builder.warmer'] = new \Symfony\Bundle\FrameworkBundle\CacheWarmer\ConfigBuilderCacheWarmer(($container->services['kernel'] ?? $container->get('kernel', 1)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_CommandLoaderService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_CommandLoaderService.php deleted file mode 100644 index a7467a1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_CommandLoaderService.php +++ /dev/null @@ -1,210 +0,0 @@ -services['console.command_loader'] = new \Symfony\Component\Console\CommandLoader\ContainerCommandLoader(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'App\\Command\\RedisImportCommand' => ['privates', '.App\\Command\\RedisImportCommand.lazy', 'getRedisImportCommand_LazyService', true], - 'App\\Command\\RedisReadCommand' => ['privates', '.App\\Command\\RedisReadCommand.lazy', 'getRedisReadCommand_LazyService', true], - 'App\\Command\\TriggerTestCommand' => ['privates', '.App\\Command\\TriggerTestCommand.lazy', 'getTriggerTestCommand_LazyService', true], - 'console.command.about' => ['privates', '.console.command.about.lazy', 'get_Console_Command_About_LazyService', true], - 'console.command.assets_install' => ['privates', '.console.command.assets_install.lazy', 'get_Console_Command_AssetsInstall_LazyService', true], - 'console.command.cache_clear' => ['privates', '.console.command.cache_clear.lazy', 'get_Console_Command_CacheClear_LazyService', true], - 'console.command.cache_pool_clear' => ['privates', '.console.command.cache_pool_clear.lazy', 'get_Console_Command_CachePoolClear_LazyService', true], - 'console.command.cache_pool_prune' => ['privates', '.console.command.cache_pool_prune.lazy', 'get_Console_Command_CachePoolPrune_LazyService', true], - 'console.command.cache_pool_invalidate_tags' => ['privates', '.console.command.cache_pool_invalidate_tags.lazy', 'get_Console_Command_CachePoolInvalidateTags_LazyService', true], - 'console.command.cache_pool_delete' => ['privates', '.console.command.cache_pool_delete.lazy', 'get_Console_Command_CachePoolDelete_LazyService', true], - 'console.command.cache_pool_list' => ['privates', '.console.command.cache_pool_list.lazy', 'get_Console_Command_CachePoolList_LazyService', true], - 'console.command.cache_warmup' => ['privates', '.console.command.cache_warmup.lazy', 'get_Console_Command_CacheWarmup_LazyService', true], - 'console.command.config_debug' => ['privates', '.console.command.config_debug.lazy', 'get_Console_Command_ConfigDebug_LazyService', true], - 'console.command.config_dump_reference' => ['privates', '.console.command.config_dump_reference.lazy', 'get_Console_Command_ConfigDumpReference_LazyService', true], - 'console.command.container_debug' => ['privates', '.console.command.container_debug.lazy', 'get_Console_Command_ContainerDebug_LazyService', true], - 'console.command.container_lint' => ['privates', '.console.command.container_lint.lazy', 'get_Console_Command_ContainerLint_LazyService', true], - 'console.command.debug_autowiring' => ['privates', '.console.command.debug_autowiring.lazy', 'get_Console_Command_DebugAutowiring_LazyService', true], - 'console.command.dotenv_debug' => ['privates', '.console.command.dotenv_debug.lazy', 'get_Console_Command_DotenvDebug_LazyService', true], - 'console.command.event_dispatcher_debug' => ['privates', '.console.command.event_dispatcher_debug.lazy', 'get_Console_Command_EventDispatcherDebug_LazyService', true], - 'console.command.messenger_consume_messages' => ['privates', '.console.command.messenger_consume_messages.lazy', 'get_Console_Command_MessengerConsumeMessages_LazyService', true], - 'console.command.messenger_setup_transports' => ['privates', '.console.command.messenger_setup_transports.lazy', 'get_Console_Command_MessengerSetupTransports_LazyService', true], - 'console.command.messenger_debug' => ['privates', '.console.command.messenger_debug.lazy', 'get_Console_Command_MessengerDebug_LazyService', true], - 'console.command.messenger_stop_workers' => ['privates', '.console.command.messenger_stop_workers.lazy', 'get_Console_Command_MessengerStopWorkers_LazyService', true], - 'console.command.messenger_stats' => ['privates', '.console.command.messenger_stats.lazy', 'get_Console_Command_MessengerStats_LazyService', true], - 'console.command.router_debug' => ['privates', '.console.command.router_debug.lazy', 'get_Console_Command_RouterDebug_LazyService', true], - 'console.command.router_match' => ['privates', '.console.command.router_match.lazy', 'get_Console_Command_RouterMatch_LazyService', true], - 'console.command.yaml_lint' => ['privates', '.console.command.yaml_lint.lazy', 'get_Console_Command_YamlLint_LazyService', true], - 'console.command.secrets_set' => ['privates', '.console.command.secrets_set.lazy', 'get_Console_Command_SecretsSet_LazyService', true], - 'console.command.secrets_remove' => ['privates', '.console.command.secrets_remove.lazy', 'get_Console_Command_SecretsRemove_LazyService', true], - 'console.command.secrets_generate_key' => ['privates', '.console.command.secrets_generate_key.lazy', 'get_Console_Command_SecretsGenerateKey_LazyService', true], - 'console.command.secrets_list' => ['privates', '.console.command.secrets_list.lazy', 'get_Console_Command_SecretsList_LazyService', true], - 'console.command.secrets_decrypt_to_local' => ['privates', '.console.command.secrets_decrypt_to_local.lazy', 'get_Console_Command_SecretsDecryptToLocal_LazyService', true], - 'console.command.secrets_encrypt_from_local' => ['privates', '.console.command.secrets_encrypt_from_local.lazy', 'get_Console_Command_SecretsEncryptFromLocal_LazyService', true], - 'security.command.debug_firewall' => ['privates', '.security.command.debug_firewall.lazy', 'get_Security_Command_DebugFirewall_LazyService', true], - 'security.command.user_password_hash' => ['privates', '.security.command.user_password_hash.lazy', 'get_Security_Command_UserPasswordHash_LazyService', true], - 'doctrine.database_create_command' => ['privates', 'doctrine.database_create_command', 'getDoctrine_DatabaseCreateCommandService', true], - 'doctrine.database_drop_command' => ['privates', 'doctrine.database_drop_command', 'getDoctrine_DatabaseDropCommandService', true], - 'doctrine.query_sql_command' => ['privates', 'doctrine.query_sql_command', 'getDoctrine_QuerySqlCommandService', true], - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => ['privates', 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', 'getRunSqlCommandService', true], - 'doctrine.cache_clear_metadata_command' => ['privates', 'doctrine.cache_clear_metadata_command', 'getDoctrine_CacheClearMetadataCommandService', true], - 'doctrine.cache_clear_query_cache_command' => ['privates', 'doctrine.cache_clear_query_cache_command', 'getDoctrine_CacheClearQueryCacheCommandService', true], - 'doctrine.cache_clear_result_command' => ['privates', 'doctrine.cache_clear_result_command', 'getDoctrine_CacheClearResultCommandService', true], - 'doctrine.cache_collection_region_command' => ['privates', 'doctrine.cache_collection_region_command', 'getDoctrine_CacheCollectionRegionCommandService', true], - 'doctrine.schema_create_command' => ['privates', 'doctrine.schema_create_command', 'getDoctrine_SchemaCreateCommandService', true], - 'doctrine.schema_drop_command' => ['privates', 'doctrine.schema_drop_command', 'getDoctrine_SchemaDropCommandService', true], - 'doctrine.clear_entity_region_command' => ['privates', 'doctrine.clear_entity_region_command', 'getDoctrine_ClearEntityRegionCommandService', true], - 'doctrine.mapping_info_command' => ['privates', 'doctrine.mapping_info_command', 'getDoctrine_MappingInfoCommandService', true], - 'doctrine.clear_query_region_command' => ['privates', 'doctrine.clear_query_region_command', 'getDoctrine_ClearQueryRegionCommandService', true], - 'doctrine.query_dql_command' => ['privates', 'doctrine.query_dql_command', 'getDoctrine_QueryDqlCommandService', true], - 'doctrine.schema_update_command' => ['privates', 'doctrine.schema_update_command', 'getDoctrine_SchemaUpdateCommandService', true], - 'doctrine.schema_validate_command' => ['privates', 'doctrine.schema_validate_command', 'getDoctrine_SchemaValidateCommandService', true], - 'doctrine_migrations.diff_command' => ['privates', '.doctrine_migrations.diff_command.lazy', 'get_DoctrineMigrations_DiffCommand_LazyService', true], - 'doctrine_migrations.sync_metadata_command' => ['privates', '.doctrine_migrations.sync_metadata_command.lazy', 'get_DoctrineMigrations_SyncMetadataCommand_LazyService', true], - 'doctrine_migrations.versions_command' => ['privates', '.doctrine_migrations.versions_command.lazy', 'get_DoctrineMigrations_VersionsCommand_LazyService', true], - 'doctrine_migrations.current_command' => ['privates', '.doctrine_migrations.current_command.lazy', 'get_DoctrineMigrations_CurrentCommand_LazyService', true], - 'doctrine_migrations.dump_schema_command' => ['privates', '.doctrine_migrations.dump_schema_command.lazy', 'get_DoctrineMigrations_DumpSchemaCommand_LazyService', true], - 'doctrine_migrations.execute_command' => ['privates', '.doctrine_migrations.execute_command.lazy', 'get_DoctrineMigrations_ExecuteCommand_LazyService', true], - 'doctrine_migrations.generate_command' => ['privates', '.doctrine_migrations.generate_command.lazy', 'get_DoctrineMigrations_GenerateCommand_LazyService', true], - 'doctrine_migrations.latest_command' => ['privates', '.doctrine_migrations.latest_command.lazy', 'get_DoctrineMigrations_LatestCommand_LazyService', true], - 'doctrine_migrations.migrate_command' => ['privates', '.doctrine_migrations.migrate_command.lazy', 'get_DoctrineMigrations_MigrateCommand_LazyService', true], - 'doctrine_migrations.rollup_command' => ['privates', '.doctrine_migrations.rollup_command.lazy', 'get_DoctrineMigrations_RollupCommand_LazyService', true], - 'doctrine_migrations.status_command' => ['privates', '.doctrine_migrations.status_command.lazy', 'get_DoctrineMigrations_StatusCommand_LazyService', true], - 'doctrine_migrations.up_to_date_command' => ['privates', '.doctrine_migrations.up_to_date_command.lazy', 'get_DoctrineMigrations_UpToDateCommand_LazyService', true], - 'doctrine_migrations.version_command' => ['privates', '.doctrine_migrations.version_command.lazy', 'get_DoctrineMigrations_VersionCommand_LazyService', true], - 'maker.auto_command.make_auth' => ['privates', '.maker.auto_command.make_auth.lazy', 'get_Maker_AutoCommand_MakeAuth_LazyService', true], - 'maker.auto_command.make_command' => ['privates', '.maker.auto_command.make_command.lazy', 'get_Maker_AutoCommand_MakeCommand_LazyService', true], - 'maker.auto_command.make_twig_component' => ['privates', '.maker.auto_command.make_twig_component.lazy', 'get_Maker_AutoCommand_MakeTwigComponent_LazyService', true], - 'maker.auto_command.make_controller' => ['privates', '.maker.auto_command.make_controller.lazy', 'get_Maker_AutoCommand_MakeController_LazyService', true], - 'maker.auto_command.make_crud' => ['privates', '.maker.auto_command.make_crud.lazy', 'get_Maker_AutoCommand_MakeCrud_LazyService', true], - 'maker.auto_command.make_docker_database' => ['privates', '.maker.auto_command.make_docker_database.lazy', 'get_Maker_AutoCommand_MakeDockerDatabase_LazyService', true], - 'maker.auto_command.make_entity' => ['privates', '.maker.auto_command.make_entity.lazy', 'get_Maker_AutoCommand_MakeEntity_LazyService', true], - 'maker.auto_command.make_fixtures' => ['privates', '.maker.auto_command.make_fixtures.lazy', 'get_Maker_AutoCommand_MakeFixtures_LazyService', true], - 'maker.auto_command.make_form' => ['privates', '.maker.auto_command.make_form.lazy', 'get_Maker_AutoCommand_MakeForm_LazyService', true], - 'maker.auto_command.make_listener' => ['privates', '.maker.auto_command.make_listener.lazy', 'get_Maker_AutoCommand_MakeListener_LazyService', true], - 'maker.auto_command.make_message' => ['privates', '.maker.auto_command.make_message.lazy', 'get_Maker_AutoCommand_MakeMessage_LazyService', true], - 'maker.auto_command.make_messenger_middleware' => ['privates', '.maker.auto_command.make_messenger_middleware.lazy', 'get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService', true], - 'maker.auto_command.make_registration_form' => ['privates', '.maker.auto_command.make_registration_form.lazy', 'get_Maker_AutoCommand_MakeRegistrationForm_LazyService', true], - 'maker.auto_command.make_reset_password' => ['privates', '.maker.auto_command.make_reset_password.lazy', 'get_Maker_AutoCommand_MakeResetPassword_LazyService', true], - 'maker.auto_command.make_schedule' => ['privates', '.maker.auto_command.make_schedule.lazy', 'get_Maker_AutoCommand_MakeSchedule_LazyService', true], - 'maker.auto_command.make_serializer_encoder' => ['privates', '.maker.auto_command.make_serializer_encoder.lazy', 'get_Maker_AutoCommand_MakeSerializerEncoder_LazyService', true], - 'maker.auto_command.make_serializer_normalizer' => ['privates', '.maker.auto_command.make_serializer_normalizer.lazy', 'get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService', true], - 'maker.auto_command.make_twig_extension' => ['privates', '.maker.auto_command.make_twig_extension.lazy', 'get_Maker_AutoCommand_MakeTwigExtension_LazyService', true], - 'maker.auto_command.make_test' => ['privates', '.maker.auto_command.make_test.lazy', 'get_Maker_AutoCommand_MakeTest_LazyService', true], - 'maker.auto_command.make_validator' => ['privates', '.maker.auto_command.make_validator.lazy', 'get_Maker_AutoCommand_MakeValidator_LazyService', true], - 'maker.auto_command.make_voter' => ['privates', '.maker.auto_command.make_voter.lazy', 'get_Maker_AutoCommand_MakeVoter_LazyService', true], - 'maker.auto_command.make_user' => ['privates', '.maker.auto_command.make_user.lazy', 'get_Maker_AutoCommand_MakeUser_LazyService', true], - 'maker.auto_command.make_migration' => ['privates', '.maker.auto_command.make_migration.lazy', 'get_Maker_AutoCommand_MakeMigration_LazyService', true], - 'maker.auto_command.make_stimulus_controller' => ['privates', '.maker.auto_command.make_stimulus_controller.lazy', 'get_Maker_AutoCommand_MakeStimulusController_LazyService', true], - 'maker.auto_command.make_security_form_login' => ['privates', '.maker.auto_command.make_security_form_login.lazy', 'get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService', true], - 'maker.auto_command.make_security_custom' => ['privates', '.maker.auto_command.make_security_custom.lazy', 'get_Maker_AutoCommand_MakeSecurityCustom_LazyService', true], - 'maker.auto_command.make_webhook' => ['privates', '.maker.auto_command.make_webhook.lazy', 'get_Maker_AutoCommand_MakeWebhook_LazyService', true], - ], [ - 'App\\Command\\RedisImportCommand' => '?', - 'App\\Command\\RedisReadCommand' => '?', - 'App\\Command\\TriggerTestCommand' => '?', - 'console.command.about' => '?', - 'console.command.assets_install' => '?', - 'console.command.cache_clear' => '?', - 'console.command.cache_pool_clear' => '?', - 'console.command.cache_pool_prune' => '?', - 'console.command.cache_pool_invalidate_tags' => '?', - 'console.command.cache_pool_delete' => '?', - 'console.command.cache_pool_list' => '?', - 'console.command.cache_warmup' => '?', - 'console.command.config_debug' => '?', - 'console.command.config_dump_reference' => '?', - 'console.command.container_debug' => '?', - 'console.command.container_lint' => '?', - 'console.command.debug_autowiring' => '?', - 'console.command.dotenv_debug' => '?', - 'console.command.event_dispatcher_debug' => '?', - 'console.command.messenger_consume_messages' => '?', - 'console.command.messenger_setup_transports' => '?', - 'console.command.messenger_debug' => '?', - 'console.command.messenger_stop_workers' => '?', - 'console.command.messenger_stats' => '?', - 'console.command.router_debug' => '?', - 'console.command.router_match' => '?', - 'console.command.yaml_lint' => '?', - 'console.command.secrets_set' => '?', - 'console.command.secrets_remove' => '?', - 'console.command.secrets_generate_key' => '?', - 'console.command.secrets_list' => '?', - 'console.command.secrets_decrypt_to_local' => '?', - 'console.command.secrets_encrypt_from_local' => '?', - 'security.command.debug_firewall' => '?', - 'security.command.user_password_hash' => '?', - 'doctrine.database_create_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\CreateDatabaseDoctrineCommand', - 'doctrine.database_drop_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\DropDatabaseDoctrineCommand', - 'doctrine.query_sql_command' => 'Doctrine\\Bundle\\DoctrineBundle\\Command\\Proxy\\RunSqlDoctrineCommand', - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', - 'doctrine.cache_clear_metadata_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\MetadataCommand', - 'doctrine.cache_clear_query_cache_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\QueryCommand', - 'doctrine.cache_clear_result_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\ResultCommand', - 'doctrine.cache_collection_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\CollectionRegionCommand', - 'doctrine.schema_create_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\CreateCommand', - 'doctrine.schema_drop_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\DropCommand', - 'doctrine.clear_entity_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\EntityRegionCommand', - 'doctrine.mapping_info_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\InfoCommand', - 'doctrine.clear_query_region_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ClearCache\\QueryRegionCommand', - 'doctrine.query_dql_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\RunDqlCommand', - 'doctrine.schema_update_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\SchemaTool\\UpdateCommand', - 'doctrine.schema_validate_command' => 'Doctrine\\ORM\\Tools\\Console\\Command\\ValidateSchemaCommand', - 'doctrine_migrations.diff_command' => '?', - 'doctrine_migrations.sync_metadata_command' => '?', - 'doctrine_migrations.versions_command' => '?', - 'doctrine_migrations.current_command' => '?', - 'doctrine_migrations.dump_schema_command' => '?', - 'doctrine_migrations.execute_command' => '?', - 'doctrine_migrations.generate_command' => '?', - 'doctrine_migrations.latest_command' => '?', - 'doctrine_migrations.migrate_command' => '?', - 'doctrine_migrations.rollup_command' => '?', - 'doctrine_migrations.status_command' => '?', - 'doctrine_migrations.up_to_date_command' => '?', - 'doctrine_migrations.version_command' => '?', - 'maker.auto_command.make_auth' => '?', - 'maker.auto_command.make_command' => '?', - 'maker.auto_command.make_twig_component' => '?', - 'maker.auto_command.make_controller' => '?', - 'maker.auto_command.make_crud' => '?', - 'maker.auto_command.make_docker_database' => '?', - 'maker.auto_command.make_entity' => '?', - 'maker.auto_command.make_fixtures' => '?', - 'maker.auto_command.make_form' => '?', - 'maker.auto_command.make_listener' => '?', - 'maker.auto_command.make_message' => '?', - 'maker.auto_command.make_messenger_middleware' => '?', - 'maker.auto_command.make_registration_form' => '?', - 'maker.auto_command.make_reset_password' => '?', - 'maker.auto_command.make_schedule' => '?', - 'maker.auto_command.make_serializer_encoder' => '?', - 'maker.auto_command.make_serializer_normalizer' => '?', - 'maker.auto_command.make_twig_extension' => '?', - 'maker.auto_command.make_test' => '?', - 'maker.auto_command.make_validator' => '?', - 'maker.auto_command.make_voter' => '?', - 'maker.auto_command.make_user' => '?', - 'maker.auto_command.make_migration' => '?', - 'maker.auto_command.make_stimulus_controller' => '?', - 'maker.auto_command.make_security_form_login' => '?', - 'maker.auto_command.make_security_custom' => '?', - 'maker.auto_command.make_webhook' => '?', - ]), ['mto:prices:import' => 'App\\Command\\RedisImportCommand', 'mto:prices:read' => 'App\\Command\\RedisReadCommand', 'mto:test:trigger-import' => 'App\\Command\\TriggerTestCommand', 'about' => 'console.command.about', 'assets:install' => 'console.command.assets_install', 'cache:clear' => 'console.command.cache_clear', 'cache:pool:clear' => 'console.command.cache_pool_clear', 'cache:pool:prune' => 'console.command.cache_pool_prune', 'cache:pool:invalidate-tags' => 'console.command.cache_pool_invalidate_tags', 'cache:pool:delete' => 'console.command.cache_pool_delete', 'cache:pool:list' => 'console.command.cache_pool_list', 'cache:warmup' => 'console.command.cache_warmup', 'debug:config' => 'console.command.config_debug', 'config:dump-reference' => 'console.command.config_dump_reference', 'debug:container' => 'console.command.container_debug', 'lint:container' => 'console.command.container_lint', 'debug:autowiring' => 'console.command.debug_autowiring', 'debug:dotenv' => 'console.command.dotenv_debug', 'debug:event-dispatcher' => 'console.command.event_dispatcher_debug', 'messenger:consume' => 'console.command.messenger_consume_messages', 'messenger:setup-transports' => 'console.command.messenger_setup_transports', 'debug:messenger' => 'console.command.messenger_debug', 'messenger:stop-workers' => 'console.command.messenger_stop_workers', 'messenger:stats' => 'console.command.messenger_stats', 'debug:router' => 'console.command.router_debug', 'router:match' => 'console.command.router_match', 'lint:yaml' => 'console.command.yaml_lint', 'secrets:set' => 'console.command.secrets_set', 'secrets:remove' => 'console.command.secrets_remove', 'secrets:generate-keys' => 'console.command.secrets_generate_key', 'secrets:list' => 'console.command.secrets_list', 'secrets:decrypt-to-local' => 'console.command.secrets_decrypt_to_local', 'secrets:encrypt-from-local' => 'console.command.secrets_encrypt_from_local', 'debug:firewall' => 'security.command.debug_firewall', 'security:hash-password' => 'security.command.user_password_hash', 'doctrine:database:create' => 'doctrine.database_create_command', 'doctrine:database:drop' => 'doctrine.database_drop_command', 'doctrine:query:sql' => 'doctrine.query_sql_command', 'dbal:run-sql' => 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand', 'doctrine:cache:clear-metadata' => 'doctrine.cache_clear_metadata_command', 'doctrine:cache:clear-query' => 'doctrine.cache_clear_query_cache_command', 'doctrine:cache:clear-result' => 'doctrine.cache_clear_result_command', 'doctrine:cache:clear-collection-region' => 'doctrine.cache_collection_region_command', 'doctrine:schema:create' => 'doctrine.schema_create_command', 'doctrine:schema:drop' => 'doctrine.schema_drop_command', 'doctrine:cache:clear-entity-region' => 'doctrine.clear_entity_region_command', 'doctrine:mapping:info' => 'doctrine.mapping_info_command', 'doctrine:cache:clear-query-region' => 'doctrine.clear_query_region_command', 'doctrine:query:dql' => 'doctrine.query_dql_command', 'doctrine:schema:update' => 'doctrine.schema_update_command', 'doctrine:schema:validate' => 'doctrine.schema_validate_command', 'doctrine:migrations:diff' => 'doctrine_migrations.diff_command', 'doctrine:migrations:sync-metadata-storage' => 'doctrine_migrations.sync_metadata_command', 'doctrine:migrations:list' => 'doctrine_migrations.versions_command', 'doctrine:migrations:current' => 'doctrine_migrations.current_command', 'doctrine:migrations:dump-schema' => 'doctrine_migrations.dump_schema_command', 'doctrine:migrations:execute' => 'doctrine_migrations.execute_command', 'doctrine:migrations:generate' => 'doctrine_migrations.generate_command', 'doctrine:migrations:latest' => 'doctrine_migrations.latest_command', 'doctrine:migrations:migrate' => 'doctrine_migrations.migrate_command', 'doctrine:migrations:rollup' => 'doctrine_migrations.rollup_command', 'doctrine:migrations:status' => 'doctrine_migrations.status_command', 'doctrine:migrations:up-to-date' => 'doctrine_migrations.up_to_date_command', 'doctrine:migrations:version' => 'doctrine_migrations.version_command', 'make:auth' => 'maker.auto_command.make_auth', 'make:command' => 'maker.auto_command.make_command', 'make:twig-component' => 'maker.auto_command.make_twig_component', 'make:controller' => 'maker.auto_command.make_controller', 'make:crud' => 'maker.auto_command.make_crud', 'make:docker:database' => 'maker.auto_command.make_docker_database', 'make:entity' => 'maker.auto_command.make_entity', 'make:fixtures' => 'maker.auto_command.make_fixtures', 'make:form' => 'maker.auto_command.make_form', 'make:listener' => 'maker.auto_command.make_listener', 'make:subscriber' => 'maker.auto_command.make_listener', 'make:message' => 'maker.auto_command.make_message', 'make:messenger-middleware' => 'maker.auto_command.make_messenger_middleware', 'make:registration-form' => 'maker.auto_command.make_registration_form', 'make:reset-password' => 'maker.auto_command.make_reset_password', 'make:schedule' => 'maker.auto_command.make_schedule', 'make:serializer:encoder' => 'maker.auto_command.make_serializer_encoder', 'make:serializer:normalizer' => 'maker.auto_command.make_serializer_normalizer', 'make:twig-extension' => 'maker.auto_command.make_twig_extension', 'make:test' => 'maker.auto_command.make_test', 'make:unit-test' => 'maker.auto_command.make_test', 'make:functional-test' => 'maker.auto_command.make_test', 'make:validator' => 'maker.auto_command.make_validator', 'make:voter' => 'maker.auto_command.make_voter', 'make:user' => 'maker.auto_command.make_user', 'make:migration' => 'maker.auto_command.make_migration', 'make:stimulus-controller' => 'maker.auto_command.make_stimulus_controller', 'make:security:form-login' => 'maker.auto_command.make_security_form_login', 'make:security:custom' => 'maker.auto_command.make_security_custom', 'make:webhook' => 'maker.auto_command.make_webhook']); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AboutService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AboutService.php deleted file mode 100644 index f190b6d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AboutService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.about'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AboutCommand(); - - $instance->setName('about'); - $instance->setDescription('Display information about the current project'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AssetsInstallService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AssetsInstallService.php deleted file mode 100644 index 7399fa3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_AssetsInstallService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.assets_install'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand(($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()), \dirname(__DIR__, 4)); - - $instance->setName('assets:install'); - $instance->setDescription('Install bundle\'s web assets under a public directory'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheClearService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheClearService.php deleted file mode 100644 index 90e7858..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheClearService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.cache_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand(new \Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer(new RewindableGenerator(fn () => new \EmptyIterator(), 0)), ($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem())); - - $instance->setName('cache:clear'); - $instance->setDescription('Clear the cache'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolClearService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolClearService.php deleted file mode 100644 index c349205..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolClearService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:clear'); - $instance->setDescription('Clear cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolDeleteService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolDeleteService.php deleted file mode 100644 index b86283f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolDeleteService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_delete'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:delete'); - $instance->setDescription('Delete an item from a cache pool'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolInvalidateTagsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolInvalidateTagsService.php deleted file mode 100644 index 15773a0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolInvalidateTagsService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['console.command.cache_pool_invalidate_tags'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'cache.app' => ['privates', 'cache.app.taggable', 'getCache_App_TaggableService', true], - 'cache.rate_limiter' => ['privates', '.cache.rate_limiter.taggable', 'get_Cache_RateLimiter_TaggableService', true], - ], [ - 'cache.app' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter', - 'cache.rate_limiter' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter', - ])); - - $instance->setName('cache:pool:invalidate-tags'); - $instance->setDescription('Invalidate cache tags for all or a specific pool'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolListService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolListService.php deleted file mode 100644 index 9cc176c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolListService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_pool_list'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand(['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']); - - $instance->setName('cache:pool:list'); - $instance->setDescription('List available cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolPruneService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolPruneService.php deleted file mode 100644 index 89682b5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CachePoolPruneService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.cache_pool_prune'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand(new RewindableGenerator(function () use ($container) { - yield 'cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')); - yield 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')); - }, 2)); - - $instance->setName('cache:pool:prune'); - $instance->setDescription('Prune cache pools'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheWarmupService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheWarmupService.php deleted file mode 100644 index 495d6a6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_CacheWarmupService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.cache_warmup'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand(($container->services['cache_warmer'] ?? $container->load('getCacheWarmerService'))); - - $instance->setName('cache:warmup'); - $instance->setDescription('Warm up an empty cache'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDebugService.php deleted file mode 100644 index cb7dcd6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDebugService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.config_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand(); - - $instance->setName('debug:config'); - $instance->setDescription('Dump the current configuration for an extension'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDumpReferenceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDumpReferenceService.php deleted file mode 100644 index 1e65650..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ConfigDumpReferenceService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.config_dump_reference'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand(); - - $instance->setName('config:dump-reference'); - $instance->setDescription('Dump the default configuration for an extension'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerDebugService.php deleted file mode 100644 index 8083e73..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerDebugService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.container_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand(); - - $instance->setName('debug:container'); - $instance->setDescription('Display current services for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerLintService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerLintService.php deleted file mode 100644 index 7d3fc87..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_ContainerLintService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.container_lint'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand(); - - $instance->setName('lint:container'); - $instance->setDescription('Ensure that arguments injected into services match type declarations'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DebugAutowiringService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DebugAutowiringService.php deleted file mode 100644 index 90797b9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DebugAutowiringService.php +++ /dev/null @@ -1,34 +0,0 @@ -privates['console.command.debug_autowiring'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand(NULL, ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - - $instance->setName('debug:autowiring'); - $instance->setDescription('List classes/interfaces you can use for autowiring'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DotenvDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DotenvDebugService.php deleted file mode 100644 index 3d329ae..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_DotenvDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.dotenv_debug'] = $instance = new \Symfony\Component\Dotenv\Command\DebugCommand('dev', \dirname(__DIR__, 4)); - - $instance->setName('debug:dotenv'); - $instance->setDescription('List all dotenv files with variables and values'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_EventDispatcherDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_EventDispatcherDebugService.php deleted file mode 100644 index 8f520a1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_EventDispatcherDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.event_dispatcher_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand(($container->privates['.service_locator.sPNPNE7'] ?? $container->load('get_ServiceLocator_SPNPNE7Service'))); - - $instance->setName('debug:event-dispatcher'); - $instance->setDescription('Display configured listeners for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerConsumeMessagesService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerConsumeMessagesService.php deleted file mode 100644 index 05689e5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerConsumeMessagesService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.messenger_consume_messages'] = $instance = new \Symfony\Component\Messenger\Command\ConsumeMessagesCommand(($container->privates['messenger.routable_message_bus'] ?? $container->load('getMessenger_RoutableMessageBusService')), ($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService')), ['async'], new \Symfony\Component\Messenger\EventListener\ResetServicesListener(($container->services['services_resetter'] ?? $container->load('getServicesResetterService'))), ['messenger.bus.default'], NULL, NULL); - - $instance->setName('messenger:consume'); - $instance->setDescription('Consume messages'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerDebugService.php deleted file mode 100644 index de63d21..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerDebugService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_debug'] = $instance = new \Symfony\Component\Messenger\Command\DebugCommand(['messenger.bus.default' => ['App\\Message\\TriggerPriceImport' => [['App\\MessageHandler\\TriggerPriceImportHandler', []], ['App\\MessageHandler\\TriggerPriceImportHandler', []]], 'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => [['process.messenger.process_message_handler', []]], 'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => [['console.messenger.execute_command_handler', []]], 'Symfony\\Component\\HttpClient\\Messenger\\PingWebhookMessage' => [['http_client.messenger.ping_webhook_handler', []]], 'Symfony\\Component\\Messenger\\Message\\RedispatchMessage' => [['messenger.redispatch_message_handler', []]]]]); - - $instance->setName('debug:messenger'); - $instance->setDescription('List messages you can dispatch using the message buses'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerSetupTransportsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerSetupTransportsService.php deleted file mode 100644 index 2ac528e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerSetupTransportsService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_setup_transports'] = $instance = new \Symfony\Component\Messenger\Command\SetupTransportsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']); - - $instance->setName('messenger:setup-transports'); - $instance->setDescription('Prepare the required infrastructure for the transport'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStatsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStatsService.php deleted file mode 100644 index 61b7105..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStatsService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_stats'] = $instance = new \Symfony\Component\Messenger\Command\StatsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']); - - $instance->setName('messenger:stats'); - $instance->setDescription('Show the message count for one or more transports'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStopWorkersService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStopWorkersService.php deleted file mode 100644 index f57c5fc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_MessengerStopWorkersService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.messenger_stop_workers'] = $instance = new \Symfony\Component\Messenger\Command\StopWorkersCommand(($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService'))); - - $instance->setName('messenger:stop-workers'); - $instance->setDescription('Stop workers after their current message'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterDebugService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterDebugService.php deleted file mode 100644 index dd80af9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterDebugService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.router_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand(($container->services['router'] ?? self::getRouterService($container)), ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - - $instance->setName('debug:router'); - $instance->setDescription('Display current routes for an application'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterMatchService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterMatchService.php deleted file mode 100644 index aea9fdc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_RouterMatchService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['console.command.router_match'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand(($container->services['router'] ?? self::getRouterService($container)), new RewindableGenerator(fn () => new \EmptyIterator(), 0)); - - $instance->setName('router:match'); - $instance->setDescription('Help debug routes by simulating a path info match'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsDecryptToLocalService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsDecryptToLocalService.php deleted file mode 100644 index de4b966..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsDecryptToLocalService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_decrypt_to_local'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsDecryptToLocalCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:decrypt-to-local'); - $instance->setDescription('Decrypt all secrets and stores them in the local vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsEncryptFromLocalService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsEncryptFromLocalService.php deleted file mode 100644 index 1c838a3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsEncryptFromLocalService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_encrypt_from_local'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsEncryptFromLocalCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:encrypt-from-local'); - $instance->setDescription('Encrypt all local secrets to the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsGenerateKeyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsGenerateKeyService.php deleted file mode 100644 index 8e35649..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsGenerateKeyService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_generate_key'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsGenerateKeysCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:generate-keys'); - $instance->setDescription('Generate new encryption keys'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsListService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsListService.php deleted file mode 100644 index c4b6567..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsListService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_list'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsListCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:list'); - $instance->setDescription('List all secrets'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsRemoveService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsRemoveService.php deleted file mode 100644 index 75d86ad..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsRemoveService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_remove'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsRemoveCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:remove'); - $instance->setDescription('Remove a secret from the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsSetService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsSetService.php deleted file mode 100644 index d5591b5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_SecretsSetService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['console.command.secrets_set'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\SecretsSetCommand(($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')), ($container->privates['secrets.local_vault'] ??= new \Symfony\Bundle\FrameworkBundle\Secrets\DotenvVault((\dirname(__DIR__, 4).'/.env.dev.local')))); - - $instance->setName('secrets:set'); - $instance->setDescription('Set a secret in the vault'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_YamlLintService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_YamlLintService.php deleted file mode 100644 index 960107c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_Command_YamlLintService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['console.command.yaml_lint'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\YamlLintCommand(); - - $instance->setName('lint:yaml'); - $instance->setDescription('Lint a YAML file and outputs encountered errors'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_ErrorListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_ErrorListenerService.php deleted file mode 100644 index c849b6c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getConsole_ErrorListenerService.php +++ /dev/null @@ -1,30 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $container->privates['console.error_listener'] = new \Symfony\Component\Console\EventListener\ErrorListener($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php deleted file mode 100644 index 5bb9518..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['container.env_var_processor'] = new \Symfony\Component\DependencyInjection\EnvVarProcessor($container, new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['secrets.vault'] ?? $container->load('getSecrets_VaultService')); - }, 1)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php deleted file mode 100644 index 1c5eaff..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php +++ /dev/null @@ -1,65 +0,0 @@ -services['container.env_var_processors_locator'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'base64' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'bool' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'const' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'csv' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'default' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'defined' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'enum' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'file' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'float' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'int' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'json' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'key' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'not' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'query_string' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'require' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'resolve' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'shuffle' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'string' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'trim' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - 'url' => ['privates', 'container.env_var_processor', 'getContainer_EnvVarProcessorService', true], - ], [ - 'base64' => '?', - 'bool' => '?', - 'const' => '?', - 'csv' => '?', - 'default' => '?', - 'defined' => '?', - 'enum' => '?', - 'file' => '?', - 'float' => '?', - 'int' => '?', - 'json' => '?', - 'key' => '?', - 'not' => '?', - 'query_string' => '?', - 'require' => '?', - 'resolve' => '?', - 'shuffle' => '?', - 'string' => '?', - 'trim' => '?', - 'url' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php deleted file mode 100644 index 0a84fef..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php +++ /dev/null @@ -1,23 +0,0 @@ -services['container.get_routing_condition_service'] = ($container->privates['.service_locator.Xbsa8iG'] ??= new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [], []))->get(...); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php deleted file mode 100644 index 71f64a1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php +++ /dev/null @@ -1,30 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $container->services['debug.error_handler_configurator'] = new \Symfony\Component\HttpKernel\Debug\ErrorHandlerConfigurator($a, NULL, -1, true, true, ($container->services['monolog.logger.deprecation'] ?? $container->load('getMonolog_Logger_DeprecationService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php deleted file mode 100644 index 9d8fd08..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['debug.security.firewall.authenticator.dev'] = new \Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener(new \Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener(new \Symfony\Component\Security\Http\Authentication\AuthenticatorManager([], ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['debug.security.event_dispatcher.dev'] ?? self::getDebug_Security_EventDispatcher_DevService($container)), 'dev', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), true, true, []))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php deleted file mode 100644 index cba0b05..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['debug.security.firewall.authenticator.main'] = new \Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener(new \Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener(new \Symfony\Component\Security\Http\Authentication\AuthenticatorManager([], ($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['debug.security.event_dispatcher.main'] ?? self::getDebug_Security_EventDispatcher_MainService($container)), 'main', ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), true, true, []))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php deleted file mode 100644 index 229cc1b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['debug.security.voter.vote_listener'])) { - return $container->privates['debug.security.voter.vote_listener']; - } - - return $container->privates['debug.security.voter.vote_listener'] = new \Symfony\Bundle\SecurityBundle\EventListener\VoteListener($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_CurrentCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_CurrentCommandService.php deleted file mode 100644 index 5e829b5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_CurrentCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.current_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\CurrentCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:current'); - - $instance->setName('doctrine:migrations:current'); - $instance->setDescription('Outputs the current version'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DiffCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DiffCommandService.php deleted file mode 100644 index 627dbc7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DiffCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.diff_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\DiffCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:diff'); - - $instance->setName('doctrine:migrations:diff'); - $instance->setDescription('Generate a migration by comparing your current database to your mapping information.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DumpSchemaCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DumpSchemaCommandService.php deleted file mode 100644 index 2324f88..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_DumpSchemaCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.dump_schema_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:dump-schema'); - - $instance->setName('doctrine:migrations:dump-schema'); - $instance->setDescription('Dump the schema for your database to a migration.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_ExecuteCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_ExecuteCommandService.php deleted file mode 100644 index 8ef6377..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_ExecuteCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.execute_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\ExecuteCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:execute'); - - $instance->setName('doctrine:migrations:execute'); - $instance->setDescription('Execute one or more migration versions up or down manually.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_GenerateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_GenerateCommandService.php deleted file mode 100644 index bd9e667..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_GenerateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.generate_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\GenerateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:generate'); - - $instance->setName('doctrine:migrations:generate'); - $instance->setDescription('Generate a blank migration class.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_LatestCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_LatestCommandService.php deleted file mode 100644 index 10c7607..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_LatestCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.latest_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\LatestCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:latest'); - - $instance->setName('doctrine:migrations:latest'); - $instance->setDescription('Outputs the latest version'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_MigrateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_MigrateCommandService.php deleted file mode 100644 index 22e70f9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_MigrateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.migrate_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\MigrateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:migrate'); - - $instance->setName('doctrine:migrations:migrate'); - $instance->setDescription('Execute a migration to a specified version or the latest available version.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_RollupCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_RollupCommandService.php deleted file mode 100644 index 50a4a08..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_RollupCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.rollup_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\RollupCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:rollup'); - - $instance->setName('doctrine:migrations:rollup'); - $instance->setDescription('Rollup migrations by deleting all tracked versions and insert the one version that exists.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_StatusCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_StatusCommandService.php deleted file mode 100644 index db8ea82..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_StatusCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.status_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\StatusCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:status'); - - $instance->setName('doctrine:migrations:status'); - $instance->setDescription('View the status of a set of migrations.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_SyncMetadataCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_SyncMetadataCommandService.php deleted file mode 100644 index 8155326..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_SyncMetadataCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.sync_metadata_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:sync-metadata-storage'); - - $instance->setName('doctrine:migrations:sync-metadata-storage'); - $instance->setDescription('Ensures that the metadata storage is at the latest version.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_UpToDateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_UpToDateCommandService.php deleted file mode 100644 index ce0b11b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_UpToDateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.up_to_date_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\UpToDateCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:up-to-date'); - - $instance->setName('doctrine:migrations:up-to-date'); - $instance->setDescription('Tells you if your schema is up-to-date.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionCommandService.php deleted file mode 100644 index 7d43777..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.version_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\VersionCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:version'); - - $instance->setName('doctrine:migrations:version'); - $instance->setDescription('Manually add and delete migration versions from the version table.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionsCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionsCommandService.php deleted file mode 100644 index df4c843..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineMigrations_VersionsCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine_migrations.versions_command'] = $instance = new \Doctrine\Migrations\Tools\Console\Command\ListCommand(($container->privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')), 'doctrine:migrations:versions'); - - $instance->setName('doctrine:migrations:list'); - $instance->setDescription('Display a list of all available migrations and their status.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineService.php deleted file mode 100644 index fd9c104..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrineService.php +++ /dev/null @@ -1,29 +0,0 @@ -services['doctrine'] = new \Doctrine\Bundle\DoctrineBundle\Registry($container, $container->parameters['doctrine.connections'], $container->parameters['doctrine.entity_managers'], 'default', 'default'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearMetadataCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearMetadataCommandService.php deleted file mode 100644 index 8cb2730..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearMetadataCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_metadata_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-metadata'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearQueryCacheCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearQueryCacheCommandService.php deleted file mode 100644 index f4c7feb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearQueryCacheCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_query_cache_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-query'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearResultCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearResultCommandService.php deleted file mode 100644 index f240e2b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheClearResultCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_clear_result_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-result'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheCollectionRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheCollectionRegionCommandService.php deleted file mode 100644 index e1ce55d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_CacheCollectionRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.cache_collection_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\CollectionRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-collection-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearEntityRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearEntityRegionCommandService.php deleted file mode 100644 index 2e07081..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearEntityRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.clear_entity_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\EntityRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-entity-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearQueryRegionCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearQueryRegionCommandService.php deleted file mode 100644 index dbc0033..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_ClearQueryRegionCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.clear_query_region_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryRegionCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:cache:clear-query-region'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseCreateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseCreateCommandService.php deleted file mode 100644 index de329cd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseCreateCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.database_create_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - - $instance->setName('doctrine:database:create'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseDropCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseDropCommandService.php deleted file mode 100644 index fb34f83..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_DatabaseDropCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.database_drop_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - - $instance->setName('doctrine:database:drop'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php deleted file mode 100644 index 3020fd8..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php +++ /dev/null @@ -1,52 +0,0 @@ -pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $b->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $b->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - $c = new \Doctrine\Bundle\DoctrineBundle\Middleware\DebugMiddleware(($container->privates['doctrine.debug_data_holder'] ??= new \Doctrine\Bundle\DoctrineBundle\Middleware\BacktraceDebugDataHolder(['default'])), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - $c->setConnectionName('default'); - - $a->setSchemaManagerFactory(new \Doctrine\DBAL\Schema\DefaultSchemaManagerFactory()); - $a->setSchemaAssetsFilter(new \Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager([($container->privates['doctrine_migrations.schema_filter_listener'] ??= new \Doctrine\Bundle\MigrationsBundle\EventListener\SchemaFilterListener('doctrine_migration_versions'))])); - $a->setMiddlewares([new \Doctrine\DBAL\Logging\Middleware($b), $c]); - - return $container->services['doctrine.dbal.default_connection'] = (new \Doctrine\Bundle\DoctrineBundle\ConnectionFactory($container->parameters['doctrine.dbal.connection_factory.types'], new \Doctrine\DBAL\Tools\DsnParser(['db2' => 'ibm_db2', 'mssql' => 'pdo_sqlsrv', 'mysql' => 'pdo_mysql', 'mysql2' => 'pdo_mysql', 'postgres' => 'pdo_pgsql', 'postgresql' => 'pdo_pgsql', 'pgsql' => 'pdo_pgsql', 'sqlite' => 'pdo_sqlite', 'sqlite3' => 'pdo_sqlite'])))->createConnection(['url' => $container->getEnv('resolve:DATABASE_URL'), 'charset' => 'utf8mb4', 'use_savepoints' => true, 'driver' => 'pdo_mysql', 'idle_connection_ttl' => 600, 'host' => 'localhost', 'port' => NULL, 'user' => 'root', 'password' => NULL, 'driverOptions' => [], 'serverVersion' => '8.0', 'defaultTableOptions' => ['charset' => 'utf8mb4', 'collate' => 'utf8mb4_unicode_ci']], $a, NULL, []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php deleted file mode 100644 index aa76286..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php +++ /dev/null @@ -1,38 +0,0 @@ -privates['doctrine.dbal.default_connection.event_manager'] = new \Symfony\Bridge\Doctrine\ContainerAwareEventManager(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'doctrine.orm.default_listeners.attach_entity_listeners' => ['privates', 'doctrine.orm.default_listeners.attach_entity_listeners', 'getDoctrine_Orm_DefaultListeners_AttachEntityListenersService', true], - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => ['privates', 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener', 'getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService', true], - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => ['privates', 'doctrine.orm.listeners.doctrine_token_provider_schema_listener', 'getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService', true], - 'doctrine.orm.listeners.lock_store_schema_listener' => ['privates', 'doctrine.orm.listeners.lock_store_schema_listener', 'getDoctrine_Orm_Listeners_LockStoreSchemaListenerService', true], - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => ['privates', 'doctrine.orm.listeners.pdo_session_handler_schema_listener', 'getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService', true], - ], [ - 'doctrine.orm.default_listeners.attach_entity_listeners' => '?', - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => '?', - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => '?', - 'doctrine.orm.listeners.lock_store_schema_listener' => '?', - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => '?', - ]), [[['postGenerateSchema'], 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.doctrine_token_provider_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.pdo_session_handler_schema_listener'], [['postGenerateSchema'], 'doctrine.orm.listeners.lock_store_schema_listener'], [['loadClassMetadata'], 'doctrine.orm.default_listeners.attach_entity_listeners']]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_MappingInfoCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_MappingInfoCommandService.php deleted file mode 100644 index 6a1cf3f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_MappingInfoCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.mapping_info_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\InfoCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:mapping:info'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php deleted file mode 100644 index 596342a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_ContainerAwareMigrationsFactoryService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.migrations.dependency_factory'] ?? $container->load('getDoctrine_Migrations_DependencyFactoryService')); - - if (isset($container->privates['doctrine.migrations.container_aware_migrations_factory'])) { - return $container->privates['doctrine.migrations.container_aware_migrations_factory']; - } - - return $container->privates['doctrine.migrations.container_aware_migrations_factory'] = new \Doctrine\Bundle\MigrationsBundle\MigrationsFactory\ContainerAwareMigrationFactory($a->getMigrationFactory(), $container); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_DependencyFactoryService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_DependencyFactoryService.php deleted file mode 100644 index 17e0a0e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Migrations_DependencyFactoryService.php +++ /dev/null @@ -1,43 +0,0 @@ -addMigrationsDirectory('DoctrineMigrations', (\dirname(__DIR__, 4).'/migrations')); - $a->setAllOrNothing(false); - $a->setCheckDatabasePlatform(true); - $a->setTransactional(true); - $a->setMetadataStorageConfiguration(new \Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration()); - - $container->privates['doctrine.migrations.dependency_factory'] = $instance = \Doctrine\Migrations\DependencyFactory::fromEntityManager(new \Doctrine\Migrations\Configuration\Migration\ExistingConfiguration($a), \Doctrine\Migrations\Configuration\EntityManager\ManagerRegistryEntityManager::withSimpleDefault(($container->services['doctrine'] ?? $container->load('getDoctrineService'))), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - - $instance->setDefinition('Doctrine\\Migrations\\Version\\MigrationFactory', #[\Closure(name: 'doctrine.migrations.container_aware_migrations_factory', class: 'Doctrine\\Bundle\\MigrationsBundle\\MigrationsFactory\\ContainerAwareMigrationFactory')] fn () => ($container->privates['doctrine.migrations.container_aware_migrations_factory'] ?? $container->load('getDoctrine_Migrations_ContainerAwareMigrationsFactoryService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Command_EntityManagerProviderService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Command_EntityManagerProviderService.php deleted file mode 100644 index 3dc9a1a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Command_EntityManagerProviderService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.command.entity_manager_provider'] = new \Doctrine\Bundle\DoctrineBundle\Orm\ManagerRegistryAwareEntityManagerProvider(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php deleted file mode 100644 index 9a8d449..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php +++ /dev/null @@ -1,82 +0,0 @@ -privates['doctrine.orm.default_configuration'] = $instance = new \Doctrine\ORM\Configuration(); - - $a = new \Doctrine\Persistence\Mapping\Driver\MappingDriverChain(); - $a->addDriver(($container->privates['doctrine.orm.default_attribute_metadata_driver'] ??= new \Doctrine\ORM\Mapping\Driver\AttributeDriver([(\dirname(__DIR__, 4).'/src/Entity')], true)), 'App\\Entity'); - - $instance->setEntityNamespaces(['App' => 'App\\Entity']); - $instance->setMetadataCache(new \Symfony\Component\Cache\Adapter\ArrayAdapter()); - $instance->setQueryCache(($container->privates['cache.doctrine.orm.default.query'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())); - $instance->setResultCache(($container->privates['cache.doctrine.orm.default.result'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())); - $instance->setMetadataDriverImpl(new \Doctrine\Bundle\DoctrineBundle\Mapping\MappingDriver($a, new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'doctrine.ulid_generator' => ['privates', 'doctrine.ulid_generator', 'getDoctrine_UlidGeneratorService', true], - 'doctrine.uuid_generator' => ['privates', 'doctrine.uuid_generator', 'getDoctrine_UuidGeneratorService', true], - ], [ - 'doctrine.ulid_generator' => '?', - 'doctrine.uuid_generator' => '?', - ]))); - $instance->setProxyDir(($container->targetDir.''.'/doctrine/orm/Proxies')); - $instance->setProxyNamespace('Proxies'); - $instance->setAutoGenerateProxyClasses(true); - $instance->setSchemaIgnoreClasses([]); - $instance->setClassMetadataFactoryName('Doctrine\\Bundle\\DoctrineBundle\\Mapping\\ClassMetadataFactory'); - $instance->setDefaultRepositoryClassName('Doctrine\\ORM\\EntityRepository'); - $instance->setNamingStrategy(new \Doctrine\ORM\Mapping\UnderscoreNamingStrategy(0, true)); - $instance->setQuoteStrategy(new \Doctrine\ORM\Mapping\DefaultQuoteStrategy()); - $instance->setTypedFieldMapper(new \Doctrine\ORM\Mapping\DefaultTypedFieldMapper()); - $instance->setEntityListenerResolver(new \Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver($container)); - $instance->setLazyGhostObjectEnabled(true); - $instance->setIdentityGenerationPreferences([]); - $instance->setRepositoryFactory(new \Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory(($container->privates['.service_locator.Xbsa8iG'] ??= new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [], [])))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php deleted file mode 100644 index f8bd4e6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php +++ /dev/null @@ -1,37 +0,0 @@ -services['doctrine.orm.default_entity_manager'] = $container->createProxy('EntityManagerGhostEbeb667', static fn () => \EntityManagerGhostEbeb667::createLazyGhost(static fn ($proxy) => self::do($container, $proxy))); - } - - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/Proxy/Autoloader.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/persistence/src/Persistence/ObjectManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManagerInterface.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManager.php'; - include_once \dirname(__DIR__, 4).'/vendor/doctrine/doctrine-bundle/src/ManagerConfigurator.php'; - - $instance = ($lazyLoad->__construct(($container->services['doctrine.dbal.default_connection'] ?? $container->load('getDoctrine_Dbal_DefaultConnectionService')), ($container->privates['doctrine.orm.default_configuration'] ?? $container->load('getDoctrine_Orm_DefaultConfigurationService')), ($container->privates['doctrine.dbal.default_connection.event_manager'] ?? $container->load('getDoctrine_Dbal_DefaultConnection_EventManagerService'))) && false ?: $lazyLoad); - - ($container->privates['doctrine.orm.default_manager_configurator'] ??= new \Doctrine\Bundle\DoctrineBundle\ManagerConfigurator([], []))->configure($instance); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php deleted file mode 100644 index aa4205b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['doctrine.orm.default_listeners.attach_entity_listeners'] = new \Doctrine\ORM\Tools\AttachEntityListenersListener(); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php deleted file mode 100644 index 63880a5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaListener([]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php deleted file mode 100644 index ab53918..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.doctrine_token_provider_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener(new RewindableGenerator(fn () => new \EmptyIterator(), 0)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php deleted file mode 100644 index 614e3d0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['doctrine.orm.listeners.lock_store_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\LockStoreSchemaListener(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.lock.default.store.TTEh_gT'] ?? $container->load('get_Lock_Default_Store_TTEhGTService')); - }, 1)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php deleted file mode 100644 index a527e17..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.listeners.pdo_session_handler_schema_listener'] = new \Symfony\Bridge\Doctrine\SchemaListener\PdoSessionHandlerSchemaListener(($container->privates['session.handler.native'] ?? $container->load('getSession_Handler_NativeService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php deleted file mode 100644 index 9cf8ce7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'] = new \Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_ProxyCacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_ProxyCacheWarmerService.php deleted file mode 100644 index 1ff3ec3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_Orm_ProxyCacheWarmerService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['doctrine.orm.proxy_cache_warmer'] = new \Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer(($container->services['doctrine'] ?? $container->load('getDoctrineService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QueryDqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QueryDqlCommandService.php deleted file mode 100644 index 4cf5cf3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QueryDqlCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.query_dql_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:query:dql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QuerySqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QuerySqlCommandService.php deleted file mode 100644 index 44819e5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_QuerySqlCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.query_sql_command'] = $instance = new \Doctrine\Bundle\DoctrineBundle\Command\Proxy\RunSqlDoctrineCommand(($container->privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] ?? $container->load('getManagerRegistryAwareConnectionProviderService'))); - - $instance->setName('doctrine:query:sql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaCreateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaCreateCommandService.php deleted file mode 100644 index 5f5946e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaCreateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_create_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:create'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaDropCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaDropCommandService.php deleted file mode 100644 index cf45929..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaDropCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_drop_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:drop'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaUpdateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaUpdateCommandService.php deleted file mode 100644 index 4cc4156..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaUpdateCommandService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['doctrine.schema_update_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:update'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaValidateCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaValidateCommandService.php deleted file mode 100644 index e97ea2a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_SchemaValidateCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['doctrine.schema_validate_command'] = $instance = new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(($container->privates['doctrine.orm.command.entity_manager_provider'] ?? $container->load('getDoctrine_Orm_Command_EntityManagerProviderService'))); - - $instance->setName('doctrine:schema:validate'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php deleted file mode 100644 index 14b0208..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['doctrine.ulid_generator'] = new \Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator(new \Symfony\Component\Uid\Factory\UlidFactory()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php deleted file mode 100644 index 3727a9f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['doctrine.uuid_generator'] = new \Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator(new \Symfony\Component\Uid\Factory\UuidFactory(7, 7, 5, 'Symfony\\Component\\Uid\\UuidV4', NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getErrorControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getErrorControllerService.php deleted file mode 100644 index c62e4d5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getErrorControllerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()); - - return $container->services['error_controller'] = new \Symfony\Component\HttpKernel\Controller\ErrorController(($container->services['http_kernel'] ?? self::getHttpKernelService($container)), 'error_controller', new \Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer(\Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer::isDebug($a, true), 'UTF-8', ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE'))), \dirname(__DIR__, 4), \Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer::getAndCleanOutputBuffer($a), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_TransportService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_TransportService.php deleted file mode 100644 index a7e3b7b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_TransportService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['http_client.transport'] = $instance = \Symfony\Component\HttpClient\HttpClient::create([], 6); - - $a = new \Monolog\Logger('http_client'); - $a->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $a->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $a->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $instance->setLogger($a); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_UriTemplateService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_UriTemplateService.php deleted file mode 100644 index 8720746..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getHttpClient_UriTemplateService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['http_client.uri_template'] = new \Symfony\Component\HttpClient\UriTemplateHttpClient(($container->privates['http_client.transport'] ?? $container->load('getHttpClient_TransportService')), NULL, []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getLoaderInterfaceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getLoaderInterfaceService.php deleted file mode 100644 index 1ee7ada..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getLoaderInterfaceService.php +++ /dev/null @@ -1,23 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_auth'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeAuthenticator($a, ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), $b, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.security_controller_builder'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityControllerBuilder())), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:auth'); - $instance->setDescription('Create a Guard authenticator of different flavors'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCommandService.php deleted file mode 100644 index 4ee0c08..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCommandService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_command'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeCommand(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:command'); - $instance->setDescription('Create a new console command class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeControllerService.php deleted file mode 100644 index 86631d0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeControllerService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_controller'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeController(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:controller'); - $instance->setDescription('Create a new controller class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCrudService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCrudService.php deleted file mode 100644 index 6fcea16..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeCrudService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_crud'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeCrud(($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:crud'); - $instance->setDescription('Create CRUD for Doctrine entity class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeDockerDatabaseService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeDockerDatabaseService.php deleted file mode 100644 index 32219ec..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeDockerDatabaseService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_docker_database'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeDockerDatabase($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:docker:database'); - $instance->setDescription('Add a database container to your compose.yaml file'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeEntityService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeEntityService.php deleted file mode 100644 index fe095fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeEntityService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_entity'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeEntity($a, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), NULL, $b, ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService'))), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:entity'); - $instance->setDescription('Create or update a Doctrine entity class, and optionally an API Platform resource'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFixturesService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFixturesService.php deleted file mode 100644 index d80eb4c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFixturesService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_fixtures'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeFixtures(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:fixtures'); - $instance->setDescription('Create a new class to load Doctrine fixtures'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFormService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFormService.php deleted file mode 100644 index 0ecdde9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeFormService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_form'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeForm(($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:form'); - $instance->setDescription('Create a new form class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeListenerService.php deleted file mode 100644 index 7c6f925..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeListenerService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.auto_command.make_listener'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeListener(new \Symfony\Bundle\MakerBundle\EventRegistry(($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:listener'); - $instance->setAliases(['make:subscriber']); - $instance->setDescription('Creates a new event subscriber class or a new event listener class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessageService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessageService.php deleted file mode 100644 index b254f05..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessageService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_message'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMessage($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:message'); - $instance->setDescription('Create a new message and handler'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessengerMiddlewareService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessengerMiddlewareService.php deleted file mode 100644 index f227006..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMessengerMiddlewareService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_messenger_middleware'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMessengerMiddleware(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:messenger-middleware'); - $instance->setDescription('Create a new messenger middleware'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMigrationService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMigrationService.php deleted file mode 100644 index 3b23fd1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeMigrationService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['maker.auto_command.make_migration'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeMigration(\dirname(__DIR__, 4), ($container->privates['maker.file_link_formatter'] ?? $container->load('getMaker_FileLinkFormatterService'))), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:migration'); - $instance->setDescription('Create a new migration based on database changes'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeRegistrationFormService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeRegistrationFormService.php deleted file mode 100644 index 4bcf6cb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeRegistrationFormService.php +++ /dev/null @@ -1,38 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_registration_form'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeRegistrationForm($a, ($container->privates['maker.renderer.form_type_renderer'] ?? $container->load('getMaker_Renderer_FormTypeRendererService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->services['router'] ?? self::getRouterService($container))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:registration-form'); - $instance->setDescription('Create a new registration form system'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeResetPasswordService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeResetPasswordService.php deleted file mode 100644 index b5c1322..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeResetPasswordService.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_reset_password'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeResetPassword($a, ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService')), ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService')), ($container->services['router'] ?? self::getRouterService($container))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:reset-password'); - $instance->setDescription('Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeScheduleService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeScheduleService.php deleted file mode 100644 index 43a9d8b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeScheduleService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_schedule'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSchedule($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:schedule'); - $instance->setDescription('Create a scheduler component'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityCustomService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityCustomService.php deleted file mode 100644 index eb4dcb6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityCustomService.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_security_custom'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\Security\MakeCustomAuthenticator($a, $b), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:security:custom'); - $instance->setDescription('Create a custom security authenticator.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityFormLoginService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityFormLoginService.php deleted file mode 100644 index 777ce66..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSecurityFormLoginService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_security_form_login'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\Security\MakeFormLogin($a, ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), ($container->privates['maker.security_controller_builder'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityControllerBuilder())), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:security:form-login'); - $instance->setDescription('Generate the code needed for the form_login authenticator'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerEncoderService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerEncoderService.php deleted file mode 100644 index 4684965..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerEncoderService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_serializer_encoder'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSerializerEncoder(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:serializer:encoder'); - $instance->setDescription('Create a new serializer encoder class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerNormalizerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerNormalizerService.php deleted file mode 100644 index 08b2234..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeSerializerNormalizerService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_serializer_normalizer'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeSerializerNormalizer(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:serializer:normalizer'); - $instance->setDescription('Create a new serializer normalizer class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeStimulusControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeStimulusControllerService.php deleted file mode 100644 index 670a35b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeStimulusControllerService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_stimulus_controller'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeStimulusController(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:stimulus-controller'); - $instance->setDescription('Create a new Stimulus controller'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTestService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTestService.php deleted file mode 100644 index d5d29e1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTestService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.auto_command.make_test'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTest(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:test'); - $instance->setAliases(['make:unit-test', 'make:functional-test']); - $instance->setDescription('Create a new test class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigComponentService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigComponentService.php deleted file mode 100644 index 8306c21..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigComponentService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_twig_component'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTwigComponent($a), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:twig-component'); - $instance->setDescription('Create a Twig (or Live) component'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigExtensionService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigExtensionService.php deleted file mode 100644 index 5a3c29e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeTwigExtensionService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_twig_extension'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeTwigExtension(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:twig-extension'); - $instance->setDescription('Create a new Twig extension with its runtime class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeUserService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeUserService.php deleted file mode 100644 index fbec38a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeUserService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - - $container->privates['maker.auto_command.make_user'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeUser($a, new \Symfony\Bundle\MakerBundle\Security\UserClassBuilder(), ($container->privates['maker.security_config_updater'] ??= new \Symfony\Bundle\MakerBundle\Security\SecurityConfigUpdater()), ($container->privates['maker.entity_class_generator'] ?? $container->load('getMaker_EntityClassGeneratorService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService'))), $a, ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:user'); - $instance->setDescription('Create a new security user class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeValidatorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeValidatorService.php deleted file mode 100644 index 001e2db..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeValidatorService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_validator'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeValidator(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:validator'); - $instance->setDescription('Create a new validator and constraint class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeVoterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeVoterService.php deleted file mode 100644 index 5f05307..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeVoterService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['maker.auto_command.make_voter'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeVoter(), ($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:voter'); - $instance->setDescription('Create a new security voter class'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeWebhookService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeWebhookService.php deleted file mode 100644 index 79a9d9e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_AutoCommand_MakeWebhookService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')); - $b = ($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')); - - $container->privates['maker.auto_command.make_webhook'] = $instance = new \Symfony\Bundle\MakerBundle\Command\MakerCommand(new \Symfony\Bundle\MakerBundle\Maker\MakeWebhook($a, $b), $a, $b, ($container->privates['maker.template_linter'] ??= new \Symfony\Bundle\MakerBundle\Util\TemplateLinter($container->getEnv('default::string:MAKER_PHP_CS_FIXER_BINARY_PATH'), $container->getEnv('default::string:MAKER_PHP_CS_FIXER_CONFIG_PATH')))); - - $instance->setName('make:webhook'); - $instance->setDescription('Create a new Webhook'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_DoctrineHelperService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_DoctrineHelperService.php deleted file mode 100644 index 628e498..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_DoctrineHelperService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['maker.doctrine_helper'] = new \Symfony\Bundle\MakerBundle\Doctrine\DoctrineHelper('App\\Entity', ($container->services['doctrine'] ?? $container->load('getDoctrineService')), ['default' => [['App\\Entity', ($container->privates['doctrine.orm.default_attribute_metadata_driver'] ??= new \Doctrine\ORM\Mapping\Driver\AttributeDriver([(\dirname(__DIR__, 4).'/src/Entity')], true))]]]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_EntityClassGeneratorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_EntityClassGeneratorService.php deleted file mode 100644 index 5183409..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_EntityClassGeneratorService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['maker.entity_class_generator'] = new \Symfony\Bundle\MakerBundle\Doctrine\EntityClassGenerator(($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService')), ($container->privates['maker.doctrine_helper'] ?? $container->load('getMaker_DoctrineHelperService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileLinkFormatterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileLinkFormatterService.php deleted file mode 100644 index 87207d7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileLinkFormatterService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['maker.file_link_formatter'] = new \Symfony\Bundle\MakerBundle\Util\MakerFileLinkFormatter(($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE')))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileManagerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileManagerService.php deleted file mode 100644 index c4f866c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_FileManagerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['maker.file_manager'] = new \Symfony\Bundle\MakerBundle\FileManager(($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()), new \Symfony\Bundle\MakerBundle\Util\AutoloaderUtil(new \Symfony\Bundle\MakerBundle\Util\ComposerAutoloaderFinder('App')), ($container->privates['maker.file_link_formatter'] ?? $container->load('getMaker_FileLinkFormatterService')), \dirname(__DIR__, 4), NULL); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_GeneratorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_GeneratorService.php deleted file mode 100644 index bebaee7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_GeneratorService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['maker.generator'] = new \Symfony\Bundle\MakerBundle\Generator(($container->privates['maker.file_manager'] ?? $container->load('getMaker_FileManagerService')), 'App', NULL, new \Symfony\Bundle\MakerBundle\Util\TemplateComponentGenerator(true, false, 'App')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_Renderer_FormTypeRendererService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_Renderer_FormTypeRendererService.php deleted file mode 100644 index bb15c0f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMaker_Renderer_FormTypeRendererService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['maker.renderer.form_type_renderer'] = new \Symfony\Bundle\MakerBundle\Renderer\FormTypeRenderer(($container->privates['maker.generator'] ?? $container->load('getMaker_GeneratorService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getManagerRegistryAwareConnectionProviderService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getManagerRegistryAwareConnectionProviderService.php deleted file mode 100644 index 98c4efc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getManagerRegistryAwareConnectionProviderService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] = new \Doctrine\Bundle\DoctrineBundle\Dbal\ManagerRegistryAwareConnectionProvider(new \Doctrine\Bundle\DoctrineBundle\Registry($container, $container->parameters['doctrine.connections'], $container->parameters['doctrine.entity_managers'], 'default', 'default')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php deleted file mode 100644 index b4a2bb0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['messenger.bus.default.middleware.handle_message'] = $instance = new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(['App\\Message\\TriggerPriceImport' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.F4AMIZd'] ?? $container->load('get_Messenger_HandlerDescriptor_F4AMIZdService')); - yield 1 => ($container->privates['.messenger.handler_descriptor.F4AMIZd'] ?? $container->load('get_Messenger_HandlerDescriptor_F4AMIZdService')); - }, 2), 'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.QXXNQ9d'] ?? $container->load('get_Messenger_HandlerDescriptor_QXXNQ9dService')); - }, 1), 'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.kEzMhfs'] ?? $container->load('get_Messenger_HandlerDescriptor_KEzMhfsService')); - }, 1), 'Symfony\\Component\\HttpClient\\Messenger\\PingWebhookMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.6kVvRT.'] ?? $container->load('get_Messenger_HandlerDescriptor_6kVvRT_Service')); - }, 1), 'Symfony\\Component\\Messenger\\Message\\RedispatchMessage' => new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['.messenger.handler_descriptor.p4Qvabm'] ?? $container->load('get_Messenger_HandlerDescriptor_P4QvabmService')); - }, 1)]), false); - - $instance->setLogger(($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php deleted file mode 100644 index bd0341f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php +++ /dev/null @@ -1,44 +0,0 @@ -privates['.service_locator.B4dyivW'] ?? $container->load('get_ServiceLocator_B4dyivWService')); - - if (isset($container->privates['messenger.bus.default.middleware.send_message'])) { - return $container->privates['messenger.bus.default.middleware.send_message']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['messenger.bus.default.middleware.send_message'])) { - return $container->privates['messenger.bus.default.middleware.send_message']; - } - - $container->privates['messenger.bus.default.middleware.send_message'] = $instance = new \Symfony\Component\Messenger\Middleware\SendMessageMiddleware(new \Symfony\Component\Messenger\Transport\Sender\SendersLocator(['App\\Message\\TriggerPriceImport' => ['async']], $a), $b, true); - - $instance->setLogger(($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php deleted file mode 100644 index 541dd4d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['messenger.bus.default.middleware.traceable'] = new \Symfony\Component\Messenger\Middleware\TraceableMiddleware(($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true)), 'messenger.bus.default'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_DefaultBusService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_DefaultBusService.php deleted file mode 100644 index 7836657..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_DefaultBusService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['messenger.default_bus'] = new \Symfony\Component\Messenger\MessageBus(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['messenger.bus.default.middleware.traceable'] ?? $container->load('getMessenger_Bus_Default_Middleware_TraceableService')); - yield 1 => ($container->privates['messenger.bus.default.middleware.add_bus_name_stamp_middleware'] ??= new \Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware('messenger.bus.default')); - yield 2 => ($container->privates['messenger.middleware.reject_redelivered_message_middleware'] ??= new \Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware()); - yield 3 => ($container->privates['messenger.middleware.dispatch_after_current_bus'] ??= new \Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware()); - yield 4 => ($container->privates['messenger.middleware.failed_message_processing_middleware'] ??= new \Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware()); - yield 5 => ($container->privates['messenger.bus.default.middleware.send_message'] ?? $container->load('getMessenger_Bus_Default_Middleware_SendMessageService')); - yield 6 => ($container->privates['messenger.bus.default.middleware.handle_message'] ?? $container->load('getMessenger_Bus_Default_Middleware_HandleMessageService')); - }, 7)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php deleted file mode 100644 index 01bbf2f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['messenger.listener.stop_worker_on_restart_signal_listener'] = new \Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener(($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_ReceiverLocatorService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_ReceiverLocatorService.php deleted file mode 100644 index a6cc2ab..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_ReceiverLocatorService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['messenger.receiver_locator'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - 'messenger.transport.async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - ], [ - 'async' => '?', - 'messenger.transport.async' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php deleted file mode 100644 index 561e788..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['messenger.retry.multiplier_retry_strategy.async'] = new \Symfony\Component\Messenger\Retry\MultiplierRetryStrategy(3, 1000, 2, 0); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php deleted file mode 100644 index 872d97c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php +++ /dev/null @@ -1,40 +0,0 @@ -privates['.service_locator.B4dyivW'] ?? $container->load('get_ServiceLocator_B4dyivWService')); - - if (isset($container->privates['messenger.retry.send_failed_message_for_retry_listener'])) { - return $container->privates['messenger.retry.send_failed_message_for_retry_listener']; - } - $b = ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['messenger.retry.send_failed_message_for_retry_listener'])) { - return $container->privates['messenger.retry.send_failed_message_for_retry_listener']; - } - - return $container->privates['messenger.retry.send_failed_message_for_retry_listener'] = new \Symfony\Component\Messenger\EventListener\SendFailedMessageForRetryListener($a, new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.retry.multiplier_retry_strategy.async', 'getMessenger_Retry_MultiplierRetryStrategy_AsyncService', true], - ], [ - 'async' => '?', - ]), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService')), $b); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php deleted file mode 100644 index 6cf32cb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php +++ /dev/null @@ -1,36 +0,0 @@ -services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')); - - if (isset($container->privates['messenger.routable_message_bus'])) { - return $container->privates['messenger.routable_message_bus']; - } - - return $container->privates['messenger.routable_message_bus'] = new \Symfony\Component\Messenger\RoutableMessageBus(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'messenger.bus.default' => ['services', 'messenger.default_bus', 'getMessenger_DefaultBusService', true], - ], [ - 'messenger.bus.default' => '?', - ]), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php deleted file mode 100644 index 3c633cc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php +++ /dev/null @@ -1,35 +0,0 @@ -privates['messenger.transport.async'] = (new \Symfony\Component\Messenger\Transport\TransportFactory(new RewindableGenerator(function () use ($container) { - yield 0 => (new \Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory()); - yield 1 => ($container->privates['messenger.transport.sync.factory'] ?? $container->load('getMessenger_Transport_Sync_FactoryService')); - yield 2 => ($container->privates['messenger.transport.in_memory.factory'] ??= new \Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory()); - }, 3)))->createTransport($container->getEnv('MESSENGER_TRANSPORT_DSN'), ['stream' => 'messages', 'stream_max_entries' => 100, 'transport_name' => 'async'], new \Symfony\Component\Messenger\Transport\Serialization\PhpSerializer()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php deleted file mode 100644 index 77682ee..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php +++ /dev/null @@ -1,32 +0,0 @@ -privates['messenger.routable_message_bus'] ?? $container->load('getMessenger_RoutableMessageBusService')); - - if (isset($container->privates['messenger.transport.sync.factory'])) { - return $container->privates['messenger.transport.sync.factory']; - } - - return $container->privates['messenger.transport.sync.factory'] = new \Symfony\Component\Messenger\Transport\Sync\SyncTransportFactory($a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php deleted file mode 100644 index 74a5fd1..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['monolog.handler.deprecation'] = $instance = new \Monolog\Handler\StreamHandler((\dirname(__DIR__, 3).'/log/deprecations.log'), 'info', true, NULL, false); - - $instance->pushProcessor(($container->privates['monolog.processor.psr_log_message'] ??= new \Monolog\Processor\PsrLogMessageProcessor())); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_CacheService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_CacheService.php deleted file mode 100644 index 8d61c35..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_CacheService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['monolog.logger.cache'] = $instance = new \Monolog\Logger('cache'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php deleted file mode 100644 index 11c99eb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['monolog.logger.deprecation'] = $instance = new \Monolog\Logger('deprecation'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.deprecation'] ?? $container->load('getMonolog_Handler_DeprecationService'))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php deleted file mode 100644 index 79c0325..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['monolog.logger.messenger'] = $instance = new \Monolog\Logger('messenger'); - - $instance->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $instance->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $instance->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPriceTriggerControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPriceTriggerControllerService.php deleted file mode 100644 index d4b44b6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPriceTriggerControllerService.php +++ /dev/null @@ -1,45 +0,0 @@ -privates['.lock.default.store.TTEh_gT'] ?? $container->load('get_Lock_Default_Store_TTEhGTService'))); - - $b = new \Monolog\Logger('lock'); - $b->pushHandler(($container->privates['monolog.handler.stdout'] ?? self::getMonolog_Handler_StdoutService($container))); - $b->pushHandler(($container->privates['monolog.handler.main'] ?? self::getMonolog_Handler_MainService($container))); - $b->pushHandler(($container->privates['monolog.handler.file_log'] ?? self::getMonolog_Handler_FileLogService($container))); - - $a->setLogger($b); - - $container->services['App\\Controller\\Trigger\\PriceTriggerController'] = $instance = new \App\Controller\Trigger\PriceTriggerController(($container->services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')), new \Symfony\Component\RateLimiter\RateLimiterFactory(['policy' => 'fixed_window', 'limit' => 1, 'interval' => '10 seconds', 'id' => 'price_import'], new \Symfony\Component\RateLimiter\Storage\CacheStorage(($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))), $a), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container))); - - $instance->setContainer(($container->privates['.service_locator.O2p6Lk7'] ?? $container->load('get_ServiceLocator_O2p6Lk7Service'))->withContext('App\\Controller\\Trigger\\PriceTriggerController', $container)); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPricesControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPricesControllerService.php deleted file mode 100644 index 68a93b5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getPricesControllerService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['App\\Controller\\Api\\PricesController'] = $instance = new \App\Controller\Api\PricesController(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), ($container->privates['App\\Service\\Prices\\RedisReadService'] ?? $container->load('getRedisReadServiceService'))); - - $instance->setContainer(($container->privates['.service_locator.O2p6Lk7'] ?? $container->load('get_ServiceLocator_O2p6Lk7Service'))->withContext('App\\Controller\\Api\\PricesController', $container)); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedirectControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedirectControllerService.php deleted file mode 100644 index 9bb6ad4..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedirectControllerService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['router.request_context'] ?? self::getRouter_RequestContextService($container)); - - return $container->services['Symfony\\Bundle\\FrameworkBundle\\Controller\\RedirectController'] = new \Symfony\Bundle\FrameworkBundle\Controller\RedirectController(($container->services['router'] ?? self::getRouterService($container)), $a->getHttpPort(), $a->getHttpsPort()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommandService.php deleted file mode 100644 index cf555e0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\RedisImportCommand'] = $instance = new \App\Command\RedisImportCommand(($container->privates['App\\Service\\Prices\\RedisImportService'] ?? $container->load('getRedisImportServiceService')), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - - $instance->setName('mto:prices:import'); - $instance->setDescription('Importiert verschachtelte ORM-Datenstruktur in Redis.'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommand_LazyService.php deleted file mode 100644 index 89d4548..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\RedisImportCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:prices:import', [], 'Importiert verschachtelte ORM-Datenstruktur in Redis.', false, #[\Closure(name: 'App\\Command\\RedisImportCommand')] fn (): \App\Command\RedisImportCommand => ($container->privates['App\\Command\\RedisImportCommand'] ?? $container->load('getRedisImportCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportServiceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportServiceService.php deleted file mode 100644 index b27c8de..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisImportServiceService.php +++ /dev/null @@ -1,30 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1)); - $b = ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)); - - return $container->privates['App\\Service\\Prices\\RedisImportService'] = new \App\Service\Prices\RedisImportService(($container->privates['App\\Service\\Adapter\\RedisClientService'] ??= new \App\Service\Adapter\RedisClientService()), new \App\Service\Adapter\Orm($a, ($container->privates['http_client.uri_template'] ?? $container->load('getHttpClient_UriTemplateService')), $b), $b, $container->parameters['mitho.import.orm.shopIds'], 13, $a, ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommandService.php deleted file mode 100644 index a5751d0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\RedisReadCommand'] = $instance = new \App\Command\RedisReadCommand(($container->privates['App\\Service\\Prices\\RedisReadService'] ?? $container->load('getRedisReadServiceService'))); - - $instance->setName('mto:prices:read'); - $instance->setDescription('Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommand_LazyService.php deleted file mode 100644 index 77f5e80..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\RedisReadCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:prices:read', [], 'Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs', false, #[\Closure(name: 'App\\Command\\RedisReadCommand')] fn (): \App\Command\RedisReadCommand => ($container->privates['App\\Command\\RedisReadCommand'] ?? $container->load('getRedisReadCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadServiceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadServiceService.php deleted file mode 100644 index 09eda1e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRedisReadServiceService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['App\\Service\\Prices\\RedisReadService'] = new \App\Service\Prices\RedisReadService(($container->privates['App\\Service\\Adapter\\RedisClientService'] ??= new \App\Service\Adapter\RedisClientService())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouter_CacheWarmerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouter_CacheWarmerService.php deleted file mode 100644 index b258ea7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouter_CacheWarmerService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['router.cache_warmer'] = new \Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer((new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'router' => ['services', 'router', 'getRouterService', false], - ], [ - 'router' => '?', - ]))->withContext('router.cache_warmer', $container)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouting_LoaderService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouting_LoaderService.php deleted file mode 100644 index 81b62f2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRouting_LoaderService.php +++ /dev/null @@ -1,72 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1))); - $c = new \Symfony\Bundle\FrameworkBundle\Routing\AttributeRouteControllerLoader('dev'); - - $a->addLoader(new \Symfony\Component\Routing\Loader\XmlFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\YamlFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\PhpFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\GlobFileLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\DirectoryLoader($b, 'dev')); - $a->addLoader(new \Symfony\Component\Routing\Loader\ContainerLoader(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'kernel' => ['services', 'kernel', 'getKernelService', true], - 'security.route_loader.logout' => ['privates', 'security.route_loader.logout', 'getSecurity_RouteLoader_LogoutService', true], - ], [ - 'kernel' => 'App\\Kernel', - 'security.route_loader.logout' => 'Symfony\\Bundle\\SecurityBundle\\Routing\\LogoutRouteLoader', - ]), 'dev')); - $a->addLoader($c); - $a->addLoader(new \Symfony\Component\Routing\Loader\AttributeDirectoryLoader($b, $c)); - $a->addLoader(new \Symfony\Component\Routing\Loader\AttributeFileLoader($b, $c)); - $a->addLoader(new \Symfony\Component\Routing\Loader\Psr4DirectoryLoader($b)); - - return $container->services['routing.loader'] = new \Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader($a, ['utf8' => true], []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRunSqlCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRunSqlCommandService.php deleted file mode 100644 index d2243b6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getRunSqlCommandService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand'] = $instance = new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(($container->privates['Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider'] ?? $container->load('getManagerRegistryAwareConnectionProviderService'))); - - $instance->setName('dbal:run-sql'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecrets_VaultService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecrets_VaultService.php deleted file mode 100644 index fdd9262..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecrets_VaultService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['secrets.vault'] = new \Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault((\dirname(__DIR__, 4).'/config/secrets/'.$container->getEnv('string:default:kernel.environment:APP_RUNTIME_ENV')), \Symfony\Component\String\LazyString::fromCallable($container->getEnv(...), 'base64:default::SYMFONY_DECRYPTION_SECRET')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessListenerService.php deleted file mode 100644 index 7450556..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessListenerService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['debug.security.access.decision_manager'] ?? self::getDebug_Security_Access_DecisionManagerService($container)); - - if (isset($container->privates['security.access_listener'])) { - return $container->privates['security.access_listener']; - } - - return $container->privates['security.access_listener'] = new \Symfony\Component\Security\Http\Firewall\AccessListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), $a, ($container->privates['security.access_map'] ?? $container->load('getSecurity_AccessMapService')), false); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessMapService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessMapService.php deleted file mode 100644 index 8b5b1c5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_AccessMapService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['security.access_map'] = $instance = new \Symfony\Component\Security\Http\AccessMap(); - - $a = new \Symfony\Component\HttpFoundation\RequestMatcher\PathRequestMatcher('^/api/prices'); - - $instance->add(new \Symfony\Component\HttpFoundation\ChainRequestMatcher([$a, new \Symfony\Component\HttpFoundation\RequestMatcher\IpsRequestMatcher([$container->getEnv('MTO_ALLOWED_API_IPS')])]), ['PUBLIC_ACCESS'], NULL); - $instance->add(new \Symfony\Component\HttpFoundation\ChainRequestMatcher([$a]), ['ROLE_NO_ACCESS'], NULL); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php deleted file mode 100644 index d7bf6db..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['security.authentication.session_strategy'] = new \Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy('migrate', ($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_ChannelListenerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_ChannelListenerService.php deleted file mode 100644 index 90c605d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_ChannelListenerService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['router.request_context'] ?? self::getRouter_RequestContextService($container)); - - return $container->privates['security.channel_listener'] = new \Symfony\Component\Security\Http\Firewall\ChannelListener(($container->privates['security.access_map'] ?? $container->load('getSecurity_AccessMapService')), ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), $a->getHttpPort(), $a->getHttpsPort()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_DebugFirewallService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_DebugFirewallService.php deleted file mode 100644 index 52ddc54..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_DebugFirewallService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['security.command.debug_firewall'] = $instance = new \Symfony\Bundle\SecurityBundle\Command\DebugFirewallCommand($container->parameters['security.firewalls'], ($container->privates['.service_locator.zJyh7qS'] ?? self::get_ServiceLocator_ZJyh7qSService($container)), ($container->privates['.service_locator.sPNPNE7'] ?? $container->load('get_ServiceLocator_SPNPNE7Service')), ['dev' => [], 'main' => []], false); - - $instance->setName('debug:firewall'); - $instance->setDescription('Display information about your security firewall(s)'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_UserPasswordHashService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_UserPasswordHashService.php deleted file mode 100644 index 48bf7ef..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Command_UserPasswordHashService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['security.command.user_password_hash'] = $instance = new \Symfony\Component\PasswordHasher\Command\UserPasswordHashCommand(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService')), ['Symfony\\Component\\Security\\Core\\User\\PasswordAuthenticatedUserInterface']); - - $instance->setName('security:hash-password'); - $instance->setDescription('Hash a user password'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php deleted file mode 100644 index a753674..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['security.csrf.token_manager'] = new \Symfony\Component\Security\Csrf\CsrfTokenManager(new \Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator(), ($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService')), ($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php deleted file mode 100644 index 0bcb07e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.csrf.token_storage'] = new \Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php deleted file mode 100644 index a73c237..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['security.firewall.map.context.dev'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['security.channel_listener'] ?? $container->load('getSecurity_ChannelListenerService')); - yield 1 => ($container->privates['security.context_listener.0'] ?? self::getSecurity_ContextListener_0Service($container)); - yield 2 => ($container->privates['debug.security.firewall.authenticator.dev'] ?? $container->load('getDebug_Security_Firewall_Authenticator_DevService')); - yield 3 => ($container->privates['security.access_listener'] ?? $container->load('getSecurity_AccessListenerService')); - }, 4), new \Symfony\Component\Security\Http\Firewall\ExceptionListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), ($container->privates['security.http_utils'] ?? $container->load('getSecurity_HttpUtilsService')), 'dev', NULL, NULL, NULL, ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), false), NULL, new \Symfony\Bundle\SecurityBundle\Security\FirewallConfig('dev', 'security.user_checker', NULL, true, false, NULL, 'dev', NULL, NULL, NULL, [], NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php deleted file mode 100644 index 645860d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php +++ /dev/null @@ -1,33 +0,0 @@ -privates['security.firewall.map.context.main'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(new RewindableGenerator(function () use ($container) { - yield 0 => ($container->privates['security.channel_listener'] ?? $container->load('getSecurity_ChannelListenerService')); - yield 1 => ($container->privates['security.context_listener.1'] ?? self::getSecurity_ContextListener_1Service($container)); - yield 2 => ($container->privates['debug.security.firewall.authenticator.main'] ?? $container->load('getDebug_Security_Firewall_Authenticator_MainService')); - yield 3 => ($container->privates['security.access_listener'] ?? $container->load('getSecurity_AccessListenerService')); - }, 4), new \Symfony\Component\Security\Http\Firewall\ExceptionListener(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container)), ($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver()), ($container->privates['security.http_utils'] ?? $container->load('getSecurity_HttpUtilsService')), 'main', NULL, NULL, NULL, ($container->privates['monolog.logger.security'] ?? self::getMonolog_Logger_SecurityService($container)), false), NULL, new \Symfony\Bundle\SecurityBundle\Security\FirewallConfig('main', 'security.user_checker', NULL, true, false, NULL, 'main', NULL, NULL, NULL, [], NULL, NULL)); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_HttpUtilsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_HttpUtilsService.php deleted file mode 100644 index 4932003..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_HttpUtilsService.php +++ /dev/null @@ -1,27 +0,0 @@ -services['router'] ?? self::getRouterService($container)); - - return $container->privates['security.http_utils'] = new \Symfony\Component\Security\Http\HttpUtils($a, $a, '{^https?://%s$}i', '{^https://%s$}i'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php deleted file mode 100644 index 264c0d9..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.check_authenticator_credentials'] = new \Symfony\Component\Security\Http\EventListener\CheckCredentialsListener(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php deleted file mode 100644 index e25f0c7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.csrf_protection'] = new \Symfony\Component\Security\Http\EventListener\CsrfProtectionListener(($container->privates['security.csrf.token_manager'] ?? $container->load('getSecurity_Csrf_TokenManagerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php deleted file mode 100644 index f50e01d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.password_migrating'] = new \Symfony\Component\Security\Http\EventListener\PasswordMigratingListener(($container->privates['security.password_hasher_factory'] ?? $container->load('getSecurity_PasswordHasherFactoryService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php deleted file mode 100644 index fa4c1da..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.session.dev'] = new \Symfony\Component\Security\Http\EventListener\SessionStrategyListener(($container->privates['security.authentication.session_strategy'] ?? $container->load('getSecurity_Authentication_SessionStrategyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php deleted file mode 100644 index 0836b86..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.listener.session.main'] = new \Symfony\Component\Security\Http\EventListener\SessionStrategyListener(($container->privates['security.authentication.session_strategy'] ?? $container->load('getSecurity_Authentication_SessionStrategyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php deleted file mode 100644 index e3414a2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.listener.user_checker.dev'] = new \Symfony\Component\Security\Http\EventListener\UserCheckerListener(($container->privates['security.user_checker'] ??= new \Symfony\Component\Security\Core\User\InMemoryUserChecker())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php deleted file mode 100644 index 9fa9b12..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['security.listener.user_checker.main'] = new \Symfony\Component\Security\Http\EventListener\UserCheckerListener(($container->privates['security.user_checker'] ??= new \Symfony\Component\Security\Core\User\InMemoryUserChecker())); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php deleted file mode 100644 index 77a645d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.logout.listener.csrf_token_clearing'] = new \Symfony\Component\Security\Http\EventListener\CsrfTokenClearingLogoutListener(($container->privates['security.csrf.token_storage'] ?? $container->load('getSecurity_Csrf_TokenStorageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php deleted file mode 100644 index 0f9be50..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['security.password_hasher_factory'] = new \Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory(['Symfony\\Component\\Security\\Core\\User\\PasswordAuthenticatedUserInterface' => ['algorithm' => 'auto', 'migrate_from' => [], 'hash_algorithm' => 'sha512', 'key_length' => 40, 'ignore_case' => false, 'encode_as_base64' => true, 'iterations' => 5000, 'cost' => NULL, 'memory_cost' => NULL, 'time_cost' => NULL]]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php deleted file mode 100644 index a24b67b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['security.route_loader.logout'] = new \Symfony\Bundle\SecurityBundle\Routing\LogoutRouteLoader([], 'security.logout_uris'); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getServicesResetterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getServicesResetterService.php deleted file mode 100644 index da07bce..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getServicesResetterService.php +++ /dev/null @@ -1,110 +0,0 @@ -services['services_resetter'] = new \Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter(new RewindableGenerator(function () use ($container) { - if (isset($container->services['request_stack'])) { - yield 'request_stack' => ($container->services['request_stack'] ?? null); - } - if (isset($container->services['cache.app'])) { - yield 'cache.app' => ($container->services['cache.app'] ?? null); - } - if (isset($container->services['cache.system'])) { - yield 'cache.system' => ($container->services['cache.system'] ?? null); - } - if (false) { - yield 'cache.validator' => null; - } - if (false) { - yield 'cache.serializer' => null; - } - if (false) { - yield 'cache.annotations' => null; - } - if (false) { - yield 'cache.property_info' => null; - } - if (isset($container->privates['cache.messenger.restart_workers_signal'])) { - yield 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? null); - } - if (isset($container->privates['http_client.transport'])) { - yield 'http_client.transport' => ($container->privates['http_client.transport'] ?? null); - } - if (isset($container->privates['http_client.uri_template'])) { - yield 'http_client' => ($container->privates['http_client.uri_template'] ?? null); - } - if (isset($container->services['debug.stopwatch'])) { - yield 'debug.stopwatch' => ($container->services['debug.stopwatch'] ?? null); - } - if (isset($container->services['event_dispatcher'])) { - yield 'debug.event_dispatcher' => ($container->services['event_dispatcher'] ?? null); - } - if (false) { - yield 'debug.log_processor' => null; - } - if (isset($container->privates['cache.rate_limiter'])) { - yield 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? null); - } - if (isset($container->privates['session_listener'])) { - yield 'session_listener' => ($container->privates['session_listener'] ?? null); - } - if (isset($container->privates['messenger.transport.in_memory.factory'])) { - yield 'messenger.transport.in_memory.factory' => ($container->privates['messenger.transport.in_memory.factory'] ?? null); - } - if (isset($container->privates['security.token_storage'])) { - yield 'security.token_storage' => ($container->privates['security.token_storage'] ?? null); - } - if (false) { - yield 'cache.security_expression_language' => null; - } - if (isset($container->services['cache.security_is_granted_attribute_expression_language'])) { - yield 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? null); - } - if (isset($container->privates['debug.security.firewall'])) { - yield 'debug.security.firewall' => ($container->privates['debug.security.firewall'] ?? null); - } - if (isset($container->privates['debug.security.firewall.authenticator.dev'])) { - yield 'debug.security.firewall.authenticator.dev' => ($container->privates['debug.security.firewall.authenticator.dev'] ?? null); - } - if (isset($container->privates['debug.security.firewall.authenticator.main'])) { - yield 'debug.security.firewall.authenticator.main' => ($container->privates['debug.security.firewall.authenticator.main'] ?? null); - } - if (isset($container->services['doctrine'])) { - yield 'doctrine' => ($container->services['doctrine'] ?? null); - } - if (isset($container->privates['doctrine.debug_data_holder'])) { - yield 'doctrine.debug_data_holder' => ($container->privates['doctrine.debug_data_holder'] ?? null); - } - if (isset($container->privates['monolog.handler.file_log'])) { - yield 'monolog.handler.file_log' => ($container->privates['monolog.handler.file_log'] ?? null); - } - if (isset($container->privates['monolog.handler.main'])) { - yield 'monolog.handler.main' => ($container->privates['monolog.handler.main'] ?? null); - } - if (isset($container->privates['monolog.handler.deprecation'])) { - yield 'monolog.handler.deprecation' => ($container->privates['monolog.handler.deprecation'] ?? null); - } - if (isset($container->privates['monolog.handler.stdout'])) { - yield 'monolog.handler.stdout' => ($container->privates['monolog.handler.stdout'] ?? null); - } - }, fn () => 0 + (int) (isset($container->services['request_stack'])) + (int) (isset($container->services['cache.app'])) + (int) (isset($container->services['cache.system'])) + (int) (false) + (int) (false) + (int) (false) + (int) (false) + (int) (isset($container->privates['cache.messenger.restart_workers_signal'])) + (int) (isset($container->privates['http_client.transport'])) + (int) (isset($container->privates['http_client.uri_template'])) + (int) (isset($container->services['debug.stopwatch'])) + (int) (isset($container->services['event_dispatcher'])) + (int) (false) + (int) (isset($container->privates['cache.rate_limiter'])) + (int) (isset($container->privates['session_listener'])) + (int) (isset($container->privates['messenger.transport.in_memory.factory'])) + (int) (isset($container->privates['security.token_storage'])) + (int) (false) + (int) (isset($container->services['cache.security_is_granted_attribute_expression_language'])) + (int) (isset($container->privates['debug.security.firewall'])) + (int) (isset($container->privates['debug.security.firewall.authenticator.dev'])) + (int) (isset($container->privates['debug.security.firewall.authenticator.main'])) + (int) (isset($container->services['doctrine'])) + (int) (isset($container->privates['doctrine.debug_data_holder'])) + (int) (isset($container->privates['monolog.handler.file_log'])) + (int) (isset($container->privates['monolog.handler.main'])) + (int) (isset($container->privates['monolog.handler.deprecation'])) + (int) (isset($container->privates['monolog.handler.stdout']))), ['request_stack' => ['?resetRequestFormats'], 'cache.app' => ['reset'], 'cache.system' => ['reset'], 'cache.validator' => ['reset'], 'cache.serializer' => ['reset'], 'cache.annotations' => ['reset'], 'cache.property_info' => ['reset'], 'cache.messenger.restart_workers_signal' => ['reset'], 'http_client.transport' => ['?reset'], 'http_client' => ['?reset'], 'debug.stopwatch' => ['reset'], 'debug.event_dispatcher' => ['reset'], 'debug.log_processor' => ['reset'], 'cache.rate_limiter' => ['reset'], 'session_listener' => ['reset'], 'messenger.transport.in_memory.factory' => ['reset'], 'security.token_storage' => ['disableUsageTracking', 'setToken'], 'cache.security_expression_language' => ['reset'], 'cache.security_is_granted_attribute_expression_language' => ['reset'], 'debug.security.firewall' => ['reset'], 'debug.security.firewall.authenticator.dev' => ['reset'], 'debug.security.firewall.authenticator.main' => ['reset'], 'doctrine' => ['reset'], 'doctrine.debug_data_holder' => ['reset'], 'monolog.handler.file_log' => ['reset'], 'monolog.handler.main' => ['reset'], 'monolog.handler.deprecation' => ['reset'], 'monolog.handler.stdout' => ['reset']]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_FactoryService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_FactoryService.php deleted file mode 100644 index 9555bd5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_FactoryService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['session_listener'] ?? self::getSessionListenerService($container)); - - if (isset($container->privates['session.factory'])) { - return $container->privates['session.factory']; - } - - return $container->privates['session.factory'] = new \Symfony\Component\HttpFoundation\Session\SessionFactory(($container->services['request_stack'] ??= new \Symfony\Component\HttpFoundation\RequestStack()), new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorageFactory($container->parameters['session.storage.options'], ($container->privates['session.handler.native'] ?? $container->load('getSession_Handler_NativeService')), new \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag('_sf2_meta', 0), true), [$a, 'onSessionUsage']); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_Handler_NativeService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_Handler_NativeService.php deleted file mode 100644 index f442a4b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getSession_Handler_NativeService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['session.handler.native'] = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler(new \SessionHandler()); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTemplateControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTemplateControllerService.php deleted file mode 100644 index d20a5e0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTemplateControllerService.php +++ /dev/null @@ -1,25 +0,0 @@ -services['Symfony\\Bundle\\FrameworkBundle\\Controller\\TemplateController'] = new \Symfony\Bundle\FrameworkBundle\Controller\TemplateController(NULL); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php deleted file mode 100644 index c5d438e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php +++ /dev/null @@ -1,25 +0,0 @@ -services['App\\MessageHandler\\TriggerPriceImportHandler'] = new \App\MessageHandler\TriggerPriceImportHandler(($container->privates['App\\Service\\Prices\\RedisImportService'] ?? $container->load('getRedisImportServiceService')), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommandService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommandService.php deleted file mode 100644 index b50a3ad..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommandService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['App\\Command\\TriggerTestCommand'] = $instance = new \App\Command\TriggerTestCommand(($container->services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService'))); - - $instance->setName('mto:test:trigger-import'); - $instance->setDescription('Dispatches a TriggerPriceImport message for testing'); - - return $instance; - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommand_LazyService.php deleted file mode 100644 index ca6ef80..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/getTriggerTestCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.App\\Command\\TriggerTestCommand.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('mto:test:trigger-import', [], 'Dispatches a TriggerPriceImport message for testing', false, #[\Closure(name: 'App\\Command\\TriggerTestCommand')] fn (): \App\Command\TriggerTestCommand => ($container->privates['App\\Command\\TriggerTestCommand'] ?? $container->load('getTriggerTestCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Cache_RateLimiter_TaggableService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Cache_RateLimiter_TaggableService.php deleted file mode 100644 index c32ec86..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Cache_RateLimiter_TaggableService.php +++ /dev/null @@ -1,36 +0,0 @@ -privates['.cache.rate_limiter.taggable'] = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_About_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_About_LazyService.php deleted file mode 100644 index 736b026..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_About_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.about.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('about', [], 'Display information about the current project', false, #[\Closure(name: 'console.command.about', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\AboutCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\AboutCommand => ($container->privates['console.command.about'] ?? $container->load('getConsole_Command_AboutService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_AssetsInstall_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_AssetsInstall_LazyService.php deleted file mode 100644 index 9bd048d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_AssetsInstall_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.assets_install.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('assets:install', [], 'Install bundle\'s web assets under a public directory', false, #[\Closure(name: 'console.command.assets_install', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\AssetsInstallCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand => ($container->privates['console.command.assets_install'] ?? $container->load('getConsole_Command_AssetsInstallService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheClear_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheClear_LazyService.php deleted file mode 100644 index 28ae9c5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheClear_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_clear.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:clear', [], 'Clear the cache', false, #[\Closure(name: 'console.command.cache_clear', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CacheClearCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand => ($container->privates['console.command.cache_clear'] ?? $container->load('getConsole_Command_CacheClearService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolClear_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolClear_LazyService.php deleted file mode 100644 index b300f86..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolClear_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_clear.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:clear', [], 'Clear cache pools', false, #[\Closure(name: 'console.command.cache_pool_clear', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolClearCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand => ($container->privates['console.command.cache_pool_clear'] ?? $container->load('getConsole_Command_CachePoolClearService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolDelete_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolDelete_LazyService.php deleted file mode 100644 index 59ae9cc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolDelete_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_delete.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:delete', [], 'Delete an item from a cache pool', false, #[\Closure(name: 'console.command.cache_pool_delete', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolDeleteCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand => ($container->privates['console.command.cache_pool_delete'] ?? $container->load('getConsole_Command_CachePoolDeleteService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolInvalidateTags_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolInvalidateTags_LazyService.php deleted file mode 100644 index 9e39cc2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolInvalidateTags_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_invalidate_tags.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:invalidate-tags', [], 'Invalidate cache tags for all or a specific pool', false, #[\Closure(name: 'console.command.cache_pool_invalidate_tags', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolInvalidateTagsCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand => ($container->privates['console.command.cache_pool_invalidate_tags'] ?? $container->load('getConsole_Command_CachePoolInvalidateTagsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolList_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolList_LazyService.php deleted file mode 100644 index 3987b58..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolList_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_list.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:list', [], 'List available cache pools', false, #[\Closure(name: 'console.command.cache_pool_list', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolListCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand => ($container->privates['console.command.cache_pool_list'] ?? $container->load('getConsole_Command_CachePoolListService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolPrune_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolPrune_LazyService.php deleted file mode 100644 index 8fe7679..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CachePoolPrune_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_pool_prune.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:pool:prune', [], 'Prune cache pools', false, #[\Closure(name: 'console.command.cache_pool_prune', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CachePoolPruneCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand => ($container->privates['console.command.cache_pool_prune'] ?? $container->load('getConsole_Command_CachePoolPruneService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheWarmup_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheWarmup_LazyService.php deleted file mode 100644 index da5bf40..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_CacheWarmup_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.cache_warmup.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('cache:warmup', [], 'Warm up an empty cache', false, #[\Closure(name: 'console.command.cache_warmup', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\CacheWarmupCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand => ($container->privates['console.command.cache_warmup'] ?? $container->load('getConsole_Command_CacheWarmupService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDebug_LazyService.php deleted file mode 100644 index 54aa5df..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.config_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:config', [], 'Dump the current configuration for an extension', false, #[\Closure(name: 'console.command.config_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ConfigDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand => ($container->privates['console.command.config_debug'] ?? $container->load('getConsole_Command_ConfigDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDumpReference_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDumpReference_LazyService.php deleted file mode 100644 index 59cad15..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ConfigDumpReference_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.config_dump_reference.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('config:dump-reference', [], 'Dump the default configuration for an extension', false, #[\Closure(name: 'console.command.config_dump_reference', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ConfigDumpReferenceCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand => ($container->privates['console.command.config_dump_reference'] ?? $container->load('getConsole_Command_ConfigDumpReferenceService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerDebug_LazyService.php deleted file mode 100644 index be3108a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.container_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:container', [], 'Display current services for an application', false, #[\Closure(name: 'console.command.container_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ContainerDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand => ($container->privates['console.command.container_debug'] ?? $container->load('getConsole_Command_ContainerDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerLint_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerLint_LazyService.php deleted file mode 100644 index d5d1e25..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_ContainerLint_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.container_lint.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('lint:container', [], 'Ensure that arguments injected into services match type declarations', false, #[\Closure(name: 'console.command.container_lint', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\ContainerLintCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand => ($container->privates['console.command.container_lint'] ?? $container->load('getConsole_Command_ContainerLintService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DebugAutowiring_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DebugAutowiring_LazyService.php deleted file mode 100644 index 7afb7fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DebugAutowiring_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.debug_autowiring.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:autowiring', [], 'List classes/interfaces you can use for autowiring', false, #[\Closure(name: 'console.command.debug_autowiring', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\DebugAutowiringCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand => ($container->privates['console.command.debug_autowiring'] ?? $container->load('getConsole_Command_DebugAutowiringService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DotenvDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DotenvDebug_LazyService.php deleted file mode 100644 index 647899a..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_DotenvDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.dotenv_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:dotenv', [], 'List all dotenv files with variables and values', false, #[\Closure(name: 'console.command.dotenv_debug', class: 'Symfony\\Component\\Dotenv\\Command\\DebugCommand')] fn (): \Symfony\Component\Dotenv\Command\DebugCommand => ($container->privates['console.command.dotenv_debug'] ?? $container->load('getConsole_Command_DotenvDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_EventDispatcherDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_EventDispatcherDebug_LazyService.php deleted file mode 100644 index cf26495..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_EventDispatcherDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.event_dispatcher_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:event-dispatcher', [], 'Display configured listeners for an application', false, #[\Closure(name: 'console.command.event_dispatcher_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\EventDispatcherDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand => ($container->privates['console.command.event_dispatcher_debug'] ?? $container->load('getConsole_Command_EventDispatcherDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerConsumeMessages_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerConsumeMessages_LazyService.php deleted file mode 100644 index a2d3f00..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerConsumeMessages_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_consume_messages.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:consume', [], 'Consume messages', false, #[\Closure(name: 'console.command.messenger_consume_messages', class: 'Symfony\\Component\\Messenger\\Command\\ConsumeMessagesCommand')] fn (): \Symfony\Component\Messenger\Command\ConsumeMessagesCommand => ($container->privates['console.command.messenger_consume_messages'] ?? $container->load('getConsole_Command_MessengerConsumeMessagesService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerDebug_LazyService.php deleted file mode 100644 index ef73b50..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:messenger', [], 'List messages you can dispatch using the message buses', false, #[\Closure(name: 'console.command.messenger_debug', class: 'Symfony\\Component\\Messenger\\Command\\DebugCommand')] fn (): \Symfony\Component\Messenger\Command\DebugCommand => ($container->privates['console.command.messenger_debug'] ?? $container->load('getConsole_Command_MessengerDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerSetupTransports_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerSetupTransports_LazyService.php deleted file mode 100644 index 31c51ce..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerSetupTransports_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_setup_transports.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:setup-transports', [], 'Prepare the required infrastructure for the transport', false, #[\Closure(name: 'console.command.messenger_setup_transports', class: 'Symfony\\Component\\Messenger\\Command\\SetupTransportsCommand')] fn (): \Symfony\Component\Messenger\Command\SetupTransportsCommand => ($container->privates['console.command.messenger_setup_transports'] ?? $container->load('getConsole_Command_MessengerSetupTransportsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStats_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStats_LazyService.php deleted file mode 100644 index 4ff42f0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStats_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_stats.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:stats', [], 'Show the message count for one or more transports', false, #[\Closure(name: 'console.command.messenger_stats', class: 'Symfony\\Component\\Messenger\\Command\\StatsCommand')] fn (): \Symfony\Component\Messenger\Command\StatsCommand => ($container->privates['console.command.messenger_stats'] ?? $container->load('getConsole_Command_MessengerStatsService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStopWorkers_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStopWorkers_LazyService.php deleted file mode 100644 index 8e5521b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_MessengerStopWorkers_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.messenger_stop_workers.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('messenger:stop-workers', [], 'Stop workers after their current message', false, #[\Closure(name: 'console.command.messenger_stop_workers', class: 'Symfony\\Component\\Messenger\\Command\\StopWorkersCommand')] fn (): \Symfony\Component\Messenger\Command\StopWorkersCommand => ($container->privates['console.command.messenger_stop_workers'] ?? $container->load('getConsole_Command_MessengerStopWorkersService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterDebug_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterDebug_LazyService.php deleted file mode 100644 index 25dd8a6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterDebug_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.router_debug.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:router', [], 'Display current routes for an application', false, #[\Closure(name: 'console.command.router_debug', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\RouterDebugCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand => ($container->privates['console.command.router_debug'] ?? $container->load('getConsole_Command_RouterDebugService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterMatch_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterMatch_LazyService.php deleted file mode 100644 index fd21804..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_RouterMatch_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.router_match.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('router:match', [], 'Help debug routes by simulating a path info match', false, #[\Closure(name: 'console.command.router_match', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\RouterMatchCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand => ($container->privates['console.command.router_match'] ?? $container->load('getConsole_Command_RouterMatchService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsDecryptToLocal_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsDecryptToLocal_LazyService.php deleted file mode 100644 index da52017..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsDecryptToLocal_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_decrypt_to_local.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:decrypt-to-local', [], 'Decrypt all secrets and stores them in the local vault', false, #[\Closure(name: 'console.command.secrets_decrypt_to_local', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsDecryptToLocalCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsDecryptToLocalCommand => ($container->privates['console.command.secrets_decrypt_to_local'] ?? $container->load('getConsole_Command_SecretsDecryptToLocalService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsEncryptFromLocal_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsEncryptFromLocal_LazyService.php deleted file mode 100644 index cf9f579..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsEncryptFromLocal_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_encrypt_from_local.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:encrypt-from-local', [], 'Encrypt all local secrets to the vault', false, #[\Closure(name: 'console.command.secrets_encrypt_from_local', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsEncryptFromLocalCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsEncryptFromLocalCommand => ($container->privates['console.command.secrets_encrypt_from_local'] ?? $container->load('getConsole_Command_SecretsEncryptFromLocalService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsGenerateKey_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsGenerateKey_LazyService.php deleted file mode 100644 index 4f6b747..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsGenerateKey_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_generate_key.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:generate-keys', [], 'Generate new encryption keys', false, #[\Closure(name: 'console.command.secrets_generate_key', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsGenerateKeysCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsGenerateKeysCommand => ($container->privates['console.command.secrets_generate_key'] ?? $container->load('getConsole_Command_SecretsGenerateKeyService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsList_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsList_LazyService.php deleted file mode 100644 index d739d22..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsList_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_list.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:list', [], 'List all secrets', false, #[\Closure(name: 'console.command.secrets_list', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsListCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsListCommand => ($container->privates['console.command.secrets_list'] ?? $container->load('getConsole_Command_SecretsListService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsRemove_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsRemove_LazyService.php deleted file mode 100644 index 0c9eb9c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsRemove_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_remove.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:remove', [], 'Remove a secret from the vault', false, #[\Closure(name: 'console.command.secrets_remove', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsRemoveCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsRemoveCommand => ($container->privates['console.command.secrets_remove'] ?? $container->load('getConsole_Command_SecretsRemoveService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsSet_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsSet_LazyService.php deleted file mode 100644 index 2703685..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_SecretsSet_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.secrets_set.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('secrets:set', [], 'Set a secret in the vault', false, #[\Closure(name: 'console.command.secrets_set', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\SecretsSetCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\SecretsSetCommand => ($container->privates['console.command.secrets_set'] ?? $container->load('getConsole_Command_SecretsSetService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_YamlLint_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_YamlLint_LazyService.php deleted file mode 100644 index 08bf14c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Console_Command_YamlLint_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.console.command.yaml_lint.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('lint:yaml', [], 'Lint a YAML file and outputs encountered errors', false, #[\Closure(name: 'console.command.yaml_lint', class: 'Symfony\\Bundle\\FrameworkBundle\\Command\\YamlLintCommand')] fn (): \Symfony\Bundle\FrameworkBundle\Command\YamlLintCommand => ($container->privates['console.command.yaml_lint'] ?? $container->load('getConsole_Command_YamlLintService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php deleted file mode 100644 index 54d7fc3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php +++ /dev/null @@ -1,34 +0,0 @@ -services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['.debug.security.voter.security.access.authenticated_voter'])) { - return $container->privates['.debug.security.voter.security.access.authenticated_voter']; - } - - return $container->privates['.debug.security.voter.security.access.authenticated_voter'] = new \Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter(new \Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter(($container->privates['security.authentication.trust_resolver'] ??= new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver())), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php deleted file mode 100644 index 1d417e6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php +++ /dev/null @@ -1,37 +0,0 @@ -services['event_dispatcher'] ?? self::getEventDispatcherService($container)); - - if (isset($container->privates['.debug.security.voter.security.access.role_hierarchy_voter'])) { - return $container->privates['.debug.security.voter.security.access.role_hierarchy_voter']; - } - - return $container->privates['.debug.security.voter.security.access.role_hierarchy_voter'] = new \Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter(new \Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter(new \Symfony\Component\Security\Core\Role\RoleHierarchy($container->parameters['security.role_hierarchy.roles'])), $a); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php deleted file mode 100644 index 4111adf..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.backed_enum_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php deleted file mode 100644 index 2509ec3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.datetime'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\DateTimeValueResolver(new \Symfony\Component\Clock\Clock()), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php deleted file mode 100644 index 6f4af3f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.default'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php deleted file mode 100644 index 643c0d0..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.not_tagged_controller'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\NotTaggedControllerValueResolver(($container->privates['.service_locator.HBdvAhp'] ?? $container->load('get_ServiceLocator_HBdvAhpService'))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php deleted file mode 100644 index 19571bd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.query_parameter_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php deleted file mode 100644 index 30e7535..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request_attribute'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php deleted file mode 100644 index 286a3b7..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request_payload'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(throw new RuntimeException('You can neither use "#[MapRequestPayload]" nor "#[MapQueryString]" since the Serializer component is not installed. Try running "composer require symfony/serializer-pack".'), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php deleted file mode 100644 index a777c44..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.request'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php deleted file mode 100644 index 329d47b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.service'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver(($container->privates['.service_locator.HBdvAhp'] ?? $container->load('get_ServiceLocator_HBdvAhpService'))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php deleted file mode 100644 index 9915c1e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.session'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php deleted file mode 100644 index 6de7fdf..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.uid'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php deleted file mode 100644 index 734a13c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.argument_resolver.variadic'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver(), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php deleted file mode 100644 index 4ce4cdb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php +++ /dev/null @@ -1,30 +0,0 @@ -privates['.debug.value_resolver.doctrine.orm.entity_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver(($container->services['doctrine'] ?? $container->load('getDoctrineService')), NULL, new \Symfony\Bridge\Doctrine\Attribute\MapEntity(NULL, NULL, NULL, [], NULL, NULL, NULL, NULL, false), []), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php deleted file mode 100644 index 7d9c296..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.security.security_token_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\Security\Http\Controller\SecurityTokenValueResolver(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php deleted file mode 100644 index 2d35e97..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php +++ /dev/null @@ -1,28 +0,0 @@ -privates['.debug.value_resolver.security.user_value_resolver'] = new \Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver(new \Symfony\Component\Security\Http\Controller\UserValueResolver(($container->privates['security.token_storage'] ?? self::getSecurity_TokenStorageService($container))), ($container->services['debug.stopwatch'] ??= new \Symfony\Component\Stopwatch\Stopwatch(true))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_CurrentCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_CurrentCommand_LazyService.php deleted file mode 100644 index 9610985..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_CurrentCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.current_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:current', [], 'Outputs the current version', false, #[\Closure(name: 'doctrine_migrations.current_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\CurrentCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\CurrentCommand => ($container->privates['doctrine_migrations.current_command'] ?? $container->load('getDoctrineMigrations_CurrentCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DiffCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DiffCommand_LazyService.php deleted file mode 100644 index 98e1ee6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DiffCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.diff_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:diff', [], 'Generate a migration by comparing your current database to your mapping information.', false, #[\Closure(name: 'doctrine_migrations.diff_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\DiffCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\DiffCommand => ($container->privates['doctrine_migrations.diff_command'] ?? $container->load('getDoctrineMigrations_DiffCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php deleted file mode 100644 index 958464b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_DumpSchemaCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.dump_schema_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:dump-schema', [], 'Dump the schema for your database to a migration.', false, #[\Closure(name: 'doctrine_migrations.dump_schema_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\DumpSchemaCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand => ($container->privates['doctrine_migrations.dump_schema_command'] ?? $container->load('getDoctrineMigrations_DumpSchemaCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_ExecuteCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_ExecuteCommand_LazyService.php deleted file mode 100644 index 0d6a2c5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_ExecuteCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.execute_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:execute', [], 'Execute one or more migration versions up or down manually.', false, #[\Closure(name: 'doctrine_migrations.execute_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\ExecuteCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\ExecuteCommand => ($container->privates['doctrine_migrations.execute_command'] ?? $container->load('getDoctrineMigrations_ExecuteCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_GenerateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_GenerateCommand_LazyService.php deleted file mode 100644 index 41fc35e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_GenerateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.generate_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:generate', [], 'Generate a blank migration class.', false, #[\Closure(name: 'doctrine_migrations.generate_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\GenerateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\GenerateCommand => ($container->privates['doctrine_migrations.generate_command'] ?? $container->load('getDoctrineMigrations_GenerateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_LatestCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_LatestCommand_LazyService.php deleted file mode 100644 index 5c7c952..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_LatestCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.latest_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:latest', [], 'Outputs the latest version', false, #[\Closure(name: 'doctrine_migrations.latest_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\LatestCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\LatestCommand => ($container->privates['doctrine_migrations.latest_command'] ?? $container->load('getDoctrineMigrations_LatestCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_MigrateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_MigrateCommand_LazyService.php deleted file mode 100644 index e876c07..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_MigrateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.migrate_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:migrate', [], 'Execute a migration to a specified version or the latest available version.', false, #[\Closure(name: 'doctrine_migrations.migrate_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\MigrateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\MigrateCommand => ($container->privates['doctrine_migrations.migrate_command'] ?? $container->load('getDoctrineMigrations_MigrateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_RollupCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_RollupCommand_LazyService.php deleted file mode 100644 index 452af2b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_RollupCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.rollup_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:rollup', [], 'Rollup migrations by deleting all tracked versions and insert the one version that exists.', false, #[\Closure(name: 'doctrine_migrations.rollup_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\RollupCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\RollupCommand => ($container->privates['doctrine_migrations.rollup_command'] ?? $container->load('getDoctrineMigrations_RollupCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_StatusCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_StatusCommand_LazyService.php deleted file mode 100644 index 5538030..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_StatusCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.status_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:status', [], 'View the status of a set of migrations.', false, #[\Closure(name: 'doctrine_migrations.status_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\StatusCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\StatusCommand => ($container->privates['doctrine_migrations.status_command'] ?? $container->load('getDoctrineMigrations_StatusCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php deleted file mode 100644 index bc200cc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_SyncMetadataCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.sync_metadata_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:sync-metadata-storage', [], 'Ensures that the metadata storage is at the latest version.', false, #[\Closure(name: 'doctrine_migrations.sync_metadata_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\SyncMetadataCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand => ($container->privates['doctrine_migrations.sync_metadata_command'] ?? $container->load('getDoctrineMigrations_SyncMetadataCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_UpToDateCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_UpToDateCommand_LazyService.php deleted file mode 100644 index ec781fe..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_UpToDateCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.up_to_date_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:up-to-date', [], 'Tells you if your schema is up-to-date.', false, #[\Closure(name: 'doctrine_migrations.up_to_date_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\UpToDateCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\UpToDateCommand => ($container->privates['doctrine_migrations.up_to_date_command'] ?? $container->load('getDoctrineMigrations_UpToDateCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionCommand_LazyService.php deleted file mode 100644 index 1c27779..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.version_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:version', [], 'Manually add and delete migration versions from the version table.', false, #[\Closure(name: 'doctrine_migrations.version_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\VersionCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\VersionCommand => ($container->privates['doctrine_migrations.version_command'] ?? $container->load('getDoctrineMigrations_VersionCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionsCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionsCommand_LazyService.php deleted file mode 100644 index 72b1600..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_DoctrineMigrations_VersionsCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.doctrine_migrations.versions_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('doctrine:migrations:list', [], 'Display a list of all available migrations and their status.', false, #[\Closure(name: 'doctrine_migrations.versions_command', class: 'Doctrine\\Migrations\\Tools\\Console\\Command\\ListCommand')] fn (): \Doctrine\Migrations\Tools\Console\Command\ListCommand => ($container->privates['doctrine_migrations.versions_command'] ?? $container->load('getDoctrineMigrations_VersionsCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php deleted file mode 100644 index c16145c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.lock.default.store.TTEh_gT'] = \Symfony\Component\Lock\Store\StoreFactory::createStore($container->getEnv('LOCK_DSN')); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeAuth_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeAuth_LazyService.php deleted file mode 100644 index df28487..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeAuth_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_auth.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:auth', [], 'Create a Guard authenticator of different flavors', false, #[\Closure(name: 'maker.auto_command.make_auth', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_auth'] ?? $container->load('getMaker_AutoCommand_MakeAuthService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCommand_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCommand_LazyService.php deleted file mode 100644 index 2104ec5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCommand_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_command.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:command', [], 'Create a new console command class', false, #[\Closure(name: 'maker.auto_command.make_command', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_command'] ?? $container->load('getMaker_AutoCommand_MakeCommandService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeController_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeController_LazyService.php deleted file mode 100644 index f12b51f..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeController_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_controller.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:controller', [], 'Create a new controller class', false, #[\Closure(name: 'maker.auto_command.make_controller', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_controller'] ?? $container->load('getMaker_AutoCommand_MakeControllerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCrud_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCrud_LazyService.php deleted file mode 100644 index 9d250ff..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeCrud_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_crud.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:crud', [], 'Create CRUD for Doctrine entity class', false, #[\Closure(name: 'maker.auto_command.make_crud', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_crud'] ?? $container->load('getMaker_AutoCommand_MakeCrudService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php deleted file mode 100644 index 4886c59..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeDockerDatabase_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_docker_database.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:docker:database', [], 'Add a database container to your compose.yaml file', false, #[\Closure(name: 'maker.auto_command.make_docker_database', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_docker_database'] ?? $container->load('getMaker_AutoCommand_MakeDockerDatabaseService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeEntity_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeEntity_LazyService.php deleted file mode 100644 index b601603..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeEntity_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_entity.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:entity', [], 'Create or update a Doctrine entity class, and optionally an API Platform resource', false, #[\Closure(name: 'maker.auto_command.make_entity', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_entity'] ?? $container->load('getMaker_AutoCommand_MakeEntityService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeFixtures_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeFixtures_LazyService.php deleted file mode 100644 index 8ca592b..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeFixtures_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_fixtures.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:fixtures', [], 'Create a new class to load Doctrine fixtures', false, #[\Closure(name: 'maker.auto_command.make_fixtures', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_fixtures'] ?? $container->load('getMaker_AutoCommand_MakeFixturesService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeForm_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeForm_LazyService.php deleted file mode 100644 index e732bf2..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeForm_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_form.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:form', [], 'Create a new form class', false, #[\Closure(name: 'maker.auto_command.make_form', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_form'] ?? $container->load('getMaker_AutoCommand_MakeFormService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeListener_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeListener_LazyService.php deleted file mode 100644 index 73f8dda..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeListener_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_listener.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:listener', ['make:subscriber'], 'Creates a new event subscriber class or a new event listener class', false, #[\Closure(name: 'maker.auto_command.make_listener', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_listener'] ?? $container->load('getMaker_AutoCommand_MakeListenerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessage_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessage_LazyService.php deleted file mode 100644 index 36edab6..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessage_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_message.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:message', [], 'Create a new message and handler', false, #[\Closure(name: 'maker.auto_command.make_message', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_message'] ?? $container->load('getMaker_AutoCommand_MakeMessageService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php deleted file mode 100644 index 1fea9ee..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMessengerMiddleware_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_messenger_middleware.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:messenger-middleware', [], 'Create a new messenger middleware', false, #[\Closure(name: 'maker.auto_command.make_messenger_middleware', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_messenger_middleware'] ?? $container->load('getMaker_AutoCommand_MakeMessengerMiddlewareService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMigration_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMigration_LazyService.php deleted file mode 100644 index d507079..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeMigration_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_migration.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:migration', [], 'Create a new migration based on database changes', false, #[\Closure(name: 'maker.auto_command.make_migration', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_migration'] ?? $container->load('getMaker_AutoCommand_MakeMigrationService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php deleted file mode 100644 index c18bce3..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeRegistrationForm_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_registration_form.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:registration-form', [], 'Create a new registration form system', false, #[\Closure(name: 'maker.auto_command.make_registration_form', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_registration_form'] ?? $container->load('getMaker_AutoCommand_MakeRegistrationFormService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeResetPassword_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeResetPassword_LazyService.php deleted file mode 100644 index f09a4cb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeResetPassword_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_reset_password.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:reset-password', [], 'Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle', false, #[\Closure(name: 'maker.auto_command.make_reset_password', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_reset_password'] ?? $container->load('getMaker_AutoCommand_MakeResetPasswordService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSchedule_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSchedule_LazyService.php deleted file mode 100644 index d338280..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSchedule_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_schedule.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:schedule', [], 'Create a scheduler component', false, #[\Closure(name: 'maker.auto_command.make_schedule', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_schedule'] ?? $container->load('getMaker_AutoCommand_MakeScheduleService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php deleted file mode 100644 index 826ae87..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityCustom_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_security_custom.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:security:custom', [], 'Create a custom security authenticator.', false, #[\Closure(name: 'maker.auto_command.make_security_custom', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_security_custom'] ?? $container->load('getMaker_AutoCommand_MakeSecurityCustomService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php deleted file mode 100644 index bac0365..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSecurityFormLogin_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_security_form_login.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:security:form-login', [], 'Generate the code needed for the form_login authenticator', false, #[\Closure(name: 'maker.auto_command.make_security_form_login', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_security_form_login'] ?? $container->load('getMaker_AutoCommand_MakeSecurityFormLoginService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php deleted file mode 100644 index ed74384..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerEncoder_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_serializer_encoder.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:serializer:encoder', [], 'Create a new serializer encoder class', false, #[\Closure(name: 'maker.auto_command.make_serializer_encoder', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_serializer_encoder'] ?? $container->load('getMaker_AutoCommand_MakeSerializerEncoderService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php deleted file mode 100644 index de89d05..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeSerializerNormalizer_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_serializer_normalizer.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:serializer:normalizer', [], 'Create a new serializer normalizer class', false, #[\Closure(name: 'maker.auto_command.make_serializer_normalizer', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_serializer_normalizer'] ?? $container->load('getMaker_AutoCommand_MakeSerializerNormalizerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeStimulusController_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeStimulusController_LazyService.php deleted file mode 100644 index 54eb9cd..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeStimulusController_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_stimulus_controller.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:stimulus-controller', [], 'Create a new Stimulus controller', false, #[\Closure(name: 'maker.auto_command.make_stimulus_controller', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_stimulus_controller'] ?? $container->load('getMaker_AutoCommand_MakeStimulusControllerService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTest_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTest_LazyService.php deleted file mode 100644 index 88412ed..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTest_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_test.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:test', ['make:unit-test', 'make:functional-test'], 'Create a new test class', false, #[\Closure(name: 'maker.auto_command.make_test', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_test'] ?? $container->load('getMaker_AutoCommand_MakeTestService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php deleted file mode 100644 index ea87727..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigComponent_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_twig_component.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:twig-component', [], 'Create a Twig (or Live) component', false, #[\Closure(name: 'maker.auto_command.make_twig_component', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_twig_component'] ?? $container->load('getMaker_AutoCommand_MakeTwigComponentService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php deleted file mode 100644 index a410d27..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeTwigExtension_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_twig_extension.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:twig-extension', [], 'Create a new Twig extension with its runtime class', false, #[\Closure(name: 'maker.auto_command.make_twig_extension', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_twig_extension'] ?? $container->load('getMaker_AutoCommand_MakeTwigExtensionService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeUser_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeUser_LazyService.php deleted file mode 100644 index 8c3eb99..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeUser_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_user.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:user', [], 'Create a new security user class', false, #[\Closure(name: 'maker.auto_command.make_user', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_user'] ?? $container->load('getMaker_AutoCommand_MakeUserService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeValidator_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeValidator_LazyService.php deleted file mode 100644 index 52eb17e..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeValidator_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_validator.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:validator', [], 'Create a new validator and constraint class', false, #[\Closure(name: 'maker.auto_command.make_validator', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_validator'] ?? $container->load('getMaker_AutoCommand_MakeValidatorService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeVoter_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeVoter_LazyService.php deleted file mode 100644 index 5adafeb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeVoter_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_voter.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:voter', [], 'Create a new security voter class', false, #[\Closure(name: 'maker.auto_command.make_voter', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_voter'] ?? $container->load('getMaker_AutoCommand_MakeVoterService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeWebhook_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeWebhook_LazyService.php deleted file mode 100644 index f4d7758..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Maker_AutoCommand_MakeWebhook_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.maker.auto_command.make_webhook.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('make:webhook', [], 'Create a new Webhook', false, #[\Closure(name: 'maker.auto_command.make_webhook', class: 'Symfony\\Bundle\\MakerBundle\\Command\\MakerCommand')] fn (): \Symfony\Bundle\MakerBundle\Command\MakerCommand => ($container->privates['maker.auto_command.make_webhook'] ?? $container->load('getMaker_AutoCommand_MakeWebhookService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php deleted file mode 100644 index c1e8189..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.messenger.handler_descriptor.6kVvRT.'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\HttpClient\Messenger\PingWebhookMessageHandler(($container->privates['http_client.uri_template'] ?? $container->load('getHttpClient_UriTemplateService'))), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php deleted file mode 100644 index a771fdb..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php +++ /dev/null @@ -1,25 +0,0 @@ -privates['.messenger.handler_descriptor.F4AMIZd'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(($container->services['App\\MessageHandler\\TriggerPriceImportHandler'] ?? $container->load('getTriggerPriceImportHandlerService')), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php deleted file mode 100644 index 217c370..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php +++ /dev/null @@ -1,31 +0,0 @@ -services['kernel'] ?? $container->get('kernel', 1))); - $a->setAutoExit(false); - - return $container->privates['.messenger.handler_descriptor.kEzMhfs'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Console\Messenger\RunCommandMessageHandler($a), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php deleted file mode 100644 index ec7291d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php +++ /dev/null @@ -1,32 +0,0 @@ -services['messenger.default_bus'] ?? $container->load('getMessenger_DefaultBusService')); - - if (isset($container->privates['.messenger.handler_descriptor.p4Qvabm'])) { - return $container->privates['.messenger.handler_descriptor.p4Qvabm']; - } - - return $container->privates['.messenger.handler_descriptor.p4Qvabm'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Messenger\Handler\RedispatchMessageHandler($a), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php deleted file mode 100644 index 8bec6f5..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.messenger.handler_descriptor.QXXNQ9d'] = new \Symfony\Component\Messenger\Handler\HandlerDescriptor(new \Symfony\Component\Process\Messenger\RunProcessMessageHandler(), []); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_DebugFirewall_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_DebugFirewall_LazyService.php deleted file mode 100644 index b184983..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_DebugFirewall_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.security.command.debug_firewall.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('debug:firewall', [], 'Display information about your security firewall(s)', false, #[\Closure(name: 'security.command.debug_firewall', class: 'Symfony\\Bundle\\SecurityBundle\\Command\\DebugFirewallCommand')] fn (): \Symfony\Bundle\SecurityBundle\Command\DebugFirewallCommand => ($container->privates['security.command.debug_firewall'] ?? $container->load('getSecurity_Command_DebugFirewallService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_UserPasswordHash_LazyService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_UserPasswordHash_LazyService.php deleted file mode 100644 index 8b15ffc..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_Security_Command_UserPasswordHash_LazyService.php +++ /dev/null @@ -1,26 +0,0 @@ -privates['.security.command.user_password_hash.lazy'] = new \Symfony\Component\Console\Command\LazyCommand('security:hash-password', [], 'Hash a user password', false, #[\Closure(name: 'security.command.user_password_hash', class: 'Symfony\\Component\\PasswordHasher\\Command\\UserPasswordHashCommand')] fn (): \Symfony\Component\PasswordHasher\Command\UserPasswordHashCommand => ($container->privates['security.command.user_password_hash'] ?? $container->load('getSecurity_Command_UserPasswordHashService'))); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php deleted file mode 100644 index 60db28d..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php +++ /dev/null @@ -1,29 +0,0 @@ -privates['.service_locator.B4dyivW'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - 'messenger.transport.async' => ['privates', 'messenger.transport.async', 'getMessenger_Transport_AsyncService', true], - ], [ - 'async' => '?', - 'messenger.transport.async' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php deleted file mode 100644 index 27bfcae..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php +++ /dev/null @@ -1,37 +0,0 @@ -privates['.service_locator.HBdvAhp'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'App\\Kernel::loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'App\\Kernel::registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel::loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel::registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel:loadRoutes' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - 'kernel:registerContainerConfiguration' => ['privates', '.service_locator.y4_Zrx.', 'get_ServiceLocator_Y4Zrx_Service', true], - ], [ - 'App\\Kernel::loadRoutes' => '?', - 'App\\Kernel::registerContainerConfiguration' => '?', - 'kernel::loadRoutes' => '?', - 'kernel::registerContainerConfiguration' => '?', - 'kernel:loadRoutes' => '?', - 'kernel:registerContainerConfiguration' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php deleted file mode 100644 index a2395af..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php +++ /dev/null @@ -1,39 +0,0 @@ -privates['.service_locator.O2p6Lk7'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'http_kernel' => ['services', 'http_kernel', 'getHttpKernelService', false], - 'parameter_bag' => ['privates', 'parameter_bag', 'getParameterBagService', false], - 'request_stack' => ['services', 'request_stack', 'getRequestStackService', false], - 'router' => ['services', 'router', 'getRouterService', false], - 'security.authorization_checker' => ['privates', 'security.authorization_checker', 'getSecurity_AuthorizationCheckerService', false], - 'security.csrf.token_manager' => ['privates', 'security.csrf.token_manager', 'getSecurity_Csrf_TokenManagerService', true], - 'security.token_storage' => ['privates', 'security.token_storage', 'getSecurity_TokenStorageService', false], - ], [ - 'http_kernel' => '?', - 'parameter_bag' => '?', - 'request_stack' => '?', - 'router' => '?', - 'security.authorization_checker' => '?', - 'security.csrf.token_manager' => '?', - 'security.token_storage' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_SPNPNE7Service.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_SPNPNE7Service.php deleted file mode 100644 index e630cea..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_SPNPNE7Service.php +++ /dev/null @@ -1,31 +0,0 @@ -privates['.service_locator.sPNPNE7'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'event_dispatcher' => ['services', 'event_dispatcher', 'getEventDispatcherService', false], - 'security.event_dispatcher.dev' => ['privates', 'debug.security.event_dispatcher.dev', 'getDebug_Security_EventDispatcher_DevService', false], - 'security.event_dispatcher.main' => ['privates', 'debug.security.event_dispatcher.main', 'getDebug_Security_EventDispatcher_MainService', false], - ], [ - 'event_dispatcher' => '?', - 'security.event_dispatcher.dev' => '?', - 'security.event_dispatcher.main' => '?', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php deleted file mode 100644 index 332f99c..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php +++ /dev/null @@ -1,27 +0,0 @@ -privates['.service_locator.y4_Zrx.'] = new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [ - 'loader' => ['privates', '.errored..service_locator.y4_Zrx..Symfony\\Component\\Config\\Loader\\LoaderInterface', NULL, 'Cannot autowire service ".service_locator.y4_Zrx.": it needs an instance of "Symfony\\Component\\Config\\Loader\\LoaderInterface" but this type has been excluded from autowiring.'], - ], [ - 'loader' => 'Symfony\\Component\\Config\\Loader\\LoaderInterface', - ]); - } -} diff --git a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/removed-ids.php b/projects/priceservice/var/cache/dev/ContainerJu8t4eN/removed-ids.php deleted file mode 100644 index 91cf783..0000000 --- a/projects/priceservice/var/cache/dev/ContainerJu8t4eN/removed-ids.php +++ /dev/null @@ -1,836 +0,0 @@ - true, - '.App\\Command\\RedisImportCommand.lazy' => true, - '.App\\Command\\RedisReadCommand.lazy' => true, - '.App\\Command\\TriggerTestCommand.lazy' => true, - '.Doctrine\\DBAL\\Connection $default.connection' => true, - '.Doctrine\\ORM\\EntityManagerInterface $default.entity_manager' => true, - '.Psr\\Cache\\CacheItemPoolInterface $cache.rate_limiter' => true, - '.Psr\\Container\\ContainerInterface $parameter_bag' => true, - '.Psr\\Log\\LoggerInterface $http_clientLogger' => true, - '.Symfony\\Component\\RateLimiter\\RateLimiterFactory $price_import.limiter' => true, - '.Symfony\\Contracts\\Cache\\CacheInterface $cache.rate_limiter' => true, - '.Symfony\\Contracts\\Cache\\TagAwareCacheInterface $cache.rate_limiter' => true, - '.abstract.instanceof.App\\Command\\RedisImportCommand' => true, - '.abstract.instanceof.App\\Command\\RedisReadCommand' => true, - '.abstract.instanceof.App\\Command\\TriggerTestCommand' => true, - '.abstract.instanceof.App\\Controller\\Api\\PricesController' => true, - '.abstract.instanceof.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.abstract.instanceof.App\\MessageHandler\\TriggerPriceImportHandler' => true, - '.cache.rate_limiter.taggable' => true, - '.cache_connection.GD_MSZC' => true, - '.cache_connection.IuJY3Yv' => true, - '.cache_connection.JKE6keX' => true, - '.console.command.about.lazy' => true, - '.console.command.assets_install.lazy' => true, - '.console.command.cache_clear.lazy' => true, - '.console.command.cache_pool_clear.lazy' => true, - '.console.command.cache_pool_delete.lazy' => true, - '.console.command.cache_pool_invalidate_tags.lazy' => true, - '.console.command.cache_pool_list.lazy' => true, - '.console.command.cache_pool_prune.lazy' => true, - '.console.command.cache_warmup.lazy' => true, - '.console.command.config_debug.lazy' => true, - '.console.command.config_dump_reference.lazy' => true, - '.console.command.container_debug.lazy' => true, - '.console.command.container_lint.lazy' => true, - '.console.command.debug_autowiring.lazy' => true, - '.console.command.dotenv_debug.lazy' => true, - '.console.command.event_dispatcher_debug.lazy' => true, - '.console.command.messenger_consume_messages.lazy' => true, - '.console.command.messenger_debug.lazy' => true, - '.console.command.messenger_setup_transports.lazy' => true, - '.console.command.messenger_stats.lazy' => true, - '.console.command.messenger_stop_workers.lazy' => true, - '.console.command.router_debug.lazy' => true, - '.console.command.router_match.lazy' => true, - '.console.command.secrets_decrypt_to_local.lazy' => true, - '.console.command.secrets_encrypt_from_local.lazy' => true, - '.console.command.secrets_generate_key.lazy' => true, - '.console.command.secrets_list.lazy' => true, - '.console.command.secrets_remove.lazy' => true, - '.console.command.secrets_set.lazy' => true, - '.console.command.yaml_lint.lazy' => true, - '.debug.security.voter.security.access.authenticated_voter' => true, - '.debug.security.voter.security.access.role_hierarchy_voter' => true, - '.debug.value_resolver.argument_resolver.backed_enum_resolver' => true, - '.debug.value_resolver.argument_resolver.datetime' => true, - '.debug.value_resolver.argument_resolver.default' => true, - '.debug.value_resolver.argument_resolver.not_tagged_controller' => true, - '.debug.value_resolver.argument_resolver.query_parameter_value_resolver' => true, - '.debug.value_resolver.argument_resolver.request' => true, - '.debug.value_resolver.argument_resolver.request_attribute' => true, - '.debug.value_resolver.argument_resolver.request_payload' => true, - '.debug.value_resolver.argument_resolver.service' => true, - '.debug.value_resolver.argument_resolver.session' => true, - '.debug.value_resolver.argument_resolver.uid' => true, - '.debug.value_resolver.argument_resolver.variadic' => true, - '.debug.value_resolver.doctrine.orm.entity_value_resolver' => true, - '.debug.value_resolver.security.security_token_value_resolver' => true, - '.debug.value_resolver.security.user_value_resolver' => true, - '.doctrine.orm.default_metadata_driver' => true, - '.doctrine.orm.default_metadata_driver.inner' => true, - '.doctrine_migrations.current_command.lazy' => true, - '.doctrine_migrations.diff_command.lazy' => true, - '.doctrine_migrations.dump_schema_command.lazy' => true, - '.doctrine_migrations.execute_command.lazy' => true, - '.doctrine_migrations.generate_command.lazy' => true, - '.doctrine_migrations.latest_command.lazy' => true, - '.doctrine_migrations.migrate_command.lazy' => true, - '.doctrine_migrations.rollup_command.lazy' => true, - '.doctrine_migrations.status_command.lazy' => true, - '.doctrine_migrations.sync_metadata_command.lazy' => true, - '.doctrine_migrations.up_to_date_command.lazy' => true, - '.doctrine_migrations.version_command.lazy' => true, - '.doctrine_migrations.versions_command.lazy' => true, - '.errored..service_locator.y4_Zrx..Symfony\\Component\\Config\\Loader\\LoaderInterface' => true, - '.instanceof.App\\MessageHandler\\TriggerPriceImportHandler.0.App\\MessageHandler\\TriggerPriceImportHandler' => true, - '.instanceof.Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController.0.App\\Controller\\Api\\PricesController' => true, - '.instanceof.Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController.0.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\RedisImportCommand' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\RedisReadCommand' => true, - '.instanceof.Symfony\\Component\\Console\\Command\\Command.0.App\\Command\\TriggerTestCommand' => true, - '.instanceof.Symfony\\Contracts\\Service\\ServiceSubscriberInterface.0.App\\Controller\\Api\\PricesController' => true, - '.instanceof.Symfony\\Contracts\\Service\\ServiceSubscriberInterface.0.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.lock.default.store.TTEh_gT' => true, - '.maker.auto_command.make_auth.lazy' => true, - '.maker.auto_command.make_command.lazy' => true, - '.maker.auto_command.make_controller.lazy' => true, - '.maker.auto_command.make_crud.lazy' => true, - '.maker.auto_command.make_docker_database.lazy' => true, - '.maker.auto_command.make_entity.lazy' => true, - '.maker.auto_command.make_fixtures.lazy' => true, - '.maker.auto_command.make_form.lazy' => true, - '.maker.auto_command.make_listener.lazy' => true, - '.maker.auto_command.make_message.lazy' => true, - '.maker.auto_command.make_messenger_middleware.lazy' => true, - '.maker.auto_command.make_migration.lazy' => true, - '.maker.auto_command.make_registration_form.lazy' => true, - '.maker.auto_command.make_reset_password.lazy' => true, - '.maker.auto_command.make_schedule.lazy' => true, - '.maker.auto_command.make_security_custom.lazy' => true, - '.maker.auto_command.make_security_form_login.lazy' => true, - '.maker.auto_command.make_serializer_encoder.lazy' => true, - '.maker.auto_command.make_serializer_normalizer.lazy' => true, - '.maker.auto_command.make_stimulus_controller.lazy' => true, - '.maker.auto_command.make_test.lazy' => true, - '.maker.auto_command.make_twig_component.lazy' => true, - '.maker.auto_command.make_twig_extension.lazy' => true, - '.maker.auto_command.make_user.lazy' => true, - '.maker.auto_command.make_validator.lazy' => true, - '.maker.auto_command.make_voter.lazy' => true, - '.maker.auto_command.make_webhook.lazy' => true, - '.messenger.handler_descriptor.6kVvRT.' => true, - '.messenger.handler_descriptor.F4AMIZd' => true, - '.messenger.handler_descriptor.QXXNQ9d' => true, - '.messenger.handler_descriptor.kEzMhfs' => true, - '.messenger.handler_descriptor.p4Qvabm' => true, - '.security.command.debug_firewall.lazy' => true, - '.security.command.user_password_hash.lazy' => true, - '.security.request_matcher.FFUBg3B' => true, - '.security.request_matcher.RKxp8he' => true, - '.security.request_matcher.lSKjE8t' => true, - '.security.request_matcher.tcCj4Pw' => true, - '.service_locator..Fs8Kd7' => true, - '.service_locator.27KOu4H' => true, - '.service_locator.5cAhUFF' => true, - '.service_locator.6DxUFLS' => true, - '.service_locator.B4dyivW' => true, - '.service_locator.EMavxuq' => true, - '.service_locator.EMavxuq.router.default' => true, - '.service_locator.HBdvAhp' => true, - '.service_locator.KLVvNIq' => true, - '.service_locator.L.EDYUC' => true, - '.service_locator.LD5oJC8' => true, - '.service_locator.LMuqDDe' => true, - '.service_locator.LcVn9Hr' => true, - '.service_locator.O2p6Lk7' => true, - '.service_locator.O2p6Lk7.App\\Controller\\Api\\PricesController' => true, - '.service_locator.O2p6Lk7.App\\Controller\\Trigger\\PriceTriggerController' => true, - '.service_locator.TpoC7U9' => true, - '.service_locator.VHsrTPK' => true, - '.service_locator.XXv1IfR' => true, - '.service_locator.Xbsa8iG' => true, - '.service_locator.XnSA3F0' => true, - '.service_locator._kIAbz1' => true, - '.service_locator.bJ.4HC5' => true, - '.service_locator.cUcW89y' => true, - '.service_locator.cUcW89y.router.cache_warmer' => true, - '.service_locator.e_.xxAP' => true, - '.service_locator.fTO7dT0' => true, - '.service_locator.gFlme_s' => true, - '.service_locator.gHpsvM5' => true, - '.service_locator.iUxT8yA' => true, - '.service_locator.jUv.zyj' => true, - '.service_locator.jxnIR8C' => true, - '.service_locator.lLv4pWF' => true, - '.service_locator.sPNPNE7' => true, - '.service_locator.w7.f4fT' => true, - '.service_locator.y4_Zrx.' => true, - '.service_locator.zJyh7qS' => true, - 'App\\Command\\RedisImportCommand' => true, - 'App\\Command\\RedisReadCommand' => true, - 'App\\Command\\TriggerTestCommand' => true, - 'App\\Entity' => true, - 'App\\Message\\SendNotification' => true, - 'App\\Message\\TriggerPriceImport' => true, - 'App\\Service\\Adapter\\Orm' => true, - 'App\\Service\\Adapter\\RedisClientService' => true, - 'App\\Service\\Prices\\RedisImportService' => true, - 'App\\Service\\Prices\\RedisReadService' => true, - 'Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController' => true, - 'Doctrine\\Bundle\\DoctrineBundle\\Dbal\\ManagerRegistryAwareConnectionProvider' => true, - 'Doctrine\\Common\\Persistence\\ManagerRegistry' => true, - 'Doctrine\\DBAL\\Connection' => true, - 'Doctrine\\DBAL\\Connection $defaultConnection' => true, - 'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => true, - 'Doctrine\\ORM\\EntityManagerInterface' => true, - 'Doctrine\\ORM\\EntityManagerInterface $defaultEntityManager' => true, - 'Doctrine\\Persistence\\ManagerRegistry' => true, - 'Psr\\Cache\\CacheItemPoolInterface' => true, - 'Psr\\Cache\\CacheItemPoolInterface $cacheRateLimiter' => true, - 'Psr\\Clock\\ClockInterface' => true, - 'Psr\\Container\\ContainerInterface $parameterBag' => true, - 'Psr\\EventDispatcher\\EventDispatcherInterface' => true, - 'Psr\\Log\\LoggerInterface' => true, - 'Psr\\Log\\LoggerInterface $cacheLogger' => true, - 'Psr\\Log\\LoggerInterface $consoleLogger' => true, - 'Psr\\Log\\LoggerInterface $deprecationLogger' => true, - 'Psr\\Log\\LoggerInterface $doctrineLogger' => true, - 'Psr\\Log\\LoggerInterface $eventLogger' => true, - 'Psr\\Log\\LoggerInterface $httpClientLogger' => true, - 'Psr\\Log\\LoggerInterface $lockLogger' => true, - 'Psr\\Log\\LoggerInterface $messengerLogger' => true, - 'Psr\\Log\\LoggerInterface $phpLogger' => true, - 'Psr\\Log\\LoggerInterface $requestLogger' => true, - 'Psr\\Log\\LoggerInterface $routerLogger' => true, - 'Psr\\Log\\LoggerInterface $securityLogger' => true, - 'SessionHandlerInterface' => true, - 'Symfony\\Bundle\\SecurityBundle\\Security' => true, - 'Symfony\\Component\\Clock\\ClockInterface' => true, - 'Symfony\\Component\\Config\\Loader\\LoaderInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => true, - 'Symfony\\Component\\DependencyInjection\\ReverseContainer' => true, - 'Symfony\\Component\\ErrorHandler\\ErrorRenderer\\FileLinkFormatter' => true, - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => true, - 'Symfony\\Component\\Filesystem\\Filesystem' => true, - 'Symfony\\Component\\HttpFoundation\\Request' => true, - 'Symfony\\Component\\HttpFoundation\\RequestStack' => true, - 'Symfony\\Component\\HttpFoundation\\Response' => true, - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => true, - 'Symfony\\Component\\HttpFoundation\\UriSigner' => true, - 'Symfony\\Component\\HttpFoundation\\UrlHelper' => true, - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => true, - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentUriGeneratorInterface' => true, - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => true, - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => true, - 'Symfony\\Component\\HttpKernel\\KernelInterface' => true, - 'Symfony\\Component\\HttpKernel\\UriSigner' => true, - 'Symfony\\Component\\Lock\\LockFactory' => true, - 'Symfony\\Component\\Messenger\\MessageBusInterface' => true, - 'Symfony\\Component\\Messenger\\Transport\\Serialization\\SerializerInterface' => true, - 'Symfony\\Component\\PasswordHasher\\Hasher\\PasswordHasherFactoryInterface' => true, - 'Symfony\\Component\\PasswordHasher\\Hasher\\UserPasswordHasherInterface' => true, - 'Symfony\\Component\\PropertyAccess\\PropertyAccessorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyAccessExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyDescriptionExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyInfoExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyInitializableExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyListExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyReadInfoExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyTypeExtractorInterface' => true, - 'Symfony\\Component\\PropertyInfo\\PropertyWriteInfoExtractorInterface' => true, - 'Symfony\\Component\\RateLimiter\\RateLimiterFactory $priceImportLimiter' => true, - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => true, - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => true, - 'Symfony\\Component\\Routing\\RequestContext' => true, - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => true, - 'Symfony\\Component\\Routing\\RouterInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\Storage\\TokenStorageInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManagerInterface' => true, - 'Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationCheckerInterface' => true, - 'Symfony\\Component\\Security\\Core\\Role\\RoleHierarchyInterface' => true, - 'Symfony\\Component\\Security\\Core\\Security' => true, - 'Symfony\\Component\\Security\\Core\\User\\UserCheckerInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\TokenGenerator\\TokenGeneratorInterface' => true, - 'Symfony\\Component\\Security\\Csrf\\TokenStorage\\TokenStorageInterface' => true, - 'Symfony\\Component\\Security\\Http\\Authentication\\AuthenticationUtils' => true, - 'Symfony\\Component\\Security\\Http\\Authentication\\UserAuthenticatorInterface' => true, - 'Symfony\\Component\\Security\\Http\\Firewall' => true, - 'Symfony\\Component\\Security\\Http\\FirewallMapInterface' => true, - 'Symfony\\Component\\Security\\Http\\HttpUtils' => true, - 'Symfony\\Component\\Security\\Http\\Session\\SessionAuthenticationStrategyInterface' => true, - 'Symfony\\Component\\Stopwatch\\Stopwatch' => true, - 'Symfony\\Component\\String\\Slugger\\SluggerInterface' => true, - 'Symfony\\Component\\Uid\\Factory\\NameBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\RandomBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\TimeBasedUuidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\UlidFactory' => true, - 'Symfony\\Component\\Uid\\Factory\\UuidFactory' => true, - 'Symfony\\Contracts\\Cache\\CacheInterface' => true, - 'Symfony\\Contracts\\Cache\\CacheInterface $cacheRateLimiter' => true, - 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => true, - 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface $cacheRateLimiter' => true, - 'Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface' => true, - 'Symfony\\Contracts\\HttpClient\\HttpClientInterface' => true, - 'argument_metadata_factory' => true, - 'argument_resolver' => true, - 'argument_resolver.backed_enum_resolver' => true, - 'argument_resolver.controller_locator' => true, - 'argument_resolver.datetime' => true, - 'argument_resolver.default' => true, - 'argument_resolver.not_tagged_controller' => true, - 'argument_resolver.query_parameter_value_resolver' => true, - 'argument_resolver.request' => true, - 'argument_resolver.request_attribute' => true, - 'argument_resolver.request_payload' => true, - 'argument_resolver.service' => true, - 'argument_resolver.session' => true, - 'argument_resolver.uid' => true, - 'argument_resolver.variadic' => true, - 'cache.adapter.apcu' => true, - 'cache.adapter.array' => true, - 'cache.adapter.doctrine_dbal' => true, - 'cache.adapter.filesystem' => true, - 'cache.adapter.memcached' => true, - 'cache.adapter.pdo' => true, - 'cache.adapter.psr6' => true, - 'cache.adapter.redis' => true, - 'cache.adapter.redis_tag_aware' => true, - 'cache.adapter.system' => true, - 'cache.annotations' => true, - 'cache.app.taggable' => true, - 'cache.default_clearer' => true, - 'cache.default_doctrine_dbal_provider' => true, - 'cache.default_marshaller' => true, - 'cache.default_memcached_provider' => true, - 'cache.default_redis_provider' => true, - 'cache.doctrine.orm.default.metadata' => true, - 'cache.doctrine.orm.default.query' => true, - 'cache.doctrine.orm.default.result' => true, - 'cache.early_expiration_handler' => true, - 'cache.messenger.restart_workers_signal' => true, - 'cache.property_access' => true, - 'cache.property_info' => true, - 'cache.rate_limiter' => true, - 'cache.security_expression_language' => true, - 'cache.serializer' => true, - 'cache.validator' => true, - 'cache_clearer' => true, - 'clock' => true, - 'config.resource.self_checking_resource_checker' => true, - 'config_builder.warmer' => true, - 'config_cache_factory' => true, - 'console.command.about' => true, - 'console.command.assets_install' => true, - 'console.command.cache_clear' => true, - 'console.command.cache_pool_clear' => true, - 'console.command.cache_pool_delete' => true, - 'console.command.cache_pool_invalidate_tags' => true, - 'console.command.cache_pool_list' => true, - 'console.command.cache_pool_prune' => true, - 'console.command.cache_warmup' => true, - 'console.command.config_debug' => true, - 'console.command.config_dump_reference' => true, - 'console.command.container_debug' => true, - 'console.command.container_lint' => true, - 'console.command.debug_autowiring' => true, - 'console.command.dotenv_debug' => true, - 'console.command.event_dispatcher_debug' => true, - 'console.command.messenger_consume_messages' => true, - 'console.command.messenger_debug' => true, - 'console.command.messenger_setup_transports' => true, - 'console.command.messenger_stats' => true, - 'console.command.messenger_stop_workers' => true, - 'console.command.router_debug' => true, - 'console.command.router_match' => true, - 'console.command.secrets_decrypt_to_local' => true, - 'console.command.secrets_encrypt_from_local' => true, - 'console.command.secrets_generate_key' => true, - 'console.command.secrets_list' => true, - 'console.command.secrets_remove' => true, - 'console.command.secrets_set' => true, - 'console.command.yaml_lint' => true, - 'console.error_listener' => true, - 'console.messenger.application' => true, - 'console.messenger.execute_command_handler' => true, - 'console.suggest_missing_package_subscriber' => true, - 'container.env' => true, - 'container.env_var_processor' => true, - 'container.getenv' => true, - 'controller.cache_attribute_listener' => true, - 'controller.is_granted_attribute_listener' => true, - 'controller_resolver' => true, - 'data_collector.doctrine' => true, - 'data_collector.security' => true, - 'debug.argument_resolver' => true, - 'debug.argument_resolver.inner' => true, - 'debug.controller_resolver' => true, - 'debug.controller_resolver.inner' => true, - 'debug.debug_handlers_listener' => true, - 'debug.debug_logger_configurator' => true, - 'debug.event_dispatcher' => true, - 'debug.event_dispatcher.inner' => true, - 'debug.file_link_formatter' => true, - 'debug.log_processor' => true, - 'debug.security.access.decision_manager' => true, - 'debug.security.access.decision_manager.inner' => true, - 'debug.security.event_dispatcher.dev' => true, - 'debug.security.event_dispatcher.dev.inner' => true, - 'debug.security.event_dispatcher.main' => true, - 'debug.security.event_dispatcher.main.inner' => true, - 'debug.security.firewall' => true, - 'debug.security.firewall.authenticator.dev' => true, - 'debug.security.firewall.authenticator.dev.inner' => true, - 'debug.security.firewall.authenticator.main' => true, - 'debug.security.firewall.authenticator.main.inner' => true, - 'debug.security.voter.vote_listener' => true, - 'dependency_injection.config.container_parameters_resource_checker' => true, - 'disallow_search_engine_index_response_listener' => true, - 'doctrine.cache_clear_metadata_command' => true, - 'doctrine.cache_clear_query_cache_command' => true, - 'doctrine.cache_clear_result_command' => true, - 'doctrine.cache_collection_region_command' => true, - 'doctrine.clear_entity_region_command' => true, - 'doctrine.clear_query_region_command' => true, - 'doctrine.database_create_command' => true, - 'doctrine.database_drop_command' => true, - 'doctrine.dbal.connection' => true, - 'doctrine.dbal.connection.configuration' => true, - 'doctrine.dbal.connection.event_manager' => true, - 'doctrine.dbal.connection_expiries' => true, - 'doctrine.dbal.connection_factory' => true, - 'doctrine.dbal.connection_factory.dsn_parser' => true, - 'doctrine.dbal.debug_middleware' => true, - 'doctrine.dbal.debug_middleware.default' => true, - 'doctrine.dbal.default_connection.configuration' => true, - 'doctrine.dbal.default_connection.event_manager' => true, - 'doctrine.dbal.default_schema_asset_filter_manager' => true, - 'doctrine.dbal.default_schema_manager_factory' => true, - 'doctrine.dbal.event_manager' => true, - 'doctrine.dbal.logging_middleware' => true, - 'doctrine.dbal.logging_middleware.default' => true, - 'doctrine.dbal.schema_asset_filter_manager' => true, - 'doctrine.dbal.well_known_schema_asset_filter' => true, - 'doctrine.debug_data_holder' => true, - 'doctrine.id_generator_locator' => true, - 'doctrine.mapping_info_command' => true, - 'doctrine.migrations.configuration' => true, - 'doctrine.migrations.configuration_loader' => true, - 'doctrine.migrations.connection_loader' => true, - 'doctrine.migrations.connection_registry_loader' => true, - 'doctrine.migrations.container_aware_migrations_factory' => true, - 'doctrine.migrations.container_aware_migrations_factory.inner' => true, - 'doctrine.migrations.dependency_factory' => true, - 'doctrine.migrations.em_loader' => true, - 'doctrine.migrations.entity_manager_registry_loader' => true, - 'doctrine.migrations.metadata_storage' => true, - 'doctrine.migrations.migrations_factory' => true, - 'doctrine.migrations.storage.table_storage' => true, - 'doctrine.orm.command.entity_manager_provider' => true, - 'doctrine.orm.configuration' => true, - 'doctrine.orm.container_repository_factory' => true, - 'doctrine.orm.default_attribute_metadata_driver' => true, - 'doctrine.orm.default_configuration' => true, - 'doctrine.orm.default_entity_listener_resolver' => true, - 'doctrine.orm.default_entity_manager.event_manager' => true, - 'doctrine.orm.default_entity_manager.property_info_extractor' => true, - 'doctrine.orm.default_listeners.attach_entity_listeners' => true, - 'doctrine.orm.default_manager_configurator' => true, - 'doctrine.orm.default_metadata_cache' => true, - 'doctrine.orm.default_metadata_driver' => true, - 'doctrine.orm.default_query_cache' => true, - 'doctrine.orm.default_result_cache' => true, - 'doctrine.orm.entity_manager.abstract' => true, - 'doctrine.orm.entity_value_resolver' => true, - 'doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener' => true, - 'doctrine.orm.listeners.doctrine_token_provider_schema_listener' => true, - 'doctrine.orm.listeners.lock_store_schema_listener' => true, - 'doctrine.orm.listeners.pdo_session_handler_schema_listener' => true, - 'doctrine.orm.listeners.resolve_target_entity' => true, - 'doctrine.orm.manager_configurator.abstract' => true, - 'doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager' => true, - 'doctrine.orm.naming_strategy.default' => true, - 'doctrine.orm.naming_strategy.underscore' => true, - 'doctrine.orm.naming_strategy.underscore_number_aware' => true, - 'doctrine.orm.proxy_cache_warmer' => true, - 'doctrine.orm.quote_strategy.ansi' => true, - 'doctrine.orm.quote_strategy.default' => true, - 'doctrine.orm.security.user.provider' => true, - 'doctrine.orm.typed_field_mapper.default' => true, - 'doctrine.orm.validator.unique' => true, - 'doctrine.orm.validator_initializer' => true, - 'doctrine.query_dql_command' => true, - 'doctrine.query_sql_command' => true, - 'doctrine.schema_create_command' => true, - 'doctrine.schema_drop_command' => true, - 'doctrine.schema_update_command' => true, - 'doctrine.schema_validate_command' => true, - 'doctrine.twig.doctrine_extension' => true, - 'doctrine.ulid_generator' => true, - 'doctrine.uuid_generator' => true, - 'doctrine_migrations.current_command' => true, - 'doctrine_migrations.diff_command' => true, - 'doctrine_migrations.dump_schema_command' => true, - 'doctrine_migrations.execute_command' => true, - 'doctrine_migrations.generate_command' => true, - 'doctrine_migrations.latest_command' => true, - 'doctrine_migrations.migrate_command' => true, - 'doctrine_migrations.rollup_command' => true, - 'doctrine_migrations.schema_filter_listener' => true, - 'doctrine_migrations.status_command' => true, - 'doctrine_migrations.sync_metadata_command' => true, - 'doctrine_migrations.up_to_date_command' => true, - 'doctrine_migrations.version_command' => true, - 'doctrine_migrations.versions_command' => true, - 'error_handler.error_renderer.html' => true, - 'error_renderer' => true, - 'error_renderer.html' => true, - 'exception_listener' => true, - 'file_locator' => true, - 'filesystem' => true, - 'form.type.entity' => true, - 'form.type_guesser.doctrine' => true, - 'fragment.handler' => true, - 'fragment.renderer.inline' => true, - 'fragment.uri_generator' => true, - 'http_cache' => true, - 'http_cache.store' => true, - 'http_client' => true, - 'http_client.abstract_retry_strategy' => true, - 'http_client.messenger.ping_webhook_handler' => true, - 'http_client.transport' => true, - 'http_client.uri_template' => true, - 'http_client.uri_template.inner' => true, - 'http_client.uri_template_expander.guzzle' => true, - 'http_client.uri_template_expander.rize' => true, - 'limiter' => true, - 'limiter.price_import' => true, - 'limiter.storage.price_import' => true, - 'locale_aware_listener' => true, - 'locale_listener' => true, - 'lock.default.factory' => true, - 'lock.factory' => true, - 'lock.factory.abstract' => true, - 'lock.store.combined.abstract' => true, - 'lock.strategy.majority' => true, - 'logger' => true, - 'maker.auto_command.abstract' => true, - 'maker.auto_command.make_auth' => true, - 'maker.auto_command.make_command' => true, - 'maker.auto_command.make_controller' => true, - 'maker.auto_command.make_crud' => true, - 'maker.auto_command.make_docker_database' => true, - 'maker.auto_command.make_entity' => true, - 'maker.auto_command.make_fixtures' => true, - 'maker.auto_command.make_form' => true, - 'maker.auto_command.make_listener' => true, - 'maker.auto_command.make_message' => true, - 'maker.auto_command.make_messenger_middleware' => true, - 'maker.auto_command.make_migration' => true, - 'maker.auto_command.make_registration_form' => true, - 'maker.auto_command.make_reset_password' => true, - 'maker.auto_command.make_schedule' => true, - 'maker.auto_command.make_security_custom' => true, - 'maker.auto_command.make_security_form_login' => true, - 'maker.auto_command.make_serializer_encoder' => true, - 'maker.auto_command.make_serializer_normalizer' => true, - 'maker.auto_command.make_stimulus_controller' => true, - 'maker.auto_command.make_test' => true, - 'maker.auto_command.make_twig_component' => true, - 'maker.auto_command.make_twig_extension' => true, - 'maker.auto_command.make_user' => true, - 'maker.auto_command.make_validator' => true, - 'maker.auto_command.make_voter' => true, - 'maker.auto_command.make_webhook' => true, - 'maker.autoloader_finder' => true, - 'maker.autoloader_util' => true, - 'maker.console_error_listener' => true, - 'maker.doctrine_helper' => true, - 'maker.entity_class_generator' => true, - 'maker.event_registry' => true, - 'maker.file_link_formatter' => true, - 'maker.file_manager' => true, - 'maker.generator' => true, - 'maker.maker.make_authenticator' => true, - 'maker.maker.make_command' => true, - 'maker.maker.make_controller' => true, - 'maker.maker.make_crud' => true, - 'maker.maker.make_custom_authenticator' => true, - 'maker.maker.make_docker_database' => true, - 'maker.maker.make_entity' => true, - 'maker.maker.make_fixtures' => true, - 'maker.maker.make_form' => true, - 'maker.maker.make_form_login' => true, - 'maker.maker.make_functional_test' => true, - 'maker.maker.make_listener' => true, - 'maker.maker.make_message' => true, - 'maker.maker.make_messenger_middleware' => true, - 'maker.maker.make_migration' => true, - 'maker.maker.make_registration_form' => true, - 'maker.maker.make_reset_password' => true, - 'maker.maker.make_schedule' => true, - 'maker.maker.make_serializer_encoder' => true, - 'maker.maker.make_serializer_normalizer' => true, - 'maker.maker.make_stimulus_controller' => true, - 'maker.maker.make_subscriber' => true, - 'maker.maker.make_test' => true, - 'maker.maker.make_twig_component' => true, - 'maker.maker.make_twig_extension' => true, - 'maker.maker.make_unit_test' => true, - 'maker.maker.make_user' => true, - 'maker.maker.make_validator' => true, - 'maker.maker.make_voter' => true, - 'maker.maker.make_webhook' => true, - 'maker.php_compat_util' => true, - 'maker.renderer.form_type_renderer' => true, - 'maker.security_config_updater' => true, - 'maker.security_controller_builder' => true, - 'maker.template_component_generator' => true, - 'maker.template_linter' => true, - 'maker.user_class_builder' => true, - 'messenger.bus.default' => true, - 'messenger.bus.default.messenger.handlers_locator' => true, - 'messenger.bus.default.middleware.add_bus_name_stamp_middleware' => true, - 'messenger.bus.default.middleware.handle_message' => true, - 'messenger.bus.default.middleware.send_message' => true, - 'messenger.bus.default.middleware.traceable' => true, - 'messenger.default_serializer' => true, - 'messenger.failure.add_error_details_stamp_listener' => true, - 'messenger.listener.dispatch_pcntl_signal_listener' => true, - 'messenger.listener.reset_services' => true, - 'messenger.listener.stop_worker_on_restart_signal_listener' => true, - 'messenger.listener.stop_worker_on_sigterm_signal_listener' => true, - 'messenger.listener.stop_worker_on_stop_exception_listener' => true, - 'messenger.listener.stop_worker_signals_listener' => true, - 'messenger.middleware.add_bus_name_stamp_middleware' => true, - 'messenger.middleware.dispatch_after_current_bus' => true, - 'messenger.middleware.doctrine_close_connection' => true, - 'messenger.middleware.doctrine_open_transaction_logger' => true, - 'messenger.middleware.doctrine_ping_connection' => true, - 'messenger.middleware.doctrine_transaction' => true, - 'messenger.middleware.failed_message_processing_middleware' => true, - 'messenger.middleware.handle_message' => true, - 'messenger.middleware.reject_redelivered_message_middleware' => true, - 'messenger.middleware.router_context' => true, - 'messenger.middleware.send_message' => true, - 'messenger.middleware.traceable' => true, - 'messenger.middleware.validation' => true, - 'messenger.receiver_locator' => true, - 'messenger.redispatch_message_handler' => true, - 'messenger.retry.abstract_multiplier_retry_strategy' => true, - 'messenger.retry.multiplier_retry_strategy.async' => true, - 'messenger.retry.send_failed_message_for_retry_listener' => true, - 'messenger.retry_strategy_locator' => true, - 'messenger.routable_message_bus' => true, - 'messenger.senders_locator' => true, - 'messenger.transport.amqp.factory' => true, - 'messenger.transport.async' => true, - 'messenger.transport.beanstalkd.factory' => true, - 'messenger.transport.in_memory.factory' => true, - 'messenger.transport.native_php_serializer' => true, - 'messenger.transport.redis.factory' => true, - 'messenger.transport.sqs.factory' => true, - 'messenger.transport.symfony_serializer' => true, - 'messenger.transport.sync.factory' => true, - 'messenger.transport_factory' => true, - 'monolog.activation_strategy.not_found' => true, - 'monolog.formatter.chrome_php' => true, - 'monolog.formatter.gelf_message' => true, - 'monolog.formatter.html' => true, - 'monolog.formatter.json' => true, - 'monolog.formatter.line' => true, - 'monolog.formatter.loggly' => true, - 'monolog.formatter.logstash' => true, - 'monolog.formatter.normalizer' => true, - 'monolog.formatter.scalar' => true, - 'monolog.formatter.wildfire' => true, - 'monolog.handler.deprecation' => true, - 'monolog.handler.file_log' => true, - 'monolog.handler.fingers_crossed.error_level_activation_strategy' => true, - 'monolog.handler.main' => true, - 'monolog.handler.null_internal' => true, - 'monolog.handler.stdout' => true, - 'monolog.http_client' => true, - 'monolog.logger' => true, - 'monolog.logger.cache' => true, - 'monolog.logger.console' => true, - 'monolog.logger.doctrine' => true, - 'monolog.logger.event' => true, - 'monolog.logger.http_client' => true, - 'monolog.logger.lock' => true, - 'monolog.logger.messenger' => true, - 'monolog.logger.php' => true, - 'monolog.logger.request' => true, - 'monolog.logger.router' => true, - 'monolog.logger.security' => true, - 'monolog.logger_prototype' => true, - 'monolog.processor.psr_log_message' => true, - 'name_based_uuid.factory' => true, - 'parameter_bag' => true, - 'process.messenger.process_message_handler' => true, - 'property_accessor' => true, - 'property_info' => true, - 'property_info.reflection_extractor' => true, - 'random_based_uuid.factory' => true, - 'response_listener' => true, - 'reverse_container' => true, - 'router.cache_warmer' => true, - 'router.default' => true, - 'router.request_context' => true, - 'router_listener' => true, - 'routing.loader.annotation' => true, - 'routing.loader.annotation.directory' => true, - 'routing.loader.annotation.file' => true, - 'routing.loader.attribute' => true, - 'routing.loader.attribute.directory' => true, - 'routing.loader.attribute.file' => true, - 'routing.loader.container' => true, - 'routing.loader.directory' => true, - 'routing.loader.glob' => true, - 'routing.loader.php' => true, - 'routing.loader.psr4' => true, - 'routing.loader.xml' => true, - 'routing.loader.yml' => true, - 'routing.resolver' => true, - 'secrets.decryption_key' => true, - 'secrets.local_vault' => true, - 'secrets.vault' => true, - 'security.access.authenticated_voter' => true, - 'security.access.decision_manager' => true, - 'security.access.role_hierarchy_voter' => true, - 'security.access_listener' => true, - 'security.access_map' => true, - 'security.access_token_extractor.header' => true, - 'security.access_token_extractor.query_string' => true, - 'security.access_token_extractor.request_body' => true, - 'security.access_token_handler.oidc' => true, - 'security.access_token_handler.oidc.jwk' => true, - 'security.access_token_handler.oidc.signature' => true, - 'security.access_token_handler.oidc.signature.ES256' => true, - 'security.access_token_handler.oidc.signature.ES384' => true, - 'security.access_token_handler.oidc.signature.ES512' => true, - 'security.access_token_handler.oidc_user_info' => true, - 'security.access_token_handler.oidc_user_info.http_client' => true, - 'security.authentication.custom_failure_handler' => true, - 'security.authentication.custom_success_handler' => true, - 'security.authentication.failure_handler' => true, - 'security.authentication.listener.abstract' => true, - 'security.authentication.session_strategy' => true, - 'security.authentication.session_strategy.dev' => true, - 'security.authentication.session_strategy.main' => true, - 'security.authentication.session_strategy_noop' => true, - 'security.authentication.success_handler' => true, - 'security.authentication.switchuser_listener' => true, - 'security.authentication.trust_resolver' => true, - 'security.authentication_utils' => true, - 'security.authenticator.access_token' => true, - 'security.authenticator.access_token.chain_extractor' => true, - 'security.authenticator.form_login' => true, - 'security.authenticator.http_basic' => true, - 'security.authenticator.json_login' => true, - 'security.authenticator.manager' => true, - 'security.authenticator.manager.dev' => true, - 'security.authenticator.manager.main' => true, - 'security.authenticator.managers_locator' => true, - 'security.authenticator.remote_user' => true, - 'security.authenticator.x509' => true, - 'security.authorization_checker' => true, - 'security.channel_listener' => true, - 'security.command.debug_firewall' => true, - 'security.command.user_password_hash' => true, - 'security.context_listener' => true, - 'security.context_listener.0' => true, - 'security.context_listener.1' => true, - 'security.csrf.token_generator' => true, - 'security.csrf.token_manager' => true, - 'security.csrf.token_storage' => true, - 'security.event_dispatcher.dev' => true, - 'security.event_dispatcher.main' => true, - 'security.exception_listener' => true, - 'security.exception_listener.dev' => true, - 'security.exception_listener.main' => true, - 'security.firewall' => true, - 'security.firewall.authenticator' => true, - 'security.firewall.authenticator.dev' => true, - 'security.firewall.authenticator.main' => true, - 'security.firewall.config' => true, - 'security.firewall.context' => true, - 'security.firewall.context_locator' => true, - 'security.firewall.event_dispatcher_locator' => true, - 'security.firewall.lazy_context' => true, - 'security.firewall.map' => true, - 'security.firewall.map.config.dev' => true, - 'security.firewall.map.config.main' => true, - 'security.firewall.map.context.dev' => true, - 'security.firewall.map.context.main' => true, - 'security.helper' => true, - 'security.http_utils' => true, - 'security.impersonate_url_generator' => true, - 'security.ldap_locator' => true, - 'security.listener.check_authenticator_credentials' => true, - 'security.listener.csrf_protection' => true, - 'security.listener.login_throttling' => true, - 'security.listener.password_migrating' => true, - 'security.listener.session' => true, - 'security.listener.session.dev' => true, - 'security.listener.session.main' => true, - 'security.listener.user_checker' => true, - 'security.listener.user_checker.dev' => true, - 'security.listener.user_checker.main' => true, - 'security.listener.user_provider.abstract' => true, - 'security.logout.listener.clear_site_data' => true, - 'security.logout.listener.cookie_clearing' => true, - 'security.logout.listener.csrf_token_clearing' => true, - 'security.logout.listener.default' => true, - 'security.logout.listener.session' => true, - 'security.logout_listener' => true, - 'security.logout_url_generator' => true, - 'security.password_hasher' => true, - 'security.password_hasher_factory' => true, - 'security.role_hierarchy' => true, - 'security.route_loader.logout' => true, - 'security.security_token_value_resolver' => true, - 'security.token_storage' => true, - 'security.untracked_token_storage' => true, - 'security.user.provider.chain' => true, - 'security.user.provider.in_memory' => true, - 'security.user.provider.ldap' => true, - 'security.user.provider.missing' => true, - 'security.user_authenticator' => true, - 'security.user_checker' => true, - 'security.user_checker.chain.dev' => true, - 'security.user_checker.chain.main' => true, - 'security.user_checker.dev' => true, - 'security.user_checker.main' => true, - 'security.user_checker_locator' => true, - 'security.user_password_hasher' => true, - 'security.user_value_resolver' => true, - 'security.validator.user_password' => true, - 'session.abstract_handler' => true, - 'session.factory' => true, - 'session.handler' => true, - 'session.handler.native' => true, - 'session.handler.native_file' => true, - 'session.marshaller' => true, - 'session.marshalling_handler' => true, - 'session.storage.factory' => true, - 'session.storage.factory.mock_file' => true, - 'session.storage.factory.native' => true, - 'session.storage.factory.php_bridge' => true, - 'session_listener' => true, - 'slugger' => true, - 'time_based_uuid.factory' => true, - 'twig.runtime.security_csrf' => true, - 'ulid.factory' => true, - 'uri_signer' => true, - 'url_helper' => true, - 'uuid.factory' => true, - 'validate_request_listener' => true, -]; diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig.php deleted file mode 100644 index 58f2e44..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig.php +++ /dev/null @@ -1,1275 +0,0 @@ -_usedProperties['url'] = true; - $this->url = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbname($value): static - { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value; - - return $this; - } - - /** - * Defaults to "localhost" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * Defaults to "root" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function password($value): static - { - $this->_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The "doctrine.dbal.override_url" configuration key is deprecated. - * @return $this - */ - public function overrideUrl($value): static - { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbnameSuffix($value): static - { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function applicationName($value): static - { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function charset($value): static - { - $this->_usedProperties['charset'] = true; - $this->charset = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function memory($value): static - { - $this->_usedProperties['memory'] = true; - $this->memory = $value; - - return $this; - } - - /** - * The unix socket to use for MySQL - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function unixSocket($value): static - { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value; - - return $this; - } - - /** - * True to use as persistent connection for the ibm_db2 driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function persistent($value): static - { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value; - - return $this; - } - - /** - * The protocol to use for the ibm_db2 driver (default to TCPIP if omitted) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function protocol($value): static - { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value; - - return $this; - } - - /** - * True to use SERVICE_NAME as connection parameter instead of SID for Oracle - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function servicename($value): static - { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value; - - return $this; - } - - /** - * The session mode to use for the oci8 driver - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sessionMode($value): static - { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value; - - return $this; - } - - /** - * The name of a running database server to connect to for SQL Anywhere. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function server($value): static - { - $this->_usedProperties['server'] = true; - $this->server = $value; - - return $this; - } - - /** - * Override the default database (postgres) to connect to for PostgreSQL connexion. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultDbname($value): static - { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value; - - return $this; - } - - /** - * Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslmode($value): static - { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value; - - return $this; - } - - /** - * The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslrootcert($value): static - { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value; - - return $this; - } - - /** - * The path to the SSL client certificate file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcert($value): static - { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value; - - return $this; - } - - /** - * The path to the SSL client key file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslkey($value): static - { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value; - - return $this; - } - - /** - * The file name of the SSL certificate revocation list for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcrl($value): static - { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value; - - return $this; - } - - /** - * True to use a pooled server with the oci8/pdo_oracle driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function pooled($value): static - { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value; - - return $this; - } - - /** - * Configuring MultipleActiveResultSets for the pdo_sqlsrv driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function multipleActiveResultSets($value): static - { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value; - - return $this; - } - - /** - * Use savepoints for nested transactions - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useSavepoints($value): static - { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value; - - return $this; - } - - /** - * Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function instancename($value): static - { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value; - - return $this; - } - - /** - * Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connectstring($value): static - { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value; - - return $this; - } - - /** - * @default 'pdo_mysql' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function driver($value): static - { - $this->_usedProperties['driver'] = true; - $this->driver = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @deprecated The "platform_service" configuration key is deprecated since doctrine-bundle 2.9. DBAL 4 will not support setting a custom platform via connection params anymore. - * @return $this - */ - public function platformService($value): static - { - $this->_usedProperties['platformService'] = true; - $this->platformService = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function autoCommit($value): static - { - $this->_usedProperties['autoCommit'] = true; - $this->autoCommit = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function schemaFilter($value): static - { - $this->_usedProperties['schemaFilter'] = true; - $this->schemaFilter = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function logging($value): static - { - $this->_usedProperties['logging'] = true; - $this->logging = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function profiling($value): static - { - $this->_usedProperties['profiling'] = true; - $this->profiling = $value; - - return $this; - } - - /** - * Enables collecting backtraces when profiling is enabled - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function profilingCollectBacktrace($value): static - { - $this->_usedProperties['profilingCollectBacktrace'] = true; - $this->profilingCollectBacktrace = $value; - - return $this; - } - - /** - * Enables collecting schema errors when profiling is enabled - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function profilingCollectSchemaErrors($value): static - { - $this->_usedProperties['profilingCollectSchemaErrors'] = true; - $this->profilingCollectSchemaErrors = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function disableTypeComments($value): static - { - $this->_usedProperties['disableTypeComments'] = true; - $this->disableTypeComments = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function serverVersion($value): static - { - $this->_usedProperties['serverVersion'] = true; - $this->serverVersion = $value; - - return $this; - } - - /** - * @default 600 - * @param ParamConfigurator|int $value - * @return $this - */ - public function idleConnectionTtl($value): static - { - $this->_usedProperties['idleConnectionTtl'] = true; - $this->idleConnectionTtl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function driverClass($value): static - { - $this->_usedProperties['driverClass'] = true; - $this->driverClass = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function wrapperClass($value): static - { - $this->_usedProperties['wrapperClass'] = true; - $this->wrapperClass = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The "keep_slave" configuration key is deprecated since doctrine-bundle 2.2. Use the "keep_replica" configuration key instead. - * @return $this - */ - public function keepSlave($value): static - { - $this->_usedProperties['keepSlave'] = true; - $this->keepSlave = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function keepReplica($value): static - { - $this->_usedProperties['keepReplica'] = true; - $this->keepReplica = $value; - - return $this; - } - - /** - * @return $this - */ - public function option(string $key, mixed $value): static - { - $this->_usedProperties['options'] = true; - $this->options[$key] = $value; - - return $this; - } - - /** - * @return $this - */ - public function mappingType(string $name, mixed $value): static - { - $this->_usedProperties['mappingTypes'] = true; - $this->mappingTypes[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function defaultTableOption(string $name, mixed $value): static - { - $this->_usedProperties['defaultTableOptions'] = true; - $this->defaultTableOptions[$name] = $value; - - return $this; - } - - /** - * @default 'doctrine.dbal.default_schema_manager_factory' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function schemaManagerFactory($value): static - { - $this->_usedProperties['schemaManagerFactory'] = true; - $this->schemaManagerFactory = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function resultCache($value): static - { - $this->_usedProperties['resultCache'] = true; - $this->resultCache = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @deprecated The "slaves" configuration key will be renamed to "replicas" in doctrine-bundle 3.0. "slaves" is deprecated since doctrine-bundle 2.2. - * @return \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig : static) - */ - public function slave(string $name, mixed $value = []): \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['slaves'] = true; - $this->slaves[$name] = $value; - - return $this; - } - - if (!isset($this->slaves[$name]) || !$this->slaves[$name] instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig) { - $this->_usedProperties['slaves'] = true; - $this->slaves[$name] = new \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "slave()" has already been initialized. You cannot pass values the second time you call slave().'); - } - - return $this->slaves[$name]; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig : static) - */ - public function replica(string $name, mixed $value = []): \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['replicas'] = true; - $this->replicas[$name] = $value; - - return $this; - } - - if (!isset($this->replicas[$name]) || !$this->replicas[$name] instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig) { - $this->_usedProperties['replicas'] = true; - $this->replicas[$name] = new \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "replica()" has already been initialized. You cannot pass values the second time you call replica().'); - } - - return $this->replicas[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('url', $value)) { - $this->_usedProperties['url'] = true; - $this->url = $value['url']; - unset($value['url']); - } - - if (array_key_exists('dbname', $value)) { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value['dbname']; - unset($value['dbname']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if (array_key_exists('override_url', $value)) { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value['override_url']; - unset($value['override_url']); - } - - if (array_key_exists('dbname_suffix', $value)) { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value['dbname_suffix']; - unset($value['dbname_suffix']); - } - - if (array_key_exists('application_name', $value)) { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value['application_name']; - unset($value['application_name']); - } - - if (array_key_exists('charset', $value)) { - $this->_usedProperties['charset'] = true; - $this->charset = $value['charset']; - unset($value['charset']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('memory', $value)) { - $this->_usedProperties['memory'] = true; - $this->memory = $value['memory']; - unset($value['memory']); - } - - if (array_key_exists('unix_socket', $value)) { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value['unix_socket']; - unset($value['unix_socket']); - } - - if (array_key_exists('persistent', $value)) { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value['persistent']; - unset($value['persistent']); - } - - if (array_key_exists('protocol', $value)) { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value['protocol']; - unset($value['protocol']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('servicename', $value)) { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value['servicename']; - unset($value['servicename']); - } - - if (array_key_exists('sessionMode', $value)) { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value['sessionMode']; - unset($value['sessionMode']); - } - - if (array_key_exists('server', $value)) { - $this->_usedProperties['server'] = true; - $this->server = $value['server']; - unset($value['server']); - } - - if (array_key_exists('default_dbname', $value)) { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value['default_dbname']; - unset($value['default_dbname']); - } - - if (array_key_exists('sslmode', $value)) { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value['sslmode']; - unset($value['sslmode']); - } - - if (array_key_exists('sslrootcert', $value)) { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value['sslrootcert']; - unset($value['sslrootcert']); - } - - if (array_key_exists('sslcert', $value)) { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value['sslcert']; - unset($value['sslcert']); - } - - if (array_key_exists('sslkey', $value)) { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value['sslkey']; - unset($value['sslkey']); - } - - if (array_key_exists('sslcrl', $value)) { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value['sslcrl']; - unset($value['sslcrl']); - } - - if (array_key_exists('pooled', $value)) { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value['pooled']; - unset($value['pooled']); - } - - if (array_key_exists('MultipleActiveResultSets', $value)) { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value['MultipleActiveResultSets']; - unset($value['MultipleActiveResultSets']); - } - - if (array_key_exists('use_savepoints', $value)) { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value['use_savepoints']; - unset($value['use_savepoints']); - } - - if (array_key_exists('instancename', $value)) { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value['instancename']; - unset($value['instancename']); - } - - if (array_key_exists('connectstring', $value)) { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value['connectstring']; - unset($value['connectstring']); - } - - if (array_key_exists('driver', $value)) { - $this->_usedProperties['driver'] = true; - $this->driver = $value['driver']; - unset($value['driver']); - } - - if (array_key_exists('platform_service', $value)) { - $this->_usedProperties['platformService'] = true; - $this->platformService = $value['platform_service']; - unset($value['platform_service']); - } - - if (array_key_exists('auto_commit', $value)) { - $this->_usedProperties['autoCommit'] = true; - $this->autoCommit = $value['auto_commit']; - unset($value['auto_commit']); - } - - if (array_key_exists('schema_filter', $value)) { - $this->_usedProperties['schemaFilter'] = true; - $this->schemaFilter = $value['schema_filter']; - unset($value['schema_filter']); - } - - if (array_key_exists('logging', $value)) { - $this->_usedProperties['logging'] = true; - $this->logging = $value['logging']; - unset($value['logging']); - } - - if (array_key_exists('profiling', $value)) { - $this->_usedProperties['profiling'] = true; - $this->profiling = $value['profiling']; - unset($value['profiling']); - } - - if (array_key_exists('profiling_collect_backtrace', $value)) { - $this->_usedProperties['profilingCollectBacktrace'] = true; - $this->profilingCollectBacktrace = $value['profiling_collect_backtrace']; - unset($value['profiling_collect_backtrace']); - } - - if (array_key_exists('profiling_collect_schema_errors', $value)) { - $this->_usedProperties['profilingCollectSchemaErrors'] = true; - $this->profilingCollectSchemaErrors = $value['profiling_collect_schema_errors']; - unset($value['profiling_collect_schema_errors']); - } - - if (array_key_exists('disable_type_comments', $value)) { - $this->_usedProperties['disableTypeComments'] = true; - $this->disableTypeComments = $value['disable_type_comments']; - unset($value['disable_type_comments']); - } - - if (array_key_exists('server_version', $value)) { - $this->_usedProperties['serverVersion'] = true; - $this->serverVersion = $value['server_version']; - unset($value['server_version']); - } - - if (array_key_exists('idle_connection_ttl', $value)) { - $this->_usedProperties['idleConnectionTtl'] = true; - $this->idleConnectionTtl = $value['idle_connection_ttl']; - unset($value['idle_connection_ttl']); - } - - if (array_key_exists('driver_class', $value)) { - $this->_usedProperties['driverClass'] = true; - $this->driverClass = $value['driver_class']; - unset($value['driver_class']); - } - - if (array_key_exists('wrapper_class', $value)) { - $this->_usedProperties['wrapperClass'] = true; - $this->wrapperClass = $value['wrapper_class']; - unset($value['wrapper_class']); - } - - if (array_key_exists('keep_slave', $value)) { - $this->_usedProperties['keepSlave'] = true; - $this->keepSlave = $value['keep_slave']; - unset($value['keep_slave']); - } - - if (array_key_exists('keep_replica', $value)) { - $this->_usedProperties['keepReplica'] = true; - $this->keepReplica = $value['keep_replica']; - unset($value['keep_replica']); - } - - if (array_key_exists('options', $value)) { - $this->_usedProperties['options'] = true; - $this->options = $value['options']; - unset($value['options']); - } - - if (array_key_exists('mapping_types', $value)) { - $this->_usedProperties['mappingTypes'] = true; - $this->mappingTypes = $value['mapping_types']; - unset($value['mapping_types']); - } - - if (array_key_exists('default_table_options', $value)) { - $this->_usedProperties['defaultTableOptions'] = true; - $this->defaultTableOptions = $value['default_table_options']; - unset($value['default_table_options']); - } - - if (array_key_exists('schema_manager_factory', $value)) { - $this->_usedProperties['schemaManagerFactory'] = true; - $this->schemaManagerFactory = $value['schema_manager_factory']; - unset($value['schema_manager_factory']); - } - - if (array_key_exists('result_cache', $value)) { - $this->_usedProperties['resultCache'] = true; - $this->resultCache = $value['result_cache']; - unset($value['result_cache']); - } - - if (array_key_exists('slaves', $value)) { - $this->_usedProperties['slaves'] = true; - $this->slaves = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig($v) : $v, $value['slaves']); - unset($value['slaves']); - } - - if (array_key_exists('replicas', $value)) { - $this->_usedProperties['replicas'] = true; - $this->replicas = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig($v) : $v, $value['replicas']); - unset($value['replicas']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['url'])) { - $output['url'] = $this->url; - } - if (isset($this->_usedProperties['dbname'])) { - $output['dbname'] = $this->dbname; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - if (isset($this->_usedProperties['overrideUrl'])) { - $output['override_url'] = $this->overrideUrl; - } - if (isset($this->_usedProperties['dbnameSuffix'])) { - $output['dbname_suffix'] = $this->dbnameSuffix; - } - if (isset($this->_usedProperties['applicationName'])) { - $output['application_name'] = $this->applicationName; - } - if (isset($this->_usedProperties['charset'])) { - $output['charset'] = $this->charset; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['memory'])) { - $output['memory'] = $this->memory; - } - if (isset($this->_usedProperties['unixSocket'])) { - $output['unix_socket'] = $this->unixSocket; - } - if (isset($this->_usedProperties['persistent'])) { - $output['persistent'] = $this->persistent; - } - if (isset($this->_usedProperties['protocol'])) { - $output['protocol'] = $this->protocol; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['servicename'])) { - $output['servicename'] = $this->servicename; - } - if (isset($this->_usedProperties['sessionMode'])) { - $output['sessionMode'] = $this->sessionMode; - } - if (isset($this->_usedProperties['server'])) { - $output['server'] = $this->server; - } - if (isset($this->_usedProperties['defaultDbname'])) { - $output['default_dbname'] = $this->defaultDbname; - } - if (isset($this->_usedProperties['sslmode'])) { - $output['sslmode'] = $this->sslmode; - } - if (isset($this->_usedProperties['sslrootcert'])) { - $output['sslrootcert'] = $this->sslrootcert; - } - if (isset($this->_usedProperties['sslcert'])) { - $output['sslcert'] = $this->sslcert; - } - if (isset($this->_usedProperties['sslkey'])) { - $output['sslkey'] = $this->sslkey; - } - if (isset($this->_usedProperties['sslcrl'])) { - $output['sslcrl'] = $this->sslcrl; - } - if (isset($this->_usedProperties['pooled'])) { - $output['pooled'] = $this->pooled; - } - if (isset($this->_usedProperties['multipleActiveResultSets'])) { - $output['MultipleActiveResultSets'] = $this->multipleActiveResultSets; - } - if (isset($this->_usedProperties['useSavepoints'])) { - $output['use_savepoints'] = $this->useSavepoints; - } - if (isset($this->_usedProperties['instancename'])) { - $output['instancename'] = $this->instancename; - } - if (isset($this->_usedProperties['connectstring'])) { - $output['connectstring'] = $this->connectstring; - } - if (isset($this->_usedProperties['driver'])) { - $output['driver'] = $this->driver; - } - if (isset($this->_usedProperties['platformService'])) { - $output['platform_service'] = $this->platformService; - } - if (isset($this->_usedProperties['autoCommit'])) { - $output['auto_commit'] = $this->autoCommit; - } - if (isset($this->_usedProperties['schemaFilter'])) { - $output['schema_filter'] = $this->schemaFilter; - } - if (isset($this->_usedProperties['logging'])) { - $output['logging'] = $this->logging; - } - if (isset($this->_usedProperties['profiling'])) { - $output['profiling'] = $this->profiling; - } - if (isset($this->_usedProperties['profilingCollectBacktrace'])) { - $output['profiling_collect_backtrace'] = $this->profilingCollectBacktrace; - } - if (isset($this->_usedProperties['profilingCollectSchemaErrors'])) { - $output['profiling_collect_schema_errors'] = $this->profilingCollectSchemaErrors; - } - if (isset($this->_usedProperties['disableTypeComments'])) { - $output['disable_type_comments'] = $this->disableTypeComments; - } - if (isset($this->_usedProperties['serverVersion'])) { - $output['server_version'] = $this->serverVersion; - } - if (isset($this->_usedProperties['idleConnectionTtl'])) { - $output['idle_connection_ttl'] = $this->idleConnectionTtl; - } - if (isset($this->_usedProperties['driverClass'])) { - $output['driver_class'] = $this->driverClass; - } - if (isset($this->_usedProperties['wrapperClass'])) { - $output['wrapper_class'] = $this->wrapperClass; - } - if (isset($this->_usedProperties['keepSlave'])) { - $output['keep_slave'] = $this->keepSlave; - } - if (isset($this->_usedProperties['keepReplica'])) { - $output['keep_replica'] = $this->keepReplica; - } - if (isset($this->_usedProperties['options'])) { - $output['options'] = $this->options; - } - if (isset($this->_usedProperties['mappingTypes'])) { - $output['mapping_types'] = $this->mappingTypes; - } - if (isset($this->_usedProperties['defaultTableOptions'])) { - $output['default_table_options'] = $this->defaultTableOptions; - } - if (isset($this->_usedProperties['schemaManagerFactory'])) { - $output['schema_manager_factory'] = $this->schemaManagerFactory; - } - if (isset($this->_usedProperties['resultCache'])) { - $output['result_cache'] = $this->resultCache; - } - if (isset($this->_usedProperties['slaves'])) { - $output['slaves'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig\SlaveConfig ? $v->toArray() : $v, $this->slaves); - } - if (isset($this->_usedProperties['replicas'])) { - $output['replicas'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig\ReplicaConfig ? $v->toArray() : $v, $this->replicas); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/ReplicaConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/ReplicaConfig.php deleted file mode 100644 index 3fee328..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/ReplicaConfig.php +++ /dev/null @@ -1,743 +0,0 @@ -_usedProperties['url'] = true; - $this->url = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbname($value): static - { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value; - - return $this; - } - - /** - * Defaults to "localhost" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * Defaults to "root" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function password($value): static - { - $this->_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The "doctrine.dbal.override_url" configuration key is deprecated. - * @return $this - */ - public function overrideUrl($value): static - { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbnameSuffix($value): static - { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function applicationName($value): static - { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function charset($value): static - { - $this->_usedProperties['charset'] = true; - $this->charset = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function memory($value): static - { - $this->_usedProperties['memory'] = true; - $this->memory = $value; - - return $this; - } - - /** - * The unix socket to use for MySQL - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function unixSocket($value): static - { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value; - - return $this; - } - - /** - * True to use as persistent connection for the ibm_db2 driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function persistent($value): static - { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value; - - return $this; - } - - /** - * The protocol to use for the ibm_db2 driver (default to TCPIP if omitted) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function protocol($value): static - { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value; - - return $this; - } - - /** - * True to use SERVICE_NAME as connection parameter instead of SID for Oracle - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function servicename($value): static - { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value; - - return $this; - } - - /** - * The session mode to use for the oci8 driver - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sessionMode($value): static - { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value; - - return $this; - } - - /** - * The name of a running database server to connect to for SQL Anywhere. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function server($value): static - { - $this->_usedProperties['server'] = true; - $this->server = $value; - - return $this; - } - - /** - * Override the default database (postgres) to connect to for PostgreSQL connexion. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultDbname($value): static - { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value; - - return $this; - } - - /** - * Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslmode($value): static - { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value; - - return $this; - } - - /** - * The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslrootcert($value): static - { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value; - - return $this; - } - - /** - * The path to the SSL client certificate file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcert($value): static - { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value; - - return $this; - } - - /** - * The path to the SSL client key file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslkey($value): static - { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value; - - return $this; - } - - /** - * The file name of the SSL certificate revocation list for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcrl($value): static - { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value; - - return $this; - } - - /** - * True to use a pooled server with the oci8/pdo_oracle driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function pooled($value): static - { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value; - - return $this; - } - - /** - * Configuring MultipleActiveResultSets for the pdo_sqlsrv driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function multipleActiveResultSets($value): static - { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value; - - return $this; - } - - /** - * Use savepoints for nested transactions - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useSavepoints($value): static - { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value; - - return $this; - } - - /** - * Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function instancename($value): static - { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value; - - return $this; - } - - /** - * Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connectstring($value): static - { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('url', $value)) { - $this->_usedProperties['url'] = true; - $this->url = $value['url']; - unset($value['url']); - } - - if (array_key_exists('dbname', $value)) { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value['dbname']; - unset($value['dbname']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if (array_key_exists('override_url', $value)) { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value['override_url']; - unset($value['override_url']); - } - - if (array_key_exists('dbname_suffix', $value)) { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value['dbname_suffix']; - unset($value['dbname_suffix']); - } - - if (array_key_exists('application_name', $value)) { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value['application_name']; - unset($value['application_name']); - } - - if (array_key_exists('charset', $value)) { - $this->_usedProperties['charset'] = true; - $this->charset = $value['charset']; - unset($value['charset']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('memory', $value)) { - $this->_usedProperties['memory'] = true; - $this->memory = $value['memory']; - unset($value['memory']); - } - - if (array_key_exists('unix_socket', $value)) { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value['unix_socket']; - unset($value['unix_socket']); - } - - if (array_key_exists('persistent', $value)) { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value['persistent']; - unset($value['persistent']); - } - - if (array_key_exists('protocol', $value)) { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value['protocol']; - unset($value['protocol']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('servicename', $value)) { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value['servicename']; - unset($value['servicename']); - } - - if (array_key_exists('sessionMode', $value)) { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value['sessionMode']; - unset($value['sessionMode']); - } - - if (array_key_exists('server', $value)) { - $this->_usedProperties['server'] = true; - $this->server = $value['server']; - unset($value['server']); - } - - if (array_key_exists('default_dbname', $value)) { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value['default_dbname']; - unset($value['default_dbname']); - } - - if (array_key_exists('sslmode', $value)) { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value['sslmode']; - unset($value['sslmode']); - } - - if (array_key_exists('sslrootcert', $value)) { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value['sslrootcert']; - unset($value['sslrootcert']); - } - - if (array_key_exists('sslcert', $value)) { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value['sslcert']; - unset($value['sslcert']); - } - - if (array_key_exists('sslkey', $value)) { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value['sslkey']; - unset($value['sslkey']); - } - - if (array_key_exists('sslcrl', $value)) { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value['sslcrl']; - unset($value['sslcrl']); - } - - if (array_key_exists('pooled', $value)) { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value['pooled']; - unset($value['pooled']); - } - - if (array_key_exists('MultipleActiveResultSets', $value)) { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value['MultipleActiveResultSets']; - unset($value['MultipleActiveResultSets']); - } - - if (array_key_exists('use_savepoints', $value)) { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value['use_savepoints']; - unset($value['use_savepoints']); - } - - if (array_key_exists('instancename', $value)) { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value['instancename']; - unset($value['instancename']); - } - - if (array_key_exists('connectstring', $value)) { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value['connectstring']; - unset($value['connectstring']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['url'])) { - $output['url'] = $this->url; - } - if (isset($this->_usedProperties['dbname'])) { - $output['dbname'] = $this->dbname; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - if (isset($this->_usedProperties['overrideUrl'])) { - $output['override_url'] = $this->overrideUrl; - } - if (isset($this->_usedProperties['dbnameSuffix'])) { - $output['dbname_suffix'] = $this->dbnameSuffix; - } - if (isset($this->_usedProperties['applicationName'])) { - $output['application_name'] = $this->applicationName; - } - if (isset($this->_usedProperties['charset'])) { - $output['charset'] = $this->charset; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['memory'])) { - $output['memory'] = $this->memory; - } - if (isset($this->_usedProperties['unixSocket'])) { - $output['unix_socket'] = $this->unixSocket; - } - if (isset($this->_usedProperties['persistent'])) { - $output['persistent'] = $this->persistent; - } - if (isset($this->_usedProperties['protocol'])) { - $output['protocol'] = $this->protocol; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['servicename'])) { - $output['servicename'] = $this->servicename; - } - if (isset($this->_usedProperties['sessionMode'])) { - $output['sessionMode'] = $this->sessionMode; - } - if (isset($this->_usedProperties['server'])) { - $output['server'] = $this->server; - } - if (isset($this->_usedProperties['defaultDbname'])) { - $output['default_dbname'] = $this->defaultDbname; - } - if (isset($this->_usedProperties['sslmode'])) { - $output['sslmode'] = $this->sslmode; - } - if (isset($this->_usedProperties['sslrootcert'])) { - $output['sslrootcert'] = $this->sslrootcert; - } - if (isset($this->_usedProperties['sslcert'])) { - $output['sslcert'] = $this->sslcert; - } - if (isset($this->_usedProperties['sslkey'])) { - $output['sslkey'] = $this->sslkey; - } - if (isset($this->_usedProperties['sslcrl'])) { - $output['sslcrl'] = $this->sslcrl; - } - if (isset($this->_usedProperties['pooled'])) { - $output['pooled'] = $this->pooled; - } - if (isset($this->_usedProperties['multipleActiveResultSets'])) { - $output['MultipleActiveResultSets'] = $this->multipleActiveResultSets; - } - if (isset($this->_usedProperties['useSavepoints'])) { - $output['use_savepoints'] = $this->useSavepoints; - } - if (isset($this->_usedProperties['instancename'])) { - $output['instancename'] = $this->instancename; - } - if (isset($this->_usedProperties['connectstring'])) { - $output['connectstring'] = $this->connectstring; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/SlaveConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/SlaveConfig.php deleted file mode 100644 index 82b37f0..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/ConnectionConfig/SlaveConfig.php +++ /dev/null @@ -1,743 +0,0 @@ -_usedProperties['url'] = true; - $this->url = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbname($value): static - { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value; - - return $this; - } - - /** - * Defaults to "localhost" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * Defaults to "root" at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * Defaults to null at runtime. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function password($value): static - { - $this->_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The "doctrine.dbal.override_url" configuration key is deprecated. - * @return $this - */ - public function overrideUrl($value): static - { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dbnameSuffix($value): static - { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function applicationName($value): static - { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function charset($value): static - { - $this->_usedProperties['charset'] = true; - $this->charset = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function memory($value): static - { - $this->_usedProperties['memory'] = true; - $this->memory = $value; - - return $this; - } - - /** - * The unix socket to use for MySQL - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function unixSocket($value): static - { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value; - - return $this; - } - - /** - * True to use as persistent connection for the ibm_db2 driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function persistent($value): static - { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value; - - return $this; - } - - /** - * The protocol to use for the ibm_db2 driver (default to TCPIP if omitted) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function protocol($value): static - { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value; - - return $this; - } - - /** - * True to use SERVICE_NAME as connection parameter instead of SID for Oracle - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function servicename($value): static - { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value; - - return $this; - } - - /** - * The session mode to use for the oci8 driver - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sessionMode($value): static - { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value; - - return $this; - } - - /** - * The name of a running database server to connect to for SQL Anywhere. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function server($value): static - { - $this->_usedProperties['server'] = true; - $this->server = $value; - - return $this; - } - - /** - * Override the default database (postgres) to connect to for PostgreSQL connexion. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultDbname($value): static - { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value; - - return $this; - } - - /** - * Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslmode($value): static - { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value; - - return $this; - } - - /** - * The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslrootcert($value): static - { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value; - - return $this; - } - - /** - * The path to the SSL client certificate file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcert($value): static - { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value; - - return $this; - } - - /** - * The path to the SSL client key file for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslkey($value): static - { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value; - - return $this; - } - - /** - * The file name of the SSL certificate revocation list for PostgreSQL. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function sslcrl($value): static - { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value; - - return $this; - } - - /** - * True to use a pooled server with the oci8/pdo_oracle driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function pooled($value): static - { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value; - - return $this; - } - - /** - * Configuring MultipleActiveResultSets for the pdo_sqlsrv driver - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function multipleActiveResultSets($value): static - { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value; - - return $this; - } - - /** - * Use savepoints for nested transactions - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useSavepoints($value): static - { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value; - - return $this; - } - - /** - * Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function instancename($value): static - { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value; - - return $this; - } - - /** - * Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connectstring($value): static - { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('url', $value)) { - $this->_usedProperties['url'] = true; - $this->url = $value['url']; - unset($value['url']); - } - - if (array_key_exists('dbname', $value)) { - $this->_usedProperties['dbname'] = true; - $this->dbname = $value['dbname']; - unset($value['dbname']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if (array_key_exists('override_url', $value)) { - $this->_usedProperties['overrideUrl'] = true; - $this->overrideUrl = $value['override_url']; - unset($value['override_url']); - } - - if (array_key_exists('dbname_suffix', $value)) { - $this->_usedProperties['dbnameSuffix'] = true; - $this->dbnameSuffix = $value['dbname_suffix']; - unset($value['dbname_suffix']); - } - - if (array_key_exists('application_name', $value)) { - $this->_usedProperties['applicationName'] = true; - $this->applicationName = $value['application_name']; - unset($value['application_name']); - } - - if (array_key_exists('charset', $value)) { - $this->_usedProperties['charset'] = true; - $this->charset = $value['charset']; - unset($value['charset']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('memory', $value)) { - $this->_usedProperties['memory'] = true; - $this->memory = $value['memory']; - unset($value['memory']); - } - - if (array_key_exists('unix_socket', $value)) { - $this->_usedProperties['unixSocket'] = true; - $this->unixSocket = $value['unix_socket']; - unset($value['unix_socket']); - } - - if (array_key_exists('persistent', $value)) { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value['persistent']; - unset($value['persistent']); - } - - if (array_key_exists('protocol', $value)) { - $this->_usedProperties['protocol'] = true; - $this->protocol = $value['protocol']; - unset($value['protocol']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('servicename', $value)) { - $this->_usedProperties['servicename'] = true; - $this->servicename = $value['servicename']; - unset($value['servicename']); - } - - if (array_key_exists('sessionMode', $value)) { - $this->_usedProperties['sessionMode'] = true; - $this->sessionMode = $value['sessionMode']; - unset($value['sessionMode']); - } - - if (array_key_exists('server', $value)) { - $this->_usedProperties['server'] = true; - $this->server = $value['server']; - unset($value['server']); - } - - if (array_key_exists('default_dbname', $value)) { - $this->_usedProperties['defaultDbname'] = true; - $this->defaultDbname = $value['default_dbname']; - unset($value['default_dbname']); - } - - if (array_key_exists('sslmode', $value)) { - $this->_usedProperties['sslmode'] = true; - $this->sslmode = $value['sslmode']; - unset($value['sslmode']); - } - - if (array_key_exists('sslrootcert', $value)) { - $this->_usedProperties['sslrootcert'] = true; - $this->sslrootcert = $value['sslrootcert']; - unset($value['sslrootcert']); - } - - if (array_key_exists('sslcert', $value)) { - $this->_usedProperties['sslcert'] = true; - $this->sslcert = $value['sslcert']; - unset($value['sslcert']); - } - - if (array_key_exists('sslkey', $value)) { - $this->_usedProperties['sslkey'] = true; - $this->sslkey = $value['sslkey']; - unset($value['sslkey']); - } - - if (array_key_exists('sslcrl', $value)) { - $this->_usedProperties['sslcrl'] = true; - $this->sslcrl = $value['sslcrl']; - unset($value['sslcrl']); - } - - if (array_key_exists('pooled', $value)) { - $this->_usedProperties['pooled'] = true; - $this->pooled = $value['pooled']; - unset($value['pooled']); - } - - if (array_key_exists('MultipleActiveResultSets', $value)) { - $this->_usedProperties['multipleActiveResultSets'] = true; - $this->multipleActiveResultSets = $value['MultipleActiveResultSets']; - unset($value['MultipleActiveResultSets']); - } - - if (array_key_exists('use_savepoints', $value)) { - $this->_usedProperties['useSavepoints'] = true; - $this->useSavepoints = $value['use_savepoints']; - unset($value['use_savepoints']); - } - - if (array_key_exists('instancename', $value)) { - $this->_usedProperties['instancename'] = true; - $this->instancename = $value['instancename']; - unset($value['instancename']); - } - - if (array_key_exists('connectstring', $value)) { - $this->_usedProperties['connectstring'] = true; - $this->connectstring = $value['connectstring']; - unset($value['connectstring']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['url'])) { - $output['url'] = $this->url; - } - if (isset($this->_usedProperties['dbname'])) { - $output['dbname'] = $this->dbname; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - if (isset($this->_usedProperties['overrideUrl'])) { - $output['override_url'] = $this->overrideUrl; - } - if (isset($this->_usedProperties['dbnameSuffix'])) { - $output['dbname_suffix'] = $this->dbnameSuffix; - } - if (isset($this->_usedProperties['applicationName'])) { - $output['application_name'] = $this->applicationName; - } - if (isset($this->_usedProperties['charset'])) { - $output['charset'] = $this->charset; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['memory'])) { - $output['memory'] = $this->memory; - } - if (isset($this->_usedProperties['unixSocket'])) { - $output['unix_socket'] = $this->unixSocket; - } - if (isset($this->_usedProperties['persistent'])) { - $output['persistent'] = $this->persistent; - } - if (isset($this->_usedProperties['protocol'])) { - $output['protocol'] = $this->protocol; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['servicename'])) { - $output['servicename'] = $this->servicename; - } - if (isset($this->_usedProperties['sessionMode'])) { - $output['sessionMode'] = $this->sessionMode; - } - if (isset($this->_usedProperties['server'])) { - $output['server'] = $this->server; - } - if (isset($this->_usedProperties['defaultDbname'])) { - $output['default_dbname'] = $this->defaultDbname; - } - if (isset($this->_usedProperties['sslmode'])) { - $output['sslmode'] = $this->sslmode; - } - if (isset($this->_usedProperties['sslrootcert'])) { - $output['sslrootcert'] = $this->sslrootcert; - } - if (isset($this->_usedProperties['sslcert'])) { - $output['sslcert'] = $this->sslcert; - } - if (isset($this->_usedProperties['sslkey'])) { - $output['sslkey'] = $this->sslkey; - } - if (isset($this->_usedProperties['sslcrl'])) { - $output['sslcrl'] = $this->sslcrl; - } - if (isset($this->_usedProperties['pooled'])) { - $output['pooled'] = $this->pooled; - } - if (isset($this->_usedProperties['multipleActiveResultSets'])) { - $output['MultipleActiveResultSets'] = $this->multipleActiveResultSets; - } - if (isset($this->_usedProperties['useSavepoints'])) { - $output['use_savepoints'] = $this->useSavepoints; - } - if (isset($this->_usedProperties['instancename'])) { - $output['instancename'] = $this->instancename; - } - if (isset($this->_usedProperties['connectstring'])) { - $output['connectstring'] = $this->connectstring; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/TypeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/TypeConfig.php deleted file mode 100644 index 0077d85..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Dbal/TypeConfig.php +++ /dev/null @@ -1,76 +0,0 @@ -_usedProperties['class'] = true; - $this->class = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The doctrine-bundle type commenting features were removed; the corresponding config parameter was deprecated in 2.0 and will be dropped in 3.0. - * @return $this - */ - public function commented($value): static - { - $this->_usedProperties['commented'] = true; - $this->commented = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('class', $value)) { - $this->_usedProperties['class'] = true; - $this->class = $value['class']; - unset($value['class']); - } - - if (array_key_exists('commented', $value)) { - $this->_usedProperties['commented'] = true; - $this->commented = $value['commented']; - unset($value['commented']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['class'])) { - $output['class'] = $this->class; - } - if (isset($this->_usedProperties['commented'])) { - $output['commented'] = $this->commented; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/DbalConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/DbalConfig.php deleted file mode 100644 index c24b4d8..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/DbalConfig.php +++ /dev/null @@ -1,146 +0,0 @@ -_usedProperties['defaultConnection'] = true; - $this->defaultConnection = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Dbal\TypeConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Dbal\TypeConfig : static) - */ - public function type(string $name, string|array $value = []): \Symfony\Config\Doctrine\Dbal\TypeConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['types'] = true; - $this->types[$name] = $value; - - return $this; - } - - if (!isset($this->types[$name]) || !$this->types[$name] instanceof \Symfony\Config\Doctrine\Dbal\TypeConfig) { - $this->_usedProperties['types'] = true; - $this->types[$name] = new \Symfony\Config\Doctrine\Dbal\TypeConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "type()" has already been initialized. You cannot pass values the second time you call type().'); - } - - return $this->types[$name]; - } - - /** - * @return $this - */ - public function driverScheme(string $scheme, mixed $value): static - { - $this->_usedProperties['driverSchemes'] = true; - $this->driverSchemes[$scheme] = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Dbal\ConnectionConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Dbal\ConnectionConfig : static) - */ - public function connection(string $name, mixed $value = []): \Symfony\Config\Doctrine\Dbal\ConnectionConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['connections'] = true; - $this->connections[$name] = $value; - - return $this; - } - - if (!isset($this->connections[$name]) || !$this->connections[$name] instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig) { - $this->_usedProperties['connections'] = true; - $this->connections[$name] = new \Symfony\Config\Doctrine\Dbal\ConnectionConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "connection()" has already been initialized. You cannot pass values the second time you call connection().'); - } - - return $this->connections[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('default_connection', $value)) { - $this->_usedProperties['defaultConnection'] = true; - $this->defaultConnection = $value['default_connection']; - unset($value['default_connection']); - } - - if (array_key_exists('types', $value)) { - $this->_usedProperties['types'] = true; - $this->types = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Dbal\TypeConfig($v) : $v, $value['types']); - unset($value['types']); - } - - if (array_key_exists('driver_schemes', $value)) { - $this->_usedProperties['driverSchemes'] = true; - $this->driverSchemes = $value['driver_schemes']; - unset($value['driver_schemes']); - } - - if (array_key_exists('connections', $value)) { - $this->_usedProperties['connections'] = true; - $this->connections = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Dbal\ConnectionConfig($v) : $v, $value['connections']); - unset($value['connections']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['defaultConnection'])) { - $output['default_connection'] = $this->defaultConnection; - } - if (isset($this->_usedProperties['types'])) { - $output['types'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Dbal\TypeConfig ? $v->toArray() : $v, $this->types); - } - if (isset($this->_usedProperties['driverSchemes'])) { - $output['driver_schemes'] = $this->driverSchemes; - } - if (isset($this->_usedProperties['connections'])) { - $output['connections'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Dbal\ConnectionConfig ? $v->toArray() : $v, $this->connections); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/ControllerResolverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/ControllerResolverConfig.php deleted file mode 100644 index 6e0e1f5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/ControllerResolverConfig.php +++ /dev/null @@ -1,100 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * Set to false to disable using route placeholders as lookup criteria when the primary key doesn't match the argument name - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function autoMapping($value): static - { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping = $value; - - return $this; - } - - /** - * Set to true to fetch the entity from the database instead of using the cache, if any - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function evictCache($value): static - { - $this->_usedProperties['evictCache'] = true; - $this->evictCache = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('auto_mapping', $value)) { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping = $value['auto_mapping']; - unset($value['auto_mapping']); - } - - if (array_key_exists('evict_cache', $value)) { - $this->_usedProperties['evictCache'] = true; - $this->evictCache = $value['evict_cache']; - unset($value['evict_cache']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['autoMapping'])) { - $output['auto_mapping'] = $this->autoMapping; - } - if (isset($this->_usedProperties['evictCache'])) { - $output['evict_cache'] = $this->evictCache; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig.php deleted file mode 100644 index ef42b37..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig.php +++ /dev/null @@ -1,662 +0,0 @@ -_usedProperties['queryCacheDriver'] = true; - $this->queryCacheDriver = $value; - - return $this; - } - - if (!$this->queryCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\QueryCacheDriverConfig) { - $this->_usedProperties['queryCacheDriver'] = true; - $this->queryCacheDriver = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\QueryCacheDriverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "queryCacheDriver()" has already been initialized. You cannot pass values the second time you call queryCacheDriver().'); - } - - return $this->queryCacheDriver; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig : static) - */ - public function metadataCacheDriver(string|array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['metadataCacheDriver'] = true; - $this->metadataCacheDriver = $value; - - return $this; - } - - if (!$this->metadataCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig) { - $this->_usedProperties['metadataCacheDriver'] = true; - $this->metadataCacheDriver = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "metadataCacheDriver()" has already been initialized. You cannot pass values the second time you call metadataCacheDriver().'); - } - - return $this->metadataCacheDriver; - } - - /** - * @template TValue - * @param TValue $value - * @default {"type":null} - * @return \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig : static) - */ - public function resultCacheDriver(string|array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['resultCacheDriver'] = true; - $this->resultCacheDriver = $value; - - return $this; - } - - if (!$this->resultCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig) { - $this->_usedProperties['resultCacheDriver'] = true; - $this->resultCacheDriver = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "resultCacheDriver()" has already been initialized. You cannot pass values the second time you call resultCacheDriver().'); - } - - return $this->resultCacheDriver; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig : static) - */ - public function entityListeners(mixed $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['entityListeners'] = true; - $this->entityListeners = $value; - - return $this; - } - - if (!$this->entityListeners instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig) { - $this->_usedProperties['entityListeners'] = true; - $this->entityListeners = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "entityListeners()" has already been initialized. You cannot pass values the second time you call entityListeners().'); - } - - return $this->entityListeners; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connection($value): static - { - $this->_usedProperties['connection'] = true; - $this->connection = $value; - - return $this; - } - - /** - * @default 'Doctrine\\ORM\\Mapping\\ClassMetadataFactory' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function classMetadataFactoryName($value): static - { - $this->_usedProperties['classMetadataFactoryName'] = true; - $this->classMetadataFactoryName = $value; - - return $this; - } - - /** - * @default 'Doctrine\\ORM\\EntityRepository' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultRepositoryClass($value): static - { - $this->_usedProperties['defaultRepositoryClass'] = true; - $this->defaultRepositoryClass = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function autoMapping($value): static - { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping = $value; - - return $this; - } - - /** - * Enables the new native implementation of PHP lazy objects instead of generated proxies - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableNativeLazyObjects($value): static - { - $this->_usedProperties['enableNativeLazyObjects'] = true; - $this->enableNativeLazyObjects = $value; - - return $this; - } - - /** - * @default 'doctrine.orm.naming_strategy.default' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function namingStrategy($value): static - { - $this->_usedProperties['namingStrategy'] = true; - $this->namingStrategy = $value; - - return $this; - } - - /** - * @default 'doctrine.orm.quote_strategy.default' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function quoteStrategy($value): static - { - $this->_usedProperties['quoteStrategy'] = true; - $this->quoteStrategy = $value; - - return $this; - } - - /** - * @default 'doctrine.orm.typed_field_mapper.default' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function typedFieldMapper($value): static - { - $this->_usedProperties['typedFieldMapper'] = true; - $this->typedFieldMapper = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function entityListenerResolver($value): static - { - $this->_usedProperties['entityListenerResolver'] = true; - $this->entityListenerResolver = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function fetchModeSubselectBatchSize($value): static - { - $this->_usedProperties['fetchModeSubselectBatchSize'] = true; - $this->fetchModeSubselectBatchSize = $value; - - return $this; - } - - /** - * @default 'doctrine.orm.container_repository_factory' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function repositoryFactory($value): static - { - $this->_usedProperties['repositoryFactory'] = true; - $this->repositoryFactory = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function schemaIgnoreClasses(ParamConfigurator|array $value): static - { - $this->_usedProperties['schemaIgnoreClasses'] = true; - $this->schemaIgnoreClasses = $value; - - return $this; - } - - /** - * Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.16 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/10455. - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function reportFieldsWhereDeclared($value): static - { - $this->_usedProperties['reportFieldsWhereDeclared'] = true; - $this->reportFieldsWhereDeclared = $value; - - return $this; - } - - /** - * Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/6728. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function validateXmlMapping($value): static - { - $this->_usedProperties['validateXmlMapping'] = true; - $this->validateXmlMapping = $value; - - return $this; - } - - public function secondLevelCache(array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCacheConfig - { - if (null === $this->secondLevelCache) { - $this->_usedProperties['secondLevelCache'] = true; - $this->secondLevelCache = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCacheConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "secondLevelCache()" has already been initialized. You cannot pass values the second time you call secondLevelCache().'); - } - - return $this->secondLevelCache; - } - - /** - * @return $this - */ - public function hydrator(string $name, mixed $value): static - { - $this->_usedProperties['hydrators'] = true; - $this->hydrators[$name] = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig : static) - */ - public function mapping(string $name, string|array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['mappings'] = true; - $this->mappings[$name] = $value; - - return $this; - } - - if (!isset($this->mappings[$name]) || !$this->mappings[$name] instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig) { - $this->_usedProperties['mappings'] = true; - $this->mappings[$name] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "mapping()" has already been initialized. You cannot pass values the second time you call mapping().'); - } - - return $this->mappings[$name]; - } - - public function dql(array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\DqlConfig - { - if (null === $this->dql) { - $this->_usedProperties['dql'] = true; - $this->dql = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\DqlConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "dql()" has already been initialized. You cannot pass values the second time you call dql().'); - } - - return $this->dql; - } - - /** - * @template TValue - * @param TValue $value - * Register SQL Filters in the entity manager - * @return \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig : static) - */ - public function filter(string $name, mixed $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['filters'] = true; - $this->filters[$name] = $value; - - return $this; - } - - if (!isset($this->filters[$name]) || !$this->filters[$name] instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig) { - $this->_usedProperties['filters'] = true; - $this->filters[$name] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "filter()" has already been initialized. You cannot pass values the second time you call filter().'); - } - - return $this->filters[$name]; - } - - /** - * @return $this - */ - public function identityGenerationPreference(string $platform, mixed $value): static - { - $this->_usedProperties['identityGenerationPreferences'] = true; - $this->identityGenerationPreferences[$platform] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('query_cache_driver', $value)) { - $this->_usedProperties['queryCacheDriver'] = true; - $this->queryCacheDriver = \is_array($value['query_cache_driver']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\QueryCacheDriverConfig($value['query_cache_driver']) : $value['query_cache_driver']; - unset($value['query_cache_driver']); - } - - if (array_key_exists('metadata_cache_driver', $value)) { - $this->_usedProperties['metadataCacheDriver'] = true; - $this->metadataCacheDriver = \is_array($value['metadata_cache_driver']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig($value['metadata_cache_driver']) : $value['metadata_cache_driver']; - unset($value['metadata_cache_driver']); - } - - if (array_key_exists('result_cache_driver', $value)) { - $this->_usedProperties['resultCacheDriver'] = true; - $this->resultCacheDriver = \is_array($value['result_cache_driver']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig($value['result_cache_driver']) : $value['result_cache_driver']; - unset($value['result_cache_driver']); - } - - if (array_key_exists('entity_listeners', $value)) { - $this->_usedProperties['entityListeners'] = true; - $this->entityListeners = \is_array($value['entity_listeners']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig($value['entity_listeners']) : $value['entity_listeners']; - unset($value['entity_listeners']); - } - - if (array_key_exists('connection', $value)) { - $this->_usedProperties['connection'] = true; - $this->connection = $value['connection']; - unset($value['connection']); - } - - if (array_key_exists('class_metadata_factory_name', $value)) { - $this->_usedProperties['classMetadataFactoryName'] = true; - $this->classMetadataFactoryName = $value['class_metadata_factory_name']; - unset($value['class_metadata_factory_name']); - } - - if (array_key_exists('default_repository_class', $value)) { - $this->_usedProperties['defaultRepositoryClass'] = true; - $this->defaultRepositoryClass = $value['default_repository_class']; - unset($value['default_repository_class']); - } - - if (array_key_exists('auto_mapping', $value)) { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping = $value['auto_mapping']; - unset($value['auto_mapping']); - } - - if (array_key_exists('enable_native_lazy_objects', $value)) { - $this->_usedProperties['enableNativeLazyObjects'] = true; - $this->enableNativeLazyObjects = $value['enable_native_lazy_objects']; - unset($value['enable_native_lazy_objects']); - } - - if (array_key_exists('naming_strategy', $value)) { - $this->_usedProperties['namingStrategy'] = true; - $this->namingStrategy = $value['naming_strategy']; - unset($value['naming_strategy']); - } - - if (array_key_exists('quote_strategy', $value)) { - $this->_usedProperties['quoteStrategy'] = true; - $this->quoteStrategy = $value['quote_strategy']; - unset($value['quote_strategy']); - } - - if (array_key_exists('typed_field_mapper', $value)) { - $this->_usedProperties['typedFieldMapper'] = true; - $this->typedFieldMapper = $value['typed_field_mapper']; - unset($value['typed_field_mapper']); - } - - if (array_key_exists('entity_listener_resolver', $value)) { - $this->_usedProperties['entityListenerResolver'] = true; - $this->entityListenerResolver = $value['entity_listener_resolver']; - unset($value['entity_listener_resolver']); - } - - if (array_key_exists('fetch_mode_subselect_batch_size', $value)) { - $this->_usedProperties['fetchModeSubselectBatchSize'] = true; - $this->fetchModeSubselectBatchSize = $value['fetch_mode_subselect_batch_size']; - unset($value['fetch_mode_subselect_batch_size']); - } - - if (array_key_exists('repository_factory', $value)) { - $this->_usedProperties['repositoryFactory'] = true; - $this->repositoryFactory = $value['repository_factory']; - unset($value['repository_factory']); - } - - if (array_key_exists('schema_ignore_classes', $value)) { - $this->_usedProperties['schemaIgnoreClasses'] = true; - $this->schemaIgnoreClasses = $value['schema_ignore_classes']; - unset($value['schema_ignore_classes']); - } - - if (array_key_exists('report_fields_where_declared', $value)) { - $this->_usedProperties['reportFieldsWhereDeclared'] = true; - $this->reportFieldsWhereDeclared = $value['report_fields_where_declared']; - unset($value['report_fields_where_declared']); - } - - if (array_key_exists('validate_xml_mapping', $value)) { - $this->_usedProperties['validateXmlMapping'] = true; - $this->validateXmlMapping = $value['validate_xml_mapping']; - unset($value['validate_xml_mapping']); - } - - if (array_key_exists('second_level_cache', $value)) { - $this->_usedProperties['secondLevelCache'] = true; - $this->secondLevelCache = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCacheConfig($value['second_level_cache']); - unset($value['second_level_cache']); - } - - if (array_key_exists('hydrators', $value)) { - $this->_usedProperties['hydrators'] = true; - $this->hydrators = $value['hydrators']; - unset($value['hydrators']); - } - - if (array_key_exists('mappings', $value)) { - $this->_usedProperties['mappings'] = true; - $this->mappings = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig($v) : $v, $value['mappings']); - unset($value['mappings']); - } - - if (array_key_exists('dql', $value)) { - $this->_usedProperties['dql'] = true; - $this->dql = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\DqlConfig($value['dql']); - unset($value['dql']); - } - - if (array_key_exists('filters', $value)) { - $this->_usedProperties['filters'] = true; - $this->filters = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig($v) : $v, $value['filters']); - unset($value['filters']); - } - - if (array_key_exists('identity_generation_preferences', $value)) { - $this->_usedProperties['identityGenerationPreferences'] = true; - $this->identityGenerationPreferences = $value['identity_generation_preferences']; - unset($value['identity_generation_preferences']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['queryCacheDriver'])) { - $output['query_cache_driver'] = $this->queryCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\QueryCacheDriverConfig ? $this->queryCacheDriver->toArray() : $this->queryCacheDriver; - } - if (isset($this->_usedProperties['metadataCacheDriver'])) { - $output['metadata_cache_driver'] = $this->metadataCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MetadataCacheDriverConfig ? $this->metadataCacheDriver->toArray() : $this->metadataCacheDriver; - } - if (isset($this->_usedProperties['resultCacheDriver'])) { - $output['result_cache_driver'] = $this->resultCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\ResultCacheDriverConfig ? $this->resultCacheDriver->toArray() : $this->resultCacheDriver; - } - if (isset($this->_usedProperties['entityListeners'])) { - $output['entity_listeners'] = $this->entityListeners instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListenersConfig ? $this->entityListeners->toArray() : $this->entityListeners; - } - if (isset($this->_usedProperties['connection'])) { - $output['connection'] = $this->connection; - } - if (isset($this->_usedProperties['classMetadataFactoryName'])) { - $output['class_metadata_factory_name'] = $this->classMetadataFactoryName; - } - if (isset($this->_usedProperties['defaultRepositoryClass'])) { - $output['default_repository_class'] = $this->defaultRepositoryClass; - } - if (isset($this->_usedProperties['autoMapping'])) { - $output['auto_mapping'] = $this->autoMapping; - } - if (isset($this->_usedProperties['enableNativeLazyObjects'])) { - $output['enable_native_lazy_objects'] = $this->enableNativeLazyObjects; - } - if (isset($this->_usedProperties['namingStrategy'])) { - $output['naming_strategy'] = $this->namingStrategy; - } - if (isset($this->_usedProperties['quoteStrategy'])) { - $output['quote_strategy'] = $this->quoteStrategy; - } - if (isset($this->_usedProperties['typedFieldMapper'])) { - $output['typed_field_mapper'] = $this->typedFieldMapper; - } - if (isset($this->_usedProperties['entityListenerResolver'])) { - $output['entity_listener_resolver'] = $this->entityListenerResolver; - } - if (isset($this->_usedProperties['fetchModeSubselectBatchSize'])) { - $output['fetch_mode_subselect_batch_size'] = $this->fetchModeSubselectBatchSize; - } - if (isset($this->_usedProperties['repositoryFactory'])) { - $output['repository_factory'] = $this->repositoryFactory; - } - if (isset($this->_usedProperties['schemaIgnoreClasses'])) { - $output['schema_ignore_classes'] = $this->schemaIgnoreClasses; - } - if (isset($this->_usedProperties['reportFieldsWhereDeclared'])) { - $output['report_fields_where_declared'] = $this->reportFieldsWhereDeclared; - } - if (isset($this->_usedProperties['validateXmlMapping'])) { - $output['validate_xml_mapping'] = $this->validateXmlMapping; - } - if (isset($this->_usedProperties['secondLevelCache'])) { - $output['second_level_cache'] = $this->secondLevelCache->toArray(); - } - if (isset($this->_usedProperties['hydrators'])) { - $output['hydrators'] = $this->hydrators; - } - if (isset($this->_usedProperties['mappings'])) { - $output['mappings'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\MappingConfig ? $v->toArray() : $v, $this->mappings); - } - if (isset($this->_usedProperties['dql'])) { - $output['dql'] = $this->dql->toArray(); - } - if (isset($this->_usedProperties['filters'])) { - $output['filters'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\FilterConfig ? $v->toArray() : $v, $this->filters); - } - if (isset($this->_usedProperties['identityGenerationPreferences'])) { - $output['identity_generation_preferences'] = $this->identityGenerationPreferences; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/DqlConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/DqlConfig.php deleted file mode 100644 index 76088e5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/DqlConfig.php +++ /dev/null @@ -1,92 +0,0 @@ -_usedProperties['stringFunctions'] = true; - $this->stringFunctions[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function numericFunction(string $name, mixed $value): static - { - $this->_usedProperties['numericFunctions'] = true; - $this->numericFunctions[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function datetimeFunction(string $name, mixed $value): static - { - $this->_usedProperties['datetimeFunctions'] = true; - $this->datetimeFunctions[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('string_functions', $value)) { - $this->_usedProperties['stringFunctions'] = true; - $this->stringFunctions = $value['string_functions']; - unset($value['string_functions']); - } - - if (array_key_exists('numeric_functions', $value)) { - $this->_usedProperties['numericFunctions'] = true; - $this->numericFunctions = $value['numeric_functions']; - unset($value['numeric_functions']); - } - - if (array_key_exists('datetime_functions', $value)) { - $this->_usedProperties['datetimeFunctions'] = true; - $this->datetimeFunctions = $value['datetime_functions']; - unset($value['datetime_functions']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['stringFunctions'])) { - $output['string_functions'] = $this->stringFunctions; - } - if (isset($this->_usedProperties['numericFunctions'])) { - $output['numeric_functions'] = $this->numericFunctions; - } - if (isset($this->_usedProperties['datetimeFunctions'])) { - $output['datetime_functions'] = $this->datetimeFunctions; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig.php deleted file mode 100644 index dbc492a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -listeners[$class])) { - $this->_usedProperties['listeners'] = true; - $this->listeners[$class] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig\ListenerConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "listener()" has already been initialized. You cannot pass values the second time you call listener().'); - } - - return $this->listeners[$class]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('listeners', $value)) { - $this->_usedProperties['listeners'] = true; - $this->listeners = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig\ListenerConfig($v), $value['listeners']); - unset($value['listeners']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['listeners'])) { - $output['listeners'] = array_map(fn ($v) => $v->toArray(), $this->listeners); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig.php deleted file mode 100644 index dc62d97..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig.php +++ /dev/null @@ -1,47 +0,0 @@ -_usedProperties['events'] = true; - - return $this->events[] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig\ListenerConfig\EventConfig($value); - } - - public function __construct(array $value = []) - { - if (array_key_exists('events', $value)) { - $this->_usedProperties['events'] = true; - $this->events = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig\ListenerConfig\EventConfig($v), $value['events']); - unset($value['events']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['events'])) { - $output['events'] = array_map(fn ($v) => $v->toArray(), $this->events); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig/EventConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig/EventConfig.php deleted file mode 100644 index 435cf96..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListeners/EntityConfig/ListenerConfig/EventConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function method($value): static - { - $this->_usedProperties['method'] = true; - $this->method = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('method', $value)) { - $this->_usedProperties['method'] = true; - $this->method = $value['method']; - unset($value['method']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['method'])) { - $output['method'] = $this->method; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListenersConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListenersConfig.php deleted file mode 100644 index a06ab05..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/EntityListenersConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -entities[$class])) { - $this->_usedProperties['entities'] = true; - $this->entities[$class] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "entity()" has already been initialized. You cannot pass values the second time you call entity().'); - } - - return $this->entities[$class]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('entities', $value)) { - $this->_usedProperties['entities'] = true; - $this->entities = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\EntityListeners\EntityConfig($v), $value['entities']); - unset($value['entities']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['entities'])) { - $output['entities'] = array_map(fn ($v) => $v->toArray(), $this->entities); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/FilterConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/FilterConfig.php deleted file mode 100644 index 8dcf105..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/FilterConfig.php +++ /dev/null @@ -1,96 +0,0 @@ -_usedProperties['class'] = true; - $this->class = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enabled($value): static - { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @return $this - */ - public function parameter(string $name, mixed $value): static - { - $this->_usedProperties['parameters'] = true; - $this->parameters[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('class', $value)) { - $this->_usedProperties['class'] = true; - $this->class = $value['class']; - unset($value['class']); - } - - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('parameters', $value)) { - $this->_usedProperties['parameters'] = true; - $this->parameters = $value['parameters']; - unset($value['parameters']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['class'])) { - $output['class'] = $this->class; - } - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['parameters'])) { - $output['parameters'] = $this->parameters; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MappingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MappingConfig.php deleted file mode 100644 index aa20004..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MappingConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['mapping'] = true; - $this->mapping = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function type($value): static - { - $this->_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dir($value): static - { - $this->_usedProperties['dir'] = true; - $this->dir = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function alias($value): static - { - $this->_usedProperties['alias'] = true; - $this->alias = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function prefix($value): static - { - $this->_usedProperties['prefix'] = true; - $this->prefix = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function isBundle($value): static - { - $this->_usedProperties['isBundle'] = true; - $this->isBundle = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('mapping', $value)) { - $this->_usedProperties['mapping'] = true; - $this->mapping = $value['mapping']; - unset($value['mapping']); - } - - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('dir', $value)) { - $this->_usedProperties['dir'] = true; - $this->dir = $value['dir']; - unset($value['dir']); - } - - if (array_key_exists('alias', $value)) { - $this->_usedProperties['alias'] = true; - $this->alias = $value['alias']; - unset($value['alias']); - } - - if (array_key_exists('prefix', $value)) { - $this->_usedProperties['prefix'] = true; - $this->prefix = $value['prefix']; - unset($value['prefix']); - } - - if (array_key_exists('is_bundle', $value)) { - $this->_usedProperties['isBundle'] = true; - $this->isBundle = $value['is_bundle']; - unset($value['is_bundle']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['mapping'])) { - $output['mapping'] = $this->mapping; - } - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['dir'])) { - $output['dir'] = $this->dir; - } - if (isset($this->_usedProperties['alias'])) { - $output['alias'] = $this->alias; - } - if (isset($this->_usedProperties['prefix'])) { - $output['prefix'] = $this->prefix; - } - if (isset($this->_usedProperties['isBundle'])) { - $output['is_bundle'] = $this->isBundle; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MetadataCacheDriverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MetadataCacheDriverConfig.php deleted file mode 100644 index e7e82b7..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/MetadataCacheDriverConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pool($value): static - { - $this->_usedProperties['pool'] = true; - $this->pool = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('pool', $value)) { - $this->_usedProperties['pool'] = true; - $this->pool = $value['pool']; - unset($value['pool']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['pool'])) { - $output['pool'] = $this->pool; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/QueryCacheDriverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/QueryCacheDriverConfig.php deleted file mode 100644 index c9a096a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/QueryCacheDriverConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pool($value): static - { - $this->_usedProperties['pool'] = true; - $this->pool = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('pool', $value)) { - $this->_usedProperties['pool'] = true; - $this->pool = $value['pool']; - unset($value['pool']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['pool'])) { - $output['pool'] = $this->pool; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/ResultCacheDriverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/ResultCacheDriverConfig.php deleted file mode 100644 index 907276d..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/ResultCacheDriverConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pool($value): static - { - $this->_usedProperties['pool'] = true; - $this->pool = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('pool', $value)) { - $this->_usedProperties['pool'] = true; - $this->pool = $value['pool']; - unset($value['pool']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['pool'])) { - $output['pool'] = $this->pool; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/LoggerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/LoggerConfig.php deleted file mode 100644 index 1d8dcae..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/LoggerConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionCacheDriverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionCacheDriverConfig.php deleted file mode 100644 index b70304b..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionCacheDriverConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pool($value): static - { - $this->_usedProperties['pool'] = true; - $this->pool = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('pool', $value)) { - $this->_usedProperties['pool'] = true; - $this->pool = $value['pool']; - unset($value['pool']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['pool'])) { - $output['pool'] = $this->pool; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig.php deleted file mode 100644 index 3c4f322..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig.php +++ /dev/null @@ -1,205 +0,0 @@ -_usedProperties['cacheDriver'] = true; - $this->cacheDriver = $value; - - return $this; - } - - if (!$this->cacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig\CacheDriverConfig) { - $this->_usedProperties['cacheDriver'] = true; - $this->cacheDriver = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig\CacheDriverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "cacheDriver()" has already been initialized. You cannot pass values the second time you call cacheDriver().'); - } - - return $this->cacheDriver; - } - - /** - * @default '%kernel.cache_dir%/doctrine/orm/slc/filelock' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function lockPath($value): static - { - $this->_usedProperties['lockPath'] = true; - $this->lockPath = $value; - - return $this; - } - - /** - * @default 60 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function lockLifetime($value): static - { - $this->_usedProperties['lockLifetime'] = true; - $this->lockLifetime = $value; - - return $this; - } - - /** - * @default 'default' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function type($value): static - { - $this->_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function lifetime($value): static - { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function name($value): static - { - $this->_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('cache_driver', $value)) { - $this->_usedProperties['cacheDriver'] = true; - $this->cacheDriver = \is_array($value['cache_driver']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig\CacheDriverConfig($value['cache_driver']) : $value['cache_driver']; - unset($value['cache_driver']); - } - - if (array_key_exists('lock_path', $value)) { - $this->_usedProperties['lockPath'] = true; - $this->lockPath = $value['lock_path']; - unset($value['lock_path']); - } - - if (array_key_exists('lock_lifetime', $value)) { - $this->_usedProperties['lockLifetime'] = true; - $this->lockLifetime = $value['lock_lifetime']; - unset($value['lock_lifetime']); - } - - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('lifetime', $value)) { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value['lifetime']; - unset($value['lifetime']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['cacheDriver'])) { - $output['cache_driver'] = $this->cacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig\CacheDriverConfig ? $this->cacheDriver->toArray() : $this->cacheDriver; - } - if (isset($this->_usedProperties['lockPath'])) { - $output['lock_path'] = $this->lockPath; - } - if (isset($this->_usedProperties['lockLifetime'])) { - $output['lock_lifetime'] = $this->lockLifetime; - } - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['lifetime'])) { - $output['lifetime'] = $this->lifetime; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig/CacheDriverConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig/CacheDriverConfig.php deleted file mode 100644 index 922cc69..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCache/RegionConfig/CacheDriverConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pool($value): static - { - $this->_usedProperties['pool'] = true; - $this->pool = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('pool', $value)) { - $this->_usedProperties['pool'] = true; - $this->pool = $value['pool']; - unset($value['pool']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['pool'])) { - $output['pool'] = $this->pool; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCacheConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCacheConfig.php deleted file mode 100644 index 4c4e9ec..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/Orm/EntityManagerConfig/SecondLevelCacheConfig.php +++ /dev/null @@ -1,228 +0,0 @@ -_usedProperties['regionCacheDriver'] = true; - $this->regionCacheDriver = $value; - - return $this; - } - - if (!$this->regionCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionCacheDriverConfig) { - $this->_usedProperties['regionCacheDriver'] = true; - $this->regionCacheDriver = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionCacheDriverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "regionCacheDriver()" has already been initialized. You cannot pass values the second time you call regionCacheDriver().'); - } - - return $this->regionCacheDriver; - } - - /** - * @default 60 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function regionLockLifetime($value): static - { - $this->_usedProperties['regionLockLifetime'] = true; - $this->regionLockLifetime = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function logEnabled($value): static - { - $this->_usedProperties['logEnabled'] = true; - $this->logEnabled = $value; - - return $this; - } - - /** - * @default 3600 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function regionLifetime($value): static - { - $this->_usedProperties['regionLifetime'] = true; - $this->regionLifetime = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enabled($value): static - { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function factory($value): static - { - $this->_usedProperties['factory'] = true; - $this->factory = $value; - - return $this; - } - - public function region(string $name, array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig - { - if (!isset($this->regions[$name])) { - $this->_usedProperties['regions'] = true; - $this->regions[$name] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "region()" has already been initialized. You cannot pass values the second time you call region().'); - } - - return $this->regions[$name]; - } - - public function logger(string $name, array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\LoggerConfig - { - if (!isset($this->loggers[$name])) { - $this->_usedProperties['loggers'] = true; - $this->loggers[$name] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\LoggerConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "logger()" has already been initialized. You cannot pass values the second time you call logger().'); - } - - return $this->loggers[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('region_cache_driver', $value)) { - $this->_usedProperties['regionCacheDriver'] = true; - $this->regionCacheDriver = \is_array($value['region_cache_driver']) ? new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionCacheDriverConfig($value['region_cache_driver']) : $value['region_cache_driver']; - unset($value['region_cache_driver']); - } - - if (array_key_exists('region_lock_lifetime', $value)) { - $this->_usedProperties['regionLockLifetime'] = true; - $this->regionLockLifetime = $value['region_lock_lifetime']; - unset($value['region_lock_lifetime']); - } - - if (array_key_exists('log_enabled', $value)) { - $this->_usedProperties['logEnabled'] = true; - $this->logEnabled = $value['log_enabled']; - unset($value['log_enabled']); - } - - if (array_key_exists('region_lifetime', $value)) { - $this->_usedProperties['regionLifetime'] = true; - $this->regionLifetime = $value['region_lifetime']; - unset($value['region_lifetime']); - } - - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('factory', $value)) { - $this->_usedProperties['factory'] = true; - $this->factory = $value['factory']; - unset($value['factory']); - } - - if (array_key_exists('regions', $value)) { - $this->_usedProperties['regions'] = true; - $this->regions = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionConfig($v), $value['regions']); - unset($value['regions']); - } - - if (array_key_exists('loggers', $value)) { - $this->_usedProperties['loggers'] = true; - $this->loggers = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\LoggerConfig($v), $value['loggers']); - unset($value['loggers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['regionCacheDriver'])) { - $output['region_cache_driver'] = $this->regionCacheDriver instanceof \Symfony\Config\Doctrine\Orm\EntityManagerConfig\SecondLevelCache\RegionCacheDriverConfig ? $this->regionCacheDriver->toArray() : $this->regionCacheDriver; - } - if (isset($this->_usedProperties['regionLockLifetime'])) { - $output['region_lock_lifetime'] = $this->regionLockLifetime; - } - if (isset($this->_usedProperties['logEnabled'])) { - $output['log_enabled'] = $this->logEnabled; - } - if (isset($this->_usedProperties['regionLifetime'])) { - $output['region_lifetime'] = $this->regionLifetime; - } - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['factory'])) { - $output['factory'] = $this->factory; - } - if (isset($this->_usedProperties['regions'])) { - $output['regions'] = array_map(fn ($v) => $v->toArray(), $this->regions); - } - if (isset($this->_usedProperties['loggers'])) { - $output['loggers'] = array_map(fn ($v) => $v->toArray(), $this->loggers); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/OrmConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/OrmConfig.php deleted file mode 100644 index 388a356..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Doctrine/OrmConfig.php +++ /dev/null @@ -1,217 +0,0 @@ -_usedProperties['defaultEntityManager'] = true; - $this->defaultEntityManager = $value; - - return $this; - } - - /** - * Auto generate mode possible values are: "NEVER", "ALWAYS", "FILE_NOT_EXISTS", "EVAL", "FILE_NOT_EXISTS_OR_CHANGED" - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function autoGenerateProxyClasses($value): static - { - $this->_usedProperties['autoGenerateProxyClasses'] = true; - $this->autoGenerateProxyClasses = $value; - - return $this; - } - - /** - * Enables the new implementation of proxies based on lazy ghosts instead of using the legacy implementation - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableLazyGhostObjects($value): static - { - $this->_usedProperties['enableLazyGhostObjects'] = true; - $this->enableLazyGhostObjects = $value; - - return $this; - } - - /** - * @default '%kernel.build_dir%/doctrine/orm/Proxies' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function proxyDir($value): static - { - $this->_usedProperties['proxyDir'] = true; - $this->proxyDir = $value; - - return $this; - } - - /** - * @default 'Proxies' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function proxyNamespace($value): static - { - $this->_usedProperties['proxyNamespace'] = true; - $this->proxyNamespace = $value; - - return $this; - } - - /** - * @default {"enabled":true,"auto_mapping":null,"evict_cache":false} - */ - public function controllerResolver(array $value = []): \Symfony\Config\Doctrine\Orm\ControllerResolverConfig - { - if (null === $this->controllerResolver) { - $this->_usedProperties['controllerResolver'] = true; - $this->controllerResolver = new \Symfony\Config\Doctrine\Orm\ControllerResolverConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "controllerResolver()" has already been initialized. You cannot pass values the second time you call controllerResolver().'); - } - - return $this->controllerResolver; - } - - public function entityManager(string $name, array $value = []): \Symfony\Config\Doctrine\Orm\EntityManagerConfig - { - if (!isset($this->entityManagers[$name])) { - $this->_usedProperties['entityManagers'] = true; - $this->entityManagers[$name] = new \Symfony\Config\Doctrine\Orm\EntityManagerConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "entityManager()" has already been initialized. You cannot pass values the second time you call entityManager().'); - } - - return $this->entityManagers[$name]; - } - - /** - * @return $this - */ - public function resolveTargetEntity(string $interface, mixed $value): static - { - $this->_usedProperties['resolveTargetEntities'] = true; - $this->resolveTargetEntities[$interface] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('default_entity_manager', $value)) { - $this->_usedProperties['defaultEntityManager'] = true; - $this->defaultEntityManager = $value['default_entity_manager']; - unset($value['default_entity_manager']); - } - - if (array_key_exists('auto_generate_proxy_classes', $value)) { - $this->_usedProperties['autoGenerateProxyClasses'] = true; - $this->autoGenerateProxyClasses = $value['auto_generate_proxy_classes']; - unset($value['auto_generate_proxy_classes']); - } - - if (array_key_exists('enable_lazy_ghost_objects', $value)) { - $this->_usedProperties['enableLazyGhostObjects'] = true; - $this->enableLazyGhostObjects = $value['enable_lazy_ghost_objects']; - unset($value['enable_lazy_ghost_objects']); - } - - if (array_key_exists('proxy_dir', $value)) { - $this->_usedProperties['proxyDir'] = true; - $this->proxyDir = $value['proxy_dir']; - unset($value['proxy_dir']); - } - - if (array_key_exists('proxy_namespace', $value)) { - $this->_usedProperties['proxyNamespace'] = true; - $this->proxyNamespace = $value['proxy_namespace']; - unset($value['proxy_namespace']); - } - - if (array_key_exists('controller_resolver', $value)) { - $this->_usedProperties['controllerResolver'] = true; - $this->controllerResolver = new \Symfony\Config\Doctrine\Orm\ControllerResolverConfig($value['controller_resolver']); - unset($value['controller_resolver']); - } - - if (array_key_exists('entity_managers', $value)) { - $this->_usedProperties['entityManagers'] = true; - $this->entityManagers = array_map(fn ($v) => new \Symfony\Config\Doctrine\Orm\EntityManagerConfig($v), $value['entity_managers']); - unset($value['entity_managers']); - } - - if (array_key_exists('resolve_target_entities', $value)) { - $this->_usedProperties['resolveTargetEntities'] = true; - $this->resolveTargetEntities = $value['resolve_target_entities']; - unset($value['resolve_target_entities']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['defaultEntityManager'])) { - $output['default_entity_manager'] = $this->defaultEntityManager; - } - if (isset($this->_usedProperties['autoGenerateProxyClasses'])) { - $output['auto_generate_proxy_classes'] = $this->autoGenerateProxyClasses; - } - if (isset($this->_usedProperties['enableLazyGhostObjects'])) { - $output['enable_lazy_ghost_objects'] = $this->enableLazyGhostObjects; - } - if (isset($this->_usedProperties['proxyDir'])) { - $output['proxy_dir'] = $this->proxyDir; - } - if (isset($this->_usedProperties['proxyNamespace'])) { - $output['proxy_namespace'] = $this->proxyNamespace; - } - if (isset($this->_usedProperties['controllerResolver'])) { - $output['controller_resolver'] = $this->controllerResolver->toArray(); - } - if (isset($this->_usedProperties['entityManagers'])) { - $output['entity_managers'] = array_map(fn ($v) => $v->toArray(), $this->entityManagers); - } - if (isset($this->_usedProperties['resolveTargetEntities'])) { - $output['resolve_target_entities'] = $this->resolveTargetEntities; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineConfig.php deleted file mode 100644 index b905318..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineConfig.php +++ /dev/null @@ -1,106 +0,0 @@ -_usedProperties['dbal'] = true; - $this->dbal = $value; - - return $this; - } - - if (!$this->dbal instanceof \Symfony\Config\Doctrine\DbalConfig) { - $this->_usedProperties['dbal'] = true; - $this->dbal = new \Symfony\Config\Doctrine\DbalConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "dbal()" has already been initialized. You cannot pass values the second time you call dbal().'); - } - - return $this->dbal; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Doctrine\OrmConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Doctrine\OrmConfig : static) - */ - public function orm(mixed $value = []): \Symfony\Config\Doctrine\OrmConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['orm'] = true; - $this->orm = $value; - - return $this; - } - - if (!$this->orm instanceof \Symfony\Config\Doctrine\OrmConfig) { - $this->_usedProperties['orm'] = true; - $this->orm = new \Symfony\Config\Doctrine\OrmConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "orm()" has already been initialized. You cannot pass values the second time you call orm().'); - } - - return $this->orm; - } - - public function getExtensionAlias(): string - { - return 'doctrine'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('dbal', $value)) { - $this->_usedProperties['dbal'] = true; - $this->dbal = \is_array($value['dbal']) ? new \Symfony\Config\Doctrine\DbalConfig($value['dbal']) : $value['dbal']; - unset($value['dbal']); - } - - if (array_key_exists('orm', $value)) { - $this->_usedProperties['orm'] = true; - $this->orm = \is_array($value['orm']) ? new \Symfony\Config\Doctrine\OrmConfig($value['orm']) : $value['orm']; - unset($value['orm']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['dbal'])) { - $output['dbal'] = $this->dbal instanceof \Symfony\Config\Doctrine\DbalConfig ? $this->dbal->toArray() : $this->dbal; - } - if (isset($this->_usedProperties['orm'])) { - $output['orm'] = $this->orm instanceof \Symfony\Config\Doctrine\OrmConfig ? $this->orm->toArray() : $this->orm; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/Storage/TableStorageConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/Storage/TableStorageConfig.php deleted file mode 100644 index 3454166..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/Storage/TableStorageConfig.php +++ /dev/null @@ -1,144 +0,0 @@ -_usedProperties['tableName'] = true; - $this->tableName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionColumnName($value): static - { - $this->_usedProperties['versionColumnName'] = true; - $this->versionColumnName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionColumnLength($value): static - { - $this->_usedProperties['versionColumnLength'] = true; - $this->versionColumnLength = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function executedAtColumnName($value): static - { - $this->_usedProperties['executedAtColumnName'] = true; - $this->executedAtColumnName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function executionTimeColumnName($value): static - { - $this->_usedProperties['executionTimeColumnName'] = true; - $this->executionTimeColumnName = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('table_name', $value)) { - $this->_usedProperties['tableName'] = true; - $this->tableName = $value['table_name']; - unset($value['table_name']); - } - - if (array_key_exists('version_column_name', $value)) { - $this->_usedProperties['versionColumnName'] = true; - $this->versionColumnName = $value['version_column_name']; - unset($value['version_column_name']); - } - - if (array_key_exists('version_column_length', $value)) { - $this->_usedProperties['versionColumnLength'] = true; - $this->versionColumnLength = $value['version_column_length']; - unset($value['version_column_length']); - } - - if (array_key_exists('executed_at_column_name', $value)) { - $this->_usedProperties['executedAtColumnName'] = true; - $this->executedAtColumnName = $value['executed_at_column_name']; - unset($value['executed_at_column_name']); - } - - if (array_key_exists('execution_time_column_name', $value)) { - $this->_usedProperties['executionTimeColumnName'] = true; - $this->executionTimeColumnName = $value['execution_time_column_name']; - unset($value['execution_time_column_name']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['tableName'])) { - $output['table_name'] = $this->tableName; - } - if (isset($this->_usedProperties['versionColumnName'])) { - $output['version_column_name'] = $this->versionColumnName; - } - if (isset($this->_usedProperties['versionColumnLength'])) { - $output['version_column_length'] = $this->versionColumnLength; - } - if (isset($this->_usedProperties['executedAtColumnName'])) { - $output['executed_at_column_name'] = $this->executedAtColumnName; - } - if (isset($this->_usedProperties['executionTimeColumnName'])) { - $output['execution_time_column_name'] = $this->executionTimeColumnName; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/StorageConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/StorageConfig.php deleted file mode 100644 index 27b1077..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrations/StorageConfig.php +++ /dev/null @@ -1,56 +0,0 @@ -tableStorage) { - $this->_usedProperties['tableStorage'] = true; - $this->tableStorage = new \Symfony\Config\DoctrineMigrations\Storage\TableStorageConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "tableStorage()" has already been initialized. You cannot pass values the second time you call tableStorage().'); - } - - return $this->tableStorage; - } - - public function __construct(array $value = []) - { - if (array_key_exists('table_storage', $value)) { - $this->_usedProperties['tableStorage'] = true; - $this->tableStorage = new \Symfony\Config\DoctrineMigrations\Storage\TableStorageConfig($value['table_storage']); - unset($value['table_storage']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['tableStorage'])) { - $output['table_storage'] = $this->tableStorage->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrationsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrationsConfig.php deleted file mode 100644 index 3635365..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/DoctrineMigrationsConfig.php +++ /dev/null @@ -1,340 +0,0 @@ -_usedProperties['migrationsPaths'] = true; - $this->migrationsPaths[$namespace] = $value; - - return $this; - } - - /** - * @return $this - */ - public function services(string $service, mixed $value): static - { - $this->_usedProperties['services'] = true; - $this->services[$service] = $value; - - return $this; - } - - /** - * @return $this - */ - public function factories(string $factory, mixed $value): static - { - $this->_usedProperties['factories'] = true; - $this->factories[$factory] = $value; - - return $this; - } - - /** - * Storage to use for migration status metadata. - * @default {"table_storage":{"table_name":null,"version_column_name":null,"version_column_length":null,"executed_at_column_name":null,"execution_time_column_name":null}} - */ - public function storage(array $value = []): \Symfony\Config\DoctrineMigrations\StorageConfig - { - if (null === $this->storage) { - $this->_usedProperties['storage'] = true; - $this->storage = new \Symfony\Config\DoctrineMigrations\StorageConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "storage()" has already been initialized. You cannot pass values the second time you call storage().'); - } - - return $this->storage; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function migrations(ParamConfigurator|array $value): static - { - $this->_usedProperties['migrations'] = true; - $this->migrations = $value; - - return $this; - } - - /** - * Connection name to use for the migrations database. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connection($value): static - { - $this->_usedProperties['connection'] = true; - $this->connection = $value; - - return $this; - } - - /** - * Entity manager name to use for the migrations database (available when doctrine/orm is installed). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function em($value): static - { - $this->_usedProperties['em'] = true; - $this->em = $value; - - return $this; - } - - /** - * Run all migrations in a transaction. - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function allOrNothing($value): static - { - $this->_usedProperties['allOrNothing'] = true; - $this->allOrNothing = $value; - - return $this; - } - - /** - * Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on. - * @default true - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkDatabasePlatform($value): static - { - $this->_usedProperties['checkDatabasePlatform'] = true; - $this->checkDatabasePlatform = $value; - - return $this; - } - - /** - * Custom template path for generated migration classes. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function customTemplate($value): static - { - $this->_usedProperties['customTemplate'] = true; - $this->customTemplate = $value; - - return $this; - } - - /** - * Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function organizeMigrations($value): static - { - $this->_usedProperties['organizeMigrations'] = true; - $this->organizeMigrations = $value; - - return $this; - } - - /** - * Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableProfiler($value): static - { - $this->_usedProperties['enableProfiler'] = true; - $this->enableProfiler = $value; - - return $this; - } - - /** - * Whether or not to wrap migrations in a single transaction. - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function transactional($value): static - { - $this->_usedProperties['transactional'] = true; - $this->transactional = $value; - - return $this; - } - - public function getExtensionAlias(): string - { - return 'doctrine_migrations'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('migrations_paths', $value)) { - $this->_usedProperties['migrationsPaths'] = true; - $this->migrationsPaths = $value['migrations_paths']; - unset($value['migrations_paths']); - } - - if (array_key_exists('services', $value)) { - $this->_usedProperties['services'] = true; - $this->services = $value['services']; - unset($value['services']); - } - - if (array_key_exists('factories', $value)) { - $this->_usedProperties['factories'] = true; - $this->factories = $value['factories']; - unset($value['factories']); - } - - if (array_key_exists('storage', $value)) { - $this->_usedProperties['storage'] = true; - $this->storage = new \Symfony\Config\DoctrineMigrations\StorageConfig($value['storage']); - unset($value['storage']); - } - - if (array_key_exists('migrations', $value)) { - $this->_usedProperties['migrations'] = true; - $this->migrations = $value['migrations']; - unset($value['migrations']); - } - - if (array_key_exists('connection', $value)) { - $this->_usedProperties['connection'] = true; - $this->connection = $value['connection']; - unset($value['connection']); - } - - if (array_key_exists('em', $value)) { - $this->_usedProperties['em'] = true; - $this->em = $value['em']; - unset($value['em']); - } - - if (array_key_exists('all_or_nothing', $value)) { - $this->_usedProperties['allOrNothing'] = true; - $this->allOrNothing = $value['all_or_nothing']; - unset($value['all_or_nothing']); - } - - if (array_key_exists('check_database_platform', $value)) { - $this->_usedProperties['checkDatabasePlatform'] = true; - $this->checkDatabasePlatform = $value['check_database_platform']; - unset($value['check_database_platform']); - } - - if (array_key_exists('custom_template', $value)) { - $this->_usedProperties['customTemplate'] = true; - $this->customTemplate = $value['custom_template']; - unset($value['custom_template']); - } - - if (array_key_exists('organize_migrations', $value)) { - $this->_usedProperties['organizeMigrations'] = true; - $this->organizeMigrations = $value['organize_migrations']; - unset($value['organize_migrations']); - } - - if (array_key_exists('enable_profiler', $value)) { - $this->_usedProperties['enableProfiler'] = true; - $this->enableProfiler = $value['enable_profiler']; - unset($value['enable_profiler']); - } - - if (array_key_exists('transactional', $value)) { - $this->_usedProperties['transactional'] = true; - $this->transactional = $value['transactional']; - unset($value['transactional']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['migrationsPaths'])) { - $output['migrations_paths'] = $this->migrationsPaths; - } - if (isset($this->_usedProperties['services'])) { - $output['services'] = $this->services; - } - if (isset($this->_usedProperties['factories'])) { - $output['factories'] = $this->factories; - } - if (isset($this->_usedProperties['storage'])) { - $output['storage'] = $this->storage->toArray(); - } - if (isset($this->_usedProperties['migrations'])) { - $output['migrations'] = $this->migrations; - } - if (isset($this->_usedProperties['connection'])) { - $output['connection'] = $this->connection; - } - if (isset($this->_usedProperties['em'])) { - $output['em'] = $this->em; - } - if (isset($this->_usedProperties['allOrNothing'])) { - $output['all_or_nothing'] = $this->allOrNothing; - } - if (isset($this->_usedProperties['checkDatabasePlatform'])) { - $output['check_database_platform'] = $this->checkDatabasePlatform; - } - if (isset($this->_usedProperties['customTemplate'])) { - $output['custom_template'] = $this->customTemplate; - } - if (isset($this->_usedProperties['organizeMigrations'])) { - $output['organize_migrations'] = $this->organizeMigrations; - } - if (isset($this->_usedProperties['enableProfiler'])) { - $output['enable_profiler'] = $this->enableProfiler; - } - if (isset($this->_usedProperties['transactional'])) { - $output['transactional'] = $this->transactional; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AnnotationsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AnnotationsConfig.php deleted file mode 100644 index 0a39f14..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AnnotationsConfig.php +++ /dev/null @@ -1,121 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default 'php_array' - * @param ParamConfigurator|'none'|'php_array'|'file' $value - * @return $this - */ - public function cache($value): static - { - $this->_usedProperties['cache'] = true; - $this->cache = $value; - - return $this; - } - - /** - * @default '%kernel.cache_dir%/annotations' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function fileCacheDir($value): static - { - $this->_usedProperties['fileCacheDir'] = true; - $this->fileCacheDir = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function debug($value): static - { - $this->_usedProperties['debug'] = true; - $this->debug = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('cache', $value)) { - $this->_usedProperties['cache'] = true; - $this->cache = $value['cache']; - unset($value['cache']); - } - - if (array_key_exists('file_cache_dir', $value)) { - $this->_usedProperties['fileCacheDir'] = true; - $this->fileCacheDir = $value['file_cache_dir']; - unset($value['file_cache_dir']); - } - - if (array_key_exists('debug', $value)) { - $this->_usedProperties['debug'] = true; - $this->debug = $value['debug']; - unset($value['debug']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['cache'])) { - $output['cache'] = $this->cache; - } - if (isset($this->_usedProperties['fileCacheDir'])) { - $output['file_cache_dir'] = $this->fileCacheDir; - } - if (isset($this->_usedProperties['debug'])) { - $output['debug'] = $this->debug; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetMapperConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetMapperConfig.php deleted file mode 100644 index 92f8ae3..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetMapperConfig.php +++ /dev/null @@ -1,330 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @return $this - */ - public function path(string $namespace, mixed $value): static - { - $this->_usedProperties['paths'] = true; - $this->paths[$namespace] = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function excludedPatterns(ParamConfigurator|array $value): static - { - $this->_usedProperties['excludedPatterns'] = true; - $this->excludedPatterns = $value; - - return $this; - } - - /** - * If true, any files starting with "." will be excluded from the asset mapper - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function excludeDotfiles($value): static - { - $this->_usedProperties['excludeDotfiles'] = true; - $this->excludeDotfiles = $value; - - return $this; - } - - /** - * If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default) - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function server($value): static - { - $this->_usedProperties['server'] = true; - $this->server = $value; - - return $this; - } - - /** - * The public path where the assets will be written to (and served from when "server" is true) - * @default '/assets/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function publicPrefix($value): static - { - $this->_usedProperties['publicPrefix'] = true; - $this->publicPrefix = $value; - - return $this; - } - - /** - * Behavior if an asset cannot be found when imported from JavaScript or CSS files - e.g. "import './non-existent.js'". "strict" means an exception is thrown, "warn" means a warning is logged, "ignore" means the import is left as-is. - * @default 'warn' - * @param ParamConfigurator|'strict'|'warn'|'ignore' $value - * @return $this - */ - public function missingImportMode($value): static - { - $this->_usedProperties['missingImportMode'] = true; - $this->missingImportMode = $value; - - return $this; - } - - /** - * @return $this - */ - public function extension(string $extension, mixed $value): static - { - $this->_usedProperties['extensions'] = true; - $this->extensions[$extension] = $value; - - return $this; - } - - /** - * The path of the importmap.php file. - * @default '%kernel.project_dir%/importmap.php' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function importmapPath($value): static - { - $this->_usedProperties['importmapPath'] = true; - $this->importmapPath = $value; - - return $this; - } - - /** - * The importmap name that will be used to load the polyfill. Set to false to disable. - * @default 'es-module-shims' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function importmapPolyfill($value): static - { - $this->_usedProperties['importmapPolyfill'] = true; - $this->importmapPolyfill = $value; - - return $this; - } - - /** - * @return $this - */ - public function importmapScriptAttribute(string $key, mixed $value): static - { - $this->_usedProperties['importmapScriptAttributes'] = true; - $this->importmapScriptAttributes[$key] = $value; - - return $this; - } - - /** - * The directory to store JavaScript vendors. - * @default '%kernel.project_dir%/assets/vendor' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vendorDir($value): static - { - $this->_usedProperties['vendorDir'] = true; - $this->vendorDir = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @deprecated Option "provider" at "asset_mapper" is deprecated and does nothing. Remove it. - * @return $this - */ - public function provider($value): static - { - $this->_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('paths', $value)) { - $this->_usedProperties['paths'] = true; - $this->paths = $value['paths']; - unset($value['paths']); - } - - if (array_key_exists('excluded_patterns', $value)) { - $this->_usedProperties['excludedPatterns'] = true; - $this->excludedPatterns = $value['excluded_patterns']; - unset($value['excluded_patterns']); - } - - if (array_key_exists('exclude_dotfiles', $value)) { - $this->_usedProperties['excludeDotfiles'] = true; - $this->excludeDotfiles = $value['exclude_dotfiles']; - unset($value['exclude_dotfiles']); - } - - if (array_key_exists('server', $value)) { - $this->_usedProperties['server'] = true; - $this->server = $value['server']; - unset($value['server']); - } - - if (array_key_exists('public_prefix', $value)) { - $this->_usedProperties['publicPrefix'] = true; - $this->publicPrefix = $value['public_prefix']; - unset($value['public_prefix']); - } - - if (array_key_exists('missing_import_mode', $value)) { - $this->_usedProperties['missingImportMode'] = true; - $this->missingImportMode = $value['missing_import_mode']; - unset($value['missing_import_mode']); - } - - if (array_key_exists('extensions', $value)) { - $this->_usedProperties['extensions'] = true; - $this->extensions = $value['extensions']; - unset($value['extensions']); - } - - if (array_key_exists('importmap_path', $value)) { - $this->_usedProperties['importmapPath'] = true; - $this->importmapPath = $value['importmap_path']; - unset($value['importmap_path']); - } - - if (array_key_exists('importmap_polyfill', $value)) { - $this->_usedProperties['importmapPolyfill'] = true; - $this->importmapPolyfill = $value['importmap_polyfill']; - unset($value['importmap_polyfill']); - } - - if (array_key_exists('importmap_script_attributes', $value)) { - $this->_usedProperties['importmapScriptAttributes'] = true; - $this->importmapScriptAttributes = $value['importmap_script_attributes']; - unset($value['importmap_script_attributes']); - } - - if (array_key_exists('vendor_dir', $value)) { - $this->_usedProperties['vendorDir'] = true; - $this->vendorDir = $value['vendor_dir']; - unset($value['vendor_dir']); - } - - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['paths'])) { - $output['paths'] = $this->paths; - } - if (isset($this->_usedProperties['excludedPatterns'])) { - $output['excluded_patterns'] = $this->excludedPatterns; - } - if (isset($this->_usedProperties['excludeDotfiles'])) { - $output['exclude_dotfiles'] = $this->excludeDotfiles; - } - if (isset($this->_usedProperties['server'])) { - $output['server'] = $this->server; - } - if (isset($this->_usedProperties['publicPrefix'])) { - $output['public_prefix'] = $this->publicPrefix; - } - if (isset($this->_usedProperties['missingImportMode'])) { - $output['missing_import_mode'] = $this->missingImportMode; - } - if (isset($this->_usedProperties['extensions'])) { - $output['extensions'] = $this->extensions; - } - if (isset($this->_usedProperties['importmapPath'])) { - $output['importmap_path'] = $this->importmapPath; - } - if (isset($this->_usedProperties['importmapPolyfill'])) { - $output['importmap_polyfill'] = $this->importmapPolyfill; - } - if (isset($this->_usedProperties['importmapScriptAttributes'])) { - $output['importmap_script_attributes'] = $this->importmapScriptAttributes; - } - if (isset($this->_usedProperties['vendorDir'])) { - $output['vendor_dir'] = $this->vendorDir; - } - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Assets/PackageConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Assets/PackageConfig.php deleted file mode 100644 index 4da7d04..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Assets/PackageConfig.php +++ /dev/null @@ -1,190 +0,0 @@ -_usedProperties['strictMode'] = true; - $this->strictMode = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionStrategy($value): static - { - $this->_usedProperties['versionStrategy'] = true; - $this->versionStrategy = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function version($value): static - { - $this->_usedProperties['version'] = true; - $this->version = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionFormat($value): static - { - $this->_usedProperties['versionFormat'] = true; - $this->versionFormat = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function jsonManifestPath($value): static - { - $this->_usedProperties['jsonManifestPath'] = true; - $this->jsonManifestPath = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function basePath($value): static - { - $this->_usedProperties['basePath'] = true; - $this->basePath = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|mixed $value - * - * @return $this - */ - public function baseUrls(mixed $value): static - { - $this->_usedProperties['baseUrls'] = true; - $this->baseUrls = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('strict_mode', $value)) { - $this->_usedProperties['strictMode'] = true; - $this->strictMode = $value['strict_mode']; - unset($value['strict_mode']); - } - - if (array_key_exists('version_strategy', $value)) { - $this->_usedProperties['versionStrategy'] = true; - $this->versionStrategy = $value['version_strategy']; - unset($value['version_strategy']); - } - - if (array_key_exists('version', $value)) { - $this->_usedProperties['version'] = true; - $this->version = $value['version']; - unset($value['version']); - } - - if (array_key_exists('version_format', $value)) { - $this->_usedProperties['versionFormat'] = true; - $this->versionFormat = $value['version_format']; - unset($value['version_format']); - } - - if (array_key_exists('json_manifest_path', $value)) { - $this->_usedProperties['jsonManifestPath'] = true; - $this->jsonManifestPath = $value['json_manifest_path']; - unset($value['json_manifest_path']); - } - - if (array_key_exists('base_path', $value)) { - $this->_usedProperties['basePath'] = true; - $this->basePath = $value['base_path']; - unset($value['base_path']); - } - - if (array_key_exists('base_urls', $value)) { - $this->_usedProperties['baseUrls'] = true; - $this->baseUrls = $value['base_urls']; - unset($value['base_urls']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['strictMode'])) { - $output['strict_mode'] = $this->strictMode; - } - if (isset($this->_usedProperties['versionStrategy'])) { - $output['version_strategy'] = $this->versionStrategy; - } - if (isset($this->_usedProperties['version'])) { - $output['version'] = $this->version; - } - if (isset($this->_usedProperties['versionFormat'])) { - $output['version_format'] = $this->versionFormat; - } - if (isset($this->_usedProperties['jsonManifestPath'])) { - $output['json_manifest_path'] = $this->jsonManifestPath; - } - if (isset($this->_usedProperties['basePath'])) { - $output['base_path'] = $this->basePath; - } - if (isset($this->_usedProperties['baseUrls'])) { - $output['base_urls'] = $this->baseUrls; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetsConfig.php deleted file mode 100644 index 6b9add4..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/AssetsConfig.php +++ /dev/null @@ -1,237 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * Throw an exception if an entry is missing from the manifest.json - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function strictMode($value): static - { - $this->_usedProperties['strictMode'] = true; - $this->strictMode = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionStrategy($value): static - { - $this->_usedProperties['versionStrategy'] = true; - $this->versionStrategy = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function version($value): static - { - $this->_usedProperties['version'] = true; - $this->version = $value; - - return $this; - } - - /** - * @default '%%s?%%s' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function versionFormat($value): static - { - $this->_usedProperties['versionFormat'] = true; - $this->versionFormat = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function jsonManifestPath($value): static - { - $this->_usedProperties['jsonManifestPath'] = true; - $this->jsonManifestPath = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function basePath($value): static - { - $this->_usedProperties['basePath'] = true; - $this->basePath = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|mixed $value - * - * @return $this - */ - public function baseUrls(mixed $value): static - { - $this->_usedProperties['baseUrls'] = true; - $this->baseUrls = $value; - - return $this; - } - - public function package(string $name, array $value = []): \Symfony\Config\Framework\Assets\PackageConfig - { - if (!isset($this->packages[$name])) { - $this->_usedProperties['packages'] = true; - $this->packages[$name] = new \Symfony\Config\Framework\Assets\PackageConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "package()" has already been initialized. You cannot pass values the second time you call package().'); - } - - return $this->packages[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('strict_mode', $value)) { - $this->_usedProperties['strictMode'] = true; - $this->strictMode = $value['strict_mode']; - unset($value['strict_mode']); - } - - if (array_key_exists('version_strategy', $value)) { - $this->_usedProperties['versionStrategy'] = true; - $this->versionStrategy = $value['version_strategy']; - unset($value['version_strategy']); - } - - if (array_key_exists('version', $value)) { - $this->_usedProperties['version'] = true; - $this->version = $value['version']; - unset($value['version']); - } - - if (array_key_exists('version_format', $value)) { - $this->_usedProperties['versionFormat'] = true; - $this->versionFormat = $value['version_format']; - unset($value['version_format']); - } - - if (array_key_exists('json_manifest_path', $value)) { - $this->_usedProperties['jsonManifestPath'] = true; - $this->jsonManifestPath = $value['json_manifest_path']; - unset($value['json_manifest_path']); - } - - if (array_key_exists('base_path', $value)) { - $this->_usedProperties['basePath'] = true; - $this->basePath = $value['base_path']; - unset($value['base_path']); - } - - if (array_key_exists('base_urls', $value)) { - $this->_usedProperties['baseUrls'] = true; - $this->baseUrls = $value['base_urls']; - unset($value['base_urls']); - } - - if (array_key_exists('packages', $value)) { - $this->_usedProperties['packages'] = true; - $this->packages = array_map(fn ($v) => new \Symfony\Config\Framework\Assets\PackageConfig($v), $value['packages']); - unset($value['packages']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['strictMode'])) { - $output['strict_mode'] = $this->strictMode; - } - if (isset($this->_usedProperties['versionStrategy'])) { - $output['version_strategy'] = $this->versionStrategy; - } - if (isset($this->_usedProperties['version'])) { - $output['version'] = $this->version; - } - if (isset($this->_usedProperties['versionFormat'])) { - $output['version_format'] = $this->versionFormat; - } - if (isset($this->_usedProperties['jsonManifestPath'])) { - $output['json_manifest_path'] = $this->jsonManifestPath; - } - if (isset($this->_usedProperties['basePath'])) { - $output['base_path'] = $this->basePath; - } - if (isset($this->_usedProperties['baseUrls'])) { - $output['base_urls'] = $this->baseUrls; - } - if (isset($this->_usedProperties['packages'])) { - $output['packages'] = array_map(fn ($v) => $v->toArray(), $this->packages); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Cache/PoolConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Cache/PoolConfig.php deleted file mode 100644 index 1036a38..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Cache/PoolConfig.php +++ /dev/null @@ -1,194 +0,0 @@ -|mixed $value - * - * @return $this - */ - public function adapters(mixed $value): static - { - $this->_usedProperties['adapters'] = true; - $this->adapters = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function tags($value): static - { - $this->_usedProperties['tags'] = true; - $this->tags = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function public($value): static - { - $this->_usedProperties['public'] = true; - $this->public = $value; - - return $this; - } - - /** - * Default lifetime of the pool - * @example "300" for 5 minutes expressed in seconds, "PT5M" for five minutes expressed as ISO 8601 time interval, or "5 minutes" as a date expression - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultLifetime($value): static - { - $this->_usedProperties['defaultLifetime'] = true; - $this->defaultLifetime = $value; - - return $this; - } - - /** - * Overwrite the setting from the default provider for this adapter. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function provider($value): static - { - $this->_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @example "messenger.default_bus" to send early expiration events to the default Messenger bus. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function earlyExpirationMessageBus($value): static - { - $this->_usedProperties['earlyExpirationMessageBus'] = true; - $this->earlyExpirationMessageBus = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function clearer($value): static - { - $this->_usedProperties['clearer'] = true; - $this->clearer = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('adapters', $value)) { - $this->_usedProperties['adapters'] = true; - $this->adapters = $value['adapters']; - unset($value['adapters']); - } - - if (array_key_exists('tags', $value)) { - $this->_usedProperties['tags'] = true; - $this->tags = $value['tags']; - unset($value['tags']); - } - - if (array_key_exists('public', $value)) { - $this->_usedProperties['public'] = true; - $this->public = $value['public']; - unset($value['public']); - } - - if (array_key_exists('default_lifetime', $value)) { - $this->_usedProperties['defaultLifetime'] = true; - $this->defaultLifetime = $value['default_lifetime']; - unset($value['default_lifetime']); - } - - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('early_expiration_message_bus', $value)) { - $this->_usedProperties['earlyExpirationMessageBus'] = true; - $this->earlyExpirationMessageBus = $value['early_expiration_message_bus']; - unset($value['early_expiration_message_bus']); - } - - if (array_key_exists('clearer', $value)) { - $this->_usedProperties['clearer'] = true; - $this->clearer = $value['clearer']; - unset($value['clearer']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['adapters'])) { - $output['adapters'] = $this->adapters; - } - if (isset($this->_usedProperties['tags'])) { - $output['tags'] = $this->tags; - } - if (isset($this->_usedProperties['public'])) { - $output['public'] = $this->public; - } - if (isset($this->_usedProperties['defaultLifetime'])) { - $output['default_lifetime'] = $this->defaultLifetime; - } - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['earlyExpirationMessageBus'])) { - $output['early_expiration_message_bus'] = $this->earlyExpirationMessageBus; - } - if (isset($this->_usedProperties['clearer'])) { - $output['clearer'] = $this->clearer; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CacheConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CacheConfig.php deleted file mode 100644 index c8e5165..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CacheConfig.php +++ /dev/null @@ -1,277 +0,0 @@ -_usedProperties['prefixSeed'] = true; - $this->prefixSeed = $value; - - return $this; - } - - /** - * App related cache pools configuration - * @default 'cache.adapter.filesystem' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function app($value): static - { - $this->_usedProperties['app'] = true; - $this->app = $value; - - return $this; - } - - /** - * System related cache pools configuration - * @default 'cache.adapter.system' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function system($value): static - { - $this->_usedProperties['system'] = true; - $this->system = $value; - - return $this; - } - - /** - * @default '%kernel.cache_dir%/pools/app' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function directory($value): static - { - $this->_usedProperties['directory'] = true; - $this->directory = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultPsr6Provider($value): static - { - $this->_usedProperties['defaultPsr6Provider'] = true; - $this->defaultPsr6Provider = $value; - - return $this; - } - - /** - * @default 'redis://localhost' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultRedisProvider($value): static - { - $this->_usedProperties['defaultRedisProvider'] = true; - $this->defaultRedisProvider = $value; - - return $this; - } - - /** - * @default 'memcached://localhost' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultMemcachedProvider($value): static - { - $this->_usedProperties['defaultMemcachedProvider'] = true; - $this->defaultMemcachedProvider = $value; - - return $this; - } - - /** - * @default 'database_connection' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultDoctrineDbalProvider($value): static - { - $this->_usedProperties['defaultDoctrineDbalProvider'] = true; - $this->defaultDoctrineDbalProvider = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultPdoProvider($value): static - { - $this->_usedProperties['defaultPdoProvider'] = true; - $this->defaultPdoProvider = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Cache\PoolConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Cache\PoolConfig : static) - */ - public function pool(string $name, mixed $value = []): \Symfony\Config\Framework\Cache\PoolConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['pools'] = true; - $this->pools[$name] = $value; - - return $this; - } - - if (!isset($this->pools[$name]) || !$this->pools[$name] instanceof \Symfony\Config\Framework\Cache\PoolConfig) { - $this->_usedProperties['pools'] = true; - $this->pools[$name] = new \Symfony\Config\Framework\Cache\PoolConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "pool()" has already been initialized. You cannot pass values the second time you call pool().'); - } - - return $this->pools[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('prefix_seed', $value)) { - $this->_usedProperties['prefixSeed'] = true; - $this->prefixSeed = $value['prefix_seed']; - unset($value['prefix_seed']); - } - - if (array_key_exists('app', $value)) { - $this->_usedProperties['app'] = true; - $this->app = $value['app']; - unset($value['app']); - } - - if (array_key_exists('system', $value)) { - $this->_usedProperties['system'] = true; - $this->system = $value['system']; - unset($value['system']); - } - - if (array_key_exists('directory', $value)) { - $this->_usedProperties['directory'] = true; - $this->directory = $value['directory']; - unset($value['directory']); - } - - if (array_key_exists('default_psr6_provider', $value)) { - $this->_usedProperties['defaultPsr6Provider'] = true; - $this->defaultPsr6Provider = $value['default_psr6_provider']; - unset($value['default_psr6_provider']); - } - - if (array_key_exists('default_redis_provider', $value)) { - $this->_usedProperties['defaultRedisProvider'] = true; - $this->defaultRedisProvider = $value['default_redis_provider']; - unset($value['default_redis_provider']); - } - - if (array_key_exists('default_memcached_provider', $value)) { - $this->_usedProperties['defaultMemcachedProvider'] = true; - $this->defaultMemcachedProvider = $value['default_memcached_provider']; - unset($value['default_memcached_provider']); - } - - if (array_key_exists('default_doctrine_dbal_provider', $value)) { - $this->_usedProperties['defaultDoctrineDbalProvider'] = true; - $this->defaultDoctrineDbalProvider = $value['default_doctrine_dbal_provider']; - unset($value['default_doctrine_dbal_provider']); - } - - if (array_key_exists('default_pdo_provider', $value)) { - $this->_usedProperties['defaultPdoProvider'] = true; - $this->defaultPdoProvider = $value['default_pdo_provider']; - unset($value['default_pdo_provider']); - } - - if (array_key_exists('pools', $value)) { - $this->_usedProperties['pools'] = true; - $this->pools = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Cache\PoolConfig($v) : $v, $value['pools']); - unset($value['pools']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['prefixSeed'])) { - $output['prefix_seed'] = $this->prefixSeed; - } - if (isset($this->_usedProperties['app'])) { - $output['app'] = $this->app; - } - if (isset($this->_usedProperties['system'])) { - $output['system'] = $this->system; - } - if (isset($this->_usedProperties['directory'])) { - $output['directory'] = $this->directory; - } - if (isset($this->_usedProperties['defaultPsr6Provider'])) { - $output['default_psr6_provider'] = $this->defaultPsr6Provider; - } - if (isset($this->_usedProperties['defaultRedisProvider'])) { - $output['default_redis_provider'] = $this->defaultRedisProvider; - } - if (isset($this->_usedProperties['defaultMemcachedProvider'])) { - $output['default_memcached_provider'] = $this->defaultMemcachedProvider; - } - if (isset($this->_usedProperties['defaultDoctrineDbalProvider'])) { - $output['default_doctrine_dbal_provider'] = $this->defaultDoctrineDbalProvider; - } - if (isset($this->_usedProperties['defaultPdoProvider'])) { - $output['default_pdo_provider'] = $this->defaultPdoProvider; - } - if (isset($this->_usedProperties['pools'])) { - $output['pools'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Cache\PoolConfig ? $v->toArray() : $v, $this->pools); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CsrfProtectionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CsrfProtectionConfig.php deleted file mode 100644 index 8827d52..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/CsrfProtectionConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/EsiConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/EsiConfig.php deleted file mode 100644 index 322e8a9..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/EsiConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ExceptionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ExceptionConfig.php deleted file mode 100644 index 8139665..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ExceptionConfig.php +++ /dev/null @@ -1,77 +0,0 @@ -_usedProperties['logLevel'] = true; - $this->logLevel = $value; - - return $this; - } - - /** - * The status code of the response. Null or 0 to let Symfony decide. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function statusCode($value): static - { - $this->_usedProperties['statusCode'] = true; - $this->statusCode = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('log_level', $value)) { - $this->_usedProperties['logLevel'] = true; - $this->logLevel = $value['log_level']; - unset($value['log_level']); - } - - if (array_key_exists('status_code', $value)) { - $this->_usedProperties['statusCode'] = true; - $this->statusCode = $value['status_code']; - unset($value['status_code']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['logLevel'])) { - $output['log_level'] = $this->logLevel; - } - if (isset($this->_usedProperties['statusCode'])) { - $output['status_code'] = $this->statusCode; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Form/CsrfProtectionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Form/CsrfProtectionConfig.php deleted file mode 100644 index 745a2da..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Form/CsrfProtectionConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default '_token' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function fieldName($value): static - { - $this->_usedProperties['fieldName'] = true; - $this->fieldName = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('field_name', $value)) { - $this->_usedProperties['fieldName'] = true; - $this->fieldName = $value['field_name']; - unset($value['field_name']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['fieldName'])) { - $output['field_name'] = $this->fieldName; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FormConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FormConfig.php deleted file mode 100644 index 07ffe70..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FormConfig.php +++ /dev/null @@ -1,103 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default {"enabled":null,"field_name":"_token"} - */ - public function csrfProtection(array $value = []): \Symfony\Config\Framework\Form\CsrfProtectionConfig - { - if (null === $this->csrfProtection) { - $this->_usedProperties['csrfProtection'] = true; - $this->csrfProtection = new \Symfony\Config\Framework\Form\CsrfProtectionConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "csrfProtection()" has already been initialized. You cannot pass values the second time you call csrfProtection().'); - } - - return $this->csrfProtection; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @deprecated The child node "legacy_error_messages" at path "form" is deprecated. - * @return $this - */ - public function legacyErrorMessages($value): static - { - $this->_usedProperties['legacyErrorMessages'] = true; - $this->legacyErrorMessages = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('csrf_protection', $value)) { - $this->_usedProperties['csrfProtection'] = true; - $this->csrfProtection = new \Symfony\Config\Framework\Form\CsrfProtectionConfig($value['csrf_protection']); - unset($value['csrf_protection']); - } - - if (array_key_exists('legacy_error_messages', $value)) { - $this->_usedProperties['legacyErrorMessages'] = true; - $this->legacyErrorMessages = $value['legacy_error_messages']; - unset($value['legacy_error_messages']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['csrfProtection'])) { - $output['csrf_protection'] = $this->csrfProtection->toArray(); - } - if (isset($this->_usedProperties['legacyErrorMessages'])) { - $output['legacy_error_messages'] = $this->legacyErrorMessages; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FragmentsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FragmentsConfig.php deleted file mode 100644 index 10b2083..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/FragmentsConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function hincludeDefaultTemplate($value): static - { - $this->_usedProperties['hincludeDefaultTemplate'] = true; - $this->hincludeDefaultTemplate = $value; - - return $this; - } - - /** - * @default '/_fragment' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('hinclude_default_template', $value)) { - $this->_usedProperties['hincludeDefaultTemplate'] = true; - $this->hincludeDefaultTemplate = $value['hinclude_default_template']; - unset($value['hinclude_default_template']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['hincludeDefaultTemplate'])) { - $output['hinclude_default_template'] = $this->hincludeDefaultTemplate; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizer/SanitizerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizer/SanitizerConfig.php deleted file mode 100644 index 9fcadcd..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizer/SanitizerConfig.php +++ /dev/null @@ -1,445 +0,0 @@ -_usedProperties['allowSafeElements'] = true; - $this->allowSafeElements = $value; - - return $this; - } - - /** - * Allows all static elements and attributes from the W3C Sanitizer API standard. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowStaticElements($value): static - { - $this->_usedProperties['allowStaticElements'] = true; - $this->allowStaticElements = $value; - - return $this; - } - - /** - * @return $this - */ - public function allowElement(string $name, mixed $value): static - { - $this->_usedProperties['allowElements'] = true; - $this->allowElements[$name] = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function blockElements(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['blockElements'] = true; - $this->blockElements = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function dropElements(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['dropElements'] = true; - $this->dropElements = $value; - - return $this; - } - - /** - * @return $this - */ - public function allowAttribute(string $name, mixed $value): static - { - $this->_usedProperties['allowAttributes'] = true; - $this->allowAttributes[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function dropAttribute(string $name, mixed $value): static - { - $this->_usedProperties['dropAttributes'] = true; - $this->dropAttributes[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function forceAttribute(string $name, ParamConfigurator|array $value): static - { - $this->_usedProperties['forceAttributes'] = true; - $this->forceAttributes[$name] = $value; - - return $this; - } - - /** - * Transforms URLs using the HTTP scheme to use the HTTPS scheme instead. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function forceHttpsUrls($value): static - { - $this->_usedProperties['forceHttpsUrls'] = true; - $this->forceHttpsUrls = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function allowedLinkSchemes(ParamConfigurator|array $value): static - { - $this->_usedProperties['allowedLinkSchemes'] = true; - $this->allowedLinkSchemes = $value; - - return $this; - } - - /** - * Allows only a given list of hosts to be used in links href attributes. - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function allowedLinkHosts(mixed $value = NULL): static - { - $this->_usedProperties['allowedLinkHosts'] = true; - $this->allowedLinkHosts = $value; - - return $this; - } - - /** - * Allows relative URLs to be used in links href attributes. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowRelativeLinks($value): static - { - $this->_usedProperties['allowRelativeLinks'] = true; - $this->allowRelativeLinks = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function allowedMediaSchemes(ParamConfigurator|array $value): static - { - $this->_usedProperties['allowedMediaSchemes'] = true; - $this->allowedMediaSchemes = $value; - - return $this; - } - - /** - * Allows only a given list of hosts to be used in media source attributes (img, audio, video, ...). - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function allowedMediaHosts(mixed $value = NULL): static - { - $this->_usedProperties['allowedMediaHosts'] = true; - $this->allowedMediaHosts = $value; - - return $this; - } - - /** - * Allows relative URLs to be used in media source attributes (img, audio, video, ...). - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowRelativeMedias($value): static - { - $this->_usedProperties['allowRelativeMedias'] = true; - $this->allowRelativeMedias = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function withAttributeSanitizers(ParamConfigurator|array $value): static - { - $this->_usedProperties['withAttributeSanitizers'] = true; - $this->withAttributeSanitizers = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function withoutAttributeSanitizers(ParamConfigurator|array $value): static - { - $this->_usedProperties['withoutAttributeSanitizers'] = true; - $this->withoutAttributeSanitizers = $value; - - return $this; - } - - /** - * The maximum length allowed for the sanitized input. - * @default 0 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxInputLength($value): static - { - $this->_usedProperties['maxInputLength'] = true; - $this->maxInputLength = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('allow_safe_elements', $value)) { - $this->_usedProperties['allowSafeElements'] = true; - $this->allowSafeElements = $value['allow_safe_elements']; - unset($value['allow_safe_elements']); - } - - if (array_key_exists('allow_static_elements', $value)) { - $this->_usedProperties['allowStaticElements'] = true; - $this->allowStaticElements = $value['allow_static_elements']; - unset($value['allow_static_elements']); - } - - if (array_key_exists('allow_elements', $value)) { - $this->_usedProperties['allowElements'] = true; - $this->allowElements = $value['allow_elements']; - unset($value['allow_elements']); - } - - if (array_key_exists('block_elements', $value)) { - $this->_usedProperties['blockElements'] = true; - $this->blockElements = $value['block_elements']; - unset($value['block_elements']); - } - - if (array_key_exists('drop_elements', $value)) { - $this->_usedProperties['dropElements'] = true; - $this->dropElements = $value['drop_elements']; - unset($value['drop_elements']); - } - - if (array_key_exists('allow_attributes', $value)) { - $this->_usedProperties['allowAttributes'] = true; - $this->allowAttributes = $value['allow_attributes']; - unset($value['allow_attributes']); - } - - if (array_key_exists('drop_attributes', $value)) { - $this->_usedProperties['dropAttributes'] = true; - $this->dropAttributes = $value['drop_attributes']; - unset($value['drop_attributes']); - } - - if (array_key_exists('force_attributes', $value)) { - $this->_usedProperties['forceAttributes'] = true; - $this->forceAttributes = $value['force_attributes']; - unset($value['force_attributes']); - } - - if (array_key_exists('force_https_urls', $value)) { - $this->_usedProperties['forceHttpsUrls'] = true; - $this->forceHttpsUrls = $value['force_https_urls']; - unset($value['force_https_urls']); - } - - if (array_key_exists('allowed_link_schemes', $value)) { - $this->_usedProperties['allowedLinkSchemes'] = true; - $this->allowedLinkSchemes = $value['allowed_link_schemes']; - unset($value['allowed_link_schemes']); - } - - if (array_key_exists('allowed_link_hosts', $value)) { - $this->_usedProperties['allowedLinkHosts'] = true; - $this->allowedLinkHosts = $value['allowed_link_hosts']; - unset($value['allowed_link_hosts']); - } - - if (array_key_exists('allow_relative_links', $value)) { - $this->_usedProperties['allowRelativeLinks'] = true; - $this->allowRelativeLinks = $value['allow_relative_links']; - unset($value['allow_relative_links']); - } - - if (array_key_exists('allowed_media_schemes', $value)) { - $this->_usedProperties['allowedMediaSchemes'] = true; - $this->allowedMediaSchemes = $value['allowed_media_schemes']; - unset($value['allowed_media_schemes']); - } - - if (array_key_exists('allowed_media_hosts', $value)) { - $this->_usedProperties['allowedMediaHosts'] = true; - $this->allowedMediaHosts = $value['allowed_media_hosts']; - unset($value['allowed_media_hosts']); - } - - if (array_key_exists('allow_relative_medias', $value)) { - $this->_usedProperties['allowRelativeMedias'] = true; - $this->allowRelativeMedias = $value['allow_relative_medias']; - unset($value['allow_relative_medias']); - } - - if (array_key_exists('with_attribute_sanitizers', $value)) { - $this->_usedProperties['withAttributeSanitizers'] = true; - $this->withAttributeSanitizers = $value['with_attribute_sanitizers']; - unset($value['with_attribute_sanitizers']); - } - - if (array_key_exists('without_attribute_sanitizers', $value)) { - $this->_usedProperties['withoutAttributeSanitizers'] = true; - $this->withoutAttributeSanitizers = $value['without_attribute_sanitizers']; - unset($value['without_attribute_sanitizers']); - } - - if (array_key_exists('max_input_length', $value)) { - $this->_usedProperties['maxInputLength'] = true; - $this->maxInputLength = $value['max_input_length']; - unset($value['max_input_length']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['allowSafeElements'])) { - $output['allow_safe_elements'] = $this->allowSafeElements; - } - if (isset($this->_usedProperties['allowStaticElements'])) { - $output['allow_static_elements'] = $this->allowStaticElements; - } - if (isset($this->_usedProperties['allowElements'])) { - $output['allow_elements'] = $this->allowElements; - } - if (isset($this->_usedProperties['blockElements'])) { - $output['block_elements'] = $this->blockElements; - } - if (isset($this->_usedProperties['dropElements'])) { - $output['drop_elements'] = $this->dropElements; - } - if (isset($this->_usedProperties['allowAttributes'])) { - $output['allow_attributes'] = $this->allowAttributes; - } - if (isset($this->_usedProperties['dropAttributes'])) { - $output['drop_attributes'] = $this->dropAttributes; - } - if (isset($this->_usedProperties['forceAttributes'])) { - $output['force_attributes'] = $this->forceAttributes; - } - if (isset($this->_usedProperties['forceHttpsUrls'])) { - $output['force_https_urls'] = $this->forceHttpsUrls; - } - if (isset($this->_usedProperties['allowedLinkSchemes'])) { - $output['allowed_link_schemes'] = $this->allowedLinkSchemes; - } - if (isset($this->_usedProperties['allowedLinkHosts'])) { - $output['allowed_link_hosts'] = $this->allowedLinkHosts; - } - if (isset($this->_usedProperties['allowRelativeLinks'])) { - $output['allow_relative_links'] = $this->allowRelativeLinks; - } - if (isset($this->_usedProperties['allowedMediaSchemes'])) { - $output['allowed_media_schemes'] = $this->allowedMediaSchemes; - } - if (isset($this->_usedProperties['allowedMediaHosts'])) { - $output['allowed_media_hosts'] = $this->allowedMediaHosts; - } - if (isset($this->_usedProperties['allowRelativeMedias'])) { - $output['allow_relative_medias'] = $this->allowRelativeMedias; - } - if (isset($this->_usedProperties['withAttributeSanitizers'])) { - $output['with_attribute_sanitizers'] = $this->withAttributeSanitizers; - } - if (isset($this->_usedProperties['withoutAttributeSanitizers'])) { - $output['without_attribute_sanitizers'] = $this->withoutAttributeSanitizers; - } - if (isset($this->_usedProperties['maxInputLength'])) { - $output['max_input_length'] = $this->maxInputLength; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizerConfig.php deleted file mode 100644 index 69983ba..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HtmlSanitizerConfig.php +++ /dev/null @@ -1,76 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function sanitizer(string $name, array $value = []): \Symfony\Config\Framework\HtmlSanitizer\SanitizerConfig - { - if (!isset($this->sanitizers[$name])) { - $this->_usedProperties['sanitizers'] = true; - $this->sanitizers[$name] = new \Symfony\Config\Framework\HtmlSanitizer\SanitizerConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "sanitizer()" has already been initialized. You cannot pass values the second time you call sanitizer().'); - } - - return $this->sanitizers[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('sanitizers', $value)) { - $this->_usedProperties['sanitizers'] = true; - $this->sanitizers = array_map(fn ($v) => new \Symfony\Config\Framework\HtmlSanitizer\SanitizerConfig($v), $value['sanitizers']); - unset($value['sanitizers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['sanitizers'])) { - $output['sanitizers'] = array_map(fn ($v) => $v->toArray(), $this->sanitizers); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpCacheConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpCacheConfig.php deleted file mode 100644 index 46a1c45..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpCacheConfig.php +++ /dev/null @@ -1,305 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default '%kernel.debug%' - * @param ParamConfigurator|bool $value - * @return $this - */ - public function debug($value): static - { - $this->_usedProperties['debug'] = true; - $this->debug = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|'none'|'short'|'full' $value - * @return $this - */ - public function traceLevel($value): static - { - $this->_usedProperties['traceLevel'] = true; - $this->traceLevel = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function traceHeader($value): static - { - $this->_usedProperties['traceHeader'] = true; - $this->traceHeader = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function defaultTtl($value): static - { - $this->_usedProperties['defaultTtl'] = true; - $this->defaultTtl = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function privateHeaders(ParamConfigurator|array $value): static - { - $this->_usedProperties['privateHeaders'] = true; - $this->privateHeaders = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function skipResponseHeaders(ParamConfigurator|array $value): static - { - $this->_usedProperties['skipResponseHeaders'] = true; - $this->skipResponseHeaders = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowReload($value): static - { - $this->_usedProperties['allowReload'] = true; - $this->allowReload = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowRevalidate($value): static - { - $this->_usedProperties['allowRevalidate'] = true; - $this->allowRevalidate = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function staleWhileRevalidate($value): static - { - $this->_usedProperties['staleWhileRevalidate'] = true; - $this->staleWhileRevalidate = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function staleIfError($value): static - { - $this->_usedProperties['staleIfError'] = true; - $this->staleIfError = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function terminateOnCacheHit($value): static - { - $this->_usedProperties['terminateOnCacheHit'] = true; - $this->terminateOnCacheHit = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('debug', $value)) { - $this->_usedProperties['debug'] = true; - $this->debug = $value['debug']; - unset($value['debug']); - } - - if (array_key_exists('trace_level', $value)) { - $this->_usedProperties['traceLevel'] = true; - $this->traceLevel = $value['trace_level']; - unset($value['trace_level']); - } - - if (array_key_exists('trace_header', $value)) { - $this->_usedProperties['traceHeader'] = true; - $this->traceHeader = $value['trace_header']; - unset($value['trace_header']); - } - - if (array_key_exists('default_ttl', $value)) { - $this->_usedProperties['defaultTtl'] = true; - $this->defaultTtl = $value['default_ttl']; - unset($value['default_ttl']); - } - - if (array_key_exists('private_headers', $value)) { - $this->_usedProperties['privateHeaders'] = true; - $this->privateHeaders = $value['private_headers']; - unset($value['private_headers']); - } - - if (array_key_exists('skip_response_headers', $value)) { - $this->_usedProperties['skipResponseHeaders'] = true; - $this->skipResponseHeaders = $value['skip_response_headers']; - unset($value['skip_response_headers']); - } - - if (array_key_exists('allow_reload', $value)) { - $this->_usedProperties['allowReload'] = true; - $this->allowReload = $value['allow_reload']; - unset($value['allow_reload']); - } - - if (array_key_exists('allow_revalidate', $value)) { - $this->_usedProperties['allowRevalidate'] = true; - $this->allowRevalidate = $value['allow_revalidate']; - unset($value['allow_revalidate']); - } - - if (array_key_exists('stale_while_revalidate', $value)) { - $this->_usedProperties['staleWhileRevalidate'] = true; - $this->staleWhileRevalidate = $value['stale_while_revalidate']; - unset($value['stale_while_revalidate']); - } - - if (array_key_exists('stale_if_error', $value)) { - $this->_usedProperties['staleIfError'] = true; - $this->staleIfError = $value['stale_if_error']; - unset($value['stale_if_error']); - } - - if (array_key_exists('terminate_on_cache_hit', $value)) { - $this->_usedProperties['terminateOnCacheHit'] = true; - $this->terminateOnCacheHit = $value['terminate_on_cache_hit']; - unset($value['terminate_on_cache_hit']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['debug'])) { - $output['debug'] = $this->debug; - } - if (isset($this->_usedProperties['traceLevel'])) { - $output['trace_level'] = $this->traceLevel; - } - if (isset($this->_usedProperties['traceHeader'])) { - $output['trace_header'] = $this->traceHeader; - } - if (isset($this->_usedProperties['defaultTtl'])) { - $output['default_ttl'] = $this->defaultTtl; - } - if (isset($this->_usedProperties['privateHeaders'])) { - $output['private_headers'] = $this->privateHeaders; - } - if (isset($this->_usedProperties['skipResponseHeaders'])) { - $output['skip_response_headers'] = $this->skipResponseHeaders; - } - if (isset($this->_usedProperties['allowReload'])) { - $output['allow_reload'] = $this->allowReload; - } - if (isset($this->_usedProperties['allowRevalidate'])) { - $output['allow_revalidate'] = $this->allowRevalidate; - } - if (isset($this->_usedProperties['staleWhileRevalidate'])) { - $output['stale_while_revalidate'] = $this->staleWhileRevalidate; - } - if (isset($this->_usedProperties['staleIfError'])) { - $output['stale_if_error'] = $this->staleIfError; - } - if (isset($this->_usedProperties['terminateOnCacheHit'])) { - $output['terminate_on_cache_hit'] = $this->terminateOnCacheHit; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/PeerFingerprintConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/PeerFingerprintConfig.php deleted file mode 100644 index 910bc00..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/PeerFingerprintConfig.php +++ /dev/null @@ -1,101 +0,0 @@ -_usedProperties['sha1'] = true; - $this->sha1 = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function pinsha256(mixed $value): static - { - $this->_usedProperties['pinsha256'] = true; - $this->pinsha256 = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function md5(mixed $value): static - { - $this->_usedProperties['md5'] = true; - $this->md5 = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('sha1', $value)) { - $this->_usedProperties['sha1'] = true; - $this->sha1 = $value['sha1']; - unset($value['sha1']); - } - - if (array_key_exists('pin-sha256', $value)) { - $this->_usedProperties['pinsha256'] = true; - $this->pinsha256 = $value['pin-sha256']; - unset($value['pin-sha256']); - } - - if (array_key_exists('md5', $value)) { - $this->_usedProperties['md5'] = true; - $this->md5 = $value['md5']; - unset($value['md5']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['sha1'])) { - $output['sha1'] = $this->sha1; - } - if (isset($this->_usedProperties['pinsha256'])) { - $output['pin-sha256'] = $this->pinsha256; - } - if (isset($this->_usedProperties['md5'])) { - $output['md5'] = $this->md5; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailed/HttpCodeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailed/HttpCodeConfig.php deleted file mode 100644 index a4d7c62..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailed/HttpCodeConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['code'] = true; - $this->code = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function methods(ParamConfigurator|array $value): static - { - $this->_usedProperties['methods'] = true; - $this->methods = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('code', $value)) { - $this->_usedProperties['code'] = true; - $this->code = $value['code']; - unset($value['code']); - } - - if (array_key_exists('methods', $value)) { - $this->_usedProperties['methods'] = true; - $this->methods = $value['methods']; - unset($value['methods']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['code'])) { - $output['code'] = $this->code; - } - if (isset($this->_usedProperties['methods'])) { - $output['methods'] = $this->methods; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailedConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailedConfig.php deleted file mode 100644 index fe1fcff..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptions/RetryFailedConfig.php +++ /dev/null @@ -1,233 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * service id to override the retry strategy - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function retryStrategy($value): static - { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * A list of HTTP status code that triggers a retry - * @return \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig : static) - */ - public function httpCode(string $code, array $value = []): \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes[$code] = $value; - - return $this; - } - - if (!isset($this->httpCodes[$code]) || !$this->httpCodes[$code] instanceof \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes[$code] = new \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpCode()" has already been initialized. You cannot pass values the second time you call httpCode().'); - } - - return $this->httpCodes[$code]; - } - - /** - * @default 3 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxRetries($value): static - { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value; - - return $this; - } - - /** - * Time in ms to delay (or the initial value when multiplier is used) - * @default 1000 - * @param ParamConfigurator|int $value - * @return $this - */ - public function delay($value): static - { - $this->_usedProperties['delay'] = true; - $this->delay = $value; - - return $this; - } - - /** - * If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries) - * @default 2 - * @param ParamConfigurator|float $value - * @return $this - */ - public function multiplier($value): static - { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value; - - return $this; - } - - /** - * Max time in ms that a retry should ever be delayed (0 = infinite) - * @default 0 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxDelay($value): static - { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value; - - return $this; - } - - /** - * Randomness in percent (between 0 and 1) to apply to the delay - * @default 0.1 - * @param ParamConfigurator|float $value - * @return $this - */ - public function jitter($value): static - { - $this->_usedProperties['jitter'] = true; - $this->jitter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('retry_strategy', $value)) { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = $value['retry_strategy']; - unset($value['retry_strategy']); - } - - if (array_key_exists('http_codes', $value)) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig($v) : $v, $value['http_codes']); - unset($value['http_codes']); - } - - if (array_key_exists('max_retries', $value)) { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value['max_retries']; - unset($value['max_retries']); - } - - if (array_key_exists('delay', $value)) { - $this->_usedProperties['delay'] = true; - $this->delay = $value['delay']; - unset($value['delay']); - } - - if (array_key_exists('multiplier', $value)) { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value['multiplier']; - unset($value['multiplier']); - } - - if (array_key_exists('max_delay', $value)) { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value['max_delay']; - unset($value['max_delay']); - } - - if (array_key_exists('jitter', $value)) { - $this->_usedProperties['jitter'] = true; - $this->jitter = $value['jitter']; - unset($value['jitter']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['retryStrategy'])) { - $output['retry_strategy'] = $this->retryStrategy; - } - if (isset($this->_usedProperties['httpCodes'])) { - $output['http_codes'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailed\HttpCodeConfig ? $v->toArray() : $v, $this->httpCodes); - } - if (isset($this->_usedProperties['maxRetries'])) { - $output['max_retries'] = $this->maxRetries; - } - if (isset($this->_usedProperties['delay'])) { - $output['delay'] = $this->delay; - } - if (isset($this->_usedProperties['multiplier'])) { - $output['multiplier'] = $this->multiplier; - } - if (isset($this->_usedProperties['maxDelay'])) { - $output['max_delay'] = $this->maxDelay; - } - if (isset($this->_usedProperties['jitter'])) { - $output['jitter'] = $this->jitter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptionsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptionsConfig.php deleted file mode 100644 index 73fb19f..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/DefaultOptionsConfig.php +++ /dev/null @@ -1,565 +0,0 @@ -_usedProperties['headers'] = true; - $this->headers[$name] = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function vars(ParamConfigurator|array $value): static - { - $this->_usedProperties['vars'] = true; - $this->vars = $value; - - return $this; - } - - /** - * The maximum number of redirects to follow. - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxRedirects($value): static - { - $this->_usedProperties['maxRedirects'] = true; - $this->maxRedirects = $value; - - return $this; - } - - /** - * The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function httpVersion($value): static - { - $this->_usedProperties['httpVersion'] = true; - $this->httpVersion = $value; - - return $this; - } - - /** - * @return $this - */ - public function resolve(string $host, mixed $value): static - { - $this->_usedProperties['resolve'] = true; - $this->resolve[$host] = $value; - - return $this; - } - - /** - * The URL of the proxy to pass requests through or null for automatic detection. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function proxy($value): static - { - $this->_usedProperties['proxy'] = true; - $this->proxy = $value; - - return $this; - } - - /** - * A comma separated list of hosts that do not require a proxy to be reached. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function noProxy($value): static - { - $this->_usedProperties['noProxy'] = true; - $this->noProxy = $value; - - return $this; - } - - /** - * The idle timeout, defaults to the "default_socket_timeout" ini parameter. - * @default null - * @param ParamConfigurator|float $value - * @return $this - */ - public function timeout($value): static - { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value; - - return $this; - } - - /** - * The maximum execution time for the request+response as a whole. - * @default null - * @param ParamConfigurator|float $value - * @return $this - */ - public function maxDuration($value): static - { - $this->_usedProperties['maxDuration'] = true; - $this->maxDuration = $value; - - return $this; - } - - /** - * A network interface name, IP address, a host name or a UNIX socket to bind to. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function bindto($value): static - { - $this->_usedProperties['bindto'] = true; - $this->bindto = $value; - - return $this; - } - - /** - * Indicates if the peer should be verified in a TLS context. - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function verifyPeer($value): static - { - $this->_usedProperties['verifyPeer'] = true; - $this->verifyPeer = $value; - - return $this; - } - - /** - * Indicates if the host should exist as a certificate common name. - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function verifyHost($value): static - { - $this->_usedProperties['verifyHost'] = true; - $this->verifyHost = $value; - - return $this; - } - - /** - * A certificate authority file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cafile($value): static - { - $this->_usedProperties['cafile'] = true; - $this->cafile = $value; - - return $this; - } - - /** - * A directory that contains multiple certificate authority files. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function capath($value): static - { - $this->_usedProperties['capath'] = true; - $this->capath = $value; - - return $this; - } - - /** - * A PEM formatted certificate file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function localCert($value): static - { - $this->_usedProperties['localCert'] = true; - $this->localCert = $value; - - return $this; - } - - /** - * A private key file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function localPk($value): static - { - $this->_usedProperties['localPk'] = true; - $this->localPk = $value; - - return $this; - } - - /** - * The passphrase used to encrypt the "local_pk" file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passphrase($value): static - { - $this->_usedProperties['passphrase'] = true; - $this->passphrase = $value; - - return $this; - } - - /** - * A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function ciphers($value): static - { - $this->_usedProperties['ciphers'] = true; - $this->ciphers = $value; - - return $this; - } - - /** - * Associative array: hashing algorithm => hash(es). - */ - public function peerFingerprint(array $value = []): \Symfony\Config\Framework\HttpClient\DefaultOptions\PeerFingerprintConfig - { - if (null === $this->peerFingerprint) { - $this->_usedProperties['peerFingerprint'] = true; - $this->peerFingerprint = new \Symfony\Config\Framework\HttpClient\DefaultOptions\PeerFingerprintConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "peerFingerprint()" has already been initialized. You cannot pass values the second time you call peerFingerprint().'); - } - - return $this->peerFingerprint; - } - - /** - * The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cryptoMethod($value): static - { - $this->_usedProperties['cryptoMethod'] = true; - $this->cryptoMethod = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function extra(ParamConfigurator|array $value): static - { - $this->_usedProperties['extra'] = true; - $this->extra = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":false,"retry_strategy":null,"http_codes":[],"max_retries":3,"delay":1000,"multiplier":2,"max_delay":0,"jitter":0.1} - * @return \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig : static) - */ - public function retryFailed(mixed $value = []): \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = $value; - - return $this; - } - - if (!$this->retryFailed instanceof \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = new \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "retryFailed()" has already been initialized. You cannot pass values the second time you call retryFailed().'); - } - - return $this->retryFailed; - } - - public function __construct(array $value = []) - { - if (array_key_exists('headers', $value)) { - $this->_usedProperties['headers'] = true; - $this->headers = $value['headers']; - unset($value['headers']); - } - - if (array_key_exists('vars', $value)) { - $this->_usedProperties['vars'] = true; - $this->vars = $value['vars']; - unset($value['vars']); - } - - if (array_key_exists('max_redirects', $value)) { - $this->_usedProperties['maxRedirects'] = true; - $this->maxRedirects = $value['max_redirects']; - unset($value['max_redirects']); - } - - if (array_key_exists('http_version', $value)) { - $this->_usedProperties['httpVersion'] = true; - $this->httpVersion = $value['http_version']; - unset($value['http_version']); - } - - if (array_key_exists('resolve', $value)) { - $this->_usedProperties['resolve'] = true; - $this->resolve = $value['resolve']; - unset($value['resolve']); - } - - if (array_key_exists('proxy', $value)) { - $this->_usedProperties['proxy'] = true; - $this->proxy = $value['proxy']; - unset($value['proxy']); - } - - if (array_key_exists('no_proxy', $value)) { - $this->_usedProperties['noProxy'] = true; - $this->noProxy = $value['no_proxy']; - unset($value['no_proxy']); - } - - if (array_key_exists('timeout', $value)) { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value['timeout']; - unset($value['timeout']); - } - - if (array_key_exists('max_duration', $value)) { - $this->_usedProperties['maxDuration'] = true; - $this->maxDuration = $value['max_duration']; - unset($value['max_duration']); - } - - if (array_key_exists('bindto', $value)) { - $this->_usedProperties['bindto'] = true; - $this->bindto = $value['bindto']; - unset($value['bindto']); - } - - if (array_key_exists('verify_peer', $value)) { - $this->_usedProperties['verifyPeer'] = true; - $this->verifyPeer = $value['verify_peer']; - unset($value['verify_peer']); - } - - if (array_key_exists('verify_host', $value)) { - $this->_usedProperties['verifyHost'] = true; - $this->verifyHost = $value['verify_host']; - unset($value['verify_host']); - } - - if (array_key_exists('cafile', $value)) { - $this->_usedProperties['cafile'] = true; - $this->cafile = $value['cafile']; - unset($value['cafile']); - } - - if (array_key_exists('capath', $value)) { - $this->_usedProperties['capath'] = true; - $this->capath = $value['capath']; - unset($value['capath']); - } - - if (array_key_exists('local_cert', $value)) { - $this->_usedProperties['localCert'] = true; - $this->localCert = $value['local_cert']; - unset($value['local_cert']); - } - - if (array_key_exists('local_pk', $value)) { - $this->_usedProperties['localPk'] = true; - $this->localPk = $value['local_pk']; - unset($value['local_pk']); - } - - if (array_key_exists('passphrase', $value)) { - $this->_usedProperties['passphrase'] = true; - $this->passphrase = $value['passphrase']; - unset($value['passphrase']); - } - - if (array_key_exists('ciphers', $value)) { - $this->_usedProperties['ciphers'] = true; - $this->ciphers = $value['ciphers']; - unset($value['ciphers']); - } - - if (array_key_exists('peer_fingerprint', $value)) { - $this->_usedProperties['peerFingerprint'] = true; - $this->peerFingerprint = new \Symfony\Config\Framework\HttpClient\DefaultOptions\PeerFingerprintConfig($value['peer_fingerprint']); - unset($value['peer_fingerprint']); - } - - if (array_key_exists('crypto_method', $value)) { - $this->_usedProperties['cryptoMethod'] = true; - $this->cryptoMethod = $value['crypto_method']; - unset($value['crypto_method']); - } - - if (array_key_exists('extra', $value)) { - $this->_usedProperties['extra'] = true; - $this->extra = $value['extra']; - unset($value['extra']); - } - - if (array_key_exists('retry_failed', $value)) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = \is_array($value['retry_failed']) ? new \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig($value['retry_failed']) : $value['retry_failed']; - unset($value['retry_failed']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['headers'])) { - $output['headers'] = $this->headers; - } - if (isset($this->_usedProperties['vars'])) { - $output['vars'] = $this->vars; - } - if (isset($this->_usedProperties['maxRedirects'])) { - $output['max_redirects'] = $this->maxRedirects; - } - if (isset($this->_usedProperties['httpVersion'])) { - $output['http_version'] = $this->httpVersion; - } - if (isset($this->_usedProperties['resolve'])) { - $output['resolve'] = $this->resolve; - } - if (isset($this->_usedProperties['proxy'])) { - $output['proxy'] = $this->proxy; - } - if (isset($this->_usedProperties['noProxy'])) { - $output['no_proxy'] = $this->noProxy; - } - if (isset($this->_usedProperties['timeout'])) { - $output['timeout'] = $this->timeout; - } - if (isset($this->_usedProperties['maxDuration'])) { - $output['max_duration'] = $this->maxDuration; - } - if (isset($this->_usedProperties['bindto'])) { - $output['bindto'] = $this->bindto; - } - if (isset($this->_usedProperties['verifyPeer'])) { - $output['verify_peer'] = $this->verifyPeer; - } - if (isset($this->_usedProperties['verifyHost'])) { - $output['verify_host'] = $this->verifyHost; - } - if (isset($this->_usedProperties['cafile'])) { - $output['cafile'] = $this->cafile; - } - if (isset($this->_usedProperties['capath'])) { - $output['capath'] = $this->capath; - } - if (isset($this->_usedProperties['localCert'])) { - $output['local_cert'] = $this->localCert; - } - if (isset($this->_usedProperties['localPk'])) { - $output['local_pk'] = $this->localPk; - } - if (isset($this->_usedProperties['passphrase'])) { - $output['passphrase'] = $this->passphrase; - } - if (isset($this->_usedProperties['ciphers'])) { - $output['ciphers'] = $this->ciphers; - } - if (isset($this->_usedProperties['peerFingerprint'])) { - $output['peer_fingerprint'] = $this->peerFingerprint->toArray(); - } - if (isset($this->_usedProperties['cryptoMethod'])) { - $output['crypto_method'] = $this->cryptoMethod; - } - if (isset($this->_usedProperties['extra'])) { - $output['extra'] = $this->extra; - } - if (isset($this->_usedProperties['retryFailed'])) { - $output['retry_failed'] = $this->retryFailed instanceof \Symfony\Config\Framework\HttpClient\DefaultOptions\RetryFailedConfig ? $this->retryFailed->toArray() : $this->retryFailed; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig.php deleted file mode 100644 index 33c33ff..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig.php +++ /dev/null @@ -1,683 +0,0 @@ -_usedProperties['scope'] = true; - $this->scope = $value; - - return $this; - } - - /** - * The URI to resolve relative URLs, following rules in RFC 3985, section 2. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function baseUri($value): static - { - $this->_usedProperties['baseUri'] = true; - $this->baseUri = $value; - - return $this; - } - - /** - * An HTTP Basic authentication "username:password". - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function authBasic($value): static - { - $this->_usedProperties['authBasic'] = true; - $this->authBasic = $value; - - return $this; - } - - /** - * A token enabling HTTP Bearer authorization. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function authBearer($value): static - { - $this->_usedProperties['authBearer'] = true; - $this->authBearer = $value; - - return $this; - } - - /** - * A "username:password" pair to use Microsoft NTLM authentication (requires the cURL extension). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function authNtlm($value): static - { - $this->_usedProperties['authNtlm'] = true; - $this->authNtlm = $value; - - return $this; - } - - /** - * @return $this - */ - public function query(string $key, mixed $value): static - { - $this->_usedProperties['query'] = true; - $this->query[$key] = $value; - - return $this; - } - - /** - * @return $this - */ - public function header(string $name, mixed $value): static - { - $this->_usedProperties['headers'] = true; - $this->headers[$name] = $value; - - return $this; - } - - /** - * The maximum number of redirects to follow. - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxRedirects($value): static - { - $this->_usedProperties['maxRedirects'] = true; - $this->maxRedirects = $value; - - return $this; - } - - /** - * The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function httpVersion($value): static - { - $this->_usedProperties['httpVersion'] = true; - $this->httpVersion = $value; - - return $this; - } - - /** - * @return $this - */ - public function resolve(string $host, mixed $value): static - { - $this->_usedProperties['resolve'] = true; - $this->resolve[$host] = $value; - - return $this; - } - - /** - * The URL of the proxy to pass requests through or null for automatic detection. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function proxy($value): static - { - $this->_usedProperties['proxy'] = true; - $this->proxy = $value; - - return $this; - } - - /** - * A comma separated list of hosts that do not require a proxy to be reached. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function noProxy($value): static - { - $this->_usedProperties['noProxy'] = true; - $this->noProxy = $value; - - return $this; - } - - /** - * The idle timeout, defaults to the "default_socket_timeout" ini parameter. - * @default null - * @param ParamConfigurator|float $value - * @return $this - */ - public function timeout($value): static - { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value; - - return $this; - } - - /** - * The maximum execution time for the request+response as a whole. - * @default null - * @param ParamConfigurator|float $value - * @return $this - */ - public function maxDuration($value): static - { - $this->_usedProperties['maxDuration'] = true; - $this->maxDuration = $value; - - return $this; - } - - /** - * A network interface name, IP address, a host name or a UNIX socket to bind to. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function bindto($value): static - { - $this->_usedProperties['bindto'] = true; - $this->bindto = $value; - - return $this; - } - - /** - * Indicates if the peer should be verified in a TLS context. - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function verifyPeer($value): static - { - $this->_usedProperties['verifyPeer'] = true; - $this->verifyPeer = $value; - - return $this; - } - - /** - * Indicates if the host should exist as a certificate common name. - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function verifyHost($value): static - { - $this->_usedProperties['verifyHost'] = true; - $this->verifyHost = $value; - - return $this; - } - - /** - * A certificate authority file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cafile($value): static - { - $this->_usedProperties['cafile'] = true; - $this->cafile = $value; - - return $this; - } - - /** - * A directory that contains multiple certificate authority files. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function capath($value): static - { - $this->_usedProperties['capath'] = true; - $this->capath = $value; - - return $this; - } - - /** - * A PEM formatted certificate file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function localCert($value): static - { - $this->_usedProperties['localCert'] = true; - $this->localCert = $value; - - return $this; - } - - /** - * A private key file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function localPk($value): static - { - $this->_usedProperties['localPk'] = true; - $this->localPk = $value; - - return $this; - } - - /** - * The passphrase used to encrypt the "local_pk" file. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passphrase($value): static - { - $this->_usedProperties['passphrase'] = true; - $this->passphrase = $value; - - return $this; - } - - /** - * A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function ciphers($value): static - { - $this->_usedProperties['ciphers'] = true; - $this->ciphers = $value; - - return $this; - } - - /** - * Associative array: hashing algorithm => hash(es). - */ - public function peerFingerprint(array $value = []): \Symfony\Config\Framework\HttpClient\ScopedClientConfig\PeerFingerprintConfig - { - if (null === $this->peerFingerprint) { - $this->_usedProperties['peerFingerprint'] = true; - $this->peerFingerprint = new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\PeerFingerprintConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "peerFingerprint()" has already been initialized. You cannot pass values the second time you call peerFingerprint().'); - } - - return $this->peerFingerprint; - } - - /** - * The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cryptoMethod($value): static - { - $this->_usedProperties['cryptoMethod'] = true; - $this->cryptoMethod = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function extra(ParamConfigurator|array $value): static - { - $this->_usedProperties['extra'] = true; - $this->extra = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":false,"retry_strategy":null,"http_codes":[],"max_retries":3,"delay":1000,"multiplier":2,"max_delay":0,"jitter":0.1} - * @return \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig : static) - */ - public function retryFailed(mixed $value = []): \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = $value; - - return $this; - } - - if (!$this->retryFailed instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "retryFailed()" has already been initialized. You cannot pass values the second time you call retryFailed().'); - } - - return $this->retryFailed; - } - - public function __construct(array $value = []) - { - if (array_key_exists('scope', $value)) { - $this->_usedProperties['scope'] = true; - $this->scope = $value['scope']; - unset($value['scope']); - } - - if (array_key_exists('base_uri', $value)) { - $this->_usedProperties['baseUri'] = true; - $this->baseUri = $value['base_uri']; - unset($value['base_uri']); - } - - if (array_key_exists('auth_basic', $value)) { - $this->_usedProperties['authBasic'] = true; - $this->authBasic = $value['auth_basic']; - unset($value['auth_basic']); - } - - if (array_key_exists('auth_bearer', $value)) { - $this->_usedProperties['authBearer'] = true; - $this->authBearer = $value['auth_bearer']; - unset($value['auth_bearer']); - } - - if (array_key_exists('auth_ntlm', $value)) { - $this->_usedProperties['authNtlm'] = true; - $this->authNtlm = $value['auth_ntlm']; - unset($value['auth_ntlm']); - } - - if (array_key_exists('query', $value)) { - $this->_usedProperties['query'] = true; - $this->query = $value['query']; - unset($value['query']); - } - - if (array_key_exists('headers', $value)) { - $this->_usedProperties['headers'] = true; - $this->headers = $value['headers']; - unset($value['headers']); - } - - if (array_key_exists('max_redirects', $value)) { - $this->_usedProperties['maxRedirects'] = true; - $this->maxRedirects = $value['max_redirects']; - unset($value['max_redirects']); - } - - if (array_key_exists('http_version', $value)) { - $this->_usedProperties['httpVersion'] = true; - $this->httpVersion = $value['http_version']; - unset($value['http_version']); - } - - if (array_key_exists('resolve', $value)) { - $this->_usedProperties['resolve'] = true; - $this->resolve = $value['resolve']; - unset($value['resolve']); - } - - if (array_key_exists('proxy', $value)) { - $this->_usedProperties['proxy'] = true; - $this->proxy = $value['proxy']; - unset($value['proxy']); - } - - if (array_key_exists('no_proxy', $value)) { - $this->_usedProperties['noProxy'] = true; - $this->noProxy = $value['no_proxy']; - unset($value['no_proxy']); - } - - if (array_key_exists('timeout', $value)) { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value['timeout']; - unset($value['timeout']); - } - - if (array_key_exists('max_duration', $value)) { - $this->_usedProperties['maxDuration'] = true; - $this->maxDuration = $value['max_duration']; - unset($value['max_duration']); - } - - if (array_key_exists('bindto', $value)) { - $this->_usedProperties['bindto'] = true; - $this->bindto = $value['bindto']; - unset($value['bindto']); - } - - if (array_key_exists('verify_peer', $value)) { - $this->_usedProperties['verifyPeer'] = true; - $this->verifyPeer = $value['verify_peer']; - unset($value['verify_peer']); - } - - if (array_key_exists('verify_host', $value)) { - $this->_usedProperties['verifyHost'] = true; - $this->verifyHost = $value['verify_host']; - unset($value['verify_host']); - } - - if (array_key_exists('cafile', $value)) { - $this->_usedProperties['cafile'] = true; - $this->cafile = $value['cafile']; - unset($value['cafile']); - } - - if (array_key_exists('capath', $value)) { - $this->_usedProperties['capath'] = true; - $this->capath = $value['capath']; - unset($value['capath']); - } - - if (array_key_exists('local_cert', $value)) { - $this->_usedProperties['localCert'] = true; - $this->localCert = $value['local_cert']; - unset($value['local_cert']); - } - - if (array_key_exists('local_pk', $value)) { - $this->_usedProperties['localPk'] = true; - $this->localPk = $value['local_pk']; - unset($value['local_pk']); - } - - if (array_key_exists('passphrase', $value)) { - $this->_usedProperties['passphrase'] = true; - $this->passphrase = $value['passphrase']; - unset($value['passphrase']); - } - - if (array_key_exists('ciphers', $value)) { - $this->_usedProperties['ciphers'] = true; - $this->ciphers = $value['ciphers']; - unset($value['ciphers']); - } - - if (array_key_exists('peer_fingerprint', $value)) { - $this->_usedProperties['peerFingerprint'] = true; - $this->peerFingerprint = new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\PeerFingerprintConfig($value['peer_fingerprint']); - unset($value['peer_fingerprint']); - } - - if (array_key_exists('crypto_method', $value)) { - $this->_usedProperties['cryptoMethod'] = true; - $this->cryptoMethod = $value['crypto_method']; - unset($value['crypto_method']); - } - - if (array_key_exists('extra', $value)) { - $this->_usedProperties['extra'] = true; - $this->extra = $value['extra']; - unset($value['extra']); - } - - if (array_key_exists('retry_failed', $value)) { - $this->_usedProperties['retryFailed'] = true; - $this->retryFailed = \is_array($value['retry_failed']) ? new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig($value['retry_failed']) : $value['retry_failed']; - unset($value['retry_failed']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['scope'])) { - $output['scope'] = $this->scope; - } - if (isset($this->_usedProperties['baseUri'])) { - $output['base_uri'] = $this->baseUri; - } - if (isset($this->_usedProperties['authBasic'])) { - $output['auth_basic'] = $this->authBasic; - } - if (isset($this->_usedProperties['authBearer'])) { - $output['auth_bearer'] = $this->authBearer; - } - if (isset($this->_usedProperties['authNtlm'])) { - $output['auth_ntlm'] = $this->authNtlm; - } - if (isset($this->_usedProperties['query'])) { - $output['query'] = $this->query; - } - if (isset($this->_usedProperties['headers'])) { - $output['headers'] = $this->headers; - } - if (isset($this->_usedProperties['maxRedirects'])) { - $output['max_redirects'] = $this->maxRedirects; - } - if (isset($this->_usedProperties['httpVersion'])) { - $output['http_version'] = $this->httpVersion; - } - if (isset($this->_usedProperties['resolve'])) { - $output['resolve'] = $this->resolve; - } - if (isset($this->_usedProperties['proxy'])) { - $output['proxy'] = $this->proxy; - } - if (isset($this->_usedProperties['noProxy'])) { - $output['no_proxy'] = $this->noProxy; - } - if (isset($this->_usedProperties['timeout'])) { - $output['timeout'] = $this->timeout; - } - if (isset($this->_usedProperties['maxDuration'])) { - $output['max_duration'] = $this->maxDuration; - } - if (isset($this->_usedProperties['bindto'])) { - $output['bindto'] = $this->bindto; - } - if (isset($this->_usedProperties['verifyPeer'])) { - $output['verify_peer'] = $this->verifyPeer; - } - if (isset($this->_usedProperties['verifyHost'])) { - $output['verify_host'] = $this->verifyHost; - } - if (isset($this->_usedProperties['cafile'])) { - $output['cafile'] = $this->cafile; - } - if (isset($this->_usedProperties['capath'])) { - $output['capath'] = $this->capath; - } - if (isset($this->_usedProperties['localCert'])) { - $output['local_cert'] = $this->localCert; - } - if (isset($this->_usedProperties['localPk'])) { - $output['local_pk'] = $this->localPk; - } - if (isset($this->_usedProperties['passphrase'])) { - $output['passphrase'] = $this->passphrase; - } - if (isset($this->_usedProperties['ciphers'])) { - $output['ciphers'] = $this->ciphers; - } - if (isset($this->_usedProperties['peerFingerprint'])) { - $output['peer_fingerprint'] = $this->peerFingerprint->toArray(); - } - if (isset($this->_usedProperties['cryptoMethod'])) { - $output['crypto_method'] = $this->cryptoMethod; - } - if (isset($this->_usedProperties['extra'])) { - $output['extra'] = $this->extra; - } - if (isset($this->_usedProperties['retryFailed'])) { - $output['retry_failed'] = $this->retryFailed instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailedConfig ? $this->retryFailed->toArray() : $this->retryFailed; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/PeerFingerprintConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/PeerFingerprintConfig.php deleted file mode 100644 index 20cd203..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/PeerFingerprintConfig.php +++ /dev/null @@ -1,101 +0,0 @@ -_usedProperties['sha1'] = true; - $this->sha1 = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function pinsha256(mixed $value): static - { - $this->_usedProperties['pinsha256'] = true; - $this->pinsha256 = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function md5(mixed $value): static - { - $this->_usedProperties['md5'] = true; - $this->md5 = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('sha1', $value)) { - $this->_usedProperties['sha1'] = true; - $this->sha1 = $value['sha1']; - unset($value['sha1']); - } - - if (array_key_exists('pin-sha256', $value)) { - $this->_usedProperties['pinsha256'] = true; - $this->pinsha256 = $value['pin-sha256']; - unset($value['pin-sha256']); - } - - if (array_key_exists('md5', $value)) { - $this->_usedProperties['md5'] = true; - $this->md5 = $value['md5']; - unset($value['md5']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['sha1'])) { - $output['sha1'] = $this->sha1; - } - if (isset($this->_usedProperties['pinsha256'])) { - $output['pin-sha256'] = $this->pinsha256; - } - if (isset($this->_usedProperties['md5'])) { - $output['md5'] = $this->md5; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailed/HttpCodeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailed/HttpCodeConfig.php deleted file mode 100644 index 309911a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailed/HttpCodeConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['code'] = true; - $this->code = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function methods(ParamConfigurator|array $value): static - { - $this->_usedProperties['methods'] = true; - $this->methods = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('code', $value)) { - $this->_usedProperties['code'] = true; - $this->code = $value['code']; - unset($value['code']); - } - - if (array_key_exists('methods', $value)) { - $this->_usedProperties['methods'] = true; - $this->methods = $value['methods']; - unset($value['methods']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['code'])) { - $output['code'] = $this->code; - } - if (isset($this->_usedProperties['methods'])) { - $output['methods'] = $this->methods; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailedConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailedConfig.php deleted file mode 100644 index 150538f..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClient/ScopedClientConfig/RetryFailedConfig.php +++ /dev/null @@ -1,233 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * service id to override the retry strategy - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function retryStrategy($value): static - { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * A list of HTTP status code that triggers a retry - * @return \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig : static) - */ - public function httpCode(string $code, array $value = []): \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes[$code] = $value; - - return $this; - } - - if (!isset($this->httpCodes[$code]) || !$this->httpCodes[$code] instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes[$code] = new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpCode()" has already been initialized. You cannot pass values the second time you call httpCode().'); - } - - return $this->httpCodes[$code]; - } - - /** - * @default 3 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxRetries($value): static - { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value; - - return $this; - } - - /** - * Time in ms to delay (or the initial value when multiplier is used) - * @default 1000 - * @param ParamConfigurator|int $value - * @return $this - */ - public function delay($value): static - { - $this->_usedProperties['delay'] = true; - $this->delay = $value; - - return $this; - } - - /** - * If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries) - * @default 2 - * @param ParamConfigurator|float $value - * @return $this - */ - public function multiplier($value): static - { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value; - - return $this; - } - - /** - * Max time in ms that a retry should ever be delayed (0 = infinite) - * @default 0 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxDelay($value): static - { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value; - - return $this; - } - - /** - * Randomness in percent (between 0 and 1) to apply to the delay - * @default 0.1 - * @param ParamConfigurator|float $value - * @return $this - */ - public function jitter($value): static - { - $this->_usedProperties['jitter'] = true; - $this->jitter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('retry_strategy', $value)) { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = $value['retry_strategy']; - unset($value['retry_strategy']); - } - - if (array_key_exists('http_codes', $value)) { - $this->_usedProperties['httpCodes'] = true; - $this->httpCodes = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig($v) : $v, $value['http_codes']); - unset($value['http_codes']); - } - - if (array_key_exists('max_retries', $value)) { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value['max_retries']; - unset($value['max_retries']); - } - - if (array_key_exists('delay', $value)) { - $this->_usedProperties['delay'] = true; - $this->delay = $value['delay']; - unset($value['delay']); - } - - if (array_key_exists('multiplier', $value)) { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value['multiplier']; - unset($value['multiplier']); - } - - if (array_key_exists('max_delay', $value)) { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value['max_delay']; - unset($value['max_delay']); - } - - if (array_key_exists('jitter', $value)) { - $this->_usedProperties['jitter'] = true; - $this->jitter = $value['jitter']; - unset($value['jitter']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['retryStrategy'])) { - $output['retry_strategy'] = $this->retryStrategy; - } - if (isset($this->_usedProperties['httpCodes'])) { - $output['http_codes'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig\RetryFailed\HttpCodeConfig ? $v->toArray() : $v, $this->httpCodes); - } - if (isset($this->_usedProperties['maxRetries'])) { - $output['max_retries'] = $this->maxRetries; - } - if (isset($this->_usedProperties['delay'])) { - $output['delay'] = $this->delay; - } - if (isset($this->_usedProperties['multiplier'])) { - $output['multiplier'] = $this->multiplier; - } - if (isset($this->_usedProperties['maxDelay'])) { - $output['max_delay'] = $this->maxDelay; - } - if (isset($this->_usedProperties['jitter'])) { - $output['jitter'] = $this->jitter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClientConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClientConfig.php deleted file mode 100644 index 8813306..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/HttpClientConfig.php +++ /dev/null @@ -1,160 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * The maximum number of connections to a single host. - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxHostConnections($value): static - { - $this->_usedProperties['maxHostConnections'] = true; - $this->maxHostConnections = $value; - - return $this; - } - - public function defaultOptions(array $value = []): \Symfony\Config\Framework\HttpClient\DefaultOptionsConfig - { - if (null === $this->defaultOptions) { - $this->_usedProperties['defaultOptions'] = true; - $this->defaultOptions = new \Symfony\Config\Framework\HttpClient\DefaultOptionsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "defaultOptions()" has already been initialized. You cannot pass values the second time you call defaultOptions().'); - } - - return $this->defaultOptions; - } - - /** - * The id of the service that should generate mock responses. It should be either an invokable or an iterable. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function mockResponseFactory($value): static - { - $this->_usedProperties['mockResponseFactory'] = true; - $this->mockResponseFactory = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\HttpClient\ScopedClientConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClient\ScopedClientConfig : static) - */ - public function scopedClient(string $name, mixed $value = []): \Symfony\Config\Framework\HttpClient\ScopedClientConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['scopedClients'] = true; - $this->scopedClients[$name] = $value; - - return $this; - } - - if (!isset($this->scopedClients[$name]) || !$this->scopedClients[$name] instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig) { - $this->_usedProperties['scopedClients'] = true; - $this->scopedClients[$name] = new \Symfony\Config\Framework\HttpClient\ScopedClientConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "scopedClient()" has already been initialized. You cannot pass values the second time you call scopedClient().'); - } - - return $this->scopedClients[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('max_host_connections', $value)) { - $this->_usedProperties['maxHostConnections'] = true; - $this->maxHostConnections = $value['max_host_connections']; - unset($value['max_host_connections']); - } - - if (array_key_exists('default_options', $value)) { - $this->_usedProperties['defaultOptions'] = true; - $this->defaultOptions = new \Symfony\Config\Framework\HttpClient\DefaultOptionsConfig($value['default_options']); - unset($value['default_options']); - } - - if (array_key_exists('mock_response_factory', $value)) { - $this->_usedProperties['mockResponseFactory'] = true; - $this->mockResponseFactory = $value['mock_response_factory']; - unset($value['mock_response_factory']); - } - - if (array_key_exists('scoped_clients', $value)) { - $this->_usedProperties['scopedClients'] = true; - $this->scopedClients = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\HttpClient\ScopedClientConfig($v) : $v, $value['scoped_clients']); - unset($value['scoped_clients']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['maxHostConnections'])) { - $output['max_host_connections'] = $this->maxHostConnections; - } - if (isset($this->_usedProperties['defaultOptions'])) { - $output['default_options'] = $this->defaultOptions->toArray(); - } - if (isset($this->_usedProperties['mockResponseFactory'])) { - $output['mock_response_factory'] = $this->mockResponseFactory; - } - if (isset($this->_usedProperties['scopedClients'])) { - $output['scoped_clients'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\HttpClient\ScopedClientConfig ? $v->toArray() : $v, $this->scopedClients); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/LockConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/LockConfig.php deleted file mode 100644 index e4dceea..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/LockConfig.php +++ /dev/null @@ -1,73 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @return $this - */ - public function resource(string $name, ParamConfigurator|string|array $value): static - { - $this->_usedProperties['resources'] = true; - $this->resources[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('resources', $value)) { - $this->_usedProperties['resources'] = true; - $this->resources = $value['resources']; - unset($value['resources']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['resources'])) { - $output['resources'] = $this->resources; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/EnvelopeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/EnvelopeConfig.php deleted file mode 100644 index 0d11eca..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/EnvelopeConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['sender'] = true; - $this->sender = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function recipients(ParamConfigurator|array $value): static - { - $this->_usedProperties['recipients'] = true; - $this->recipients = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('sender', $value)) { - $this->_usedProperties['sender'] = true; - $this->sender = $value['sender']; - unset($value['sender']); - } - - if (array_key_exists('recipients', $value)) { - $this->_usedProperties['recipients'] = true; - $this->recipients = $value['recipients']; - unset($value['recipients']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['sender'])) { - $output['sender'] = $this->sender; - } - if (isset($this->_usedProperties['recipients'])) { - $output['recipients'] = $this->recipients; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/HeaderConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/HeaderConfig.php deleted file mode 100644 index 76eba10..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Mailer/HeaderConfig.php +++ /dev/null @@ -1,53 +0,0 @@ -_usedProperties['value'] = true; - $this->value = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('value', $value)) { - $this->_usedProperties['value'] = true; - $this->value = $value['value']; - unset($value['value']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['value'])) { - $output['value'] = $this->value; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MailerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MailerConfig.php deleted file mode 100644 index 6b0b5e2..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MailerConfig.php +++ /dev/null @@ -1,183 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * The message bus to use. Defaults to the default bus if the Messenger component is installed. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function messageBus($value): static - { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dsn($value): static - { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value; - - return $this; - } - - /** - * @return $this - */ - public function transport(string $name, mixed $value): static - { - $this->_usedProperties['transports'] = true; - $this->transports[$name] = $value; - - return $this; - } - - /** - * Mailer Envelope configuration - */ - public function envelope(array $value = []): \Symfony\Config\Framework\Mailer\EnvelopeConfig - { - if (null === $this->envelope) { - $this->_usedProperties['envelope'] = true; - $this->envelope = new \Symfony\Config\Framework\Mailer\EnvelopeConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "envelope()" has already been initialized. You cannot pass values the second time you call envelope().'); - } - - return $this->envelope; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Mailer\HeaderConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Mailer\HeaderConfig : static) - */ - public function header(string $name, mixed $value = []): \Symfony\Config\Framework\Mailer\HeaderConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['headers'] = true; - $this->headers[$name] = $value; - - return $this; - } - - if (!isset($this->headers[$name]) || !$this->headers[$name] instanceof \Symfony\Config\Framework\Mailer\HeaderConfig) { - $this->_usedProperties['headers'] = true; - $this->headers[$name] = new \Symfony\Config\Framework\Mailer\HeaderConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "header()" has already been initialized. You cannot pass values the second time you call header().'); - } - - return $this->headers[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('message_bus', $value)) { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value['message_bus']; - unset($value['message_bus']); - } - - if (array_key_exists('dsn', $value)) { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value['dsn']; - unset($value['dsn']); - } - - if (array_key_exists('transports', $value)) { - $this->_usedProperties['transports'] = true; - $this->transports = $value['transports']; - unset($value['transports']); - } - - if (array_key_exists('envelope', $value)) { - $this->_usedProperties['envelope'] = true; - $this->envelope = new \Symfony\Config\Framework\Mailer\EnvelopeConfig($value['envelope']); - unset($value['envelope']); - } - - if (array_key_exists('headers', $value)) { - $this->_usedProperties['headers'] = true; - $this->headers = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Mailer\HeaderConfig($v) : $v, $value['headers']); - unset($value['headers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['messageBus'])) { - $output['message_bus'] = $this->messageBus; - } - if (isset($this->_usedProperties['dsn'])) { - $output['dsn'] = $this->dsn; - } - if (isset($this->_usedProperties['transports'])) { - $output['transports'] = $this->transports; - } - if (isset($this->_usedProperties['envelope'])) { - $output['envelope'] = $this->envelope->toArray(); - } - if (isset($this->_usedProperties['headers'])) { - $output['headers'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Mailer\HeaderConfig ? $v->toArray() : $v, $this->headers); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig.php deleted file mode 100644 index e30e364..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig.php +++ /dev/null @@ -1,95 +0,0 @@ -_usedProperties['defaultMiddleware'] = true; - $this->defaultMiddleware = $value; - - return $this; - } - - if (!$this->defaultMiddleware instanceof \Symfony\Config\Framework\Messenger\BusConfig\DefaultMiddlewareConfig) { - $this->_usedProperties['defaultMiddleware'] = true; - $this->defaultMiddleware = new \Symfony\Config\Framework\Messenger\BusConfig\DefaultMiddlewareConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "defaultMiddleware()" has already been initialized. You cannot pass values the second time you call defaultMiddleware().'); - } - - return $this->defaultMiddleware; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig : static) - */ - public function middleware(mixed $value = []): \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig|static - { - $this->_usedProperties['middleware'] = true; - if (!\is_array($value)) { - $this->middleware[] = $value; - - return $this; - } - - return $this->middleware[] = new \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig($value); - } - - public function __construct(array $value = []) - { - if (array_key_exists('default_middleware', $value)) { - $this->_usedProperties['defaultMiddleware'] = true; - $this->defaultMiddleware = \is_array($value['default_middleware']) ? new \Symfony\Config\Framework\Messenger\BusConfig\DefaultMiddlewareConfig($value['default_middleware']) : $value['default_middleware']; - unset($value['default_middleware']); - } - - if (array_key_exists('middleware', $value)) { - $this->_usedProperties['middleware'] = true; - $this->middleware = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig($v) : $v, $value['middleware']); - unset($value['middleware']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['defaultMiddleware'])) { - $output['default_middleware'] = $this->defaultMiddleware instanceof \Symfony\Config\Framework\Messenger\BusConfig\DefaultMiddlewareConfig ? $this->defaultMiddleware->toArray() : $this->defaultMiddleware; - } - if (isset($this->_usedProperties['middleware'])) { - $output['middleware'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Messenger\BusConfig\MiddlewareConfig ? $v->toArray() : $v, $this->middleware); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/DefaultMiddlewareConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/DefaultMiddlewareConfig.php deleted file mode 100644 index 9eee221..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/DefaultMiddlewareConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowNoHandlers($value): static - { - $this->_usedProperties['allowNoHandlers'] = true; - $this->allowNoHandlers = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowNoSenders($value): static - { - $this->_usedProperties['allowNoSenders'] = true; - $this->allowNoSenders = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('allow_no_handlers', $value)) { - $this->_usedProperties['allowNoHandlers'] = true; - $this->allowNoHandlers = $value['allow_no_handlers']; - unset($value['allow_no_handlers']); - } - - if (array_key_exists('allow_no_senders', $value)) { - $this->_usedProperties['allowNoSenders'] = true; - $this->allowNoSenders = $value['allow_no_senders']; - unset($value['allow_no_senders']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['allowNoHandlers'])) { - $output['allow_no_handlers'] = $this->allowNoHandlers; - } - if (isset($this->_usedProperties['allowNoSenders'])) { - $output['allow_no_senders'] = $this->allowNoSenders; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/MiddlewareConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/MiddlewareConfig.php deleted file mode 100644 index d96a5a5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/BusConfig/MiddlewareConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function arguments(ParamConfigurator|array $value): static - { - $this->_usedProperties['arguments'] = true; - $this->arguments = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('arguments', $value)) { - $this->_usedProperties['arguments'] = true; - $this->arguments = $value['arguments']; - unset($value['arguments']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['arguments'])) { - $output['arguments'] = $this->arguments; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/RoutingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/RoutingConfig.php deleted file mode 100644 index 0cebfbb..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/RoutingConfig.php +++ /dev/null @@ -1,52 +0,0 @@ - $value - * - * @return $this - */ - public function senders(ParamConfigurator|array $value): static - { - $this->_usedProperties['senders'] = true; - $this->senders = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('senders', $value)) { - $this->_usedProperties['senders'] = true; - $this->senders = $value['senders']; - unset($value['senders']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['senders'])) { - $output['senders'] = $this->senders; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/Serializer/SymfonySerializerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/Serializer/SymfonySerializerConfig.php deleted file mode 100644 index 671e1f7..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/Serializer/SymfonySerializerConfig.php +++ /dev/null @@ -1,74 +0,0 @@ -_usedProperties['format'] = true; - $this->format = $value; - - return $this; - } - - /** - * @return $this - */ - public function context(string $name, mixed $value): static - { - $this->_usedProperties['context'] = true; - $this->context[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('format', $value)) { - $this->_usedProperties['format'] = true; - $this->format = $value['format']; - unset($value['format']); - } - - if (array_key_exists('context', $value)) { - $this->_usedProperties['context'] = true; - $this->context = $value['context']; - unset($value['context']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['format'])) { - $output['format'] = $this->format; - } - if (isset($this->_usedProperties['context'])) { - $output['context'] = $this->context; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/SerializerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/SerializerConfig.php deleted file mode 100644 index 819bcab..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/SerializerConfig.php +++ /dev/null @@ -1,80 +0,0 @@ -_usedProperties['defaultSerializer'] = true; - $this->defaultSerializer = $value; - - return $this; - } - - /** - * @default {"format":"json","context":[]} - */ - public function symfonySerializer(array $value = []): \Symfony\Config\Framework\Messenger\Serializer\SymfonySerializerConfig - { - if (null === $this->symfonySerializer) { - $this->_usedProperties['symfonySerializer'] = true; - $this->symfonySerializer = new \Symfony\Config\Framework\Messenger\Serializer\SymfonySerializerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "symfonySerializer()" has already been initialized. You cannot pass values the second time you call symfonySerializer().'); - } - - return $this->symfonySerializer; - } - - public function __construct(array $value = []) - { - if (array_key_exists('default_serializer', $value)) { - $this->_usedProperties['defaultSerializer'] = true; - $this->defaultSerializer = $value['default_serializer']; - unset($value['default_serializer']); - } - - if (array_key_exists('symfony_serializer', $value)) { - $this->_usedProperties['symfonySerializer'] = true; - $this->symfonySerializer = new \Symfony\Config\Framework\Messenger\Serializer\SymfonySerializerConfig($value['symfony_serializer']); - unset($value['symfony_serializer']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['defaultSerializer'])) { - $output['default_serializer'] = $this->defaultSerializer; - } - if (isset($this->_usedProperties['symfonySerializer'])) { - $output['symfony_serializer'] = $this->symfonySerializer->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig.php deleted file mode 100644 index 08bf477..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig.php +++ /dev/null @@ -1,185 +0,0 @@ -_usedProperties['dsn'] = true; - $this->dsn = $value; - - return $this; - } - - /** - * Service id of a custom serializer to use. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function serializer($value): static - { - $this->_usedProperties['serializer'] = true; - $this->serializer = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function options(ParamConfigurator|array $value): static - { - $this->_usedProperties['options'] = true; - $this->options = $value; - - return $this; - } - - /** - * Transport name to send failed messages to (after all retries have failed). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureTransport($value): static - { - $this->_usedProperties['failureTransport'] = true; - $this->failureTransport = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"service":null,"max_retries":3,"delay":1000,"multiplier":2,"max_delay":0} - * @return \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig : static) - */ - public function retryStrategy(mixed $value = []): \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = $value; - - return $this; - } - - if (!$this->retryStrategy instanceof \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig) { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = new \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "retryStrategy()" has already been initialized. You cannot pass values the second time you call retryStrategy().'); - } - - return $this->retryStrategy; - } - - /** - * Rate limiter name to use when processing messages - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function rateLimiter($value): static - { - $this->_usedProperties['rateLimiter'] = true; - $this->rateLimiter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('dsn', $value)) { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value['dsn']; - unset($value['dsn']); - } - - if (array_key_exists('serializer', $value)) { - $this->_usedProperties['serializer'] = true; - $this->serializer = $value['serializer']; - unset($value['serializer']); - } - - if (array_key_exists('options', $value)) { - $this->_usedProperties['options'] = true; - $this->options = $value['options']; - unset($value['options']); - } - - if (array_key_exists('failure_transport', $value)) { - $this->_usedProperties['failureTransport'] = true; - $this->failureTransport = $value['failure_transport']; - unset($value['failure_transport']); - } - - if (array_key_exists('retry_strategy', $value)) { - $this->_usedProperties['retryStrategy'] = true; - $this->retryStrategy = \is_array($value['retry_strategy']) ? new \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig($value['retry_strategy']) : $value['retry_strategy']; - unset($value['retry_strategy']); - } - - if (array_key_exists('rate_limiter', $value)) { - $this->_usedProperties['rateLimiter'] = true; - $this->rateLimiter = $value['rate_limiter']; - unset($value['rate_limiter']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['dsn'])) { - $output['dsn'] = $this->dsn; - } - if (isset($this->_usedProperties['serializer'])) { - $output['serializer'] = $this->serializer; - } - if (isset($this->_usedProperties['options'])) { - $output['options'] = $this->options; - } - if (isset($this->_usedProperties['failureTransport'])) { - $output['failure_transport'] = $this->failureTransport; - } - if (isset($this->_usedProperties['retryStrategy'])) { - $output['retry_strategy'] = $this->retryStrategy instanceof \Symfony\Config\Framework\Messenger\TransportConfig\RetryStrategyConfig ? $this->retryStrategy->toArray() : $this->retryStrategy; - } - if (isset($this->_usedProperties['rateLimiter'])) { - $output['rate_limiter'] = $this->rateLimiter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig/RetryStrategyConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig/RetryStrategyConfig.php deleted file mode 100644 index 3d68f33..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Messenger/TransportConfig/RetryStrategyConfig.php +++ /dev/null @@ -1,148 +0,0 @@ -_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default 3 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxRetries($value): static - { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value; - - return $this; - } - - /** - * Time in ms to delay (or the initial value when multiplier is used) - * @default 1000 - * @param ParamConfigurator|int $value - * @return $this - */ - public function delay($value): static - { - $this->_usedProperties['delay'] = true; - $this->delay = $value; - - return $this; - } - - /** - * If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries)) - * @default 2 - * @param ParamConfigurator|float $value - * @return $this - */ - public function multiplier($value): static - { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value; - - return $this; - } - - /** - * Max time in ms that a retry should ever be delayed (0 = infinite) - * @default 0 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxDelay($value): static - { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('max_retries', $value)) { - $this->_usedProperties['maxRetries'] = true; - $this->maxRetries = $value['max_retries']; - unset($value['max_retries']); - } - - if (array_key_exists('delay', $value)) { - $this->_usedProperties['delay'] = true; - $this->delay = $value['delay']; - unset($value['delay']); - } - - if (array_key_exists('multiplier', $value)) { - $this->_usedProperties['multiplier'] = true; - $this->multiplier = $value['multiplier']; - unset($value['multiplier']); - } - - if (array_key_exists('max_delay', $value)) { - $this->_usedProperties['maxDelay'] = true; - $this->maxDelay = $value['max_delay']; - unset($value['max_delay']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['maxRetries'])) { - $output['max_retries'] = $this->maxRetries; - } - if (isset($this->_usedProperties['delay'])) { - $output['delay'] = $this->delay; - } - if (isset($this->_usedProperties['multiplier'])) { - $output['multiplier'] = $this->multiplier; - } - if (isset($this->_usedProperties['maxDelay'])) { - $output['max_delay'] = $this->maxDelay; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MessengerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MessengerConfig.php deleted file mode 100644 index 595d824..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/MessengerConfig.php +++ /dev/null @@ -1,272 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Messenger\RoutingConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Messenger\RoutingConfig : static) - */ - public function routing(string $message_class, array $value = []): \Symfony\Config\Framework\Messenger\RoutingConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['routing'] = true; - $this->routing[$message_class] = $value; - - return $this; - } - - if (!isset($this->routing[$message_class]) || !$this->routing[$message_class] instanceof \Symfony\Config\Framework\Messenger\RoutingConfig) { - $this->_usedProperties['routing'] = true; - $this->routing[$message_class] = new \Symfony\Config\Framework\Messenger\RoutingConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "routing()" has already been initialized. You cannot pass values the second time you call routing().'); - } - - return $this->routing[$message_class]; - } - - /** - * @default {"default_serializer":"messenger.transport.native_php_serializer","symfony_serializer":{"format":"json","context":[]}} - */ - public function serializer(array $value = []): \Symfony\Config\Framework\Messenger\SerializerConfig - { - if (null === $this->serializer) { - $this->_usedProperties['serializer'] = true; - $this->serializer = new \Symfony\Config\Framework\Messenger\SerializerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "serializer()" has already been initialized. You cannot pass values the second time you call serializer().'); - } - - return $this->serializer; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Messenger\TransportConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Messenger\TransportConfig : static) - */ - public function transport(string $name, string|array $value = []): \Symfony\Config\Framework\Messenger\TransportConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['transports'] = true; - $this->transports[$name] = $value; - - return $this; - } - - if (!isset($this->transports[$name]) || !$this->transports[$name] instanceof \Symfony\Config\Framework\Messenger\TransportConfig) { - $this->_usedProperties['transports'] = true; - $this->transports[$name] = new \Symfony\Config\Framework\Messenger\TransportConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "transport()" has already been initialized. You cannot pass values the second time you call transport().'); - } - - return $this->transports[$name]; - } - - /** - * Transport name to send failed messages to (after all retries have failed). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureTransport($value): static - { - $this->_usedProperties['failureTransport'] = true; - $this->failureTransport = $value; - - return $this; - } - - /** - * Reset container services after each message. - * @default true - * @param ParamConfigurator|bool $value - * @deprecated Option "reset_on_message" at "messenger" is deprecated. It does nothing and will be removed in version 7.0. - * @return $this - */ - public function resetOnMessage($value): static - { - $this->_usedProperties['resetOnMessage'] = true; - $this->resetOnMessage = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function stopWorkerOnSignals(ParamConfigurator|array $value): static - { - $this->_usedProperties['stopWorkerOnSignals'] = true; - $this->stopWorkerOnSignals = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultBus($value): static - { - $this->_usedProperties['defaultBus'] = true; - $this->defaultBus = $value; - - return $this; - } - - /** - * @default {"messenger.bus.default":{"default_middleware":{"enabled":true,"allow_no_handlers":false,"allow_no_senders":true},"middleware":[]}} - */ - public function bus(string $name, array $value = []): \Symfony\Config\Framework\Messenger\BusConfig - { - if (!isset($this->buses[$name])) { - $this->_usedProperties['buses'] = true; - $this->buses[$name] = new \Symfony\Config\Framework\Messenger\BusConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "bus()" has already been initialized. You cannot pass values the second time you call bus().'); - } - - return $this->buses[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('routing', $value)) { - $this->_usedProperties['routing'] = true; - $this->routing = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Messenger\RoutingConfig($v) : $v, $value['routing']); - unset($value['routing']); - } - - if (array_key_exists('serializer', $value)) { - $this->_usedProperties['serializer'] = true; - $this->serializer = new \Symfony\Config\Framework\Messenger\SerializerConfig($value['serializer']); - unset($value['serializer']); - } - - if (array_key_exists('transports', $value)) { - $this->_usedProperties['transports'] = true; - $this->transports = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Messenger\TransportConfig($v) : $v, $value['transports']); - unset($value['transports']); - } - - if (array_key_exists('failure_transport', $value)) { - $this->_usedProperties['failureTransport'] = true; - $this->failureTransport = $value['failure_transport']; - unset($value['failure_transport']); - } - - if (array_key_exists('reset_on_message', $value)) { - $this->_usedProperties['resetOnMessage'] = true; - $this->resetOnMessage = $value['reset_on_message']; - unset($value['reset_on_message']); - } - - if (array_key_exists('stop_worker_on_signals', $value)) { - $this->_usedProperties['stopWorkerOnSignals'] = true; - $this->stopWorkerOnSignals = $value['stop_worker_on_signals']; - unset($value['stop_worker_on_signals']); - } - - if (array_key_exists('default_bus', $value)) { - $this->_usedProperties['defaultBus'] = true; - $this->defaultBus = $value['default_bus']; - unset($value['default_bus']); - } - - if (array_key_exists('buses', $value)) { - $this->_usedProperties['buses'] = true; - $this->buses = array_map(fn ($v) => new \Symfony\Config\Framework\Messenger\BusConfig($v), $value['buses']); - unset($value['buses']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['routing'])) { - $output['routing'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Messenger\RoutingConfig ? $v->toArray() : $v, $this->routing); - } - if (isset($this->_usedProperties['serializer'])) { - $output['serializer'] = $this->serializer->toArray(); - } - if (isset($this->_usedProperties['transports'])) { - $output['transports'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Messenger\TransportConfig ? $v->toArray() : $v, $this->transports); - } - if (isset($this->_usedProperties['failureTransport'])) { - $output['failure_transport'] = $this->failureTransport; - } - if (isset($this->_usedProperties['resetOnMessage'])) { - $output['reset_on_message'] = $this->resetOnMessage; - } - if (isset($this->_usedProperties['stopWorkerOnSignals'])) { - $output['stop_worker_on_signals'] = $this->stopWorkerOnSignals; - } - if (isset($this->_usedProperties['defaultBus'])) { - $output['default_bus'] = $this->defaultBus; - } - if (isset($this->_usedProperties['buses'])) { - $output['buses'] = array_map(fn ($v) => $v->toArray(), $this->buses); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Notifier/AdminRecipientConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Notifier/AdminRecipientConfig.php deleted file mode 100644 index 9ef5995..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Notifier/AdminRecipientConfig.php +++ /dev/null @@ -1,74 +0,0 @@ -_usedProperties['email'] = true; - $this->email = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function phone($value): static - { - $this->_usedProperties['phone'] = true; - $this->phone = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('email', $value)) { - $this->_usedProperties['email'] = true; - $this->email = $value['email']; - unset($value['email']); - } - - if (array_key_exists('phone', $value)) { - $this->_usedProperties['phone'] = true; - $this->phone = $value['phone']; - unset($value['phone']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['email'])) { - $output['email'] = $this->email; - } - if (isset($this->_usedProperties['phone'])) { - $output['phone'] = $this->phone; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/NotifierConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/NotifierConfig.php deleted file mode 100644 index a04aa3a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/NotifierConfig.php +++ /dev/null @@ -1,181 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * The message bus to use. Defaults to the default bus if the Messenger component is installed. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function messageBus($value): static - { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value; - - return $this; - } - - /** - * @return $this - */ - public function chatterTransport(string $name, mixed $value): static - { - $this->_usedProperties['chatterTransports'] = true; - $this->chatterTransports[$name] = $value; - - return $this; - } - - /** - * @return $this - */ - public function texterTransport(string $name, mixed $value): static - { - $this->_usedProperties['texterTransports'] = true; - $this->texterTransports[$name] = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function notificationOnFailedMessages($value): static - { - $this->_usedProperties['notificationOnFailedMessages'] = true; - $this->notificationOnFailedMessages = $value; - - return $this; - } - - /** - * @return $this - */ - public function channelPolicy(string $name, ParamConfigurator|string|array $value): static - { - $this->_usedProperties['channelPolicy'] = true; - $this->channelPolicy[$name] = $value; - - return $this; - } - - public function adminRecipient(array $value = []): \Symfony\Config\Framework\Notifier\AdminRecipientConfig - { - $this->_usedProperties['adminRecipients'] = true; - - return $this->adminRecipients[] = new \Symfony\Config\Framework\Notifier\AdminRecipientConfig($value); - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('message_bus', $value)) { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value['message_bus']; - unset($value['message_bus']); - } - - if (array_key_exists('chatter_transports', $value)) { - $this->_usedProperties['chatterTransports'] = true; - $this->chatterTransports = $value['chatter_transports']; - unset($value['chatter_transports']); - } - - if (array_key_exists('texter_transports', $value)) { - $this->_usedProperties['texterTransports'] = true; - $this->texterTransports = $value['texter_transports']; - unset($value['texter_transports']); - } - - if (array_key_exists('notification_on_failed_messages', $value)) { - $this->_usedProperties['notificationOnFailedMessages'] = true; - $this->notificationOnFailedMessages = $value['notification_on_failed_messages']; - unset($value['notification_on_failed_messages']); - } - - if (array_key_exists('channel_policy', $value)) { - $this->_usedProperties['channelPolicy'] = true; - $this->channelPolicy = $value['channel_policy']; - unset($value['channel_policy']); - } - - if (array_key_exists('admin_recipients', $value)) { - $this->_usedProperties['adminRecipients'] = true; - $this->adminRecipients = array_map(fn ($v) => new \Symfony\Config\Framework\Notifier\AdminRecipientConfig($v), $value['admin_recipients']); - unset($value['admin_recipients']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['messageBus'])) { - $output['message_bus'] = $this->messageBus; - } - if (isset($this->_usedProperties['chatterTransports'])) { - $output['chatter_transports'] = $this->chatterTransports; - } - if (isset($this->_usedProperties['texterTransports'])) { - $output['texter_transports'] = $this->texterTransports; - } - if (isset($this->_usedProperties['notificationOnFailedMessages'])) { - $output['notification_on_failed_messages'] = $this->notificationOnFailedMessages; - } - if (isset($this->_usedProperties['channelPolicy'])) { - $output['channel_policy'] = $this->channelPolicy; - } - if (isset($this->_usedProperties['adminRecipients'])) { - $output['admin_recipients'] = array_map(fn ($v) => $v->toArray(), $this->adminRecipients); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PhpErrorsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PhpErrorsConfig.php deleted file mode 100644 index 0bdaeb2..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PhpErrorsConfig.php +++ /dev/null @@ -1,79 +0,0 @@ -_usedProperties['log'] = true; - $this->log = $value; - - return $this; - } - - /** - * Throw PHP errors as \ErrorException instances. - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function throw($value): static - { - $this->_usedProperties['throw'] = true; - $this->throw = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('log', $value)) { - $this->_usedProperties['log'] = true; - $this->log = $value['log']; - unset($value['log']); - } - - if (array_key_exists('throw', $value)) { - $this->_usedProperties['throw'] = true; - $this->throw = $value['throw']; - unset($value['throw']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['log'])) { - $output['log'] = $this->log; - } - if (isset($this->_usedProperties['throw'])) { - $output['throw'] = $this->throw; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ProfilerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ProfilerConfig.php deleted file mode 100644 index 890c3bc..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ProfilerConfig.php +++ /dev/null @@ -1,192 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function collect($value): static - { - $this->_usedProperties['collect'] = true; - $this->collect = $value; - - return $this; - } - - /** - * The name of the parameter to use to enable or disable collection on a per request basis - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function collectParameter($value): static - { - $this->_usedProperties['collectParameter'] = true; - $this->collectParameter = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function onlyExceptions($value): static - { - $this->_usedProperties['onlyExceptions'] = true; - $this->onlyExceptions = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function onlyMainRequests($value): static - { - $this->_usedProperties['onlyMainRequests'] = true; - $this->onlyMainRequests = $value; - - return $this; - } - - /** - * @default 'file:%kernel.cache_dir%/profiler' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dsn($value): static - { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value; - - return $this; - } - - /** - * Enables the serializer data collector and profiler panel - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function collectSerializerData($value): static - { - $this->_usedProperties['collectSerializerData'] = true; - $this->collectSerializerData = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('collect', $value)) { - $this->_usedProperties['collect'] = true; - $this->collect = $value['collect']; - unset($value['collect']); - } - - if (array_key_exists('collect_parameter', $value)) { - $this->_usedProperties['collectParameter'] = true; - $this->collectParameter = $value['collect_parameter']; - unset($value['collect_parameter']); - } - - if (array_key_exists('only_exceptions', $value)) { - $this->_usedProperties['onlyExceptions'] = true; - $this->onlyExceptions = $value['only_exceptions']; - unset($value['only_exceptions']); - } - - if (array_key_exists('only_main_requests', $value)) { - $this->_usedProperties['onlyMainRequests'] = true; - $this->onlyMainRequests = $value['only_main_requests']; - unset($value['only_main_requests']); - } - - if (array_key_exists('dsn', $value)) { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value['dsn']; - unset($value['dsn']); - } - - if (array_key_exists('collect_serializer_data', $value)) { - $this->_usedProperties['collectSerializerData'] = true; - $this->collectSerializerData = $value['collect_serializer_data']; - unset($value['collect_serializer_data']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['collect'])) { - $output['collect'] = $this->collect; - } - if (isset($this->_usedProperties['collectParameter'])) { - $output['collect_parameter'] = $this->collectParameter; - } - if (isset($this->_usedProperties['onlyExceptions'])) { - $output['only_exceptions'] = $this->onlyExceptions; - } - if (isset($this->_usedProperties['onlyMainRequests'])) { - $output['only_main_requests'] = $this->onlyMainRequests; - } - if (isset($this->_usedProperties['dsn'])) { - $output['dsn'] = $this->dsn; - } - if (isset($this->_usedProperties['collectSerializerData'])) { - $output['collect_serializer_data'] = $this->collectSerializerData; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyAccessConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyAccessConfig.php deleted file mode 100644 index f63d95e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyAccessConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function magicCall($value): static - { - $this->_usedProperties['magicCall'] = true; - $this->magicCall = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function magicGet($value): static - { - $this->_usedProperties['magicGet'] = true; - $this->magicGet = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function magicSet($value): static - { - $this->_usedProperties['magicSet'] = true; - $this->magicSet = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function throwExceptionOnInvalidIndex($value): static - { - $this->_usedProperties['throwExceptionOnInvalidIndex'] = true; - $this->throwExceptionOnInvalidIndex = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function throwExceptionOnInvalidPropertyPath($value): static - { - $this->_usedProperties['throwExceptionOnInvalidPropertyPath'] = true; - $this->throwExceptionOnInvalidPropertyPath = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('magic_call', $value)) { - $this->_usedProperties['magicCall'] = true; - $this->magicCall = $value['magic_call']; - unset($value['magic_call']); - } - - if (array_key_exists('magic_get', $value)) { - $this->_usedProperties['magicGet'] = true; - $this->magicGet = $value['magic_get']; - unset($value['magic_get']); - } - - if (array_key_exists('magic_set', $value)) { - $this->_usedProperties['magicSet'] = true; - $this->magicSet = $value['magic_set']; - unset($value['magic_set']); - } - - if (array_key_exists('throw_exception_on_invalid_index', $value)) { - $this->_usedProperties['throwExceptionOnInvalidIndex'] = true; - $this->throwExceptionOnInvalidIndex = $value['throw_exception_on_invalid_index']; - unset($value['throw_exception_on_invalid_index']); - } - - if (array_key_exists('throw_exception_on_invalid_property_path', $value)) { - $this->_usedProperties['throwExceptionOnInvalidPropertyPath'] = true; - $this->throwExceptionOnInvalidPropertyPath = $value['throw_exception_on_invalid_property_path']; - unset($value['throw_exception_on_invalid_property_path']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['magicCall'])) { - $output['magic_call'] = $this->magicCall; - } - if (isset($this->_usedProperties['magicGet'])) { - $output['magic_get'] = $this->magicGet; - } - if (isset($this->_usedProperties['magicSet'])) { - $output['magic_set'] = $this->magicSet; - } - if (isset($this->_usedProperties['throwExceptionOnInvalidIndex'])) { - $output['throw_exception_on_invalid_index'] = $this->throwExceptionOnInvalidIndex; - } - if (isset($this->_usedProperties['throwExceptionOnInvalidPropertyPath'])) { - $output['throw_exception_on_invalid_property_path'] = $this->throwExceptionOnInvalidPropertyPath; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyInfoConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyInfoConfig.php deleted file mode 100644 index 17f01b6..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/PropertyInfoConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig.php deleted file mode 100644 index ab6983e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig.php +++ /dev/null @@ -1,200 +0,0 @@ -_usedProperties['lockFactory'] = true; - $this->lockFactory = $value; - - return $this; - } - - /** - * The cache pool to use for storing the current limiter state - * @default 'cache.rate_limiter' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cachePool($value): static - { - $this->_usedProperties['cachePool'] = true; - $this->cachePool = $value; - - return $this; - } - - /** - * The service ID of a custom storage implementation, this precedes any configured "cache_pool" - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function storageService($value): static - { - $this->_usedProperties['storageService'] = true; - $this->storageService = $value; - - return $this; - } - - /** - * The algorithm to be used by this limiter - * @default null - * @param ParamConfigurator|'fixed_window'|'token_bucket'|'sliding_window'|'no_limit' $value - * @return $this - */ - public function policy($value): static - { - $this->_usedProperties['policy'] = true; - $this->policy = $value; - - return $this; - } - - /** - * The maximum allowed hits in a fixed interval or burst - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function limit($value): static - { - $this->_usedProperties['limit'] = true; - $this->limit = $value; - - return $this; - } - - /** - * Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function interval($value): static - { - $this->_usedProperties['interval'] = true; - $this->interval = $value; - - return $this; - } - - /** - * Configures the fill rate if "policy" is set to "token_bucket" - */ - public function rate(array $value = []): \Symfony\Config\Framework\RateLimiter\LimiterConfig\RateConfig - { - if (null === $this->rate) { - $this->_usedProperties['rate'] = true; - $this->rate = new \Symfony\Config\Framework\RateLimiter\LimiterConfig\RateConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "rate()" has already been initialized. You cannot pass values the second time you call rate().'); - } - - return $this->rate; - } - - public function __construct(array $value = []) - { - if (array_key_exists('lock_factory', $value)) { - $this->_usedProperties['lockFactory'] = true; - $this->lockFactory = $value['lock_factory']; - unset($value['lock_factory']); - } - - if (array_key_exists('cache_pool', $value)) { - $this->_usedProperties['cachePool'] = true; - $this->cachePool = $value['cache_pool']; - unset($value['cache_pool']); - } - - if (array_key_exists('storage_service', $value)) { - $this->_usedProperties['storageService'] = true; - $this->storageService = $value['storage_service']; - unset($value['storage_service']); - } - - if (array_key_exists('policy', $value)) { - $this->_usedProperties['policy'] = true; - $this->policy = $value['policy']; - unset($value['policy']); - } - - if (array_key_exists('limit', $value)) { - $this->_usedProperties['limit'] = true; - $this->limit = $value['limit']; - unset($value['limit']); - } - - if (array_key_exists('interval', $value)) { - $this->_usedProperties['interval'] = true; - $this->interval = $value['interval']; - unset($value['interval']); - } - - if (array_key_exists('rate', $value)) { - $this->_usedProperties['rate'] = true; - $this->rate = new \Symfony\Config\Framework\RateLimiter\LimiterConfig\RateConfig($value['rate']); - unset($value['rate']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['lockFactory'])) { - $output['lock_factory'] = $this->lockFactory; - } - if (isset($this->_usedProperties['cachePool'])) { - $output['cache_pool'] = $this->cachePool; - } - if (isset($this->_usedProperties['storageService'])) { - $output['storage_service'] = $this->storageService; - } - if (isset($this->_usedProperties['policy'])) { - $output['policy'] = $this->policy; - } - if (isset($this->_usedProperties['limit'])) { - $output['limit'] = $this->limit; - } - if (isset($this->_usedProperties['interval'])) { - $output['interval'] = $this->interval; - } - if (isset($this->_usedProperties['rate'])) { - $output['rate'] = $this->rate->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig/RateConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig/RateConfig.php deleted file mode 100644 index efc1456..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiter/LimiterConfig/RateConfig.php +++ /dev/null @@ -1,77 +0,0 @@ -_usedProperties['interval'] = true; - $this->interval = $value; - - return $this; - } - - /** - * Amount of tokens to add each interval - * @default 1 - * @param ParamConfigurator|int $value - * @return $this - */ - public function amount($value): static - { - $this->_usedProperties['amount'] = true; - $this->amount = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('interval', $value)) { - $this->_usedProperties['interval'] = true; - $this->interval = $value['interval']; - unset($value['interval']); - } - - if (array_key_exists('amount', $value)) { - $this->_usedProperties['amount'] = true; - $this->amount = $value['amount']; - unset($value['amount']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['interval'])) { - $output['interval'] = $this->interval; - } - if (isset($this->_usedProperties['amount'])) { - $output['amount'] = $this->amount; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiterConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiterConfig.php deleted file mode 100644 index dcabb4b..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RateLimiterConfig.php +++ /dev/null @@ -1,76 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function limiter(string $name, array $value = []): \Symfony\Config\Framework\RateLimiter\LimiterConfig - { - if (!isset($this->limiters[$name])) { - $this->_usedProperties['limiters'] = true; - $this->limiters[$name] = new \Symfony\Config\Framework\RateLimiter\LimiterConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "limiter()" has already been initialized. You cannot pass values the second time you call limiter().'); - } - - return $this->limiters[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('limiters', $value)) { - $this->_usedProperties['limiters'] = true; - $this->limiters = array_map(fn ($v) => new \Symfony\Config\Framework\RateLimiter\LimiterConfig($v), $value['limiters']); - unset($value['limiters']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['limiters'])) { - $output['limiters'] = array_map(fn ($v) => $v->toArray(), $this->limiters); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RemoteeventConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RemoteeventConfig.php deleted file mode 100644 index 2b8f3a2..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RemoteeventConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RequestConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RequestConfig.php deleted file mode 100644 index 178ca44..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RequestConfig.php +++ /dev/null @@ -1,73 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @return $this - */ - public function format(string $name, mixed $value): static - { - $this->_usedProperties['formats'] = true; - $this->formats[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('formats', $value)) { - $this->_usedProperties['formats'] = true; - $this->formats = $value['formats']; - unset($value['formats']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['formats'])) { - $output['formats'] = $this->formats; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RouterConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RouterConfig.php deleted file mode 100644 index fc6b6ac..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/RouterConfig.php +++ /dev/null @@ -1,241 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function resource($value): static - { - $this->_usedProperties['resource'] = true; - $this->resource = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function type($value): static - { - $this->_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default '%kernel.cache_dir%' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cacheDir($value): static - { - $this->_usedProperties['cacheDir'] = true; - $this->cacheDir = $value; - - return $this; - } - - /** - * The default URI used to generate URLs in a non-HTTP context - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultUri($value): static - { - $this->_usedProperties['defaultUri'] = true; - $this->defaultUri = $value; - - return $this; - } - - /** - * @default 80 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function httpPort($value): static - { - $this->_usedProperties['httpPort'] = true; - $this->httpPort = $value; - - return $this; - } - - /** - * @default 443 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function httpsPort($value): static - { - $this->_usedProperties['httpsPort'] = true; - $this->httpsPort = $value; - - return $this; - } - - /** - * set to true to throw an exception when a parameter does not match the requirements - * set to false to disable exceptions when a parameter does not match the requirements (and return null instead) - * set to null to disable parameter checks against requirements - * 'true' is the preferred configuration in development mode, while 'false' or 'null' might be preferred in production - * @default true - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function strictRequirements($value): static - { - $this->_usedProperties['strictRequirements'] = true; - $this->strictRequirements = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function utf8($value): static - { - $this->_usedProperties['utf8'] = true; - $this->utf8 = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('resource', $value)) { - $this->_usedProperties['resource'] = true; - $this->resource = $value['resource']; - unset($value['resource']); - } - - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('cache_dir', $value)) { - $this->_usedProperties['cacheDir'] = true; - $this->cacheDir = $value['cache_dir']; - unset($value['cache_dir']); - } - - if (array_key_exists('default_uri', $value)) { - $this->_usedProperties['defaultUri'] = true; - $this->defaultUri = $value['default_uri']; - unset($value['default_uri']); - } - - if (array_key_exists('http_port', $value)) { - $this->_usedProperties['httpPort'] = true; - $this->httpPort = $value['http_port']; - unset($value['http_port']); - } - - if (array_key_exists('https_port', $value)) { - $this->_usedProperties['httpsPort'] = true; - $this->httpsPort = $value['https_port']; - unset($value['https_port']); - } - - if (array_key_exists('strict_requirements', $value)) { - $this->_usedProperties['strictRequirements'] = true; - $this->strictRequirements = $value['strict_requirements']; - unset($value['strict_requirements']); - } - - if (array_key_exists('utf8', $value)) { - $this->_usedProperties['utf8'] = true; - $this->utf8 = $value['utf8']; - unset($value['utf8']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['resource'])) { - $output['resource'] = $this->resource; - } - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['cacheDir'])) { - $output['cache_dir'] = $this->cacheDir; - } - if (isset($this->_usedProperties['defaultUri'])) { - $output['default_uri'] = $this->defaultUri; - } - if (isset($this->_usedProperties['httpPort'])) { - $output['http_port'] = $this->httpPort; - } - if (isset($this->_usedProperties['httpsPort'])) { - $output['https_port'] = $this->httpsPort; - } - if (isset($this->_usedProperties['strictRequirements'])) { - $output['strict_requirements'] = $this->strictRequirements; - } - if (isset($this->_usedProperties['utf8'])) { - $output['utf8'] = $this->utf8; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SchedulerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SchedulerConfig.php deleted file mode 100644 index 2f330e1..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SchedulerConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SecretsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SecretsConfig.php deleted file mode 100644 index d4ca653..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SecretsConfig.php +++ /dev/null @@ -1,121 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default '%kernel.project_dir%/config/secrets/%kernel.runtime_environment%' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vaultDirectory($value): static - { - $this->_usedProperties['vaultDirectory'] = true; - $this->vaultDirectory = $value; - - return $this; - } - - /** - * @default '%kernel.project_dir%/.env.%kernel.environment%.local' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function localDotenvFile($value): static - { - $this->_usedProperties['localDotenvFile'] = true; - $this->localDotenvFile = $value; - - return $this; - } - - /** - * @default 'base64:default::SYMFONY_DECRYPTION_SECRET' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function decryptionEnvVar($value): static - { - $this->_usedProperties['decryptionEnvVar'] = true; - $this->decryptionEnvVar = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('vault_directory', $value)) { - $this->_usedProperties['vaultDirectory'] = true; - $this->vaultDirectory = $value['vault_directory']; - unset($value['vault_directory']); - } - - if (array_key_exists('local_dotenv_file', $value)) { - $this->_usedProperties['localDotenvFile'] = true; - $this->localDotenvFile = $value['local_dotenv_file']; - unset($value['local_dotenv_file']); - } - - if (array_key_exists('decryption_env_var', $value)) { - $this->_usedProperties['decryptionEnvVar'] = true; - $this->decryptionEnvVar = $value['decryption_env_var']; - unset($value['decryption_env_var']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['vaultDirectory'])) { - $output['vault_directory'] = $this->vaultDirectory; - } - if (isset($this->_usedProperties['localDotenvFile'])) { - $output['local_dotenv_file'] = $this->localDotenvFile; - } - if (isset($this->_usedProperties['decryptionEnvVar'])) { - $output['decryption_env_var'] = $this->decryptionEnvVar; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SemaphoreConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SemaphoreConfig.php deleted file mode 100644 index f5c8886..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SemaphoreConfig.php +++ /dev/null @@ -1,73 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @return $this - */ - public function resource(string $name, mixed $value): static - { - $this->_usedProperties['resources'] = true; - $this->resources[$name] = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('resources', $value)) { - $this->_usedProperties['resources'] = true; - $this->resources = $value['resources']; - unset($value['resources']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['resources'])) { - $output['resources'] = $this->resources; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Serializer/MappingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Serializer/MappingConfig.php deleted file mode 100644 index 10d5a45..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Serializer/MappingConfig.php +++ /dev/null @@ -1,52 +0,0 @@ - $value - * - * @return $this - */ - public function paths(ParamConfigurator|array $value): static - { - $this->_usedProperties['paths'] = true; - $this->paths = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('paths', $value)) { - $this->_usedProperties['paths'] = true; - $this->paths = $value['paths']; - unset($value['paths']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['paths'])) { - $output['paths'] = $this->paths; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SerializerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SerializerConfig.php deleted file mode 100644 index 9e76958..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SerializerConfig.php +++ /dev/null @@ -1,217 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableAnnotations($value): static - { - $this->_usedProperties['enableAnnotations'] = true; - $this->enableAnnotations = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableAttributes($value): static - { - $this->_usedProperties['enableAttributes'] = true; - $this->enableAttributes = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function nameConverter($value): static - { - $this->_usedProperties['nameConverter'] = true; - $this->nameConverter = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function circularReferenceHandler($value): static - { - $this->_usedProperties['circularReferenceHandler'] = true; - $this->circularReferenceHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function maxDepthHandler($value): static - { - $this->_usedProperties['maxDepthHandler'] = true; - $this->maxDepthHandler = $value; - - return $this; - } - - /** - * @default {"paths":[]} - */ - public function mapping(array $value = []): \Symfony\Config\Framework\Serializer\MappingConfig - { - if (null === $this->mapping) { - $this->_usedProperties['mapping'] = true; - $this->mapping = new \Symfony\Config\Framework\Serializer\MappingConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "mapping()" has already been initialized. You cannot pass values the second time you call mapping().'); - } - - return $this->mapping; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function defaultContext(ParamConfigurator|array $value): static - { - $this->_usedProperties['defaultContext'] = true; - $this->defaultContext = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('enable_annotations', $value)) { - $this->_usedProperties['enableAnnotations'] = true; - $this->enableAnnotations = $value['enable_annotations']; - unset($value['enable_annotations']); - } - - if (array_key_exists('enable_attributes', $value)) { - $this->_usedProperties['enableAttributes'] = true; - $this->enableAttributes = $value['enable_attributes']; - unset($value['enable_attributes']); - } - - if (array_key_exists('name_converter', $value)) { - $this->_usedProperties['nameConverter'] = true; - $this->nameConverter = $value['name_converter']; - unset($value['name_converter']); - } - - if (array_key_exists('circular_reference_handler', $value)) { - $this->_usedProperties['circularReferenceHandler'] = true; - $this->circularReferenceHandler = $value['circular_reference_handler']; - unset($value['circular_reference_handler']); - } - - if (array_key_exists('max_depth_handler', $value)) { - $this->_usedProperties['maxDepthHandler'] = true; - $this->maxDepthHandler = $value['max_depth_handler']; - unset($value['max_depth_handler']); - } - - if (array_key_exists('mapping', $value)) { - $this->_usedProperties['mapping'] = true; - $this->mapping = new \Symfony\Config\Framework\Serializer\MappingConfig($value['mapping']); - unset($value['mapping']); - } - - if (array_key_exists('default_context', $value)) { - $this->_usedProperties['defaultContext'] = true; - $this->defaultContext = $value['default_context']; - unset($value['default_context']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['enableAnnotations'])) { - $output['enable_annotations'] = $this->enableAnnotations; - } - if (isset($this->_usedProperties['enableAttributes'])) { - $output['enable_attributes'] = $this->enableAttributes; - } - if (isset($this->_usedProperties['nameConverter'])) { - $output['name_converter'] = $this->nameConverter; - } - if (isset($this->_usedProperties['circularReferenceHandler'])) { - $output['circular_reference_handler'] = $this->circularReferenceHandler; - } - if (isset($this->_usedProperties['maxDepthHandler'])) { - $output['max_depth_handler'] = $this->maxDepthHandler; - } - if (isset($this->_usedProperties['mapping'])) { - $output['mapping'] = $this->mapping->toArray(); - } - if (isset($this->_usedProperties['defaultContext'])) { - $output['default_context'] = $this->defaultContext; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SessionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SessionConfig.php deleted file mode 100644 index 6ee67fe..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SessionConfig.php +++ /dev/null @@ -1,444 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default 'session.storage.factory.native' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function storageFactoryId($value): static - { - $this->_usedProperties['storageFactoryId'] = true; - $this->storageFactoryId = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function handlerId($value): static - { - $this->_usedProperties['handlerId'] = true; - $this->handlerId = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function name($value): static - { - $this->_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cookieLifetime($value): static - { - $this->_usedProperties['cookieLifetime'] = true; - $this->cookieLifetime = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cookiePath($value): static - { - $this->_usedProperties['cookiePath'] = true; - $this->cookiePath = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cookieDomain($value): static - { - $this->_usedProperties['cookieDomain'] = true; - $this->cookieDomain = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|true|false|'auto' $value - * @return $this - */ - public function cookieSecure($value): static - { - $this->_usedProperties['cookieSecure'] = true; - $this->cookieSecure = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function cookieHttponly($value): static - { - $this->_usedProperties['cookieHttponly'] = true; - $this->cookieHttponly = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|NULL|'lax'|'strict'|'none' $value - * @return $this - */ - public function cookieSamesite($value): static - { - $this->_usedProperties['cookieSamesite'] = true; - $this->cookieSamesite = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useCookies($value): static - { - $this->_usedProperties['useCookies'] = true; - $this->useCookies = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function gcDivisor($value): static - { - $this->_usedProperties['gcDivisor'] = true; - $this->gcDivisor = $value; - - return $this; - } - - /** - * @default 1 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function gcProbability($value): static - { - $this->_usedProperties['gcProbability'] = true; - $this->gcProbability = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function gcMaxlifetime($value): static - { - $this->_usedProperties['gcMaxlifetime'] = true; - $this->gcMaxlifetime = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function savePath($value): static - { - $this->_usedProperties['savePath'] = true; - $this->savePath = $value; - - return $this; - } - - /** - * seconds to wait between 2 session metadata updates - * @default 0 - * @param ParamConfigurator|int $value - * @return $this - */ - public function metadataUpdateThreshold($value): static - { - $this->_usedProperties['metadataUpdateThreshold'] = true; - $this->metadataUpdateThreshold = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function sidLength($value): static - { - $this->_usedProperties['sidLength'] = true; - $this->sidLength = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function sidBitsPerCharacter($value): static - { - $this->_usedProperties['sidBitsPerCharacter'] = true; - $this->sidBitsPerCharacter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('storage_factory_id', $value)) { - $this->_usedProperties['storageFactoryId'] = true; - $this->storageFactoryId = $value['storage_factory_id']; - unset($value['storage_factory_id']); - } - - if (array_key_exists('handler_id', $value)) { - $this->_usedProperties['handlerId'] = true; - $this->handlerId = $value['handler_id']; - unset($value['handler_id']); - } - - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if (array_key_exists('cookie_lifetime', $value)) { - $this->_usedProperties['cookieLifetime'] = true; - $this->cookieLifetime = $value['cookie_lifetime']; - unset($value['cookie_lifetime']); - } - - if (array_key_exists('cookie_path', $value)) { - $this->_usedProperties['cookiePath'] = true; - $this->cookiePath = $value['cookie_path']; - unset($value['cookie_path']); - } - - if (array_key_exists('cookie_domain', $value)) { - $this->_usedProperties['cookieDomain'] = true; - $this->cookieDomain = $value['cookie_domain']; - unset($value['cookie_domain']); - } - - if (array_key_exists('cookie_secure', $value)) { - $this->_usedProperties['cookieSecure'] = true; - $this->cookieSecure = $value['cookie_secure']; - unset($value['cookie_secure']); - } - - if (array_key_exists('cookie_httponly', $value)) { - $this->_usedProperties['cookieHttponly'] = true; - $this->cookieHttponly = $value['cookie_httponly']; - unset($value['cookie_httponly']); - } - - if (array_key_exists('cookie_samesite', $value)) { - $this->_usedProperties['cookieSamesite'] = true; - $this->cookieSamesite = $value['cookie_samesite']; - unset($value['cookie_samesite']); - } - - if (array_key_exists('use_cookies', $value)) { - $this->_usedProperties['useCookies'] = true; - $this->useCookies = $value['use_cookies']; - unset($value['use_cookies']); - } - - if (array_key_exists('gc_divisor', $value)) { - $this->_usedProperties['gcDivisor'] = true; - $this->gcDivisor = $value['gc_divisor']; - unset($value['gc_divisor']); - } - - if (array_key_exists('gc_probability', $value)) { - $this->_usedProperties['gcProbability'] = true; - $this->gcProbability = $value['gc_probability']; - unset($value['gc_probability']); - } - - if (array_key_exists('gc_maxlifetime', $value)) { - $this->_usedProperties['gcMaxlifetime'] = true; - $this->gcMaxlifetime = $value['gc_maxlifetime']; - unset($value['gc_maxlifetime']); - } - - if (array_key_exists('save_path', $value)) { - $this->_usedProperties['savePath'] = true; - $this->savePath = $value['save_path']; - unset($value['save_path']); - } - - if (array_key_exists('metadata_update_threshold', $value)) { - $this->_usedProperties['metadataUpdateThreshold'] = true; - $this->metadataUpdateThreshold = $value['metadata_update_threshold']; - unset($value['metadata_update_threshold']); - } - - if (array_key_exists('sid_length', $value)) { - $this->_usedProperties['sidLength'] = true; - $this->sidLength = $value['sid_length']; - unset($value['sid_length']); - } - - if (array_key_exists('sid_bits_per_character', $value)) { - $this->_usedProperties['sidBitsPerCharacter'] = true; - $this->sidBitsPerCharacter = $value['sid_bits_per_character']; - unset($value['sid_bits_per_character']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['storageFactoryId'])) { - $output['storage_factory_id'] = $this->storageFactoryId; - } - if (isset($this->_usedProperties['handlerId'])) { - $output['handler_id'] = $this->handlerId; - } - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - if (isset($this->_usedProperties['cookieLifetime'])) { - $output['cookie_lifetime'] = $this->cookieLifetime; - } - if (isset($this->_usedProperties['cookiePath'])) { - $output['cookie_path'] = $this->cookiePath; - } - if (isset($this->_usedProperties['cookieDomain'])) { - $output['cookie_domain'] = $this->cookieDomain; - } - if (isset($this->_usedProperties['cookieSecure'])) { - $output['cookie_secure'] = $this->cookieSecure; - } - if (isset($this->_usedProperties['cookieHttponly'])) { - $output['cookie_httponly'] = $this->cookieHttponly; - } - if (isset($this->_usedProperties['cookieSamesite'])) { - $output['cookie_samesite'] = $this->cookieSamesite; - } - if (isset($this->_usedProperties['useCookies'])) { - $output['use_cookies'] = $this->useCookies; - } - if (isset($this->_usedProperties['gcDivisor'])) { - $output['gc_divisor'] = $this->gcDivisor; - } - if (isset($this->_usedProperties['gcProbability'])) { - $output['gc_probability'] = $this->gcProbability; - } - if (isset($this->_usedProperties['gcMaxlifetime'])) { - $output['gc_maxlifetime'] = $this->gcMaxlifetime; - } - if (isset($this->_usedProperties['savePath'])) { - $output['save_path'] = $this->savePath; - } - if (isset($this->_usedProperties['metadataUpdateThreshold'])) { - $output['metadata_update_threshold'] = $this->metadataUpdateThreshold; - } - if (isset($this->_usedProperties['sidLength'])) { - $output['sid_length'] = $this->sidLength; - } - if (isset($this->_usedProperties['sidBitsPerCharacter'])) { - $output['sid_bits_per_character'] = $this->sidBitsPerCharacter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SsiConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SsiConfig.php deleted file mode 100644 index 0f00bf7..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/SsiConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/ProviderConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/ProviderConfig.php deleted file mode 100644 index 087d629..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/ProviderConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['dsn'] = true; - $this->dsn = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function domains(ParamConfigurator|array $value): static - { - $this->_usedProperties['domains'] = true; - $this->domains = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function locales(ParamConfigurator|array $value): static - { - $this->_usedProperties['locales'] = true; - $this->locales = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('dsn', $value)) { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value['dsn']; - unset($value['dsn']); - } - - if (array_key_exists('domains', $value)) { - $this->_usedProperties['domains'] = true; - $this->domains = $value['domains']; - unset($value['domains']); - } - - if (array_key_exists('locales', $value)) { - $this->_usedProperties['locales'] = true; - $this->locales = $value['locales']; - unset($value['locales']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['dsn'])) { - $output['dsn'] = $this->dsn; - } - if (isset($this->_usedProperties['domains'])) { - $output['domains'] = $this->domains; - } - if (isset($this->_usedProperties['locales'])) { - $output['locales'] = $this->locales; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/PseudoLocalizationConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/PseudoLocalizationConfig.php deleted file mode 100644 index fa61472..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Translator/PseudoLocalizationConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function accents($value): static - { - $this->_usedProperties['accents'] = true; - $this->accents = $value; - - return $this; - } - - /** - * @default 1.0 - * @param ParamConfigurator|float $value - * @return $this - */ - public function expansionFactor($value): static - { - $this->_usedProperties['expansionFactor'] = true; - $this->expansionFactor = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function brackets($value): static - { - $this->_usedProperties['brackets'] = true; - $this->brackets = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function parseHtml($value): static - { - $this->_usedProperties['parseHtml'] = true; - $this->parseHtml = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function localizableHtmlAttributes(ParamConfigurator|array $value): static - { - $this->_usedProperties['localizableHtmlAttributes'] = true; - $this->localizableHtmlAttributes = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('accents', $value)) { - $this->_usedProperties['accents'] = true; - $this->accents = $value['accents']; - unset($value['accents']); - } - - if (array_key_exists('expansion_factor', $value)) { - $this->_usedProperties['expansionFactor'] = true; - $this->expansionFactor = $value['expansion_factor']; - unset($value['expansion_factor']); - } - - if (array_key_exists('brackets', $value)) { - $this->_usedProperties['brackets'] = true; - $this->brackets = $value['brackets']; - unset($value['brackets']); - } - - if (array_key_exists('parse_html', $value)) { - $this->_usedProperties['parseHtml'] = true; - $this->parseHtml = $value['parse_html']; - unset($value['parse_html']); - } - - if (array_key_exists('localizable_html_attributes', $value)) { - $this->_usedProperties['localizableHtmlAttributes'] = true; - $this->localizableHtmlAttributes = $value['localizable_html_attributes']; - unset($value['localizable_html_attributes']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['accents'])) { - $output['accents'] = $this->accents; - } - if (isset($this->_usedProperties['expansionFactor'])) { - $output['expansion_factor'] = $this->expansionFactor; - } - if (isset($this->_usedProperties['brackets'])) { - $output['brackets'] = $this->brackets; - } - if (isset($this->_usedProperties['parseHtml'])) { - $output['parse_html'] = $this->parseHtml; - } - if (isset($this->_usedProperties['localizableHtmlAttributes'])) { - $output['localizable_html_attributes'] = $this->localizableHtmlAttributes; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/TranslatorConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/TranslatorConfig.php deleted file mode 100644 index 3167bc7..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/TranslatorConfig.php +++ /dev/null @@ -1,255 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function fallbacks(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['fallbacks'] = true; - $this->fallbacks = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function logging($value): static - { - $this->_usedProperties['logging'] = true; - $this->logging = $value; - - return $this; - } - - /** - * @default 'translator.formatter.default' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function formatter($value): static - { - $this->_usedProperties['formatter'] = true; - $this->formatter = $value; - - return $this; - } - - /** - * @default '%kernel.cache_dir%/translations' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cacheDir($value): static - { - $this->_usedProperties['cacheDir'] = true; - $this->cacheDir = $value; - - return $this; - } - - /** - * The default path used to load translations - * @default '%kernel.project_dir%/translations' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultPath($value): static - { - $this->_usedProperties['defaultPath'] = true; - $this->defaultPath = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function paths(ParamConfigurator|array $value): static - { - $this->_usedProperties['paths'] = true; - $this->paths = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":false,"accents":true,"expansion_factor":1,"brackets":true,"parse_html":false,"localizable_html_attributes":[]} - * @return \Symfony\Config\Framework\Translator\PseudoLocalizationConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Translator\PseudoLocalizationConfig : static) - */ - public function pseudoLocalization(array $value = []): \Symfony\Config\Framework\Translator\PseudoLocalizationConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['pseudoLocalization'] = true; - $this->pseudoLocalization = $value; - - return $this; - } - - if (!$this->pseudoLocalization instanceof \Symfony\Config\Framework\Translator\PseudoLocalizationConfig) { - $this->_usedProperties['pseudoLocalization'] = true; - $this->pseudoLocalization = new \Symfony\Config\Framework\Translator\PseudoLocalizationConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "pseudoLocalization()" has already been initialized. You cannot pass values the second time you call pseudoLocalization().'); - } - - return $this->pseudoLocalization; - } - - /** - * Translation providers you can read/write your translations from - */ - public function provider(string $name, array $value = []): \Symfony\Config\Framework\Translator\ProviderConfig - { - if (!isset($this->providers[$name])) { - $this->_usedProperties['providers'] = true; - $this->providers[$name] = new \Symfony\Config\Framework\Translator\ProviderConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "provider()" has already been initialized. You cannot pass values the second time you call provider().'); - } - - return $this->providers[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('fallbacks', $value)) { - $this->_usedProperties['fallbacks'] = true; - $this->fallbacks = $value['fallbacks']; - unset($value['fallbacks']); - } - - if (array_key_exists('logging', $value)) { - $this->_usedProperties['logging'] = true; - $this->logging = $value['logging']; - unset($value['logging']); - } - - if (array_key_exists('formatter', $value)) { - $this->_usedProperties['formatter'] = true; - $this->formatter = $value['formatter']; - unset($value['formatter']); - } - - if (array_key_exists('cache_dir', $value)) { - $this->_usedProperties['cacheDir'] = true; - $this->cacheDir = $value['cache_dir']; - unset($value['cache_dir']); - } - - if (array_key_exists('default_path', $value)) { - $this->_usedProperties['defaultPath'] = true; - $this->defaultPath = $value['default_path']; - unset($value['default_path']); - } - - if (array_key_exists('paths', $value)) { - $this->_usedProperties['paths'] = true; - $this->paths = $value['paths']; - unset($value['paths']); - } - - if (array_key_exists('pseudo_localization', $value)) { - $this->_usedProperties['pseudoLocalization'] = true; - $this->pseudoLocalization = \is_array($value['pseudo_localization']) ? new \Symfony\Config\Framework\Translator\PseudoLocalizationConfig($value['pseudo_localization']) : $value['pseudo_localization']; - unset($value['pseudo_localization']); - } - - if (array_key_exists('providers', $value)) { - $this->_usedProperties['providers'] = true; - $this->providers = array_map(fn ($v) => new \Symfony\Config\Framework\Translator\ProviderConfig($v), $value['providers']); - unset($value['providers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['fallbacks'])) { - $output['fallbacks'] = $this->fallbacks; - } - if (isset($this->_usedProperties['logging'])) { - $output['logging'] = $this->logging; - } - if (isset($this->_usedProperties['formatter'])) { - $output['formatter'] = $this->formatter; - } - if (isset($this->_usedProperties['cacheDir'])) { - $output['cache_dir'] = $this->cacheDir; - } - if (isset($this->_usedProperties['defaultPath'])) { - $output['default_path'] = $this->defaultPath; - } - if (isset($this->_usedProperties['paths'])) { - $output['paths'] = $this->paths; - } - if (isset($this->_usedProperties['pseudoLocalization'])) { - $output['pseudo_localization'] = $this->pseudoLocalization instanceof \Symfony\Config\Framework\Translator\PseudoLocalizationConfig ? $this->pseudoLocalization->toArray() : $this->pseudoLocalization; - } - if (isset($this->_usedProperties['providers'])) { - $output['providers'] = array_map(fn ($v) => $v->toArray(), $this->providers); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/UidConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/UidConfig.php deleted file mode 100644 index 3deea25..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/UidConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|7|6|4|1 $value - * @return $this - */ - public function defaultUuidVersion($value): static - { - $this->_usedProperties['defaultUuidVersion'] = true; - $this->defaultUuidVersion = $value; - - return $this; - } - - /** - * @default 5 - * @param ParamConfigurator|5|3 $value - * @return $this - */ - public function nameBasedUuidVersion($value): static - { - $this->_usedProperties['nameBasedUuidVersion'] = true; - $this->nameBasedUuidVersion = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function nameBasedUuidNamespace($value): static - { - $this->_usedProperties['nameBasedUuidNamespace'] = true; - $this->nameBasedUuidNamespace = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|7|6|1 $value - * @return $this - */ - public function timeBasedUuidVersion($value): static - { - $this->_usedProperties['timeBasedUuidVersion'] = true; - $this->timeBasedUuidVersion = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function timeBasedUuidNode($value): static - { - $this->_usedProperties['timeBasedUuidNode'] = true; - $this->timeBasedUuidNode = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('default_uuid_version', $value)) { - $this->_usedProperties['defaultUuidVersion'] = true; - $this->defaultUuidVersion = $value['default_uuid_version']; - unset($value['default_uuid_version']); - } - - if (array_key_exists('name_based_uuid_version', $value)) { - $this->_usedProperties['nameBasedUuidVersion'] = true; - $this->nameBasedUuidVersion = $value['name_based_uuid_version']; - unset($value['name_based_uuid_version']); - } - - if (array_key_exists('name_based_uuid_namespace', $value)) { - $this->_usedProperties['nameBasedUuidNamespace'] = true; - $this->nameBasedUuidNamespace = $value['name_based_uuid_namespace']; - unset($value['name_based_uuid_namespace']); - } - - if (array_key_exists('time_based_uuid_version', $value)) { - $this->_usedProperties['timeBasedUuidVersion'] = true; - $this->timeBasedUuidVersion = $value['time_based_uuid_version']; - unset($value['time_based_uuid_version']); - } - - if (array_key_exists('time_based_uuid_node', $value)) { - $this->_usedProperties['timeBasedUuidNode'] = true; - $this->timeBasedUuidNode = $value['time_based_uuid_node']; - unset($value['time_based_uuid_node']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['defaultUuidVersion'])) { - $output['default_uuid_version'] = $this->defaultUuidVersion; - } - if (isset($this->_usedProperties['nameBasedUuidVersion'])) { - $output['name_based_uuid_version'] = $this->nameBasedUuidVersion; - } - if (isset($this->_usedProperties['nameBasedUuidNamespace'])) { - $output['name_based_uuid_namespace'] = $this->nameBasedUuidNamespace; - } - if (isset($this->_usedProperties['timeBasedUuidVersion'])) { - $output['time_based_uuid_version'] = $this->timeBasedUuidVersion; - } - if (isset($this->_usedProperties['timeBasedUuidNode'])) { - $output['time_based_uuid_node'] = $this->timeBasedUuidNode; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/AutoMappingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/AutoMappingConfig.php deleted file mode 100644 index 9265970..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/AutoMappingConfig.php +++ /dev/null @@ -1,52 +0,0 @@ - $value - * - * @return $this - */ - public function services(ParamConfigurator|array $value): static - { - $this->_usedProperties['services'] = true; - $this->services = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('services', $value)) { - $this->_usedProperties['services'] = true; - $this->services = $value['services']; - unset($value['services']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['services'])) { - $output['services'] = $this->services; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/MappingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/MappingConfig.php deleted file mode 100644 index ca4a90a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/MappingConfig.php +++ /dev/null @@ -1,52 +0,0 @@ - $value - * - * @return $this - */ - public function paths(ParamConfigurator|array $value): static - { - $this->_usedProperties['paths'] = true; - $this->paths = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('paths', $value)) { - $this->_usedProperties['paths'] = true; - $this->paths = $value['paths']; - unset($value['paths']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['paths'])) { - $output['paths'] = $this->paths; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/NotCompromisedPasswordConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/NotCompromisedPasswordConfig.php deleted file mode 100644 index 58853a9..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Validation/NotCompromisedPasswordConfig.php +++ /dev/null @@ -1,77 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * API endpoint for the NotCompromisedPassword Validator. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function endpoint($value): static - { - $this->_usedProperties['endpoint'] = true; - $this->endpoint = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('endpoint', $value)) { - $this->_usedProperties['endpoint'] = true; - $this->endpoint = $value['endpoint']; - unset($value['endpoint']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['endpoint'])) { - $output['endpoint'] = $this->endpoint; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ValidationConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ValidationConfig.php deleted file mode 100644 index 0d2a3e4..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/ValidationConfig.php +++ /dev/null @@ -1,282 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function cache($value): static - { - $this->_usedProperties['cache'] = true; - $this->cache = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableAnnotations($value): static - { - $this->_usedProperties['enableAnnotations'] = true; - $this->enableAnnotations = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableAttributes($value): static - { - $this->_usedProperties['enableAttributes'] = true; - $this->enableAttributes = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function staticMethod(ParamConfigurator|array $value): static - { - $this->_usedProperties['staticMethod'] = true; - $this->staticMethod = $value; - - return $this; - } - - /** - * @default 'validators' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function translationDomain($value): static - { - $this->_usedProperties['translationDomain'] = true; - $this->translationDomain = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|'html5-allow-no-tld'|'html5'|'strict'|'loose' $value - * @return $this - */ - public function emailValidationMode($value): static - { - $this->_usedProperties['emailValidationMode'] = true; - $this->emailValidationMode = $value; - - return $this; - } - - /** - * @default {"paths":[]} - */ - public function mapping(array $value = []): \Symfony\Config\Framework\Validation\MappingConfig - { - if (null === $this->mapping) { - $this->_usedProperties['mapping'] = true; - $this->mapping = new \Symfony\Config\Framework\Validation\MappingConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "mapping()" has already been initialized. You cannot pass values the second time you call mapping().'); - } - - return $this->mapping; - } - - /** - * @default {"enabled":true,"endpoint":null} - */ - public function notCompromisedPassword(array $value = []): \Symfony\Config\Framework\Validation\NotCompromisedPasswordConfig - { - if (null === $this->notCompromisedPassword) { - $this->_usedProperties['notCompromisedPassword'] = true; - $this->notCompromisedPassword = new \Symfony\Config\Framework\Validation\NotCompromisedPasswordConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "notCompromisedPassword()" has already been initialized. You cannot pass values the second time you call notCompromisedPassword().'); - } - - return $this->notCompromisedPassword; - } - - /** - * @template TValue - * @param TValue $value - * A collection of namespaces for which auto-mapping will be enabled by default, or null to opt-in with the EnableAutoMapping constraint. - * @example [] - * @example ["validator.property_info_loader"] - * @return \Symfony\Config\Framework\Validation\AutoMappingConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Validation\AutoMappingConfig : static) - */ - public function autoMapping(string $namespace, array $value = []): \Symfony\Config\Framework\Validation\AutoMappingConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping[$namespace] = $value; - - return $this; - } - - if (!isset($this->autoMapping[$namespace]) || !$this->autoMapping[$namespace] instanceof \Symfony\Config\Framework\Validation\AutoMappingConfig) { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping[$namespace] = new \Symfony\Config\Framework\Validation\AutoMappingConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "autoMapping()" has already been initialized. You cannot pass values the second time you call autoMapping().'); - } - - return $this->autoMapping[$namespace]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('cache', $value)) { - $this->_usedProperties['cache'] = true; - $this->cache = $value['cache']; - unset($value['cache']); - } - - if (array_key_exists('enable_annotations', $value)) { - $this->_usedProperties['enableAnnotations'] = true; - $this->enableAnnotations = $value['enable_annotations']; - unset($value['enable_annotations']); - } - - if (array_key_exists('enable_attributes', $value)) { - $this->_usedProperties['enableAttributes'] = true; - $this->enableAttributes = $value['enable_attributes']; - unset($value['enable_attributes']); - } - - if (array_key_exists('static_method', $value)) { - $this->_usedProperties['staticMethod'] = true; - $this->staticMethod = $value['static_method']; - unset($value['static_method']); - } - - if (array_key_exists('translation_domain', $value)) { - $this->_usedProperties['translationDomain'] = true; - $this->translationDomain = $value['translation_domain']; - unset($value['translation_domain']); - } - - if (array_key_exists('email_validation_mode', $value)) { - $this->_usedProperties['emailValidationMode'] = true; - $this->emailValidationMode = $value['email_validation_mode']; - unset($value['email_validation_mode']); - } - - if (array_key_exists('mapping', $value)) { - $this->_usedProperties['mapping'] = true; - $this->mapping = new \Symfony\Config\Framework\Validation\MappingConfig($value['mapping']); - unset($value['mapping']); - } - - if (array_key_exists('not_compromised_password', $value)) { - $this->_usedProperties['notCompromisedPassword'] = true; - $this->notCompromisedPassword = new \Symfony\Config\Framework\Validation\NotCompromisedPasswordConfig($value['not_compromised_password']); - unset($value['not_compromised_password']); - } - - if (array_key_exists('auto_mapping', $value)) { - $this->_usedProperties['autoMapping'] = true; - $this->autoMapping = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Validation\AutoMappingConfig($v) : $v, $value['auto_mapping']); - unset($value['auto_mapping']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['cache'])) { - $output['cache'] = $this->cache; - } - if (isset($this->_usedProperties['enableAnnotations'])) { - $output['enable_annotations'] = $this->enableAnnotations; - } - if (isset($this->_usedProperties['enableAttributes'])) { - $output['enable_attributes'] = $this->enableAttributes; - } - if (isset($this->_usedProperties['staticMethod'])) { - $output['static_method'] = $this->staticMethod; - } - if (isset($this->_usedProperties['translationDomain'])) { - $output['translation_domain'] = $this->translationDomain; - } - if (isset($this->_usedProperties['emailValidationMode'])) { - $output['email_validation_mode'] = $this->emailValidationMode; - } - if (isset($this->_usedProperties['mapping'])) { - $output['mapping'] = $this->mapping->toArray(); - } - if (isset($this->_usedProperties['notCompromisedPassword'])) { - $output['not_compromised_password'] = $this->notCompromisedPassword->toArray(); - } - if (isset($this->_usedProperties['autoMapping'])) { - $output['auto_mapping'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Validation\AutoMappingConfig ? $v->toArray() : $v, $this->autoMapping); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebLinkConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebLinkConfig.php deleted file mode 100644 index 9b61a87..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebLinkConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Webhook/RoutingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Webhook/RoutingConfig.php deleted file mode 100644 index 12f84d0..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Webhook/RoutingConfig.php +++ /dev/null @@ -1,74 +0,0 @@ -_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function secret($value): static - { - $this->_usedProperties['secret'] = true; - $this->secret = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('secret', $value)) { - $this->_usedProperties['secret'] = true; - $this->secret = $value['secret']; - unset($value['secret']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['secret'])) { - $output['secret'] = $this->secret; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebhookConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebhookConfig.php deleted file mode 100644 index 87435a5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WebhookConfig.php +++ /dev/null @@ -1,100 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * The message bus to use. - * @default 'messenger.default_bus' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function messageBus($value): static - { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value; - - return $this; - } - - public function routing(string $type, array $value = []): \Symfony\Config\Framework\Webhook\RoutingConfig - { - if (!isset($this->routing[$type])) { - $this->_usedProperties['routing'] = true; - $this->routing[$type] = new \Symfony\Config\Framework\Webhook\RoutingConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "routing()" has already been initialized. You cannot pass values the second time you call routing().'); - } - - return $this->routing[$type]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('message_bus', $value)) { - $this->_usedProperties['messageBus'] = true; - $this->messageBus = $value['message_bus']; - unset($value['message_bus']); - } - - if (array_key_exists('routing', $value)) { - $this->_usedProperties['routing'] = true; - $this->routing = array_map(fn ($v) => new \Symfony\Config\Framework\Webhook\RoutingConfig($v), $value['routing']); - unset($value['routing']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['messageBus'])) { - $output['message_bus'] = $this->messageBus; - } - if (isset($this->_usedProperties['routing'])) { - $output['routing'] = array_map(fn ($v) => $v->toArray(), $this->routing); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig.php deleted file mode 100644 index 3114318..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig.php +++ /dev/null @@ -1,290 +0,0 @@ -_usedProperties['auditTrail'] = true; - $this->auditTrail = $value; - - return $this; - } - - if (!$this->auditTrail instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig\AuditTrailConfig) { - $this->_usedProperties['auditTrail'] = true; - $this->auditTrail = new \Symfony\Config\Framework\Workflows\WorkflowsConfig\AuditTrailConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "auditTrail()" has already been initialized. You cannot pass values the second time you call auditTrail().'); - } - - return $this->auditTrail; - } - - /** - * @default 'state_machine' - * @param ParamConfigurator|'workflow'|'state_machine' $value - * @return $this - */ - public function type($value): static - { - $this->_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - public function markingStore(array $value = []): \Symfony\Config\Framework\Workflows\WorkflowsConfig\MarkingStoreConfig - { - if (null === $this->markingStore) { - $this->_usedProperties['markingStore'] = true; - $this->markingStore = new \Symfony\Config\Framework\Workflows\WorkflowsConfig\MarkingStoreConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "markingStore()" has already been initialized. You cannot pass values the second time you call markingStore().'); - } - - return $this->markingStore; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function supports(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['supports'] = true; - $this->supports = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function supportStrategy($value): static - { - $this->_usedProperties['supportStrategy'] = true; - $this->supportStrategy = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|mixed $value - * - * @return $this - */ - public function initialMarking(mixed $value): static - { - $this->_usedProperties['initialMarking'] = true; - $this->initialMarking = $value; - - return $this; - } - - /** - * Select which Transition events should be dispatched for this Workflow - * @example workflow.enter - * @example workflow.transition - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function eventsToDispatch(mixed $value = NULL): static - { - $this->_usedProperties['eventsToDispatch'] = true; - $this->eventsToDispatch = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig : static) - */ - public function place(mixed $value = []): \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig|static - { - $this->_usedProperties['places'] = true; - if (!\is_array($value)) { - $this->places[] = $value; - - return $this; - } - - return $this->places[] = new \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig($value); - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig : static) - */ - public function transition(mixed $value = []): \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig|static - { - $this->_usedProperties['transitions'] = true; - if (!\is_array($value)) { - $this->transitions[] = $value; - - return $this; - } - - return $this->transitions[] = new \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig($value); - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function metadata(ParamConfigurator|array $value): static - { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('audit_trail', $value)) { - $this->_usedProperties['auditTrail'] = true; - $this->auditTrail = \is_array($value['audit_trail']) ? new \Symfony\Config\Framework\Workflows\WorkflowsConfig\AuditTrailConfig($value['audit_trail']) : $value['audit_trail']; - unset($value['audit_trail']); - } - - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('marking_store', $value)) { - $this->_usedProperties['markingStore'] = true; - $this->markingStore = new \Symfony\Config\Framework\Workflows\WorkflowsConfig\MarkingStoreConfig($value['marking_store']); - unset($value['marking_store']); - } - - if (array_key_exists('supports', $value)) { - $this->_usedProperties['supports'] = true; - $this->supports = $value['supports']; - unset($value['supports']); - } - - if (array_key_exists('support_strategy', $value)) { - $this->_usedProperties['supportStrategy'] = true; - $this->supportStrategy = $value['support_strategy']; - unset($value['support_strategy']); - } - - if (array_key_exists('initial_marking', $value)) { - $this->_usedProperties['initialMarking'] = true; - $this->initialMarking = $value['initial_marking']; - unset($value['initial_marking']); - } - - if (array_key_exists('events_to_dispatch', $value)) { - $this->_usedProperties['eventsToDispatch'] = true; - $this->eventsToDispatch = $value['events_to_dispatch']; - unset($value['events_to_dispatch']); - } - - if (array_key_exists('places', $value)) { - $this->_usedProperties['places'] = true; - $this->places = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig($v) : $v, $value['places']); - unset($value['places']); - } - - if (array_key_exists('transitions', $value)) { - $this->_usedProperties['transitions'] = true; - $this->transitions = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig($v) : $v, $value['transitions']); - unset($value['transitions']); - } - - if (array_key_exists('metadata', $value)) { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value['metadata']; - unset($value['metadata']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['auditTrail'])) { - $output['audit_trail'] = $this->auditTrail instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig\AuditTrailConfig ? $this->auditTrail->toArray() : $this->auditTrail; - } - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['markingStore'])) { - $output['marking_store'] = $this->markingStore->toArray(); - } - if (isset($this->_usedProperties['supports'])) { - $output['supports'] = $this->supports; - } - if (isset($this->_usedProperties['supportStrategy'])) { - $output['support_strategy'] = $this->supportStrategy; - } - if (isset($this->_usedProperties['initialMarking'])) { - $output['initial_marking'] = $this->initialMarking; - } - if (isset($this->_usedProperties['eventsToDispatch'])) { - $output['events_to_dispatch'] = $this->eventsToDispatch; - } - if (isset($this->_usedProperties['places'])) { - $output['places'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig\PlaceConfig ? $v->toArray() : $v, $this->places); - } - if (isset($this->_usedProperties['transitions'])) { - $output['transitions'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig\TransitionConfig ? $v->toArray() : $v, $this->transitions); - } - if (isset($this->_usedProperties['metadata'])) { - $output['metadata'] = $this->metadata; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/AuditTrailConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/AuditTrailConfig.php deleted file mode 100644 index 7188794..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/AuditTrailConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/MarkingStoreConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/MarkingStoreConfig.php deleted file mode 100644 index e6cee3b..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/MarkingStoreConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function property($value): static - { - $this->_usedProperties['property'] = true; - $this->property = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('property', $value)) { - $this->_usedProperties['property'] = true; - $this->property = $value['property']; - unset($value['property']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['property'])) { - $output['property'] = $this->property; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/PlaceConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/PlaceConfig.php deleted file mode 100644 index f062c44..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/PlaceConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function metadata(ParamConfigurator|array $value): static - { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if (array_key_exists('metadata', $value)) { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value['metadata']; - unset($value['metadata']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - if (isset($this->_usedProperties['metadata'])) { - $output['metadata'] = $this->metadata; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/TransitionConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/TransitionConfig.php deleted file mode 100644 index 8a814c5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/Workflows/WorkflowsConfig/TransitionConfig.php +++ /dev/null @@ -1,146 +0,0 @@ -_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - /** - * An expression to block the transition - * @example is_fully_authenticated() and is_granted('ROLE_JOURNALIST') and subject.getTitle() == 'My first article' - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function guard($value): static - { - $this->_usedProperties['guard'] = true; - $this->guard = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function from(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['from'] = true; - $this->from = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function to(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['to'] = true; - $this->to = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function metadata(ParamConfigurator|array $value): static - { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if (array_key_exists('guard', $value)) { - $this->_usedProperties['guard'] = true; - $this->guard = $value['guard']; - unset($value['guard']); - } - - if (array_key_exists('from', $value)) { - $this->_usedProperties['from'] = true; - $this->from = $value['from']; - unset($value['from']); - } - - if (array_key_exists('to', $value)) { - $this->_usedProperties['to'] = true; - $this->to = $value['to']; - unset($value['to']); - } - - if (array_key_exists('metadata', $value)) { - $this->_usedProperties['metadata'] = true; - $this->metadata = $value['metadata']; - unset($value['metadata']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - if (isset($this->_usedProperties['guard'])) { - $output['guard'] = $this->guard; - } - if (isset($this->_usedProperties['from'])) { - $output['from'] = $this->from; - } - if (isset($this->_usedProperties['to'])) { - $output['to'] = $this->to; - } - if (isset($this->_usedProperties['metadata'])) { - $output['metadata'] = $this->metadata; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WorkflowsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WorkflowsConfig.php deleted file mode 100644 index 4c359e6..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Framework/WorkflowsConfig.php +++ /dev/null @@ -1,89 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Framework\Workflows\WorkflowsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\Workflows\WorkflowsConfig : static) - */ - public function workflows(string $name, mixed $value = []): \Symfony\Config\Framework\Workflows\WorkflowsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['workflows'] = true; - $this->workflows[$name] = $value; - - return $this; - } - - if (!isset($this->workflows[$name]) || !$this->workflows[$name] instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig) { - $this->_usedProperties['workflows'] = true; - $this->workflows[$name] = new \Symfony\Config\Framework\Workflows\WorkflowsConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "workflows()" has already been initialized. You cannot pass values the second time you call workflows().'); - } - - return $this->workflows[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('workflows', $value)) { - $this->_usedProperties['workflows'] = true; - $this->workflows = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\Workflows\WorkflowsConfig($v) : $v, $value['workflows']); - unset($value['workflows']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['workflows'])) { - $output['workflows'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\Workflows\WorkflowsConfig ? $v->toArray() : $v, $this->workflows); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/FrameworkConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/FrameworkConfig.php deleted file mode 100644 index 839c50c..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/FrameworkConfig.php +++ /dev/null @@ -1,1662 +0,0 @@ -_usedProperties['secret'] = true; - $this->secret = $value; - - return $this; - } - - /** - * Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. Note: When using the HttpCache, you need to call the method in your front controller instead - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function httpMethodOverride($value): static - { - $this->_usedProperties['httpMethodOverride'] = true; - $this->httpMethodOverride = $value; - - return $this; - } - - /** - * Set true to enable support for xsendfile in binary file responses. - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function trustXSendfileTypeHeader($value): static - { - $this->_usedProperties['trustXSendfileTypeHeader'] = true; - $this->trustXSendfileTypeHeader = $value; - - return $this; - } - - /** - * @default '%env(default::SYMFONY_IDE)%' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function ide($value): static - { - $this->_usedProperties['ide'] = true; - $this->ide = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function test($value): static - { - $this->_usedProperties['test'] = true; - $this->test = $value; - - return $this; - } - - /** - * @default 'en' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultLocale($value): static - { - $this->_usedProperties['defaultLocale'] = true; - $this->defaultLocale = $value; - - return $this; - } - - /** - * Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function setLocaleFromAcceptLanguage($value): static - { - $this->_usedProperties['setLocaleFromAcceptLanguage'] = true; - $this->setLocaleFromAcceptLanguage = $value; - - return $this; - } - - /** - * Whether to set the Content-Language HTTP header on the Response using the Request locale. - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function setContentLanguageFromLocale($value): static - { - $this->_usedProperties['setContentLanguageFromLocale'] = true; - $this->setContentLanguageFromLocale = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function enabledLocales(ParamConfigurator|array $value): static - { - $this->_usedProperties['enabledLocales'] = true; - $this->enabledLocales = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function trustedHosts(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['trustedHosts'] = true; - $this->trustedHosts = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function trustedProxies($value): static - { - $this->_usedProperties['trustedProxies'] = true; - $this->trustedProxies = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function trustedHeaders(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['trustedHeaders'] = true; - $this->trustedHeaders = $value; - - return $this; - } - - /** - * @default 'error_controller' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function errorController($value): static - { - $this->_usedProperties['errorController'] = true; - $this->errorController = $value; - - return $this; - } - - /** - * HttpKernel will handle all kinds of \Throwable - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function handleAllThrowables($value): static - { - $this->_usedProperties['handleAllThrowables'] = true; - $this->handleAllThrowables = $value; - - return $this; - } - - /** - * @default {"enabled":null} - */ - public function csrfProtection(array $value = []): \Symfony\Config\Framework\CsrfProtectionConfig - { - if (null === $this->csrfProtection) { - $this->_usedProperties['csrfProtection'] = true; - $this->csrfProtection = new \Symfony\Config\Framework\CsrfProtectionConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "csrfProtection()" has already been initialized. You cannot pass values the second time you call csrfProtection().'); - } - - return $this->csrfProtection; - } - - /** - * @template TValue - * @param TValue $value - * form configuration - * @default {"enabled":false,"csrf_protection":{"enabled":null,"field_name":"_token"}} - * @return \Symfony\Config\Framework\FormConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\FormConfig : static) - */ - public function form(array $value = []): \Symfony\Config\Framework\FormConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['form'] = true; - $this->form = $value; - - return $this; - } - - if (!$this->form instanceof \Symfony\Config\Framework\FormConfig) { - $this->_usedProperties['form'] = true; - $this->form = new \Symfony\Config\Framework\FormConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "form()" has already been initialized. You cannot pass values the second time you call form().'); - } - - return $this->form; - } - - /** - * @template TValue - * @param TValue $value - * HTTP cache configuration - * @default {"enabled":false,"debug":"%kernel.debug%","private_headers":[],"skip_response_headers":[]} - * @return \Symfony\Config\Framework\HttpCacheConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpCacheConfig : static) - */ - public function httpCache(array $value = []): \Symfony\Config\Framework\HttpCacheConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['httpCache'] = true; - $this->httpCache = $value; - - return $this; - } - - if (!$this->httpCache instanceof \Symfony\Config\Framework\HttpCacheConfig) { - $this->_usedProperties['httpCache'] = true; - $this->httpCache = new \Symfony\Config\Framework\HttpCacheConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpCache()" has already been initialized. You cannot pass values the second time you call httpCache().'); - } - - return $this->httpCache; - } - - /** - * @template TValue - * @param TValue $value - * esi configuration - * @default {"enabled":false} - * @return \Symfony\Config\Framework\EsiConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\EsiConfig : static) - */ - public function esi(array $value = []): \Symfony\Config\Framework\EsiConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['esi'] = true; - $this->esi = $value; - - return $this; - } - - if (!$this->esi instanceof \Symfony\Config\Framework\EsiConfig) { - $this->_usedProperties['esi'] = true; - $this->esi = new \Symfony\Config\Framework\EsiConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "esi()" has already been initialized. You cannot pass values the second time you call esi().'); - } - - return $this->esi; - } - - /** - * @template TValue - * @param TValue $value - * ssi configuration - * @default {"enabled":false} - * @return \Symfony\Config\Framework\SsiConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\SsiConfig : static) - */ - public function ssi(array $value = []): \Symfony\Config\Framework\SsiConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['ssi'] = true; - $this->ssi = $value; - - return $this; - } - - if (!$this->ssi instanceof \Symfony\Config\Framework\SsiConfig) { - $this->_usedProperties['ssi'] = true; - $this->ssi = new \Symfony\Config\Framework\SsiConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "ssi()" has already been initialized. You cannot pass values the second time you call ssi().'); - } - - return $this->ssi; - } - - /** - * @template TValue - * @param TValue $value - * fragments configuration - * @default {"enabled":false,"hinclude_default_template":null,"path":"\/_fragment"} - * @return \Symfony\Config\Framework\FragmentsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\FragmentsConfig : static) - */ - public function fragments(array $value = []): \Symfony\Config\Framework\FragmentsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['fragments'] = true; - $this->fragments = $value; - - return $this; - } - - if (!$this->fragments instanceof \Symfony\Config\Framework\FragmentsConfig) { - $this->_usedProperties['fragments'] = true; - $this->fragments = new \Symfony\Config\Framework\FragmentsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "fragments()" has already been initialized. You cannot pass values the second time you call fragments().'); - } - - return $this->fragments; - } - - /** - * @template TValue - * @param TValue $value - * profiler configuration - * @default {"enabled":false,"collect":true,"collect_parameter":null,"only_exceptions":false,"only_main_requests":false,"dsn":"file:%kernel.cache_dir%\/profiler","collect_serializer_data":false} - * @return \Symfony\Config\Framework\ProfilerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\ProfilerConfig : static) - */ - public function profiler(array $value = []): \Symfony\Config\Framework\ProfilerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['profiler'] = true; - $this->profiler = $value; - - return $this; - } - - if (!$this->profiler instanceof \Symfony\Config\Framework\ProfilerConfig) { - $this->_usedProperties['profiler'] = true; - $this->profiler = new \Symfony\Config\Framework\ProfilerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "profiler()" has already been initialized. You cannot pass values the second time you call profiler().'); - } - - return $this->profiler; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":false,"workflows":[]} - * @return \Symfony\Config\Framework\WorkflowsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\WorkflowsConfig : static) - */ - public function workflows(mixed $value = []): \Symfony\Config\Framework\WorkflowsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['workflows'] = true; - $this->workflows = $value; - - return $this; - } - - if (!$this->workflows instanceof \Symfony\Config\Framework\WorkflowsConfig) { - $this->_usedProperties['workflows'] = true; - $this->workflows = new \Symfony\Config\Framework\WorkflowsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "workflows()" has already been initialized. You cannot pass values the second time you call workflows().'); - } - - return $this->workflows; - } - - /** - * @template TValue - * @param TValue $value - * router configuration - * @default {"enabled":false,"cache_dir":"%kernel.cache_dir%","default_uri":null,"http_port":80,"https_port":443,"strict_requirements":true,"utf8":true} - * @return \Symfony\Config\Framework\RouterConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\RouterConfig : static) - */ - public function router(array $value = []): \Symfony\Config\Framework\RouterConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['router'] = true; - $this->router = $value; - - return $this; - } - - if (!$this->router instanceof \Symfony\Config\Framework\RouterConfig) { - $this->_usedProperties['router'] = true; - $this->router = new \Symfony\Config\Framework\RouterConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "router()" has already been initialized. You cannot pass values the second time you call router().'); - } - - return $this->router; - } - - /** - * @template TValue - * @param TValue $value - * session configuration - * @default {"enabled":false,"storage_factory_id":"session.storage.factory.native","cookie_httponly":true,"gc_probability":1,"metadata_update_threshold":0} - * @return \Symfony\Config\Framework\SessionConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\SessionConfig : static) - */ - public function session(array $value = []): \Symfony\Config\Framework\SessionConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['session'] = true; - $this->session = $value; - - return $this; - } - - if (!$this->session instanceof \Symfony\Config\Framework\SessionConfig) { - $this->_usedProperties['session'] = true; - $this->session = new \Symfony\Config\Framework\SessionConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "session()" has already been initialized. You cannot pass values the second time you call session().'); - } - - return $this->session; - } - - /** - * @template TValue - * @param TValue $value - * request configuration - * @default {"enabled":false,"formats":[]} - * @return \Symfony\Config\Framework\RequestConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\RequestConfig : static) - */ - public function request(array $value = []): \Symfony\Config\Framework\RequestConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['request'] = true; - $this->request = $value; - - return $this; - } - - if (!$this->request instanceof \Symfony\Config\Framework\RequestConfig) { - $this->_usedProperties['request'] = true; - $this->request = new \Symfony\Config\Framework\RequestConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "request()" has already been initialized. You cannot pass values the second time you call request().'); - } - - return $this->request; - } - - /** - * @template TValue - * @param TValue $value - * assets configuration - * @default {"enabled":false,"strict_mode":false,"version_strategy":null,"version":null,"version_format":"%%s?%%s","json_manifest_path":null,"base_path":"","base_urls":[],"packages":[]} - * @return \Symfony\Config\Framework\AssetsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\AssetsConfig : static) - */ - public function assets(array $value = []): \Symfony\Config\Framework\AssetsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['assets'] = true; - $this->assets = $value; - - return $this; - } - - if (!$this->assets instanceof \Symfony\Config\Framework\AssetsConfig) { - $this->_usedProperties['assets'] = true; - $this->assets = new \Symfony\Config\Framework\AssetsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "assets()" has already been initialized. You cannot pass values the second time you call assets().'); - } - - return $this->assets; - } - - /** - * @template TValue - * @param TValue $value - * Asset Mapper configuration - * @default {"enabled":false,"paths":[],"excluded_patterns":[],"exclude_dotfiles":true,"server":true,"public_prefix":"\/assets\/","missing_import_mode":"warn","extensions":[],"importmap_path":"%kernel.project_dir%\/importmap.php","importmap_polyfill":"es-module-shims","importmap_script_attributes":[],"vendor_dir":"%kernel.project_dir%\/assets\/vendor"} - * @return \Symfony\Config\Framework\AssetMapperConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\AssetMapperConfig : static) - */ - public function assetMapper(array $value = []): \Symfony\Config\Framework\AssetMapperConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['assetMapper'] = true; - $this->assetMapper = $value; - - return $this; - } - - if (!$this->assetMapper instanceof \Symfony\Config\Framework\AssetMapperConfig) { - $this->_usedProperties['assetMapper'] = true; - $this->assetMapper = new \Symfony\Config\Framework\AssetMapperConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "assetMapper()" has already been initialized. You cannot pass values the second time you call assetMapper().'); - } - - return $this->assetMapper; - } - - /** - * @template TValue - * @param TValue $value - * translator configuration - * @default {"enabled":false,"fallbacks":[],"logging":false,"formatter":"translator.formatter.default","cache_dir":"%kernel.cache_dir%\/translations","default_path":"%kernel.project_dir%\/translations","paths":[],"pseudo_localization":{"enabled":false,"accents":true,"expansion_factor":1,"brackets":true,"parse_html":false,"localizable_html_attributes":[]},"providers":[]} - * @return \Symfony\Config\Framework\TranslatorConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\TranslatorConfig : static) - */ - public function translator(array $value = []): \Symfony\Config\Framework\TranslatorConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['translator'] = true; - $this->translator = $value; - - return $this; - } - - if (!$this->translator instanceof \Symfony\Config\Framework\TranslatorConfig) { - $this->_usedProperties['translator'] = true; - $this->translator = new \Symfony\Config\Framework\TranslatorConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "translator()" has already been initialized. You cannot pass values the second time you call translator().'); - } - - return $this->translator; - } - - /** - * @template TValue - * @param TValue $value - * validation configuration - * @default {"enabled":false,"enable_attributes":true,"static_method":["loadValidatorMetadata"],"translation_domain":"validators","mapping":{"paths":[]},"not_compromised_password":{"enabled":true,"endpoint":null},"auto_mapping":[]} - * @return \Symfony\Config\Framework\ValidationConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\ValidationConfig : static) - */ - public function validation(mixed $value = []): \Symfony\Config\Framework\ValidationConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['validation'] = true; - $this->validation = $value; - - return $this; - } - - if (!$this->validation instanceof \Symfony\Config\Framework\ValidationConfig) { - $this->_usedProperties['validation'] = true; - $this->validation = new \Symfony\Config\Framework\ValidationConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "validation()" has already been initialized. You cannot pass values the second time you call validation().'); - } - - return $this->validation; - } - - /** - * @template TValue - * @param TValue $value - * annotation configuration - * @default {"enabled":false,"cache":"php_array","file_cache_dir":"%kernel.cache_dir%\/annotations","debug":true} - * @return \Symfony\Config\Framework\AnnotationsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\AnnotationsConfig : static) - */ - public function annotations(array $value = []): \Symfony\Config\Framework\AnnotationsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['annotations'] = true; - $this->annotations = $value; - - return $this; - } - - if (!$this->annotations instanceof \Symfony\Config\Framework\AnnotationsConfig) { - $this->_usedProperties['annotations'] = true; - $this->annotations = new \Symfony\Config\Framework\AnnotationsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "annotations()" has already been initialized. You cannot pass values the second time you call annotations().'); - } - - return $this->annotations; - } - - /** - * @template TValue - * @param TValue $value - * serializer configuration - * @default {"enabled":false,"enable_attributes":true,"mapping":{"paths":[]},"default_context":[]} - * @return \Symfony\Config\Framework\SerializerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\SerializerConfig : static) - */ - public function serializer(mixed $value = []): \Symfony\Config\Framework\SerializerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['serializer'] = true; - $this->serializer = $value; - - return $this; - } - - if (!$this->serializer instanceof \Symfony\Config\Framework\SerializerConfig) { - $this->_usedProperties['serializer'] = true; - $this->serializer = new \Symfony\Config\Framework\SerializerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "serializer()" has already been initialized. You cannot pass values the second time you call serializer().'); - } - - return $this->serializer; - } - - /** - * Property access configuration - * @default {"enabled":true,"magic_call":false,"magic_get":true,"magic_set":true,"throw_exception_on_invalid_index":false,"throw_exception_on_invalid_property_path":true} - */ - public function propertyAccess(array $value = []): \Symfony\Config\Framework\PropertyAccessConfig - { - if (null === $this->propertyAccess) { - $this->_usedProperties['propertyAccess'] = true; - $this->propertyAccess = new \Symfony\Config\Framework\PropertyAccessConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "propertyAccess()" has already been initialized. You cannot pass values the second time you call propertyAccess().'); - } - - return $this->propertyAccess; - } - - /** - * Property info configuration - * @default {"enabled":true} - */ - public function propertyInfo(array $value = []): \Symfony\Config\Framework\PropertyInfoConfig - { - if (null === $this->propertyInfo) { - $this->_usedProperties['propertyInfo'] = true; - $this->propertyInfo = new \Symfony\Config\Framework\PropertyInfoConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "propertyInfo()" has already been initialized. You cannot pass values the second time you call propertyInfo().'); - } - - return $this->propertyInfo; - } - - /** - * Cache configuration - * @default {"prefix_seed":"_%kernel.project_dir%.%kernel.container_class%","app":"cache.adapter.filesystem","system":"cache.adapter.system","directory":"%kernel.cache_dir%\/pools\/app","default_redis_provider":"redis:\/\/localhost","default_memcached_provider":"memcached:\/\/localhost","default_doctrine_dbal_provider":"database_connection","default_pdo_provider":null,"pools":[]} - */ - public function cache(array $value = []): \Symfony\Config\Framework\CacheConfig - { - if (null === $this->cache) { - $this->_usedProperties['cache'] = true; - $this->cache = new \Symfony\Config\Framework\CacheConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "cache()" has already been initialized. You cannot pass values the second time you call cache().'); - } - - return $this->cache; - } - - /** - * PHP errors handling configuration - * @default {"throw":true} - */ - public function phpErrors(array $value = []): \Symfony\Config\Framework\PhpErrorsConfig - { - if (null === $this->phpErrors) { - $this->_usedProperties['phpErrors'] = true; - $this->phpErrors = new \Symfony\Config\Framework\PhpErrorsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "phpErrors()" has already been initialized. You cannot pass values the second time you call phpErrors().'); - } - - return $this->phpErrors; - } - - /** - * @template TValue - * @param TValue $value - * Exception handling configuration - * @return \Symfony\Config\Framework\ExceptionConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\ExceptionConfig : static) - */ - public function exception(string $class, array $value = []): \Symfony\Config\Framework\ExceptionConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['exceptions'] = true; - $this->exceptions[$class] = $value; - - return $this; - } - - if (!isset($this->exceptions[$class]) || !$this->exceptions[$class] instanceof \Symfony\Config\Framework\ExceptionConfig) { - $this->_usedProperties['exceptions'] = true; - $this->exceptions[$class] = new \Symfony\Config\Framework\ExceptionConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "exception()" has already been initialized. You cannot pass values the second time you call exception().'); - } - - return $this->exceptions[$class]; - } - - /** - * @template TValue - * @param TValue $value - * web links configuration - * @default {"enabled":false} - * @return \Symfony\Config\Framework\WebLinkConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\WebLinkConfig : static) - */ - public function webLink(array $value = []): \Symfony\Config\Framework\WebLinkConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['webLink'] = true; - $this->webLink = $value; - - return $this; - } - - if (!$this->webLink instanceof \Symfony\Config\Framework\WebLinkConfig) { - $this->_usedProperties['webLink'] = true; - $this->webLink = new \Symfony\Config\Framework\WebLinkConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "webLink()" has already been initialized. You cannot pass values the second time you call webLink().'); - } - - return $this->webLink; - } - - /** - * @template TValue - * @param TValue $value - * Lock configuration - * @default {"enabled":true,"resources":{"default":["semaphore"]}} - * @return \Symfony\Config\Framework\LockConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\LockConfig : static) - */ - public function lock(mixed $value = []): \Symfony\Config\Framework\LockConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['lock'] = true; - $this->lock = $value; - - return $this; - } - - if (!$this->lock instanceof \Symfony\Config\Framework\LockConfig) { - $this->_usedProperties['lock'] = true; - $this->lock = new \Symfony\Config\Framework\LockConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "lock()" has already been initialized. You cannot pass values the second time you call lock().'); - } - - return $this->lock; - } - - /** - * @template TValue - * @param TValue $value - * Semaphore configuration - * @default {"enabled":false,"resources":[]} - * @return \Symfony\Config\Framework\SemaphoreConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\SemaphoreConfig : static) - */ - public function semaphore(mixed $value = []): \Symfony\Config\Framework\SemaphoreConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['semaphore'] = true; - $this->semaphore = $value; - - return $this; - } - - if (!$this->semaphore instanceof \Symfony\Config\Framework\SemaphoreConfig) { - $this->_usedProperties['semaphore'] = true; - $this->semaphore = new \Symfony\Config\Framework\SemaphoreConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "semaphore()" has already been initialized. You cannot pass values the second time you call semaphore().'); - } - - return $this->semaphore; - } - - /** - * Messenger configuration - * @default {"enabled":true,"routing":[],"serializer":{"default_serializer":"messenger.transport.native_php_serializer","symfony_serializer":{"format":"json","context":[]}},"transports":[],"failure_transport":null,"reset_on_message":true,"stop_worker_on_signals":[],"default_bus":null,"buses":{"messenger.bus.default":{"default_middleware":{"enabled":true,"allow_no_handlers":false,"allow_no_senders":true},"middleware":[]}}} - */ - public function messenger(array $value = []): \Symfony\Config\Framework\MessengerConfig - { - if (null === $this->messenger) { - $this->_usedProperties['messenger'] = true; - $this->messenger = new \Symfony\Config\Framework\MessengerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "messenger()" has already been initialized. You cannot pass values the second time you call messenger().'); - } - - return $this->messenger; - } - - /** - * @template TValue - * @param TValue $value - * Scheduler configuration - * @default {"enabled":false} - * @return \Symfony\Config\Framework\SchedulerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\SchedulerConfig : static) - */ - public function scheduler(array $value = []): \Symfony\Config\Framework\SchedulerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['scheduler'] = true; - $this->scheduler = $value; - - return $this; - } - - if (!$this->scheduler instanceof \Symfony\Config\Framework\SchedulerConfig) { - $this->_usedProperties['scheduler'] = true; - $this->scheduler = new \Symfony\Config\Framework\SchedulerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "scheduler()" has already been initialized. You cannot pass values the second time you call scheduler().'); - } - - return $this->scheduler; - } - - /** - * Enabled by default when debug is enabled. - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function disallowSearchEngineIndex($value): static - { - $this->_usedProperties['disallowSearchEngineIndex'] = true; - $this->disallowSearchEngineIndex = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * HTTP Client configuration - * @default {"enabled":true,"scoped_clients":[]} - * @return \Symfony\Config\Framework\HttpClientConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HttpClientConfig : static) - */ - public function httpClient(mixed $value = []): \Symfony\Config\Framework\HttpClientConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['httpClient'] = true; - $this->httpClient = $value; - - return $this; - } - - if (!$this->httpClient instanceof \Symfony\Config\Framework\HttpClientConfig) { - $this->_usedProperties['httpClient'] = true; - $this->httpClient = new \Symfony\Config\Framework\HttpClientConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpClient()" has already been initialized. You cannot pass values the second time you call httpClient().'); - } - - return $this->httpClient; - } - - /** - * @template TValue - * @param TValue $value - * Mailer configuration - * @default {"enabled":false,"message_bus":null,"dsn":null,"transports":[],"headers":[]} - * @return \Symfony\Config\Framework\MailerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\MailerConfig : static) - */ - public function mailer(array $value = []): \Symfony\Config\Framework\MailerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['mailer'] = true; - $this->mailer = $value; - - return $this; - } - - if (!$this->mailer instanceof \Symfony\Config\Framework\MailerConfig) { - $this->_usedProperties['mailer'] = true; - $this->mailer = new \Symfony\Config\Framework\MailerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "mailer()" has already been initialized. You cannot pass values the second time you call mailer().'); - } - - return $this->mailer; - } - - /** - * @default {"enabled":true,"vault_directory":"%kernel.project_dir%\/config\/secrets\/%kernel.runtime_environment%","local_dotenv_file":"%kernel.project_dir%\/.env.%kernel.environment%.local","decryption_env_var":"base64:default::SYMFONY_DECRYPTION_SECRET"} - */ - public function secrets(array $value = []): \Symfony\Config\Framework\SecretsConfig - { - if (null === $this->secrets) { - $this->_usedProperties['secrets'] = true; - $this->secrets = new \Symfony\Config\Framework\SecretsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "secrets()" has already been initialized. You cannot pass values the second time you call secrets().'); - } - - return $this->secrets; - } - - /** - * @template TValue - * @param TValue $value - * Notifier configuration - * @default {"enabled":false,"message_bus":null,"chatter_transports":[],"texter_transports":[],"notification_on_failed_messages":false,"channel_policy":[],"admin_recipients":[]} - * @return \Symfony\Config\Framework\NotifierConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\NotifierConfig : static) - */ - public function notifier(array $value = []): \Symfony\Config\Framework\NotifierConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['notifier'] = true; - $this->notifier = $value; - - return $this; - } - - if (!$this->notifier instanceof \Symfony\Config\Framework\NotifierConfig) { - $this->_usedProperties['notifier'] = true; - $this->notifier = new \Symfony\Config\Framework\NotifierConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "notifier()" has already been initialized. You cannot pass values the second time you call notifier().'); - } - - return $this->notifier; - } - - /** - * @template TValue - * @param TValue $value - * Rate limiter configuration - * @default {"enabled":true,"limiters":[]} - * @return \Symfony\Config\Framework\RateLimiterConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\RateLimiterConfig : static) - */ - public function rateLimiter(mixed $value = []): \Symfony\Config\Framework\RateLimiterConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['rateLimiter'] = true; - $this->rateLimiter = $value; - - return $this; - } - - if (!$this->rateLimiter instanceof \Symfony\Config\Framework\RateLimiterConfig) { - $this->_usedProperties['rateLimiter'] = true; - $this->rateLimiter = new \Symfony\Config\Framework\RateLimiterConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "rateLimiter()" has already been initialized. You cannot pass values the second time you call rateLimiter().'); - } - - return $this->rateLimiter; - } - - /** - * Uid configuration - * @default {"enabled":true,"name_based_uuid_version":5} - */ - public function uid(array $value = []): \Symfony\Config\Framework\UidConfig - { - if (null === $this->uid) { - $this->_usedProperties['uid'] = true; - $this->uid = new \Symfony\Config\Framework\UidConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "uid()" has already been initialized. You cannot pass values the second time you call uid().'); - } - - return $this->uid; - } - - /** - * @template TValue - * @param TValue $value - * HtmlSanitizer configuration - * @default {"enabled":false,"sanitizers":[]} - * @return \Symfony\Config\Framework\HtmlSanitizerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\HtmlSanitizerConfig : static) - */ - public function htmlSanitizer(array $value = []): \Symfony\Config\Framework\HtmlSanitizerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['htmlSanitizer'] = true; - $this->htmlSanitizer = $value; - - return $this; - } - - if (!$this->htmlSanitizer instanceof \Symfony\Config\Framework\HtmlSanitizerConfig) { - $this->_usedProperties['htmlSanitizer'] = true; - $this->htmlSanitizer = new \Symfony\Config\Framework\HtmlSanitizerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "htmlSanitizer()" has already been initialized. You cannot pass values the second time you call htmlSanitizer().'); - } - - return $this->htmlSanitizer; - } - - /** - * @template TValue - * @param TValue $value - * Webhook configuration - * @default {"enabled":false,"message_bus":"messenger.default_bus","routing":[]} - * @return \Symfony\Config\Framework\WebhookConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\WebhookConfig : static) - */ - public function webhook(array $value = []): \Symfony\Config\Framework\WebhookConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['webhook'] = true; - $this->webhook = $value; - - return $this; - } - - if (!$this->webhook instanceof \Symfony\Config\Framework\WebhookConfig) { - $this->_usedProperties['webhook'] = true; - $this->webhook = new \Symfony\Config\Framework\WebhookConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "webhook()" has already been initialized. You cannot pass values the second time you call webhook().'); - } - - return $this->webhook; - } - - /** - * @template TValue - * @param TValue $value - * RemoteEvent configuration - * @default {"enabled":false} - * @return \Symfony\Config\Framework\RemoteeventConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Framework\RemoteeventConfig : static) - */ - public function remoteevent(array $value = []): \Symfony\Config\Framework\RemoteeventConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['remoteevent'] = true; - $this->remoteevent = $value; - - return $this; - } - - if (!$this->remoteevent instanceof \Symfony\Config\Framework\RemoteeventConfig) { - $this->_usedProperties['remoteevent'] = true; - $this->remoteevent = new \Symfony\Config\Framework\RemoteeventConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "remoteevent()" has already been initialized. You cannot pass values the second time you call remoteevent().'); - } - - return $this->remoteevent; - } - - public function getExtensionAlias(): string - { - return 'framework'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('secret', $value)) { - $this->_usedProperties['secret'] = true; - $this->secret = $value['secret']; - unset($value['secret']); - } - - if (array_key_exists('http_method_override', $value)) { - $this->_usedProperties['httpMethodOverride'] = true; - $this->httpMethodOverride = $value['http_method_override']; - unset($value['http_method_override']); - } - - if (array_key_exists('trust_x_sendfile_type_header', $value)) { - $this->_usedProperties['trustXSendfileTypeHeader'] = true; - $this->trustXSendfileTypeHeader = $value['trust_x_sendfile_type_header']; - unset($value['trust_x_sendfile_type_header']); - } - - if (array_key_exists('ide', $value)) { - $this->_usedProperties['ide'] = true; - $this->ide = $value['ide']; - unset($value['ide']); - } - - if (array_key_exists('test', $value)) { - $this->_usedProperties['test'] = true; - $this->test = $value['test']; - unset($value['test']); - } - - if (array_key_exists('default_locale', $value)) { - $this->_usedProperties['defaultLocale'] = true; - $this->defaultLocale = $value['default_locale']; - unset($value['default_locale']); - } - - if (array_key_exists('set_locale_from_accept_language', $value)) { - $this->_usedProperties['setLocaleFromAcceptLanguage'] = true; - $this->setLocaleFromAcceptLanguage = $value['set_locale_from_accept_language']; - unset($value['set_locale_from_accept_language']); - } - - if (array_key_exists('set_content_language_from_locale', $value)) { - $this->_usedProperties['setContentLanguageFromLocale'] = true; - $this->setContentLanguageFromLocale = $value['set_content_language_from_locale']; - unset($value['set_content_language_from_locale']); - } - - if (array_key_exists('enabled_locales', $value)) { - $this->_usedProperties['enabledLocales'] = true; - $this->enabledLocales = $value['enabled_locales']; - unset($value['enabled_locales']); - } - - if (array_key_exists('trusted_hosts', $value)) { - $this->_usedProperties['trustedHosts'] = true; - $this->trustedHosts = $value['trusted_hosts']; - unset($value['trusted_hosts']); - } - - if (array_key_exists('trusted_proxies', $value)) { - $this->_usedProperties['trustedProxies'] = true; - $this->trustedProxies = $value['trusted_proxies']; - unset($value['trusted_proxies']); - } - - if (array_key_exists('trusted_headers', $value)) { - $this->_usedProperties['trustedHeaders'] = true; - $this->trustedHeaders = $value['trusted_headers']; - unset($value['trusted_headers']); - } - - if (array_key_exists('error_controller', $value)) { - $this->_usedProperties['errorController'] = true; - $this->errorController = $value['error_controller']; - unset($value['error_controller']); - } - - if (array_key_exists('handle_all_throwables', $value)) { - $this->_usedProperties['handleAllThrowables'] = true; - $this->handleAllThrowables = $value['handle_all_throwables']; - unset($value['handle_all_throwables']); - } - - if (array_key_exists('csrf_protection', $value)) { - $this->_usedProperties['csrfProtection'] = true; - $this->csrfProtection = new \Symfony\Config\Framework\CsrfProtectionConfig($value['csrf_protection']); - unset($value['csrf_protection']); - } - - if (array_key_exists('form', $value)) { - $this->_usedProperties['form'] = true; - $this->form = \is_array($value['form']) ? new \Symfony\Config\Framework\FormConfig($value['form']) : $value['form']; - unset($value['form']); - } - - if (array_key_exists('http_cache', $value)) { - $this->_usedProperties['httpCache'] = true; - $this->httpCache = \is_array($value['http_cache']) ? new \Symfony\Config\Framework\HttpCacheConfig($value['http_cache']) : $value['http_cache']; - unset($value['http_cache']); - } - - if (array_key_exists('esi', $value)) { - $this->_usedProperties['esi'] = true; - $this->esi = \is_array($value['esi']) ? new \Symfony\Config\Framework\EsiConfig($value['esi']) : $value['esi']; - unset($value['esi']); - } - - if (array_key_exists('ssi', $value)) { - $this->_usedProperties['ssi'] = true; - $this->ssi = \is_array($value['ssi']) ? new \Symfony\Config\Framework\SsiConfig($value['ssi']) : $value['ssi']; - unset($value['ssi']); - } - - if (array_key_exists('fragments', $value)) { - $this->_usedProperties['fragments'] = true; - $this->fragments = \is_array($value['fragments']) ? new \Symfony\Config\Framework\FragmentsConfig($value['fragments']) : $value['fragments']; - unset($value['fragments']); - } - - if (array_key_exists('profiler', $value)) { - $this->_usedProperties['profiler'] = true; - $this->profiler = \is_array($value['profiler']) ? new \Symfony\Config\Framework\ProfilerConfig($value['profiler']) : $value['profiler']; - unset($value['profiler']); - } - - if (array_key_exists('workflows', $value)) { - $this->_usedProperties['workflows'] = true; - $this->workflows = \is_array($value['workflows']) ? new \Symfony\Config\Framework\WorkflowsConfig($value['workflows']) : $value['workflows']; - unset($value['workflows']); - } - - if (array_key_exists('router', $value)) { - $this->_usedProperties['router'] = true; - $this->router = \is_array($value['router']) ? new \Symfony\Config\Framework\RouterConfig($value['router']) : $value['router']; - unset($value['router']); - } - - if (array_key_exists('session', $value)) { - $this->_usedProperties['session'] = true; - $this->session = \is_array($value['session']) ? new \Symfony\Config\Framework\SessionConfig($value['session']) : $value['session']; - unset($value['session']); - } - - if (array_key_exists('request', $value)) { - $this->_usedProperties['request'] = true; - $this->request = \is_array($value['request']) ? new \Symfony\Config\Framework\RequestConfig($value['request']) : $value['request']; - unset($value['request']); - } - - if (array_key_exists('assets', $value)) { - $this->_usedProperties['assets'] = true; - $this->assets = \is_array($value['assets']) ? new \Symfony\Config\Framework\AssetsConfig($value['assets']) : $value['assets']; - unset($value['assets']); - } - - if (array_key_exists('asset_mapper', $value)) { - $this->_usedProperties['assetMapper'] = true; - $this->assetMapper = \is_array($value['asset_mapper']) ? new \Symfony\Config\Framework\AssetMapperConfig($value['asset_mapper']) : $value['asset_mapper']; - unset($value['asset_mapper']); - } - - if (array_key_exists('translator', $value)) { - $this->_usedProperties['translator'] = true; - $this->translator = \is_array($value['translator']) ? new \Symfony\Config\Framework\TranslatorConfig($value['translator']) : $value['translator']; - unset($value['translator']); - } - - if (array_key_exists('validation', $value)) { - $this->_usedProperties['validation'] = true; - $this->validation = \is_array($value['validation']) ? new \Symfony\Config\Framework\ValidationConfig($value['validation']) : $value['validation']; - unset($value['validation']); - } - - if (array_key_exists('annotations', $value)) { - $this->_usedProperties['annotations'] = true; - $this->annotations = \is_array($value['annotations']) ? new \Symfony\Config\Framework\AnnotationsConfig($value['annotations']) : $value['annotations']; - unset($value['annotations']); - } - - if (array_key_exists('serializer', $value)) { - $this->_usedProperties['serializer'] = true; - $this->serializer = \is_array($value['serializer']) ? new \Symfony\Config\Framework\SerializerConfig($value['serializer']) : $value['serializer']; - unset($value['serializer']); - } - - if (array_key_exists('property_access', $value)) { - $this->_usedProperties['propertyAccess'] = true; - $this->propertyAccess = new \Symfony\Config\Framework\PropertyAccessConfig($value['property_access']); - unset($value['property_access']); - } - - if (array_key_exists('property_info', $value)) { - $this->_usedProperties['propertyInfo'] = true; - $this->propertyInfo = new \Symfony\Config\Framework\PropertyInfoConfig($value['property_info']); - unset($value['property_info']); - } - - if (array_key_exists('cache', $value)) { - $this->_usedProperties['cache'] = true; - $this->cache = new \Symfony\Config\Framework\CacheConfig($value['cache']); - unset($value['cache']); - } - - if (array_key_exists('php_errors', $value)) { - $this->_usedProperties['phpErrors'] = true; - $this->phpErrors = new \Symfony\Config\Framework\PhpErrorsConfig($value['php_errors']); - unset($value['php_errors']); - } - - if (array_key_exists('exceptions', $value)) { - $this->_usedProperties['exceptions'] = true; - $this->exceptions = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Framework\ExceptionConfig($v) : $v, $value['exceptions']); - unset($value['exceptions']); - } - - if (array_key_exists('web_link', $value)) { - $this->_usedProperties['webLink'] = true; - $this->webLink = \is_array($value['web_link']) ? new \Symfony\Config\Framework\WebLinkConfig($value['web_link']) : $value['web_link']; - unset($value['web_link']); - } - - if (array_key_exists('lock', $value)) { - $this->_usedProperties['lock'] = true; - $this->lock = \is_array($value['lock']) ? new \Symfony\Config\Framework\LockConfig($value['lock']) : $value['lock']; - unset($value['lock']); - } - - if (array_key_exists('semaphore', $value)) { - $this->_usedProperties['semaphore'] = true; - $this->semaphore = \is_array($value['semaphore']) ? new \Symfony\Config\Framework\SemaphoreConfig($value['semaphore']) : $value['semaphore']; - unset($value['semaphore']); - } - - if (array_key_exists('messenger', $value)) { - $this->_usedProperties['messenger'] = true; - $this->messenger = new \Symfony\Config\Framework\MessengerConfig($value['messenger']); - unset($value['messenger']); - } - - if (array_key_exists('scheduler', $value)) { - $this->_usedProperties['scheduler'] = true; - $this->scheduler = \is_array($value['scheduler']) ? new \Symfony\Config\Framework\SchedulerConfig($value['scheduler']) : $value['scheduler']; - unset($value['scheduler']); - } - - if (array_key_exists('disallow_search_engine_index', $value)) { - $this->_usedProperties['disallowSearchEngineIndex'] = true; - $this->disallowSearchEngineIndex = $value['disallow_search_engine_index']; - unset($value['disallow_search_engine_index']); - } - - if (array_key_exists('http_client', $value)) { - $this->_usedProperties['httpClient'] = true; - $this->httpClient = \is_array($value['http_client']) ? new \Symfony\Config\Framework\HttpClientConfig($value['http_client']) : $value['http_client']; - unset($value['http_client']); - } - - if (array_key_exists('mailer', $value)) { - $this->_usedProperties['mailer'] = true; - $this->mailer = \is_array($value['mailer']) ? new \Symfony\Config\Framework\MailerConfig($value['mailer']) : $value['mailer']; - unset($value['mailer']); - } - - if (array_key_exists('secrets', $value)) { - $this->_usedProperties['secrets'] = true; - $this->secrets = new \Symfony\Config\Framework\SecretsConfig($value['secrets']); - unset($value['secrets']); - } - - if (array_key_exists('notifier', $value)) { - $this->_usedProperties['notifier'] = true; - $this->notifier = \is_array($value['notifier']) ? new \Symfony\Config\Framework\NotifierConfig($value['notifier']) : $value['notifier']; - unset($value['notifier']); - } - - if (array_key_exists('rate_limiter', $value)) { - $this->_usedProperties['rateLimiter'] = true; - $this->rateLimiter = \is_array($value['rate_limiter']) ? new \Symfony\Config\Framework\RateLimiterConfig($value['rate_limiter']) : $value['rate_limiter']; - unset($value['rate_limiter']); - } - - if (array_key_exists('uid', $value)) { - $this->_usedProperties['uid'] = true; - $this->uid = new \Symfony\Config\Framework\UidConfig($value['uid']); - unset($value['uid']); - } - - if (array_key_exists('html_sanitizer', $value)) { - $this->_usedProperties['htmlSanitizer'] = true; - $this->htmlSanitizer = \is_array($value['html_sanitizer']) ? new \Symfony\Config\Framework\HtmlSanitizerConfig($value['html_sanitizer']) : $value['html_sanitizer']; - unset($value['html_sanitizer']); - } - - if (array_key_exists('webhook', $value)) { - $this->_usedProperties['webhook'] = true; - $this->webhook = \is_array($value['webhook']) ? new \Symfony\Config\Framework\WebhookConfig($value['webhook']) : $value['webhook']; - unset($value['webhook']); - } - - if (array_key_exists('remote-event', $value)) { - $this->_usedProperties['remoteevent'] = true; - $this->remoteevent = \is_array($value['remote-event']) ? new \Symfony\Config\Framework\RemoteeventConfig($value['remote-event']) : $value['remote-event']; - unset($value['remote-event']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['secret'])) { - $output['secret'] = $this->secret; - } - if (isset($this->_usedProperties['httpMethodOverride'])) { - $output['http_method_override'] = $this->httpMethodOverride; - } - if (isset($this->_usedProperties['trustXSendfileTypeHeader'])) { - $output['trust_x_sendfile_type_header'] = $this->trustXSendfileTypeHeader; - } - if (isset($this->_usedProperties['ide'])) { - $output['ide'] = $this->ide; - } - if (isset($this->_usedProperties['test'])) { - $output['test'] = $this->test; - } - if (isset($this->_usedProperties['defaultLocale'])) { - $output['default_locale'] = $this->defaultLocale; - } - if (isset($this->_usedProperties['setLocaleFromAcceptLanguage'])) { - $output['set_locale_from_accept_language'] = $this->setLocaleFromAcceptLanguage; - } - if (isset($this->_usedProperties['setContentLanguageFromLocale'])) { - $output['set_content_language_from_locale'] = $this->setContentLanguageFromLocale; - } - if (isset($this->_usedProperties['enabledLocales'])) { - $output['enabled_locales'] = $this->enabledLocales; - } - if (isset($this->_usedProperties['trustedHosts'])) { - $output['trusted_hosts'] = $this->trustedHosts; - } - if (isset($this->_usedProperties['trustedProxies'])) { - $output['trusted_proxies'] = $this->trustedProxies; - } - if (isset($this->_usedProperties['trustedHeaders'])) { - $output['trusted_headers'] = $this->trustedHeaders; - } - if (isset($this->_usedProperties['errorController'])) { - $output['error_controller'] = $this->errorController; - } - if (isset($this->_usedProperties['handleAllThrowables'])) { - $output['handle_all_throwables'] = $this->handleAllThrowables; - } - if (isset($this->_usedProperties['csrfProtection'])) { - $output['csrf_protection'] = $this->csrfProtection->toArray(); - } - if (isset($this->_usedProperties['form'])) { - $output['form'] = $this->form instanceof \Symfony\Config\Framework\FormConfig ? $this->form->toArray() : $this->form; - } - if (isset($this->_usedProperties['httpCache'])) { - $output['http_cache'] = $this->httpCache instanceof \Symfony\Config\Framework\HttpCacheConfig ? $this->httpCache->toArray() : $this->httpCache; - } - if (isset($this->_usedProperties['esi'])) { - $output['esi'] = $this->esi instanceof \Symfony\Config\Framework\EsiConfig ? $this->esi->toArray() : $this->esi; - } - if (isset($this->_usedProperties['ssi'])) { - $output['ssi'] = $this->ssi instanceof \Symfony\Config\Framework\SsiConfig ? $this->ssi->toArray() : $this->ssi; - } - if (isset($this->_usedProperties['fragments'])) { - $output['fragments'] = $this->fragments instanceof \Symfony\Config\Framework\FragmentsConfig ? $this->fragments->toArray() : $this->fragments; - } - if (isset($this->_usedProperties['profiler'])) { - $output['profiler'] = $this->profiler instanceof \Symfony\Config\Framework\ProfilerConfig ? $this->profiler->toArray() : $this->profiler; - } - if (isset($this->_usedProperties['workflows'])) { - $output['workflows'] = $this->workflows instanceof \Symfony\Config\Framework\WorkflowsConfig ? $this->workflows->toArray() : $this->workflows; - } - if (isset($this->_usedProperties['router'])) { - $output['router'] = $this->router instanceof \Symfony\Config\Framework\RouterConfig ? $this->router->toArray() : $this->router; - } - if (isset($this->_usedProperties['session'])) { - $output['session'] = $this->session instanceof \Symfony\Config\Framework\SessionConfig ? $this->session->toArray() : $this->session; - } - if (isset($this->_usedProperties['request'])) { - $output['request'] = $this->request instanceof \Symfony\Config\Framework\RequestConfig ? $this->request->toArray() : $this->request; - } - if (isset($this->_usedProperties['assets'])) { - $output['assets'] = $this->assets instanceof \Symfony\Config\Framework\AssetsConfig ? $this->assets->toArray() : $this->assets; - } - if (isset($this->_usedProperties['assetMapper'])) { - $output['asset_mapper'] = $this->assetMapper instanceof \Symfony\Config\Framework\AssetMapperConfig ? $this->assetMapper->toArray() : $this->assetMapper; - } - if (isset($this->_usedProperties['translator'])) { - $output['translator'] = $this->translator instanceof \Symfony\Config\Framework\TranslatorConfig ? $this->translator->toArray() : $this->translator; - } - if (isset($this->_usedProperties['validation'])) { - $output['validation'] = $this->validation instanceof \Symfony\Config\Framework\ValidationConfig ? $this->validation->toArray() : $this->validation; - } - if (isset($this->_usedProperties['annotations'])) { - $output['annotations'] = $this->annotations instanceof \Symfony\Config\Framework\AnnotationsConfig ? $this->annotations->toArray() : $this->annotations; - } - if (isset($this->_usedProperties['serializer'])) { - $output['serializer'] = $this->serializer instanceof \Symfony\Config\Framework\SerializerConfig ? $this->serializer->toArray() : $this->serializer; - } - if (isset($this->_usedProperties['propertyAccess'])) { - $output['property_access'] = $this->propertyAccess->toArray(); - } - if (isset($this->_usedProperties['propertyInfo'])) { - $output['property_info'] = $this->propertyInfo->toArray(); - } - if (isset($this->_usedProperties['cache'])) { - $output['cache'] = $this->cache->toArray(); - } - if (isset($this->_usedProperties['phpErrors'])) { - $output['php_errors'] = $this->phpErrors->toArray(); - } - if (isset($this->_usedProperties['exceptions'])) { - $output['exceptions'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Framework\ExceptionConfig ? $v->toArray() : $v, $this->exceptions); - } - if (isset($this->_usedProperties['webLink'])) { - $output['web_link'] = $this->webLink instanceof \Symfony\Config\Framework\WebLinkConfig ? $this->webLink->toArray() : $this->webLink; - } - if (isset($this->_usedProperties['lock'])) { - $output['lock'] = $this->lock instanceof \Symfony\Config\Framework\LockConfig ? $this->lock->toArray() : $this->lock; - } - if (isset($this->_usedProperties['semaphore'])) { - $output['semaphore'] = $this->semaphore instanceof \Symfony\Config\Framework\SemaphoreConfig ? $this->semaphore->toArray() : $this->semaphore; - } - if (isset($this->_usedProperties['messenger'])) { - $output['messenger'] = $this->messenger->toArray(); - } - if (isset($this->_usedProperties['scheduler'])) { - $output['scheduler'] = $this->scheduler instanceof \Symfony\Config\Framework\SchedulerConfig ? $this->scheduler->toArray() : $this->scheduler; - } - if (isset($this->_usedProperties['disallowSearchEngineIndex'])) { - $output['disallow_search_engine_index'] = $this->disallowSearchEngineIndex; - } - if (isset($this->_usedProperties['httpClient'])) { - $output['http_client'] = $this->httpClient instanceof \Symfony\Config\Framework\HttpClientConfig ? $this->httpClient->toArray() : $this->httpClient; - } - if (isset($this->_usedProperties['mailer'])) { - $output['mailer'] = $this->mailer instanceof \Symfony\Config\Framework\MailerConfig ? $this->mailer->toArray() : $this->mailer; - } - if (isset($this->_usedProperties['secrets'])) { - $output['secrets'] = $this->secrets->toArray(); - } - if (isset($this->_usedProperties['notifier'])) { - $output['notifier'] = $this->notifier instanceof \Symfony\Config\Framework\NotifierConfig ? $this->notifier->toArray() : $this->notifier; - } - if (isset($this->_usedProperties['rateLimiter'])) { - $output['rate_limiter'] = $this->rateLimiter instanceof \Symfony\Config\Framework\RateLimiterConfig ? $this->rateLimiter->toArray() : $this->rateLimiter; - } - if (isset($this->_usedProperties['uid'])) { - $output['uid'] = $this->uid->toArray(); - } - if (isset($this->_usedProperties['htmlSanitizer'])) { - $output['html_sanitizer'] = $this->htmlSanitizer instanceof \Symfony\Config\Framework\HtmlSanitizerConfig ? $this->htmlSanitizer->toArray() : $this->htmlSanitizer; - } - if (isset($this->_usedProperties['webhook'])) { - $output['webhook'] = $this->webhook instanceof \Symfony\Config\Framework\WebhookConfig ? $this->webhook->toArray() : $this->webhook; - } - if (isset($this->_usedProperties['remoteevent'])) { - $output['remote-event'] = $this->remoteevent instanceof \Symfony\Config\Framework\RemoteeventConfig ? $this->remoteevent->toArray() : $this->remoteevent; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/MakerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/MakerConfig.php deleted file mode 100644 index 249ca58..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/MakerConfig.php +++ /dev/null @@ -1,103 +0,0 @@ -_usedProperties['rootNamespace'] = true; - $this->rootNamespace = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function generateFinalClasses($value): static - { - $this->_usedProperties['generateFinalClasses'] = true; - $this->generateFinalClasses = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function generateFinalEntities($value): static - { - $this->_usedProperties['generateFinalEntities'] = true; - $this->generateFinalEntities = $value; - - return $this; - } - - public function getExtensionAlias(): string - { - return 'maker'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('root_namespace', $value)) { - $this->_usedProperties['rootNamespace'] = true; - $this->rootNamespace = $value['root_namespace']; - unset($value['root_namespace']); - } - - if (array_key_exists('generate_final_classes', $value)) { - $this->_usedProperties['generateFinalClasses'] = true; - $this->generateFinalClasses = $value['generate_final_classes']; - unset($value['generate_final_classes']); - } - - if (array_key_exists('generate_final_entities', $value)) { - $this->_usedProperties['generateFinalEntities'] = true; - $this->generateFinalEntities = $value['generate_final_entities']; - unset($value['generate_final_entities']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['rootNamespace'])) { - $output['root_namespace'] = $this->rootNamespace; - } - if (isset($this->_usedProperties['generateFinalClasses'])) { - $output['generate_final_classes'] = $this->generateFinalClasses; - } - if (isset($this->_usedProperties['generateFinalEntities'])) { - $output['generate_final_entities'] = $this->generateFinalEntities; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig.php deleted file mode 100644 index a704806..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig.php +++ /dev/null @@ -1,2437 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function priority($value): static - { - $this->_usedProperties['priority'] = true; - $this->priority = $value; - - return $this; - } - - /** - * @default 'DEBUG' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function level($value): static - { - $this->_usedProperties['level'] = true; - $this->level = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function bubble($value): static - { - $this->_usedProperties['bubble'] = true; - $this->bubble = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function appName($value): static - { - $this->_usedProperties['appName'] = true; - $this->appName = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function fillExtraContext($value): static - { - $this->_usedProperties['fillExtraContext'] = true; - $this->fillExtraContext = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function includeStacktraces($value): static - { - $this->_usedProperties['includeStacktraces'] = true; - $this->includeStacktraces = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":null} - * @return \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig : static) - */ - public function processPsr3Messages(mixed $value = []): \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['processPsr3Messages'] = true; - $this->processPsr3Messages = $value; - - return $this; - } - - if (!$this->processPsr3Messages instanceof \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig) { - $this->_usedProperties['processPsr3Messages'] = true; - $this->processPsr3Messages = new \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "processPsr3Messages()" has already been initialized. You cannot pass values the second time you call processPsr3Messages().'); - } - - return $this->processPsr3Messages; - } - - /** - * @default '%kernel.logs_dir%/%kernel.environment%.log' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function filePermission($value): static - { - $this->_usedProperties['filePermission'] = true; - $this->filePermission = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useLocking($value): static - { - $this->_usedProperties['useLocking'] = true; - $this->useLocking = $value; - - return $this; - } - - /** - * @default '{filename}-{date}' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function filenameFormat($value): static - { - $this->_usedProperties['filenameFormat'] = true; - $this->filenameFormat = $value; - - return $this; - } - - /** - * @default 'Y-m-d' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dateFormat($value): static - { - $this->_usedProperties['dateFormat'] = true; - $this->dateFormat = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function ident($value): static - { - $this->_usedProperties['ident'] = true; - $this->ident = $value; - - return $this; - } - - /** - * @default 1 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function logopts($value): static - { - $this->_usedProperties['logopts'] = true; - $this->logopts = $value; - - return $this; - } - - /** - * @default 'user' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function facility($value): static - { - $this->_usedProperties['facility'] = true; - $this->facility = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function maxFiles($value): static - { - $this->_usedProperties['maxFiles'] = true; - $this->maxFiles = $value; - - return $this; - } - - /** - * @default 'WARNING' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function actionLevel($value): static - { - $this->_usedProperties['actionLevel'] = true; - $this->actionLevel = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function activationStrategy($value): static - { - $this->_usedProperties['activationStrategy'] = true; - $this->activationStrategy = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function stopBuffering($value): static - { - $this->_usedProperties['stopBuffering'] = true; - $this->stopBuffering = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passthruLevel($value): static - { - $this->_usedProperties['passthruLevel'] = true; - $this->passthruLevel = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function excluded404s(ParamConfigurator|array $value): static - { - $this->_usedProperties['excluded404s'] = true; - $this->excluded404s = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig : static) - */ - public function excludedHttpCode(mixed $value = []): \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig|static - { - $this->_usedProperties['excludedHttpCodes'] = true; - if (!\is_array($value)) { - $this->excludedHttpCodes[] = $value; - - return $this; - } - - return $this->excludedHttpCodes[] = new \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig($value); - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function acceptedLevels(ParamConfigurator|array $value): static - { - $this->_usedProperties['acceptedLevels'] = true; - $this->acceptedLevels = $value; - - return $this; - } - - /** - * @default 'DEBUG' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function minLevel($value): static - { - $this->_usedProperties['minLevel'] = true; - $this->minLevel = $value; - - return $this; - } - - /** - * @default 'EMERGENCY' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function maxLevel($value): static - { - $this->_usedProperties['maxLevel'] = true; - $this->maxLevel = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function bufferSize($value): static - { - $this->_usedProperties['bufferSize'] = true; - $this->bufferSize = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function flushOnOverflow($value): static - { - $this->_usedProperties['flushOnOverflow'] = true; - $this->flushOnOverflow = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function handler($value): static - { - $this->_usedProperties['handler'] = true; - $this->handler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function url($value): static - { - $this->_usedProperties['url'] = true; - $this->url = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function exchange($value): static - { - $this->_usedProperties['exchange'] = true; - $this->exchange = $value; - - return $this; - } - - /** - * @default 'log' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function exchangeName($value): static - { - $this->_usedProperties['exchangeName'] = true; - $this->exchangeName = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function room($value): static - { - $this->_usedProperties['room'] = true; - $this->room = $value; - - return $this; - } - - /** - * @default 'text' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function messageFormat($value): static - { - $this->_usedProperties['messageFormat'] = true; - $this->messageFormat = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function apiVersion($value): static - { - $this->_usedProperties['apiVersion'] = true; - $this->apiVersion = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function channel($value): static - { - $this->_usedProperties['channel'] = true; - $this->channel = $value; - - return $this; - } - - /** - * @default 'Monolog' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function botName($value): static - { - $this->_usedProperties['botName'] = true; - $this->botName = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function useAttachment($value): static - { - $this->_usedProperties['useAttachment'] = true; - $this->useAttachment = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function useShortAttachment($value): static - { - $this->_usedProperties['useShortAttachment'] = true; - $this->useShortAttachment = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function includeExtra($value): static - { - $this->_usedProperties['includeExtra'] = true; - $this->includeExtra = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function iconEmoji($value): static - { - $this->_usedProperties['iconEmoji'] = true; - $this->iconEmoji = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function webhookUrl($value): static - { - $this->_usedProperties['webhookUrl'] = true; - $this->webhookUrl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function team($value): static - { - $this->_usedProperties['team'] = true; - $this->team = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function notify($value): static - { - $this->_usedProperties['notify'] = true; - $this->notify = $value; - - return $this; - } - - /** - * @default 'Monolog' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function nickname($value): static - { - $this->_usedProperties['nickname'] = true; - $this->nickname = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function token($value): static - { - $this->_usedProperties['token'] = true; - $this->token = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function region($value): static - { - $this->_usedProperties['region'] = true; - $this->region = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function source($value): static - { - $this->_usedProperties['source'] = true; - $this->source = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useSsl($value): static - { - $this->_usedProperties['useSsl'] = true; - $this->useSsl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function user(mixed $value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function title($value): static - { - $this->_usedProperties['title'] = true; - $this->title = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @default 514 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function config(ParamConfigurator|array $value): static - { - $this->_usedProperties['config'] = true; - $this->config = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function members(ParamConfigurator|array $value): static - { - $this->_usedProperties['members'] = true; - $this->members = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connectionString($value): static - { - $this->_usedProperties['connectionString'] = true; - $this->connectionString = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function timeout($value): static - { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value; - - return $this; - } - - /** - * @default 60 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function time($value): static - { - $this->_usedProperties['time'] = true; - $this->time = $value; - - return $this; - } - - /** - * @default 400 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function deduplicationLevel($value): static - { - $this->_usedProperties['deduplicationLevel'] = true; - $this->deduplicationLevel = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function store($value): static - { - $this->_usedProperties['store'] = true; - $this->store = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connectionTimeout($value): static - { - $this->_usedProperties['connectionTimeout'] = true; - $this->connectionTimeout = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function persistent($value): static - { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dsn($value): static - { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function hubId($value): static - { - $this->_usedProperties['hubId'] = true; - $this->hubId = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function clientId($value): static - { - $this->_usedProperties['clientId'] = true; - $this->clientId = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function autoLogStacks($value): static - { - $this->_usedProperties['autoLogStacks'] = true; - $this->autoLogStacks = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function release($value): static - { - $this->_usedProperties['release'] = true; - $this->release = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function environment($value): static - { - $this->_usedProperties['environment'] = true; - $this->environment = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function messageType($value): static - { - $this->_usedProperties['messageType'] = true; - $this->messageType = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function parseMode($value): static - { - $this->_usedProperties['parseMode'] = true; - $this->parseMode = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function disableWebpagePreview($value): static - { - $this->_usedProperties['disableWebpagePreview'] = true; - $this->disableWebpagePreview = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function disableNotification($value): static - { - $this->_usedProperties['disableNotification'] = true; - $this->disableNotification = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function splitLongMessages($value): static - { - $this->_usedProperties['splitLongMessages'] = true; - $this->splitLongMessages = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function delayBetweenMessages($value): static - { - $this->_usedProperties['delayBetweenMessages'] = true; - $this->delayBetweenMessages = $value; - - return $this; - } - - /** - * @default 1 - * @param ParamConfigurator|int $value - * @return $this - */ - public function factor($value): static - { - $this->_usedProperties['factor'] = true; - $this->factor = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function tags(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['tags'] = true; - $this->tags = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @deprecated ".console_formater_options" is deprecated, use ".console_formatter_options" instead. - * - * @return $this - */ - public function consoleFormaterOptions(mixed $value): static - { - $this->_usedProperties['consoleFormaterOptions'] = true; - $this->consoleFormaterOptions = $value; - - return $this; - } - - /** - * @default array ( - * ) - * @param ParamConfigurator|mixed $value - * - * @return $this - */ - public function consoleFormatterOptions(mixed $value = array ( - )): static - { - $this->_usedProperties['consoleFormatterOptions'] = true; - $this->consoleFormatterOptions = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function formatter($value): static - { - $this->_usedProperties['formatter'] = true; - $this->formatter = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function nested($value): static - { - $this->_usedProperties['nested'] = true; - $this->nested = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\PublisherConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\PublisherConfig : static) - */ - public function publisher(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\PublisherConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['publisher'] = true; - $this->publisher = $value; - - return $this; - } - - if (!$this->publisher instanceof \Symfony\Config\Monolog\HandlerConfig\PublisherConfig) { - $this->_usedProperties['publisher'] = true; - $this->publisher = new \Symfony\Config\Monolog\HandlerConfig\PublisherConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "publisher()" has already been initialized. You cannot pass values the second time you call publisher().'); - } - - return $this->publisher; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\MongoConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\MongoConfig : static) - */ - public function mongo(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\MongoConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['mongo'] = true; - $this->mongo = $value; - - return $this; - } - - if (!$this->mongo instanceof \Symfony\Config\Monolog\HandlerConfig\MongoConfig) { - $this->_usedProperties['mongo'] = true; - $this->mongo = new \Symfony\Config\Monolog\HandlerConfig\MongoConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "mongo()" has already been initialized. You cannot pass values the second time you call mongo().'); - } - - return $this->mongo; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig : static) - */ - public function elasticsearch(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['elasticsearch'] = true; - $this->elasticsearch = $value; - - return $this; - } - - if (!$this->elasticsearch instanceof \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig) { - $this->_usedProperties['elasticsearch'] = true; - $this->elasticsearch = new \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "elasticsearch()" has already been initialized. You cannot pass values the second time you call elasticsearch().'); - } - - return $this->elasticsearch; - } - - /** - * @default 'monolog' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function index($value): static - { - $this->_usedProperties['index'] = true; - $this->index = $value; - - return $this; - } - - /** - * @default 'logs' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function documentType($value): static - { - $this->_usedProperties['documentType'] = true; - $this->documentType = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function ignoreError($value): static - { - $this->_usedProperties['ignoreError'] = true; - $this->ignoreError = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\RedisConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\RedisConfig : static) - */ - public function redis(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\RedisConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['redis'] = true; - $this->redis = $value; - - return $this; - } - - if (!$this->redis instanceof \Symfony\Config\Monolog\HandlerConfig\RedisConfig) { - $this->_usedProperties['redis'] = true; - $this->redis = new \Symfony\Config\Monolog\HandlerConfig\RedisConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "redis()" has already been initialized. You cannot pass values the second time you call redis().'); - } - - return $this->redis; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\PredisConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\PredisConfig : static) - */ - public function predis(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\PredisConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['predis'] = true; - $this->predis = $value; - - return $this; - } - - if (!$this->predis instanceof \Symfony\Config\Monolog\HandlerConfig\PredisConfig) { - $this->_usedProperties['predis'] = true; - $this->predis = new \Symfony\Config\Monolog\HandlerConfig\PredisConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "predis()" has already been initialized. You cannot pass values the second time you call predis().'); - } - - return $this->predis; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function fromEmail($value): static - { - $this->_usedProperties['fromEmail'] = true; - $this->fromEmail = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function toEmail(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['toEmail'] = true; - $this->toEmail = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function subject($value): static - { - $this->_usedProperties['subject'] = true; - $this->subject = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function contentType($value): static - { - $this->_usedProperties['contentType'] = true; - $this->contentType = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function headers(ParamConfigurator|array $value): static - { - $this->_usedProperties['headers'] = true; - $this->headers = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function mailer($value): static - { - $this->_usedProperties['mailer'] = true; - $this->mailer = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig : static) - */ - public function emailPrototype(string|array $value = []): \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['emailPrototype'] = true; - $this->emailPrototype = $value; - - return $this; - } - - if (!$this->emailPrototype instanceof \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig) { - $this->_usedProperties['emailPrototype'] = true; - $this->emailPrototype = new \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "emailPrototype()" has already been initialized. You cannot pass values the second time you call emailPrototype().'); - } - - return $this->emailPrototype; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function lazy($value): static - { - $this->_usedProperties['lazy'] = true; - $this->lazy = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig : static) - */ - public function verbosityLevels(array $value = []): \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['verbosityLevels'] = true; - $this->verbosityLevels = $value; - - return $this; - } - - if (!$this->verbosityLevels instanceof \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig) { - $this->_usedProperties['verbosityLevels'] = true; - $this->verbosityLevels = new \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "verbosityLevels()" has already been initialized. You cannot pass values the second time you call verbosityLevels().'); - } - - return $this->verbosityLevels; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig : static) - */ - public function channels(mixed $value = []): \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['channels'] = true; - $this->channels = $value; - - return $this; - } - - if (!$this->channels instanceof \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig) { - $this->_usedProperties['channels'] = true; - $this->channels = new \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "channels()" has already been initialized. You cannot pass values the second time you call channels().'); - } - - return $this->channels; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('priority', $value)) { - $this->_usedProperties['priority'] = true; - $this->priority = $value['priority']; - unset($value['priority']); - } - - if (array_key_exists('level', $value)) { - $this->_usedProperties['level'] = true; - $this->level = $value['level']; - unset($value['level']); - } - - if (array_key_exists('bubble', $value)) { - $this->_usedProperties['bubble'] = true; - $this->bubble = $value['bubble']; - unset($value['bubble']); - } - - if (array_key_exists('app_name', $value)) { - $this->_usedProperties['appName'] = true; - $this->appName = $value['app_name']; - unset($value['app_name']); - } - - if (array_key_exists('fill_extra_context', $value)) { - $this->_usedProperties['fillExtraContext'] = true; - $this->fillExtraContext = $value['fill_extra_context']; - unset($value['fill_extra_context']); - } - - if (array_key_exists('include_stacktraces', $value)) { - $this->_usedProperties['includeStacktraces'] = true; - $this->includeStacktraces = $value['include_stacktraces']; - unset($value['include_stacktraces']); - } - - if (array_key_exists('process_psr_3_messages', $value)) { - $this->_usedProperties['processPsr3Messages'] = true; - $this->processPsr3Messages = \is_array($value['process_psr_3_messages']) ? new \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig($value['process_psr_3_messages']) : $value['process_psr_3_messages']; - unset($value['process_psr_3_messages']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('file_permission', $value)) { - $this->_usedProperties['filePermission'] = true; - $this->filePermission = $value['file_permission']; - unset($value['file_permission']); - } - - if (array_key_exists('use_locking', $value)) { - $this->_usedProperties['useLocking'] = true; - $this->useLocking = $value['use_locking']; - unset($value['use_locking']); - } - - if (array_key_exists('filename_format', $value)) { - $this->_usedProperties['filenameFormat'] = true; - $this->filenameFormat = $value['filename_format']; - unset($value['filename_format']); - } - - if (array_key_exists('date_format', $value)) { - $this->_usedProperties['dateFormat'] = true; - $this->dateFormat = $value['date_format']; - unset($value['date_format']); - } - - if (array_key_exists('ident', $value)) { - $this->_usedProperties['ident'] = true; - $this->ident = $value['ident']; - unset($value['ident']); - } - - if (array_key_exists('logopts', $value)) { - $this->_usedProperties['logopts'] = true; - $this->logopts = $value['logopts']; - unset($value['logopts']); - } - - if (array_key_exists('facility', $value)) { - $this->_usedProperties['facility'] = true; - $this->facility = $value['facility']; - unset($value['facility']); - } - - if (array_key_exists('max_files', $value)) { - $this->_usedProperties['maxFiles'] = true; - $this->maxFiles = $value['max_files']; - unset($value['max_files']); - } - - if (array_key_exists('action_level', $value)) { - $this->_usedProperties['actionLevel'] = true; - $this->actionLevel = $value['action_level']; - unset($value['action_level']); - } - - if (array_key_exists('activation_strategy', $value)) { - $this->_usedProperties['activationStrategy'] = true; - $this->activationStrategy = $value['activation_strategy']; - unset($value['activation_strategy']); - } - - if (array_key_exists('stop_buffering', $value)) { - $this->_usedProperties['stopBuffering'] = true; - $this->stopBuffering = $value['stop_buffering']; - unset($value['stop_buffering']); - } - - if (array_key_exists('passthru_level', $value)) { - $this->_usedProperties['passthruLevel'] = true; - $this->passthruLevel = $value['passthru_level']; - unset($value['passthru_level']); - } - - if (array_key_exists('excluded_404s', $value)) { - $this->_usedProperties['excluded404s'] = true; - $this->excluded404s = $value['excluded_404s']; - unset($value['excluded_404s']); - } - - if (array_key_exists('excluded_http_codes', $value)) { - $this->_usedProperties['excludedHttpCodes'] = true; - $this->excludedHttpCodes = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig($v) : $v, $value['excluded_http_codes']); - unset($value['excluded_http_codes']); - } - - if (array_key_exists('accepted_levels', $value)) { - $this->_usedProperties['acceptedLevels'] = true; - $this->acceptedLevels = $value['accepted_levels']; - unset($value['accepted_levels']); - } - - if (array_key_exists('min_level', $value)) { - $this->_usedProperties['minLevel'] = true; - $this->minLevel = $value['min_level']; - unset($value['min_level']); - } - - if (array_key_exists('max_level', $value)) { - $this->_usedProperties['maxLevel'] = true; - $this->maxLevel = $value['max_level']; - unset($value['max_level']); - } - - if (array_key_exists('buffer_size', $value)) { - $this->_usedProperties['bufferSize'] = true; - $this->bufferSize = $value['buffer_size']; - unset($value['buffer_size']); - } - - if (array_key_exists('flush_on_overflow', $value)) { - $this->_usedProperties['flushOnOverflow'] = true; - $this->flushOnOverflow = $value['flush_on_overflow']; - unset($value['flush_on_overflow']); - } - - if (array_key_exists('handler', $value)) { - $this->_usedProperties['handler'] = true; - $this->handler = $value['handler']; - unset($value['handler']); - } - - if (array_key_exists('url', $value)) { - $this->_usedProperties['url'] = true; - $this->url = $value['url']; - unset($value['url']); - } - - if (array_key_exists('exchange', $value)) { - $this->_usedProperties['exchange'] = true; - $this->exchange = $value['exchange']; - unset($value['exchange']); - } - - if (array_key_exists('exchange_name', $value)) { - $this->_usedProperties['exchangeName'] = true; - $this->exchangeName = $value['exchange_name']; - unset($value['exchange_name']); - } - - if (array_key_exists('room', $value)) { - $this->_usedProperties['room'] = true; - $this->room = $value['room']; - unset($value['room']); - } - - if (array_key_exists('message_format', $value)) { - $this->_usedProperties['messageFormat'] = true; - $this->messageFormat = $value['message_format']; - unset($value['message_format']); - } - - if (array_key_exists('api_version', $value)) { - $this->_usedProperties['apiVersion'] = true; - $this->apiVersion = $value['api_version']; - unset($value['api_version']); - } - - if (array_key_exists('channel', $value)) { - $this->_usedProperties['channel'] = true; - $this->channel = $value['channel']; - unset($value['channel']); - } - - if (array_key_exists('bot_name', $value)) { - $this->_usedProperties['botName'] = true; - $this->botName = $value['bot_name']; - unset($value['bot_name']); - } - - if (array_key_exists('use_attachment', $value)) { - $this->_usedProperties['useAttachment'] = true; - $this->useAttachment = $value['use_attachment']; - unset($value['use_attachment']); - } - - if (array_key_exists('use_short_attachment', $value)) { - $this->_usedProperties['useShortAttachment'] = true; - $this->useShortAttachment = $value['use_short_attachment']; - unset($value['use_short_attachment']); - } - - if (array_key_exists('include_extra', $value)) { - $this->_usedProperties['includeExtra'] = true; - $this->includeExtra = $value['include_extra']; - unset($value['include_extra']); - } - - if (array_key_exists('icon_emoji', $value)) { - $this->_usedProperties['iconEmoji'] = true; - $this->iconEmoji = $value['icon_emoji']; - unset($value['icon_emoji']); - } - - if (array_key_exists('webhook_url', $value)) { - $this->_usedProperties['webhookUrl'] = true; - $this->webhookUrl = $value['webhook_url']; - unset($value['webhook_url']); - } - - if (array_key_exists('team', $value)) { - $this->_usedProperties['team'] = true; - $this->team = $value['team']; - unset($value['team']); - } - - if (array_key_exists('notify', $value)) { - $this->_usedProperties['notify'] = true; - $this->notify = $value['notify']; - unset($value['notify']); - } - - if (array_key_exists('nickname', $value)) { - $this->_usedProperties['nickname'] = true; - $this->nickname = $value['nickname']; - unset($value['nickname']); - } - - if (array_key_exists('token', $value)) { - $this->_usedProperties['token'] = true; - $this->token = $value['token']; - unset($value['token']); - } - - if (array_key_exists('region', $value)) { - $this->_usedProperties['region'] = true; - $this->region = $value['region']; - unset($value['region']); - } - - if (array_key_exists('source', $value)) { - $this->_usedProperties['source'] = true; - $this->source = $value['source']; - unset($value['source']); - } - - if (array_key_exists('use_ssl', $value)) { - $this->_usedProperties['useSsl'] = true; - $this->useSsl = $value['use_ssl']; - unset($value['use_ssl']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('title', $value)) { - $this->_usedProperties['title'] = true; - $this->title = $value['title']; - unset($value['title']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('config', $value)) { - $this->_usedProperties['config'] = true; - $this->config = $value['config']; - unset($value['config']); - } - - if (array_key_exists('members', $value)) { - $this->_usedProperties['members'] = true; - $this->members = $value['members']; - unset($value['members']); - } - - if (array_key_exists('connection_string', $value)) { - $this->_usedProperties['connectionString'] = true; - $this->connectionString = $value['connection_string']; - unset($value['connection_string']); - } - - if (array_key_exists('timeout', $value)) { - $this->_usedProperties['timeout'] = true; - $this->timeout = $value['timeout']; - unset($value['timeout']); - } - - if (array_key_exists('time', $value)) { - $this->_usedProperties['time'] = true; - $this->time = $value['time']; - unset($value['time']); - } - - if (array_key_exists('deduplication_level', $value)) { - $this->_usedProperties['deduplicationLevel'] = true; - $this->deduplicationLevel = $value['deduplication_level']; - unset($value['deduplication_level']); - } - - if (array_key_exists('store', $value)) { - $this->_usedProperties['store'] = true; - $this->store = $value['store']; - unset($value['store']); - } - - if (array_key_exists('connection_timeout', $value)) { - $this->_usedProperties['connectionTimeout'] = true; - $this->connectionTimeout = $value['connection_timeout']; - unset($value['connection_timeout']); - } - - if (array_key_exists('persistent', $value)) { - $this->_usedProperties['persistent'] = true; - $this->persistent = $value['persistent']; - unset($value['persistent']); - } - - if (array_key_exists('dsn', $value)) { - $this->_usedProperties['dsn'] = true; - $this->dsn = $value['dsn']; - unset($value['dsn']); - } - - if (array_key_exists('hub_id', $value)) { - $this->_usedProperties['hubId'] = true; - $this->hubId = $value['hub_id']; - unset($value['hub_id']); - } - - if (array_key_exists('client_id', $value)) { - $this->_usedProperties['clientId'] = true; - $this->clientId = $value['client_id']; - unset($value['client_id']); - } - - if (array_key_exists('auto_log_stacks', $value)) { - $this->_usedProperties['autoLogStacks'] = true; - $this->autoLogStacks = $value['auto_log_stacks']; - unset($value['auto_log_stacks']); - } - - if (array_key_exists('release', $value)) { - $this->_usedProperties['release'] = true; - $this->release = $value['release']; - unset($value['release']); - } - - if (array_key_exists('environment', $value)) { - $this->_usedProperties['environment'] = true; - $this->environment = $value['environment']; - unset($value['environment']); - } - - if (array_key_exists('message_type', $value)) { - $this->_usedProperties['messageType'] = true; - $this->messageType = $value['message_type']; - unset($value['message_type']); - } - - if (array_key_exists('parse_mode', $value)) { - $this->_usedProperties['parseMode'] = true; - $this->parseMode = $value['parse_mode']; - unset($value['parse_mode']); - } - - if (array_key_exists('disable_webpage_preview', $value)) { - $this->_usedProperties['disableWebpagePreview'] = true; - $this->disableWebpagePreview = $value['disable_webpage_preview']; - unset($value['disable_webpage_preview']); - } - - if (array_key_exists('disable_notification', $value)) { - $this->_usedProperties['disableNotification'] = true; - $this->disableNotification = $value['disable_notification']; - unset($value['disable_notification']); - } - - if (array_key_exists('split_long_messages', $value)) { - $this->_usedProperties['splitLongMessages'] = true; - $this->splitLongMessages = $value['split_long_messages']; - unset($value['split_long_messages']); - } - - if (array_key_exists('delay_between_messages', $value)) { - $this->_usedProperties['delayBetweenMessages'] = true; - $this->delayBetweenMessages = $value['delay_between_messages']; - unset($value['delay_between_messages']); - } - - if (array_key_exists('factor', $value)) { - $this->_usedProperties['factor'] = true; - $this->factor = $value['factor']; - unset($value['factor']); - } - - if (array_key_exists('tags', $value)) { - $this->_usedProperties['tags'] = true; - $this->tags = $value['tags']; - unset($value['tags']); - } - - if (array_key_exists('console_formater_options', $value)) { - $this->_usedProperties['consoleFormaterOptions'] = true; - $this->consoleFormaterOptions = $value['console_formater_options']; - unset($value['console_formater_options']); - } - - if (array_key_exists('console_formatter_options', $value)) { - $this->_usedProperties['consoleFormatterOptions'] = true; - $this->consoleFormatterOptions = $value['console_formatter_options']; - unset($value['console_formatter_options']); - } - - if (array_key_exists('formatter', $value)) { - $this->_usedProperties['formatter'] = true; - $this->formatter = $value['formatter']; - unset($value['formatter']); - } - - if (array_key_exists('nested', $value)) { - $this->_usedProperties['nested'] = true; - $this->nested = $value['nested']; - unset($value['nested']); - } - - if (array_key_exists('publisher', $value)) { - $this->_usedProperties['publisher'] = true; - $this->publisher = \is_array($value['publisher']) ? new \Symfony\Config\Monolog\HandlerConfig\PublisherConfig($value['publisher']) : $value['publisher']; - unset($value['publisher']); - } - - if (array_key_exists('mongo', $value)) { - $this->_usedProperties['mongo'] = true; - $this->mongo = \is_array($value['mongo']) ? new \Symfony\Config\Monolog\HandlerConfig\MongoConfig($value['mongo']) : $value['mongo']; - unset($value['mongo']); - } - - if (array_key_exists('elasticsearch', $value)) { - $this->_usedProperties['elasticsearch'] = true; - $this->elasticsearch = \is_array($value['elasticsearch']) ? new \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig($value['elasticsearch']) : $value['elasticsearch']; - unset($value['elasticsearch']); - } - - if (array_key_exists('index', $value)) { - $this->_usedProperties['index'] = true; - $this->index = $value['index']; - unset($value['index']); - } - - if (array_key_exists('document_type', $value)) { - $this->_usedProperties['documentType'] = true; - $this->documentType = $value['document_type']; - unset($value['document_type']); - } - - if (array_key_exists('ignore_error', $value)) { - $this->_usedProperties['ignoreError'] = true; - $this->ignoreError = $value['ignore_error']; - unset($value['ignore_error']); - } - - if (array_key_exists('redis', $value)) { - $this->_usedProperties['redis'] = true; - $this->redis = \is_array($value['redis']) ? new \Symfony\Config\Monolog\HandlerConfig\RedisConfig($value['redis']) : $value['redis']; - unset($value['redis']); - } - - if (array_key_exists('predis', $value)) { - $this->_usedProperties['predis'] = true; - $this->predis = \is_array($value['predis']) ? new \Symfony\Config\Monolog\HandlerConfig\PredisConfig($value['predis']) : $value['predis']; - unset($value['predis']); - } - - if (array_key_exists('from_email', $value)) { - $this->_usedProperties['fromEmail'] = true; - $this->fromEmail = $value['from_email']; - unset($value['from_email']); - } - - if (array_key_exists('to_email', $value)) { - $this->_usedProperties['toEmail'] = true; - $this->toEmail = $value['to_email']; - unset($value['to_email']); - } - - if (array_key_exists('subject', $value)) { - $this->_usedProperties['subject'] = true; - $this->subject = $value['subject']; - unset($value['subject']); - } - - if (array_key_exists('content_type', $value)) { - $this->_usedProperties['contentType'] = true; - $this->contentType = $value['content_type']; - unset($value['content_type']); - } - - if (array_key_exists('headers', $value)) { - $this->_usedProperties['headers'] = true; - $this->headers = $value['headers']; - unset($value['headers']); - } - - if (array_key_exists('mailer', $value)) { - $this->_usedProperties['mailer'] = true; - $this->mailer = $value['mailer']; - unset($value['mailer']); - } - - if (array_key_exists('email_prototype', $value)) { - $this->_usedProperties['emailPrototype'] = true; - $this->emailPrototype = \is_array($value['email_prototype']) ? new \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig($value['email_prototype']) : $value['email_prototype']; - unset($value['email_prototype']); - } - - if (array_key_exists('lazy', $value)) { - $this->_usedProperties['lazy'] = true; - $this->lazy = $value['lazy']; - unset($value['lazy']); - } - - if (array_key_exists('verbosity_levels', $value)) { - $this->_usedProperties['verbosityLevels'] = true; - $this->verbosityLevels = \is_array($value['verbosity_levels']) ? new \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig($value['verbosity_levels']) : $value['verbosity_levels']; - unset($value['verbosity_levels']); - } - - if (array_key_exists('channels', $value)) { - $this->_usedProperties['channels'] = true; - $this->channels = \is_array($value['channels']) ? new \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig($value['channels']) : $value['channels']; - unset($value['channels']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['priority'])) { - $output['priority'] = $this->priority; - } - if (isset($this->_usedProperties['level'])) { - $output['level'] = $this->level; - } - if (isset($this->_usedProperties['bubble'])) { - $output['bubble'] = $this->bubble; - } - if (isset($this->_usedProperties['appName'])) { - $output['app_name'] = $this->appName; - } - if (isset($this->_usedProperties['fillExtraContext'])) { - $output['fill_extra_context'] = $this->fillExtraContext; - } - if (isset($this->_usedProperties['includeStacktraces'])) { - $output['include_stacktraces'] = $this->includeStacktraces; - } - if (isset($this->_usedProperties['processPsr3Messages'])) { - $output['process_psr_3_messages'] = $this->processPsr3Messages instanceof \Symfony\Config\Monolog\HandlerConfig\ProcessPsr3MessagesConfig ? $this->processPsr3Messages->toArray() : $this->processPsr3Messages; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['filePermission'])) { - $output['file_permission'] = $this->filePermission; - } - if (isset($this->_usedProperties['useLocking'])) { - $output['use_locking'] = $this->useLocking; - } - if (isset($this->_usedProperties['filenameFormat'])) { - $output['filename_format'] = $this->filenameFormat; - } - if (isset($this->_usedProperties['dateFormat'])) { - $output['date_format'] = $this->dateFormat; - } - if (isset($this->_usedProperties['ident'])) { - $output['ident'] = $this->ident; - } - if (isset($this->_usedProperties['logopts'])) { - $output['logopts'] = $this->logopts; - } - if (isset($this->_usedProperties['facility'])) { - $output['facility'] = $this->facility; - } - if (isset($this->_usedProperties['maxFiles'])) { - $output['max_files'] = $this->maxFiles; - } - if (isset($this->_usedProperties['actionLevel'])) { - $output['action_level'] = $this->actionLevel; - } - if (isset($this->_usedProperties['activationStrategy'])) { - $output['activation_strategy'] = $this->activationStrategy; - } - if (isset($this->_usedProperties['stopBuffering'])) { - $output['stop_buffering'] = $this->stopBuffering; - } - if (isset($this->_usedProperties['passthruLevel'])) { - $output['passthru_level'] = $this->passthruLevel; - } - if (isset($this->_usedProperties['excluded404s'])) { - $output['excluded_404s'] = $this->excluded404s; - } - if (isset($this->_usedProperties['excludedHttpCodes'])) { - $output['excluded_http_codes'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Monolog\HandlerConfig\ExcludedHttpCodeConfig ? $v->toArray() : $v, $this->excludedHttpCodes); - } - if (isset($this->_usedProperties['acceptedLevels'])) { - $output['accepted_levels'] = $this->acceptedLevels; - } - if (isset($this->_usedProperties['minLevel'])) { - $output['min_level'] = $this->minLevel; - } - if (isset($this->_usedProperties['maxLevel'])) { - $output['max_level'] = $this->maxLevel; - } - if (isset($this->_usedProperties['bufferSize'])) { - $output['buffer_size'] = $this->bufferSize; - } - if (isset($this->_usedProperties['flushOnOverflow'])) { - $output['flush_on_overflow'] = $this->flushOnOverflow; - } - if (isset($this->_usedProperties['handler'])) { - $output['handler'] = $this->handler; - } - if (isset($this->_usedProperties['url'])) { - $output['url'] = $this->url; - } - if (isset($this->_usedProperties['exchange'])) { - $output['exchange'] = $this->exchange; - } - if (isset($this->_usedProperties['exchangeName'])) { - $output['exchange_name'] = $this->exchangeName; - } - if (isset($this->_usedProperties['room'])) { - $output['room'] = $this->room; - } - if (isset($this->_usedProperties['messageFormat'])) { - $output['message_format'] = $this->messageFormat; - } - if (isset($this->_usedProperties['apiVersion'])) { - $output['api_version'] = $this->apiVersion; - } - if (isset($this->_usedProperties['channel'])) { - $output['channel'] = $this->channel; - } - if (isset($this->_usedProperties['botName'])) { - $output['bot_name'] = $this->botName; - } - if (isset($this->_usedProperties['useAttachment'])) { - $output['use_attachment'] = $this->useAttachment; - } - if (isset($this->_usedProperties['useShortAttachment'])) { - $output['use_short_attachment'] = $this->useShortAttachment; - } - if (isset($this->_usedProperties['includeExtra'])) { - $output['include_extra'] = $this->includeExtra; - } - if (isset($this->_usedProperties['iconEmoji'])) { - $output['icon_emoji'] = $this->iconEmoji; - } - if (isset($this->_usedProperties['webhookUrl'])) { - $output['webhook_url'] = $this->webhookUrl; - } - if (isset($this->_usedProperties['team'])) { - $output['team'] = $this->team; - } - if (isset($this->_usedProperties['notify'])) { - $output['notify'] = $this->notify; - } - if (isset($this->_usedProperties['nickname'])) { - $output['nickname'] = $this->nickname; - } - if (isset($this->_usedProperties['token'])) { - $output['token'] = $this->token; - } - if (isset($this->_usedProperties['region'])) { - $output['region'] = $this->region; - } - if (isset($this->_usedProperties['source'])) { - $output['source'] = $this->source; - } - if (isset($this->_usedProperties['useSsl'])) { - $output['use_ssl'] = $this->useSsl; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['title'])) { - $output['title'] = $this->title; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['config'])) { - $output['config'] = $this->config; - } - if (isset($this->_usedProperties['members'])) { - $output['members'] = $this->members; - } - if (isset($this->_usedProperties['connectionString'])) { - $output['connection_string'] = $this->connectionString; - } - if (isset($this->_usedProperties['timeout'])) { - $output['timeout'] = $this->timeout; - } - if (isset($this->_usedProperties['time'])) { - $output['time'] = $this->time; - } - if (isset($this->_usedProperties['deduplicationLevel'])) { - $output['deduplication_level'] = $this->deduplicationLevel; - } - if (isset($this->_usedProperties['store'])) { - $output['store'] = $this->store; - } - if (isset($this->_usedProperties['connectionTimeout'])) { - $output['connection_timeout'] = $this->connectionTimeout; - } - if (isset($this->_usedProperties['persistent'])) { - $output['persistent'] = $this->persistent; - } - if (isset($this->_usedProperties['dsn'])) { - $output['dsn'] = $this->dsn; - } - if (isset($this->_usedProperties['hubId'])) { - $output['hub_id'] = $this->hubId; - } - if (isset($this->_usedProperties['clientId'])) { - $output['client_id'] = $this->clientId; - } - if (isset($this->_usedProperties['autoLogStacks'])) { - $output['auto_log_stacks'] = $this->autoLogStacks; - } - if (isset($this->_usedProperties['release'])) { - $output['release'] = $this->release; - } - if (isset($this->_usedProperties['environment'])) { - $output['environment'] = $this->environment; - } - if (isset($this->_usedProperties['messageType'])) { - $output['message_type'] = $this->messageType; - } - if (isset($this->_usedProperties['parseMode'])) { - $output['parse_mode'] = $this->parseMode; - } - if (isset($this->_usedProperties['disableWebpagePreview'])) { - $output['disable_webpage_preview'] = $this->disableWebpagePreview; - } - if (isset($this->_usedProperties['disableNotification'])) { - $output['disable_notification'] = $this->disableNotification; - } - if (isset($this->_usedProperties['splitLongMessages'])) { - $output['split_long_messages'] = $this->splitLongMessages; - } - if (isset($this->_usedProperties['delayBetweenMessages'])) { - $output['delay_between_messages'] = $this->delayBetweenMessages; - } - if (isset($this->_usedProperties['factor'])) { - $output['factor'] = $this->factor; - } - if (isset($this->_usedProperties['tags'])) { - $output['tags'] = $this->tags; - } - if (isset($this->_usedProperties['consoleFormaterOptions'])) { - $output['console_formater_options'] = $this->consoleFormaterOptions; - } - if (isset($this->_usedProperties['consoleFormatterOptions'])) { - $output['console_formatter_options'] = $this->consoleFormatterOptions; - } - if (isset($this->_usedProperties['formatter'])) { - $output['formatter'] = $this->formatter; - } - if (isset($this->_usedProperties['nested'])) { - $output['nested'] = $this->nested; - } - if (isset($this->_usedProperties['publisher'])) { - $output['publisher'] = $this->publisher instanceof \Symfony\Config\Monolog\HandlerConfig\PublisherConfig ? $this->publisher->toArray() : $this->publisher; - } - if (isset($this->_usedProperties['mongo'])) { - $output['mongo'] = $this->mongo instanceof \Symfony\Config\Monolog\HandlerConfig\MongoConfig ? $this->mongo->toArray() : $this->mongo; - } - if (isset($this->_usedProperties['elasticsearch'])) { - $output['elasticsearch'] = $this->elasticsearch instanceof \Symfony\Config\Monolog\HandlerConfig\ElasticsearchConfig ? $this->elasticsearch->toArray() : $this->elasticsearch; - } - if (isset($this->_usedProperties['index'])) { - $output['index'] = $this->index; - } - if (isset($this->_usedProperties['documentType'])) { - $output['document_type'] = $this->documentType; - } - if (isset($this->_usedProperties['ignoreError'])) { - $output['ignore_error'] = $this->ignoreError; - } - if (isset($this->_usedProperties['redis'])) { - $output['redis'] = $this->redis instanceof \Symfony\Config\Monolog\HandlerConfig\RedisConfig ? $this->redis->toArray() : $this->redis; - } - if (isset($this->_usedProperties['predis'])) { - $output['predis'] = $this->predis instanceof \Symfony\Config\Monolog\HandlerConfig\PredisConfig ? $this->predis->toArray() : $this->predis; - } - if (isset($this->_usedProperties['fromEmail'])) { - $output['from_email'] = $this->fromEmail; - } - if (isset($this->_usedProperties['toEmail'])) { - $output['to_email'] = $this->toEmail; - } - if (isset($this->_usedProperties['subject'])) { - $output['subject'] = $this->subject; - } - if (isset($this->_usedProperties['contentType'])) { - $output['content_type'] = $this->contentType; - } - if (isset($this->_usedProperties['headers'])) { - $output['headers'] = $this->headers; - } - if (isset($this->_usedProperties['mailer'])) { - $output['mailer'] = $this->mailer; - } - if (isset($this->_usedProperties['emailPrototype'])) { - $output['email_prototype'] = $this->emailPrototype instanceof \Symfony\Config\Monolog\HandlerConfig\EmailPrototypeConfig ? $this->emailPrototype->toArray() : $this->emailPrototype; - } - if (isset($this->_usedProperties['lazy'])) { - $output['lazy'] = $this->lazy; - } - if (isset($this->_usedProperties['verbosityLevels'])) { - $output['verbosity_levels'] = $this->verbosityLevels instanceof \Symfony\Config\Monolog\HandlerConfig\VerbosityLevelsConfig ? $this->verbosityLevels->toArray() : $this->verbosityLevels; - } - if (isset($this->_usedProperties['channels'])) { - $output['channels'] = $this->channels instanceof \Symfony\Config\Monolog\HandlerConfig\ChannelsConfig ? $this->channels->toArray() : $this->channels; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ChannelsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ChannelsConfig.php deleted file mode 100644 index 2d53a02..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ChannelsConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['type'] = true; - $this->type = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function elements(ParamConfigurator|array $value): static - { - $this->_usedProperties['elements'] = true; - $this->elements = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('type', $value)) { - $this->_usedProperties['type'] = true; - $this->type = $value['type']; - unset($value['type']); - } - - if (array_key_exists('elements', $value)) { - $this->_usedProperties['elements'] = true; - $this->elements = $value['elements']; - unset($value['elements']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['type'])) { - $output['type'] = $this->type; - } - if (isset($this->_usedProperties['elements'])) { - $output['elements'] = $this->elements; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ElasticsearchConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ElasticsearchConfig.php deleted file mode 100644 index e6bf64f..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ElasticsearchConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @default 9200 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @default 'Http' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function transport($value): static - { - $this->_usedProperties['transport'] = true; - $this->transport = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function password($value): static - { - $this->_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('transport', $value)) { - $this->_usedProperties['transport'] = true; - $this->transport = $value['transport']; - unset($value['transport']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['transport'])) { - $output['transport'] = $this->transport; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/EmailPrototypeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/EmailPrototypeConfig.php deleted file mode 100644 index 552d2cf..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/EmailPrototypeConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function method($value): static - { - $this->_usedProperties['method'] = true; - $this->method = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('method', $value)) { - $this->_usedProperties['method'] = true; - $this->method = $value['method']; - unset($value['method']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['method'])) { - $output['method'] = $this->method; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ExcludedHttpCodeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ExcludedHttpCodeConfig.php deleted file mode 100644 index 70bb374..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ExcludedHttpCodeConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['code'] = true; - $this->code = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function urls(ParamConfigurator|array $value): static - { - $this->_usedProperties['urls'] = true; - $this->urls = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('code', $value)) { - $this->_usedProperties['code'] = true; - $this->code = $value['code']; - unset($value['code']); - } - - if (array_key_exists('urls', $value)) { - $this->_usedProperties['urls'] = true; - $this->urls = $value['urls']; - unset($value['urls']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['code'])) { - $output['code'] = $this->code; - } - if (isset($this->_usedProperties['urls'])) { - $output['urls'] = $this->urls; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/MongoConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/MongoConfig.php deleted file mode 100644 index 0fa6518..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/MongoConfig.php +++ /dev/null @@ -1,190 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @default 27017 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function pass($value): static - { - $this->_usedProperties['pass'] = true; - $this->pass = $value; - - return $this; - } - - /** - * @default 'monolog' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function database($value): static - { - $this->_usedProperties['database'] = true; - $this->database = $value; - - return $this; - } - - /** - * @default 'logs' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function collection($value): static - { - $this->_usedProperties['collection'] = true; - $this->collection = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('pass', $value)) { - $this->_usedProperties['pass'] = true; - $this->pass = $value['pass']; - unset($value['pass']); - } - - if (array_key_exists('database', $value)) { - $this->_usedProperties['database'] = true; - $this->database = $value['database']; - unset($value['database']); - } - - if (array_key_exists('collection', $value)) { - $this->_usedProperties['collection'] = true; - $this->collection = $value['collection']; - unset($value['collection']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['pass'])) { - $output['pass'] = $this->pass; - } - if (isset($this->_usedProperties['database'])) { - $output['database'] = $this->database; - } - if (isset($this->_usedProperties['collection'])) { - $output['collection'] = $this->collection; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PredisConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PredisConfig.php deleted file mode 100644 index 04fbe3f..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PredisConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ProcessPsr3MessagesConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ProcessPsr3MessagesConfig.php deleted file mode 100644 index 392a186..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/ProcessPsr3MessagesConfig.php +++ /dev/null @@ -1,98 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dateFormat($value): static - { - $this->_usedProperties['dateFormat'] = true; - $this->dateFormat = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|bool $value - * @return $this - */ - public function removeUsedContextFields($value): static - { - $this->_usedProperties['removeUsedContextFields'] = true; - $this->removeUsedContextFields = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('date_format', $value)) { - $this->_usedProperties['dateFormat'] = true; - $this->dateFormat = $value['date_format']; - unset($value['date_format']); - } - - if (array_key_exists('remove_used_context_fields', $value)) { - $this->_usedProperties['removeUsedContextFields'] = true; - $this->removeUsedContextFields = $value['remove_used_context_fields']; - unset($value['remove_used_context_fields']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['dateFormat'])) { - $output['date_format'] = $this->dateFormat; - } - if (isset($this->_usedProperties['removeUsedContextFields'])) { - $output['remove_used_context_fields'] = $this->removeUsedContextFields; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PublisherConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PublisherConfig.php deleted file mode 100644 index 02664ef..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/PublisherConfig.php +++ /dev/null @@ -1,121 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function hostname($value): static - { - $this->_usedProperties['hostname'] = true; - $this->hostname = $value; - - return $this; - } - - /** - * @default 12201 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @default 1420 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function chunkSize($value): static - { - $this->_usedProperties['chunkSize'] = true; - $this->chunkSize = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('hostname', $value)) { - $this->_usedProperties['hostname'] = true; - $this->hostname = $value['hostname']; - unset($value['hostname']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('chunk_size', $value)) { - $this->_usedProperties['chunkSize'] = true; - $this->chunkSize = $value['chunk_size']; - unset($value['chunk_size']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['hostname'])) { - $output['hostname'] = $this->hostname; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['chunkSize'])) { - $output['chunk_size'] = $this->chunkSize; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/RedisConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/RedisConfig.php deleted file mode 100644 index efca32e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/RedisConfig.php +++ /dev/null @@ -1,167 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function password($value): static - { - $this->_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - /** - * @default 6379 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @default 0 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function database($value): static - { - $this->_usedProperties['database'] = true; - $this->database = $value; - - return $this; - } - - /** - * @default 'monolog_redis' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function keyName($value): static - { - $this->_usedProperties['keyName'] = true; - $this->keyName = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('database', $value)) { - $this->_usedProperties['database'] = true; - $this->database = $value['database']; - unset($value['database']); - } - - if (array_key_exists('key_name', $value)) { - $this->_usedProperties['keyName'] = true; - $this->keyName = $value['key_name']; - unset($value['key_name']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['database'])) { - $output['database'] = $this->database; - } - if (isset($this->_usedProperties['keyName'])) { - $output['key_name'] = $this->keyName; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/VerbosityLevelsConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/VerbosityLevelsConfig.php deleted file mode 100644 index 1a0d1b9..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Monolog/HandlerConfig/VerbosityLevelsConfig.php +++ /dev/null @@ -1,144 +0,0 @@ -_usedProperties['vERBOSITYQUIET'] = true; - $this->vERBOSITYQUIET = $value; - - return $this; - } - - /** - * @default 'WARNING' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vERBOSITYNORMAL($value): static - { - $this->_usedProperties['vERBOSITYNORMAL'] = true; - $this->vERBOSITYNORMAL = $value; - - return $this; - } - - /** - * @default 'NOTICE' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vERBOSITYVERBOSE($value): static - { - $this->_usedProperties['vERBOSITYVERBOSE'] = true; - $this->vERBOSITYVERBOSE = $value; - - return $this; - } - - /** - * @default 'INFO' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vERBOSITYVERYVERBOSE($value): static - { - $this->_usedProperties['vERBOSITYVERYVERBOSE'] = true; - $this->vERBOSITYVERYVERBOSE = $value; - - return $this; - } - - /** - * @default 'DEBUG' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function vERBOSITYDEBUG($value): static - { - $this->_usedProperties['vERBOSITYDEBUG'] = true; - $this->vERBOSITYDEBUG = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('VERBOSITY_QUIET', $value)) { - $this->_usedProperties['vERBOSITYQUIET'] = true; - $this->vERBOSITYQUIET = $value['VERBOSITY_QUIET']; - unset($value['VERBOSITY_QUIET']); - } - - if (array_key_exists('VERBOSITY_NORMAL', $value)) { - $this->_usedProperties['vERBOSITYNORMAL'] = true; - $this->vERBOSITYNORMAL = $value['VERBOSITY_NORMAL']; - unset($value['VERBOSITY_NORMAL']); - } - - if (array_key_exists('VERBOSITY_VERBOSE', $value)) { - $this->_usedProperties['vERBOSITYVERBOSE'] = true; - $this->vERBOSITYVERBOSE = $value['VERBOSITY_VERBOSE']; - unset($value['VERBOSITY_VERBOSE']); - } - - if (array_key_exists('VERBOSITY_VERY_VERBOSE', $value)) { - $this->_usedProperties['vERBOSITYVERYVERBOSE'] = true; - $this->vERBOSITYVERYVERBOSE = $value['VERBOSITY_VERY_VERBOSE']; - unset($value['VERBOSITY_VERY_VERBOSE']); - } - - if (array_key_exists('VERBOSITY_DEBUG', $value)) { - $this->_usedProperties['vERBOSITYDEBUG'] = true; - $this->vERBOSITYDEBUG = $value['VERBOSITY_DEBUG']; - unset($value['VERBOSITY_DEBUG']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['vERBOSITYQUIET'])) { - $output['VERBOSITY_QUIET'] = $this->vERBOSITYQUIET; - } - if (isset($this->_usedProperties['vERBOSITYNORMAL'])) { - $output['VERBOSITY_NORMAL'] = $this->vERBOSITYNORMAL; - } - if (isset($this->_usedProperties['vERBOSITYVERBOSE'])) { - $output['VERBOSITY_VERBOSE'] = $this->vERBOSITYVERBOSE; - } - if (isset($this->_usedProperties['vERBOSITYVERYVERBOSE'])) { - $output['VERBOSITY_VERY_VERBOSE'] = $this->vERBOSITYVERYVERBOSE; - } - if (isset($this->_usedProperties['vERBOSITYDEBUG'])) { - $output['VERBOSITY_DEBUG'] = $this->vERBOSITYDEBUG; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/MonologConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/MonologConfig.php deleted file mode 100644 index d16337c..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/MonologConfig.php +++ /dev/null @@ -1,120 +0,0 @@ -_usedProperties['useMicroseconds'] = true; - $this->useMicroseconds = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function channels(ParamConfigurator|array $value): static - { - $this->_usedProperties['channels'] = true; - $this->channels = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @example {"type":"stream","path":"\/var\/log\/symfony.log","level":"ERROR","bubble":"false","formatter":"my_formatter"} - * @example {"type":"fingers_crossed","action_level":"WARNING","buffer_size":30,"handler":"custom"} - * @example {"type":"service","id":"my_handler"} - * @return \Symfony\Config\Monolog\HandlerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Monolog\HandlerConfig : static) - */ - public function handler(string $name, mixed $value = []): \Symfony\Config\Monolog\HandlerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['handlers'] = true; - $this->handlers[$name] = $value; - - return $this; - } - - if (!isset($this->handlers[$name]) || !$this->handlers[$name] instanceof \Symfony\Config\Monolog\HandlerConfig) { - $this->_usedProperties['handlers'] = true; - $this->handlers[$name] = new \Symfony\Config\Monolog\HandlerConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "handler()" has already been initialized. You cannot pass values the second time you call handler().'); - } - - return $this->handlers[$name]; - } - - public function getExtensionAlias(): string - { - return 'monolog'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('use_microseconds', $value)) { - $this->_usedProperties['useMicroseconds'] = true; - $this->useMicroseconds = $value['use_microseconds']; - unset($value['use_microseconds']); - } - - if (array_key_exists('channels', $value)) { - $this->_usedProperties['channels'] = true; - $this->channels = $value['channels']; - unset($value['channels']); - } - - if (array_key_exists('handlers', $value)) { - $this->_usedProperties['handlers'] = true; - $this->handlers = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Monolog\HandlerConfig($v) : $v, $value['handlers']); - unset($value['handlers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['useMicroseconds'])) { - $output['use_microseconds'] = $this->useMicroseconds; - } - if (isset($this->_usedProperties['channels'])) { - $output['channels'] = $this->channels; - } - if (isset($this->_usedProperties['handlers'])) { - $output['handlers'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Monolog\HandlerConfig ? $v->toArray() : $v, $this->handlers); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessControlConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessControlConfig.php deleted file mode 100644 index 6295e4a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessControlConfig.php +++ /dev/null @@ -1,282 +0,0 @@ -_usedProperties['requestMatcher'] = true; - $this->requestMatcher = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function requiresChannel($value): static - { - $this->_usedProperties['requiresChannel'] = true; - $this->requiresChannel = $value; - - return $this; - } - - /** - * use the urldecoded format - * @example ^/path to resource/ - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function port($value): static - { - $this->_usedProperties['port'] = true; - $this->port = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function ips(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['ips'] = true; - $this->ips = $value; - - return $this; - } - - /** - * @return $this - */ - public function attribute(string $key, mixed $value): static - { - $this->_usedProperties['attributes'] = true; - $this->attributes[$key] = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function route($value): static - { - $this->_usedProperties['route'] = true; - $this->route = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function methods(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['methods'] = true; - $this->methods = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function allowIf($value): static - { - $this->_usedProperties['allowIf'] = true; - $this->allowIf = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function roles(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['roles'] = true; - $this->roles = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('request_matcher', $value)) { - $this->_usedProperties['requestMatcher'] = true; - $this->requestMatcher = $value['request_matcher']; - unset($value['request_matcher']); - } - - if (array_key_exists('requires_channel', $value)) { - $this->_usedProperties['requiresChannel'] = true; - $this->requiresChannel = $value['requires_channel']; - unset($value['requires_channel']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('port', $value)) { - $this->_usedProperties['port'] = true; - $this->port = $value['port']; - unset($value['port']); - } - - if (array_key_exists('ips', $value)) { - $this->_usedProperties['ips'] = true; - $this->ips = $value['ips']; - unset($value['ips']); - } - - if (array_key_exists('attributes', $value)) { - $this->_usedProperties['attributes'] = true; - $this->attributes = $value['attributes']; - unset($value['attributes']); - } - - if (array_key_exists('route', $value)) { - $this->_usedProperties['route'] = true; - $this->route = $value['route']; - unset($value['route']); - } - - if (array_key_exists('methods', $value)) { - $this->_usedProperties['methods'] = true; - $this->methods = $value['methods']; - unset($value['methods']); - } - - if (array_key_exists('allow_if', $value)) { - $this->_usedProperties['allowIf'] = true; - $this->allowIf = $value['allow_if']; - unset($value['allow_if']); - } - - if (array_key_exists('roles', $value)) { - $this->_usedProperties['roles'] = true; - $this->roles = $value['roles']; - unset($value['roles']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['requestMatcher'])) { - $output['request_matcher'] = $this->requestMatcher; - } - if (isset($this->_usedProperties['requiresChannel'])) { - $output['requires_channel'] = $this->requiresChannel; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['port'])) { - $output['port'] = $this->port; - } - if (isset($this->_usedProperties['ips'])) { - $output['ips'] = $this->ips; - } - if (isset($this->_usedProperties['attributes'])) { - $output['attributes'] = $this->attributes; - } - if (isset($this->_usedProperties['route'])) { - $output['route'] = $this->route; - } - if (isset($this->_usedProperties['methods'])) { - $output['methods'] = $this->methods; - } - if (isset($this->_usedProperties['allowIf'])) { - $output['allow_if'] = $this->allowIf; - } - if (isset($this->_usedProperties['roles'])) { - $output['roles'] = $this->roles; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessDecisionManagerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessDecisionManagerConfig.php deleted file mode 100644 index 64fe406..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/AccessDecisionManagerConfig.php +++ /dev/null @@ -1,144 +0,0 @@ -_usedProperties['strategy'] = true; - $this->strategy = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function strategyService($value): static - { - $this->_usedProperties['strategyService'] = true; - $this->strategyService = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowIfAllAbstain($value): static - { - $this->_usedProperties['allowIfAllAbstain'] = true; - $this->allowIfAllAbstain = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function allowIfEqualGrantedDenied($value): static - { - $this->_usedProperties['allowIfEqualGrantedDenied'] = true; - $this->allowIfEqualGrantedDenied = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('strategy', $value)) { - $this->_usedProperties['strategy'] = true; - $this->strategy = $value['strategy']; - unset($value['strategy']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('strategy_service', $value)) { - $this->_usedProperties['strategyService'] = true; - $this->strategyService = $value['strategy_service']; - unset($value['strategy_service']); - } - - if (array_key_exists('allow_if_all_abstain', $value)) { - $this->_usedProperties['allowIfAllAbstain'] = true; - $this->allowIfAllAbstain = $value['allow_if_all_abstain']; - unset($value['allow_if_all_abstain']); - } - - if (array_key_exists('allow_if_equal_granted_denied', $value)) { - $this->_usedProperties['allowIfEqualGrantedDenied'] = true; - $this->allowIfEqualGrantedDenied = $value['allow_if_equal_granted_denied']; - unset($value['allow_if_equal_granted_denied']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['strategy'])) { - $output['strategy'] = $this->strategy; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['strategyService'])) { - $output['strategy_service'] = $this->strategyService; - } - if (isset($this->_usedProperties['allowIfAllAbstain'])) { - $output['allow_if_all_abstain'] = $this->allowIfAllAbstain; - } - if (isset($this->_usedProperties['allowIfEqualGrantedDenied'])) { - $output['allow_if_equal_granted_denied'] = $this->allowIfEqualGrantedDenied; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig.php deleted file mode 100644 index 6dc7443..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig.php +++ /dev/null @@ -1,712 +0,0 @@ -_usedProperties['pattern'] = true; - $this->pattern = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function host($value): static - { - $this->_usedProperties['host'] = true; - $this->host = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function methods(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['methods'] = true; - $this->methods = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function security($value): static - { - $this->_usedProperties['security'] = true; - $this->security = $value; - - return $this; - } - - /** - * The UserChecker to use when authenticating users in this firewall. - * @default 'security.user_checker' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function userChecker($value): static - { - $this->_usedProperties['userChecker'] = true; - $this->userChecker = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function requestMatcher($value): static - { - $this->_usedProperties['requestMatcher'] = true; - $this->requestMatcher = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function accessDeniedUrl($value): static - { - $this->_usedProperties['accessDeniedUrl'] = true; - $this->accessDeniedUrl = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function accessDeniedHandler($value): static - { - $this->_usedProperties['accessDeniedHandler'] = true; - $this->accessDeniedHandler = $value; - - return $this; - } - - /** - * An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface" - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function entryPoint($value): static - { - $this->_usedProperties['entryPoint'] = true; - $this->entryPoint = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function provider($value): static - { - $this->_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function stateless($value): static - { - $this->_usedProperties['stateless'] = true; - $this->stateless = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function lazy($value): static - { - $this->_usedProperties['lazy'] = true; - $this->lazy = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function context($value): static - { - $this->_usedProperties['context'] = true; - $this->context = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Security\FirewallConfig\LogoutConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\LogoutConfig : static) - */ - public function logout(mixed $value = []): \Symfony\Config\Security\FirewallConfig\LogoutConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['logout'] = true; - $this->logout = $value; - - return $this; - } - - if (!$this->logout instanceof \Symfony\Config\Security\FirewallConfig\LogoutConfig) { - $this->_usedProperties['logout'] = true; - $this->logout = new \Symfony\Config\Security\FirewallConfig\LogoutConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "logout()" has already been initialized. You cannot pass values the second time you call logout().'); - } - - return $this->logout; - } - - public function switchUser(array $value = []): \Symfony\Config\Security\FirewallConfig\SwitchUserConfig - { - if (null === $this->switchUser) { - $this->_usedProperties['switchUser'] = true; - $this->switchUser = new \Symfony\Config\Security\FirewallConfig\SwitchUserConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "switchUser()" has already been initialized. You cannot pass values the second time you call switchUser().'); - } - - return $this->switchUser; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function requiredBadges(ParamConfigurator|array $value): static - { - $this->_usedProperties['requiredBadges'] = true; - $this->requiredBadges = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function customAuthenticators(ParamConfigurator|array $value): static - { - $this->_usedProperties['customAuthenticators'] = true; - $this->customAuthenticators = $value; - - return $this; - } - - public function loginThrottling(array $value = []): \Symfony\Config\Security\FirewallConfig\LoginThrottlingConfig - { - if (null === $this->loginThrottling) { - $this->_usedProperties['loginThrottling'] = true; - $this->loginThrottling = new \Symfony\Config\Security\FirewallConfig\LoginThrottlingConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "loginThrottling()" has already been initialized. You cannot pass values the second time you call loginThrottling().'); - } - - return $this->loginThrottling; - } - - public function x509(array $value = []): \Symfony\Config\Security\FirewallConfig\X509Config - { - if (null === $this->x509) { - $this->_usedProperties['x509'] = true; - $this->x509 = new \Symfony\Config\Security\FirewallConfig\X509Config($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "x509()" has already been initialized. You cannot pass values the second time you call x509().'); - } - - return $this->x509; - } - - public function remoteUser(array $value = []): \Symfony\Config\Security\FirewallConfig\RemoteUserConfig - { - if (null === $this->remoteUser) { - $this->_usedProperties['remoteUser'] = true; - $this->remoteUser = new \Symfony\Config\Security\FirewallConfig\RemoteUserConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "remoteUser()" has already been initialized. You cannot pass values the second time you call remoteUser().'); - } - - return $this->remoteUser; - } - - public function loginLink(array $value = []): \Symfony\Config\Security\FirewallConfig\LoginLinkConfig - { - if (null === $this->loginLink) { - $this->_usedProperties['loginLink'] = true; - $this->loginLink = new \Symfony\Config\Security\FirewallConfig\LoginLinkConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "loginLink()" has already been initialized. You cannot pass values the second time you call loginLink().'); - } - - return $this->loginLink; - } - - public function formLogin(array $value = []): \Symfony\Config\Security\FirewallConfig\FormLoginConfig - { - if (null === $this->formLogin) { - $this->_usedProperties['formLogin'] = true; - $this->formLogin = new \Symfony\Config\Security\FirewallConfig\FormLoginConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "formLogin()" has already been initialized. You cannot pass values the second time you call formLogin().'); - } - - return $this->formLogin; - } - - public function formLoginLdap(array $value = []): \Symfony\Config\Security\FirewallConfig\FormLoginLdapConfig - { - if (null === $this->formLoginLdap) { - $this->_usedProperties['formLoginLdap'] = true; - $this->formLoginLdap = new \Symfony\Config\Security\FirewallConfig\FormLoginLdapConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "formLoginLdap()" has already been initialized. You cannot pass values the second time you call formLoginLdap().'); - } - - return $this->formLoginLdap; - } - - public function jsonLogin(array $value = []): \Symfony\Config\Security\FirewallConfig\JsonLoginConfig - { - if (null === $this->jsonLogin) { - $this->_usedProperties['jsonLogin'] = true; - $this->jsonLogin = new \Symfony\Config\Security\FirewallConfig\JsonLoginConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "jsonLogin()" has already been initialized. You cannot pass values the second time you call jsonLogin().'); - } - - return $this->jsonLogin; - } - - public function jsonLoginLdap(array $value = []): \Symfony\Config\Security\FirewallConfig\JsonLoginLdapConfig - { - if (null === $this->jsonLoginLdap) { - $this->_usedProperties['jsonLoginLdap'] = true; - $this->jsonLoginLdap = new \Symfony\Config\Security\FirewallConfig\JsonLoginLdapConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "jsonLoginLdap()" has already been initialized. You cannot pass values the second time you call jsonLoginLdap().'); - } - - return $this->jsonLoginLdap; - } - - public function accessToken(array $value = []): \Symfony\Config\Security\FirewallConfig\AccessTokenConfig - { - if (null === $this->accessToken) { - $this->_usedProperties['accessToken'] = true; - $this->accessToken = new \Symfony\Config\Security\FirewallConfig\AccessTokenConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "accessToken()" has already been initialized. You cannot pass values the second time you call accessToken().'); - } - - return $this->accessToken; - } - - public function httpBasic(array $value = []): \Symfony\Config\Security\FirewallConfig\HttpBasicConfig - { - if (null === $this->httpBasic) { - $this->_usedProperties['httpBasic'] = true; - $this->httpBasic = new \Symfony\Config\Security\FirewallConfig\HttpBasicConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpBasic()" has already been initialized. You cannot pass values the second time you call httpBasic().'); - } - - return $this->httpBasic; - } - - public function httpBasicLdap(array $value = []): \Symfony\Config\Security\FirewallConfig\HttpBasicLdapConfig - { - if (null === $this->httpBasicLdap) { - $this->_usedProperties['httpBasicLdap'] = true; - $this->httpBasicLdap = new \Symfony\Config\Security\FirewallConfig\HttpBasicLdapConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "httpBasicLdap()" has already been initialized. You cannot pass values the second time you call httpBasicLdap().'); - } - - return $this->httpBasicLdap; - } - - public function rememberMe(array $value = []): \Symfony\Config\Security\FirewallConfig\RememberMeConfig - { - if (null === $this->rememberMe) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = new \Symfony\Config\Security\FirewallConfig\RememberMeConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "rememberMe()" has already been initialized. You cannot pass values the second time you call rememberMe().'); - } - - return $this->rememberMe; - } - - public function __construct(array $value = []) - { - if (array_key_exists('pattern', $value)) { - $this->_usedProperties['pattern'] = true; - $this->pattern = $value['pattern']; - unset($value['pattern']); - } - - if (array_key_exists('host', $value)) { - $this->_usedProperties['host'] = true; - $this->host = $value['host']; - unset($value['host']); - } - - if (array_key_exists('methods', $value)) { - $this->_usedProperties['methods'] = true; - $this->methods = $value['methods']; - unset($value['methods']); - } - - if (array_key_exists('security', $value)) { - $this->_usedProperties['security'] = true; - $this->security = $value['security']; - unset($value['security']); - } - - if (array_key_exists('user_checker', $value)) { - $this->_usedProperties['userChecker'] = true; - $this->userChecker = $value['user_checker']; - unset($value['user_checker']); - } - - if (array_key_exists('request_matcher', $value)) { - $this->_usedProperties['requestMatcher'] = true; - $this->requestMatcher = $value['request_matcher']; - unset($value['request_matcher']); - } - - if (array_key_exists('access_denied_url', $value)) { - $this->_usedProperties['accessDeniedUrl'] = true; - $this->accessDeniedUrl = $value['access_denied_url']; - unset($value['access_denied_url']); - } - - if (array_key_exists('access_denied_handler', $value)) { - $this->_usedProperties['accessDeniedHandler'] = true; - $this->accessDeniedHandler = $value['access_denied_handler']; - unset($value['access_denied_handler']); - } - - if (array_key_exists('entry_point', $value)) { - $this->_usedProperties['entryPoint'] = true; - $this->entryPoint = $value['entry_point']; - unset($value['entry_point']); - } - - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('stateless', $value)) { - $this->_usedProperties['stateless'] = true; - $this->stateless = $value['stateless']; - unset($value['stateless']); - } - - if (array_key_exists('lazy', $value)) { - $this->_usedProperties['lazy'] = true; - $this->lazy = $value['lazy']; - unset($value['lazy']); - } - - if (array_key_exists('context', $value)) { - $this->_usedProperties['context'] = true; - $this->context = $value['context']; - unset($value['context']); - } - - if (array_key_exists('logout', $value)) { - $this->_usedProperties['logout'] = true; - $this->logout = \is_array($value['logout']) ? new \Symfony\Config\Security\FirewallConfig\LogoutConfig($value['logout']) : $value['logout']; - unset($value['logout']); - } - - if (array_key_exists('switch_user', $value)) { - $this->_usedProperties['switchUser'] = true; - $this->switchUser = new \Symfony\Config\Security\FirewallConfig\SwitchUserConfig($value['switch_user']); - unset($value['switch_user']); - } - - if (array_key_exists('required_badges', $value)) { - $this->_usedProperties['requiredBadges'] = true; - $this->requiredBadges = $value['required_badges']; - unset($value['required_badges']); - } - - if (array_key_exists('custom_authenticators', $value)) { - $this->_usedProperties['customAuthenticators'] = true; - $this->customAuthenticators = $value['custom_authenticators']; - unset($value['custom_authenticators']); - } - - if (array_key_exists('login_throttling', $value)) { - $this->_usedProperties['loginThrottling'] = true; - $this->loginThrottling = new \Symfony\Config\Security\FirewallConfig\LoginThrottlingConfig($value['login_throttling']); - unset($value['login_throttling']); - } - - if (array_key_exists('x509', $value)) { - $this->_usedProperties['x509'] = true; - $this->x509 = new \Symfony\Config\Security\FirewallConfig\X509Config($value['x509']); - unset($value['x509']); - } - - if (array_key_exists('remote_user', $value)) { - $this->_usedProperties['remoteUser'] = true; - $this->remoteUser = new \Symfony\Config\Security\FirewallConfig\RemoteUserConfig($value['remote_user']); - unset($value['remote_user']); - } - - if (array_key_exists('login_link', $value)) { - $this->_usedProperties['loginLink'] = true; - $this->loginLink = new \Symfony\Config\Security\FirewallConfig\LoginLinkConfig($value['login_link']); - unset($value['login_link']); - } - - if (array_key_exists('form_login', $value)) { - $this->_usedProperties['formLogin'] = true; - $this->formLogin = new \Symfony\Config\Security\FirewallConfig\FormLoginConfig($value['form_login']); - unset($value['form_login']); - } - - if (array_key_exists('form_login_ldap', $value)) { - $this->_usedProperties['formLoginLdap'] = true; - $this->formLoginLdap = new \Symfony\Config\Security\FirewallConfig\FormLoginLdapConfig($value['form_login_ldap']); - unset($value['form_login_ldap']); - } - - if (array_key_exists('json_login', $value)) { - $this->_usedProperties['jsonLogin'] = true; - $this->jsonLogin = new \Symfony\Config\Security\FirewallConfig\JsonLoginConfig($value['json_login']); - unset($value['json_login']); - } - - if (array_key_exists('json_login_ldap', $value)) { - $this->_usedProperties['jsonLoginLdap'] = true; - $this->jsonLoginLdap = new \Symfony\Config\Security\FirewallConfig\JsonLoginLdapConfig($value['json_login_ldap']); - unset($value['json_login_ldap']); - } - - if (array_key_exists('access_token', $value)) { - $this->_usedProperties['accessToken'] = true; - $this->accessToken = new \Symfony\Config\Security\FirewallConfig\AccessTokenConfig($value['access_token']); - unset($value['access_token']); - } - - if (array_key_exists('http_basic', $value)) { - $this->_usedProperties['httpBasic'] = true; - $this->httpBasic = new \Symfony\Config\Security\FirewallConfig\HttpBasicConfig($value['http_basic']); - unset($value['http_basic']); - } - - if (array_key_exists('http_basic_ldap', $value)) { - $this->_usedProperties['httpBasicLdap'] = true; - $this->httpBasicLdap = new \Symfony\Config\Security\FirewallConfig\HttpBasicLdapConfig($value['http_basic_ldap']); - unset($value['http_basic_ldap']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = new \Symfony\Config\Security\FirewallConfig\RememberMeConfig($value['remember_me']); - unset($value['remember_me']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['pattern'])) { - $output['pattern'] = $this->pattern; - } - if (isset($this->_usedProperties['host'])) { - $output['host'] = $this->host; - } - if (isset($this->_usedProperties['methods'])) { - $output['methods'] = $this->methods; - } - if (isset($this->_usedProperties['security'])) { - $output['security'] = $this->security; - } - if (isset($this->_usedProperties['userChecker'])) { - $output['user_checker'] = $this->userChecker; - } - if (isset($this->_usedProperties['requestMatcher'])) { - $output['request_matcher'] = $this->requestMatcher; - } - if (isset($this->_usedProperties['accessDeniedUrl'])) { - $output['access_denied_url'] = $this->accessDeniedUrl; - } - if (isset($this->_usedProperties['accessDeniedHandler'])) { - $output['access_denied_handler'] = $this->accessDeniedHandler; - } - if (isset($this->_usedProperties['entryPoint'])) { - $output['entry_point'] = $this->entryPoint; - } - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['stateless'])) { - $output['stateless'] = $this->stateless; - } - if (isset($this->_usedProperties['lazy'])) { - $output['lazy'] = $this->lazy; - } - if (isset($this->_usedProperties['context'])) { - $output['context'] = $this->context; - } - if (isset($this->_usedProperties['logout'])) { - $output['logout'] = $this->logout instanceof \Symfony\Config\Security\FirewallConfig\LogoutConfig ? $this->logout->toArray() : $this->logout; - } - if (isset($this->_usedProperties['switchUser'])) { - $output['switch_user'] = $this->switchUser->toArray(); - } - if (isset($this->_usedProperties['requiredBadges'])) { - $output['required_badges'] = $this->requiredBadges; - } - if (isset($this->_usedProperties['customAuthenticators'])) { - $output['custom_authenticators'] = $this->customAuthenticators; - } - if (isset($this->_usedProperties['loginThrottling'])) { - $output['login_throttling'] = $this->loginThrottling->toArray(); - } - if (isset($this->_usedProperties['x509'])) { - $output['x509'] = $this->x509->toArray(); - } - if (isset($this->_usedProperties['remoteUser'])) { - $output['remote_user'] = $this->remoteUser->toArray(); - } - if (isset($this->_usedProperties['loginLink'])) { - $output['login_link'] = $this->loginLink->toArray(); - } - if (isset($this->_usedProperties['formLogin'])) { - $output['form_login'] = $this->formLogin->toArray(); - } - if (isset($this->_usedProperties['formLoginLdap'])) { - $output['form_login_ldap'] = $this->formLoginLdap->toArray(); - } - if (isset($this->_usedProperties['jsonLogin'])) { - $output['json_login'] = $this->jsonLogin->toArray(); - } - if (isset($this->_usedProperties['jsonLoginLdap'])) { - $output['json_login_ldap'] = $this->jsonLoginLdap->toArray(); - } - if (isset($this->_usedProperties['accessToken'])) { - $output['access_token'] = $this->accessToken->toArray(); - } - if (isset($this->_usedProperties['httpBasic'])) { - $output['http_basic'] = $this->httpBasic->toArray(); - } - if (isset($this->_usedProperties['httpBasicLdap'])) { - $output['http_basic_ldap'] = $this->httpBasicLdap->toArray(); - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcConfig.php deleted file mode 100644 index 59cc084..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcConfig.php +++ /dev/null @@ -1,148 +0,0 @@ -_usedProperties['claim'] = true; - $this->claim = $value; - - return $this; - } - - /** - * Audience set in the token, for validation purpose. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function audience($value): static - { - $this->_usedProperties['audience'] = true; - $this->audience = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function issuers(ParamConfigurator|array $value): static - { - $this->_usedProperties['issuers'] = true; - $this->issuers = $value; - - return $this; - } - - /** - * Algorithm used to sign the token. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function algorithm($value): static - { - $this->_usedProperties['algorithm'] = true; - $this->algorithm = $value; - - return $this; - } - - /** - * JSON-encoded JWK used to sign the token (must contain a "kty" key). - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function key($value): static - { - $this->_usedProperties['key'] = true; - $this->key = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('claim', $value)) { - $this->_usedProperties['claim'] = true; - $this->claim = $value['claim']; - unset($value['claim']); - } - - if (array_key_exists('audience', $value)) { - $this->_usedProperties['audience'] = true; - $this->audience = $value['audience']; - unset($value['audience']); - } - - if (array_key_exists('issuers', $value)) { - $this->_usedProperties['issuers'] = true; - $this->issuers = $value['issuers']; - unset($value['issuers']); - } - - if (array_key_exists('algorithm', $value)) { - $this->_usedProperties['algorithm'] = true; - $this->algorithm = $value['algorithm']; - unset($value['algorithm']); - } - - if (array_key_exists('key', $value)) { - $this->_usedProperties['key'] = true; - $this->key = $value['key']; - unset($value['key']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['claim'])) { - $output['claim'] = $this->claim; - } - if (isset($this->_usedProperties['audience'])) { - $output['audience'] = $this->audience; - } - if (isset($this->_usedProperties['issuers'])) { - $output['issuers'] = $this->issuers; - } - if (isset($this->_usedProperties['algorithm'])) { - $output['algorithm'] = $this->algorithm; - } - if (isset($this->_usedProperties['key'])) { - $output['key'] = $this->key; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcUserInfoConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcUserInfoConfig.php deleted file mode 100644 index bfa2308..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandler/OidcUserInfoConfig.php +++ /dev/null @@ -1,101 +0,0 @@ -_usedProperties['baseUri'] = true; - $this->baseUri = $value; - - return $this; - } - - /** - * Claim which contains the user identifier (e.g. sub, email, etc.). - * @default 'sub' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function claim($value): static - { - $this->_usedProperties['claim'] = true; - $this->claim = $value; - - return $this; - } - - /** - * HttpClient service id to use to call the OIDC server. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function client($value): static - { - $this->_usedProperties['client'] = true; - $this->client = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('base_uri', $value)) { - $this->_usedProperties['baseUri'] = true; - $this->baseUri = $value['base_uri']; - unset($value['base_uri']); - } - - if (array_key_exists('claim', $value)) { - $this->_usedProperties['claim'] = true; - $this->claim = $value['claim']; - unset($value['claim']); - } - - if (array_key_exists('client', $value)) { - $this->_usedProperties['client'] = true; - $this->client = $value['client']; - unset($value['client']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['baseUri'])) { - $output['base_uri'] = $this->baseUri; - } - if (isset($this->_usedProperties['claim'])) { - $output['claim'] = $this->claim; - } - if (isset($this->_usedProperties['client'])) { - $output['client'] = $this->client; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandlerConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandlerConfig.php deleted file mode 100644 index f46b432..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessToken/TokenHandlerConfig.php +++ /dev/null @@ -1,112 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig : static) - */ - public function oidcUserInfo(string|array $value = []): \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['oidcUserInfo'] = true; - $this->oidcUserInfo = $value; - - return $this; - } - - if (!$this->oidcUserInfo instanceof \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig) { - $this->_usedProperties['oidcUserInfo'] = true; - $this->oidcUserInfo = new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "oidcUserInfo()" has already been initialized. You cannot pass values the second time you call oidcUserInfo().'); - } - - return $this->oidcUserInfo; - } - - public function oidc(array $value = []): \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcConfig - { - if (null === $this->oidc) { - $this->_usedProperties['oidc'] = true; - $this->oidc = new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "oidc()" has already been initialized. You cannot pass values the second time you call oidc().'); - } - - return $this->oidc; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('oidc_user_info', $value)) { - $this->_usedProperties['oidcUserInfo'] = true; - $this->oidcUserInfo = \is_array($value['oidc_user_info']) ? new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig($value['oidc_user_info']) : $value['oidc_user_info']; - unset($value['oidc_user_info']); - } - - if (array_key_exists('oidc', $value)) { - $this->_usedProperties['oidc'] = true; - $this->oidc = new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcConfig($value['oidc']); - unset($value['oidc']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['oidcUserInfo'])) { - $output['oidc_user_info'] = $this->oidcUserInfo instanceof \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandler\OidcUserInfoConfig ? $this->oidcUserInfo->toArray() : $this->oidcUserInfo; - } - if (isset($this->_usedProperties['oidc'])) { - $output['oidc'] = $this->oidc->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessTokenConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessTokenConfig.php deleted file mode 100644 index 616aac6..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/AccessTokenConfig.php +++ /dev/null @@ -1,205 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function rememberMe($value): static - { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function realm($value): static - { - $this->_usedProperties['realm'] = true; - $this->realm = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function tokenExtractors(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['tokenExtractors'] = true; - $this->tokenExtractors = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @example "App\\Security\\CustomTokenHandler" - * @return \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig : static) - */ - public function tokenHandler(mixed $value = []): \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['tokenHandler'] = true; - $this->tokenHandler = $value; - - return $this; - } - - if (!$this->tokenHandler instanceof \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig) { - $this->_usedProperties['tokenHandler'] = true; - $this->tokenHandler = new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "tokenHandler()" has already been initialized. You cannot pass values the second time you call tokenHandler().'); - } - - return $this->tokenHandler; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value['remember_me']; - unset($value['remember_me']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('realm', $value)) { - $this->_usedProperties['realm'] = true; - $this->realm = $value['realm']; - unset($value['realm']); - } - - if (array_key_exists('token_extractors', $value)) { - $this->_usedProperties['tokenExtractors'] = true; - $this->tokenExtractors = $value['token_extractors']; - unset($value['token_extractors']); - } - - if (array_key_exists('token_handler', $value)) { - $this->_usedProperties['tokenHandler'] = true; - $this->tokenHandler = \is_array($value['token_handler']) ? new \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig($value['token_handler']) : $value['token_handler']; - unset($value['token_handler']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['realm'])) { - $output['realm'] = $this->realm; - } - if (isset($this->_usedProperties['tokenExtractors'])) { - $output['token_extractors'] = $this->tokenExtractors; - } - if (isset($this->_usedProperties['tokenHandler'])) { - $output['token_handler'] = $this->tokenHandler instanceof \Symfony\Config\Security\FirewallConfig\AccessToken\TokenHandlerConfig ? $this->tokenHandler->toArray() : $this->tokenHandler; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginConfig.php deleted file mode 100644 index e6dec7e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginConfig.php +++ /dev/null @@ -1,559 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function rememberMe($value): static - { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * @default '/login_check' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkPath($value): static - { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useForward($value): static - { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @deprecated Option "require_previous_session" at "form_login" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore. - * @return $this - */ - public function requirePreviousSession($value): static - { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value; - - return $this; - } - - /** - * @default '/login' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function loginPath($value): static - { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value; - - return $this; - } - - /** - * @default '_username' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function usernameParameter($value): static - { - $this->_usedProperties['usernameParameter'] = true; - $this->usernameParameter = $value; - - return $this; - } - - /** - * @default '_password' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passwordParameter($value): static - { - $this->_usedProperties['passwordParameter'] = true; - $this->passwordParameter = $value; - - return $this; - } - - /** - * @default '_csrf_token' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfParameter($value): static - { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value; - - return $this; - } - - /** - * @default 'authenticate' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenId($value): static - { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableCsrf($value): static - { - $this->_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function postOnly($value): static - { - $this->_usedProperties['postOnly'] = true; - $this->postOnly = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function formOnly($value): static - { - $this->_usedProperties['formOnly'] = true; - $this->formOnly = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function alwaysUseDefaultTargetPath($value): static - { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value; - - return $this; - } - - /** - * @default '/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultTargetPath($value): static - { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value; - - return $this; - } - - /** - * @default '_target_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function targetPathParameter($value): static - { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useReferer($value): static - { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePath($value): static - { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function failureForward($value): static - { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value; - - return $this; - } - - /** - * @default '_failure_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePathParameter($value): static - { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenGenerator($value): static - { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value['remember_me']; - unset($value['remember_me']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('check_path', $value)) { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value['check_path']; - unset($value['check_path']); - } - - if (array_key_exists('use_forward', $value)) { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value['use_forward']; - unset($value['use_forward']); - } - - if (array_key_exists('require_previous_session', $value)) { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value['require_previous_session']; - unset($value['require_previous_session']); - } - - if (array_key_exists('login_path', $value)) { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value['login_path']; - unset($value['login_path']); - } - - if (array_key_exists('username_parameter', $value)) { - $this->_usedProperties['usernameParameter'] = true; - $this->usernameParameter = $value['username_parameter']; - unset($value['username_parameter']); - } - - if (array_key_exists('password_parameter', $value)) { - $this->_usedProperties['passwordParameter'] = true; - $this->passwordParameter = $value['password_parameter']; - unset($value['password_parameter']); - } - - if (array_key_exists('csrf_parameter', $value)) { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value['csrf_parameter']; - unset($value['csrf_parameter']); - } - - if (array_key_exists('csrf_token_id', $value)) { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value['csrf_token_id']; - unset($value['csrf_token_id']); - } - - if (array_key_exists('enable_csrf', $value)) { - $this->_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value['enable_csrf']; - unset($value['enable_csrf']); - } - - if (array_key_exists('post_only', $value)) { - $this->_usedProperties['postOnly'] = true; - $this->postOnly = $value['post_only']; - unset($value['post_only']); - } - - if (array_key_exists('form_only', $value)) { - $this->_usedProperties['formOnly'] = true; - $this->formOnly = $value['form_only']; - unset($value['form_only']); - } - - if (array_key_exists('always_use_default_target_path', $value)) { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value['always_use_default_target_path']; - unset($value['always_use_default_target_path']); - } - - if (array_key_exists('default_target_path', $value)) { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value['default_target_path']; - unset($value['default_target_path']); - } - - if (array_key_exists('target_path_parameter', $value)) { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value['target_path_parameter']; - unset($value['target_path_parameter']); - } - - if (array_key_exists('use_referer', $value)) { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value['use_referer']; - unset($value['use_referer']); - } - - if (array_key_exists('failure_path', $value)) { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value['failure_path']; - unset($value['failure_path']); - } - - if (array_key_exists('failure_forward', $value)) { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value['failure_forward']; - unset($value['failure_forward']); - } - - if (array_key_exists('failure_path_parameter', $value)) { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value['failure_path_parameter']; - unset($value['failure_path_parameter']); - } - - if (array_key_exists('csrf_token_generator', $value)) { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value['csrf_token_generator']; - unset($value['csrf_token_generator']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['checkPath'])) { - $output['check_path'] = $this->checkPath; - } - if (isset($this->_usedProperties['useForward'])) { - $output['use_forward'] = $this->useForward; - } - if (isset($this->_usedProperties['requirePreviousSession'])) { - $output['require_previous_session'] = $this->requirePreviousSession; - } - if (isset($this->_usedProperties['loginPath'])) { - $output['login_path'] = $this->loginPath; - } - if (isset($this->_usedProperties['usernameParameter'])) { - $output['username_parameter'] = $this->usernameParameter; - } - if (isset($this->_usedProperties['passwordParameter'])) { - $output['password_parameter'] = $this->passwordParameter; - } - if (isset($this->_usedProperties['csrfParameter'])) { - $output['csrf_parameter'] = $this->csrfParameter; - } - if (isset($this->_usedProperties['csrfTokenId'])) { - $output['csrf_token_id'] = $this->csrfTokenId; - } - if (isset($this->_usedProperties['enableCsrf'])) { - $output['enable_csrf'] = $this->enableCsrf; - } - if (isset($this->_usedProperties['postOnly'])) { - $output['post_only'] = $this->postOnly; - } - if (isset($this->_usedProperties['formOnly'])) { - $output['form_only'] = $this->formOnly; - } - if (isset($this->_usedProperties['alwaysUseDefaultTargetPath'])) { - $output['always_use_default_target_path'] = $this->alwaysUseDefaultTargetPath; - } - if (isset($this->_usedProperties['defaultTargetPath'])) { - $output['default_target_path'] = $this->defaultTargetPath; - } - if (isset($this->_usedProperties['targetPathParameter'])) { - $output['target_path_parameter'] = $this->targetPathParameter; - } - if (isset($this->_usedProperties['useReferer'])) { - $output['use_referer'] = $this->useReferer; - } - if (isset($this->_usedProperties['failurePath'])) { - $output['failure_path'] = $this->failurePath; - } - if (isset($this->_usedProperties['failureForward'])) { - $output['failure_forward'] = $this->failureForward; - } - if (isset($this->_usedProperties['failurePathParameter'])) { - $output['failure_path_parameter'] = $this->failurePathParameter; - } - if (isset($this->_usedProperties['csrfTokenGenerator'])) { - $output['csrf_token_generator'] = $this->csrfTokenGenerator; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginLdapConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginLdapConfig.php deleted file mode 100644 index 9615d20..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/FormLoginLdapConfig.php +++ /dev/null @@ -1,672 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function rememberMe($value): static - { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * @default '/login_check' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkPath($value): static - { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useForward($value): static - { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @deprecated Option "require_previous_session" at "form_login_ldap" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore. - * @return $this - */ - public function requirePreviousSession($value): static - { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value; - - return $this; - } - - /** - * @default '/login' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function loginPath($value): static - { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value; - - return $this; - } - - /** - * @default '_username' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function usernameParameter($value): static - { - $this->_usedProperties['usernameParameter'] = true; - $this->usernameParameter = $value; - - return $this; - } - - /** - * @default '_password' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passwordParameter($value): static - { - $this->_usedProperties['passwordParameter'] = true; - $this->passwordParameter = $value; - - return $this; - } - - /** - * @default '_csrf_token' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfParameter($value): static - { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value; - - return $this; - } - - /** - * @default 'authenticate' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenId($value): static - { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function enableCsrf($value): static - { - $this->_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function postOnly($value): static - { - $this->_usedProperties['postOnly'] = true; - $this->postOnly = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function formOnly($value): static - { - $this->_usedProperties['formOnly'] = true; - $this->formOnly = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function alwaysUseDefaultTargetPath($value): static - { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value; - - return $this; - } - - /** - * @default '/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultTargetPath($value): static - { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value; - - return $this; - } - - /** - * @default '_target_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function targetPathParameter($value): static - { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useReferer($value): static - { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePath($value): static - { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function failureForward($value): static - { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value; - - return $this; - } - - /** - * @default '_failure_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePathParameter($value): static - { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenGenerator($value): static - { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value; - - return $this; - } - - /** - * @default 'ldap' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default '{username}' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dnString($value): static - { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function queryString($value): static - { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchDn($value): static - { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchPassword($value): static - { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value['remember_me']; - unset($value['remember_me']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('check_path', $value)) { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value['check_path']; - unset($value['check_path']); - } - - if (array_key_exists('use_forward', $value)) { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value['use_forward']; - unset($value['use_forward']); - } - - if (array_key_exists('require_previous_session', $value)) { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value['require_previous_session']; - unset($value['require_previous_session']); - } - - if (array_key_exists('login_path', $value)) { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value['login_path']; - unset($value['login_path']); - } - - if (array_key_exists('username_parameter', $value)) { - $this->_usedProperties['usernameParameter'] = true; - $this->usernameParameter = $value['username_parameter']; - unset($value['username_parameter']); - } - - if (array_key_exists('password_parameter', $value)) { - $this->_usedProperties['passwordParameter'] = true; - $this->passwordParameter = $value['password_parameter']; - unset($value['password_parameter']); - } - - if (array_key_exists('csrf_parameter', $value)) { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value['csrf_parameter']; - unset($value['csrf_parameter']); - } - - if (array_key_exists('csrf_token_id', $value)) { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value['csrf_token_id']; - unset($value['csrf_token_id']); - } - - if (array_key_exists('enable_csrf', $value)) { - $this->_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value['enable_csrf']; - unset($value['enable_csrf']); - } - - if (array_key_exists('post_only', $value)) { - $this->_usedProperties['postOnly'] = true; - $this->postOnly = $value['post_only']; - unset($value['post_only']); - } - - if (array_key_exists('form_only', $value)) { - $this->_usedProperties['formOnly'] = true; - $this->formOnly = $value['form_only']; - unset($value['form_only']); - } - - if (array_key_exists('always_use_default_target_path', $value)) { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value['always_use_default_target_path']; - unset($value['always_use_default_target_path']); - } - - if (array_key_exists('default_target_path', $value)) { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value['default_target_path']; - unset($value['default_target_path']); - } - - if (array_key_exists('target_path_parameter', $value)) { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value['target_path_parameter']; - unset($value['target_path_parameter']); - } - - if (array_key_exists('use_referer', $value)) { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value['use_referer']; - unset($value['use_referer']); - } - - if (array_key_exists('failure_path', $value)) { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value['failure_path']; - unset($value['failure_path']); - } - - if (array_key_exists('failure_forward', $value)) { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value['failure_forward']; - unset($value['failure_forward']); - } - - if (array_key_exists('failure_path_parameter', $value)) { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value['failure_path_parameter']; - unset($value['failure_path_parameter']); - } - - if (array_key_exists('csrf_token_generator', $value)) { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value['csrf_token_generator']; - unset($value['csrf_token_generator']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('dn_string', $value)) { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value['dn_string']; - unset($value['dn_string']); - } - - if (array_key_exists('query_string', $value)) { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value['query_string']; - unset($value['query_string']); - } - - if (array_key_exists('search_dn', $value)) { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value['search_dn']; - unset($value['search_dn']); - } - - if (array_key_exists('search_password', $value)) { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value['search_password']; - unset($value['search_password']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['checkPath'])) { - $output['check_path'] = $this->checkPath; - } - if (isset($this->_usedProperties['useForward'])) { - $output['use_forward'] = $this->useForward; - } - if (isset($this->_usedProperties['requirePreviousSession'])) { - $output['require_previous_session'] = $this->requirePreviousSession; - } - if (isset($this->_usedProperties['loginPath'])) { - $output['login_path'] = $this->loginPath; - } - if (isset($this->_usedProperties['usernameParameter'])) { - $output['username_parameter'] = $this->usernameParameter; - } - if (isset($this->_usedProperties['passwordParameter'])) { - $output['password_parameter'] = $this->passwordParameter; - } - if (isset($this->_usedProperties['csrfParameter'])) { - $output['csrf_parameter'] = $this->csrfParameter; - } - if (isset($this->_usedProperties['csrfTokenId'])) { - $output['csrf_token_id'] = $this->csrfTokenId; - } - if (isset($this->_usedProperties['enableCsrf'])) { - $output['enable_csrf'] = $this->enableCsrf; - } - if (isset($this->_usedProperties['postOnly'])) { - $output['post_only'] = $this->postOnly; - } - if (isset($this->_usedProperties['formOnly'])) { - $output['form_only'] = $this->formOnly; - } - if (isset($this->_usedProperties['alwaysUseDefaultTargetPath'])) { - $output['always_use_default_target_path'] = $this->alwaysUseDefaultTargetPath; - } - if (isset($this->_usedProperties['defaultTargetPath'])) { - $output['default_target_path'] = $this->defaultTargetPath; - } - if (isset($this->_usedProperties['targetPathParameter'])) { - $output['target_path_parameter'] = $this->targetPathParameter; - } - if (isset($this->_usedProperties['useReferer'])) { - $output['use_referer'] = $this->useReferer; - } - if (isset($this->_usedProperties['failurePath'])) { - $output['failure_path'] = $this->failurePath; - } - if (isset($this->_usedProperties['failureForward'])) { - $output['failure_forward'] = $this->failureForward; - } - if (isset($this->_usedProperties['failurePathParameter'])) { - $output['failure_path_parameter'] = $this->failurePathParameter; - } - if (isset($this->_usedProperties['csrfTokenGenerator'])) { - $output['csrf_token_generator'] = $this->csrfTokenGenerator; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['dnString'])) { - $output['dn_string'] = $this->dnString; - } - if (isset($this->_usedProperties['queryString'])) { - $output['query_string'] = $this->queryString; - } - if (isset($this->_usedProperties['searchDn'])) { - $output['search_dn'] = $this->searchDn; - } - if (isset($this->_usedProperties['searchPassword'])) { - $output['search_password'] = $this->searchPassword; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicConfig.php deleted file mode 100644 index 40fe280..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default 'Secured Area' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function realm($value): static - { - $this->_usedProperties['realm'] = true; - $this->realm = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('realm', $value)) { - $this->_usedProperties['realm'] = true; - $this->realm = $value['realm']; - unset($value['realm']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['realm'])) { - $output['realm'] = $this->realm; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicLdapConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicLdapConfig.php deleted file mode 100644 index 15142aa..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/HttpBasicLdapConfig.php +++ /dev/null @@ -1,188 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default 'Secured Area' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function realm($value): static - { - $this->_usedProperties['realm'] = true; - $this->realm = $value; - - return $this; - } - - /** - * @default 'ldap' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default '{username}' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dnString($value): static - { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function queryString($value): static - { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchDn($value): static - { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchPassword($value): static - { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('realm', $value)) { - $this->_usedProperties['realm'] = true; - $this->realm = $value['realm']; - unset($value['realm']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('dn_string', $value)) { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value['dn_string']; - unset($value['dn_string']); - } - - if (array_key_exists('query_string', $value)) { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value['query_string']; - unset($value['query_string']); - } - - if (array_key_exists('search_dn', $value)) { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value['search_dn']; - unset($value['search_dn']); - } - - if (array_key_exists('search_password', $value)) { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value['search_password']; - unset($value['search_password']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['realm'])) { - $output['realm'] = $this->realm; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['dnString'])) { - $output['dn_string'] = $this->dnString; - } - if (isset($this->_usedProperties['queryString'])) { - $output['query_string'] = $this->queryString; - } - if (isset($this->_usedProperties['searchDn'])) { - $output['search_dn'] = $this->searchDn; - } - if (isset($this->_usedProperties['searchPassword'])) { - $output['search_password'] = $this->searchPassword; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginConfig.php deleted file mode 100644 index 0b5062e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginConfig.php +++ /dev/null @@ -1,260 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function rememberMe($value): static - { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * @default '/login_check' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkPath($value): static - { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useForward($value): static - { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @deprecated Option "require_previous_session" at "json_login" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore. - * @return $this - */ - public function requirePreviousSession($value): static - { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value; - - return $this; - } - - /** - * @default '/login' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function loginPath($value): static - { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value; - - return $this; - } - - /** - * @default 'username' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function usernamePath($value): static - { - $this->_usedProperties['usernamePath'] = true; - $this->usernamePath = $value; - - return $this; - } - - /** - * @default 'password' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passwordPath($value): static - { - $this->_usedProperties['passwordPath'] = true; - $this->passwordPath = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value['remember_me']; - unset($value['remember_me']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('check_path', $value)) { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value['check_path']; - unset($value['check_path']); - } - - if (array_key_exists('use_forward', $value)) { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value['use_forward']; - unset($value['use_forward']); - } - - if (array_key_exists('require_previous_session', $value)) { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value['require_previous_session']; - unset($value['require_previous_session']); - } - - if (array_key_exists('login_path', $value)) { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value['login_path']; - unset($value['login_path']); - } - - if (array_key_exists('username_path', $value)) { - $this->_usedProperties['usernamePath'] = true; - $this->usernamePath = $value['username_path']; - unset($value['username_path']); - } - - if (array_key_exists('password_path', $value)) { - $this->_usedProperties['passwordPath'] = true; - $this->passwordPath = $value['password_path']; - unset($value['password_path']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['checkPath'])) { - $output['check_path'] = $this->checkPath; - } - if (isset($this->_usedProperties['useForward'])) { - $output['use_forward'] = $this->useForward; - } - if (isset($this->_usedProperties['requirePreviousSession'])) { - $output['require_previous_session'] = $this->requirePreviousSession; - } - if (isset($this->_usedProperties['loginPath'])) { - $output['login_path'] = $this->loginPath; - } - if (isset($this->_usedProperties['usernamePath'])) { - $output['username_path'] = $this->usernamePath; - } - if (isset($this->_usedProperties['passwordPath'])) { - $output['password_path'] = $this->passwordPath; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginLdapConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginLdapConfig.php deleted file mode 100644 index e2352fd..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/JsonLoginLdapConfig.php +++ /dev/null @@ -1,373 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function rememberMe($value): static - { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * @default '/login_check' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkPath($value): static - { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useForward($value): static - { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @deprecated Option "require_previous_session" at "json_login_ldap" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore. - * @return $this - */ - public function requirePreviousSession($value): static - { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value; - - return $this; - } - - /** - * @default '/login' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function loginPath($value): static - { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value; - - return $this; - } - - /** - * @default 'username' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function usernamePath($value): static - { - $this->_usedProperties['usernamePath'] = true; - $this->usernamePath = $value; - - return $this; - } - - /** - * @default 'password' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passwordPath($value): static - { - $this->_usedProperties['passwordPath'] = true; - $this->passwordPath = $value; - - return $this; - } - - /** - * @default 'ldap' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default '{username}' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function dnString($value): static - { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function queryString($value): static - { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchDn($value): static - { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value; - - return $this; - } - - /** - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchPassword($value): static - { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('remember_me', $value)) { - $this->_usedProperties['rememberMe'] = true; - $this->rememberMe = $value['remember_me']; - unset($value['remember_me']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('check_path', $value)) { - $this->_usedProperties['checkPath'] = true; - $this->checkPath = $value['check_path']; - unset($value['check_path']); - } - - if (array_key_exists('use_forward', $value)) { - $this->_usedProperties['useForward'] = true; - $this->useForward = $value['use_forward']; - unset($value['use_forward']); - } - - if (array_key_exists('require_previous_session', $value)) { - $this->_usedProperties['requirePreviousSession'] = true; - $this->requirePreviousSession = $value['require_previous_session']; - unset($value['require_previous_session']); - } - - if (array_key_exists('login_path', $value)) { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value['login_path']; - unset($value['login_path']); - } - - if (array_key_exists('username_path', $value)) { - $this->_usedProperties['usernamePath'] = true; - $this->usernamePath = $value['username_path']; - unset($value['username_path']); - } - - if (array_key_exists('password_path', $value)) { - $this->_usedProperties['passwordPath'] = true; - $this->passwordPath = $value['password_path']; - unset($value['password_path']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('dn_string', $value)) { - $this->_usedProperties['dnString'] = true; - $this->dnString = $value['dn_string']; - unset($value['dn_string']); - } - - if (array_key_exists('query_string', $value)) { - $this->_usedProperties['queryString'] = true; - $this->queryString = $value['query_string']; - unset($value['query_string']); - } - - if (array_key_exists('search_dn', $value)) { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value['search_dn']; - unset($value['search_dn']); - } - - if (array_key_exists('search_password', $value)) { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value['search_password']; - unset($value['search_password']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['rememberMe'])) { - $output['remember_me'] = $this->rememberMe; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['checkPath'])) { - $output['check_path'] = $this->checkPath; - } - if (isset($this->_usedProperties['useForward'])) { - $output['use_forward'] = $this->useForward; - } - if (isset($this->_usedProperties['requirePreviousSession'])) { - $output['require_previous_session'] = $this->requirePreviousSession; - } - if (isset($this->_usedProperties['loginPath'])) { - $output['login_path'] = $this->loginPath; - } - if (isset($this->_usedProperties['usernamePath'])) { - $output['username_path'] = $this->usernamePath; - } - if (isset($this->_usedProperties['passwordPath'])) { - $output['password_path'] = $this->passwordPath; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['dnString'])) { - $output['dn_string'] = $this->dnString; - } - if (isset($this->_usedProperties['queryString'])) { - $output['query_string'] = $this->queryString; - } - if (isset($this->_usedProperties['searchDn'])) { - $output['search_dn'] = $this->searchDn; - } - if (isset($this->_usedProperties['searchPassword'])) { - $output['search_password'] = $this->searchPassword; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginLinkConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginLinkConfig.php deleted file mode 100644 index 42dc046..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginLinkConfig.php +++ /dev/null @@ -1,428 +0,0 @@ -_usedProperties['checkRoute'] = true; - $this->checkRoute = $value; - - return $this; - } - - /** - * If true, only HTTP POST requests to "check_route" will be handled by the authenticator. - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function checkPostOnly($value): static - { - $this->_usedProperties['checkPostOnly'] = true; - $this->checkPostOnly = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function signatureProperties(ParamConfigurator|array $value): static - { - $this->_usedProperties['signatureProperties'] = true; - $this->signatureProperties = $value; - - return $this; - } - - /** - * The lifetime of the login link in seconds. - * @default 600 - * @param ParamConfigurator|int $value - * @return $this - */ - public function lifetime($value): static - { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value; - - return $this; - } - - /** - * Max number of times a login link can be used - null means unlimited within lifetime. - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxUses($value): static - { - $this->_usedProperties['maxUses'] = true; - $this->maxUses = $value; - - return $this; - } - - /** - * Cache service id used to expired links of max_uses is set. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function usedLinkCache($value): static - { - $this->_usedProperties['usedLinkCache'] = true; - $this->usedLinkCache = $value; - - return $this; - } - - /** - * A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function successHandler($value): static - { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value; - - return $this; - } - - /** - * A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failureHandler($value): static - { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value; - - return $this; - } - - /** - * The user provider to load users from. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function provider($value): static - { - $this->_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function alwaysUseDefaultTargetPath($value): static - { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value; - - return $this; - } - - /** - * @default '/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function defaultTargetPath($value): static - { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value; - - return $this; - } - - /** - * @default '/login' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function loginPath($value): static - { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value; - - return $this; - } - - /** - * @default '_target_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function targetPathParameter($value): static - { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function useReferer($value): static - { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePath($value): static - { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function failureForward($value): static - { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value; - - return $this; - } - - /** - * @default '_failure_path' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function failurePathParameter($value): static - { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('check_route', $value)) { - $this->_usedProperties['checkRoute'] = true; - $this->checkRoute = $value['check_route']; - unset($value['check_route']); - } - - if (array_key_exists('check_post_only', $value)) { - $this->_usedProperties['checkPostOnly'] = true; - $this->checkPostOnly = $value['check_post_only']; - unset($value['check_post_only']); - } - - if (array_key_exists('signature_properties', $value)) { - $this->_usedProperties['signatureProperties'] = true; - $this->signatureProperties = $value['signature_properties']; - unset($value['signature_properties']); - } - - if (array_key_exists('lifetime', $value)) { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value['lifetime']; - unset($value['lifetime']); - } - - if (array_key_exists('max_uses', $value)) { - $this->_usedProperties['maxUses'] = true; - $this->maxUses = $value['max_uses']; - unset($value['max_uses']); - } - - if (array_key_exists('used_link_cache', $value)) { - $this->_usedProperties['usedLinkCache'] = true; - $this->usedLinkCache = $value['used_link_cache']; - unset($value['used_link_cache']); - } - - if (array_key_exists('success_handler', $value)) { - $this->_usedProperties['successHandler'] = true; - $this->successHandler = $value['success_handler']; - unset($value['success_handler']); - } - - if (array_key_exists('failure_handler', $value)) { - $this->_usedProperties['failureHandler'] = true; - $this->failureHandler = $value['failure_handler']; - unset($value['failure_handler']); - } - - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('always_use_default_target_path', $value)) { - $this->_usedProperties['alwaysUseDefaultTargetPath'] = true; - $this->alwaysUseDefaultTargetPath = $value['always_use_default_target_path']; - unset($value['always_use_default_target_path']); - } - - if (array_key_exists('default_target_path', $value)) { - $this->_usedProperties['defaultTargetPath'] = true; - $this->defaultTargetPath = $value['default_target_path']; - unset($value['default_target_path']); - } - - if (array_key_exists('login_path', $value)) { - $this->_usedProperties['loginPath'] = true; - $this->loginPath = $value['login_path']; - unset($value['login_path']); - } - - if (array_key_exists('target_path_parameter', $value)) { - $this->_usedProperties['targetPathParameter'] = true; - $this->targetPathParameter = $value['target_path_parameter']; - unset($value['target_path_parameter']); - } - - if (array_key_exists('use_referer', $value)) { - $this->_usedProperties['useReferer'] = true; - $this->useReferer = $value['use_referer']; - unset($value['use_referer']); - } - - if (array_key_exists('failure_path', $value)) { - $this->_usedProperties['failurePath'] = true; - $this->failurePath = $value['failure_path']; - unset($value['failure_path']); - } - - if (array_key_exists('failure_forward', $value)) { - $this->_usedProperties['failureForward'] = true; - $this->failureForward = $value['failure_forward']; - unset($value['failure_forward']); - } - - if (array_key_exists('failure_path_parameter', $value)) { - $this->_usedProperties['failurePathParameter'] = true; - $this->failurePathParameter = $value['failure_path_parameter']; - unset($value['failure_path_parameter']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['checkRoute'])) { - $output['check_route'] = $this->checkRoute; - } - if (isset($this->_usedProperties['checkPostOnly'])) { - $output['check_post_only'] = $this->checkPostOnly; - } - if (isset($this->_usedProperties['signatureProperties'])) { - $output['signature_properties'] = $this->signatureProperties; - } - if (isset($this->_usedProperties['lifetime'])) { - $output['lifetime'] = $this->lifetime; - } - if (isset($this->_usedProperties['maxUses'])) { - $output['max_uses'] = $this->maxUses; - } - if (isset($this->_usedProperties['usedLinkCache'])) { - $output['used_link_cache'] = $this->usedLinkCache; - } - if (isset($this->_usedProperties['successHandler'])) { - $output['success_handler'] = $this->successHandler; - } - if (isset($this->_usedProperties['failureHandler'])) { - $output['failure_handler'] = $this->failureHandler; - } - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['alwaysUseDefaultTargetPath'])) { - $output['always_use_default_target_path'] = $this->alwaysUseDefaultTargetPath; - } - if (isset($this->_usedProperties['defaultTargetPath'])) { - $output['default_target_path'] = $this->defaultTargetPath; - } - if (isset($this->_usedProperties['loginPath'])) { - $output['login_path'] = $this->loginPath; - } - if (isset($this->_usedProperties['targetPathParameter'])) { - $output['target_path_parameter'] = $this->targetPathParameter; - } - if (isset($this->_usedProperties['useReferer'])) { - $output['use_referer'] = $this->useReferer; - } - if (isset($this->_usedProperties['failurePath'])) { - $output['failure_path'] = $this->failurePath; - } - if (isset($this->_usedProperties['failureForward'])) { - $output['failure_forward'] = $this->failureForward; - } - if (isset($this->_usedProperties['failurePathParameter'])) { - $output['failure_path_parameter'] = $this->failurePathParameter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginThrottlingConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginThrottlingConfig.php deleted file mode 100644 index 2b9f60e..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LoginThrottlingConfig.php +++ /dev/null @@ -1,123 +0,0 @@ -_usedProperties['limiter'] = true; - $this->limiter = $value; - - return $this; - } - - /** - * @default 5 - * @param ParamConfigurator|int $value - * @return $this - */ - public function maxAttempts($value): static - { - $this->_usedProperties['maxAttempts'] = true; - $this->maxAttempts = $value; - - return $this; - } - - /** - * @default '1 minute' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function interval($value): static - { - $this->_usedProperties['interval'] = true; - $this->interval = $value; - - return $this; - } - - /** - * The service ID of the lock factory used by the login rate limiter (or null to disable locking) - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function lockFactory($value): static - { - $this->_usedProperties['lockFactory'] = true; - $this->lockFactory = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('limiter', $value)) { - $this->_usedProperties['limiter'] = true; - $this->limiter = $value['limiter']; - unset($value['limiter']); - } - - if (array_key_exists('max_attempts', $value)) { - $this->_usedProperties['maxAttempts'] = true; - $this->maxAttempts = $value['max_attempts']; - unset($value['max_attempts']); - } - - if (array_key_exists('interval', $value)) { - $this->_usedProperties['interval'] = true; - $this->interval = $value['interval']; - unset($value['interval']); - } - - if (array_key_exists('lock_factory', $value)) { - $this->_usedProperties['lockFactory'] = true; - $this->lockFactory = $value['lock_factory']; - unset($value['lock_factory']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['limiter'])) { - $output['limiter'] = $this->limiter; - } - if (isset($this->_usedProperties['maxAttempts'])) { - $output['max_attempts'] = $this->maxAttempts; - } - if (isset($this->_usedProperties['interval'])) { - $output['interval'] = $this->interval; - } - if (isset($this->_usedProperties['lockFactory'])) { - $output['lock_factory'] = $this->lockFactory; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/Logout/DeleteCookieConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/Logout/DeleteCookieConfig.php deleted file mode 100644 index b8a5bd8..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/Logout/DeleteCookieConfig.php +++ /dev/null @@ -1,144 +0,0 @@ -_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function domain($value): static - { - $this->_usedProperties['domain'] = true; - $this->domain = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function secure($value): static - { - $this->_usedProperties['secure'] = true; - $this->secure = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function samesite($value): static - { - $this->_usedProperties['samesite'] = true; - $this->samesite = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function partitioned($value): static - { - $this->_usedProperties['partitioned'] = true; - $this->partitioned = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('domain', $value)) { - $this->_usedProperties['domain'] = true; - $this->domain = $value['domain']; - unset($value['domain']); - } - - if (array_key_exists('secure', $value)) { - $this->_usedProperties['secure'] = true; - $this->secure = $value['secure']; - unset($value['secure']); - } - - if (array_key_exists('samesite', $value)) { - $this->_usedProperties['samesite'] = true; - $this->samesite = $value['samesite']; - unset($value['samesite']); - } - - if (array_key_exists('partitioned', $value)) { - $this->_usedProperties['partitioned'] = true; - $this->partitioned = $value['partitioned']; - unset($value['partitioned']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['domain'])) { - $output['domain'] = $this->domain; - } - if (isset($this->_usedProperties['secure'])) { - $output['secure'] = $this->secure; - } - if (isset($this->_usedProperties['samesite'])) { - $output['samesite'] = $this->samesite; - } - if (isset($this->_usedProperties['partitioned'])) { - $output['partitioned'] = $this->partitioned; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LogoutConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LogoutConfig.php deleted file mode 100644 index e76b5a4..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/LogoutConfig.php +++ /dev/null @@ -1,274 +0,0 @@ -_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value; - - return $this; - } - - /** - * @default 'logout' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenId($value): static - { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value; - - return $this; - } - - /** - * @default '_csrf_token' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfParameter($value): static - { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @deprecated The "csrf_token_generator" option is deprecated. Use "csrf_token_manager" instead. - * @return $this - */ - public function csrfTokenGenerator($value): static - { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function csrfTokenManager($value): static - { - $this->_usedProperties['csrfTokenManager'] = true; - $this->csrfTokenManager = $value; - - return $this; - } - - /** - * @default '/logout' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default '/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function target($value): static - { - $this->_usedProperties['target'] = true; - $this->target = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function invalidateSession($value): static - { - $this->_usedProperties['invalidateSession'] = true; - $this->invalidateSession = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function clearSiteData(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['clearSiteData'] = true; - $this->clearSiteData = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig : static) - */ - public function deleteCookie(string $name, array $value = []): \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['deleteCookies'] = true; - $this->deleteCookies[$name] = $value; - - return $this; - } - - if (!isset($this->deleteCookies[$name]) || !$this->deleteCookies[$name] instanceof \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig) { - $this->_usedProperties['deleteCookies'] = true; - $this->deleteCookies[$name] = new \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "deleteCookie()" has already been initialized. You cannot pass values the second time you call deleteCookie().'); - } - - return $this->deleteCookies[$name]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enable_csrf', $value)) { - $this->_usedProperties['enableCsrf'] = true; - $this->enableCsrf = $value['enable_csrf']; - unset($value['enable_csrf']); - } - - if (array_key_exists('csrf_token_id', $value)) { - $this->_usedProperties['csrfTokenId'] = true; - $this->csrfTokenId = $value['csrf_token_id']; - unset($value['csrf_token_id']); - } - - if (array_key_exists('csrf_parameter', $value)) { - $this->_usedProperties['csrfParameter'] = true; - $this->csrfParameter = $value['csrf_parameter']; - unset($value['csrf_parameter']); - } - - if (array_key_exists('csrf_token_generator', $value)) { - $this->_usedProperties['csrfTokenGenerator'] = true; - $this->csrfTokenGenerator = $value['csrf_token_generator']; - unset($value['csrf_token_generator']); - } - - if (array_key_exists('csrf_token_manager', $value)) { - $this->_usedProperties['csrfTokenManager'] = true; - $this->csrfTokenManager = $value['csrf_token_manager']; - unset($value['csrf_token_manager']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('target', $value)) { - $this->_usedProperties['target'] = true; - $this->target = $value['target']; - unset($value['target']); - } - - if (array_key_exists('invalidate_session', $value)) { - $this->_usedProperties['invalidateSession'] = true; - $this->invalidateSession = $value['invalidate_session']; - unset($value['invalidate_session']); - } - - if (array_key_exists('clear_site_data', $value)) { - $this->_usedProperties['clearSiteData'] = true; - $this->clearSiteData = $value['clear_site_data']; - unset($value['clear_site_data']); - } - - if (array_key_exists('delete_cookies', $value)) { - $this->_usedProperties['deleteCookies'] = true; - $this->deleteCookies = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig($v) : $v, $value['delete_cookies']); - unset($value['delete_cookies']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enableCsrf'])) { - $output['enable_csrf'] = $this->enableCsrf; - } - if (isset($this->_usedProperties['csrfTokenId'])) { - $output['csrf_token_id'] = $this->csrfTokenId; - } - if (isset($this->_usedProperties['csrfParameter'])) { - $output['csrf_parameter'] = $this->csrfParameter; - } - if (isset($this->_usedProperties['csrfTokenGenerator'])) { - $output['csrf_token_generator'] = $this->csrfTokenGenerator; - } - if (isset($this->_usedProperties['csrfTokenManager'])) { - $output['csrf_token_manager'] = $this->csrfTokenManager; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['target'])) { - $output['target'] = $this->target; - } - if (isset($this->_usedProperties['invalidateSession'])) { - $output['invalidate_session'] = $this->invalidateSession; - } - if (isset($this->_usedProperties['clearSiteData'])) { - $output['clear_site_data'] = $this->clearSiteData; - } - if (isset($this->_usedProperties['deleteCookies'])) { - $output['delete_cookies'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Security\FirewallConfig\Logout\DeleteCookieConfig ? $v->toArray() : $v, $this->deleteCookies); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProvider/DoctrineConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProvider/DoctrineConfig.php deleted file mode 100644 index 585c217..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProvider/DoctrineConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['enabled'] = true; - $this->enabled = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function connection($value): static - { - $this->_usedProperties['connection'] = true; - $this->connection = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('enabled', $value)) { - $this->_usedProperties['enabled'] = true; - $this->enabled = $value['enabled']; - unset($value['enabled']); - } - - if (array_key_exists('connection', $value)) { - $this->_usedProperties['connection'] = true; - $this->connection = $value['connection']; - unset($value['connection']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['enabled'])) { - $output['enabled'] = $this->enabled; - } - if (isset($this->_usedProperties['connection'])) { - $output['connection'] = $this->connection; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProviderConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProviderConfig.php deleted file mode 100644 index 2fb02f6..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMe/TokenProviderConfig.php +++ /dev/null @@ -1,91 +0,0 @@ -_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @default {"enabled":false,"connection":null} - * @return \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig : static) - */ - public function doctrine(array $value = []): \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['doctrine'] = true; - $this->doctrine = $value; - - return $this; - } - - if (!$this->doctrine instanceof \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig) { - $this->_usedProperties['doctrine'] = true; - $this->doctrine = new \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "doctrine()" has already been initialized. You cannot pass values the second time you call doctrine().'); - } - - return $this->doctrine; - } - - public function __construct(array $value = []) - { - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('doctrine', $value)) { - $this->_usedProperties['doctrine'] = true; - $this->doctrine = \is_array($value['doctrine']) ? new \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig($value['doctrine']) : $value['doctrine']; - unset($value['doctrine']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['doctrine'])) { - $output['doctrine'] = $this->doctrine instanceof \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProvider\DoctrineConfig ? $this->doctrine->toArray() : $this->doctrine; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMeConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMeConfig.php deleted file mode 100644 index 02aa46b..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RememberMeConfig.php +++ /dev/null @@ -1,412 +0,0 @@ -_usedProperties['secret'] = true; - $this->secret = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function service($value): static - { - $this->_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function userProviders(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['userProviders'] = true; - $this->userProviders = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function catchExceptions($value): static - { - $this->_usedProperties['catchExceptions'] = true; - $this->catchExceptions = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function signatureProperties(ParamConfigurator|array $value): static - { - $this->_usedProperties['signatureProperties'] = true; - $this->signatureProperties = $value; - - return $this; - } - - /** - * @template TValue - * @param TValue $value - * @return \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig : static) - */ - public function tokenProvider(string|array $value = []): \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['tokenProvider'] = true; - $this->tokenProvider = $value; - - return $this; - } - - if (!$this->tokenProvider instanceof \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig) { - $this->_usedProperties['tokenProvider'] = true; - $this->tokenProvider = new \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "tokenProvider()" has already been initialized. You cannot pass values the second time you call tokenProvider().'); - } - - return $this->tokenProvider; - } - - /** - * The service ID of a custom rememberme token verifier. - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function tokenVerifier($value): static - { - $this->_usedProperties['tokenVerifier'] = true; - $this->tokenVerifier = $value; - - return $this; - } - - /** - * @default 'REMEMBERME' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function name($value): static - { - $this->_usedProperties['name'] = true; - $this->name = $value; - - return $this; - } - - /** - * @default 31536000 - * @param ParamConfigurator|int $value - * @return $this - */ - public function lifetime($value): static - { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value; - - return $this; - } - - /** - * @default '/' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function path($value): static - { - $this->_usedProperties['path'] = true; - $this->path = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function domain($value): static - { - $this->_usedProperties['domain'] = true; - $this->domain = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|true|false|'auto' $value - * @return $this - */ - public function secure($value): static - { - $this->_usedProperties['secure'] = true; - $this->secure = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function httponly($value): static - { - $this->_usedProperties['httponly'] = true; - $this->httponly = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|NULL|'lax'|'strict'|'none' $value - * @return $this - */ - public function samesite($value): static - { - $this->_usedProperties['samesite'] = true; - $this->samesite = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function alwaysRememberMe($value): static - { - $this->_usedProperties['alwaysRememberMe'] = true; - $this->alwaysRememberMe = $value; - - return $this; - } - - /** - * @default '_remember_me' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function rememberMeParameter($value): static - { - $this->_usedProperties['rememberMeParameter'] = true; - $this->rememberMeParameter = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('secret', $value)) { - $this->_usedProperties['secret'] = true; - $this->secret = $value['secret']; - unset($value['secret']); - } - - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('user_providers', $value)) { - $this->_usedProperties['userProviders'] = true; - $this->userProviders = $value['user_providers']; - unset($value['user_providers']); - } - - if (array_key_exists('catch_exceptions', $value)) { - $this->_usedProperties['catchExceptions'] = true; - $this->catchExceptions = $value['catch_exceptions']; - unset($value['catch_exceptions']); - } - - if (array_key_exists('signature_properties', $value)) { - $this->_usedProperties['signatureProperties'] = true; - $this->signatureProperties = $value['signature_properties']; - unset($value['signature_properties']); - } - - if (array_key_exists('token_provider', $value)) { - $this->_usedProperties['tokenProvider'] = true; - $this->tokenProvider = \is_array($value['token_provider']) ? new \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig($value['token_provider']) : $value['token_provider']; - unset($value['token_provider']); - } - - if (array_key_exists('token_verifier', $value)) { - $this->_usedProperties['tokenVerifier'] = true; - $this->tokenVerifier = $value['token_verifier']; - unset($value['token_verifier']); - } - - if (array_key_exists('name', $value)) { - $this->_usedProperties['name'] = true; - $this->name = $value['name']; - unset($value['name']); - } - - if (array_key_exists('lifetime', $value)) { - $this->_usedProperties['lifetime'] = true; - $this->lifetime = $value['lifetime']; - unset($value['lifetime']); - } - - if (array_key_exists('path', $value)) { - $this->_usedProperties['path'] = true; - $this->path = $value['path']; - unset($value['path']); - } - - if (array_key_exists('domain', $value)) { - $this->_usedProperties['domain'] = true; - $this->domain = $value['domain']; - unset($value['domain']); - } - - if (array_key_exists('secure', $value)) { - $this->_usedProperties['secure'] = true; - $this->secure = $value['secure']; - unset($value['secure']); - } - - if (array_key_exists('httponly', $value)) { - $this->_usedProperties['httponly'] = true; - $this->httponly = $value['httponly']; - unset($value['httponly']); - } - - if (array_key_exists('samesite', $value)) { - $this->_usedProperties['samesite'] = true; - $this->samesite = $value['samesite']; - unset($value['samesite']); - } - - if (array_key_exists('always_remember_me', $value)) { - $this->_usedProperties['alwaysRememberMe'] = true; - $this->alwaysRememberMe = $value['always_remember_me']; - unset($value['always_remember_me']); - } - - if (array_key_exists('remember_me_parameter', $value)) { - $this->_usedProperties['rememberMeParameter'] = true; - $this->rememberMeParameter = $value['remember_me_parameter']; - unset($value['remember_me_parameter']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['secret'])) { - $output['secret'] = $this->secret; - } - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['userProviders'])) { - $output['user_providers'] = $this->userProviders; - } - if (isset($this->_usedProperties['catchExceptions'])) { - $output['catch_exceptions'] = $this->catchExceptions; - } - if (isset($this->_usedProperties['signatureProperties'])) { - $output['signature_properties'] = $this->signatureProperties; - } - if (isset($this->_usedProperties['tokenProvider'])) { - $output['token_provider'] = $this->tokenProvider instanceof \Symfony\Config\Security\FirewallConfig\RememberMe\TokenProviderConfig ? $this->tokenProvider->toArray() : $this->tokenProvider; - } - if (isset($this->_usedProperties['tokenVerifier'])) { - $output['token_verifier'] = $this->tokenVerifier; - } - if (isset($this->_usedProperties['name'])) { - $output['name'] = $this->name; - } - if (isset($this->_usedProperties['lifetime'])) { - $output['lifetime'] = $this->lifetime; - } - if (isset($this->_usedProperties['path'])) { - $output['path'] = $this->path; - } - if (isset($this->_usedProperties['domain'])) { - $output['domain'] = $this->domain; - } - if (isset($this->_usedProperties['secure'])) { - $output['secure'] = $this->secure; - } - if (isset($this->_usedProperties['httponly'])) { - $output['httponly'] = $this->httponly; - } - if (isset($this->_usedProperties['samesite'])) { - $output['samesite'] = $this->samesite; - } - if (isset($this->_usedProperties['alwaysRememberMe'])) { - $output['always_remember_me'] = $this->alwaysRememberMe; - } - if (isset($this->_usedProperties['rememberMeParameter'])) { - $output['remember_me_parameter'] = $this->rememberMeParameter; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RemoteUserConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RemoteUserConfig.php deleted file mode 100644 index 00a441c..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/RemoteUserConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default 'REMOTE_USER' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/SwitchUserConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/SwitchUserConfig.php deleted file mode 100644 index b6bc8eb..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/SwitchUserConfig.php +++ /dev/null @@ -1,121 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default '_switch_user' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function parameter($value): static - { - $this->_usedProperties['parameter'] = true; - $this->parameter = $value; - - return $this; - } - - /** - * @default 'ROLE_ALLOWED_TO_SWITCH' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function role($value): static - { - $this->_usedProperties['role'] = true; - $this->role = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function targetRoute($value): static - { - $this->_usedProperties['targetRoute'] = true; - $this->targetRoute = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('parameter', $value)) { - $this->_usedProperties['parameter'] = true; - $this->parameter = $value['parameter']; - unset($value['parameter']); - } - - if (array_key_exists('role', $value)) { - $this->_usedProperties['role'] = true; - $this->role = $value['role']; - unset($value['role']); - } - - if (array_key_exists('target_route', $value)) { - $this->_usedProperties['targetRoute'] = true; - $this->targetRoute = $value['target_route']; - unset($value['target_route']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['parameter'])) { - $output['parameter'] = $this->parameter; - } - if (isset($this->_usedProperties['role'])) { - $output['role'] = $this->role; - } - if (isset($this->_usedProperties['targetRoute'])) { - $output['target_route'] = $this->targetRoute; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/X509Config.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/X509Config.php deleted file mode 100644 index 808fbd0..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/FirewallConfig/X509Config.php +++ /dev/null @@ -1,121 +0,0 @@ -_usedProperties['provider'] = true; - $this->provider = $value; - - return $this; - } - - /** - * @default 'SSL_CLIENT_S_DN_Email' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function user($value): static - { - $this->_usedProperties['user'] = true; - $this->user = $value; - - return $this; - } - - /** - * @default 'SSL_CLIENT_S_DN' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function credentials($value): static - { - $this->_usedProperties['credentials'] = true; - $this->credentials = $value; - - return $this; - } - - /** - * @default 'emailAddress' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function userIdentifier($value): static - { - $this->_usedProperties['userIdentifier'] = true; - $this->userIdentifier = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('provider', $value)) { - $this->_usedProperties['provider'] = true; - $this->provider = $value['provider']; - unset($value['provider']); - } - - if (array_key_exists('user', $value)) { - $this->_usedProperties['user'] = true; - $this->user = $value['user']; - unset($value['user']); - } - - if (array_key_exists('credentials', $value)) { - $this->_usedProperties['credentials'] = true; - $this->credentials = $value['credentials']; - unset($value['credentials']); - } - - if (array_key_exists('user_identifier', $value)) { - $this->_usedProperties['userIdentifier'] = true; - $this->userIdentifier = $value['user_identifier']; - unset($value['user_identifier']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['provider'])) { - $output['provider'] = $this->provider; - } - if (isset($this->_usedProperties['user'])) { - $output['user'] = $this->user; - } - if (isset($this->_usedProperties['credentials'])) { - $output['credentials'] = $this->credentials; - } - if (isset($this->_usedProperties['userIdentifier'])) { - $output['user_identifier'] = $this->userIdentifier; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/PasswordHasherConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/PasswordHasherConfig.php deleted file mode 100644 index 0a6fdc5..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/PasswordHasherConfig.php +++ /dev/null @@ -1,283 +0,0 @@ -_usedProperties['algorithm'] = true; - $this->algorithm = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|mixed $value - * - * @return $this - */ - public function migrateFrom(mixed $value): static - { - $this->_usedProperties['migrateFrom'] = true; - $this->migrateFrom = $value; - - return $this; - } - - /** - * Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. - * @default 'sha512' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function hashAlgorithm($value): static - { - $this->_usedProperties['hashAlgorithm'] = true; - $this->hashAlgorithm = $value; - - return $this; - } - - /** - * @default 40 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function keyLength($value): static - { - $this->_usedProperties['keyLength'] = true; - $this->keyLength = $value; - - return $this; - } - - /** - * @default false - * @param ParamConfigurator|bool $value - * @return $this - */ - public function ignoreCase($value): static - { - $this->_usedProperties['ignoreCase'] = true; - $this->ignoreCase = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function encodeAsBase64($value): static - { - $this->_usedProperties['encodeAsBase64'] = true; - $this->encodeAsBase64 = $value; - - return $this; - } - - /** - * @default 5000 - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function iterations($value): static - { - $this->_usedProperties['iterations'] = true; - $this->iterations = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|int $value - * @return $this - */ - public function cost($value): static - { - $this->_usedProperties['cost'] = true; - $this->cost = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function memoryCost($value): static - { - $this->_usedProperties['memoryCost'] = true; - $this->memoryCost = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function timeCost($value): static - { - $this->_usedProperties['timeCost'] = true; - $this->timeCost = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function id($value): static - { - $this->_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('algorithm', $value)) { - $this->_usedProperties['algorithm'] = true; - $this->algorithm = $value['algorithm']; - unset($value['algorithm']); - } - - if (array_key_exists('migrate_from', $value)) { - $this->_usedProperties['migrateFrom'] = true; - $this->migrateFrom = $value['migrate_from']; - unset($value['migrate_from']); - } - - if (array_key_exists('hash_algorithm', $value)) { - $this->_usedProperties['hashAlgorithm'] = true; - $this->hashAlgorithm = $value['hash_algorithm']; - unset($value['hash_algorithm']); - } - - if (array_key_exists('key_length', $value)) { - $this->_usedProperties['keyLength'] = true; - $this->keyLength = $value['key_length']; - unset($value['key_length']); - } - - if (array_key_exists('ignore_case', $value)) { - $this->_usedProperties['ignoreCase'] = true; - $this->ignoreCase = $value['ignore_case']; - unset($value['ignore_case']); - } - - if (array_key_exists('encode_as_base64', $value)) { - $this->_usedProperties['encodeAsBase64'] = true; - $this->encodeAsBase64 = $value['encode_as_base64']; - unset($value['encode_as_base64']); - } - - if (array_key_exists('iterations', $value)) { - $this->_usedProperties['iterations'] = true; - $this->iterations = $value['iterations']; - unset($value['iterations']); - } - - if (array_key_exists('cost', $value)) { - $this->_usedProperties['cost'] = true; - $this->cost = $value['cost']; - unset($value['cost']); - } - - if (array_key_exists('memory_cost', $value)) { - $this->_usedProperties['memoryCost'] = true; - $this->memoryCost = $value['memory_cost']; - unset($value['memory_cost']); - } - - if (array_key_exists('time_cost', $value)) { - $this->_usedProperties['timeCost'] = true; - $this->timeCost = $value['time_cost']; - unset($value['time_cost']); - } - - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['algorithm'])) { - $output['algorithm'] = $this->algorithm; - } - if (isset($this->_usedProperties['migrateFrom'])) { - $output['migrate_from'] = $this->migrateFrom; - } - if (isset($this->_usedProperties['hashAlgorithm'])) { - $output['hash_algorithm'] = $this->hashAlgorithm; - } - if (isset($this->_usedProperties['keyLength'])) { - $output['key_length'] = $this->keyLength; - } - if (isset($this->_usedProperties['ignoreCase'])) { - $output['ignore_case'] = $this->ignoreCase; - } - if (isset($this->_usedProperties['encodeAsBase64'])) { - $output['encode_as_base64'] = $this->encodeAsBase64; - } - if (isset($this->_usedProperties['iterations'])) { - $output['iterations'] = $this->iterations; - } - if (isset($this->_usedProperties['cost'])) { - $output['cost'] = $this->cost; - } - if (isset($this->_usedProperties['memoryCost'])) { - $output['memory_cost'] = $this->memoryCost; - } - if (isset($this->_usedProperties['timeCost'])) { - $output['time_cost'] = $this->timeCost; - } - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig.php deleted file mode 100644 index f058b34..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig.php +++ /dev/null @@ -1,145 +0,0 @@ -_usedProperties['id'] = true; - $this->id = $value; - - return $this; - } - - public function chain(array $value = []): \Symfony\Config\Security\ProviderConfig\ChainConfig - { - if (null === $this->chain) { - $this->_usedProperties['chain'] = true; - $this->chain = new \Symfony\Config\Security\ProviderConfig\ChainConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "chain()" has already been initialized. You cannot pass values the second time you call chain().'); - } - - return $this->chain; - } - - public function memory(array $value = []): \Symfony\Config\Security\ProviderConfig\MemoryConfig - { - if (null === $this->memory) { - $this->_usedProperties['memory'] = true; - $this->memory = new \Symfony\Config\Security\ProviderConfig\MemoryConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "memory()" has already been initialized. You cannot pass values the second time you call memory().'); - } - - return $this->memory; - } - - public function ldap(array $value = []): \Symfony\Config\Security\ProviderConfig\LdapConfig - { - if (null === $this->ldap) { - $this->_usedProperties['ldap'] = true; - $this->ldap = new \Symfony\Config\Security\ProviderConfig\LdapConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "ldap()" has already been initialized. You cannot pass values the second time you call ldap().'); - } - - return $this->ldap; - } - - public function entity(array $value = []): \Symfony\Config\Security\ProviderConfig\EntityConfig - { - if (null === $this->entity) { - $this->_usedProperties['entity'] = true; - $this->entity = new \Symfony\Config\Security\ProviderConfig\EntityConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "entity()" has already been initialized. You cannot pass values the second time you call entity().'); - } - - return $this->entity; - } - - public function __construct(array $value = []) - { - if (array_key_exists('id', $value)) { - $this->_usedProperties['id'] = true; - $this->id = $value['id']; - unset($value['id']); - } - - if (array_key_exists('chain', $value)) { - $this->_usedProperties['chain'] = true; - $this->chain = new \Symfony\Config\Security\ProviderConfig\ChainConfig($value['chain']); - unset($value['chain']); - } - - if (array_key_exists('memory', $value)) { - $this->_usedProperties['memory'] = true; - $this->memory = new \Symfony\Config\Security\ProviderConfig\MemoryConfig($value['memory']); - unset($value['memory']); - } - - if (array_key_exists('ldap', $value)) { - $this->_usedProperties['ldap'] = true; - $this->ldap = new \Symfony\Config\Security\ProviderConfig\LdapConfig($value['ldap']); - unset($value['ldap']); - } - - if (array_key_exists('entity', $value)) { - $this->_usedProperties['entity'] = true; - $this->entity = new \Symfony\Config\Security\ProviderConfig\EntityConfig($value['entity']); - unset($value['entity']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['id'])) { - $output['id'] = $this->id; - } - if (isset($this->_usedProperties['chain'])) { - $output['chain'] = $this->chain->toArray(); - } - if (isset($this->_usedProperties['memory'])) { - $output['memory'] = $this->memory->toArray(); - } - if (isset($this->_usedProperties['ldap'])) { - $output['ldap'] = $this->ldap->toArray(); - } - if (isset($this->_usedProperties['entity'])) { - $output['entity'] = $this->entity->toArray(); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/ChainConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/ChainConfig.php deleted file mode 100644 index 0df3538..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/ChainConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -|string $value - * - * @return $this - */ - public function providers(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['providers'] = true; - $this->providers = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('providers', $value)) { - $this->_usedProperties['providers'] = true; - $this->providers = $value['providers']; - unset($value['providers']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['providers'])) { - $output['providers'] = $this->providers; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/EntityConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/EntityConfig.php deleted file mode 100644 index 4bb4a9d..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/EntityConfig.php +++ /dev/null @@ -1,99 +0,0 @@ -_usedProperties['class'] = true; - $this->class = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function property($value): static - { - $this->_usedProperties['property'] = true; - $this->property = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function managerName($value): static - { - $this->_usedProperties['managerName'] = true; - $this->managerName = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('class', $value)) { - $this->_usedProperties['class'] = true; - $this->class = $value['class']; - unset($value['class']); - } - - if (array_key_exists('property', $value)) { - $this->_usedProperties['property'] = true; - $this->property = $value['property']; - unset($value['property']); - } - - if (array_key_exists('manager_name', $value)) { - $this->_usedProperties['managerName'] = true; - $this->managerName = $value['manager_name']; - unset($value['manager_name']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['class'])) { - $output['class'] = $this->class; - } - if (isset($this->_usedProperties['property'])) { - $output['property'] = $this->property; - } - if (isset($this->_usedProperties['managerName'])) { - $output['manager_name'] = $this->managerName; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/LdapConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/LdapConfig.php deleted file mode 100644 index 62c67fd..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/LdapConfig.php +++ /dev/null @@ -1,236 +0,0 @@ -_usedProperties['service'] = true; - $this->service = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function baseDn($value): static - { - $this->_usedProperties['baseDn'] = true; - $this->baseDn = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchDn($value): static - { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function searchPassword($value): static - { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list $value - * - * @return $this - */ - public function extraFields(ParamConfigurator|array $value): static - { - $this->_usedProperties['extraFields'] = true; - $this->extraFields = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function defaultRoles(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['defaultRoles'] = true; - $this->defaultRoles = $value; - - return $this; - } - - /** - * @default 'sAMAccountName' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function uidKey($value): static - { - $this->_usedProperties['uidKey'] = true; - $this->uidKey = $value; - - return $this; - } - - /** - * @default '({uid_key}={username})' - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function filter($value): static - { - $this->_usedProperties['filter'] = true; - $this->filter = $value; - - return $this; - } - - /** - * @default null - * @param ParamConfigurator|mixed $value - * @return $this - */ - public function passwordAttribute($value): static - { - $this->_usedProperties['passwordAttribute'] = true; - $this->passwordAttribute = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('service', $value)) { - $this->_usedProperties['service'] = true; - $this->service = $value['service']; - unset($value['service']); - } - - if (array_key_exists('base_dn', $value)) { - $this->_usedProperties['baseDn'] = true; - $this->baseDn = $value['base_dn']; - unset($value['base_dn']); - } - - if (array_key_exists('search_dn', $value)) { - $this->_usedProperties['searchDn'] = true; - $this->searchDn = $value['search_dn']; - unset($value['search_dn']); - } - - if (array_key_exists('search_password', $value)) { - $this->_usedProperties['searchPassword'] = true; - $this->searchPassword = $value['search_password']; - unset($value['search_password']); - } - - if (array_key_exists('extra_fields', $value)) { - $this->_usedProperties['extraFields'] = true; - $this->extraFields = $value['extra_fields']; - unset($value['extra_fields']); - } - - if (array_key_exists('default_roles', $value)) { - $this->_usedProperties['defaultRoles'] = true; - $this->defaultRoles = $value['default_roles']; - unset($value['default_roles']); - } - - if (array_key_exists('uid_key', $value)) { - $this->_usedProperties['uidKey'] = true; - $this->uidKey = $value['uid_key']; - unset($value['uid_key']); - } - - if (array_key_exists('filter', $value)) { - $this->_usedProperties['filter'] = true; - $this->filter = $value['filter']; - unset($value['filter']); - } - - if (array_key_exists('password_attribute', $value)) { - $this->_usedProperties['passwordAttribute'] = true; - $this->passwordAttribute = $value['password_attribute']; - unset($value['password_attribute']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['service'])) { - $output['service'] = $this->service; - } - if (isset($this->_usedProperties['baseDn'])) { - $output['base_dn'] = $this->baseDn; - } - if (isset($this->_usedProperties['searchDn'])) { - $output['search_dn'] = $this->searchDn; - } - if (isset($this->_usedProperties['searchPassword'])) { - $output['search_password'] = $this->searchPassword; - } - if (isset($this->_usedProperties['extraFields'])) { - $output['extra_fields'] = $this->extraFields; - } - if (isset($this->_usedProperties['defaultRoles'])) { - $output['default_roles'] = $this->defaultRoles; - } - if (isset($this->_usedProperties['uidKey'])) { - $output['uid_key'] = $this->uidKey; - } - if (isset($this->_usedProperties['filter'])) { - $output['filter'] = $this->filter; - } - if (isset($this->_usedProperties['passwordAttribute'])) { - $output['password_attribute'] = $this->passwordAttribute; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/Memory/UserConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/Memory/UserConfig.php deleted file mode 100644 index ff4a54d..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/Memory/UserConfig.php +++ /dev/null @@ -1,75 +0,0 @@ -_usedProperties['password'] = true; - $this->password = $value; - - return $this; - } - - /** - * @param ParamConfigurator|list|string $value - * - * @return $this - */ - public function roles(ParamConfigurator|string|array $value): static - { - $this->_usedProperties['roles'] = true; - $this->roles = $value; - - return $this; - } - - public function __construct(array $value = []) - { - if (array_key_exists('password', $value)) { - $this->_usedProperties['password'] = true; - $this->password = $value['password']; - unset($value['password']); - } - - if (array_key_exists('roles', $value)) { - $this->_usedProperties['roles'] = true; - $this->roles = $value['roles']; - unset($value['roles']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['password'])) { - $output['password'] = $this->password; - } - if (isset($this->_usedProperties['roles'])) { - $output['roles'] = $this->roles; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/MemoryConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/MemoryConfig.php deleted file mode 100644 index 8600c2a..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/Security/ProviderConfig/MemoryConfig.php +++ /dev/null @@ -1,52 +0,0 @@ -users[$identifier])) { - $this->_usedProperties['users'] = true; - $this->users[$identifier] = new \Symfony\Config\Security\ProviderConfig\Memory\UserConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "user()" has already been initialized. You cannot pass values the second time you call user().'); - } - - return $this->users[$identifier]; - } - - public function __construct(array $value = []) - { - if (array_key_exists('users', $value)) { - $this->_usedProperties['users'] = true; - $this->users = array_map(fn ($v) => new \Symfony\Config\Security\ProviderConfig\Memory\UserConfig($v), $value['users']); - unset($value['users']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['users'])) { - $output['users'] = array_map(fn ($v) => $v->toArray(), $this->users); - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/Symfony/Config/SecurityConfig.php b/projects/priceservice/var/cache/dev/Symfony/Config/SecurityConfig.php deleted file mode 100644 index 7a06a78..0000000 --- a/projects/priceservice/var/cache/dev/Symfony/Config/SecurityConfig.php +++ /dev/null @@ -1,305 +0,0 @@ -_usedProperties['accessDeniedUrl'] = true; - $this->accessDeniedUrl = $value; - - return $this; - } - - /** - * @default 'migrate' - * @param ParamConfigurator|'none'|'migrate'|'invalidate' $value - * @return $this - */ - public function sessionFixationStrategy($value): static - { - $this->_usedProperties['sessionFixationStrategy'] = true; - $this->sessionFixationStrategy = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function hideUserNotFound($value): static - { - $this->_usedProperties['hideUserNotFound'] = true; - $this->hideUserNotFound = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @return $this - */ - public function eraseCredentials($value): static - { - $this->_usedProperties['eraseCredentials'] = true; - $this->eraseCredentials = $value; - - return $this; - } - - /** - * @default true - * @param ParamConfigurator|bool $value - * @deprecated The "enable_authenticator_manager" option at "security" is deprecated. - * @return $this - */ - public function enableAuthenticatorManager($value): static - { - $this->_usedProperties['enableAuthenticatorManager'] = true; - $this->enableAuthenticatorManager = $value; - - return $this; - } - - /** - * @default {"allow_if_all_abstain":false,"allow_if_equal_granted_denied":true} - */ - public function accessDecisionManager(array $value = []): \Symfony\Config\Security\AccessDecisionManagerConfig - { - if (null === $this->accessDecisionManager) { - $this->_usedProperties['accessDecisionManager'] = true; - $this->accessDecisionManager = new \Symfony\Config\Security\AccessDecisionManagerConfig($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "accessDecisionManager()" has already been initialized. You cannot pass values the second time you call accessDecisionManager().'); - } - - return $this->accessDecisionManager; - } - - /** - * @template TValue - * @param TValue $value - * @example "auto" - * @example {"algorithm":"auto","time_cost":8,"cost":13} - * @return \Symfony\Config\Security\PasswordHasherConfig|$this - * @psalm-return (TValue is array ? \Symfony\Config\Security\PasswordHasherConfig : static) - */ - public function passwordHasher(string $class, string|array $value = []): \Symfony\Config\Security\PasswordHasherConfig|static - { - if (!\is_array($value)) { - $this->_usedProperties['passwordHashers'] = true; - $this->passwordHashers[$class] = $value; - - return $this; - } - - if (!isset($this->passwordHashers[$class]) || !$this->passwordHashers[$class] instanceof \Symfony\Config\Security\PasswordHasherConfig) { - $this->_usedProperties['passwordHashers'] = true; - $this->passwordHashers[$class] = new \Symfony\Config\Security\PasswordHasherConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "passwordHasher()" has already been initialized. You cannot pass values the second time you call passwordHasher().'); - } - - return $this->passwordHashers[$class]; - } - - /** - * @example {"memory":{"users":{"foo":{"password":"foo","roles":"ROLE_USER"},"bar":{"password":"bar","roles":"[ROLE_USER, ROLE_ADMIN]"}}}} - * @example {"entity":{"class":"SecurityBundle:User","property":"username"}} - */ - public function provider(string $name, array $value = []): \Symfony\Config\Security\ProviderConfig - { - if (!isset($this->providers[$name])) { - $this->_usedProperties['providers'] = true; - $this->providers[$name] = new \Symfony\Config\Security\ProviderConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "provider()" has already been initialized. You cannot pass values the second time you call provider().'); - } - - return $this->providers[$name]; - } - - public function firewall(string $name, array $value = []): \Symfony\Config\Security\FirewallConfig - { - if (!isset($this->firewalls[$name])) { - $this->_usedProperties['firewalls'] = true; - $this->firewalls[$name] = new \Symfony\Config\Security\FirewallConfig($value); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException('The node created by "firewall()" has already been initialized. You cannot pass values the second time you call firewall().'); - } - - return $this->firewalls[$name]; - } - - public function accessControl(array $value = []): \Symfony\Config\Security\AccessControlConfig - { - $this->_usedProperties['accessControl'] = true; - - return $this->accessControl[] = new \Symfony\Config\Security\AccessControlConfig($value); - } - - /** - * @return $this - */ - public function roleHierarchy(string $id, mixed $value): static - { - $this->_usedProperties['roleHierarchy'] = true; - $this->roleHierarchy[$id] = $value; - - return $this; - } - - public function getExtensionAlias(): string - { - return 'security'; - } - - public function __construct(array $value = []) - { - if (array_key_exists('access_denied_url', $value)) { - $this->_usedProperties['accessDeniedUrl'] = true; - $this->accessDeniedUrl = $value['access_denied_url']; - unset($value['access_denied_url']); - } - - if (array_key_exists('session_fixation_strategy', $value)) { - $this->_usedProperties['sessionFixationStrategy'] = true; - $this->sessionFixationStrategy = $value['session_fixation_strategy']; - unset($value['session_fixation_strategy']); - } - - if (array_key_exists('hide_user_not_found', $value)) { - $this->_usedProperties['hideUserNotFound'] = true; - $this->hideUserNotFound = $value['hide_user_not_found']; - unset($value['hide_user_not_found']); - } - - if (array_key_exists('erase_credentials', $value)) { - $this->_usedProperties['eraseCredentials'] = true; - $this->eraseCredentials = $value['erase_credentials']; - unset($value['erase_credentials']); - } - - if (array_key_exists('enable_authenticator_manager', $value)) { - $this->_usedProperties['enableAuthenticatorManager'] = true; - $this->enableAuthenticatorManager = $value['enable_authenticator_manager']; - unset($value['enable_authenticator_manager']); - } - - if (array_key_exists('access_decision_manager', $value)) { - $this->_usedProperties['accessDecisionManager'] = true; - $this->accessDecisionManager = new \Symfony\Config\Security\AccessDecisionManagerConfig($value['access_decision_manager']); - unset($value['access_decision_manager']); - } - - if (array_key_exists('password_hashers', $value)) { - $this->_usedProperties['passwordHashers'] = true; - $this->passwordHashers = array_map(fn ($v) => \is_array($v) ? new \Symfony\Config\Security\PasswordHasherConfig($v) : $v, $value['password_hashers']); - unset($value['password_hashers']); - } - - if (array_key_exists('providers', $value)) { - $this->_usedProperties['providers'] = true; - $this->providers = array_map(fn ($v) => new \Symfony\Config\Security\ProviderConfig($v), $value['providers']); - unset($value['providers']); - } - - if (array_key_exists('firewalls', $value)) { - $this->_usedProperties['firewalls'] = true; - $this->firewalls = array_map(fn ($v) => new \Symfony\Config\Security\FirewallConfig($v), $value['firewalls']); - unset($value['firewalls']); - } - - if (array_key_exists('access_control', $value)) { - $this->_usedProperties['accessControl'] = true; - $this->accessControl = array_map(fn ($v) => new \Symfony\Config\Security\AccessControlConfig($v), $value['access_control']); - unset($value['access_control']); - } - - if (array_key_exists('role_hierarchy', $value)) { - $this->_usedProperties['roleHierarchy'] = true; - $this->roleHierarchy = $value['role_hierarchy']; - unset($value['role_hierarchy']); - } - - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); - } - } - - public function toArray(): array - { - $output = []; - if (isset($this->_usedProperties['accessDeniedUrl'])) { - $output['access_denied_url'] = $this->accessDeniedUrl; - } - if (isset($this->_usedProperties['sessionFixationStrategy'])) { - $output['session_fixation_strategy'] = $this->sessionFixationStrategy; - } - if (isset($this->_usedProperties['hideUserNotFound'])) { - $output['hide_user_not_found'] = $this->hideUserNotFound; - } - if (isset($this->_usedProperties['eraseCredentials'])) { - $output['erase_credentials'] = $this->eraseCredentials; - } - if (isset($this->_usedProperties['enableAuthenticatorManager'])) { - $output['enable_authenticator_manager'] = $this->enableAuthenticatorManager; - } - if (isset($this->_usedProperties['accessDecisionManager'])) { - $output['access_decision_manager'] = $this->accessDecisionManager->toArray(); - } - if (isset($this->_usedProperties['passwordHashers'])) { - $output['password_hashers'] = array_map(fn ($v) => $v instanceof \Symfony\Config\Security\PasswordHasherConfig ? $v->toArray() : $v, $this->passwordHashers); - } - if (isset($this->_usedProperties['providers'])) { - $output['providers'] = array_map(fn ($v) => $v->toArray(), $this->providers); - } - if (isset($this->_usedProperties['firewalls'])) { - $output['firewalls'] = array_map(fn ($v) => $v->toArray(), $this->firewalls); - } - if (isset($this->_usedProperties['accessControl'])) { - $output['access_control'] = array_map(fn ($v) => $v->toArray(), $this->accessControl); - } - if (isset($this->_usedProperties['roleHierarchy'])) { - $output['role_hierarchy'] = $this->roleHierarchy; - } - - return $output; - } - -} diff --git a/projects/priceservice/var/cache/dev/annotations.map b/projects/priceservice/var/cache/dev/annotations.map deleted file mode 100644 index a69ac2e..0000000 --- a/projects/priceservice/var/cache/dev/annotations.map +++ /dev/null @@ -1,3 +0,0 @@ - 'Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController', -); \ No newline at end of file diff --git a/projects/priceservice/var/cache/dev/url_generating_routes.php b/projects/priceservice/var/cache/dev/url_generating_routes.php deleted file mode 100644 index bc4a448..0000000 --- a/projects/priceservice/var/cache/dev/url_generating_routes.php +++ /dev/null @@ -1,13 +0,0 @@ - [['code', '_format'], ['_controller' => 'error_controller::preview', '_format' => 'html'], ['code' => '\\d+'], [['variable', '.', '[^/]++', '_format', true], ['variable', '/', '\\d+', 'code', true], ['text', '/_error']], [], [], []], - 'api_prices_get' => [['type'], ['type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexGet'], [], [['variable', '/', '[^/]++', 'type', true], ['text', '/api/prices']], [], [], []], - 'api_prices_post' => [['type'], ['type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexPost'], [], [['variable', '/', '[^/]++', 'type', true], ['text', '/api/prices']], [], [], []], - 'trigger_import' => [[], ['_controller' => 'App\\Controller\\Trigger\\PriceTriggerController::trigger'], [], [['text', '/trigger-import']], [], [], []], - 'App\Controller\Api\PricesController::indexGet' => [['type'], ['type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexGet'], [], [['variable', '/', '[^/]++', 'type', true], ['text', '/api/prices']], [], [], []], - 'App\Controller\Api\PricesController::indexPost' => [['type'], ['type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexPost'], [], [['variable', '/', '[^/]++', 'type', true], ['text', '/api/prices']], [], [], []], - 'App\Controller\Trigger\PriceTriggerController::trigger' => [[], ['_controller' => 'App\\Controller\\Trigger\\PriceTriggerController::trigger'], [], [['text', '/trigger-import']], [], [], []], -]; diff --git a/projects/priceservice/var/cache/dev/url_generating_routes.php.meta b/projects/priceservice/var/cache/dev/url_generating_routes.php.meta deleted file mode 100644 index 093289fa93ddf7d7cc7102e7cc9f04230bf0bba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3228 zcmdUxQE!_t6ovC!&|Vvd3`pWUO^qf^tF)@yW2B0b8{!shbPZ%E%75QAfv`k~l}Z)e zQ-Xx;d+zysIX<^teh_@J{J|ZMTR)3IaM4 z{Gho@3rGD{jTjMhxru<)t<-a`8d)uC) zBz7}D-aWe?_h-6?+q zI8Js+d9mCf#W_8uLc^LzCA)STYuAHpC6I_ySTtBo%{239bqiMiTz)aq9NMH~q-hM8 z0UT8n0h$@;5o>QcHStrr8`A7Cr!&{ayicsOZ}vfY(QV{qFW8qvyjMTwL*newNAlG~ zm@csU@*~(_a=w;}58~^hkD^~F!tniAw+BryvtH&_tvDH6J+##*Y*3YhG{D*O+Od}M82Tda;;&n_o6Yv8+*a6!>P6IA^JT-m= R`3j!0(A [[['_route' => 'trigger_import', '_controller' => 'App\\Controller\\Trigger\\PriceTriggerController::trigger'], null, ['POST' => 0], null, false, false, null]], - ], - [ // $regexpList - 0 => '{^(?' - .'|/_error/(\\d+)(?:\\.([^/]++))?(*:35)' - .'|/api/prices(?:/([^/]++))?(?' - .'|(*:70)' - .')' - .')/?$}sDu', - ], - [ // $dynamicRoutes - 35 => [[['_route' => '_preview_error', '_controller' => 'error_controller::preview', '_format' => 'html'], ['code', '_format'], null, null, false, true, null]], - 70 => [ - [['_route' => 'api_prices_get', 'type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexGet'], ['type'], ['GET' => 0], null, false, true, null], - [['_route' => 'api_prices_post', 'type' => '', '_controller' => 'App\\Controller\\Api\\PricesController::indexPost'], ['type'], ['POST' => 0], null, false, true, null], - [null, null, null, null, false, false, 0], - ], - ], - null, // $checkCondition -]; diff --git a/projects/priceservice/var/cache/dev/url_matching_routes.php.meta b/projects/priceservice/var/cache/dev/url_matching_routes.php.meta deleted file mode 100644 index 093289fa93ddf7d7cc7102e7cc9f04230bf0bba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3228 zcmdUxQE!_t6ovC!&|Vvd3`pWUO^qf^tF)@yW2B0b8{!shbPZ%E%75QAfv`k~l}Z)e zQ-Xx;d+zysIX<^teh_@J{J|ZMTR)3IaM4 z{Gho@3rGD{jTjMhxru<)t<-a`8d)uC) zBz7}D-aWe?_h-6?+q zI8Js+d9mCf#W_8uLc^LzCA)STYuAHpC6I_ySTtBo%{239bqiMiTz)aq9NMH~q-hM8 z0UT8n0h$@;5o>QcHStrr8`A7Cr!&{ayicsOZ}vfY(QV{qFW8qvyjMTwL*newNAlG~ zm@csU@*~(_a=w;}58~^hkD^~F!tniAw+BryvtH&_tvDH6J+##*Y*3YhG{D*O+Od}M82Tda;;&n_o6Yv8+*a6!>P6IA^JT-m= R`3j!0(Aset()\n#1 /var/www/html/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#2 /var/www/html/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#3 /var/www/html/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#4 /var/www/html/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#5 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#6 /var/www/html/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#7 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#8 /var/www/html/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#9 /var/www/html/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#10 /var/www/html/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#11 /var/www/html/priceservice/bin/console(11): require_once('...')\n#12 {main}"} [] - - [ERROR] Fehler beim Redis-Import: read error on connection to redis:6379 - -[2026-06-03T14:44:01.906889+02:00] console.DEBUG: Command "mto:prices:import" exited with code "1" {"command":"mto:prices:import","code":1} [] -Call ORM -[2026-06-03T14:45:01.938404+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:45:02.586578+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5841s -Start save prices -Time load data: 0.0823s -[SUCCESS] Imported Shop 1 (Version 1780490604). -Time write data (30177 keys): 0.3856s -[SUCCESS] Imported Shop 3 (Version 1780490604). -Time write data (83975 keys): 0.9439s -[SUCCESS] Imported Shop 4 (Version 1780490604). -Time write data (53648 keys): 0.6233s -[SUCCESS] Imported Shop 8 (Version 1780490604). -Time write data (702 keys): 0.0609s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.69s - -Call ORM -[2026-06-03T14:46:01.718817+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:46:02.309531+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7312s -Start save prices -Time load data: 0.0831s -[SUCCESS] Imported Shop 1 (Version 1780490662). -Time write data (30177 keys): 0.3906s -[SUCCESS] Imported Shop 3 (Version 1780490662). -Time write data (83975 keys): 0.8669s -[SUCCESS] Imported Shop 4 (Version 1780490662). -Time write data (53648 keys): 0.5853s -[SUCCESS] Imported Shop 8 (Version 1780490662). -Time write data (702 keys): 0.0584s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.73s - -Call ORM -[2026-06-03T14:47:01.528265+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:47:02.128394+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3394s -Start save prices -Time load data: 0.0849s -[SUCCESS] Imported Shop 1 (Version 1780490713). -Time write data (30177 keys): 0.29s -[SUCCESS] Imported Shop 3 (Version 1780490713). -Time write data (83975 keys): 0.7804s -[SUCCESS] Imported Shop 4 (Version 1780490713). -Time write data (53648 keys): 0.5101s -[SUCCESS] Imported Shop 8 (Version 1780490713). -Time write data (702 keys): 0.0063s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.03s - -Call ORM -[2026-06-03T14:48:01.796986+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:48:02.388963+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7559s -Start save prices -Time load data: 0.084s -[SUCCESS] Imported Shop 1 (Version 1780490770). -Time write data (30177 keys): 0.4038s -[SUCCESS] Imported Shop 3 (Version 1780490770). -Time write data (83975 keys): 0.9445s -[SUCCESS] Imported Shop 4 (Version 1780490770). -Time write data (53648 keys): 0.6344s -[SUCCESS] Imported Shop 8 (Version 1780490770). -Time write data (702 keys): 0.0745s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.91s - -Call ORM -[2026-06-03T14:49:01.790592+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:49:02.493149+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 2.7989s -Start save prices -Time load data: 0.0822s -[2026-06-03T14:49:04.671254+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671353+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671386+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671413+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 2.90s - -Call ORM -[2026-06-03T14:50:01.766146+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:50:02.412394+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6741s -Start save prices -Time load data: 0.0824s -[2026-06-03T14:50:03.522285+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522358+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522389+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522413+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 1.77s - -Call ORM -[2026-06-03T14:51:01.616885+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:51:02.240929+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7804s -Start save prices -Time load data: 0.0837s -[2026-06-03T14:51:03.480580+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480658+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480691+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480720+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 1.88s - -Call ORM -[2026-06-03T14:52:01.574356+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:52:02.148765+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7344s -Start save prices -Time load data: 0.0835s -[SUCCESS] Imported Shop 1 (Version 1780491011). -Time write data (30177 keys): 0.3418s -[SUCCESS] Imported Shop 3 (Version 1780491011). -Time write data (83975 keys): 0.8299s -[SUCCESS] Imported Shop 4 (Version 1780491011). -Time write data (53648 keys): 0.5509s -[SUCCESS] Imported Shop 8 (Version 1780491011). -Time write data (702 keys): 0.0548s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.61s - -Call ORM -[2026-06-03T14:53:01.264877+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:53:01.847315+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4067s -Start save prices -Time load data: 0.0858s -[SUCCESS] Imported Shop 1 (Version 1780491081). -Time write data (30177 keys): 0.3817s -[SUCCESS] Imported Shop 3 (Version 1780491081). -Time write data (83975 keys): 0.9178s -[SUCCESS] Imported Shop 4 (Version 1780491081). -Time write data (53648 keys): 0.6539s -[SUCCESS] Imported Shop 8 (Version 1780491081). -Time write data (702 keys): 0.0653s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.53s - -Call ORM -[2026-06-03T14:54:01.870737+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:54:02.443413+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4233s -Start save prices -Time load data: 0.0828s -[SUCCESS] Imported Shop 1 (Version 1780491141). -Time write data (30177 keys): 0.3902s -[SUCCESS] Imported Shop 3 (Version 1780491141). -Time write data (83975 keys): 0.9052s -[SUCCESS] Imported Shop 4 (Version 1780491141). -Time write data (53648 keys): 0.6364s -[SUCCESS] Imported Shop 8 (Version 1780491141). -Time write data (702 keys): 0.0739s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.53s - -Call ORM -[2026-06-03T14:55:01.478789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:55:02.106805+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4788s -Start save prices -Time load data: 0.0839s -[SUCCESS] Imported Shop 1 (Version 1780491194). -Time write data (30177 keys): 0.4179s -[SUCCESS] Imported Shop 3 (Version 1780491194). -Time write data (83975 keys): 0.9524s -[SUCCESS] Imported Shop 4 (Version 1780491194). -Time write data (53648 keys): 0.6419s -[SUCCESS] Imported Shop 8 (Version 1780491194). -Time write data (702 keys): 0.0793s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.67s - -Call ORM -[2026-06-03T14:56:01.227858+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:56:01.770357+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3349s -Start save prices -Time load data: 0.083s -[SUCCESS] Imported Shop 1 (Version 1780491258). -Time write data (30177 keys): 0.4025s -[SUCCESS] Imported Shop 3 (Version 1780491258). -Time write data (83975 keys): 0.9069s -[SUCCESS] Imported Shop 4 (Version 1780491258). -Time write data (53648 keys): 0.6161s -[SUCCESS] Imported Shop 8 (Version 1780491258). -Time write data (702 keys): 0.0583s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.42s - -Call ORM -[2026-06-03T14:57:01.723607+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:57:02.314434+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5509s -Start save prices -Time load data: 0.0812s -[SUCCESS] Imported Shop 1 (Version 1780491311). -Time write data (30177 keys): 0.3963s -[SUCCESS] Imported Shop 3 (Version 1780491311). -Time write data (83975 keys): 0.9018s -[SUCCESS] Imported Shop 4 (Version 1780491311). -Time write data (53648 keys): 0.6056s -[SUCCESS] Imported Shop 8 (Version 1780491311). -Time write data (702 keys): 0.066s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.62s - -Call ORM -[2026-06-03T14:58:01.418997+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:58:01.977089+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5239s -Start save prices -Time load data: 0.0861s -[SUCCESS] Imported Shop 1 (Version 1780491371). -Time write data (30177 keys): 0.4119s -[SUCCESS] Imported Shop 3 (Version 1780491371). -Time write data (83975 keys): 0.959s -[SUCCESS] Imported Shop 4 (Version 1780491371). -Time write data (53648 keys): 0.6418s -[SUCCESS] Imported Shop 8 (Version 1780491371). -Time write data (702 keys): 0.0736s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.71s - -Call ORM -[2026-06-03T14:59:01.211122+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:59:01.762572+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3335s -Start save prices -Time load data: 0.0812s -[SUCCESS] Imported Shop 1 (Version 1780491429). -Time write data (30177 keys): 0.397s -[SUCCESS] Imported Shop 3 (Version 1780491429). -Time write data (83975 keys): 0.9136s -[SUCCESS] Imported Shop 4 (Version 1780491429). -Time write data (53648 keys): 0.6121s -[SUCCESS] Imported Shop 8 (Version 1780491429). -Time write data (702 keys): 0.0597s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.41s - -Call ORM -[2026-06-03T15:00:01.701789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:00:02.438872+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.9363s -Start save prices -Time load data: 0.0834s -[SUCCESS] Imported Shop 1 (Version 1780491494). -Time write data (30177 keys): 0.3949s -[SUCCESS] Imported Shop 3 (Version 1780491494). -Time write data (83975 keys): 0.9152s -[SUCCESS] Imported Shop 4 (Version 1780491494). -Time write data (53648 keys): 0.6235s -[SUCCESS] Imported Shop 8 (Version 1780491494). -Time write data (702 keys): 0.0665s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 4.03s - -Call ORM -[2026-06-03T15:01:01.816160+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:01:02.365371+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5334s -Start save prices -Time load data: 0.08s -[SUCCESS] Imported Shop 1 (Version 1780491554). -Time write data (30177 keys): 0.3984s -[SUCCESS] Imported Shop 3 (Version 1780491554). -Time write data (83975 keys): 0.9198s -[SUCCESS] Imported Shop 4 (Version 1780491554). -Time write data (53648 keys): 0.6206s -[SUCCESS] Imported Shop 8 (Version 1780491554). -Time write data (702 keys): 0.066s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.63s - -Call ORM -[2026-06-03T15:02:01.527941+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:02:02.108239+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.606s -Start save prices -Time load data: 0.0813s -[SUCCESS] Imported Shop 1 (Version 1780491622). -Time write data (30177 keys): 0.3954s -[SUCCESS] Imported Shop 3 (Version 1780491622). -Time write data (83975 keys): 0.9227s -[SUCCESS] Imported Shop 4 (Version 1780491622). -Time write data (53648 keys): 0.623s -[SUCCESS] Imported Shop 8 (Version 1780491622). -Time write data (702 keys): 0.0663s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.71s - -Call ORM -[2026-06-03T15:03:01.316930+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:03:01.912877+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3695s -Start save prices -Time load data: 0.0829s -[SUCCESS] Imported Shop 1 (Version 1780491673). -Time write data (30177 keys): 0.4026s -[SUCCESS] Imported Shop 3 (Version 1780491673). -Time write data (83975 keys): 0.9113s -[SUCCESS] Imported Shop 4 (Version 1780491673). -Time write data (53648 keys): 0.6243s -[SUCCESS] Imported Shop 8 (Version 1780491673). -Time write data (702 keys): 0.0687s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.47s - -Call ORM -[2026-06-03T15:04:01.869789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:04:02.440464+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3125s -Start save prices -Time load data: 0.0813s -[SUCCESS] Imported Shop 1 (Version 1780491734). -Time write data (30177 keys): 0.3946s -[SUCCESS] Imported Shop 3 (Version 1780491734). -Time write data (83975 keys): 0.9294s -[SUCCESS] Imported Shop 4 (Version 1780491734). -Time write data (53648 keys): 0.6127s -[SUCCESS] Imported Shop 8 (Version 1780491734). -Time write data (702 keys): 0.0659s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.41s - -Call ORM -[2026-06-03T15:05:01.366249+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:05:01.956558+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.577s -Start save prices -Time load data: 0.0821s -[SUCCESS] Imported Shop 1 (Version 1780491795). -Time write data (30177 keys): 0.4007s -[SUCCESS] Imported Shop 3 (Version 1780491795). -Time write data (83975 keys): 0.9335s -[SUCCESS] Imported Shop 4 (Version 1780491795). -Time write data (53648 keys): 0.6327s -[SUCCESS] Imported Shop 8 (Version 1780491795). -Time write data (702 keys): 0.0704s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.71s - -Call ORM -[2026-06-03T15:06:01.157955+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:06:01.704960+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.847s -Start save prices -Time load data: 0.0849s -[SUCCESS] Imported Shop 1 (Version 1780491849). -Time write data (30177 keys): 0.398s -[SUCCESS] Imported Shop 3 (Version 1780491849). -Time write data (83975 keys): 0.9176s -[SUCCESS] Imported Shop 4 (Version 1780491849). -Time write data (53648 keys): 0.6273s -[SUCCESS] Imported Shop 8 (Version 1780491849). -Time write data (702 keys): 0.0671s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.96s - -Call ORM -[2026-06-03T15:07:01.192921+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:07:01.761346+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.438s -Start save prices -Time load data: 0.0826s -[SUCCESS] Imported Shop 1 (Version 1780491923). -Time write data (30177 keys): 0.3981s -[SUCCESS] Imported Shop 3 (Version 1780491923). -Time write data (83975 keys): 0.9383s -[SUCCESS] Imported Shop 4 (Version 1780491923). -Time write data (53648 keys): 0.6342s -[SUCCESS] Imported Shop 8 (Version 1780491923). -Time write data (702 keys): 0.0714s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.58s - -Call ORM -[2026-06-03T15:08:01.850393+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:08:02.455507+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6597s -Start save prices -Time load data: 0.0814s -[SUCCESS] Imported Shop 1 (Version 1780491979). -Time write data (30177 keys): 0.3971s -[SUCCESS] Imported Shop 3 (Version 1780491979). -Time write data (83975 keys): 0.9302s -[SUCCESS] Imported Shop 4 (Version 1780491979). -Time write data (53648 keys): 0.6127s -[SUCCESS] Imported Shop 8 (Version 1780491979). -Time write data (702 keys): 0.0691s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.76s - -Call ORM -[2026-06-03T15:09:01.693130+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:09:02.328706+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4367s -Start save prices -Time load data: 0.081s -[SUCCESS] Imported Shop 1 (Version 1780492029). -Time write data (30177 keys): 0.3868s -[SUCCESS] Imported Shop 3 (Version 1780492029). -Time write data (83975 keys): 0.8777s -[SUCCESS] Imported Shop 4 (Version 1780492029). -Time write data (53648 keys): 0.5811s -[SUCCESS] Imported Shop 8 (Version 1780492029). -Time write data (702 keys): 0.0562s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.43s - -Call ORM -[2026-06-03T15:10:01.207210+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:10:01.813652+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3607s -Start save prices -Time load data: 0.0842s -[SUCCESS] Imported Shop 1 (Version 1780492097). -Time write data (30177 keys): 0.4235s -[SUCCESS] Imported Shop 3 (Version 1780492097). -Time write data (83975 keys): 0.9402s -[SUCCESS] Imported Shop 4 (Version 1780492097). -Time write data (53648 keys): 0.6289s -[SUCCESS] Imported Shop 8 (Version 1780492097). -Time write data (702 keys): 0.0662s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.52s - -Call ORM -[2026-06-03T15:11:01.808069+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:11:02.375421+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3066s -Start save prices -Time load data: 0.0829s -[SUCCESS] Imported Shop 1 (Version 1780492150). -Time write data (30177 keys): 0.381s -[SUCCESS] Imported Shop 3 (Version 1780492150). -Time write data (83975 keys): 0.9074s -[SUCCESS] Imported Shop 4 (Version 1780492150). -Time write data (53648 keys): 0.6013s -[SUCCESS] Imported Shop 8 (Version 1780492150). -Time write data (702 keys): 0.0576s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.35s - -Call ORM -[2026-06-03T15:12:01.239296+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:12:01.824916+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5397s -Start save prices -Time load data: 0.0815s -[SUCCESS] Imported Shop 1 (Version 1780492213). -Time write data (30177 keys): 0.3804s -[SUCCESS] Imported Shop 3 (Version 1780492213). -Time write data (83975 keys): 0.8704s -[SUCCESS] Imported Shop 4 (Version 1780492213). -Time write data (53648 keys): 0.602s -[SUCCESS] Imported Shop 8 (Version 1780492213). -Time write data (702 keys): 0.0555s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.54s - -Call ORM -[2026-06-03T15:13:01.861961+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:13:02.471481+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5694s -Start save prices -Time load data: 0.0804s -[SUCCESS] Imported Shop 1 (Version 1780492281). -Time write data (30177 keys): 0.3812s -[SUCCESS] Imported Shop 3 (Version 1780492281). -Time write data (83975 keys): 0.859s -[SUCCESS] Imported Shop 4 (Version 1780492281). -Time write data (53648 keys): 0.577s -[SUCCESS] Imported Shop 8 (Version 1780492281). -Time write data (702 keys): 0.052s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.53s - -Call ORM -[2026-06-03T15:14:01.475492+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:14:02.087110+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4116s -Start save prices -Time load data: 0.0815s -[SUCCESS] Imported Shop 1 (Version 1780492341). -Time write data (30177 keys): 0.385s -[SUCCESS] Imported Shop 3 (Version 1780492341). -Time write data (83975 keys): 0.8959s -[SUCCESS] Imported Shop 4 (Version 1780492341). -Time write data (53648 keys): 0.6074s -[SUCCESS] Imported Shop 8 (Version 1780492341). -Time write data (702 keys): 0.0648s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.46s - -Call ORM -[2026-06-03T15:15:02.015934+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:15:02.743076+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 2.6906s -Start save prices -Time load data: 0.0822s -[SUCCESS] Imported Shop 1 (Version 1780492392). -Time write data (30177 keys): 0.3781s -[SUCCESS] Imported Shop 3 (Version 1780492392). -Time write data (83975 keys): 0.8955s -[SUCCESS] Imported Shop 4 (Version 1780492392). -Time write data (53648 keys): 0.6046s -[SUCCESS] Imported Shop 8 (Version 1780492392). -Time write data (702 keys): 0.057s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 4.72s - -Call ORM -[2026-06-03T15:16:01.816928+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:16:02.484127+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7015s -Start save prices -Time load data: 0.0811s -[SUCCESS] Imported Shop 1 (Version 1780492455). -Time write data (30177 keys): 0.3869s -[SUCCESS] Imported Shop 3 (Version 1780492455). -Time write data (83975 keys): 0.9109s -[SUCCESS] Imported Shop 4 (Version 1780492455). -Time write data (53648 keys): 0.6071s -[SUCCESS] Imported Shop 8 (Version 1780492455). -Time write data (702 keys): 0.0632s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.77s - -Call ORM -[2026-06-03T15:17:01.660048+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:17:02.294859+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.404s -Start save prices -Time load data: 0.0826s -[SUCCESS] Imported Shop 1 (Version 1780492512). -Time write data (30177 keys): 0.3864s -[SUCCESS] Imported Shop 3 (Version 1780492512). -Time write data (83975 keys): 0.8633s -[SUCCESS] Imported Shop 4 (Version 1780492512). -Time write data (53648 keys): 0.5867s -[SUCCESS] Imported Shop 8 (Version 1780492512). -Time write data (702 keys): 0.0573s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.39s - -Call ORM -[2026-06-03T15:18:01.135030+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:18:01.676593+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.2992s -Start save prices -Time load data: 0.0831s -[SUCCESS] Imported Shop 1 (Version 1780492571). -Time write data (30177 keys): 0.3743s -[SUCCESS] Imported Shop 3 (Version 1780492571). -Time write data (83975 keys): 0.8774s -[SUCCESS] Imported Shop 4 (Version 1780492571). -Time write data (53648 keys): 0.5617s -[SUCCESS] Imported Shop 8 (Version 1780492571). -Time write data (702 keys): 0.0519s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.26s - -Call ORM -[2026-06-03T15:19:01.475266+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:19:02.118265+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4763s -Start save prices -Time load data: 0.0809s -[SUCCESS] Imported Shop 1 (Version 1780492628). -Time write data (30177 keys): 0.3878s -[SUCCESS] Imported Shop 3 (Version 1780492628). -Time write data (83975 keys): 0.905s -[SUCCESS] Imported Shop 4 (Version 1780492628). -Time write data (53648 keys): 0.6217s -[SUCCESS] Imported Shop 8 (Version 1780492628). -Time write data (702 keys): 0.06s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.55s - -Call ORM -[2026-06-03T15:20:01.101205+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:20:01.816730+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7658s -Start save prices -Time load data: 0.0815s -[SUCCESS] Imported Shop 1 (Version 1780492705). -Time write data (30177 keys): 0.3943s -[SUCCESS] Imported Shop 3 (Version 1780492705). -Time write data (83975 keys): 0.8921s -[SUCCESS] Imported Shop 4 (Version 1780492705). -Time write data (53648 keys): 0.5833s -[SUCCESS] Imported Shop 8 (Version 1780492705). -Time write data (702 keys): 0.0538s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.78s - -Call ORM -[2026-06-03T15:21:01.965406+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:21:02.513194+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.2827s -Start save prices -Time load data: 0.083s -[SUCCESS] Imported Shop 1 (Version 1780492756). -Time write data (30177 keys): 0.3845s -[SUCCESS] Imported Shop 3 (Version 1780492756). -Time write data (83975 keys): 0.9011s -[SUCCESS] Imported Shop 4 (Version 1780492756). -Time write data (53648 keys): 0.6062s -[SUCCESS] Imported Shop 8 (Version 1780492756). -Time write data (702 keys): 0.0568s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.33s - -Call ORM -[2026-06-03T15:22:01.373732+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:22:01.969555+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7114s -Start save prices -Time load data: 0.0809s -[SUCCESS] Imported Shop 1 (Version 1780492816). -Time write data (30177 keys): 0.3822s -[SUCCESS] Imported Shop 3 (Version 1780492816). -Time write data (83975 keys): 0.8807s -[SUCCESS] Imported Shop 4 (Version 1780492816). -Time write data (53648 keys): 0.6075s -[SUCCESS] Imported Shop 8 (Version 1780492816). -Time write data (702 keys): 0.0561s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.73s - -Call ORM -[2026-06-03T15:23:01.185614+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:23:01.743618+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5046s -Start save prices -Time load data: 0.0807s -[SUCCESS] Imported Shop 1 (Version 1780492874). -Time write data (30177 keys): 0.3852s -[SUCCESS] Imported Shop 3 (Version 1780492874). -Time write data (83975 keys): 0.8915s -[SUCCESS] Imported Shop 4 (Version 1780492874). -Time write data (53648 keys): 0.5972s -[SUCCESS] Imported Shop 8 (Version 1780492874). -Time write data (702 keys): 0.0541s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.53s - -Call ORM -[2026-06-03T15:24:01.792132+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:24:03.428085+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 2.7036s -Start save prices -Time load data: 0.083s -[SUCCESS] Imported Shop 1 (Version 1780492937). -Time write data (30177 keys): 0.3884s -[SUCCESS] Imported Shop 3 (Version 1780492937). -Time write data (83975 keys): 0.9145s -[SUCCESS] Imported Shop 4 (Version 1780492937). -Time write data (53648 keys): 0.5991s -[SUCCESS] Imported Shop 8 (Version 1780492937). -Time write data (702 keys): 0.0549s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 4.76s - -Call ORM -[2026-06-03T15:25:01.628083+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:25:02.364435+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.562s -Start save prices -Time load data: 0.0813s -[SUCCESS] Imported Shop 1 (Version 1780492998). -Time write data (30177 keys): 0.3877s -[SUCCESS] Imported Shop 3 (Version 1780492998). -Time write data (83975 keys): 0.8789s -[SUCCESS] Imported Shop 4 (Version 1780492998). -Time write data (53648 keys): 0.6058s -[SUCCESS] Imported Shop 8 (Version 1780492998). -Time write data (702 keys): 0.0597s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.59s - -Call ORM -[2026-06-03T15:26:01.296686+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:26:01.930098+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4518s -Start save prices -Time load data: 0.0808s -[SUCCESS] Imported Shop 1 (Version 1780493049). -Time write data (30177 keys): 0.3805s -[SUCCESS] Imported Shop 3 (Version 1780493049). -Time write data (83975 keys): 0.9s -[SUCCESS] Imported Shop 4 (Version 1780493049). -Time write data (53648 keys): 0.5952s -[SUCCESS] Imported Shop 8 (Version 1780493049). -Time write data (702 keys): 0.0538s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.48s - -Call ORM -[2026-06-03T15:27:01.852895+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:11.857082+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:27:11.860143+02:00] http_client.INFO: Request: "GET https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:11.953721+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:27:11.953903+02:00] http_client.INFO: Request: "GET https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:12.416644+02:00] http_client.INFO: Response: "200 https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 11.1369s -Start save prices -Time load data: 0.0464s -[SUCCESS] Imported Shop 1 (Version 1780493175). -Time write data (16713 keys): 0.2505s -[SUCCESS] Imported Shop 3 (Version 1780493175). -Time write data (46575 keys): 0.5542s -[SUCCESS] Imported Shop 4 (Version 1780493175). -Time write data (29712 keys): 0.356s -[SUCCESS] Imported Shop 8 (Version 1780493175). -Time write data (1254 keys): 0.0656s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 12.42s - -Call ORM -[2026-06-03T15:28:01.349434+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:28:01.988241+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6147s -Start save prices -Time load data: 0.0846s -[2026-06-03T15:28:03.048401+02:00] app.INFO: Version: 1780493175 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048475+02:00] app.INFO: Version: 1780493175 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048511+02:00] app.INFO: Version: 1780493175 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048539+02:00] app.INFO: Version: 1780493175 for Shop 8 already exists, skipping import. [] [] - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 1.71s - -Call ORM -[2026-06-03T15:29:01.143647+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:29:01.762980+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3819s -Start save prices -Time load data: 0.0816s -[SUCCESS] Imported Shop 1 (Version 1780493243). -Time write data (30177 keys): 0.3825s -[SUCCESS] Imported Shop 3 (Version 1780493243). -Time write data (83975 keys): 0.9034s -[SUCCESS] Imported Shop 4 (Version 1780493243). -Time write data (53648 keys): 0.5868s -[SUCCESS] Imported Shop 8 (Version 1780493243). -Time write data (702 keys): 0.0398s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.39s - -Call ORM -[2026-06-03T15:30:01.612454+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:30:02.344665+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5941s -Start save prices -Time load data: 0.0815s -[SUCCESS] Imported Shop 1 (Version 1780493291). -Time write data (30177 keys): 0.348s -[SUCCESS] Imported Shop 3 (Version 1780493291). -Time write data (83975 keys): 0.8827s -[SUCCESS] Imported Shop 4 (Version 1780493291). -Time write data (53648 keys): 0.5711s -[SUCCESS] Imported Shop 8 (Version 1780493291). -Time write data (702 keys): 0.0545s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.55s - -Call ORM -[2026-06-03T15:31:01.237445+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:31:01.856436+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6571s -Start save prices -Time load data: 0.0795s -[SUCCESS] Imported Shop 1 (Version 1780493349). -Time write data (30177 keys): 0.3717s -[SUCCESS] Imported Shop 3 (Version 1780493349). -Time write data (83975 keys): 0.9068s -[SUCCESS] Imported Shop 4 (Version 1780493349). -Time write data (53648 keys): 0.6141s -[SUCCESS] Imported Shop 8 (Version 1780493349). -Time write data (702 keys): 0.0644s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.71s - -Call ORM -[2026-06-03T15:32:02.026529+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:32:02.617782+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4343s -Start save prices -Time load data: 0.0946s -[SUCCESS] Imported Shop 1 (Version 1780493417). -Time write data (30177 keys): 0.4229s -[SUCCESS] Imported Shop 3 (Version 1780493417). -Time write data (83975 keys): 0.9503s -[SUCCESS] Imported Shop 4 (Version 1780493417). -Time write data (53648 keys): 0.6344s -[SUCCESS] Imported Shop 8 (Version 1780493417). -Time write data (702 keys): 0.0774s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.63s - -Call ORM -[2026-06-03T15:33:01.738302+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:33:02.344147+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4031s -Start save prices -Time load data: 0.0861s -[SUCCESS] Imported Shop 1 (Version 1780493473). -Time write data (30177 keys): 0.4044s -[SUCCESS] Imported Shop 3 (Version 1780493473). -Time write data (83975 keys): 0.9338s -[SUCCESS] Imported Shop 4 (Version 1780493473). -Time write data (53648 keys): 0.6291s -[SUCCESS] Imported Shop 8 (Version 1780493473). -Time write data (702 keys): 0.0743s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.55s - -Call ORM -[2026-06-03T15:34:01.365260+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:34:01.933875+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5545s -Start save prices -Time load data: 0.0829s -[SUCCESS] Imported Shop 1 (Version 1780493542). -Time write data (30177 keys): 0.3891s -[SUCCESS] Imported Shop 3 (Version 1780493542). -Time write data (83975 keys): 0.924s -[SUCCESS] Imported Shop 4 (Version 1780493542). -Time write data (53648 keys): 0.6075s -[SUCCESS] Imported Shop 8 (Version 1780493542). -Time write data (702 keys): 0.0656s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.64s - -Call ORM -[2026-06-03T15:35:01.086560+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:35:01.634683+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3642s -Start save prices -Time load data: 0.0839s -[SUCCESS] Imported Shop 1 (Version 1780493601). -Time write data (30177 keys): 0.387s -[SUCCESS] Imported Shop 3 (Version 1780493601). -Time write data (83975 keys): 0.9215s -[SUCCESS] Imported Shop 4 (Version 1780493601). -Time write data (53648 keys): 0.6081s -[SUCCESS] Imported Shop 8 (Version 1780493601). -Time write data (702 keys): 0.0645s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.44s - -Call ORM -[2026-06-03T15:36:01.610313+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:36:02.187422+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3721s -Start save prices -Time load data: 0.0814s -[SUCCESS] Imported Shop 1 (Version 1780493650). -Time write data (30177 keys): 0.383s -[SUCCESS] Imported Shop 3 (Version 1780493650). -Time write data (83975 keys): 0.9022s -[SUCCESS] Imported Shop 4 (Version 1780493650). -Time write data (53648 keys): 0.6125s -[SUCCESS] Imported Shop 8 (Version 1780493650). -Time write data (702 keys): 0.0636s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.43s - -Call ORM -[2026-06-03T15:37:01.119482+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:37:01.727069+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6779s -Start save prices -Time load data: 0.0831s -[SUCCESS] Imported Shop 1 (Version 1780493725). -Time write data (30177 keys): 0.395s -[SUCCESS] Imported Shop 3 (Version 1780493725). -Time write data (83975 keys): 0.9103s -[SUCCESS] Imported Shop 4 (Version 1780493725). -Time write data (53648 keys): 0.604s -[SUCCESS] Imported Shop 8 (Version 1780493725). -Time write data (702 keys): 0.0634s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.75s - -Call ORM -[2026-06-03T15:38:01.948261+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:38:02.506468+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.3903s -Start save prices -Time load data: 0.0831s -[SUCCESS] Imported Shop 1 (Version 1780493774). -Time write data (30177 keys): 0.3922s -[SUCCESS] Imported Shop 3 (Version 1780493774). -Time write data (83975 keys): 0.92s -[SUCCESS] Imported Shop 4 (Version 1780493774). -Time write data (53648 keys): 0.6136s -[SUCCESS] Imported Shop 8 (Version 1780493774). -Time write data (702 keys): 0.0624s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.48s - -Call ORM -[2026-06-03T15:39:01.504990+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:39:02.152133+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6534s -Start save prices -Time load data: 0.0816s -[SUCCESS] Imported Shop 1 (Version 1780493843). -Time write data (30177 keys): 0.3997s -[SUCCESS] Imported Shop 3 (Version 1780493843). -Time write data (83975 keys): 0.9205s -[SUCCESS] Imported Shop 4 (Version 1780493843). -Time write data (53648 keys): 0.6125s -[SUCCESS] Imported Shop 8 (Version 1780493843). -Time write data (702 keys): 0.065s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.75s - -Call ORM -[2026-06-03T15:40:01.331982+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:40:01.907482+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.8552s -Start save prices -Time load data: 0.0829s -[SUCCESS] Imported Shop 1 (Version 1780493889). -Time write data (30177 keys): 0.4037s -[SUCCESS] Imported Shop 3 (Version 1780493889). -Time write data (83975 keys): 0.9308s -[SUCCESS] Imported Shop 4 (Version 1780493889). -Time write data (53648 keys): 0.6273s -[SUCCESS] Imported Shop 8 (Version 1780493889). -Time write data (702 keys): 0.0695s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.98s - -Call ORM -[2026-06-03T15:41:01.397429+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:41:01.986935+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4491s -Start save prices -Time load data: 0.0852s -[SUCCESS] Imported Shop 1 (Version 1780493956). -Time write data (30177 keys): 0.4108s -[SUCCESS] Imported Shop 3 (Version 1780493956). -Time write data (83975 keys): 0.9407s -[SUCCESS] Imported Shop 4 (Version 1780493956). -Time write data (53648 keys): 0.6199s -[SUCCESS] Imported Shop 8 (Version 1780493956). -Time write data (702 keys): 0.0689s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.59s - -Call ORM -[2026-06-03T15:42:02.066491+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:42:02.628097+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4218s -Start save prices -Time load data: 0.0844s -[SUCCESS] Imported Shop 1 (Version 1780494014). -Time write data (30177 keys): 0.4028s -[SUCCESS] Imported Shop 3 (Version 1780494014). -Time write data (83975 keys): 0.9395s -[SUCCESS] Imported Shop 4 (Version 1780494014). -Time write data (53648 keys): 0.6287s -[SUCCESS] Imported Shop 8 (Version 1780494014). -Time write data (702 keys): 0.0682s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.56s - -Call ORM -[2026-06-03T15:43:01.707114+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:43:02.269560+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4613s -Start save prices -Time load data: 0.0822s -[SUCCESS] Imported Shop 1 (Version 1780494070). -Time write data (30177 keys): 0.3952s -[SUCCESS] Imported Shop 3 (Version 1780494070). -Time write data (83975 keys): 0.9236s -[SUCCESS] Imported Shop 4 (Version 1780494070). -Time write data (53648 keys): 0.6452s -[SUCCESS] Imported Shop 8 (Version 1780494070). -Time write data (702 keys): 0.086s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.61s - -Call ORM -[2026-06-03T15:44:01.397625+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:44:01.949700+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.338s -Start save prices -Time load data: 0.0842s -[SUCCESS] Imported Shop 1 (Version 1780494138). -Time write data (30177 keys): 0.4009s -[SUCCESS] Imported Shop 3 (Version 1780494138). -Time write data (83975 keys): 0.917s -[SUCCESS] Imported Shop 4 (Version 1780494138). -Time write data (53648 keys): 0.6142s -[SUCCESS] Imported Shop 8 (Version 1780494138). -Time write data (702 keys): 0.068s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.44s - -Call ORM -[2026-06-03T15:45:01.916822+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:45:02.534427+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.468s -Start save prices -Time load data: 0.0825s -[SUCCESS] Imported Shop 1 (Version 1780494199). -Time write data (30177 keys): 0.4072s -[SUCCESS] Imported Shop 3 (Version 1780494199). -Time write data (83975 keys): 0.9148s -[SUCCESS] Imported Shop 4 (Version 1780494199). -Time write data (53648 keys): 0.6233s -[SUCCESS] Imported Shop 8 (Version 1780494199). -Time write data (702 keys): 0.0677s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.58s - -Call ORM -[2026-06-03T15:46:01.576153+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:11.583436+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.583663+02:00] http_client.INFO: Request: "GET https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:11.773892+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.774162+02:00] http_client.INFO: Request: "GET https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:12.203513+02:00] http_client.INFO: Response: "200 https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 11.1904s -Start save prices -Time load data: 0.0478s -[SUCCESS] Imported Shop 1 (Version 1780494320). -Time write data (16713 keys): 0.272s -[SUCCESS] Imported Shop 3 (Version 1780494320). -Time write data (46575 keys): 0.5807s -[SUCCESS] Imported Shop 4 (Version 1780494320). -Time write data (29712 keys): 0.3744s -[SUCCESS] Imported Shop 8 (Version 1780494320). -Time write data (1254 keys): 0.0667s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 12.54s - -Call ORM -[2026-06-03T15:47:01.199628+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:47:01.754795+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4511s -Start save prices -Time load data: 0.0842s -[2026-06-03T15:47:02.734652+02:00] app.INFO: Version: 1780494320 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734722+02:00] app.INFO: Version: 1780494320 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734753+02:00] app.INFO: Version: 1780494320 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734777+02:00] app.INFO: Version: 1780494320 for Shop 8 already exists, skipping import. [] [] - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 1.55s - -Call ORM -[2026-06-03T15:48:01.831394+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:48:02.462044+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6608s -Start save prices -Time load data: 0.0833s -[SUCCESS] Imported Shop 1 (Version 1780494370). -Time write data (30177 keys): 0.4014s -[SUCCESS] Imported Shop 3 (Version 1780494370). -Time write data (83975 keys): 0.9181s -[SUCCESS] Imported Shop 4 (Version 1780494370). -Time write data (53648 keys): 0.6054s -[SUCCESS] Imported Shop 8 (Version 1780494370). -Time write data (702 keys): 0.0526s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.74s - -Call ORM -[2026-06-03T15:49:01.653347+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:49:02.197117+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5487s -Start save prices -Time load data: 0.0836s -[SUCCESS] Imported Shop 1 (Version 1780494433). -Time write data (30177 keys): 0.3679s -[SUCCESS] Imported Shop 3 (Version 1780494433). -Time write data (83975 keys): 0.8925s -[SUCCESS] Imported Shop 4 (Version 1780494433). -Time write data (53648 keys): 0.6214s -[SUCCESS] Imported Shop 8 (Version 1780494433). -Time write data (702 keys): 0.0782s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.61s - -Call ORM -[2026-06-03T15:50:01.341143+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:50:02.048678+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4715s -Start save prices -Time load data: 0.0805s -[SUCCESS] Imported Shop 1 (Version 1780494489). -Time write data (30177 keys): 0.3863s -[SUCCESS] Imported Shop 3 (Version 1780494489). -Time write data (83975 keys): 0.935s -[SUCCESS] Imported Shop 4 (Version 1780494489). -Time write data (53648 keys): 0.6143s -[SUCCESS] Imported Shop 8 (Version 1780494489). -Time write data (702 keys): 0.0703s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.57s - -Call ORM -[2026-06-03T15:51:01.995880+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:51:02.588889+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.4279s -Start save prices -Time load data: 0.0842s -[SUCCESS] Imported Shop 1 (Version 1780494549). -Time write data (30177 keys): 0.4031s -[SUCCESS] Imported Shop 3 (Version 1780494549). -Time write data (83975 keys): 0.9444s -[SUCCESS] Imported Shop 4 (Version 1780494549). -Time write data (53648 keys): 0.6483s -[SUCCESS] Imported Shop 8 (Version 1780494549). -Time write data (702 keys): 0.0701s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.59s - -Call ORM -[2026-06-03T15:52:01.673663+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:52:02.279695+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.598s -Start save prices -Time load data: 0.0846s -[SUCCESS] Imported Shop 1 (Version 1780494613). -Time write data (30177 keys): 0.4163s -[SUCCESS] Imported Shop 3 (Version 1780494613). -Time write data (83975 keys): 0.967s -[SUCCESS] Imported Shop 4 (Version 1780494613). -Time write data (53648 keys): 0.6257s -[SUCCESS] Imported Shop 8 (Version 1780494613). -Time write data (702 keys): 0.0744s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.78s - -Call ORM -[2026-06-03T15:53:01.536464+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:53:02.099615+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.5341s -Start save prices -Time load data: 0.0842s -[SUCCESS] Imported Shop 1 (Version 1780494670). -Time write data (30177 keys): 0.3997s -[SUCCESS] Imported Shop 3 (Version 1780494670). -Time write data (83975 keys): 0.957s -[SUCCESS] Imported Shop 4 (Version 1780494670). -Time write data (53648 keys): 0.6337s -[SUCCESS] Imported Shop 8 (Version 1780494670). -Time write data (702 keys): 0.0762s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.70s - -Call ORM -[2026-06-03T15:54:01.319297+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:54:01.896003+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.7472s -Start save prices -Time load data: 0.0847s -[SUCCESS] Imported Shop 1 (Version 1780494739). -Time write data (30177 keys): 0.4152s -[SUCCESS] Imported Shop 3 (Version 1780494739). -Time write data (83975 keys): 0.9838s -[SUCCESS] Imported Shop 4 (Version 1780494739). -Time write data (53648 keys): 0.6375s -[SUCCESS] Imported Shop 8 (Version 1780494739). -Time write data (702 keys): 0.0747s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.96s - -Call ORM -[2026-06-03T15:55:01.358199+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:55:02.025714+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.6466s -Start save prices -Time load data: 0.0842s -[SUCCESS] Imported Shop 1 (Version 1780494798). -Time write data (30177 keys): 0.4135s -[SUCCESS] Imported Shop 3 (Version 1780494798). -Time write data (83975 keys): 0.9643s -[SUCCESS] Imported Shop 4 (Version 1780494798). -Time write data (53648 keys): 0.6477s -[SUCCESS] Imported Shop 8 (Version 1780494798). -Time write data (702 keys): 0.0757s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.85s - -Call ORM -[2026-06-03T15:56:01.288142+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:56:01.903802+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -Time ORM call: 1.8117s -Start save prices -Time load data: 0.0845s -[SUCCESS] Imported Shop 1 (Version 1780494848). -Time write data (30177 keys): 0.4044s -[SUCCESS] Imported Shop 3 (Version 1780494848). -Time write data (83975 keys): 0.953s -[SUCCESS] Imported Shop 4 (Version 1780494848). -Time write data (53648 keys): 0.6335s -[SUCCESS] Imported Shop 8 (Version 1780494848). -Time write data (702 keys): 0.0724s - - [OK] Preisdaten erfolgreich nach Redis importiert. - - Dauer: 3.97s - diff --git a/projects/priceservice/var/log/dev-2026-06-03.log b/projects/priceservice/var/log/dev-2026-06-03.log deleted file mode 100644 index 35aff71..0000000 --- a/projects/priceservice/var/log/dev-2026-06-03.log +++ /dev/null @@ -1,16 +0,0 @@ -[2026-06-03T14:11:42.929346+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T14:11:47.765349+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T12:16:42.902222+00:00] console.CRITICAL: Error thrown while running command "mto:test:trigger-import". Message: "The redis transport requires php-redis 4.3.0 or higher." {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\LogicException(code: 0): The redis transport requires php-redis 4.3.0 or higher. at /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:74)","command":"mto:test:trigger-import","message":"The redis transport requires php-redis 4.3.0 or higher."} [] -[2026-06-03T14:18:46.977429+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T14:20:41.986773+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async -vv". Message: "NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:461)","command":"messenger:consume async -vv","message":"NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option"} [] -[2026-06-03T14:21:10.305302+02:00] console.CRITICAL: Error thrown while running command "'mto:'". Message: "Command "mto:" is not defined. Did you mean one of these? mto:prices:import mto:prices:read mto:test:trigger-import" {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"mto:\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import at /var/www/html/priceservice/vendor/symfony/console/Application.php:737)","command":"'mto:'","message":"Command \"mto:\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import"} [] -[2026-06-03T12:25:02.885880+00:00] console.CRITICAL: Error thrown while running command "mto". Message: "Command "mto" is not defined. Did you mean one of these? mto:prices:import mto:prices:read mto:test:trigger-import" {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"mto\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import at /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php:737)","command":"mto","message":"Command \"mto\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import"} [] -[2026-06-03T12:25:12.723819+00:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"Class \"Redis\" not found","trace":"#0 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(53): App\\Service\\Adapter\\RedisClientService->App\\Service\\Adapter\\{closure}()\n#1 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(19): App\\Service\\Adapter\\RedisClientService->withRetry()\n#2 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(479): App\\Service\\Adapter\\RedisClientService->get()\n#3 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(368): App\\Service\\Prices\\RedisImportService->redis()\n#4 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#5 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#6 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#7 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#8 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#9 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#10 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#11 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#12 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#13 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#14 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/bin/console(11): require_once('...')\n#15 {main}"} [] -[2026-06-03T12:25:46.318972+00:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"Class \"Redis\" not found","trace":"#0 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(53): App\\Service\\Adapter\\RedisClientService->App\\Service\\Adapter\\{closure}()\n#1 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(19): App\\Service\\Adapter\\RedisClientService->withRetry()\n#2 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(479): App\\Service\\Adapter\\RedisClientService->get()\n#3 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(368): App\\Service\\Prices\\RedisImportService->redis()\n#4 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#5 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#6 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#7 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#8 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#9 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#10 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#11 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#12 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#13 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#14 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/bin/console(11): require_once('...')\n#15 {main}"} [] -[2026-06-03T14:26:12.386435+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async --time-limit=3600 --memory-limit=128M -v". Message: "NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:461)","command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","message":"NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option"} [] -[2026-06-03T14:44:01.901719+02:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"read error on connection to redis:6379","trace":"#0 /var/www/html/priceservice/src/Service/Prices/RedisImportService.php(368): Redis->set()\n#1 /var/www/html/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#2 /var/www/html/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#3 /var/www/html/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#4 /var/www/html/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#5 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#6 /var/www/html/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#7 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#8 /var/www/html/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#9 /var/www/html/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#10 /var/www/html/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#11 /var/www/html/priceservice/bin/console(11): require_once('...')\n#12 {main}"} [] -[2026-06-03T14:46:55.113048+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async --time-limit=3600 --memory-limit=128M -v". Message: "socket error on read socket" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): socket error on read socket at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:696)\n[previous exception] [object] (RedisException(code: 0): socket error on read socket at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:693)","command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","message":"socket error on read socket"} [] -[2026-06-03T15:27:11.857082+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:27:11.953721+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.583436+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.773892+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] diff --git a/projects/priceservice/var/log/dev.log b/projects/priceservice/var/log/dev.log deleted file mode 100644 index 22c5626..0000000 --- a/projects/priceservice/var/log/dev.log +++ /dev/null @@ -1,243 +0,0 @@ -[2026-06-03T14:11:42.929346+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T14:11:47.765349+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T14:14:02.342720+02:00] request.INFO: Matched route "api_prices_get". {"route":"api_prices_get","route_parameters":{"_route":"api_prices_get","type":"raw","_controller":"App\\Controller\\Api\\PricesController::indexGet"},"request_uri":"http://ddev-priceservice-web/api/prices/raw","method":"GET"} [] -[2026-06-03T14:14:02.347155+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"dev","authenticators":0} [] -[2026-06-03T14:14:02.398682+02:00] request.INFO: Matched route "api_prices_get". {"route":"api_prices_get","route_parameters":{"_route":"api_prices_get","type":"raw","_controller":"App\\Controller\\Api\\PricesController::indexGet"},"request_uri":"http://ddev-priceservice-web/api/prices/raw","method":"GET"} [] -[2026-06-03T14:14:02.399146+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"dev","authenticators":0} [] -[2026-06-03T14:14:13.501147+02:00] request.INFO: Matched route "api_prices_post". {"route":"api_prices_post","route_parameters":{"_route":"api_prices_post","type":"raw","_controller":"App\\Controller\\Api\\PricesController::indexPost"},"request_uri":"http://ddev-priceservice-web/api/prices/raw","method":"POST"} [] -[2026-06-03T14:14:13.501888+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"dev","authenticators":0} [] -[2026-06-03T14:14:50.213525+02:00] request.INFO: Matched route "api_prices_post". {"route":"api_prices_post","route_parameters":{"_route":"api_prices_post","type":"RAW_DATA","_controller":"App\\Controller\\Api\\PricesController::indexPost"},"request_uri":"http://ddev-priceservice-web/api/prices/RAW_DATA","method":"POST"} [] -[2026-06-03T14:14:50.213928+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"dev","authenticators":0} [] -[2026-06-03T12:16:42.902222+00:00] console.CRITICAL: Error thrown while running command "mto:test:trigger-import". Message: "The redis transport requires php-redis 4.3.0 or higher." {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\LogicException(code: 0): The redis transport requires php-redis 4.3.0 or higher. at /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:74)","command":"mto:test:trigger-import","message":"The redis transport requires php-redis 4.3.0 or higher."} [] -[2026-06-03T12:16:42.902778+00:00] console.DEBUG: Command "mto:test:trigger-import" exited with code "1" {"command":"mto:test:trigger-import","code":1} [] -[2026-06-03T14:17:26.632211+02:00] messenger.INFO: Sending message App\Message\TriggerPriceImport with async sender using Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransport {"class":"App\\Message\\TriggerPriceImport","alias":"async","sender":"Symfony\\Component\\Messenger\\Bridge\\Redis\\Transport\\RedisTransport"} [] -[2026-06-03T14:18:23.835268+02:00] messenger.INFO: Received message App\Message\TriggerPriceImport {"class":"App\\Message\\TriggerPriceImport"} [] -[2026-06-03T14:18:23.844871+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:18:24.511655+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:18:26.946153+02:00] messenger.INFO: Message App\Message\TriggerPriceImport handled by App\MessageHandler\TriggerPriceImportHandler::__invoke {"class":"App\\Message\\TriggerPriceImport","handler":"App\\MessageHandler\\TriggerPriceImportHandler::__invoke"} [] -[2026-06-03T14:18:26.968879+02:00] messenger.INFO: App\Message\TriggerPriceImport was handled successfully (acknowledging to transport). {"class":"App\\Message\\TriggerPriceImport"} [] -[2026-06-03T14:18:46.977429+02:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET https://priceservice.ddev.site/"" at RouterListener.php line 127 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET https://priceservice.ddev.site/\" at /var/www/html/priceservice/vendor/symfony/http-kernel/EventListener/RouterListener.php:127)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at /var/www/html/priceservice/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:181)"} [] -[2026-06-03T14:19:02.753062+02:00] request.INFO: Matched route "api_prices_post". {"route":"api_prices_post","route_parameters":{"_route":"api_prices_post","type":"RAW_DATA","_controller":"App\\Controller\\Api\\PricesController::indexPost"},"request_uri":"http://ddev-priceservice-web/api/prices/RAW_DATA","method":"POST"} [] -[2026-06-03T14:19:02.753830+02:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"dev","authenticators":0} [] -[2026-06-03T14:20:41.986773+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async -vv". Message: "NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:461)","command":"messenger:consume async -vv","message":"NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option"} [] -[2026-06-03T14:20:41.987012+02:00] console.DEBUG: Command "messenger:consume async -vv" exited with code "1" {"command":"messenger:consume async -vv","code":1} [] -[2026-06-03T14:21:10.305302+02:00] console.CRITICAL: Error thrown while running command "'mto:'". Message: "Command "mto:" is not defined. Did you mean one of these? mto:prices:import mto:prices:read mto:test:trigger-import" {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"mto:\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import at /var/www/html/priceservice/vendor/symfony/console/Application.php:737)","command":"'mto:'","message":"Command \"mto:\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import"} [] -[2026-06-03T12:25:02.885880+00:00] console.CRITICAL: Error thrown while running command "mto". Message: "Command "mto" is not defined. Did you mean one of these? mto:prices:import mto:prices:read mto:test:trigger-import" {"exception":"[object] (Symfony\\Component\\Console\\Exception\\CommandNotFoundException(code: 0): Command \"mto\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import at /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php:737)","command":"mto","message":"Command \"mto\" is not defined.\n\nDid you mean one of these?\n mto:prices:import\n mto:prices:read\n mto:test:trigger-import"} [] -[2026-06-03T12:25:12.723819+00:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"Class \"Redis\" not found","trace":"#0 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(53): App\\Service\\Adapter\\RedisClientService->App\\Service\\Adapter\\{closure}()\n#1 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(19): App\\Service\\Adapter\\RedisClientService->withRetry()\n#2 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(479): App\\Service\\Adapter\\RedisClientService->get()\n#3 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(368): App\\Service\\Prices\\RedisImportService->redis()\n#4 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#5 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#6 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#7 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#8 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#9 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#10 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#11 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#12 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#13 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#14 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/bin/console(11): require_once('...')\n#15 {main}"} [] -[2026-06-03T12:25:12.727353+00:00] console.DEBUG: Command "mto:prices:import" exited with code "1" {"command":"mto:prices:import","code":1} [] -[2026-06-03T12:25:46.318972+00:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"Class \"Redis\" not found","trace":"#0 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(53): App\\Service\\Adapter\\RedisClientService->App\\Service\\Adapter\\{closure}()\n#1 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Adapter/RedisClientService.php(19): App\\Service\\Adapter\\RedisClientService->withRetry()\n#2 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(479): App\\Service\\Adapter\\RedisClientService->get()\n#3 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(368): App\\Service\\Prices\\RedisImportService->redis()\n#4 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#5 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#6 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#7 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#8 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#9 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#10 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#11 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#12 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#13 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#14 /home/arbeit/arbeit/MtoRedisPriceService/priceservice/bin/console(11): require_once('...')\n#15 {main}"} [] -[2026-06-03T12:25:46.322736+00:00] console.DEBUG: Command "mto:prices:import" exited with code "1" {"command":"mto:prices:import","code":1} [] -[2026-06-03T14:26:01.249682+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:26:01.841748+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:26:12.386435+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async --time-limit=3600 --memory-limit=128M -v". Message: "NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:461)","command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","message":"NOGROUP No such key 'messages' or consumer group 'symfony' in XREADGROUP with GROUP option"} [] -[2026-06-03T14:26:12.387560+02:00] console.DEBUG: Command "messenger:consume async --time-limit=3600 --memory-limit=128M -v" exited with code "1" {"command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","code":1} [] -[2026-06-03T14:27:01.246944+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:27:01.835241+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:28:01.814986+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:28:02.435315+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:29:01.584164+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:29:02.192862+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:30:01.166048+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:30:01.766462+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:31:02.023276+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:31:02.602661+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:32:01.791083+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:32:02.373875+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:33:01.292598+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:33:01.941985+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:34:01.917559+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:34:02.517431+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:35:01.528698+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:35:02.142223+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:36:01.545609+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:36:02.132375+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:37:01.356038+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:37:01.918120+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:38:01.964443+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:38:02.565067+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:39:01.763340+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:39:02.321456+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:40:01.539894+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:40:02.219436+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:41:01.536531+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:41:02.091977+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:42:01.254010+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:42:01.888528+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:44:01.901719+02:00] app.ERROR: Redis-Import fehlgeschlagen {"message":"read error on connection to redis:6379","trace":"#0 /var/www/html/priceservice/src/Service/Prices/RedisImportService.php(368): Redis->set()\n#1 /var/www/html/priceservice/src/Service/Prices/RedisImportService.php(92): App\\Service\\Prices\\RedisImportService->acquireGlobalLock()\n#2 /var/www/html/priceservice/src/Command/RedisImportCommand.php(38): App\\Service\\Prices\\RedisImportService->writePrices()\n#3 /var/www/html/priceservice/vendor/symfony/console/Command/Command.php(326): App\\Command\\RedisImportCommand->execute()\n#4 /var/www/html/priceservice/vendor/symfony/console/Application.php(1096): Symfony\\Component\\Console\\Command\\Command->run()\n#5 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\\Component\\Console\\Application->doRunCommand()\n#6 /var/www/html/priceservice/vendor/symfony/console/Application.php(324): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#7 /var/www/html/priceservice/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\\Component\\Console\\Application->doRun()\n#8 /var/www/html/priceservice/vendor/symfony/console/Application.php(175): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#9 /var/www/html/priceservice/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#10 /var/www/html/priceservice/vendor/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#11 /var/www/html/priceservice/bin/console(11): require_once('...')\n#12 {main}"} [] -[2026-06-03T14:44:01.906889+02:00] console.DEBUG: Command "mto:prices:import" exited with code "1" {"command":"mto:prices:import","code":1} [] -[2026-06-03T14:45:01.938404+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:45:02.586578+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:46:01.718817+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:46:02.309531+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:46:55.113048+02:00] console.CRITICAL: Error thrown while running command "messenger:consume async --time-limit=3600 --memory-limit=128M -v". Message: "socket error on read socket" {"exception":"[object] (Symfony\\Component\\Messenger\\Exception\\TransportException(code: 0): socket error on read socket at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:696)\n[previous exception] [object] (RedisException(code: 0): socket error on read socket at /var/www/html/priceservice/vendor/symfony/redis-messenger/Transport/Connection.php:693)","command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","message":"socket error on read socket"} [] -[2026-06-03T14:46:55.114396+02:00] console.DEBUG: Command "messenger:consume async --time-limit=3600 --memory-limit=128M -v" exited with code "1" {"command":"messenger:consume async --time-limit=3600 --memory-limit=128M -v","code":1} [] -[2026-06-03T14:47:01.528265+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:47:02.128394+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:48:01.796986+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:48:02.388963+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:49:01.790592+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:49:02.493149+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:49:04.671254+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671353+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671386+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:49:04.671413+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] -[2026-06-03T14:50:01.766146+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:50:02.412394+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:50:03.522285+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522358+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522389+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:50:03.522413+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] -[2026-06-03T14:51:01.616885+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:51:02.240929+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:51:03.480580+02:00] app.INFO: Version: 1780490770 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480658+02:00] app.INFO: Version: 1780490770 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480691+02:00] app.INFO: Version: 1780490770 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T14:51:03.480720+02:00] app.INFO: Version: 1780490770 for Shop 8 already exists, skipping import. [] [] -[2026-06-03T14:52:01.574356+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:52:02.148765+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:53:01.264877+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:53:01.847315+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:54:01.870737+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:54:02.443413+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:55:01.478789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:55:02.106805+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:56:01.227858+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:56:01.770357+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:57:01.723607+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:57:02.314434+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:58:01.418997+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:58:01.977089+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:59:01.211122+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T14:59:01.762572+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:00:01.701789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:00:02.438872+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:01:01.816160+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:01:02.365371+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:02:01.527941+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:02:02.108239+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:03:01.316930+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:03:01.912877+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:04:01.869789+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:04:02.440464+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:05:01.366249+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:05:01.956558+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:06:01.157955+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:06:01.704960+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:07:01.192921+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:07:01.761346+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:08:01.850393+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:08:02.455507+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:09:01.693130+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:09:02.328706+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:10:01.207210+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:10:01.813652+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:11:01.808069+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:11:02.375421+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:12:01.239296+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:12:01.824916+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:13:01.861961+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:13:02.471481+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:14:01.475492+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:14:02.087110+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:15:02.015934+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:15:02.743076+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:16:01.816928+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:16:02.484127+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:17:01.660048+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:17:02.294859+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:18:01.135030+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:18:01.676593+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:19:01.475266+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:19:02.118265+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:20:01.101205+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:20:01.816730+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:21:01.965406+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:21:02.513194+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:22:01.373732+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:22:01.969555+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:23:01.185614+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:23:01.743618+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:24:01.792132+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:24:03.428085+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:25:01.628083+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:25:02.364435+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:26:01.296686+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:26:01.930098+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:01.852895+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:11.857082+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:27:11.860143+02:00] http_client.INFO: Request: "GET https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:11.953721+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:27:11.953903+02:00] http_client.INFO: Request: "GET https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:27:12.416644+02:00] http_client.INFO: Response: "200 https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:28:01.349434+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:28:01.988241+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:28:03.048401+02:00] app.INFO: Version: 1780493175 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048475+02:00] app.INFO: Version: 1780493175 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048511+02:00] app.INFO: Version: 1780493175 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T15:28:03.048539+02:00] app.INFO: Version: 1780493175 for Shop 8 already exists, skipping import. [] [] -[2026-06-03T15:29:01.143647+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:29:01.762980+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:30:01.612454+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:30:02.344665+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:31:01.237445+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:31:01.856436+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:32:02.026529+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:32:02.617782+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:33:01.738302+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:33:02.344147+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:34:01.365260+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:34:01.933875+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:35:01.086560+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:35:01.634683+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:36:01.610313+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:36:02.187422+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:37:01.119482+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:37:01.727069+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:38:01.948261+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:38:02.506468+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:39:01.504990+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:39:02.152133+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:40:01.331982+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:40:01.907482+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:41:01.397429+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:41:01.986935+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:42:02.066491+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:42:02.628097+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:43:01.707114+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:43:02.269560+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:44:01.397625+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:44:01.949700+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:45:01.916822+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:45:02.534427+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:01.576153+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:11.583436+02:00] app.ERROR: Error in https://orm3stage.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: Idle timeout reached for "https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.583663+02:00] http_client.INFO: Request: "GET https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:11.773892+02:00] app.ERROR: Error in https://orm3fallback.goldsilbershop.de/api/sw-prices.php: HTTP Client Error: SSL certificate problem: certificate has expired for "https://orm3fallback.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8". [] [] -[2026-06-03T15:46:11.774162+02:00] http_client.INFO: Request: "GET https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:46:12.203513+02:00] http_client.INFO: Response: "200 https://orm3fallback2.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:47:01.199628+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:47:01.754795+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:47:02.734652+02:00] app.INFO: Version: 1780494320 for Shop 1 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734722+02:00] app.INFO: Version: 1780494320 for Shop 3 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734753+02:00] app.INFO: Version: 1780494320 for Shop 4 already exists, skipping import. [] [] -[2026-06-03T15:47:02.734777+02:00] app.INFO: Version: 1780494320 for Shop 8 already exists, skipping import. [] [] -[2026-06-03T15:47:27.620690+02:00] messenger.INFO: Stopping worker. {"transport_names":["async"]} [] -[2026-06-03T15:47:27.621874+02:00] messenger.INFO: Worker stopped due to time limit of 3600s exceeded {"timeLimit":3600} [] -[2026-06-03T15:48:01.831394+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:48:02.462044+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:49:01.653347+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:49:02.197117+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:50:01.341143+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:50:02.048678+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:51:01.995880+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:51:02.588889+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:52:01.673663+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:52:02.279695+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:53:01.536464+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:53:02.099615+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:54:01.319297+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:54:01.896003+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:55:01.358199+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:55:02.025714+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:56:01.288142+02:00] http_client.INFO: Request: "GET https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] -[2026-06-03T15:56:01.903802+02:00] http_client.INFO: Response: "200 https://orm3stage.goldsilbershop.de/api/sw-prices.php?shopids=1,3,4,8" [] [] diff --git a/projects/priceservice/vendor/autoload.php b/projects/priceservice/vendor/autoload.php deleted file mode 100644 index ce57272..0000000 --- a/projects/priceservice/vendor/autoload.php +++ /dev/null @@ -1,22 +0,0 @@ - dirname(__DIR__, 1), -]); - -[$app, $args] = $runtime - ->getResolver($app) - ->resolve(); - -$app = $app(...$args); - -exit( - $runtime - ->getRunner($app) - ->run() -); diff --git a/projects/priceservice/vendor/bin/doctrine-migrations b/projects/priceservice/vendor/bin/doctrine-migrations deleted file mode 100755 index 9517060..0000000 --- a/projects/priceservice/vendor/bin/doctrine-migrations +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/doctrine/migrations/bin/doctrine-migrations'); - } -} - -return include __DIR__ . '/..'.'/doctrine/migrations/bin/doctrine-migrations'; diff --git a/projects/priceservice/vendor/bin/patch-type-declarations b/projects/priceservice/vendor/bin/patch-type-declarations deleted file mode 100755 index 4e63fef..0000000 --- a/projects/priceservice/vendor/bin/patch-type-declarations +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations'); - } -} - -return include __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations'; diff --git a/projects/priceservice/vendor/bin/php-parse b/projects/priceservice/vendor/bin/php-parse deleted file mode 100755 index 61566e6..0000000 --- a/projects/priceservice/vendor/bin/php-parse +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse'); - } -} - -return include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse'; diff --git a/projects/priceservice/vendor/bin/sql-formatter b/projects/priceservice/vendor/bin/sql-formatter deleted file mode 100755 index ed0a69d..0000000 --- a/projects/priceservice/vendor/bin/sql-formatter +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/doctrine/sql-formatter/bin/sql-formatter'); - } -} - -return include __DIR__ . '/..'.'/doctrine/sql-formatter/bin/sql-formatter'; diff --git a/projects/priceservice/vendor/bin/var-dump-server b/projects/priceservice/vendor/bin/var-dump-server deleted file mode 100755 index 18db1c1..0000000 --- a/projects/priceservice/vendor/bin/var-dump-server +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'); - } -} - -return include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'; diff --git a/projects/priceservice/vendor/bin/yaml-lint b/projects/priceservice/vendor/bin/yaml-lint deleted file mode 100755 index 388092f..0000000 --- a/projects/priceservice/vendor/bin/yaml-lint +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env php -realpath = realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = fopen($this->realpath, $mode); - $this->position = 0; - - return (bool) $this->handle; - } - - public function stream_read($count) - { - $data = fread($this->handle, $count); - - if ($this->position === 0) { - $data = preg_replace('{^#!.*\r?\n}', '', $data); - } - - $this->position += strlen($data); - - return $data; - } - - public function stream_cast($castAs) - { - return $this->handle; - } - - public function stream_close() - { - fclose($this->handle); - } - - public function stream_lock($operation) - { - return $operation ? flock($this->handle, $operation) : true; - } - - public function stream_seek($offset, $whence) - { - if (0 === fseek($this->handle, $offset, $whence)) { - $this->position = ftell($this->handle); - return true; - } - - return false; - } - - public function stream_tell() - { - return $this->position; - } - - public function stream_eof() - { - return feof($this->handle); - } - - public function stream_stat() - { - return array(); - } - - public function stream_set_option($option, $arg1, $arg2) - { - return true; - } - - public function url_stat($path, $flags) - { - $path = substr($path, 17); - if (file_exists($path)) { - return stat($path); - } - - return false; - } - } - } - - if ( - (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) - || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) - ) { - return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/yaml/Resources/bin/yaml-lint'); - } -} - -return include __DIR__ . '/..'.'/symfony/yaml/Resources/bin/yaml-lint'; diff --git a/projects/priceservice/vendor/composer/ClassLoader.php b/projects/priceservice/vendor/composer/ClassLoader.php deleted file mode 100644 index 7824d8f..0000000 --- a/projects/priceservice/vendor/composer/ClassLoader.php +++ /dev/null @@ -1,579 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - /** @var \Closure(string):void */ - private static $includeFile; - - /** @var string|null */ - private $vendorDir; - - // PSR-4 - /** - * @var array> - */ - private $prefixLengthsPsr4 = array(); - /** - * @var array> - */ - private $prefixDirsPsr4 = array(); - /** - * @var list - */ - private $fallbackDirsPsr4 = array(); - - // PSR-0 - /** - * List of PSR-0 prefixes - * - * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) - * - * @var array>> - */ - private $prefixesPsr0 = array(); - /** - * @var list - */ - private $fallbackDirsPsr0 = array(); - - /** @var bool */ - private $useIncludePath = false; - - /** - * @var array - */ - private $classMap = array(); - - /** @var bool */ - private $classMapAuthoritative = false; - - /** - * @var array - */ - private $missingClasses = array(); - - /** @var string|null */ - private $apcuPrefix; - - /** - * @var array - */ - private static $registeredLoaders = array(); - - /** - * @param string|null $vendorDir - */ - public function __construct($vendorDir = null) - { - $this->vendorDir = $vendorDir; - self::initializeIncludeClosure(); - } - - /** - * @return array> - */ - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); - } - - return array(); - } - - /** - * @return array> - */ - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - /** - * @return list - */ - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - /** - * @return list - */ - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - /** - * @return array Array of classname => path - */ - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - * - * @return void - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - * - * @return void - */ - public function add($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 base directories - * - * @return void - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - * - * @return void - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - * - * @return void - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - * - * @return void - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - * - * @return void - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - - if (null === $this->vendorDir) { - return; - } - - if ($prepend) { - self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; - } else { - unset(self::$registeredLoaders[$this->vendorDir]); - self::$registeredLoaders[$this->vendorDir] = $this; - } - } - - /** - * Unregisters this instance as an autoloader. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - - if (null !== $this->vendorDir) { - unset(self::$registeredLoaders[$this->vendorDir]); - } - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return true|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - $includeFile = self::$includeFile; - $includeFile($file); - - return true; - } - - return null; - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - /** - * Returns the currently registered loaders keyed by their corresponding vendor directories. - * - * @return array - */ - public static function getRegisteredLoaders() - { - return self::$registeredLoaders; - } - - /** - * @param string $class - * @param string $ext - * @return string|false - */ - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } - - /** - * @return void - */ - private static function initializeIncludeClosure() - { - if (self::$includeFile !== null) { - return; - } - - /** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - * - * @param string $file - * @return void - */ - self::$includeFile = \Closure::bind(static function($file) { - include $file; - }, null, null); - } -} diff --git a/projects/priceservice/vendor/composer/InstalledVersions.php b/projects/priceservice/vendor/composer/InstalledVersions.php deleted file mode 100644 index 2052022..0000000 --- a/projects/priceservice/vendor/composer/InstalledVersions.php +++ /dev/null @@ -1,396 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer; - -use Composer\Autoload\ClassLoader; -use Composer\Semver\VersionParser; - -/** - * This class is copied in every Composer installed project and available to all - * - * See also https://getcomposer.org/doc/07-runtime.md#installed-versions - * - * To require its presence, you can require `composer-runtime-api ^2.0` - * - * @final - */ -class InstalledVersions -{ - /** - * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to - * @internal - */ - private static $selfDir = null; - - /** - * @var mixed[]|null - * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null - */ - private static $installed; - - /** - * @var bool - */ - private static $installedIsLocalDir; - - /** - * @var bool|null - */ - private static $canGetVendors; - - /** - * @var array[] - * @psalm-var array}> - */ - private static $installedByVendor = array(); - - /** - * Returns a list of all package names which are present, either by being installed, replaced or provided - * - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackages() - { - $packages = array(); - foreach (self::getInstalled() as $installed) { - $packages[] = array_keys($installed['versions']); - } - - if (1 === \count($packages)) { - return $packages[0]; - } - - return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); - } - - /** - * Returns a list of all package names with a specific type e.g. 'library' - * - * @param string $type - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackagesByType($type) - { - $packagesByType = array(); - - foreach (self::getInstalled() as $installed) { - foreach ($installed['versions'] as $name => $package) { - if (isset($package['type']) && $package['type'] === $type) { - $packagesByType[] = $name; - } - } - } - - return $packagesByType; - } - - /** - * Checks whether the given package is installed - * - * This also returns true if the package name is provided or replaced by another package - * - * @param string $packageName - * @param bool $includeDevRequirements - * @return bool - */ - public static function isInstalled($packageName, $includeDevRequirements = true) - { - foreach (self::getInstalled() as $installed) { - if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; - } - } - - return false; - } - - /** - * Checks whether the given package satisfies a version constraint - * - * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: - * - * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') - * - * @param VersionParser $parser Install composer/semver to have access to this class and functionality - * @param string $packageName - * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package - * @return bool - */ - public static function satisfies(VersionParser $parser, $packageName, $constraint) - { - $constraint = $parser->parseConstraints((string) $constraint); - $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); - - return $provided->matches($constraint); - } - - /** - * Returns a version constraint representing all the range(s) which are installed for a given package - * - * It is easier to use this via isInstalled() with the $constraint argument if you need to check - * whether a given version of a package is installed, and not just whether it exists - * - * @param string $packageName - * @return string Version constraint usable with composer/semver - */ - public static function getVersionRanges($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - $ranges = array(); - if (isset($installed['versions'][$packageName]['pretty_version'])) { - $ranges[] = $installed['versions'][$packageName]['pretty_version']; - } - if (array_key_exists('aliases', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); - } - if (array_key_exists('replaced', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); - } - if (array_key_exists('provided', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); - } - - return implode(' || ', $ranges); - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['version'])) { - return null; - } - - return $installed['versions'][$packageName]['version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getPrettyVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['pretty_version'])) { - return null; - } - - return $installed['versions'][$packageName]['pretty_version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference - */ - public static function getReference($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['reference'])) { - return null; - } - - return $installed['versions'][$packageName]['reference']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. - */ - public static function getInstallPath($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @return array - * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} - */ - public static function getRootPackage() - { - $installed = self::getInstalled(); - - return $installed[0]['root']; - } - - /** - * Returns the raw installed.php data for custom implementations - * - * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. - * @return array[] - * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} - */ - public static function getRawData() - { - @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = include __DIR__ . '/installed.php'; - } else { - self::$installed = array(); - } - } - - return self::$installed; - } - - /** - * Returns the raw data of all installed.php which are currently loaded for custom implementations - * - * @return array[] - * @psalm-return list}> - */ - public static function getAllRawData() - { - return self::getInstalled(); - } - - /** - * Lets you reload the static array from another file - * - * This is only useful for complex integrations in which a project needs to use - * this class but then also needs to execute another project's autoloader in process, - * and wants to ensure both projects have access to their version of installed.php. - * - * A typical case would be PHPUnit, where it would need to make sure it reads all - * the data it needs from this class, then call reload() with - * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure - * the project in which it runs can then also use this class safely, without - * interference between PHPUnit's dependencies and the project's dependencies. - * - * @param array[] $data A vendor/composer/installed.php data set - * @return void - * - * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data - */ - public static function reload($data) - { - self::$installed = $data; - self::$installedByVendor = array(); - - // when using reload, we disable the duplicate protection to ensure that self::$installed data is - // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, - // so we have to assume it does not, and that may result in duplicate data being returned when listing - // all installed packages for example - self::$installedIsLocalDir = false; - } - - /** - * @return string - */ - private static function getSelfDir() - { - if (self::$selfDir === null) { - self::$selfDir = strtr(__DIR__, '\\', '/'); - } - - return self::$selfDir; - } - - /** - * @return array[] - * @psalm-return list}> - */ - private static function getInstalled() - { - if (null === self::$canGetVendors) { - self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); - } - - $installed = array(); - $copiedLocalDir = false; - - if (self::$canGetVendors) { - $selfDir = self::getSelfDir(); - foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { - $vendorDir = strtr($vendorDir, '\\', '/'); - if (isset(self::$installedByVendor[$vendorDir])) { - $installed[] = self::$installedByVendor[$vendorDir]; - } elseif (is_file($vendorDir.'/composer/installed.php')) { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require $vendorDir.'/composer/installed.php'; - self::$installedByVendor[$vendorDir] = $required; - $installed[] = $required; - if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { - self::$installed = $required; - self::$installedIsLocalDir = true; - } - } - if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { - $copiedLocalDir = true; - } - } - } - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require __DIR__ . '/installed.php'; - self::$installed = $required; - } else { - self::$installed = array(); - } - } - - if (self::$installed !== array() && !$copiedLocalDir) { - $installed[] = self::$installed; - } - - return $installed; - } -} diff --git a/projects/priceservice/vendor/composer/LICENSE b/projects/priceservice/vendor/composer/LICENSE deleted file mode 100644 index f27399a..0000000 --- a/projects/priceservice/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/projects/priceservice/vendor/composer/autoload_classmap.php b/projects/priceservice/vendor/composer/autoload_classmap.php deleted file mode 100644 index 6ba2281..0000000 --- a/projects/priceservice/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,24 +0,0 @@ - $vendorDir . '/composer/InstalledVersions.php', - 'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', - 'Deprecated' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', - 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'Override' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/Override.php', - 'SQLite3Exception' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', - '' => $vendorDir . '/symfony/cache/Traits/ValueWrapper.php', -); diff --git a/projects/priceservice/vendor/composer/autoload_files.php b/projects/priceservice/vendor/composer/autoload_files.php deleted file mode 100644 index f7293fc..0000000 --- a/projects/priceservice/vendor/composer/autoload_files.php +++ /dev/null @@ -1,19 +0,0 @@ - $vendorDir . '/symfony/deprecation-contracts/function.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - '662a729f963d39afe703c9d9b7ab4a8c' => $vendorDir . '/symfony/polyfill-php83/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', - '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', - '2203a247e6fda86070a5e4e07aed533a' => $vendorDir . '/symfony/clock/Resources/now.php', - '9d2b9fc6db0f153a0a149fefb182415e' => $vendorDir . '/symfony/polyfill-php84/bootstrap.php', - '09f6b20656683369174dd6fa83b7e5fb' => $vendorDir . '/symfony/polyfill-uuid/bootstrap.php', -); diff --git a/projects/priceservice/vendor/composer/autoload_namespaces.php b/projects/priceservice/vendor/composer/autoload_namespaces.php deleted file mode 100644 index 15a2ff3..0000000 --- a/projects/priceservice/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/symfony/runtime/Internal'), - 'Symfony\\Polyfill\\Uuid\\' => array($vendorDir . '/symfony/polyfill-uuid'), - 'Symfony\\Polyfill\\Php84\\' => array($vendorDir . '/symfony/polyfill-php84'), - 'Symfony\\Polyfill\\Php83\\' => array($vendorDir . '/symfony/polyfill-php83'), - 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'), - 'Symfony\\Flex\\' => array($vendorDir . '/symfony/flex/src'), - 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'Symfony\\Contracts\\HttpClient\\' => array($vendorDir . '/symfony/http-client-contracts'), - 'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'), - 'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'), - 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), - 'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'), - 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), - 'Symfony\\Component\\Uid\\' => array($vendorDir . '/symfony/uid'), - 'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), - 'Symfony\\Component\\Stopwatch\\' => array($vendorDir . '/symfony/stopwatch'), - 'Symfony\\Component\\Security\\Http\\' => array($vendorDir . '/symfony/security-http'), - 'Symfony\\Component\\Security\\Csrf\\' => array($vendorDir . '/symfony/security-csrf'), - 'Symfony\\Component\\Security\\Core\\' => array($vendorDir . '/symfony/security-core'), - 'Symfony\\Component\\Runtime\\' => array($vendorDir . '/symfony/runtime'), - 'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'), - 'Symfony\\Component\\RateLimiter\\' => array($vendorDir . '/symfony/rate-limiter'), - 'Symfony\\Component\\PropertyInfo\\' => array($vendorDir . '/symfony/property-info'), - 'Symfony\\Component\\PropertyAccess\\' => array($vendorDir . '/symfony/property-access'), - 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'Symfony\\Component\\PasswordHasher\\' => array($vendorDir . '/symfony/password-hasher'), - 'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'), - 'Symfony\\Component\\Messenger\\Bridge\\Redis\\' => array($vendorDir . '/symfony/redis-messenger'), - 'Symfony\\Component\\Messenger\\' => array($vendorDir . '/symfony/messenger'), - 'Symfony\\Component\\Lock\\' => array($vendorDir . '/symfony/lock'), - 'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'), - 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), - 'Symfony\\Component\\HttpClient\\' => array($vendorDir . '/symfony/http-client'), - 'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), - 'Symfony\\Component\\ErrorHandler\\' => array($vendorDir . '/symfony/error-handler'), - 'Symfony\\Component\\Dotenv\\' => array($vendorDir . '/symfony/dotenv'), - 'Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'), - 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'Symfony\\Component\\Config\\' => array($vendorDir . '/symfony/config'), - 'Symfony\\Component\\Clock\\' => array($vendorDir . '/symfony/clock'), - 'Symfony\\Component\\Cache\\' => array($vendorDir . '/symfony/cache'), - 'Symfony\\Bundle\\SecurityBundle\\' => array($vendorDir . '/symfony/security-bundle'), - 'Symfony\\Bundle\\MonologBundle\\' => array($vendorDir . '/symfony/monolog-bundle'), - 'Symfony\\Bundle\\MakerBundle\\' => array($vendorDir . '/symfony/maker-bundle/src'), - 'Symfony\\Bundle\\FrameworkBundle\\' => array($vendorDir . '/symfony/framework-bundle'), - 'Symfony\\Bridge\\Monolog\\' => array($vendorDir . '/symfony/monolog-bridge'), - 'Symfony\\Bridge\\Doctrine\\' => array($vendorDir . '/symfony/doctrine-bridge'), - 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'), - 'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'), - 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'), - 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'), - 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), - 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), - 'Doctrine\\SqlFormatter\\' => array($vendorDir . '/doctrine/sql-formatter/src'), - 'Doctrine\\Persistence\\' => array($vendorDir . '/doctrine/persistence/src/Persistence'), - 'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/src'), - 'Doctrine\\Migrations\\' => array($vendorDir . '/doctrine/migrations/src'), - 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), - 'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), - 'Doctrine\\Deprecations\\' => array($vendorDir . '/doctrine/deprecations/src'), - 'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/src'), - 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/src'), - 'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/src'), - 'Doctrine\\Common\\' => array($vendorDir . '/doctrine/event-manager/src'), - 'Doctrine\\Bundle\\MigrationsBundle\\' => array($vendorDir . '/doctrine/doctrine-migrations-bundle/src'), - 'Doctrine\\Bundle\\DoctrineBundle\\' => array($vendorDir . '/doctrine/doctrine-bundle/src'), - 'App\\Tests\\' => array($baseDir . '/tests'), - 'App\\' => array($baseDir . '/src'), -); diff --git a/projects/priceservice/vendor/composer/autoload_real.php b/projects/priceservice/vendor/composer/autoload_real.php deleted file mode 100644 index 292b385..0000000 --- a/projects/priceservice/vendor/composer/autoload_real.php +++ /dev/null @@ -1,50 +0,0 @@ -register(true); - - $filesToLoad = \Composer\Autoload\ComposerStaticInit4227d96a027f137e5e4f0c8b38f681f0::$files; - $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - - require $file; - } - }, null, null); - foreach ($filesToLoad as $fileIdentifier => $file) { - $requireFile($fileIdentifier, $file); - } - - return $loader; - } -} diff --git a/projects/priceservice/vendor/composer/autoload_static.php b/projects/priceservice/vendor/composer/autoload_static.php deleted file mode 100644 index a3a4b37..0000000 --- a/projects/priceservice/vendor/composer/autoload_static.php +++ /dev/null @@ -1,435 +0,0 @@ - __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - '662a729f963d39afe703c9d9b7ab4a8c' => __DIR__ . '/..' . '/symfony/polyfill-php83/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', - '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', - '2203a247e6fda86070a5e4e07aed533a' => __DIR__ . '/..' . '/symfony/clock/Resources/now.php', - '9d2b9fc6db0f153a0a149fefb182415e' => __DIR__ . '/..' . '/symfony/polyfill-php84/bootstrap.php', - '09f6b20656683369174dd6fa83b7e5fb' => __DIR__ . '/..' . '/symfony/polyfill-uuid/bootstrap.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'S' => - array ( - 'Symfony\\Runtime\\Symfony\\Component\\' => 34, - 'Symfony\\Polyfill\\Uuid\\' => 22, - 'Symfony\\Polyfill\\Php84\\' => 23, - 'Symfony\\Polyfill\\Php83\\' => 23, - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31, - 'Symfony\\Flex\\' => 13, - 'Symfony\\Contracts\\Service\\' => 26, - 'Symfony\\Contracts\\HttpClient\\' => 29, - 'Symfony\\Contracts\\EventDispatcher\\' => 34, - 'Symfony\\Contracts\\Cache\\' => 24, - 'Symfony\\Component\\Yaml\\' => 23, - 'Symfony\\Component\\VarExporter\\' => 30, - 'Symfony\\Component\\VarDumper\\' => 28, - 'Symfony\\Component\\Uid\\' => 22, - 'Symfony\\Component\\String\\' => 25, - 'Symfony\\Component\\Stopwatch\\' => 28, - 'Symfony\\Component\\Security\\Http\\' => 32, - 'Symfony\\Component\\Security\\Csrf\\' => 32, - 'Symfony\\Component\\Security\\Core\\' => 32, - 'Symfony\\Component\\Runtime\\' => 26, - 'Symfony\\Component\\Routing\\' => 26, - 'Symfony\\Component\\RateLimiter\\' => 30, - 'Symfony\\Component\\PropertyInfo\\' => 31, - 'Symfony\\Component\\PropertyAccess\\' => 33, - 'Symfony\\Component\\Process\\' => 26, - 'Symfony\\Component\\PasswordHasher\\' => 33, - 'Symfony\\Component\\OptionsResolver\\' => 34, - 'Symfony\\Component\\Messenger\\Bridge\\Redis\\' => 41, - 'Symfony\\Component\\Messenger\\' => 28, - 'Symfony\\Component\\Lock\\' => 23, - 'Symfony\\Component\\HttpKernel\\' => 29, - 'Symfony\\Component\\HttpFoundation\\' => 33, - 'Symfony\\Component\\HttpClient\\' => 29, - 'Symfony\\Component\\Finder\\' => 25, - 'Symfony\\Component\\Filesystem\\' => 29, - 'Symfony\\Component\\EventDispatcher\\' => 34, - 'Symfony\\Component\\ErrorHandler\\' => 31, - 'Symfony\\Component\\Dotenv\\' => 25, - 'Symfony\\Component\\DependencyInjection\\' => 38, - 'Symfony\\Component\\Console\\' => 26, - 'Symfony\\Component\\Config\\' => 25, - 'Symfony\\Component\\Clock\\' => 24, - 'Symfony\\Component\\Cache\\' => 24, - 'Symfony\\Bundle\\SecurityBundle\\' => 30, - 'Symfony\\Bundle\\MonologBundle\\' => 29, - 'Symfony\\Bundle\\MakerBundle\\' => 27, - 'Symfony\\Bundle\\FrameworkBundle\\' => 31, - 'Symfony\\Bridge\\Monolog\\' => 23, - 'Symfony\\Bridge\\Doctrine\\' => 24, - ), - 'P' => - array ( - 'Psr\\Log\\' => 8, - 'Psr\\EventDispatcher\\' => 20, - 'Psr\\Container\\' => 14, - 'Psr\\Clock\\' => 10, - 'Psr\\Cache\\' => 10, - 'PhpParser\\' => 10, - ), - 'M' => - array ( - 'Monolog\\' => 8, - ), - 'D' => - array ( - 'Doctrine\\SqlFormatter\\' => 22, - 'Doctrine\\Persistence\\' => 21, - 'Doctrine\\ORM\\' => 13, - 'Doctrine\\Migrations\\' => 20, - 'Doctrine\\Instantiator\\' => 22, - 'Doctrine\\Inflector\\' => 19, - 'Doctrine\\Deprecations\\' => 22, - 'Doctrine\\DBAL\\' => 14, - 'Doctrine\\Common\\Lexer\\' => 22, - 'Doctrine\\Common\\Collections\\' => 28, - 'Doctrine\\Common\\' => 16, - 'Doctrine\\Bundle\\MigrationsBundle\\' => 33, - 'Doctrine\\Bundle\\DoctrineBundle\\' => 31, - ), - 'A' => - array ( - 'App\\Tests\\' => 10, - 'App\\' => 4, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Symfony\\Runtime\\Symfony\\Component\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/runtime/Internal', - ), - 'Symfony\\Polyfill\\Uuid\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-uuid', - ), - 'Symfony\\Polyfill\\Php84\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php84', - ), - 'Symfony\\Polyfill\\Php83\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php83', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', - ), - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme', - ), - 'Symfony\\Flex\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/flex/src', - ), - 'Symfony\\Contracts\\Service\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/service-contracts', - ), - 'Symfony\\Contracts\\HttpClient\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-client-contracts', - ), - 'Symfony\\Contracts\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts', - ), - 'Symfony\\Contracts\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/cache-contracts', - ), - 'Symfony\\Component\\Yaml\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/yaml', - ), - 'Symfony\\Component\\VarExporter\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/var-exporter', - ), - 'Symfony\\Component\\VarDumper\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/var-dumper', - ), - 'Symfony\\Component\\Uid\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/uid', - ), - 'Symfony\\Component\\String\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/string', - ), - 'Symfony\\Component\\Stopwatch\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/stopwatch', - ), - 'Symfony\\Component\\Security\\Http\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/security-http', - ), - 'Symfony\\Component\\Security\\Csrf\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/security-csrf', - ), - 'Symfony\\Component\\Security\\Core\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/security-core', - ), - 'Symfony\\Component\\Runtime\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/runtime', - ), - 'Symfony\\Component\\Routing\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/routing', - ), - 'Symfony\\Component\\RateLimiter\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/rate-limiter', - ), - 'Symfony\\Component\\PropertyInfo\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/property-info', - ), - 'Symfony\\Component\\PropertyAccess\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/property-access', - ), - 'Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), - 'Symfony\\Component\\PasswordHasher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/password-hasher', - ), - 'Symfony\\Component\\OptionsResolver\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/options-resolver', - ), - 'Symfony\\Component\\Messenger\\Bridge\\Redis\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/redis-messenger', - ), - 'Symfony\\Component\\Messenger\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/messenger', - ), - 'Symfony\\Component\\Lock\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/lock', - ), - 'Symfony\\Component\\HttpKernel\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-kernel', - ), - 'Symfony\\Component\\HttpFoundation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-foundation', - ), - 'Symfony\\Component\\HttpClient\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-client', - ), - 'Symfony\\Component\\Finder\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/finder', - ), - 'Symfony\\Component\\Filesystem\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/filesystem', - ), - 'Symfony\\Component\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher', - ), - 'Symfony\\Component\\ErrorHandler\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/error-handler', - ), - 'Symfony\\Component\\Dotenv\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/dotenv', - ), - 'Symfony\\Component\\DependencyInjection\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/dependency-injection', - ), - 'Symfony\\Component\\Console\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/console', - ), - 'Symfony\\Component\\Config\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/config', - ), - 'Symfony\\Component\\Clock\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/clock', - ), - 'Symfony\\Component\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/cache', - ), - 'Symfony\\Bundle\\SecurityBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/security-bundle', - ), - 'Symfony\\Bundle\\MonologBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/monolog-bundle', - ), - 'Symfony\\Bundle\\MakerBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/maker-bundle/src', - ), - 'Symfony\\Bundle\\FrameworkBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/framework-bundle', - ), - 'Symfony\\Bridge\\Monolog\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/monolog-bridge', - ), - 'Symfony\\Bridge\\Doctrine\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/doctrine-bridge', - ), - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log/src', - ), - 'Psr\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/event-dispatcher/src', - ), - 'Psr\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/container/src', - ), - 'Psr\\Clock\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/clock/src', - ), - 'Psr\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/cache/src', - ), - 'PhpParser\\' => - array ( - 0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser', - ), - 'Monolog\\' => - array ( - 0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog', - ), - 'Doctrine\\SqlFormatter\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/sql-formatter/src', - ), - 'Doctrine\\Persistence\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/persistence/src/Persistence', - ), - 'Doctrine\\ORM\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/orm/src', - ), - 'Doctrine\\Migrations\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/migrations/src', - ), - 'Doctrine\\Instantiator\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', - ), - 'Doctrine\\Inflector\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', - ), - 'Doctrine\\Deprecations\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/deprecations/src', - ), - 'Doctrine\\DBAL\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/dbal/src', - ), - 'Doctrine\\Common\\Lexer\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/lexer/src', - ), - 'Doctrine\\Common\\Collections\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/collections/src', - ), - 'Doctrine\\Common\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/event-manager/src', - ), - 'Doctrine\\Bundle\\MigrationsBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/doctrine-migrations-bundle/src', - ), - 'Doctrine\\Bundle\\DoctrineBundle\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/doctrine-bundle/src', - ), - 'App\\Tests\\' => - array ( - 0 => __DIR__ . '/../..' . '/tests', - ), - 'App\\' => - array ( - 0 => __DIR__ . '/../..' . '/src', - ), - ); - - public static $classMap = array ( - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', - 'Deprecated' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', - 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'Override' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/Override.php', - 'SQLite3Exception' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', - '' => __DIR__ . '/..' . '/symfony/cache/Traits/ValueWrapper.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit4227d96a027f137e5e4f0c8b38f681f0::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit4227d96a027f137e5e4f0c8b38f681f0::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit4227d96a027f137e5e4f0c8b38f681f0::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/projects/priceservice/vendor/composer/installed.json b/projects/priceservice/vendor/composer/installed.json deleted file mode 100644 index 6576122..0000000 --- a/projects/priceservice/vendor/composer/installed.json +++ /dev/null @@ -1,5896 +0,0 @@ -{ - "packages": [ - { - "name": "doctrine/collections", - "version": "2.3.0", - "version_normalized": "2.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2eb07e5953eed811ce1b309a7478a3b236f2273d", - "reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1", - "php": "^8.1", - "symfony/polyfill-php84": "^1.30" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ext-json": "*", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^10.5" - }, - "time": "2025-03-22T10:17:19+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "keywords": [ - "array", - "collections", - "iterators", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.3.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", - "type": "tidelift" - } - ], - "install-path": "../doctrine/collections" - }, - { - "name": "doctrine/dbal", - "version": "4.3.1", - "version_normalized": "4.3.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "ac336c95ea9e13433d56ca81c308b39db0e1a2a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/ac336c95ea9e13433d56ca81c308b39db0e1a2a7", - "reference": "ac336c95ea9e13433d56ca81c308b39db0e1a2a7", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1.5", - "php": "^8.2", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "doctrine/coding-standard": "13.0.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "2.1.17", - "phpstan/phpstan-phpunit": "2.0.6", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "11.5.23", - "slevomat/coding-standard": "8.16.2", - "squizlabs/php_codesniffer": "3.13.1", - "symfony/cache": "^6.3.8|^7.0", - "symfony/console": "^5.4|^6.3|^7.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "time": "2025-07-22T10:09:51+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.3.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "install-path": "../doctrine/dbal" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.5", - "version_normalized": "1.1.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "time": "2025-04-07T20:06:18+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" - }, - "install-path": "../doctrine/deprecations" - }, - { - "name": "doctrine/doctrine-bundle", - "version": "2.15.0", - "version_normalized": "2.15.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d88294521a1bca943240adca65fa19ca8a7288c6", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6", - "shasum": "" - }, - "require": { - "doctrine/dbal": "^3.7.0 || ^4.0", - "doctrine/persistence": "^3.1 || ^4", - "doctrine/sql-formatter": "^1.0.1", - "php": "^8.1", - "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/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3", - "symfony/framework-bundle": "^6.4 || ^7.0", - "symfony/service-contracts": "^2.5 || ^3" - }, - "conflict": { - "doctrine/annotations": ">=3.0", - "doctrine/cache": "< 1.11", - "doctrine/orm": "<2.17 || >=4.0", - "symfony/var-exporter": "< 6.4.1 || 7.0.0", - "twig/twig": "<2.13 || >=3.0 <3.0.4" - }, - "require-dev": { - "doctrine/annotations": "^1 || ^2", - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^13", - "doctrine/deprecations": "^1.0", - "doctrine/orm": "^2.17 || ^3.1", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpstan/phpstan": "2.1.1", - "phpstan/phpstan-phpunit": "2.0.3", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9.6.22", - "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/doctrine-messenger": "^6.4 || ^7.0", - "symfony/messenger": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^7.2", - "symfony/property-info": "^6.4 || ^7.0", - "symfony/security-bundle": "^6.4 || ^7.0", - "symfony/stopwatch": "^6.4 || ^7.0", - "symfony/string": "^6.4 || ^7.0", - "symfony/twig-bridge": "^6.4 || ^7.0", - "symfony/validator": "^6.4 || ^7.0", - "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.13 || ^3.0.4" - }, - "suggest": { - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "ext-pdo": "*", - "symfony/web-profiler-bundle": "To use the data collector." - }, - "time": "2025-06-16T19:53:58+00:00", - "type": "symfony-bundle", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org/" - } - ], - "description": "Symfony DoctrineBundle", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "database", - "dbal", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.15.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", - "type": "tidelift" - } - ], - "install-path": "../doctrine/doctrine-bundle" - }, - { - "name": "doctrine/doctrine-migrations-bundle", - "version": "3.4.2", - "version_normalized": "3.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "5a6ac7120c2924c4c070a869d08b11ccf9e277b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/5a6ac7120c2924c4c070a869d08b11ccf9e277b9", - "reference": "5a6ac7120c2924c4c070a869d08b11ccf9e277b9", - "shasum": "" - }, - "require": { - "doctrine/doctrine-bundle": "^2.4", - "doctrine/migrations": "^3.2", - "php": "^7.2 || ^8.0", - "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "composer/semver": "^3.0", - "doctrine/coding-standard": "^12", - "doctrine/orm": "^2.6 || ^3", - "phpstan/phpstan": "^1.4 || ^2", - "phpstan/phpstan-deprecation-rules": "^1 || ^2", - "phpstan/phpstan-phpunit": "^1 || ^2", - "phpstan/phpstan-strict-rules": "^1.1 || ^2", - "phpstan/phpstan-symfony": "^1.3 || ^2", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/phpunit-bridge": "^6.3 || ^7", - "symfony/var-exporter": "^5.4 || ^6 || ^7" - }, - "time": "2025-03-11T17:36:26+00:00", - "type": "symfony-bundle", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\MigrationsBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DoctrineMigrationsBundle", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "dbal", - "migrations", - "schema" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.4.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", - "type": "tidelift" - } - ], - "install-path": "../doctrine/doctrine-migrations-bundle" - }, - { - "name": "doctrine/event-manager", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" - }, - "time": "2024-05-22T20:47:39+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "install-path": "../doctrine/event-manager" - }, - { - "name": "doctrine/inflector", - "version": "2.0.10", - "version_normalized": "2.0.10.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^11.0", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25 || ^5.4" - }, - "time": "2024-02-18T20:23:39+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.10" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "install-path": "../doctrine/inflector" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "time": "2022-12-30T00:23:10+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "install-path": "../doctrine/instantiator" - }, - { - "name": "doctrine/lexer", - "version": "3.0.1", - "version_normalized": "3.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", - "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.21" - }, - "time": "2024-02-05T11:56:58+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "install-path": "../doctrine/lexer" - }, - { - "name": "doctrine/migrations", - "version": "3.9.2", - "version_normalized": "3.9.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/migrations.git", - "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/fa94c6f06b1bc6d4759481ec20b8b81d13e861be", - "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/dbal": "^3.6 || ^4", - "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2.0", - "php": "^8.1", - "psr/log": "^1.1.3 || ^2 || ^3", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0", - "symfony/var-exporter": "^6.2 || ^7.0" - }, - "conflict": { - "doctrine/orm": "<2.12 || >=4" - }, - "require-dev": { - "doctrine/coding-standard": "^13", - "doctrine/orm": "^2.13 || ^3", - "doctrine/persistence": "^2 || ^3 || ^4", - "doctrine/sql-formatter": "^1.0", - "ext-pdo_sqlite": "*", - "fig/log-test": "^1", - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-phpunit": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpstan/phpstan-symfony": "^2", - "phpunit/phpunit": "^10.3 || ^11.0 || ^12.0", - "symfony/cache": "^5.4 || ^6.0 || ^7.0", - "symfony/process": "^5.4 || ^6.0 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "suggest": { - "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", - "symfony/yaml": "Allows the use of yaml for migration configuration files." - }, - "time": "2025-07-29T11:36:14+00:00", - "bin": [ - "bin/doctrine-migrations" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Migrations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Michael Simonson", - "email": "contact@mikesimonson.com" - } - ], - "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", - "homepage": "https://www.doctrine-project.org/projects/migrations.html", - "keywords": [ - "database", - "dbal", - "migrations" - ], - "support": { - "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.9.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", - "type": "tidelift" - } - ], - "install-path": "../doctrine/migrations" - }, - { - "name": "doctrine/orm", - "version": "3.5.0", - "version_normalized": "3.5.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/orm.git", - "reference": "6deec3655ba3e8f15280aac11e264225854d2369" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/6deec3655ba3e8f15280aac11e264225854d2369", - "reference": "6deec3655ba3e8f15280aac11e264225854d2369", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/collections": "^2.2", - "doctrine/dbal": "^3.8.2 || ^4", - "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2", - "doctrine/inflector": "^1.4 || ^2.0", - "doctrine/instantiator": "^1.3 || ^2", - "doctrine/lexer": "^3", - "doctrine/persistence": "^3.3.1 || ^4", - "ext-ctype": "*", - "php": "^8.1", - "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/var-exporter": "^6.3.9 || ^7.0" - }, - "require-dev": { - "doctrine/coding-standard": "^13.0", - "phpbench/phpbench": "^1.0", - "phpdocumentor/guides-cli": "^1.4", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "2.0.3", - "phpstan/phpstan-deprecation-rules": "^2", - "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": { - "ext-dom": "Provides support for XSD validation for XML mapping files", - "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0" - }, - "time": "2025-07-01T17:40:53+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\ORM\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "Object-Relational-Mapper for PHP", - "homepage": "https://www.doctrine-project.org/projects/orm.html", - "keywords": [ - "database", - "orm" - ], - "support": { - "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/3.5.0" - }, - "install-path": "../doctrine/orm" - }, - { - "name": "doctrine/persistence", - "version": "4.0.0", - "version_normalized": "4.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "45004aca79189474f113cbe3a53847c2115a55fa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/45004aca79189474f113cbe3a53847c2115a55fa", - "reference": "45004aca79189474f113cbe3a53847c2115a55fa", - "shasum": "" - }, - "require": { - "doctrine/event-manager": "^1 || ^2", - "php": "^8.1", - "psr/cache": "^1.0 || ^2.0 || ^3.0" - }, - "conflict": { - "doctrine/common": "<2.10" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "1.12.7", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^9.6", - "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0" - }, - "time": "2024-11-01T21:49:07+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Persistence\\": "src/Persistence" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://www.doctrine-project.org/projects/persistence.html", - "keywords": [ - "mapper", - "object", - "odm", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/4.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", - "type": "tidelift" - } - ], - "install-path": "../doctrine/persistence" - }, - { - "name": "doctrine/sql-formatter", - "version": "1.5.2", - "version_normalized": "1.5.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/d6d00aba6fd2957fe5216fe2b7673e9985db20c8", - "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ergebnis/phpunit-slow-test-detector": "^2.14", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5" - }, - "time": "2025-01-24T11:45:48+00:00", - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "https://jeremydorn.com/" - } - ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ], - "support": { - "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.5.2" - }, - "install-path": "../doctrine/sql-formatter" - }, - { - "name": "monolog/monolog", - "version": "3.9.0", - "version_normalized": "3.9.0.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^2.0 || ^3.0" - }, - "provide": { - "psr/log-implementation": "3.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2.0", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "php-console/php-console": "^3.1.8", - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^10.5.17 || ^11.0.7", - "predis/predis": "^1.1 || ^2", - "rollbar/rollbar": "^4.0", - "ruflin/elastica": "^7 || ^8", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "time": "2025-03-24T10:02:05+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.9.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "install-path": "../monolog/monolog" - }, - { - "name": "nikic/php-parser", - "version": "v5.0.0", - "version_normalized": "5.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", - "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "time": "2024-01-07T17:17:35+00:00", - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" - }, - "install-path": "../nikic/php-parser" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "time": "2021-02-03T23:26:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "install-path": "../psr/cache" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "time": "2022-11-25T14:36:26+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "install-path": "../psr/clock" - }, - { - "name": "psr/container", - "version": "2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "time": "2021-11-05T16:47:00+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "install-path": "../psr/container" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "time": "2019-01-08T18:20:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "install-path": "../psr/event-dispatcher" - }, - { - "name": "psr/log", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "time": "2021-07-14T16:46:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "install-path": "../psr/log" - }, - { - "name": "symfony/cache", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "c88690befb8d4a85dc321fb78d677507f5eb141b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c88690befb8d4a85dc321fb78d677507f5eb141b", - "reference": "c88690befb8d4a85dc321fb78d677507f5eb141b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/cache": "^2.0|^3.0", - "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.3.6|^7.0" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" - }, - "provide": { - "psr/cache-implementation": "2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0", - "symfony/cache-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-27T18:31:36+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "classmap": [ - "Traits/ValueWrapper.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ], - "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/cache" - }, - { - "name": "symfony/cache-contracts", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache-contracts.git", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/cache": "^3.0" - }, - "time": "2025-03-13T15:25:07+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Cache\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to caching", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/cache-contracts" - }, - { - "name": "symfony/clock", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/clock.git", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/clock": "^1.0", - "symfony/polyfill-php83": "^1.28" - }, - "provide": { - "psr/clock-implementation": "1.0" - }, - "time": "2024-09-25T14:18:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/now.php" - ], - "psr-4": { - "Symfony\\Component\\Clock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Decouples applications from the system clock", - "homepage": "https://symfony.com", - "keywords": [ - "clock", - "psr20", - "time" - ], - "support": { - "source": "https://github.com/symfony/clock/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/clock" - }, - { - "name": "symfony/config", - "version": "v6.4.22", - "version_normalized": "6.4.22.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/af5917a3b1571f54689e56677a3f06440d2fe4c7", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/finder": "<5.4", - "symfony/service-contracts": "<2.5" - }, - "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "time": "2025-05-14T06:00:01+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/config/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/config" - }, - { - "name": "symfony/console", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9056771b8eca08d026cd3280deeec3cfd99c4d93", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-27T19:37:22+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/console" - }, - { - "name": "symfony/dependency-injection", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0d9f24f3de0a83573fce5c9ed025d6306c6e166b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d9f24f3de0a83573fce5c9ed025d6306c6e166b", - "reference": "0d9f24f3de0a83573fce5c9ed025d6306c6e166b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4.20|^7.2.5" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" - }, - "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "symfony/config": "^6.1|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-23T06:49:06+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/dependency-injection" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "time": "2024-09-25T14:21:43+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/deprecation-contracts" - }, - { - "name": "symfony/doctrine-bridge", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "ef360932b8b342c0360b768b97776a12d5242db6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/ef360932b8b342c0360b768b97776a12d5242db6", - "reference": "ef360932b8b342c0360b768b97776a12d5242db6", - "shasum": "" - }, - "require": { - "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^2.5|^3.1|^4", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "doctrine/lexer": "<1.1", - "doctrine/orm": "<2.15", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/form": "<5.4.38|>=6,<6.4.6|>=7,<7.0.6", - "symfony/http-foundation": "<6.3", - "symfony/http-kernel": "<6.2", - "symfony/lock": "<6.3", - "symfony/messenger": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-bundle": "<5.4", - "symfony/security-core": "<6.4", - "symfony/validator": "<6.4" - }, - "require-dev": { - "doctrine/collections": "^1.0|^2.0", - "doctrine/data-fixtures": "^1.1|^2", - "doctrine/dbal": "^2.13.1|^3|^4", - "doctrine/orm": "^2.15|^3", - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.2|^7.0", - "symfony/doctrine-messenger": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4.38|^6.4.6|^7.0.6", - "symfony/http-kernel": "^6.3|^7.0", - "symfony/lock": "^6.3|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/proxy-manager-bridge": "^6.4", - "symfony/security-core": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-26T11:46:10+00:00", - "type": "symfony-bridge", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Doctrine\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides integration for Doctrine with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/doctrine-bridge" - }, - { - "name": "symfony/dotenv", - "version": "v6.4.16", - "version_normalized": "6.4.16.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/1ac5e7e7e862d4d574258daf08bd569ba926e4a5", - "reference": "1ac5e7e7e862d4d574258daf08bd569ba926e4a5", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "conflict": { - "symfony/console": "<5.4", - "symfony/process": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0" - }, - "time": "2024-11-27T11:08:19+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Dotenv\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Registers environment variables from a .env file", - "homepage": "https://symfony.com", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.4.16" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/dotenv" - }, - { - "name": "symfony/error-handler", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "b088e0b175c30b4e06d8085200fa465b586f44fa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/b088e0b175c30b4e06d8085200fa465b586f44fa", - "reference": "b088e0b175c30b4e06d8085200fa465b586f44fa", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-13T07:39:48+00:00", - "bin": [ - "Resources/bin/patch-type-declarations" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to manage errors and ease debugging PHP code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/error-handler" - }, - { - "name": "symfony/event-dispatcher", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" - }, - "time": "2024-09-25T14:18:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/event-dispatcher" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "time": "2024-09-25T14:21:43+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/event-dispatcher-contracts" - }, - { - "name": "symfony/filesystem", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" - }, - "time": "2024-10-25T15:07:50+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/filesystem" - }, - { - "name": "symfony/finder", - "version": "v6.4.17", - "version_normalized": "6.4.17.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/filesystem": "^6.0|^7.0" - }, - "time": "2024-12-29T13:51:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.17" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/finder" - }, - { - "name": "symfony/flex", - "version": "v2.8.1", - "version_normalized": "2.8.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/flex.git", - "reference": "423c36e369361003dc31ef11c5f15fb589e52c01" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/423c36e369361003dc31ef11c5f15fb589e52c01", - "reference": "423c36e369361003dc31ef11c5f15fb589e52c01", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.1", - "php": ">=8.0" - }, - "conflict": { - "composer/semver": "<1.7.2" - }, - "require-dev": { - "composer/composer": "^2.1", - "symfony/dotenv": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" - }, - "time": "2025-07-05T07:45:19+00:00", - "type": "composer-plugin", - "extra": { - "class": "Symfony\\Flex\\Flex" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Flex\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien.potencier@gmail.com" - } - ], - "description": "Composer plugin for Symfony", - "support": { - "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.8.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/flex" - }, - { - "name": "symfony/framework-bundle", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/framework-bundle.git", - "reference": "ff892d3ab4b8aa35921bc2120a4b31d57948fe22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ff892d3ab4b8aa35921bc2120a4b31d57948fe22", - "reference": "ff892d3ab4b8aa35921bc2120a4b31d57948fe22", - "shasum": "" - }, - "require": { - "composer-runtime-api": ">=2.1", - "ext-xml": "*", - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.12|^7.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.1|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4", - "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^6.4|^7.0" - }, - "conflict": { - "doctrine/annotations": "<1.13.1", - "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/asset": "<5.4", - "symfony/asset-mapper": "<6.4", - "symfony/clock": "<6.3", - "symfony/console": "<5.4|>=7.0", - "symfony/dom-crawler": "<6.4", - "symfony/dotenv": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<6.3", - "symfony/lock": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<6.3", - "symfony/mime": "<6.4", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6", - "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4", - "symfony/security-core": "<5.4", - "symfony/security-csrf": "<5.4", - "symfony/serializer": "<6.4", - "symfony/stopwatch": "<5.4", - "symfony/translation": "<6.4", - "symfony/twig-bridge": "<5.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.4", - "symfony/web-profiler-bundle": "<6.4", - "symfony/workflow": "<6.4" - }, - "require-dev": { - "doctrine/annotations": "^1.13.1|^2", - "doctrine/persistence": "^1.3|^2|^3", - "dragonmantank/cron-expression": "^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "seld/jsonlint": "^1.10", - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/asset-mapper": "^6.4|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/html-sanitizer": "^6.1|^7.0", - "symfony/http-client": "^6.3|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.3|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/notifier": "^5.4|^6.0|^7.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/scheduler": "^6.4.4|^7.0.4", - "symfony/security-bundle": "^5.4|^6.0|^7.0", - "symfony/semaphore": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^6.4|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/web-link": "^5.4|^6.0|^7.0", - "symfony/workflow": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.10|^3.0.4" - }, - "time": "2025-06-26T21:24:02+00:00", - "type": "symfony-bundle", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\FrameworkBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/framework-bundle" - }, - { - "name": "symfony/http-client", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client.git", - "reference": "19f11e742b94dcfd968a54f5381bb9082a88cb57" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/19f11e742b94dcfd968a54f5381bb9082a88cb57", - "reference": "19f11e742b94dcfd968a54f5381bb9082a88cb57", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-client-contracts": "~3.4.4|^3.5.2", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "3.0" - }, - "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", - "guzzlehttp/promises": "^1.4|^2.0", - "nyholm/psr7": "^1.0", - "php-http/httplug": "^1.0|^2.0", - "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-27T20:02:31+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", - "homepage": "https://symfony.com", - "keywords": [ - "http" - ], - "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/http-client" - }, - { - "name": "symfony/http-client-contracts", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "75d7043853a42837e68111812f4d964b01e5101c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/75d7043853a42837e68111812f4d964b01e5101c", - "reference": "75d7043853a42837e68111812f4d964b01e5101c", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "time": "2025-04-29T11:18:49+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/http-client-contracts" - }, - { - "name": "symfony/http-foundation", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "452d19f945ee41345fd8a50c18b60783546b7bd3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/452d19f945ee41345fd8a50c18b60783546b7bd3", - "reference": "452d19f945ee41345fd8a50c18b60783546b7bd3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" - }, - "conflict": { - "symfony/cache": "<6.4.12|>=7.0,<7.1.5" - }, - "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" - }, - "time": "2025-05-26T09:17:58+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/http-foundation" - }, - { - "name": "symfony/http-kernel", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "2bb2cba685aabd859f22cf6946554e8e7f3c329a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bb2cba685aabd859f22cf6946554e8e7f3c329a", - "reference": "2bb2cba685aabd859f22cf6946554e8e7f3c329a", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", - "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", - "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.4|^7.0.4", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", - "twig/twig": "^2.13|^3.0.4" - }, - "time": "2025-06-28T08:14:51+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a structured process for converting a Request into a Response", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/http-kernel" - }, - { - "name": "symfony/lock", - "version": "v6.4.24", - "version_normalized": "6.4.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/lock.git", - "reference": "85ca8b5501a3ccac7d749e632e6fde5bf962bef0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/85ca8b5501a3ccac7d749e632e6fde5bf962bef0", - "reference": "85ca8b5501a3ccac7d749e632e6fde5bf962bef0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13", - "symfony/cache": "<6.2" - }, - "require-dev": { - "doctrine/dbal": "^2.13|^3|^4", - "predis/predis": "^1.1|^2.0" - }, - "time": "2025-07-30T11:02:24+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Lock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", - "homepage": "https://symfony.com", - "keywords": [ - "cas", - "flock", - "locking", - "mutex", - "redlock", - "semaphore" - ], - "support": { - "source": "https://github.com/symfony/lock/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/lock" - }, - { - "name": "symfony/maker-bundle", - "version": "v1.64.0", - "version_normalized": "1.64.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/maker-bundle.git", - "reference": "c86da84640b0586e92aee2b276ee3638ef2f425a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c86da84640b0586e92aee2b276ee3638ef2f425a", - "reference": "c86da84640b0586e92aee2b276ee3638ef2f425a", - "shasum": "" - }, - "require": { - "doctrine/inflector": "^2.0", - "nikic/php-parser": "^5.0", - "php": ">=8.1", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/deprecation-contracts": "^2.2|^3", - "symfony/filesystem": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0" - }, - "conflict": { - "doctrine/doctrine-bundle": "<2.10", - "doctrine/orm": "<2.15" - }, - "require-dev": { - "composer/semver": "^3.0", - "doctrine/doctrine-bundle": "^2.5.0", - "doctrine/orm": "^2.15|^3", - "symfony/http-client": "^6.4|^7.0", - "symfony/phpunit-bridge": "^6.4.1|^7.0", - "symfony/security-core": "^6.4|^7.0", - "symfony/security-http": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0", - "twig/twig": "^3.0|^4.x-dev" - }, - "time": "2025-06-23T16:12:08+00:00", - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\MakerBundle\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", - "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", - "keywords": [ - "code generator", - "dev", - "generator", - "scaffold", - "scaffolding" - ], - "support": { - "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.64.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/maker-bundle" - }, - { - "name": "symfony/messenger", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/messenger.git", - "reference": "862d99460cd12a1e6cc2ef928b06ec4bae47d39f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/862d99460cd12a1e6cc2ef928b06ec4bae47d39f", - "reference": "862d99460cd12a1e6cc2ef928b06ec4bae47d39f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/clock": "^6.3|^7.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/console": "<6.3", - "symfony/event-dispatcher": "<5.4", - "symfony/event-dispatcher-contracts": "<2.5", - "symfony/framework-bundle": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/serializer": "<5.4" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/console": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/validator": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-26T21:24:02+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Samuel Roze", - "email": "samuel.roze@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps applications send and receive messages to/from other applications or via message queues", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/messenger/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/messenger" - }, - { - "name": "symfony/monolog-bridge", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9d14621e59f22c2b6d030d92d37ffe5ae1e60452", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452", - "shasum": "" - }, - "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "time": "2024-10-14T08:49:08+00:00", - "type": "symfony-bridge", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Monolog\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides integration for Monolog with various Symfony components", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/monolog-bridge" - }, - { - "name": "symfony/monolog-bundle", - "version": "v3.10.0", - "version_normalized": "3.10.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", - "shasum": "" - }, - "require": { - "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", - "php": ">=7.2.5", - "symfony/config": "^5.4 || ^6.0 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", - "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", - "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.3 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "time": "2023-11-06T17:08:13+00:00", - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony MonologBundle", - "homepage": "https://symfony.com", - "keywords": [ - "log", - "logging" - ], - "support": { - "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/monolog-bundle" - }, - { - "name": "symfony/options-resolver", - "version": "v6.4.24", - "version_normalized": "6.4.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "baee5736ddf7a0486dd68ca05aa4fd7e64458d3d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/baee5736ddf7a0486dd68ca05aa4fd7e64458d3d", - "reference": "baee5736ddf7a0486dd68ca05aa4fd7e64458d3d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "time": "2025-07-14T16:38:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/options-resolver" - }, - { - "name": "symfony/password-hasher", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/password-hasher.git", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "conflict": { - "symfony/security-core": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0" - }, - "time": "2024-09-25T14:18:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\PasswordHasher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Robin Chalas", - "email": "robin.chalas@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides password hashing utilities", - "homepage": "https://symfony.com", - "keywords": [ - "hashing", - "password" - ], - "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/password-hasher" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2024-09-09T11:45:10+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-grapheme" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2024-09-09T11:45:10+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-normalizer" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2024-12-23T08:48:59+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-mbstring" - }, - { - "name": "symfony/polyfill-php83", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2024-09-09T11:45:10+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php83" - }, - { - "name": "symfony/polyfill-php84", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "000df7860439609837bbe28670b0be15783b7fbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/000df7860439609837bbe28670b0be15783b7fbf", - "reference": "000df7860439609837bbe28670b0be15783b7fbf", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2025-02-20T12:04:08+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php84" - }, - { - "name": "symfony/polyfill-uuid", - "version": "v1.32.0", - "version_normalized": "1.32.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-uuid": "*" - }, - "suggest": { - "ext-uuid": "For best performance" - }, - "time": "2024-09-09T11:45:10+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Uuid\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for uuid functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "uuid" - ], - "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-uuid" - }, - { - "name": "symfony/process", - "version": "v6.4.20", - "version_normalized": "6.4.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e2a61c16af36c9a07e5c9906498b73e091949a20", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "time": "2025-03-10T17:11:00+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.4.20" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/process" - }, - { - "name": "symfony/property-access", - "version": "v6.4.18", - "version_normalized": "6.4.18.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/property-access.git", - "reference": "80e0378f2f058b60d87dedc3c760caec882e992c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/80e0378f2f058b60d87dedc3c760caec882e992c", - "reference": "80e0378f2f058b60d87dedc3c760caec882e992c", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^5.4|^6.0|^7.0" - }, - "require-dev": { - "symfony/cache": "^5.4|^6.0|^7.0" - }, - "time": "2024-12-16T14:42:05+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\PropertyAccess\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides functions to read and write from/to an object or array using a simple string notation", - "homepage": "https://symfony.com", - "keywords": [ - "access", - "array", - "extraction", - "index", - "injection", - "object", - "property", - "property-path", - "reflection" - ], - "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/property-access" - }, - { - "name": "symfony/property-info", - "version": "v6.4.18", - "version_normalized": "6.4.18.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/property-info.git", - "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/94d18e5cc11a37fd92856d38b61d9cdf72536a1e", - "reference": "94d18e5cc11a37fd92856d38b61d9cdf72536a1e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "phpdocumentor/reflection-docblock": "<5.2", - "phpdocumentor/type-resolver": "<1.5.1", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<5.4|>=6.0,<6.4", - "symfony/serializer": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0|^2.0", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.4|^7.0" - }, - "time": "2025-01-21T10:52:27+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\PropertyInfo\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kévin Dunglas", - "email": "dunglas@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Extracts information about PHP class' properties using metadata of popular sources", - "homepage": "https://symfony.com", - "keywords": [ - "doctrine", - "phpdoc", - "property", - "symfony", - "type", - "validator" - ], - "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/property-info" - }, - { - "name": "symfony/rate-limiter", - "version": "v6.4.24", - "version_normalized": "6.4.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/rate-limiter.git", - "reference": "15a9a10fd0f060243c88ce98d5c29e9cc4b886e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/15a9a10fd0f060243c88ce98d5c29e9cc4b886e7", - "reference": "15a9a10fd0f060243c88ce98d5c29e9cc4b886e7", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/options-resolver": "^5.4|^6.0|^7.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/lock": "^5.4|^6.0|^7.0" - }, - "time": "2025-07-10T08:14:14+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\RateLimiter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Wouter de Jong", - "email": "wouter@wouterj.nl" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a Token Bucket implementation to rate limit input and output in your application", - "homepage": "https://symfony.com", - "keywords": [ - "limiter", - "rate-limiter" - ], - "support": { - "source": "https://github.com/symfony/rate-limiter/tree/v6.4.24" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/rate-limiter" - }, - { - "name": "symfony/redis-messenger", - "version": "v6.4.21", - "version_normalized": "6.4.21.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/redis-messenger.git", - "reference": "188c3d35cf7034b81efabae847cf682d88e9168e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/188c3d35cf7034b81efabae847cf682d88e9168e", - "reference": "188c3d35cf7034b81efabae847cf682d88e9168e", - "shasum": "" - }, - "require": { - "ext-redis": "*", - "php": ">=8.1", - "symfony/messenger": "^6.1|^7.0" - }, - "require-dev": { - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" - }, - "time": "2025-04-07T08:43:35+00:00", - "type": "symfony-messenger-bridge", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\Bridge\\Redis\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Redis extension Messenger Bridge", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/redis-messenger/tree/v6.4.21" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/redis-messenger" - }, - { - "name": "symfony/routing", - "version": "v6.4.22", - "version_normalized": "6.4.22.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/1f5234e8457164a3a0038a4c0a4ba27876a9c670", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "time": "2025-04-27T16:08:38+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/routing" - }, - { - "name": "symfony/runtime", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/runtime.git", - "reference": "ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f", - "reference": "ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=8.1" - }, - "conflict": { - "symfony/dotenv": "<5.4" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-13T07:44:14+00:00", - "type": "composer-plugin", - "extra": { - "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Runtime\\": "", - "Symfony\\Runtime\\Symfony\\Component\\": "Internal/" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Enables decoupling PHP applications from global state", - "homepage": "https://symfony.com", - "keywords": [ - "runtime" - ], - "support": { - "source": "https://github.com/symfony/runtime/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/runtime" - }, - { - "name": "symfony/security-bundle", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-bundle.git", - "reference": "3db1460f539b23e74a119981ea6b3002302250bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/3db1460f539b23e74a119981ea6b3002302250bc", - "reference": "3db1460f539b23e74a119981ea6b3002302250bc", - "shasum": "" - }, - "require": { - "composer-runtime-api": ">=2.1", - "ext-xml": "*", - "php": ">=8.1", - "symfony/clock": "^6.3|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.11|^7.1.4", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.2", - "symfony/password-hasher": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.2|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/security-http": "^6.3.6|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/console": "<5.4", - "symfony/framework-bundle": "<6.4", - "symfony/http-client": "<5.4", - "symfony/ldap": "<5.4", - "symfony/serializer": "<6.4", - "symfony/twig-bundle": "<5.4", - "symfony/validator": "<6.4" - }, - "require-dev": { - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/twig-bridge": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1", - "web-token/jwt-signature-algorithm-eddsa": "^3.1", - "web-token/jwt-signature-algorithm-hmac": "^3.1", - "web-token/jwt-signature-algorithm-none": "^3.1", - "web-token/jwt-signature-algorithm-rsa": "^3.1" - }, - "time": "2025-06-23T20:18:57+00:00", - "type": "symfony-bundle", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\SecurityBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/security-bundle" - }, - { - "name": "symfony/security-core", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-core.git", - "reference": "527780a0482e592530174ca90e6189f64cdf6569" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/527780a0482e592530174ca90e6189f64cdf6569", - "reference": "527780a0482e592530174ca90e6189f64cdf6569", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher-contracts": "^2.5|^3", - "symfony/password-hasher": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/event-dispatcher": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/ldap": "<5.4", - "symfony/security-guard": "<5.4", - "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", - "symfony/validator": "<5.4" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "psr/container": "^1.1|^2.0", - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", - "symfony/validator": "^6.4|^7.0" - }, - "time": "2025-05-30T08:33:44+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Core\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - Core Library", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/security-core" - }, - { - "name": "symfony/security-csrf", - "version": "v6.4.13", - "version_normalized": "6.4.13.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-csrf.git", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c34421b7d34efbaef5d611ab2e646a0ec464ffe3", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/security-core": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/http-foundation": "<5.4" - }, - "require-dev": { - "symfony/http-foundation": "^5.4|^6.0|^7.0" - }, - "time": "2024-09-25T14:18:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Csrf\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - CSRF Library", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.4.13" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/security-csrf" - }, - { - "name": "symfony/security-http", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/security-http.git", - "reference": "815fcda8122a7850bf6d5d842ce03c20445295bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/815fcda8122a7850bf6d5d842ce03c20445295bb", - "reference": "815fcda8122a7850bf6d5d842ce03c20445295bb", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.3|^7.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/clock": "<6.3", - "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", - "symfony/http-client-contracts": "<3.0", - "symfony/security-bundle": "<5.4", - "symfony/security-csrf": "<5.4" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.3|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^3.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1" - }, - "time": "2025-06-23T20:18:57+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Security\\Http\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Security Component - HTTP Integration", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/security-http" - }, - { - "name": "symfony/service-contracts", - "version": "v3.6.0", - "version_normalized": "3.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "time": "2025-04-25T09:37:31+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/service-contracts" - }, - { - "name": "symfony/stopwatch", - "version": "v6.4.19", - "version_normalized": "6.4.19.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c", - "reference": "dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/service-contracts": "^2.5|^3" - }, - "time": "2025-02-21T10:06:30+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a way to profile code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.4.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/stopwatch" - }, - { - "name": "symfony/string", - "version": "v6.4.21", - "version_normalized": "6.4.21.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" - }, - "time": "2025-04-18T15:23:29+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.4.21" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/string" - }, - { - "name": "symfony/uid", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/uid.git", - "reference": "9c8592da78d7ee6af52011eef593350d87e814c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/9c8592da78d7ee6af52011eef593350d87e814c0", - "reference": "9c8592da78d7ee6af52011eef593350d87e814c0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-uuid": "^1.15" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-26T08:06:12+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Uid\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Grégoire Pineau", - "email": "lyrixx@lyrixx.info" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to generate and represent UIDs", - "homepage": "https://symfony.com", - "keywords": [ - "UID", - "ulid", - "uuid" - ], - "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/uid" - }, - { - "name": "symfony/var-dumper", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" - }, - "time": "2025-06-27T15:05:27+00:00", - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/var-dumper" - }, - { - "name": "symfony/var-exporter", - "version": "v6.4.22", - "version_normalized": "6.4.22.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "require-dev": { - "symfony/property-access": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "time": "2025-05-14T13:00:13+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows exporting any serializable PHP data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "lazy-loading", - "proxy", - "serialize" - ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/var-exporter" - }, - { - "name": "symfony/yaml", - "version": "v6.4.23", - "version_normalized": "6.4.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/93e29e0deb5f1b2e360adfb389a20d25eb81a27b", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" - }, - "time": "2025-06-03T06:46:12+00:00", - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.23" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/yaml" - } - ], - "dev": true, - "dev-package-names": [ - "nikic/php-parser", - "symfony/maker-bundle", - "symfony/process" - ] -} diff --git a/projects/priceservice/vendor/composer/installed.php b/projects/priceservice/vendor/composer/installed.php deleted file mode 100644 index a352b4b..0000000 --- a/projects/priceservice/vendor/composer/installed.php +++ /dev/null @@ -1,783 +0,0 @@ - array( - 'name' => '__root__', - 'pretty_version' => 'dev-main', - 'version' => 'dev-main', - 'reference' => '4f313a54d82ee51ffa60bd93b25f5eff1130b431', - 'type' => 'project', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev' => true, - ), - 'versions' => array( - '__root__' => array( - 'pretty_version' => 'dev-main', - 'version' => 'dev-main', - 'reference' => '4f313a54d82ee51ffa60bd93b25f5eff1130b431', - 'type' => 'project', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/collections' => array( - 'pretty_version' => '2.3.0', - 'version' => '2.3.0.0', - 'reference' => '2eb07e5953eed811ce1b309a7478a3b236f2273d', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/collections', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/dbal' => array( - 'pretty_version' => '4.3.1', - 'version' => '4.3.1.0', - 'reference' => 'ac336c95ea9e13433d56ca81c308b39db0e1a2a7', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/dbal', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/deprecations' => array( - 'pretty_version' => '1.1.5', - 'version' => '1.1.5.0', - 'reference' => '459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/deprecations', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/doctrine-bundle' => array( - 'pretty_version' => '2.15.0', - 'version' => '2.15.0.0', - 'reference' => 'd88294521a1bca943240adca65fa19ca8a7288c6', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../doctrine/doctrine-bundle', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/doctrine-migrations-bundle' => array( - 'pretty_version' => '3.4.2', - 'version' => '3.4.2.0', - 'reference' => '5a6ac7120c2924c4c070a869d08b11ccf9e277b9', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../doctrine/doctrine-migrations-bundle', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/event-manager' => array( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'reference' => 'b680156fa328f1dfd874fd48c7026c41570b9c6e', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/event-manager', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/inflector' => array( - 'pretty_version' => '2.0.10', - 'version' => '2.0.10.0', - 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/inflector', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/instantiator' => array( - 'pretty_version' => '2.0.0', - 'version' => '2.0.0.0', - 'reference' => 'c6222283fa3f4ac679f8b9ced9a4e23f163e80d0', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/instantiator', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/lexer' => array( - 'pretty_version' => '3.0.1', - 'version' => '3.0.1.0', - 'reference' => '31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/lexer', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/migrations' => array( - 'pretty_version' => '3.9.2', - 'version' => '3.9.2.0', - 'reference' => 'fa94c6f06b1bc6d4759481ec20b8b81d13e861be', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/migrations', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/orm' => array( - 'pretty_version' => '3.5.0', - 'version' => '3.5.0.0', - 'reference' => '6deec3655ba3e8f15280aac11e264225854d2369', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/orm', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/persistence' => array( - 'pretty_version' => '4.0.0', - 'version' => '4.0.0.0', - 'reference' => '45004aca79189474f113cbe3a53847c2115a55fa', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/persistence', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'doctrine/sql-formatter' => array( - 'pretty_version' => '1.5.2', - 'version' => '1.5.2.0', - 'reference' => 'd6d00aba6fd2957fe5216fe2b7673e9985db20c8', - 'type' => 'library', - 'install_path' => __DIR__ . '/../doctrine/sql-formatter', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'monolog/monolog' => array( - 'pretty_version' => '3.9.0', - 'version' => '3.9.0.0', - 'reference' => '10d85740180ecba7896c87e06a166e0c95a0e3b6', - 'type' => 'library', - 'install_path' => __DIR__ . '/../monolog/monolog', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'nikic/php-parser' => array( - 'pretty_version' => 'v5.0.0', - 'version' => '5.0.0.0', - 'reference' => '4a21235f7e56e713259a6f76bf4b5ea08502b9dc', - 'type' => 'library', - 'install_path' => __DIR__ . '/../nikic/php-parser', - 'aliases' => array(), - 'dev_requirement' => true, - ), - 'php-http/async-client-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '*', - ), - ), - 'php-http/client-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '*', - ), - ), - 'psr/cache' => array( - 'pretty_version' => '3.0.0', - 'version' => '3.0.0.0', - 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', - 'type' => 'library', - 'install_path' => __DIR__ . '/../psr/cache', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'psr/cache-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '2.0|3.0', - ), - ), - 'psr/clock' => array( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d', - 'type' => 'library', - 'install_path' => __DIR__ . '/../psr/clock', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'psr/clock-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.0', - ), - ), - 'psr/container' => array( - 'pretty_version' => '2.0.2', - 'version' => '2.0.2.0', - 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', - 'type' => 'library', - 'install_path' => __DIR__ . '/../psr/container', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'psr/container-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.1|2.0', - ), - ), - 'psr/event-dispatcher' => array( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', - 'type' => 'library', - 'install_path' => __DIR__ . '/../psr/event-dispatcher', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'psr/event-dispatcher-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.0', - ), - ), - 'psr/http-client-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.0', - ), - ), - 'psr/log' => array( - 'pretty_version' => '3.0.0', - 'version' => '3.0.0.0', - 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', - 'type' => 'library', - 'install_path' => __DIR__ . '/../psr/log', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'psr/log-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.0|2.0|3.0', - 1 => '3.0.0', - ), - ), - 'psr/simple-cache-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.0|2.0|3.0', - ), - ), - 'symfony/cache' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'c88690befb8d4a85dc321fb78d677507f5eb141b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/cache', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/cache-contracts' => array( - 'pretty_version' => 'v3.6.0', - 'version' => '3.6.0.0', - 'reference' => '5d68a57d66910405e5c0b63d6f0af941e66fc868', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/cache-contracts', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/cache-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.1|2.0|3.0', - ), - ), - 'symfony/clock' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => 'b2bf55c4dd115003309eafa87ee7df9ed3dde81b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/clock', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/config' => array( - 'pretty_version' => 'v6.4.22', - 'version' => '6.4.22.0', - 'reference' => 'af5917a3b1571f54689e56677a3f06440d2fe4c7', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/config', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/console' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '9056771b8eca08d026cd3280deeec3cfd99c4d93', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/console', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/dependency-injection' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '0d9f24f3de0a83573fce5c9ed025d6306c6e166b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/dependency-injection', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/deprecation-contracts' => array( - 'pretty_version' => 'v3.6.0', - 'version' => '3.6.0.0', - 'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/doctrine-bridge' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'ef360932b8b342c0360b768b97776a12d5242db6', - 'type' => 'symfony-bridge', - 'install_path' => __DIR__ . '/../symfony/doctrine-bridge', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/dotenv' => array( - 'pretty_version' => 'v6.4.16', - 'version' => '6.4.16.0', - 'reference' => '1ac5e7e7e862d4d574258daf08bd569ba926e4a5', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/dotenv', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/error-handler' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'b088e0b175c30b4e06d8085200fa465b586f44fa', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/error-handler', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/event-dispatcher' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => '0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/event-dispatcher', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/event-dispatcher-contracts' => array( - 'pretty_version' => 'v3.6.0', - 'version' => '3.6.0.0', - 'reference' => '59eb412e93815df44f05f342958efa9f46b1e586', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/event-dispatcher-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '2.0|3.0', - ), - ), - 'symfony/filesystem' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => '4856c9cf585d5a0313d8d35afd681a526f038dd3', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/filesystem', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/finder' => array( - 'pretty_version' => 'v6.4.17', - 'version' => '6.4.17.0', - 'reference' => '1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/finder', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/flex' => array( - 'pretty_version' => 'v2.8.1', - 'version' => '2.8.1.0', - 'reference' => '423c36e369361003dc31ef11c5f15fb589e52c01', - 'type' => 'composer-plugin', - 'install_path' => __DIR__ . '/../symfony/flex', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/framework-bundle' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'ff892d3ab4b8aa35921bc2120a4b31d57948fe22', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../symfony/framework-bundle', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/http-client' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '19f11e742b94dcfd968a54f5381bb9082a88cb57', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/http-client', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/http-client-contracts' => array( - 'pretty_version' => 'v3.6.0', - 'version' => '3.6.0.0', - 'reference' => '75d7043853a42837e68111812f4d964b01e5101c', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/http-client-contracts', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/http-client-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '3.0', - ), - ), - 'symfony/http-foundation' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '452d19f945ee41345fd8a50c18b60783546b7bd3', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/http-foundation', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/http-kernel' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '2bb2cba685aabd859f22cf6946554e8e7f3c329a', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/http-kernel', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/lock' => array( - 'pretty_version' => 'v6.4.24', - 'version' => '6.4.24.0', - 'reference' => '85ca8b5501a3ccac7d749e632e6fde5bf962bef0', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/lock', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/maker-bundle' => array( - 'pretty_version' => 'v1.64.0', - 'version' => '1.64.0.0', - 'reference' => 'c86da84640b0586e92aee2b276ee3638ef2f425a', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../symfony/maker-bundle', - 'aliases' => array(), - 'dev_requirement' => true, - ), - 'symfony/messenger' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '862d99460cd12a1e6cc2ef928b06ec4bae47d39f', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/messenger', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/monolog-bridge' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => '9d14621e59f22c2b6d030d92d37ffe5ae1e60452', - 'type' => 'symfony-bridge', - 'install_path' => __DIR__ . '/../symfony/monolog-bridge', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/monolog-bundle' => array( - 'pretty_version' => 'v3.10.0', - 'version' => '3.10.0.0', - 'reference' => '414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../symfony/monolog-bundle', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/options-resolver' => array( - 'pretty_version' => 'v6.4.24', - 'version' => '6.4.24.0', - 'reference' => 'baee5736ddf7a0486dd68ca05aa4fd7e64458d3d', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/options-resolver', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/password-hasher' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => 'e97a1b31f60b8bdfc1fdedab4398538da9441d47', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/password-hasher', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-ctype' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-iconv' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-intl-grapheme' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => 'b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-intl-normalizer' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => '3833d7255cc303546435cb650316bff708a1c75c', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-mbstring' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-php72' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-php73' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-php74' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-php80' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-php81' => array( - 'dev_requirement' => false, - 'replaced' => array( - 0 => '*', - ), - ), - 'symfony/polyfill-php83' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => '2fb86d65e2d424369ad2905e83b236a8805ba491', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-php83', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-php84' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => '000df7860439609837bbe28670b0be15783b7fbf', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-php84', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/polyfill-uuid' => array( - 'pretty_version' => 'v1.32.0', - 'version' => '1.32.0.0', - 'reference' => '21533be36c24be3f4b1669c4725c7d1d2bab4ae2', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-uuid', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/process' => array( - 'pretty_version' => 'v6.4.20', - 'version' => '6.4.20.0', - 'reference' => 'e2a61c16af36c9a07e5c9906498b73e091949a20', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/process', - 'aliases' => array(), - 'dev_requirement' => true, - ), - 'symfony/property-access' => array( - 'pretty_version' => 'v6.4.18', - 'version' => '6.4.18.0', - 'reference' => '80e0378f2f058b60d87dedc3c760caec882e992c', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/property-access', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/property-info' => array( - 'pretty_version' => 'v6.4.18', - 'version' => '6.4.18.0', - 'reference' => '94d18e5cc11a37fd92856d38b61d9cdf72536a1e', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/property-info', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/rate-limiter' => array( - 'pretty_version' => 'v6.4.24', - 'version' => '6.4.24.0', - 'reference' => '15a9a10fd0f060243c88ce98d5c29e9cc4b886e7', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/rate-limiter', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/redis-messenger' => array( - 'pretty_version' => 'v6.4.21', - 'version' => '6.4.21.0', - 'reference' => '188c3d35cf7034b81efabae847cf682d88e9168e', - 'type' => 'symfony-messenger-bridge', - 'install_path' => __DIR__ . '/../symfony/redis-messenger', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/routing' => array( - 'pretty_version' => 'v6.4.22', - 'version' => '6.4.22.0', - 'reference' => '1f5234e8457164a3a0038a4c0a4ba27876a9c670', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/routing', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/runtime' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'ef1f03c2ab1144ac4ef7744b9e026bdb06f2f88f', - 'type' => 'composer-plugin', - 'install_path' => __DIR__ . '/../symfony/runtime', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/security-bundle' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '3db1460f539b23e74a119981ea6b3002302250bc', - 'type' => 'symfony-bundle', - 'install_path' => __DIR__ . '/../symfony/security-bundle', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/security-core' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '527780a0482e592530174ca90e6189f64cdf6569', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/security-core', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/security-csrf' => array( - 'pretty_version' => 'v6.4.13', - 'version' => '6.4.13.0', - 'reference' => 'c34421b7d34efbaef5d611ab2e646a0ec464ffe3', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/security-csrf', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/security-http' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '815fcda8122a7850bf6d5d842ce03c20445295bb', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/security-http', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/service-contracts' => array( - 'pretty_version' => 'v3.6.0', - 'version' => '3.6.0.0', - 'reference' => 'f021b05a130d35510bd6b25fe9053c2a8a15d5d4', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/service-contracts', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/service-implementation' => array( - 'dev_requirement' => false, - 'provided' => array( - 0 => '1.1|2.0|3.0', - ), - ), - 'symfony/stopwatch' => array( - 'pretty_version' => 'v6.4.19', - 'version' => '6.4.19.0', - 'reference' => 'dfe1481c12c06266d0c3d58c0cb4b09bd497ab9c', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/stopwatch', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/string' => array( - 'pretty_version' => 'v6.4.21', - 'version' => '6.4.21.0', - 'reference' => '73e2c6966a5aef1d4892873ed5322245295370c6', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/string', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/uid' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '9c8592da78d7ee6af52011eef593350d87e814c0', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/uid', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/var-dumper' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => 'd55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/var-dumper', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/var-exporter' => array( - 'pretty_version' => 'v6.4.22', - 'version' => '6.4.22.0', - 'reference' => 'f28cf841f5654955c9f88ceaf4b9dc29571988a9', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/var-exporter', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/yaml' => array( - 'pretty_version' => 'v6.4.23', - 'version' => '6.4.23.0', - 'reference' => '93e29e0deb5f1b2e360adfb389a20d25eb81a27b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/yaml', - 'aliases' => array(), - 'dev_requirement' => false, - ), - ), -); diff --git a/projects/priceservice/vendor/composer/platform_check.php b/projects/priceservice/vendor/composer/platform_check.php deleted file mode 100644 index 14bf88d..0000000 --- a/projects/priceservice/vendor/composer/platform_check.php +++ /dev/null @@ -1,25 +0,0 @@ -= 80200)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - throw new \RuntimeException( - 'Composer detected issues in your platform: ' . implode(' ', $issues) - ); -} diff --git a/projects/priceservice/vendor/doctrine/collections/CONTRIBUTING.md b/projects/priceservice/vendor/doctrine/collections/CONTRIBUTING.md deleted file mode 100644 index 7a0a8c9..0000000 --- a/projects/priceservice/vendor/doctrine/collections/CONTRIBUTING.md +++ /dev/null @@ -1,44 +0,0 @@ -# Contribute to Doctrine - -Thank you for contributing to Doctrine! - -Before we can merge your Pull-Request here are some guidelines that you need to follow. -These guidelines exist not to annoy you, but to keep the code base clean, -unified and future proof. - -## Coding Standard - -We use the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard). - -## Unit-Tests - -Please try to add a test for your pull-request. - -* If you want to contribute new functionality add unit- or functional tests - depending on the scope of the feature. - -You can run the unit-tests by calling ``vendor/bin/phpunit`` from the root of the project. -It will run all the project tests. - -In order to do that, you will need a fresh copy of doctrine/collections, and you -will have to run a composer installation in the project: - -```sh -git clone git@github.com:doctrine/collections.git -cd collections -curl -sS https://getcomposer.org/installer | php -- -./composer.phar install -``` - -## Github Actions - -We automatically run your pull request through Github Actions against supported -PHP versions. If you break the tests, we cannot merge your code, so please make -sure that your code is working before opening up a Pull-Request. - -## Getting merged - -Please allow us time to review your pull requests. We will give our best to review -everything as fast as possible, but cannot always live up to our own expectations. - -Thank you very much again for your contribution! diff --git a/projects/priceservice/vendor/doctrine/collections/LICENSE b/projects/priceservice/vendor/doctrine/collections/LICENSE deleted file mode 100644 index 5e781fc..0000000 --- a/projects/priceservice/vendor/doctrine/collections/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/collections/README.md b/projects/priceservice/vendor/doctrine/collections/README.md deleted file mode 100644 index 048fb61..0000000 --- a/projects/priceservice/vendor/doctrine/collections/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Doctrine Collections - -[![Build Status](https://github.com/doctrine/collections/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/collections/actions) -[![Code Coverage](https://codecov.io/gh/doctrine/collections/branch/2.0.x/graph/badge.svg)](https://codecov.io/gh/doctrine/collections/branch/2.0.x) - -Collections Abstraction library diff --git a/projects/priceservice/vendor/doctrine/collections/UPGRADE.md b/projects/priceservice/vendor/doctrine/collections/UPGRADE.md deleted file mode 100644 index 44232f7..0000000 --- a/projects/priceservice/vendor/doctrine/collections/UPGRADE.md +++ /dev/null @@ -1,112 +0,0 @@ -Note about upgrading: Doctrine uses static and runtime mechanisms to raise -awareness about deprecated code. - -- Use of `@deprecated` docblock that is detected by IDEs (like PHPStorm) or - Static Analysis tools (like Psalm, phpstan) -- Use of our low-overhead runtime deprecation API, details: - https://github.com/doctrine/deprecations/ - -# Upgrade to 2.2 - -## Deprecated string representation of sort order - -Criteria orderings direction is now represented by the -`Doctrine\Common\Collection\Order` enum. - -As a consequence: - -- `Criteria::ASC` and `Criteria::DESC` are deprecated in favor of - `Order::Ascending` and `Order::Descending`, respectively. -- `Criteria::getOrderings()` is deprecated in favor of `Criteria::orderings()`, - which returns `array`. -- `Criteria::orderBy()` accepts `array`, but passing - anything other than `array` is deprecated. - -# Upgrade to 2.0 - -## BC breaking changes - -Native parameter types were added. Native return types will be added in 3.0.x -As a consequence, some signatures were changed and will have to be adjusted in sub-classes. - -Note that in order to keep compatibility with both 1.x and 2.x versions, -extending code would have to omit the added parameter types. -This would only work in PHP 7.2+ which is the first version featuring -[parameter widening](https://wiki.php.net/rfc/parameter-no-type-variance). -It is also recommended to add return types according to the tables below - -You can find a list of major changes to public API below. - -### Doctrine\Common\Collections\Collection - -| 1.0.x | 3.0.x | -|---------------------------------:|:-------------------------------------------------| -| `add($element)` | `add(mixed $element): void` | -| `clear()` | `clear(): void` | -| `contains($element)` | `contains(mixed $element): bool` | -| `isEmpty()` | `isEmpty(): bool` | -| `removeElement($element)` | `removeElement(mixed $element): bool` | -| `containsKey($key)` | `containsKey(string\|int $key): bool` | -| `get()` | `get(string\|int $key): mixed` | -| `getKeys()` | `getKeys(): array` | -| `getValues()` | `getValues(): array` | -| `set($key, $value)` | `set(string\|int $key, $value): void` | -| `toArray()` | `toArray(): array` | -| `first()` | `first(): mixed` | -| `last()` | `last(): mixed` | -| `key()` | `key(): int\|string\|null` | -| `current()` | `current(): mixed` | -| `next()` | `next(): mixed` | -| `exists(Closure $p)` | `exists(Closure $p): bool` | -| `filter(Closure $p)` | `filter(Closure $p): self` | -| `forAll(Closure $p)` | `forAll(Closure $p): bool` | -| `map(Closure $func)` | `map(Closure $func): self` | -| `partition(Closure $p)` | `partition(Closure $p): array` | -| `indexOf($element)` | `indexOf(mixed $element): int\|string\|false` | -| `slice($offset, $length = null)` | `slice(int $offset, ?int $length = null): array` | -| `count()` | `count(): int` | -| `getIterator()` | `getIterator(): \Traversable` | -| `offsetSet($offset, $value)` | `offsetSet(mixed $offset, mixed $value): void` | -| `offsetUnset($offset)` | `offsetUnset(mixed $offset): void` | -| `offsetExists($offset)` | `offsetExists(mixed $offset): bool` | - -### Doctrine\Common\Collections\AbstractLazyCollection - -| 1.0.x | 3.0.x | -|------------------:|:------------------------| -| `isInitialized()` | `isInitialized(): bool` | -| `initialize()` | `initialize(): void` | -| `doInitialize()` | `doInitialize(): void` | - -### Doctrine\Common\Collections\ArrayCollection - -| 1.0.x | 3.0.x | -|------------------------------:|:--------------------------------------| -| `createFrom(array $elements)` | `createFrom(array $elements): static` | -| `__toString()` | `__toString(): string` | - -### Doctrine\Common\Collections\Criteria - -| 1.0.x | 3.0.x | -|------------------------------------------:|:--------------------------------------------| -| `where(Expression $expression): self` | `where(Expression $expression): static` | -| `andWhere(Expression $expression): self` | `andWhere(Expression $expression): static` | -| `orWhere(Expression $expression): self` | `orWhere(Expression $expression): static` | -| `orderBy(array $orderings): self` | `orderBy(array $orderings): static` | -| `setFirstResult(?int $firstResult): self` | `setFirstResult(?int $firstResult): static` | -| `setMaxResult(?int $maxResults): self` | `setMaxResults(?int $maxResults): static` | - -### Doctrine\Common\Collections\Selectable - -| 1.0.x | 3.0.x | -|-------------------------------:|:-------------------------------------------| -| `matching(Criteria $criteria)` | `matching(Criteria $criteria): Collection` | - -# Upgrade to 1.7 - -## Deprecated null first result - -Passing null as `$firstResult` to -`Doctrine\Common\Collections\Criteria::__construct()` and to -`Doctrine\Common\Collections\Criteria::setFirstResult()` is deprecated. -Use `0` instead. diff --git a/projects/priceservice/vendor/doctrine/collections/composer.json b/projects/priceservice/vendor/doctrine/collections/composer.json deleted file mode 100644 index cf5ee1a..0000000 --- a/projects/priceservice/vendor/doctrine/collections/composer.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "doctrine/collections", - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "license": "MIT", - "type": "library", - "keywords": [ - "php", - "collections", - "array", - "iterators" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "require": { - "php": "^8.1", - "doctrine/deprecations": "^1", - "symfony/polyfill-php84": "^1.30" - }, - "require-dev": { - "ext-json": "*", - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^10.5" - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Tests\\Common\\Collections\\": "tests" - } - }, - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "dealerdirect/phpcodesniffer-composer-installer": true - } - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/derived-collections.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/derived-collections.rst deleted file mode 100644 index 03d9da5..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/derived-collections.rst +++ /dev/null @@ -1,26 +0,0 @@ -Derived Collections -=================== - -You can create custom collection classes by extending the -``Doctrine\Common\Collections\ArrayCollection`` class. If the -``__construct`` semantics are different from the default ``ArrayCollection`` -you can override the ``createFrom`` method: - -.. code-block:: php - final class DerivedArrayCollection extends ArrayCollection - { - /** @var \stdClass */ - private $foo; - - public function __construct(\stdClass $foo, array $elements = []) - { - $this->foo = $foo; - - parent::__construct($elements); - } - - protected function createFrom(array $elements) : self - { - return new static($this->foo, $elements); - } - } diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/expression-builder.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/expression-builder.rst deleted file mode 100644 index 043b89c..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/expression-builder.rst +++ /dev/null @@ -1,195 +0,0 @@ -Expression Builder -================== - -The Expression Builder is a convenient fluent interface for -building expressions to be used with the ``Doctrine\Common\Collections\Criteria`` -class: - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $criteria = new Criteria(); - $criteria->where($expressionBuilder->eq('name', 'jwage')); - $criteria->orWhere($expressionBuilder->eq('name', 'romanb')); - - $collection->matching($criteria); - -The ``ExpressionBuilder`` has the following API: - -andX ----- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->andX( - $expressionBuilder->eq('foo', 1), - $expressionBuilder->eq('bar', 1) - ); - - $collection->matching(new Criteria($expression)); - -orX ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->orX( - $expressionBuilder->eq('foo', 1), - $expressionBuilder->eq('bar', 1) - ); - - $collection->matching(new Criteria($expression)); - -not ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->not( - $expressionBuilder->eq('foo', 1) - ); - - $collection->matching(new Criteria($expression)); - -eq ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->eq('foo', 1); - - $collection->matching(new Criteria($expression)); - -gt ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->gt('foo', 1); - - $collection->matching(new Criteria($expression)); - -lt ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->lt('foo', 1); - - $collection->matching(new Criteria($expression)); - -gte ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->gte('foo', 1); - - $collection->matching(new Criteria($expression)); - -lte ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->lte('foo', 1); - - $collection->matching(new Criteria($expression)); - -neq ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->neq('foo', 1); - - $collection->matching(new Criteria($expression)); - -isNull ------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->isNull('foo'); - - $collection->matching(new Criteria($expression)); - -isNotNull ---------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->isNotNull('foo'); - - $collection->matching(new Criteria($expression)); - -in ---- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->in('foo', ['value1', 'value2']); - - $collection->matching(new Criteria($expression)); - -notIn ------ - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->notIn('foo', ['value1', 'value2']); - - $collection->matching(new Criteria($expression)); - -contains --------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->contains('foo', 'value1'); - - $collection->matching(new Criteria($expression)); - -memberOf --------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->memberOf('foo', ['value1', 'value2']); - - $collection->matching(new Criteria($expression)); - -startsWith ----------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->startsWith('foo', 'hello'); - - $collection->matching(new Criteria($expression)); - -endsWith --------- - -.. code-block:: php - $expressionBuilder = Criteria::expr(); - - $expression = $expressionBuilder->endsWith('foo', 'world'); - - $collection->matching(new Criteria($expression)); diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/expressions.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/expressions.rst deleted file mode 100644 index 5587bfb..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/expressions.rst +++ /dev/null @@ -1,117 +0,0 @@ -Expressions -=========== - -The ``Doctrine\Common\Collections\Expr\Comparison`` class -can be used to create comparison expressions to be used with the -``Doctrine\Common\Collections\Criteria`` class. It has the -following operator constants: - -- ``Comparison::EQ`` -- ``Comparison::NEQ`` -- ``Comparison::LT`` -- ``Comparison::LTE`` -- ``Comparison::GT`` -- ``Comparison::GTE`` -- ``Comparison::IS`` -- ``Comparison::IN`` -- ``Comparison::NIN`` -- ``Comparison::CONTAINS`` -- ``Comparison::MEMBER_OF`` -- ``Comparison::STARTS_WITH`` -- ``Comparison::ENDS_WITH`` - -The ``Doctrine\Common\Collections\Expr\CompositeExpression`` class -can be used to create composite expressions to be used with the -``Doctrine\Common\Collections\Criteria`` class. It has the -following operator constants: - -- ``CompositeExpression::TYPE_AND`` -- ``CompositeExpression::TYPE_OR`` -- ``CompositeExpression::TYPE_NOT`` - -When using the ``TYPE_OR`` and ``TYPE_AND`` operators the -``CompositeExpression`` accepts multiple expressions as parameter -but only one expression can be provided when using the ``NOT`` operator. - -The ``Doctrine\Common\Collections\Criteria`` class has the following -API to be used with expressions: - -where ------ - -Sets the where expression to evaluate when this Criteria is searched for. - -.. code-block:: php - $expr = new Comparison('key', Comparison::EQ, 'value'); - - $criteria->where($expr); - -andWhere --------- - -Appends the where expression to evaluate when this Criteria is searched for -using an AND with previous expression. - -.. code-block:: php - $expr = new Comparison('key', Comparison::EQ, 'value'); - - $criteria->andWhere($expr); - -orWhere -------- - -Appends the where expression to evaluate when this Criteria is searched for -using an OR with previous expression. - -.. code-block:: php - $expr1 = new Comparison('key', Comparison::EQ, 'value1'); - $expr2 = new Comparison('key', Comparison::EQ, 'value2'); - - $criteria->where($expr1); - $criteria->orWhere($expr2); - -orderBy -------- - -Sets the ordering of the result of this Criteria. - -.. code-block:: php - use Doctrine\Common\Collections\Order; - - $criteria->orderBy(['name' => Order::Ascending]); - -setFirstResult --------------- - -Set the number of first result that this Criteria should return. - -.. code-block:: php - $criteria->setFirstResult(0); - -getFirstResult --------------- - -Gets the current first result option of this Criteria. - -.. code-block:: php - $criteria->setFirstResult(10); - - echo $criteria->getFirstResult(); // 10 - -setMaxResults -------------- - -Sets the max results that this Criteria should return. - -.. code-block:: php - $criteria->setMaxResults(20); - -getMaxResults -------------- - -Gets the current max results option of this Criteria. - -.. code-block:: php - $criteria->setMaxResults(20); - - echo $criteria->getMaxResults(); // 20 diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/index.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/index.rst deleted file mode 100644 index c367d6c..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/index.rst +++ /dev/null @@ -1,360 +0,0 @@ -Getting Started -=============== - -Introduction ------------- - -Doctrine Collections is a library that contains classes for working with -arrays of data. Here is an example using the simple -``Doctrine\Common\Collections\ArrayCollection`` class: - -.. code-block:: php - filter(function($element) { - return $element > 1; - }); // [2, 3] - -Collection Methods ------------------- - -Doctrine Collections provides an interface named ``Doctrine\Common\Collections\Collection`` -that resembles the nature of a regular PHP array. That is, -it is essentially an **ordered map** that can also be used -like a list. - -A Collection has an internal iterator just like a PHP array. In addition, -a Collection can be iterated with external iterators, which is preferable. -To use an external iterator simply use the foreach language construct to -iterate over the collection, which calls ``getIterator()`` internally, or -explicitly retrieve an iterator though ``getIterator()`` which can then be -used to iterate over the collection. You can not rely on the internal iterator -of the collection being at a certain position unless you explicitly positioned it before. - -Methods that do not alter the collection or have template types -appearing in invariant or contravariant positions are not directly -defined in ``Doctrine\Common\Collections\Collection``, but are inherited -from the ``Doctrine\Common\Collections\ReadableCollection`` interface. - -The methods available on the interface are: - -add -^^^ - -Adds an element at the end of the collection. - -.. code-block:: php - $collection->add('test'); - -clear -^^^^^ - -Clears the collection, removing all elements. - -.. code-block:: php - $collection->clear(); - -contains -^^^^^^^^ - -Checks whether an element is contained in the collection. This is an O(n) operation, where n is the size of the collection. - -.. code-block:: php - $collection = new Collection(['test']); - - $contains = $collection->contains('test'); // true - -containsKey -^^^^^^^^^^^ - -Checks whether the collection contains an element with the specified key/index. - -.. code-block:: php - $collection = new Collection(['test' => true]); - - $contains = $collection->containsKey('test'); // true - -current -^^^^^^^ - -Gets the element of the collection at the current iterator position. - -.. code-block:: php - $collection = new Collection(['first', 'second', 'third']); - - $current = $collection->current(); // first - -get -^^^ - -Gets the element at the specified key/index. - -.. code-block:: php - $collection = new Collection([ - 'key' => 'value', - ]); - - $value = $collection->get('key'); // value - -getKeys -^^^^^^^ - -Gets all keys/indices of the collection. - -.. code-block:: php - $collection = new Collection(['a', 'b', 'c']); - - $keys = $collection->getKeys(); // [0, 1, 2] - -getValues -^^^^^^^^^ - -Gets all values of the collection. - -.. code-block:: php - $collection = new Collection([ - 'key1' => 'value1', - 'key2' => 'value2', - 'key3' => 'value3', - ]); - - $values = $collection->getValues(); // ['value1', 'value2', 'value3'] - -isEmpty -^^^^^^^ - -Checks whether the collection is empty (contains no elements). - -.. code-block:: php - $collection = new Collection(['a', 'b', 'c']); - - $isEmpty = $collection->isEmpty(); // false - -first -^^^^^ - -Sets the internal iterator to the first element in the collection and returns this element. - -.. code-block:: php - $collection = new Collection(['first', 'second', 'third']); - - $first = $collection->first(); // first - -exists -^^^^^^ - -Tests for the existence of an element that satisfies the given predicate. - -.. code-block:: php - $collection = new Collection(['first', 'second', 'third']); - - $exists = $collection->exists(function($key, $value) { - return $value === 'first'; - }); // true - -findFirst -^^^^^^^^^ - -Returns the first element of this collection that satisfies the given predicate. - -.. code-block:: php - $collection = new Collection([1, 2, 3, 2, 1]); - - $one = $collection->findFirst(function(int $key, int $value): bool { - return $value > 2 && $key > 1; - }); // 3 - -filter -^^^^^^ - -Returns all the elements of this collection for which your callback function returns `true`. -The order and keys of the elements are preserved. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $filteredCollection = $collection->filter(function($element) { - return $element > 1; - }); // [2, 3] - -forAll -^^^^^^ - -Tests whether the given predicate holds for all elements of this collection. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $forAll = $collection->forAll(function($key, $value) { - return $value > 1; - }); // false - -indexOf -^^^^^^^ - -Gets the index/key of a given element. The comparison of two elements is strict, that means not only the value but also the type must match. For objects this means reference equality. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $indexOf = $collection->indexOf(3); // 2 - -key -^^^ - -Gets the key/index of the element at the current iterator position. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $collection->next(); - - $key = $collection->key(); // 1 - -last -^^^^ - -Sets the internal iterator to the last element in the collection and returns this element. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $last = $collection->last(); // 3 - -map -^^^ - -Applies the given function to each element in the collection and returns a new collection with the elements returned by the function. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $mappedCollection = $collection->map(function($value) { - return $value + 1; - }); // [2, 3, 4] - -reduce -^^^^^^ - -Applies iteratively the given function to each element in the collection, so as to reduce the collection to a single value. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $reduce = $collection->reduce(function(int $accumulator, int $value): int { - return $accumulator + $value; - }, 0); // 6 - -next -^^^^ - -Moves the internal iterator position to the next element and returns this element. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $next = $collection->next(); // 2 - -partition -^^^^^^^^^ - -Partitions this collection in two collections according to a predicate. Keys are preserved in the resulting collections. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $mappedCollection = $collection->partition(function($key, $value) { - return $value > 1 - }); // [[2, 3], [1]] - -remove -^^^^^^ - -Removes the element at the specified index from the collection. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $collection->remove(0); // [2, 3] - -removeElement -^^^^^^^^^^^^^ - -Removes the specified element from the collection, if it is found. - -.. code-block:: php - $collection = new ArrayCollection([1, 2, 3]); - - $collection->removeElement(3); // [1, 2] - -set -^^^ - -Sets an element in the collection at the specified key/index. - -.. code-block:: php - $collection = new ArrayCollection(); - - $collection->set('name', 'jwage'); - -slice -^^^^^ - -Extracts a slice of $length elements starting at position $offset from the Collection. If $length is null it returns all elements from $offset to the end of the Collection. Keys have to be preserved by this method. Calling this method will only return the selected slice and NOT change the elements contained in the collection slice is called on. - -.. code-block:: php - $collection = new ArrayCollection([0, 1, 2, 3, 4, 5]); - - $slice = $collection->slice(1, 2); // [1, 2] - -toArray -^^^^^^^ - -Gets a native PHP array representation of the collection. - -.. code-block:: php - $collection = new ArrayCollection([0, 1, 2, 3, 4, 5]); - - $array = $collection->toArray(); // [0, 1, 2, 3, 4, 5] - -Selectable Methods ------------------- - -Some Doctrine Collections, like ``Doctrine\Common\Collections\ArrayCollection``, -implement an interface named ``Doctrine\Common\Collections\Selectable`` -that offers the usage of a powerful expressions API, where conditions -can be applied to a collection to get a result with matching elements -only. - -matching -^^^^^^^^ - -Selects all elements from a selectable that match the expression and -returns a new collection containing these elements and preserved keys. - -.. code-block:: php - use Doctrine\Common\Collections\Criteria; - use Doctrine\Common\Collections\Expr\Comparison; - - $collection = new ArrayCollection([ - 'wage' => [ - 'name' => 'jwage', - ], - 'roman' => [ - 'name' => 'romanb', - ], - ]); - - $expr = new Comparison('name', '=', 'jwage'); - - $criteria = new Criteria(); - - $criteria->where($expr); - - $matchingCollection = $collection->matching($criteria); // [ 'wage' => [ 'name' => 'jwage' ]] - -You can read more about expressions :ref:`here `. diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/lazy-collections.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/lazy-collections.rst deleted file mode 100644 index b9cafb6..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/lazy-collections.rst +++ /dev/null @@ -1,26 +0,0 @@ -Lazy Collections -================ - -To create a lazy collection you can extend the -``Doctrine\Common\Collections\AbstractLazyCollection`` class -and define the ``doInitialize`` method. Here is an example where -we lazily query the database for a collection of user records: - -.. code-block:: php - use Doctrine\DBAL\Connection; - - class UsersLazyCollection extends AbstractLazyCollection - { - /** @var Connection */ - private $connection; - - public function __construct(Connection $connection) - { - $this->connection = $connection; - } - - protected function doInitialize() : void - { - $this->collection = $this->connection->fetchAll('SELECT * FROM users'); - } - } diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/serialization.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/serialization.rst deleted file mode 100644 index be53d6e..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/serialization.rst +++ /dev/null @@ -1,29 +0,0 @@ -Serialization -============= - -Using (un-)serialize() on a collection is not a supported use-case -and may break when changes on the collection's internals happen in the future. -If a collection needs to be serialized, use ``toArray()`` and reconstruct -the collection manually. - -.. code-block:: php - - $collection = new ArrayCollection([1, 2, 3]); - $serialized = serialize($collection->toArray()); - -A reconstruction is also necessary when the collection contains objects with -infinite recursion of dependencies like in this ``json_serialize()`` example: - -.. code-block:: php - - $foo = new Foo(); - $bar = new Bar(); - - $foo->setBar($bar); - $bar->setFoo($foo); - - $collection = new ArrayCollection([$foo]); - $json = json_serialize($collection->toArray()); // recursion detected - -Serializer libraries can be used to create the serialization-output to prevent -errors. diff --git a/projects/priceservice/vendor/doctrine/collections/docs/en/sidebar.rst b/projects/priceservice/vendor/doctrine/collections/docs/en/sidebar.rst deleted file mode 100644 index ebfb11c..0000000 --- a/projects/priceservice/vendor/doctrine/collections/docs/en/sidebar.rst +++ /dev/null @@ -1,11 +0,0 @@ -:orphan: - -.. toctree:: - :depth: 3 - - index - expressions - expression-builder - derived-collections - lazy-collections - serialization diff --git a/projects/priceservice/vendor/doctrine/collections/src/AbstractLazyCollection.php b/projects/priceservice/vendor/doctrine/collections/src/AbstractLazyCollection.php deleted file mode 100644 index 36e2086..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/AbstractLazyCollection.php +++ /dev/null @@ -1,414 +0,0 @@ - - */ -abstract class AbstractLazyCollection implements Collection -{ - /** - * The backed collection to use - * - * @phpstan-var Collection|null - * @var Collection|null - */ - protected Collection|null $collection; - - protected bool $initialized = false; - - /** - * {@inheritDoc} - * - * @return int - */ - #[ReturnTypeWillChange] - public function count() - { - $this->initialize(); - - return $this->collection->count(); - } - - /** - * {@inheritDoc} - */ - public function add(mixed $element) - { - $this->initialize(); - - $this->collection->add($element); - } - - /** - * {@inheritDoc} - */ - public function clear() - { - $this->initialize(); - $this->collection->clear(); - } - - /** - * {@inheritDoc} - */ - public function contains(mixed $element) - { - $this->initialize(); - - return $this->collection->contains($element); - } - - /** - * {@inheritDoc} - */ - public function isEmpty() - { - $this->initialize(); - - return $this->collection->isEmpty(); - } - - /** - * {@inheritDoc} - */ - public function remove(string|int $key) - { - $this->initialize(); - - return $this->collection->remove($key); - } - - /** - * {@inheritDoc} - */ - public function removeElement(mixed $element) - { - $this->initialize(); - - return $this->collection->removeElement($element); - } - - /** - * {@inheritDoc} - */ - public function containsKey(string|int $key) - { - $this->initialize(); - - return $this->collection->containsKey($key); - } - - /** - * {@inheritDoc} - */ - public function get(string|int $key) - { - $this->initialize(); - - return $this->collection->get($key); - } - - /** - * {@inheritDoc} - */ - public function getKeys() - { - $this->initialize(); - - return $this->collection->getKeys(); - } - - /** - * {@inheritDoc} - */ - public function getValues() - { - $this->initialize(); - - return $this->collection->getValues(); - } - - /** - * {@inheritDoc} - */ - public function set(string|int $key, mixed $value) - { - $this->initialize(); - $this->collection->set($key, $value); - } - - /** - * {@inheritDoc} - */ - public function toArray() - { - $this->initialize(); - - return $this->collection->toArray(); - } - - /** - * {@inheritDoc} - */ - public function first() - { - $this->initialize(); - - return $this->collection->first(); - } - - /** - * {@inheritDoc} - */ - public function last() - { - $this->initialize(); - - return $this->collection->last(); - } - - /** - * {@inheritDoc} - */ - public function key() - { - $this->initialize(); - - return $this->collection->key(); - } - - /** - * {@inheritDoc} - */ - public function current() - { - $this->initialize(); - - return $this->collection->current(); - } - - /** - * {@inheritDoc} - */ - public function next() - { - $this->initialize(); - - return $this->collection->next(); - } - - /** - * {@inheritDoc} - */ - public function exists(Closure $p) - { - $this->initialize(); - - return $this->collection->exists($p); - } - - /** - * {@inheritDoc} - */ - public function findFirst(Closure $p) - { - $this->initialize(); - - return $this->collection->findFirst($p); - } - - /** - * {@inheritDoc} - */ - public function filter(Closure $p) - { - $this->initialize(); - - return $this->collection->filter($p); - } - - /** - * {@inheritDoc} - */ - public function forAll(Closure $p) - { - $this->initialize(); - - return $this->collection->forAll($p); - } - - /** - * {@inheritDoc} - */ - public function map(Closure $func) - { - $this->initialize(); - - return $this->collection->map($func); - } - - /** - * {@inheritDoc} - */ - public function reduce(Closure $func, mixed $initial = null) - { - $this->initialize(); - - return $this->collection->reduce($func, $initial); - } - - /** - * {@inheritDoc} - */ - public function partition(Closure $p) - { - $this->initialize(); - - return $this->collection->partition($p); - } - - /** - * {@inheritDoc} - * - * @template TMaybeContained - */ - public function indexOf(mixed $element) - { - $this->initialize(); - - return $this->collection->indexOf($element); - } - - /** - * {@inheritDoc} - */ - public function slice(int $offset, int|null $length = null) - { - $this->initialize(); - - return $this->collection->slice($offset, $length); - } - - /** - * {@inheritDoc} - * - * @return Traversable - * @phpstan-return Traversable - */ - #[ReturnTypeWillChange] - public function getIterator() - { - $this->initialize(); - - return $this->collection->getIterator(); - } - - /** - * {@inheritDoc} - * - * @param TKey $offset - * - * @return bool - */ - #[ReturnTypeWillChange] - public function offsetExists(mixed $offset) - { - $this->initialize(); - - return $this->collection->offsetExists($offset); - } - - /** - * {@inheritDoc} - * - * @param TKey $offset - * - * @return T|null - */ - #[ReturnTypeWillChange] - public function offsetGet(mixed $offset) - { - $this->initialize(); - - return $this->collection->offsetGet($offset); - } - - /** - * {@inheritDoc} - * - * @param TKey|null $offset - * @param T $value - * - * @return void - */ - #[ReturnTypeWillChange] - public function offsetSet(mixed $offset, mixed $value) - { - $this->initialize(); - $this->collection->offsetSet($offset, $value); - } - - /** - * @param TKey $offset - * - * @return void - */ - #[ReturnTypeWillChange] - public function offsetUnset(mixed $offset) - { - $this->initialize(); - $this->collection->offsetUnset($offset); - } - - /** - * Is the lazy collection already initialized? - * - * @return bool - * - * @phpstan-assert-if-true Collection $this->collection - */ - public function isInitialized() - { - return $this->initialized; - } - - /** - * Initialize the collection - * - * @return void - * - * @phpstan-assert Collection $this->collection - */ - protected function initialize() - { - if ($this->initialized) { - return; - } - - $this->doInitialize(); - $this->initialized = true; - - if ($this->collection === null) { - throw new LogicException('You must initialize the collection property in the doInitialize() method.'); - } - } - - /** - * Do the initialization logic - * - * @return void - */ - abstract protected function doInitialize(); -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/ArrayCollection.php b/projects/priceservice/vendor/doctrine/collections/src/ArrayCollection.php deleted file mode 100644 index af81fa8..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/ArrayCollection.php +++ /dev/null @@ -1,482 +0,0 @@ - - * @template-implements Selectable - * @phpstan-consistent-constructor - */ -class ArrayCollection implements Collection, Selectable, Stringable -{ - /** - * An array containing the entries of this collection. - * - * @phpstan-var array - * @var mixed[] - */ - private array $elements = []; - - /** - * Initializes a new ArrayCollection. - * - * @phpstan-param array $elements - */ - public function __construct(array $elements = []) - { - $this->elements = $elements; - } - - /** - * {@inheritDoc} - */ - public function toArray() - { - return $this->elements; - } - - /** - * {@inheritDoc} - */ - public function first() - { - return reset($this->elements); - } - - /** - * Creates a new instance from the specified elements. - * - * This method is provided for derived classes to specify how a new - * instance should be created when constructor semantics have changed. - * - * @param array $elements Elements. - * @phpstan-param array $elements - * - * @return static - * @phpstan-return static - * - * @phpstan-template K of array-key - * @phpstan-template V - */ - protected function createFrom(array $elements) - { - return new static($elements); - } - - /** - * {@inheritDoc} - */ - public function last() - { - return end($this->elements); - } - - /** - * {@inheritDoc} - */ - public function key() - { - return key($this->elements); - } - - /** - * {@inheritDoc} - */ - public function next() - { - return next($this->elements); - } - - /** - * {@inheritDoc} - */ - public function current() - { - return current($this->elements); - } - - /** - * {@inheritDoc} - */ - public function remove(string|int $key) - { - if (! isset($this->elements[$key]) && ! array_key_exists($key, $this->elements)) { - return null; - } - - $removed = $this->elements[$key]; - unset($this->elements[$key]); - - return $removed; - } - - /** - * {@inheritDoc} - */ - public function removeElement(mixed $element) - { - $key = array_search($element, $this->elements, true); - - if ($key === false) { - return false; - } - - unset($this->elements[$key]); - - return true; - } - - /** - * Required by interface ArrayAccess. - * - * @param TKey $offset - * - * @return bool - */ - #[ReturnTypeWillChange] - public function offsetExists(mixed $offset) - { - return $this->containsKey($offset); - } - - /** - * Required by interface ArrayAccess. - * - * @param TKey $offset - * - * @return T|null - */ - #[ReturnTypeWillChange] - public function offsetGet(mixed $offset) - { - return $this->get($offset); - } - - /** - * Required by interface ArrayAccess. - * - * @param TKey|null $offset - * @param T $value - * - * @return void - */ - #[ReturnTypeWillChange] - public function offsetSet(mixed $offset, mixed $value) - { - if ($offset === null) { - $this->add($value); - - return; - } - - $this->set($offset, $value); - } - - /** - * Required by interface ArrayAccess. - * - * @param TKey $offset - * - * @return void - */ - #[ReturnTypeWillChange] - public function offsetUnset(mixed $offset) - { - $this->remove($offset); - } - - /** - * {@inheritDoc} - */ - public function containsKey(string|int $key) - { - return isset($this->elements[$key]) || array_key_exists($key, $this->elements); - } - - /** - * {@inheritDoc} - */ - public function contains(mixed $element) - { - return in_array($element, $this->elements, true); - } - - /** - * {@inheritDoc} - */ - public function exists(Closure $p) - { - return array_any( - $this->elements, - static fn (mixed $element, mixed $key): bool => (bool) $p($key, $element), - ); - } - - /** - * {@inheritDoc} - * - * @phpstan-param TMaybeContained $element - * - * @return int|string|false - * @phpstan-return (TMaybeContained is T ? TKey|false : false) - * - * @template TMaybeContained - */ - public function indexOf($element) - { - return array_search($element, $this->elements, true); - } - - /** - * {@inheritDoc} - */ - public function get(string|int $key) - { - return $this->elements[$key] ?? null; - } - - /** - * {@inheritDoc} - */ - public function getKeys() - { - return array_keys($this->elements); - } - - /** - * {@inheritDoc} - */ - public function getValues() - { - return array_values($this->elements); - } - - /** - * {@inheritDoc} - * - * @return int<0, max> - */ - #[ReturnTypeWillChange] - public function count() - { - return count($this->elements); - } - - /** - * {@inheritDoc} - */ - public function set(string|int $key, mixed $value) - { - $this->elements[$key] = $value; - } - - /** - * {@inheritDoc} - * - * This breaks assumptions about the template type, but it would - * be a backwards-incompatible change to remove this method - */ - public function add(mixed $element) - { - $this->elements[] = $element; - } - - /** - * {@inheritDoc} - */ - public function isEmpty() - { - return empty($this->elements); - } - - /** - * {@inheritDoc} - * - * @return Traversable - * @phpstan-return Traversable - */ - #[ReturnTypeWillChange] - public function getIterator() - { - return new ArrayIterator($this->elements); - } - - /** - * {@inheritDoc} - * - * @phpstan-param Closure(T):U $func - * - * @return static - * @phpstan-return static - * - * @phpstan-template U - */ - public function map(Closure $func) - { - return $this->createFrom(array_map($func, $this->elements)); - } - - /** - * {@inheritDoc} - */ - public function reduce(Closure $func, $initial = null) - { - return array_reduce($this->elements, $func, $initial); - } - - /** - * {@inheritDoc} - * - * @phpstan-param Closure(T, TKey):bool $p - * - * @return static - * @phpstan-return static - */ - public function filter(Closure $p) - { - return $this->createFrom(array_filter($this->elements, $p, ARRAY_FILTER_USE_BOTH)); - } - - /** - * {@inheritDoc} - */ - public function findFirst(Closure $p) - { - return array_find( - $this->elements, - static fn (mixed $element, mixed $key): bool => (bool) $p($key, $element), - ); - } - - /** - * {@inheritDoc} - */ - public function forAll(Closure $p) - { - return array_all( - $this->elements, - static fn (mixed $element, mixed $key): bool => (bool) $p($key, $element), - ); - } - - /** - * {@inheritDoc} - */ - public function partition(Closure $p) - { - $matches = $noMatches = []; - - foreach ($this->elements as $key => $element) { - if ($p($key, $element)) { - $matches[$key] = $element; - } else { - $noMatches[$key] = $element; - } - } - - return [$this->createFrom($matches), $this->createFrom($noMatches)]; - } - - /** - * Returns a string representation of this object. - * {@inheritDoc} - * - * @return string - */ - #[ReturnTypeWillChange] - public function __toString() - { - return self::class . '@' . spl_object_hash($this); - } - - /** - * {@inheritDoc} - */ - public function clear() - { - $this->elements = []; - } - - /** - * {@inheritDoc} - */ - public function slice(int $offset, int|null $length = null) - { - return array_slice($this->elements, $offset, $length, true); - } - - /** @phpstan-return Collection&Selectable */ - public function matching(Criteria $criteria) - { - $expr = $criteria->getWhereExpression(); - $filtered = $this->elements; - - if ($expr) { - $visitor = new ClosureExpressionVisitor(); - $filter = $visitor->dispatch($expr); - $filtered = array_filter($filtered, $filter); - } - - $orderings = $criteria->orderings(); - - if ($orderings) { - $next = null; - foreach (array_reverse($orderings) as $field => $ordering) { - $next = ClosureExpressionVisitor::sortByField($field, $ordering === Order::Descending ? -1 : 1, $next); - } - - uasort($filtered, $next); - } - - $offset = $criteria->getFirstResult(); - $length = $criteria->getMaxResults(); - - if ($offset !== null && $offset > 0 || $length !== null && $length > 0) { - $filtered = array_slice($filtered, (int) $offset, $length, true); - } - - return $this->createFrom($filtered); - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Collection.php b/projects/priceservice/vendor/doctrine/collections/src/Collection.php deleted file mode 100644 index 265d9d8..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Collection.php +++ /dev/null @@ -1,117 +0,0 @@ -ordered map that can also be used - * like a list. - * - * A Collection has an internal iterator just like a PHP array. In addition, - * a Collection can be iterated with external iterators, which is preferable. - * To use an external iterator simply use the foreach language construct to - * iterate over the collection (which calls {@link getIterator()} internally) or - * explicitly retrieve an iterator though {@link getIterator()} which can then be - * used to iterate over the collection. - * You can not rely on the internal iterator of the collection being at a certain - * position unless you explicitly positioned it before. Prefer iteration with - * external iterators. - * - * @phpstan-template TKey of array-key - * @phpstan-template T - * @template-extends ReadableCollection - * @template-extends ArrayAccess - */ -interface Collection extends ReadableCollection, ArrayAccess -{ - /** - * Adds an element at the end of the collection. - * - * @param mixed $element The element to add. - * @phpstan-param T $element - * - * @return void we will require a native return type declaration in 3.0 - */ - public function add(mixed $element); - - /** - * Clears the collection, removing all elements. - * - * @return void - */ - public function clear(); - - /** - * Removes the element at the specified index from the collection. - * - * @param string|int $key The key/index of the element to remove. - * @phpstan-param TKey $key - * - * @return mixed The removed element or NULL, if the collection did not contain the element. - * @phpstan-return T|null - */ - public function remove(string|int $key); - - /** - * Removes the specified element from the collection, if it is found. - * - * @param mixed $element The element to remove. - * @phpstan-param T $element - * - * @return bool TRUE if this collection contained the specified element, FALSE otherwise. - */ - public function removeElement(mixed $element); - - /** - * Sets an element in the collection at the specified key/index. - * - * @param string|int $key The key/index of the element to set. - * @param mixed $value The element to set. - * @phpstan-param TKey $key - * @phpstan-param T $value - * - * @return void - */ - public function set(string|int $key, mixed $value); - - /** - * {@inheritDoc} - * - * @phpstan-param Closure(T):U $func - * - * @return Collection - * @phpstan-return Collection - * - * @phpstan-template U - */ - public function map(Closure $func); - - /** - * {@inheritDoc} - * - * @phpstan-param Closure(T, TKey):bool $p - * - * @return Collection A collection with the results of the filter operation. - * @phpstan-return Collection - */ - public function filter(Closure $p); - - /** - * {@inheritDoc} - * - * @phpstan-param Closure(TKey, T):bool $p - * - * @return Collection[] An array with two elements. The first element contains the collection - * of elements where the predicate returned TRUE, the second element - * contains the collection of elements where the predicate returned FALSE. - * @phpstan-return array{0: Collection, 1: Collection} - */ - public function partition(Closure $p); -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Criteria.php b/projects/priceservice/vendor/doctrine/collections/src/Criteria.php deleted file mode 100644 index 7e690b4..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Criteria.php +++ /dev/null @@ -1,285 +0,0 @@ - */ - private array $orderings = []; - - private int|null $firstResult = null; - private int|null $maxResults = null; - - /** - * Creates an instance of the class. - * - * @return static - */ - public static function create() - { - return new static(); - } - - /** - * Returns the expression builder. - * - * @return ExpressionBuilder - */ - public static function expr() - { - if (self::$expressionBuilder === null) { - self::$expressionBuilder = new ExpressionBuilder(); - } - - return self::$expressionBuilder; - } - - /** - * Construct a new Criteria. - * - * @param array|null $orderings - */ - public function __construct( - private Expression|null $expression = null, - array|null $orderings = null, - int|null $firstResult = null, - int|null $maxResults = null, - ) { - $this->expression = $expression; - - if ($firstResult === null && func_num_args() > 2) { - Deprecation::trigger( - 'doctrine/collections', - 'https://github.com/doctrine/collections/pull/311', - 'Passing null as $firstResult to the constructor of %s is deprecated. Pass 0 instead or omit the argument.', - self::class, - ); - } - - $this->setFirstResult($firstResult); - $this->setMaxResults($maxResults); - - if ($orderings === null) { - return; - } - - $this->orderBy($orderings); - } - - /** - * Sets the where expression to evaluate when this Criteria is searched for. - * - * @return $this - */ - public function where(Expression $expression) - { - $this->expression = $expression; - - return $this; - } - - /** - * Appends the where expression to evaluate when this Criteria is searched for - * using an AND with previous expression. - * - * @return $this - */ - public function andWhere(Expression $expression) - { - if ($this->expression === null) { - return $this->where($expression); - } - - $this->expression = new CompositeExpression( - CompositeExpression::TYPE_AND, - [$this->expression, $expression], - ); - - return $this; - } - - /** - * Appends the where expression to evaluate when this Criteria is searched for - * using an OR with previous expression. - * - * @return $this - */ - public function orWhere(Expression $expression) - { - if ($this->expression === null) { - return $this->where($expression); - } - - $this->expression = new CompositeExpression( - CompositeExpression::TYPE_OR, - [$this->expression, $expression], - ); - - return $this; - } - - /** - * Gets the expression attached to this Criteria. - * - * @return Expression|null - */ - public function getWhereExpression() - { - return $this->expression; - } - - /** - * Gets the current orderings of this Criteria. - * - * @deprecated use orderings() instead - * - * @return array - */ - public function getOrderings() - { - Deprecation::trigger( - 'doctrine/collections', - 'https://github.com/doctrine/collections/pull/389', - 'Calling %s() is deprecated. Use %s::orderings() instead.', - __METHOD__, - self::class, - ); - - return array_map( - static fn (Order $ordering): string => $ordering->value, - $this->orderings, - ); - } - - /** - * Gets the current orderings of this Criteria. - * - * @return array - */ - public function orderings(): array - { - return $this->orderings; - } - - /** - * Sets the ordering of the result of this Criteria. - * - * Keys are field and values are the order, being a valid Order enum case. - * - * @see Order::Ascending - * @see Order::Descending - * - * @param array $orderings - * - * @return $this - */ - public function orderBy(array $orderings) - { - $method = __METHOD__; - $this->orderings = array_map( - static function (string|Order $ordering) use ($method): Order { - if ($ordering instanceof Order) { - return $ordering; - } - - static $triggered = false; - - if (! $triggered) { - Deprecation::trigger( - 'doctrine/collections', - 'https://github.com/doctrine/collections/pull/389', - 'Passing non-Order enum values to %s() is deprecated. Pass Order enum values instead.', - $method, - ); - } - - $triggered = true; - - return strtoupper($ordering) === Order::Ascending->value ? Order::Ascending : Order::Descending; - }, - $orderings, - ); - - return $this; - } - - /** - * Gets the current first result option of this Criteria. - * - * @return int|null - */ - public function getFirstResult() - { - return $this->firstResult; - } - - /** - * Set the number of first result that this Criteria should return. - * - * @param int|null $firstResult The value to set. - * - * @return $this - */ - public function setFirstResult(int|null $firstResult) - { - if ($firstResult === null) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/collections', - 'https://github.com/doctrine/collections/pull/311', - 'Passing null to %s() is deprecated, pass 0 instead.', - __METHOD__, - ); - } - - $this->firstResult = $firstResult; - - return $this; - } - - /** - * Gets maxResults. - * - * @return int|null - */ - public function getMaxResults() - { - return $this->maxResults; - } - - /** - * Sets maxResults. - * - * @param int|null $maxResults The value to set. - * - * @return $this - */ - public function setMaxResults(int|null $maxResults) - { - $this->maxResults = $maxResults; - - return $this; - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Expr/ClosureExpressionVisitor.php b/projects/priceservice/vendor/doctrine/collections/src/Expr/ClosureExpressionVisitor.php deleted file mode 100644 index 5240e30..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Expr/ClosureExpressionVisitor.php +++ /dev/null @@ -1,214 +0,0 @@ -$accessor(); - } - } - - if (preg_match('/^is[A-Z]+/', $field) === 1 && method_exists($object, $field)) { - return $object->$field(); - } - - // __call should be triggered for get. - $accessor = $accessors[0] . $field; - - if (method_exists($object, '__call')) { - return $object->$accessor(); - } - - if ($object instanceof ArrayAccess) { - return $object[$field]; - } - - if (isset($object->$field)) { - return $object->$field; - } - - // camelcase field name to support different variable naming conventions - $ccField = preg_replace_callback('/_(.?)/', static fn ($matches) => strtoupper((string) $matches[1]), $field); - - foreach ($accessors as $accessor) { - $accessor .= $ccField; - - if (method_exists($object, $accessor)) { - return $object->$accessor(); - } - } - - return $object->$field; - } - - /** - * Helper for sorting arrays of objects based on multiple fields + orientations. - * - * @return Closure - */ - public static function sortByField(string $name, int $orientation = 1, Closure|null $next = null) - { - if (! $next) { - $next = static fn (): int => 0; - } - - return static function ($a, $b) use ($name, $next, $orientation): int { - $aValue = ClosureExpressionVisitor::getObjectFieldValue($a, $name); - - $bValue = ClosureExpressionVisitor::getObjectFieldValue($b, $name); - - if ($aValue === $bValue) { - return $next($a, $b); - } - - return ($aValue > $bValue ? 1 : -1) * $orientation; - }; - } - - /** - * {@inheritDoc} - */ - public function walkComparison(Comparison $comparison) - { - $field = $comparison->getField(); - $value = $comparison->getValue()->getValue(); - - return match ($comparison->getOperator()) { - Comparison::EQ => static fn ($object): bool => self::getObjectFieldValue($object, $field) === $value, - Comparison::NEQ => static fn ($object): bool => self::getObjectFieldValue($object, $field) !== $value, - Comparison::LT => static fn ($object): bool => self::getObjectFieldValue($object, $field) < $value, - Comparison::LTE => static fn ($object): bool => self::getObjectFieldValue($object, $field) <= $value, - Comparison::GT => static fn ($object): bool => self::getObjectFieldValue($object, $field) > $value, - Comparison::GTE => static fn ($object): bool => self::getObjectFieldValue($object, $field) >= $value, - Comparison::IN => static function ($object) use ($field, $value): bool { - $fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - return in_array($fieldValue, $value, is_scalar($fieldValue)); - }, - Comparison::NIN => static function ($object) use ($field, $value): bool { - $fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - return ! in_array($fieldValue, $value, is_scalar($fieldValue)); - }, - Comparison::CONTAINS => static fn ($object): bool => str_contains((string) self::getObjectFieldValue($object, $field), (string) $value), - Comparison::MEMBER_OF => static function ($object) use ($field, $value): bool { - $fieldValues = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - if (! is_array($fieldValues)) { - $fieldValues = iterator_to_array($fieldValues); - } - - return in_array($value, $fieldValues, true); - }, - Comparison::STARTS_WITH => static fn ($object): bool => str_starts_with((string) self::getObjectFieldValue($object, $field), (string) $value), - Comparison::ENDS_WITH => static fn ($object): bool => str_ends_with((string) self::getObjectFieldValue($object, $field), (string) $value), - default => throw new RuntimeException('Unknown comparison operator: ' . $comparison->getOperator()), - }; - } - - /** - * {@inheritDoc} - */ - public function walkValue(Value $value) - { - return $value->getValue(); - } - - /** - * {@inheritDoc} - */ - public function walkCompositeExpression(CompositeExpression $expr) - { - $expressionList = []; - - foreach ($expr->getExpressionList() as $child) { - $expressionList[] = $this->dispatch($child); - } - - return match ($expr->getType()) { - CompositeExpression::TYPE_AND => $this->andExpressions($expressionList), - CompositeExpression::TYPE_OR => $this->orExpressions($expressionList), - CompositeExpression::TYPE_NOT => $this->notExpression($expressionList), - default => throw new RuntimeException('Unknown composite ' . $expr->getType()), - }; - } - - /** @param callable[] $expressions */ - private function andExpressions(array $expressions): Closure - { - return static fn ($object): bool => array_all( - $expressions, - static fn (callable $expression): bool => (bool) $expression($object), - ); - } - - /** @param callable[] $expressions */ - private function orExpressions(array $expressions): Closure - { - return static fn ($object): bool => array_any( - $expressions, - static fn (callable $expression): bool => (bool) $expression($object), - ); - } - - /** @param callable[] $expressions */ - private function notExpression(array $expressions): Closure - { - return static fn ($object) => ! $expressions[0]($object); - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Expr/Comparison.php b/projects/priceservice/vendor/doctrine/collections/src/Expr/Comparison.php deleted file mode 100644 index f1ea07f..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Expr/Comparison.php +++ /dev/null @@ -1,62 +0,0 @@ -'; - final public const LT = '<'; - final public const LTE = '<='; - final public const GT = '>'; - final public const GTE = '>='; - final public const IS = '='; // no difference with EQ - final public const IN = 'IN'; - final public const NIN = 'NIN'; - final public const CONTAINS = 'CONTAINS'; - final public const MEMBER_OF = 'MEMBER_OF'; - final public const STARTS_WITH = 'STARTS_WITH'; - final public const ENDS_WITH = 'ENDS_WITH'; - - private readonly Value $value; - - public function __construct(private readonly string $field, private readonly string $op, mixed $value) - { - if (! ($value instanceof Value)) { - $value = new Value($value); - } - - $this->value = $value; - } - - /** @return string */ - public function getField() - { - return $this->field; - } - - /** @return Value */ - public function getValue() - { - return $this->value; - } - - /** @return string */ - public function getOperator() - { - return $this->op; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkComparison($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Expr/CompositeExpression.php b/projects/priceservice/vendor/doctrine/collections/src/Expr/CompositeExpression.php deleted file mode 100644 index b7b4544..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Expr/CompositeExpression.php +++ /dev/null @@ -1,70 +0,0 @@ - */ - private array $expressions = []; - - /** - * @param Expression[] $expressions - * - * @throws RuntimeException - */ - public function __construct(private readonly string $type, array $expressions) - { - foreach ($expressions as $expr) { - if ($expr instanceof Value) { - throw new RuntimeException('Values are not supported expressions as children of and/or expressions.'); - } - - if (! ($expr instanceof Expression)) { - throw new RuntimeException('No expression given to CompositeExpression.'); - } - - $this->expressions[] = $expr; - } - - if ($type === self::TYPE_NOT && count($this->expressions) !== 1) { - throw new RuntimeException('Not expression only allows one expression as child.'); - } - } - - /** - * Returns the list of expressions nested in this composite. - * - * @return list - */ - public function getExpressionList() - { - return $this->expressions; - } - - /** @return string */ - public function getType() - { - return $this->type; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkCompositeExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Expr/Expression.php b/projects/priceservice/vendor/doctrine/collections/src/Expr/Expression.php deleted file mode 100644 index 70ad45f..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Expr/Expression.php +++ /dev/null @@ -1,14 +0,0 @@ - $this->walkComparison($expr), - $expr instanceof Value => $this->walkValue($expr), - $expr instanceof CompositeExpression => $this->walkCompositeExpression($expr), - default => throw new RuntimeException('Unknown Expression ' . $expr::class), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Expr/Value.php b/projects/priceservice/vendor/doctrine/collections/src/Expr/Value.php deleted file mode 100644 index 776770d..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Expr/Value.php +++ /dev/null @@ -1,26 +0,0 @@ -value; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkValue($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/ExpressionBuilder.php b/projects/priceservice/vendor/doctrine/collections/src/ExpressionBuilder.php deleted file mode 100644 index 7bf5a09..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/ExpressionBuilder.php +++ /dev/null @@ -1,128 +0,0 @@ - - */ -interface ReadableCollection extends Countable, IteratorAggregate -{ - /** - * Checks whether an element is contained in the collection. - * This is an O(n) operation, where n is the size of the collection. - * - * @param mixed $element The element to search for. - * @phpstan-param TMaybeContained $element - * - * @return bool TRUE if the collection contains the element, FALSE otherwise. - * @phpstan-return (TMaybeContained is T ? bool : false) - * - * @template TMaybeContained - */ - public function contains(mixed $element); - - /** - * Checks whether the collection is empty (contains no elements). - * - * @return bool TRUE if the collection is empty, FALSE otherwise. - */ - public function isEmpty(); - - /** - * Checks whether the collection contains an element with the specified key/index. - * - * @param string|int $key The key/index to check for. - * @phpstan-param TKey $key - * - * @return bool TRUE if the collection contains an element with the specified key/index, - * FALSE otherwise. - */ - public function containsKey(string|int $key); - - /** - * Gets the element at the specified key/index. - * - * @param string|int $key The key/index of the element to retrieve. - * @phpstan-param TKey $key - * - * @return mixed - * @phpstan-return T|null - */ - public function get(string|int $key); - - /** - * Gets all keys/indices of the collection. - * - * @return int[]|string[] The keys/indices of the collection, in the order of the corresponding - * elements in the collection. - * @phpstan-return list - */ - public function getKeys(); - - /** - * Gets all values of the collection. - * - * @return mixed[] The values of all elements in the collection, in the - * order they appear in the collection. - * @phpstan-return list - */ - public function getValues(); - - /** - * Gets a native PHP array representation of the collection. - * - * @return mixed[] - * @phpstan-return array - */ - public function toArray(); - - /** - * Sets the internal iterator to the first element in the collection and returns this element. - * - * @return mixed - * @phpstan-return T|false - */ - public function first(); - - /** - * Sets the internal iterator to the last element in the collection and returns this element. - * - * @return mixed - * @phpstan-return T|false - */ - public function last(); - - /** - * Gets the key/index of the element at the current iterator position. - * - * @return int|string|null - * @phpstan-return TKey|null - */ - public function key(); - - /** - * Gets the element of the collection at the current iterator position. - * - * @return mixed - * @phpstan-return T|false - */ - public function current(); - - /** - * Moves the internal iterator position to the next element and returns this element. - * - * @return mixed - * @phpstan-return T|false - */ - public function next(); - - /** - * Extracts a slice of $length elements starting at position $offset from the Collection. - * - * If $length is null it returns all elements from $offset to the end of the Collection. - * Keys have to be preserved by this method. Calling this method will only return the - * selected slice and NOT change the elements contained in the collection slice is called on. - * - * @param int $offset The offset to start from. - * @param int|null $length The maximum number of elements to return, or null for no limit. - * - * @return mixed[] - * @phpstan-return array - */ - public function slice(int $offset, int|null $length = null); - - /** - * Tests for the existence of an element that satisfies the given predicate. - * - * @param Closure $p The predicate. - * @phpstan-param Closure(TKey, T):bool $p - * - * @return bool TRUE if the predicate is TRUE for at least one element, FALSE otherwise. - */ - public function exists(Closure $p); - - /** - * Returns all the elements of this collection that satisfy the predicate p. - * The order of the elements is preserved. - * - * @param Closure $p The predicate used for filtering. - * @phpstan-param Closure(T, TKey):bool $p - * - * @return ReadableCollection A collection with the results of the filter operation. - * @phpstan-return ReadableCollection - */ - public function filter(Closure $p); - - /** - * Applies the given function to each element in the collection and returns - * a new collection with the elements returned by the function. - * - * @phpstan-param Closure(T):U $func - * - * @return ReadableCollection - * @phpstan-return ReadableCollection - * - * @phpstan-template U - */ - public function map(Closure $func); - - /** - * Partitions this collection in two collections according to a predicate. - * Keys are preserved in the resulting collections. - * - * @param Closure $p The predicate on which to partition. - * @phpstan-param Closure(TKey, T):bool $p - * - * @return ReadableCollection[] An array with two elements. The first element contains the collection - * of elements where the predicate returned TRUE, the second element - * contains the collection of elements where the predicate returned FALSE. - * @phpstan-return array{0: ReadableCollection, 1: ReadableCollection} - */ - public function partition(Closure $p); - - /** - * Tests whether the given predicate p holds for all elements of this collection. - * - * @param Closure $p The predicate. - * @phpstan-param Closure(TKey, T):bool $p - * - * @return bool TRUE, if the predicate yields TRUE for all elements, FALSE otherwise. - */ - public function forAll(Closure $p); - - /** - * Gets the index/key of a given element. The comparison of two elements is strict, - * that means not only the value but also the type must match. - * For objects this means reference equality. - * - * @param mixed $element The element to search for. - * @phpstan-param TMaybeContained $element - * - * @return int|string|bool The key/index of the element or FALSE if the element was not found. - * @phpstan-return (TMaybeContained is T ? TKey|false : false) - * - * @template TMaybeContained - */ - public function indexOf(mixed $element); - - /** - * Returns the first element of this collection that satisfies the predicate p. - * - * @param Closure $p The predicate. - * @phpstan-param Closure(TKey, T):bool $p - * - * @return mixed The first element respecting the predicate, - * null if no element respects the predicate. - * @phpstan-return T|null - */ - public function findFirst(Closure $p); - - /** - * Applies iteratively the given function to each element in the collection, - * so as to reduce the collection to a single value. - * - * @phpstan-param Closure(TReturn|TInitial, T):TReturn $func - * @phpstan-param TInitial $initial - * - * @return mixed - * @phpstan-return TReturn|TInitial - * - * @phpstan-template TReturn - * @phpstan-template TInitial - */ - public function reduce(Closure $func, mixed $initial = null); -} diff --git a/projects/priceservice/vendor/doctrine/collections/src/Selectable.php b/projects/priceservice/vendor/doctrine/collections/src/Selectable.php deleted file mode 100644 index eb11c93..0000000 --- a/projects/priceservice/vendor/doctrine/collections/src/Selectable.php +++ /dev/null @@ -1,32 +0,0 @@ -&Selectable - * @phpstan-return ReadableCollection&Selectable - */ - public function matching(Criteria $criteria); -} diff --git a/projects/priceservice/vendor/doctrine/dbal/CONTRIBUTING.md b/projects/priceservice/vendor/doctrine/dbal/CONTRIBUTING.md deleted file mode 100644 index 31b6eff..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/CONTRIBUTING.md +++ /dev/null @@ -1,6 +0,0 @@ -This repository has [guidelines specific to testing][testing guidelines], and -Doctrine has [general contributing guidelines][contributor workflow], make -sure you follow both. - -[contributor workflow]: https://www.doctrine-project.org/contribute/index.html -[testing guidelines]: https://www.doctrine-project.org/projects/doctrine-dbal/en/stable/reference/testing.html diff --git a/projects/priceservice/vendor/doctrine/dbal/LICENSE b/projects/priceservice/vendor/doctrine/dbal/LICENSE deleted file mode 100644 index e8fdec4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2018 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/dbal/README.md b/projects/priceservice/vendor/doctrine/dbal/README.md deleted file mode 100644 index 4b724d6..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Doctrine DBAL - -| [5.0-dev][5.0] | [4.4-dev][4.4] | [4.3][4.3] | [3.10][3.10] | -|:---------------------------------------------------:|:---------------------------------------------------:|:---------------------------------------------------:|:-----------------------------------------------------:| -| [![GitHub Actions][GA 5.0 image]][GA 5.0] | [![GitHub Actions][GA 4.4 image]][GA 4.4] | [![GitHub Actions][GA 4.3 image]][GA 4.3] | [![GitHub Actions][GA 3.10 image]][GA 3.10] | -| [![AppVeyor][AppVeyor 5.0 image]][AppVeyor 5.0] | [![AppVeyor][AppVeyor 4.4 image]][AppVeyor 4.4] | [![AppVeyor][AppVeyor 4.3 image]][AppVeyor 4.3] | [![AppVeyor][AppVeyor 3.10 image]][AppVeyor 3.10] | -| [![Code Coverage][Coverage 5.0 image]][CodeCov 5.0] | [![Code Coverage][Coverage 4.4 image]][CodeCov 4.4] | [![Code Coverage][Coverage 4.3 image]][CodeCov 4.3] | [![Code Coverage][Coverage 3.10 image]][CodeCov 3.10] | - -Powerful ***D***ata***B***ase ***A***bstraction ***L***ayer with many features for database schema introspection and schema management. - -## More resources: - -* [Website](http://www.doctrine-project.org/projects/dbal.html) -* [Documentation](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/) -* [Issue Tracker](https://github.com/doctrine/dbal/issues) - - [Coverage 5.0 image]: https://codecov.io/gh/doctrine/dbal/branch/5.0.x/graph/badge.svg - [5.0]: https://github.com/doctrine/dbal/tree/5.0.x - [CodeCov 5.0]: https://codecov.io/gh/doctrine/dbal/branch/5.0.x - [AppVeyor 5.0]: https://ci.appveyor.com/project/doctrine/dbal/branch/5.0.x - [AppVeyor 5.0 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/5.0.x?svg=true - [GA 5.0]: https://github.com/doctrine/dbal/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A5.0.x - [GA 5.0 image]: https://github.com/doctrine/dbal/actions/workflows/continuous-integration.yml/badge.svg?branch=5.0.x - - [Coverage 4.4 image]: https://codecov.io/gh/doctrine/dbal/branch/4.4.x/graph/badge.svg - [4.4]: https://github.com/doctrine/dbal/tree/4.4.x - [CodeCov 4.4]: https://codecov.io/gh/doctrine/dbal/branch/4.4.x - [AppVeyor 4.4]: https://ci.appveyor.com/project/doctrine/dbal/branch/4.4.x - [AppVeyor 4.4 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/4.4.x?svg=true - [GA 4.4]: https://github.com/doctrine/dbal/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A4.4.x - [GA 4.4 image]: https://github.com/doctrine/dbal/actions/workflows/continuous-integration.yml/badge.svg?branch=4.4.x - - [Coverage 4.3 image]: https://codecov.io/gh/doctrine/dbal/branch/4.3.x/graph/badge.svg - [4.3]: https://github.com/doctrine/dbal/tree/4.3.x - [CodeCov 4.3]: https://codecov.io/gh/doctrine/dbal/branch/4.3.x - [AppVeyor 4.3]: https://ci.appveyor.com/project/doctrine/dbal/branch/4.3.x - [AppVeyor 4.3 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/4.3.x?svg=true - [GA 4.3]: https://github.com/doctrine/dbal/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A4.3.x - [GA 4.3 image]: https://github.com/doctrine/dbal/actions/workflows/continuous-integration.yml/badge.svg?branch=4.3.x - - [Coverage 3.10 image]: https://codecov.io/gh/doctrine/dbal/branch/3.10.x/graph/badge.svg - [3.10]: https://github.com/doctrine/dbal/tree/3.10.x - [CodeCov 3.10]: https://codecov.io/gh/doctrine/dbal/branch/3.10.x - [AppVeyor 3.10]: https://ci.appveyor.com/project/doctrine/dbal/branch/3.10.x - [AppVeyor 3.10 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/3.10.x?svg=true - [GA 3.10]: https://github.com/doctrine/dbal/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A3.10.x - [GA 3.10 image]: https://github.com/doctrine/dbal/actions/workflows/continuous-integration.yml/badge.svg?branch=3.10.x diff --git a/projects/priceservice/vendor/doctrine/dbal/composer.json b/projects/priceservice/vendor/doctrine/dbal/composer.json deleted file mode 100644 index c3e1442..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/composer.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "doctrine/dbal", - "type": "library", - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "keywords": [ - "abstraction", - "database", - "dbal", - "db2", - "mariadb", - "mssql", - "mysql", - "pgsql", - "postgresql", - "oci8", - "oracle", - "pdo", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"} - ], - "require": { - "php": "^8.2", - "doctrine/deprecations": "^1.1.5", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "doctrine/coding-standard": "13.0.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "2.1.17", - "phpstan/phpstan-phpunit": "2.0.6", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "11.5.23", - "slevomat/coding-standard": "8.16.2", - "squizlabs/php_codesniffer": "3.13.1", - "symfony/cache": "^6.3.8|^7.0", - "symfony/console": "^5.4|^6.3|^7.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, - "composer/package-versions-deprecated": true - } - }, - "autoload": { - "psr-4": { "Doctrine\\DBAL\\": "src" } - }, - "autoload-dev": { - "psr-4": { "Doctrine\\DBAL\\Tests\\": "tests" } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/phpstan-baseline.neon b/projects/priceservice/vendor/doctrine/dbal/phpstan-baseline.neon deleted file mode 100644 index 98f0a68..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/phpstan-baseline.neon +++ /dev/null @@ -1,91 +0,0 @@ -parameters: - ignoreErrors: - - - message: '#^Method Doctrine\\DBAL\\Driver\\IBMDB2\\Connection\:\:exec\(\) never returns numeric\-string so it can be removed from the return type\.$#' - identifier: return.unusedType - count: 1 - path: src/Driver/IBMDB2/Connection.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\OCI8\\Connection\:\:exec\(\) never returns numeric\-string so it can be removed from the return type\.$#' - identifier: return.unusedType - count: 1 - path: src/Driver/OCI8/Connection.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\OCI8\\Result\:\:fetchAllAssociative\(\) should return list\\> but returns array\\.$#' - identifier: return.type - count: 1 - path: src/Driver/OCI8/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\OCI8\\Result\:\:fetchAllNumeric\(\) should return list\\> but returns array\\.$#' - identifier: return.type - count: 1 - path: src/Driver/OCI8/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\PDO\\Result\:\:fetchAll\(\) should return list\ but returns array\.$#' - identifier: return.type - count: 1 - path: src/Driver/PDO/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\PgSQL\\Result\:\:fetchAllAssociative\(\) should return list\\> but returns array\\>\.$#' - identifier: return.type - count: 1 - path: src/Driver/PgSQL/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\PgSQL\\Result\:\:fetchAllNumeric\(\) should return list\\> but returns array\\>\.$#' - identifier: return.type - count: 1 - path: src/Driver/PgSQL/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\PgSQL\\Result\:\:fetchFirstColumn\(\) should return list\ but returns array\\.$#' - identifier: return.type - count: 1 - path: src/Driver/PgSQL/Result.php - - - - message: '#^Method Doctrine\\DBAL\\Driver\\SQLite3\\Result\:\:fetchNumeric\(\) should return list\\|false but returns array\|false\.$#' - identifier: return.type - count: 1 - path: src/Driver/SQLite3/Result.php - - - - message: '#^Template type T is declared as covariant, but occurs in invariant position in property Doctrine\\DBAL\\Schema\\AbstractSchemaManager\:\:\$platform\.$#' - identifier: generics.variance - count: 1 - path: src/Schema/AbstractSchemaManager.php - - - - message: '#^Loose comparison via "\!\=" is not allowed\.$#' - identifier: notEqual.notAllowed - count: 1 - path: src/Schema/ColumnDiff.php - - - - message: '#^Method Doctrine\\DBAL\\Schema\\SQLiteSchemaManager\:\:addDetailsToTableForeignKeyColumns\(\) should return list\\> but returns array\, array\\>\.$#' - identifier: return.type - count: 1 - path: src/Schema/SQLiteSchemaManager.php - - - - message: '#^Offset string might not exist on array\{application_name\?\: string, charset\?\: string, dbname\?\: string, defaultTableOptions\?\: array\, driver\?\: ''ibm_db2''\|''mysqli''\|''oci8''\|''pdo_mysql''\|''pdo_oci''\|''pdo_pgsql''\|''pdo_sqlite''\|''pdo_sqlsrv''\|''pgsql''\|''sqlite3''\|''sqlsrv'', driverClass\?\: class\-string\, driverOptions\?\: array\, host\?\: string, \.\.\.\}\.$#' - identifier: offsetAccess.notFound - count: 1 - path: tests/DriverManagerTest.php - - - - message: '#^Call to new Doctrine\\DBAL\\Driver\\PgSQL\\Result\(\) on a separate line has no effect\.$#' - identifier: new.resultUnused - count: 1 - path: tests/Functional/Driver/PgSQL/ResultTest.php - - - - message: '#^Call to function array_filter\(\) requires parameter \#2 to be passed to avoid loose comparison semantics\.$#' - identifier: arrayFilter.strict - count: 1 - path: tests/Functional/Schema/MySQL/JsonCollationTest.php diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameterType.php b/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameterType.php deleted file mode 100644 index 851d47d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameterType.php +++ /dev/null @@ -1,39 +0,0 @@ - ParameterType::INTEGER, - self::STRING => ParameterType::STRING, - self::ASCII => ParameterType::ASCII, - self::BINARY => ParameterType::BINARY, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception.php deleted file mode 100644 index e5a580b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ArrayParameters/Exception.php +++ /dev/null @@ -1,12 +0,0 @@ - $columnNames The names of the result columns. Must be non-empty. - * @param list> $rows The rows of the result. Each row must have the same number of columns - * as the number of column names. - */ - public function __construct( - private readonly array $columnNames, - private array $rows, - ) { - } - - public function fetchNumeric(): array|false - { - return $this->fetch(); - } - - public function fetchAssociative(): array|false - { - $row = $this->fetch(); - - if ($row === false) { - return false; - } - - return array_combine($this->columnNames, $row); - } - - public function fetchOne(): mixed - { - $row = $this->fetch(); - - if ($row === false) { - return false; - } - - return $row[0]; - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return FetchUtils::fetchAllNumeric($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return FetchUtils::fetchAllAssociative($this); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return FetchUtils::fetchFirstColumn($this); - } - - public function rowCount(): int - { - return count($this->rows); - } - - public function columnCount(): int - { - return count($this->columnNames); - } - - public function getColumnName(int $index): string - { - return $this->columnNames[$index] ?? throw InvalidColumnIndex::new($index); - } - - public function free(): void - { - $this->rows = []; - } - - /** @return array{list, list>} */ - public function __serialize(): array - { - return [$this->columnNames, $this->rows]; - } - - /** @param mixed[] $data */ - public function __unserialize(array $data): void - { - // Handle objects serialized with DBAL 4.1 and earlier. - if (isset($data["\0" . self::class . "\0data"])) { - /** @var list> $legacyData */ - $legacyData = $data["\0" . self::class . "\0data"]; - - $this->columnNames = array_keys($legacyData[0] ?? []); - $this->rows = array_map(array_values(...), $legacyData); - - return; - } - - [$this->columnNames, $this->rows] = $data; - } - - /** @return list|false */ - private function fetch(): array|false - { - if (! isset($this->rows[$this->num])) { - return false; - } - - return $this->rows[$this->num++]; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Cache/CacheException.php b/projects/priceservice/vendor/doctrine/dbal/src/Cache/CacheException.php deleted file mode 100644 index 780a833..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Cache/CacheException.php +++ /dev/null @@ -1,11 +0,0 @@ -resultCache; - } - - public function getLifetime(): int - { - return $this->lifetime; - } - - /** @throws CacheException */ - public function getCacheKey(): string - { - if ($this->cacheKey === null) { - throw NoCacheKey::new(); - } - - return $this->cacheKey; - } - - /** - * Generates the real cache key from query, params, types and connection parameters. - * - * @param list|array $params - * @param array $connectionParams - * @phpstan-param array|array $types - * - * @return array{string, string} - */ - public function generateCacheKeys(string $sql, array $params, array $types, array $connectionParams = []): array - { - if (isset($connectionParams['password'])) { - unset($connectionParams['password']); - } - - $realCacheKey = 'query=' . $sql . - '¶ms=' . serialize($params) . - '&types=' . serialize($types) . - '&connectionParams=' . hash('sha256', serialize($connectionParams)); - - // should the key be automatically generated using the inputs or is the cache key set? - $cacheKey = $this->cacheKey ?? sha1($realCacheKey); - - return [$cacheKey, $realCacheKey]; - } - - public function setResultCache(CacheItemPoolInterface $cache): QueryCacheProfile - { - return new QueryCacheProfile($this->lifetime, $this->cacheKey, $cache); - } - - public function setCacheKey(?string $cacheKey): self - { - return new QueryCacheProfile($this->lifetime, $cacheKey, $this->resultCache); - } - - public function setLifetime(int $lifetime): self - { - return new QueryCacheProfile($lifetime, $this->cacheKey, $this->resultCache); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ColumnCase.php b/projects/priceservice/vendor/doctrine/dbal/src/ColumnCase.php deleted file mode 100644 index 687a04f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ColumnCase.php +++ /dev/null @@ -1,21 +0,0 @@ -schemaAssetsFilter = static function (): bool { - return true; - }; - } - - /** - * Gets the cache driver implementation that is used for query result caching. - */ - public function getResultCache(): ?CacheItemPoolInterface - { - return $this->resultCache; - } - - /** - * Sets the cache driver implementation that is used for query result caching. - */ - public function setResultCache(CacheItemPoolInterface $cache): void - { - $this->resultCache = $cache; - } - - /** - * Sets the callable to use to filter schema assets. - */ - public function setSchemaAssetsFilter(callable $schemaAssetsFilter): void - { - $this->schemaAssetsFilter = $schemaAssetsFilter; - } - - /** - * Returns the callable to use to filter schema assets. - */ - public function getSchemaAssetsFilter(): callable - { - return $this->schemaAssetsFilter; - } - - /** - * Sets the default auto-commit mode for connections. - * - * If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual - * transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either - * the method commit or the method rollback. By default, new connections are in auto-commit mode. - * - * @see getAutoCommit - * - * @param bool $autoCommit True to enable auto-commit mode; false to disable it - */ - public function setAutoCommit(bool $autoCommit): void - { - $this->autoCommit = $autoCommit; - } - - /** - * Returns the default auto-commit mode for connections. - * - * @see setAutoCommit - * - * @return bool True if auto-commit mode is enabled by default for connections, false otherwise. - */ - public function getAutoCommit(): bool - { - return $this->autoCommit; - } - - /** - * @param Middleware[] $middlewares - * - * @return $this - */ - public function setMiddlewares(array $middlewares): self - { - $this->middlewares = $middlewares; - - return $this; - } - - /** @return Middleware[] */ - public function getMiddlewares(): array - { - return $this->middlewares; - } - - public function getSchemaManagerFactory(): ?SchemaManagerFactory - { - return $this->schemaManagerFactory; - } - - /** @return $this */ - public function setSchemaManagerFactory(SchemaManagerFactory $schemaManagerFactory): self - { - $this->schemaManagerFactory = $schemaManagerFactory; - - return $this; - } - - public function getDisableTypeComments(): bool - { - return true; - } - - /** @return $this */ - public function setDisableTypeComments(bool $disableTypeComments): self - { - if (! $disableTypeComments) { - throw new InvalidArgumentException('Column comments cannot be enabled anymore.'); - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Connection.php deleted file mode 100644 index f5b270f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Connection.php +++ /dev/null @@ -1,1464 +0,0 @@ -, - * WrapperParameterType>|array - * @phpstan-consistent-constructor - */ -class Connection implements ServerVersionProvider -{ - /** - * The wrapped driver connection. - */ - protected ?DriverConnection $_conn = null; - - protected Configuration $_config; - - /** - * The current auto-commit mode of this connection. - */ - private bool $autoCommit = true; - - /** - * The transaction nesting level. - */ - private int $transactionNestingLevel = 0; - - /** - * The currently active transaction isolation level or NULL before it has been determined. - */ - private ?TransactionIsolationLevel $transactionIsolationLevel = null; - - /** - * The parameters used during creation of the Connection instance. - * - * @var array - * @phpstan-var Params - */ - private array $params; - - /** - * The database platform object used by the connection or NULL before it's initialized. - */ - private ?AbstractPlatform $platform = null; - - private ?ExceptionConverter $exceptionConverter = null; - private ?Parser $parser = null; - - /** - * Flag that indicates whether the current transaction is marked for rollback only. - */ - private bool $isRollbackOnly = false; - - private SchemaManagerFactory $schemaManagerFactory; - - /** - * Initializes a new instance of the Connection class. - * - * @internal The connection can be only instantiated by the driver manager. - * - * @param array $params The connection parameters. - * @param Driver $driver The driver to use. - * @param Configuration|null $config The configuration, optional. - * @phpstan-param Params $params - */ - public function __construct( - #[SensitiveParameter] - array $params, - protected Driver $driver, - ?Configuration $config = null, - ) { - $this->_config = $config ?? new Configuration(); - $this->params = $params; - $this->autoCommit = $this->_config->getAutoCommit(); - - $this->schemaManagerFactory = $this->_config->getSchemaManagerFactory() - ?? new DefaultSchemaManagerFactory(); - } - - /** - * Gets the parameters used during instantiation. - * - * @internal - * - * @return array - * @phpstan-return Params - */ - public function getParams(): array - { - return $this->params; - } - - /** - * Gets the name of the currently selected database. - * - * @return ?non-empty-string The name of the database or NULL if a database is not selected. - * The platforms which don't support the concept of a database (e.g. embedded databases) - * must always return a string as an indicator of an implicitly selected database. - * - * @throws Exception - */ - public function getDatabase(): ?string - { - $platform = $this->getDatabasePlatform(); - $query = $platform->getDummySelectSQL($platform->getCurrentDatabaseExpression()); - - return $this->fetchOne($query); - } - - /** - * Gets the DBAL driver instance. - */ - public function getDriver(): Driver - { - return $this->driver; - } - - /** - * Gets the Configuration used by the Connection. - */ - public function getConfiguration(): Configuration - { - return $this->_config; - } - - /** - * Gets the DatabasePlatform for the connection. - * - * @throws Exception - */ - public function getDatabasePlatform(): AbstractPlatform - { - if ($this->platform === null) { - $versionProvider = $this; - - if (isset($this->params['serverVersion'])) { - $versionProvider = new StaticServerVersionProvider($this->params['serverVersion']); - } elseif (isset($this->params['primary']['serverVersion'])) { - $versionProvider = new StaticServerVersionProvider($this->params['primary']['serverVersion']); - } - - $this->platform = $this->driver->getDatabasePlatform($versionProvider); - } - - return $this->platform; - } - - /** - * Creates an expression builder for the connection. - */ - public function createExpressionBuilder(): ExpressionBuilder - { - return new ExpressionBuilder($this); - } - - /** - * Establishes the connection with the database and returns the underlying connection. - * - * @throws Exception - */ - protected function connect(): DriverConnection - { - if ($this->_conn !== null) { - return $this->_conn; - } - - try { - $connection = $this->_conn = $this->driver->connect($this->params); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - - if ($this->autoCommit === false) { - $this->beginTransaction(); - } - - return $connection; - } - - /** - * {@inheritDoc} - * - * @throws Exception - */ - public function getServerVersion(): string - { - return $this->connect()->getServerVersion(); - } - - /** - * Returns the current auto-commit mode for this connection. - * - * @see setAutoCommit - * - * @return bool True if auto-commit mode is currently enabled for this connection, false otherwise. - */ - public function isAutoCommit(): bool - { - return $this->autoCommit; - } - - /** - * Sets auto-commit mode for this connection. - * - * If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual - * transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either - * the method commit or the method rollback. By default, new connections are in auto-commit mode. - * - * NOTE: If this method is called during a transaction and the auto-commit mode is changed, the transaction is - * committed. If this method is called and the auto-commit mode is not changed, the call is a no-op. - * - * @see isAutoCommit - * - * @throws Exception - */ - public function setAutoCommit(bool $autoCommit): void - { - // Mode not changed, no-op. - if ($autoCommit === $this->autoCommit) { - return; - } - - $this->autoCommit = $autoCommit; - - // Commit all currently active transactions if any when switching auto-commit mode. - if ($this->_conn === null || $this->transactionNestingLevel === 0) { - return; - } - - $this->commitAll(); - } - - /** - * Prepares and executes an SQL query and returns the first row of the result - * as an associative array. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return array|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchAssociative(string $query, array $params = [], array $types = []): array|false - { - return $this->executeQuery($query, $params, $types)->fetchAssociative(); - } - - /** - * Prepares and executes an SQL query and returns the first row of the result - * as a numerically indexed array. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return list|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchNumeric(string $query, array $params = [], array $types = []): array|false - { - return $this->executeQuery($query, $params, $types)->fetchNumeric(); - } - - /** - * Prepares and executes an SQL query and returns the value of a single column - * of the first row of the result. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return mixed|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchOne(string $query, array $params = [], array $types = []): mixed - { - return $this->executeQuery($query, $params, $types)->fetchOne(); - } - - /** - * Whether an actual connection to the database is established. - * - * @phpstan-assert-if-true !null $this->_conn - */ - public function isConnected(): bool - { - return $this->_conn !== null; - } - - /** - * Checks whether a transaction is currently active. - * - * @return bool TRUE if a transaction is currently active, FALSE otherwise. - */ - public function isTransactionActive(): bool - { - return $this->transactionNestingLevel > 0; - } - - /** - * Adds condition based on the criteria to the query components - * - * @param array $criteria Map of key columns to their values - * - * @return array{list, list, list} - */ - private function getCriteriaCondition(array $criteria): array - { - $columns = $values = $conditions = []; - - foreach ($criteria as $columnName => $value) { - if ($value === null) { - $conditions[] = $columnName . ' IS NULL'; - continue; - } - - $columns[] = $columnName; - $values[] = $value; - $conditions[] = $columnName . ' = ?'; - } - - return [$columns, $values, $conditions]; - } - - /** - * Executes an SQL DELETE statement on a table. - * - * Table expression and columns are not escaped and are not safe for user-input. - * - * @param array $criteria - * @param array, string|ParameterType|Type>|array $types - * - * @return int|numeric-string The number of affected rows. - * - * @throws Exception - */ - public function delete(string $table, array $criteria = [], array $types = []): int|string - { - [$columns, $values, $conditions] = $this->getCriteriaCondition($criteria); - - $sql = 'DELETE FROM ' . $table; - - if ($conditions !== []) { - $sql .= ' WHERE ' . implode(' AND ', $conditions); - } - - return $this->executeStatement( - $sql, - $values, - is_string(key($types)) ? $this->extractTypeValues($columns, $types) : $types, - ); - } - - /** - * Closes the connection. - */ - public function close(): void - { - $this->_conn = null; - $this->transactionNestingLevel = 0; - } - - /** - * Sets the transaction isolation level. - * - * @param TransactionIsolationLevel $level The level to set. - * - * @throws Exception - */ - public function setTransactionIsolation(TransactionIsolationLevel $level): void - { - $this->transactionIsolationLevel = $level; - - $this->executeStatement($this->getDatabasePlatform()->getSetTransactionIsolationSQL($level)); - } - - /** - * Gets the currently active transaction isolation level. - * - * @return TransactionIsolationLevel The current transaction isolation level. - * - * @throws Exception - */ - public function getTransactionIsolation(): TransactionIsolationLevel - { - return $this->transactionIsolationLevel ??= $this->getDatabasePlatform()->getDefaultTransactionIsolationLevel(); - } - - /** - * Executes an SQL UPDATE statement on a table. - * - * Table expression and columns are not escaped and are not safe for user-input. - * - * @param array $data - * @param array $criteria - * @param array, string|ParameterType|Type>|array $types - * - * @return int|numeric-string The number of affected rows. - * - * @throws Exception - */ - public function update(string $table, array $data, array $criteria = [], array $types = []): int|string - { - $columns = $values = $conditions = $set = []; - - foreach ($data as $columnName => $value) { - $columns[] = $columnName; - $values[] = $value; - $set[] = $columnName . ' = ?'; - } - - [$criteriaColumns, $criteriaValues, $criteriaConditions] = $this->getCriteriaCondition($criteria); - - $columns = array_merge($columns, $criteriaColumns); - $values = array_merge($values, $criteriaValues); - $conditions = array_merge($conditions, $criteriaConditions); - - if (is_string(key($types))) { - $types = $this->extractTypeValues($columns, $types); - } - - $sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $set); - - if ($conditions !== []) { - $sql .= ' WHERE ' . implode(' AND ', $conditions); - } - - return $this->executeStatement($sql, $values, $types); - } - - /** - * Inserts a table row with specified data. - * - * Table expression and columns are not escaped and are not safe for user-input. - * - * @param array $data - * @param array, string|ParameterType|Type>|array $types - * - * @return int|numeric-string The number of affected rows. - * - * @throws Exception - */ - public function insert(string $table, array $data, array $types = []): int|string - { - if (count($data) === 0) { - return $this->executeStatement('INSERT INTO ' . $table . ' () VALUES ()'); - } - - $columns = []; - $values = []; - $set = []; - - foreach ($data as $columnName => $value) { - $columns[] = $columnName; - $values[] = $value; - $set[] = '?'; - } - - return $this->executeStatement( - 'INSERT INTO ' . $table . ' (' . implode(', ', $columns) . ')' . - ' VALUES (' . implode(', ', $set) . ')', - $values, - is_string(key($types)) ? $this->extractTypeValues($columns, $types) : $types, - ); - } - - /** - * Extract ordered type list from an ordered column list and type map. - * - * @param array $columns - * @param array|array $types - * - * @return array, string|ParameterType|Type> - */ - private function extractTypeValues(array $columns, array $types): array - { - $typeValues = []; - - foreach ($columns as $columnName) { - $typeValues[] = $types[$columnName] ?? ParameterType::STRING; - } - - return $typeValues; - } - - /** - * Quotes a string so it can be safely used as a table or column name, even if - * it is a reserved name. - * - * Delimiting style depends on the underlying database platform that is being used. - * - * NOTE: Just because you CAN use quoted identifiers does not mean - * you SHOULD use them. In general, they end up causing way more - * problems than they solve. - * - * @deprecated Use {@link quoteSingleIdentifier()} individually for each part of a qualified name instead. - * - * @param string $identifier The identifier to be quoted. - * - * @return string The quoted identifier. - * - * @throws Exception - */ - public function quoteIdentifier(string $identifier): string - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6590', - <<<'DEPRECATION' - Method %s is deprecated and will be removed in 5.0. - Use quoteSingleIdentifier() individually for each part of a qualified name instead. - DEPRECATION, - __METHOD__, - ); - - return $this->getDatabasePlatform()->quoteIdentifier($identifier); - } - - /** - * Quotes a string so that it can be safely used as an identifier in SQL. - * - * @throws Exception - */ - public function quoteSingleIdentifier(string $identifier): string - { - return $this->getDatabasePlatform()->quoteSingleIdentifier($identifier); - } - - /** - * The usage of this method is discouraged. Use prepared statements - * or {@see AbstractPlatform::quoteStringLiteral()} instead. - * - * @throws Exception - */ - public function quote(string $value): string - { - return $this->connect()->quote($value); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of numeric arrays. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return list> - * - * @throws Exception - */ - public function fetchAllNumeric(string $query, array $params = [], array $types = []): array - { - return $this->executeQuery($query, $params, $types)->fetchAllNumeric(); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of associative arrays. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return list> - * - * @throws Exception - */ - public function fetchAllAssociative(string $query, array $params = [], array $types = []): array - { - return $this->executeQuery($query, $params, $types)->fetchAllAssociative(); - } - - /** - * Prepares and executes an SQL query and returns the result as an associative array with the keys - * mapped to the first column and the values mapped to the second column. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return array - * - * @throws Exception - */ - public function fetchAllKeyValue(string $query, array $params = [], array $types = []): array - { - return $this->executeQuery($query, $params, $types)->fetchAllKeyValue(); - } - - /** - * Prepares and executes an SQL query and returns the result as an associative array with the keys mapped - * to the first column and the values being an associative array representing the rest of the columns - * and their values. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return array> - * - * @throws Exception - */ - public function fetchAllAssociativeIndexed(string $query, array $params = [], array $types = []): array - { - return $this->executeQuery($query, $params, $types)->fetchAllAssociativeIndexed(); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of the first column values. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return list - * - * @throws Exception - */ - public function fetchFirstColumn(string $query, array $params = [], array $types = []): array - { - return $this->executeQuery($query, $params, $types)->fetchFirstColumn(); - } - - /** - * Prepares and executes an SQL query and returns the result as an iterator over rows represented as numeric arrays. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return Traversable> - * - * @throws Exception - */ - public function iterateNumeric(string $query, array $params = [], array $types = []): Traversable - { - return $this->executeQuery($query, $params, $types)->iterateNumeric(); - } - - /** - * Prepares and executes an SQL query and returns the result as an iterator over rows represented - * as associative arrays. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return Traversable> - * - * @throws Exception - */ - public function iterateAssociative(string $query, array $params = [], array $types = []): Traversable - { - return $this->executeQuery($query, $params, $types)->iterateAssociative(); - } - - /** - * Prepares and executes an SQL query and returns the result as an iterator with the keys - * mapped to the first column and the values mapped to the second column. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return Traversable - * - * @throws Exception - */ - public function iterateKeyValue(string $query, array $params = [], array $types = []): Traversable - { - return $this->executeQuery($query, $params, $types)->iterateKeyValue(); - } - - /** - * Prepares and executes an SQL query and returns the result as an iterator with the keys mapped - * to the first column and the values being an associative array representing the rest of the columns - * and their values. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return Traversable> - * - * @throws Exception - */ - public function iterateAssociativeIndexed(string $query, array $params = [], array $types = []): Traversable - { - return $this->executeQuery($query, $params, $types)->iterateAssociativeIndexed(); - } - - /** - * Prepares and executes an SQL query and returns the result as an iterator over the first column values. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return Traversable - * - * @throws Exception - */ - public function iterateColumn(string $query, array $params = [], array $types = []): Traversable - { - return $this->executeQuery($query, $params, $types)->iterateColumn(); - } - - /** - * Prepares an SQL statement. - * - * @param string $sql The SQL statement to prepare. - * - * @throws Exception - */ - public function prepare(string $sql): Statement - { - $connection = $this->connect(); - - try { - $statement = $connection->prepare($sql); - } catch (Driver\Exception $e) { - throw $this->convertExceptionDuringQuery($e, $sql); - } - - return new Statement($this, $statement, $sql); - } - - /** - * Executes an, optionally parameterized, SQL query. - * - * If the query is parametrized, a prepared statement is used. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @throws Exception - */ - public function executeQuery( - string $sql, - array $params = [], - array $types = [], - ?QueryCacheProfile $qcp = null, - ): Result { - if ($qcp !== null) { - return $this->executeCacheQuery($sql, $params, $types, $qcp); - } - - $connection = $this->connect(); - - try { - if (count($params) > 0) { - [$sql, $params, $types] = $this->expandArrayParameters($sql, $params, $types); - - $stmt = $connection->prepare($sql); - - $this->bindParameters($stmt, $params, $types); - - $result = $stmt->execute(); - } else { - $result = $connection->query($sql); - } - - return new Result($result, $this); - } catch (Driver\Exception $e) { - throw $this->convertExceptionDuringQuery($e, $sql, $params, $types); - } - } - - /** - * Executes a caching query. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @throws CacheException - * @throws Exception - */ - public function executeCacheQuery(string $sql, array $params, array $types, QueryCacheProfile $qcp): Result - { - $resultCache = $qcp->getResultCache() ?? $this->_config->getResultCache(); - - if ($resultCache === null) { - throw NoResultDriverConfigured::new(); - } - - $connectionParams = $this->params; - unset($connectionParams['password']); - - [$cacheKey, $realKey] = $qcp->generateCacheKeys($sql, $params, $types, $connectionParams); - - // @phpstan-ignore missingType.checkedException - $item = $resultCache->getItem($cacheKey); - - if ($item->isHit()) { - $value = $item->get(); - if (! is_array($value)) { - $value = []; - } - - if (isset($value[$realKey]) && $value[$realKey] instanceof ArrayResult) { - return new Result(clone $value[$realKey], $this); - } - } else { - $value = []; - } - - $result = $this->executeQuery($sql, $params, $types); - - $columnNames = []; - for ($i = 0; $i < $result->columnCount(); $i++) { - $columnNames[] = $result->getColumnName($i); - } - - $rows = $result->fetchAllNumeric(); - - $value[$realKey] = new ArrayResult($columnNames, $rows); - - $item->set($value); - - $lifetime = $qcp->getLifetime(); - if ($lifetime > 0) { - $item->expiresAfter($lifetime); - } - - $resultCache->save($item); - - return new Result(clone $value[$realKey], $this); - } - - /** - * Executes an SQL statement with the given parameters and returns the number of affected rows. - * - * Could be used for: - * - DML statements: INSERT, UPDATE, DELETE, etc. - * - DDL statements: CREATE, DROP, ALTER, etc. - * - DCL statements: GRANT, REVOKE, etc. - * - Session control statements: ALTER SESSION, SET, DECLARE, etc. - * - Other statements that don't yield a row set. - * - * This method supports PDO binding types as well as DBAL mapping types. - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return int|numeric-string - * - * @throws Exception - */ - public function executeStatement(string $sql, array $params = [], array $types = []): int|string - { - $connection = $this->connect(); - - try { - if (count($params) > 0) { - [$sql, $params, $types] = $this->expandArrayParameters($sql, $params, $types); - - $stmt = $connection->prepare($sql); - - $this->bindParameters($stmt, $params, $types); - - return $stmt->execute() - ->rowCount(); - } - - return $connection->exec($sql); - } catch (Driver\Exception $e) { - throw $this->convertExceptionDuringQuery($e, $sql, $params, $types); - } - } - - /** - * Returns the current transaction nesting level. - * - * @return int The nesting level. A value of 0 means there's no active transaction. - */ - public function getTransactionNestingLevel(): int - { - return $this->transactionNestingLevel; - } - - /** - * Returns the ID of the last inserted row. - * - * If the underlying driver does not support identity columns, an exception is thrown. - * - * @throws Exception - */ - public function lastInsertId(): int|string - { - try { - return $this->connect()->lastInsertId(); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - } - - /** - * Executes a function in a transaction. - * - * The function gets passed this Connection instance as an (optional) parameter. - * - * If an exception occurs during execution of the function or transaction commit, - * the transaction is rolled back and the exception re-thrown. - * - * @param Closure(self):T $func The function to execute transactionally. - * - * @return T The value returned by $func - * - * @throws Throwable - * - * @template T - */ - public function transactional(Closure $func): mixed - { - $this->beginTransaction(); - - $successful = false; - - try { - $res = $func($this); - - $successful = true; - } finally { - if (! $successful) { - $this->rollBack(); - } - } - - $shouldRollback = true; - try { - $this->commit(); - - $shouldRollback = false; - } catch (TheDriverException $t) { - $shouldRollback = ! ( - $t instanceof TransactionRolledBack - || $t instanceof UniqueConstraintViolationException - || $t instanceof ForeignKeyConstraintViolationException - || $t instanceof DeadlockException - ); - - throw $t; - } finally { - if ($shouldRollback) { - $this->rollBack(); - } - } - - return $res; - } - - /** - * Sets if nested transactions should use savepoints. - * - * @deprecated No replacement planned - * - * @throws Exception - */ - public function setNestTransactionsWithSavepoints(bool $nestTransactionsWithSavepoints): void - { - if (! $nestTransactionsWithSavepoints) { - throw new InvalidArgumentException(sprintf( - 'Calling %s with false to enable nesting transactions without savepoints is no longer supported.', - __METHOD__, - )); - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/5383', - '%s is deprecated and will be removed in 5.0', - __METHOD__, - ); - } - - /** - * Gets if nested transactions should use savepoints. - * - * @deprecated No replacement planned - */ - public function getNestTransactionsWithSavepoints(): bool - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/5383', - '%s is deprecated and will be removed in 5.0', - __METHOD__, - ); - - return true; - } - - /** - * Returns the savepoint name to use for nested transactions. - */ - protected function _getNestedTransactionSavePointName(): string - { - return 'DOCTRINE_' . $this->transactionNestingLevel; - } - - /** @throws Exception */ - public function beginTransaction(): void - { - $connection = $this->connect(); - - ++$this->transactionNestingLevel; - - if ($this->transactionNestingLevel === 1) { - try { - $connection->beginTransaction(); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - } else { - $this->createSavepoint($this->_getNestedTransactionSavePointName()); - } - } - - /** @throws Exception */ - public function commit(): void - { - if ($this->transactionNestingLevel === 0) { - throw NoActiveTransaction::new(); - } - - if ($this->isRollbackOnly) { - throw CommitFailedRollbackOnly::new(); - } - - $connection = $this->connect(); - - try { - if ($this->transactionNestingLevel === 1) { - try { - $connection->commit(); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - } else { - $this->releaseSavepoint($this->_getNestedTransactionSavePointName()); - } - } finally { - $this->updateTransactionStateAfterCommit(); - } - } - - /** @throws Exception */ - private function updateTransactionStateAfterCommit(): void - { - if ($this->transactionNestingLevel !== 0) { - --$this->transactionNestingLevel; - } - - if ($this->autoCommit !== false || $this->transactionNestingLevel !== 0) { - return; - } - - $this->beginTransaction(); - } - - /** - * Commits all current nesting transactions. - * - * @throws Exception - */ - private function commitAll(): void - { - while ($this->transactionNestingLevel !== 0) { - if ($this->autoCommit === false && $this->transactionNestingLevel === 1) { - // When in no auto-commit mode, the last nesting commit immediately starts a new transaction. - // Therefore we need to do the final commit here and then leave to avoid an infinite loop. - $this->commit(); - - return; - } - - $this->commit(); - } - } - - /** @throws Exception */ - public function rollBack(): void - { - if ($this->transactionNestingLevel === 0) { - throw NoActiveTransaction::new(); - } - - $connection = $this->connect(); - - if ($this->transactionNestingLevel === 1) { - $this->transactionNestingLevel = 0; - - try { - $connection->rollBack(); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } finally { - $this->isRollbackOnly = false; - - if ($this->autoCommit === false) { - $this->beginTransaction(); - } - } - } else { - $this->rollbackSavepoint($this->_getNestedTransactionSavePointName()); - --$this->transactionNestingLevel; - } - } - - /** - * Creates a new savepoint. - * - * @param string $savepoint The name of the savepoint to create. - * - * @throws Exception - */ - public function createSavepoint(string $savepoint): void - { - $platform = $this->getDatabasePlatform(); - - if (! $platform->supportsSavepoints()) { - throw SavepointsNotSupported::new(); - } - - $this->executeStatement($platform->createSavePoint($savepoint)); - } - - /** - * Releases the given savepoint. - * - * @param string $savepoint The name of the savepoint to release. - * - * @throws Exception - */ - public function releaseSavepoint(string $savepoint): void - { - $platform = $this->getDatabasePlatform(); - - if (! $platform->supportsSavepoints()) { - throw SavepointsNotSupported::new(); - } - - if (! $platform->supportsReleaseSavepoints()) { - return; - } - - $this->executeStatement($platform->releaseSavePoint($savepoint)); - } - - /** - * Rolls back to the given savepoint. - * - * @param string $savepoint The name of the savepoint to rollback to. - * - * @throws Exception - */ - public function rollbackSavepoint(string $savepoint): void - { - $platform = $this->getDatabasePlatform(); - - if (! $platform->supportsSavepoints()) { - throw SavepointsNotSupported::new(); - } - - $this->executeStatement($platform->rollbackSavePoint($savepoint)); - } - - /** - * Provides access to the native database connection. - * - * @return resource|object - * - * @throws Exception - */ - public function getNativeConnection() - { - return $this->connect()->getNativeConnection(); - } - - /** - * Creates a SchemaManager that can be used to inspect or change the - * database schema through the connection. - * - * @throws Exception - */ - public function createSchemaManager(): AbstractSchemaManager - { - return $this->schemaManagerFactory->createSchemaManager($this); - } - - /** - * Marks the current transaction so that the only possible - * outcome for the transaction to be rolled back. - * - * @throws ConnectionException If no transaction is active. - */ - public function setRollbackOnly(): void - { - if ($this->transactionNestingLevel === 0) { - throw NoActiveTransaction::new(); - } - - $this->isRollbackOnly = true; - } - - /** - * Checks whether the current transaction is marked for rollback only. - * - * @throws ConnectionException If no transaction is active. - */ - public function isRollbackOnly(): bool - { - if ($this->transactionNestingLevel === 0) { - throw NoActiveTransaction::new(); - } - - return $this->isRollbackOnly; - } - - /** - * Converts a given value to its database representation according to the conversion - * rules of a specific DBAL mapping type. - * - * @param mixed $value The value to convert. - * @param string $type The name of the DBAL mapping type. - * - * @return mixed The converted value. - * - * @throws Exception - */ - public function convertToDatabaseValue(mixed $value, string $type): mixed - { - return Type::getType($type)->convertToDatabaseValue($value, $this->getDatabasePlatform()); - } - - /** - * Converts a given value to its PHP representation according to the conversion - * rules of a specific DBAL mapping type. - * - * @param mixed $value The value to convert. - * @param string $type The name of the DBAL mapping type. - * - * @return mixed The converted type. - * - * @throws Exception - */ - public function convertToPHPValue(mixed $value, string $type): mixed - { - return Type::getType($type)->convertToPHPValue($value, $this->getDatabasePlatform()); - } - - /** - * Binds a set of parameters, some or all of which are typed with a PDO binding type - * or DBAL mapping type, to a given statement. - * - * @param list|array $params - * @param array|array $types - * - * @throws Exception - */ - private function bindParameters(DriverStatement $stmt, array $params, array $types): void - { - // Check whether parameters are positional or named. Mixing is not allowed. - if (is_int(key($params))) { - $bindIndex = 1; - - foreach ($params as $key => $value) { - if (array_key_exists($key, $types)) { - $type = $types[$key]; - [$value, $bindingType] = $this->getBindingInfo($value, $type); - } else { - $bindingType = ParameterType::STRING; - } - - try { - $stmt->bindValue($bindIndex, $value, $bindingType); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - - ++$bindIndex; - } - } else { - // Named parameters - foreach ($params as $name => $value) { - if (array_key_exists($name, $types)) { - $type = $types[$name]; - [$value, $bindingType] = $this->getBindingInfo($value, $type); - } else { - $bindingType = ParameterType::STRING; - } - - try { - $stmt->bindValue($name, $value, $bindingType); - } catch (Driver\Exception $e) { - throw $this->convertException($e); - } - } - } - } - - /** - * Gets the binding type of a given type. - * - * @param mixed $value The value to bind. - * @param string|ParameterType|Type $type The type to bind. - * - * @return array{mixed, ParameterType} [0] => the (escaped) value, [1] => the binding type. - * - * @throws Exception - */ - private function getBindingInfo(mixed $value, string|ParameterType|Type $type): array - { - if (is_string($type)) { - $type = Type::getType($type); - } - - if ($type instanceof Type) { - $value = $type->convertToDatabaseValue($value, $this->getDatabasePlatform()); - $bindingType = $type->getBindingType(); - } else { - $bindingType = $type; - } - - return [$value, $bindingType]; - } - - /** - * Creates a new instance of a SQL query builder. - */ - public function createQueryBuilder(): QueryBuilder - { - return new Query\QueryBuilder($this); - } - - /** - * @internal - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - */ - final public function convertExceptionDuringQuery( - Driver\Exception $e, - string $sql, - array $params = [], - array $types = [], - ): DriverException { - return $this->handleDriverException($e, new Query($sql, $params, $types)); - } - - /** @internal */ - final public function convertException(Driver\Exception $e): DriverException - { - return $this->handleDriverException($e, null); - } - - /** - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return array{ - * string, - * list|array, - * array, string|ParameterType|Type>|array - * } - * - * @throws Exception - */ - private function expandArrayParameters(string $sql, array $params, array $types): array - { - $needsConversion = false; - $nonArrayTypes = []; - - if (is_string(key($params))) { - $needsConversion = true; - } else { - foreach ($types as $key => $type) { - if ($type instanceof ArrayParameterType) { - $needsConversion = true; - break; - } - - $nonArrayTypes[$key] = $type; - } - } - - if (! $needsConversion) { - return [$sql, $params, $nonArrayTypes]; - } - - $this->parser ??= $this->getDatabasePlatform()->createSQLParser(); - $visitor = new ExpandArrayParameters($params, $types); - - try { - $this->parser->parse($sql, $visitor); - } catch (Parser\Exception $e) { - throw ParseError::fromParserException($e); - } - - return [ - $visitor->getSQL(), - $visitor->getParameters(), - $visitor->getTypes(), - ]; - } - - private function handleDriverException( - Driver\Exception $driverException, - ?Query $query, - ): DriverException { - $this->exceptionConverter ??= $this->driver->getExceptionConverter(); - $exception = $this->exceptionConverter->convert($driverException, $query); - - if ($exception instanceof ConnectionLost) { - $this->close(); - } - - return $exception; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Connection/StaticServerVersionProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/Connection/StaticServerVersionProvider.php deleted file mode 100644 index 9e0e4e2..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Connection/StaticServerVersionProvider.php +++ /dev/null @@ -1,20 +0,0 @@ -version; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ConnectionException.php b/projects/priceservice/vendor/doctrine/dbal/src/ConnectionException.php deleted file mode 100644 index bb11a23..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ConnectionException.php +++ /dev/null @@ -1,9 +0,0 @@ -executeQuery("DELETE FROM table"); - * - * Be aware that Connection#executeQuery is a method specifically for READ - * operations only. - * - * Use Connection#executeStatement for any SQL statement that changes/updates - * state in the database (UPDATE, INSERT, DELETE or DDL statements). - * - * This connection is limited to replica operations using the - * Connection#executeQuery operation only, because it wouldn't be compatible - * with the ORM or SchemaManager code otherwise. Both use all the other - * operations in a context where writes could happen to a replica, which makes - * this restricted approach necessary. - * - * You can manually connect to the primary at any time by calling: - * - * $conn->ensureConnectedToPrimary(); - * - * Instantiation through the DriverManager looks like: - * - * @phpstan-import-type Params from DriverManager - * @phpstan-import-type OverrideParams from DriverManager - * @example - * - * $conn = DriverManager::getConnection(array( - * 'wrapperClass' => 'Doctrine\DBAL\Connections\PrimaryReadReplicaConnection', - * 'driver' => 'pdo_mysql', - * 'primary' => array('user' => '', 'password' => '', 'host' => '', 'dbname' => ''), - * 'replica' => array( - * array('user' => 'replica1', 'password' => '', 'host' => '', 'dbname' => ''), - * array('user' => 'replica2', 'password' => '', 'host' => '', 'dbname' => ''), - * ) - * )); - * - * You can also pass 'driverOptions' and any other documented option to each of this drivers - * to pass additional information. - */ -class PrimaryReadReplicaConnection extends Connection -{ - /** - * Primary and Replica connection (one of the randomly picked replicas). - * - * @var array - */ - protected array $connections = ['primary' => null, 'replica' => null]; - - /** - * You can keep the replica connection and then switch back to it - * during the request if you know what you are doing. - */ - protected bool $keepReplica = false; - - /** - * Creates Primary Replica Connection. - * - * @internal The connection can be only instantiated by the driver manager. - * - * @param array $params - * @phpstan-param Params $params - */ - public function __construct(array $params, Driver $driver, ?Configuration $config = null) - { - if (! isset($params['replica'], $params['primary'])) { - throw new InvalidArgumentException('primary or replica configuration missing'); - } - - if (count($params['replica']) === 0) { - throw new InvalidArgumentException('You have to configure at least one replica.'); - } - - if (isset($params['driver'])) { - $params['primary']['driver'] = $params['driver']; - - foreach ($params['replica'] as $replicaKey => $replica) { - $params['replica'][$replicaKey]['driver'] = $params['driver']; - } - } - - $this->keepReplica = ! empty($params['keepReplica']); - - parent::__construct($params, $driver, $config); - } - - /** - * Checks if the connection is currently towards the primary or not. - */ - public function isConnectedToPrimary(): bool - { - return $this->_conn !== null && $this->_conn === $this->connections['primary']; - } - - public function connect(?string $connectionName = null): DriverConnection - { - if ($connectionName !== null) { - throw new InvalidArgumentException( - 'Passing a connection name as first argument is not supported anymore.' - . ' Use ensureConnectedToPrimary()/ensureConnectedToReplica() instead.', - ); - } - - return $this->performConnect(); - } - - /** @throws Exception */ - protected function performConnect(?string $connectionName = null): DriverConnection - { - $requestedConnectionChange = ($connectionName !== null); - $connectionName ??= 'replica'; - - if ($connectionName !== 'replica' && $connectionName !== 'primary') { - throw new InvalidArgumentException('Invalid option to connect(), only primary or replica allowed.'); - } - - // If we have a connection open, and this is not an explicit connection - // change request, then abort right here, because we are already done. - // This prevents writes to the replica in case of "keepReplica" option enabled. - if ($this->_conn !== null && ! $requestedConnectionChange) { - return $this->_conn; - } - - $forcePrimaryAsReplica = false; - - if ($this->getTransactionNestingLevel() > 0) { - $connectionName = 'primary'; - $forcePrimaryAsReplica = true; - } - - if (isset($this->connections[$connectionName])) { - $this->_conn = $this->connections[$connectionName]; - - if ($forcePrimaryAsReplica && ! $this->keepReplica) { - $this->connections['replica'] = $this->_conn; - } - - return $this->_conn; - } - - if ($connectionName === 'primary') { - $this->connections['primary'] = $this->_conn = $this->connectTo($connectionName); - - // Set replica connection to primary to avoid invalid reads - if (! $this->keepReplica) { - $this->connections['replica'] = $this->connections['primary']; - } - } else { - $this->connections['replica'] = $this->_conn = $this->connectTo($connectionName); - } - - return $this->_conn; - } - - /** - * Connects to the primary node of the database cluster. - * - * All following statements after this will be executed against the primary node. - * - * @throws Exception - */ - public function ensureConnectedToPrimary(): void - { - $this->performConnect('primary'); - } - - /** - * Connects to a replica node of the database cluster. - * - * All following statements after this will be executed against the replica node, - * unless the keepReplica option is set to false and a primary connection - * was already opened. - * - * @throws Exception - */ - public function ensureConnectedToReplica(): void - { - $this->performConnect('replica'); - } - - /** - * Connects to a specific connection. - * - * @throws Exception - */ - protected function connectTo(string $connectionName): DriverConnection - { - $params = $this->getParams(); - assert(isset($params['primary'])); - - if ($connectionName === 'primary') { - $connectionParams = $params['primary']; - } else { - assert(isset($params['replica'])); - $connectionParams = $this->chooseReplicaConnectionParameters($params['primary'], $params['replica']); - } - - try { - return $this->driver->connect($connectionParams); - } catch (DriverException $e) { - throw $this->convertException($e); - } - } - - /** - * @param OverrideParams $primary - * @param array $replicas - * - * @return array - * @phpstan-return OverrideParams - */ - protected function chooseReplicaConnectionParameters( - #[SensitiveParameter] - array $primary, - #[SensitiveParameter] - array $replicas, - ): array { - $params = $replicas[array_rand($replicas)]; - - if (! isset($params['charset']) && isset($primary['charset'])) { - $params['charset'] = $primary['charset']; - } - - return $params; - } - - /** - * {@inheritDoc} - */ - public function executeStatement(string $sql, array $params = [], array $types = []): int|string - { - $this->ensureConnectedToPrimary(); - - return parent::executeStatement($sql, $params, $types); - } - - public function beginTransaction(): void - { - $this->ensureConnectedToPrimary(); - - parent::beginTransaction(); - } - - public function commit(): void - { - $this->ensureConnectedToPrimary(); - - parent::commit(); - } - - public function rollBack(): void - { - $this->ensureConnectedToPrimary(); - - parent::rollBack(); - } - - public function close(): void - { - unset($this->connections['primary'], $this->connections['replica']); - - parent::close(); - - $this->_conn = null; - $this->connections = ['primary' => null, 'replica' => null]; - } - - public function createSavepoint(string $savepoint): void - { - $this->ensureConnectedToPrimary(); - - parent::createSavepoint($savepoint); - } - - public function releaseSavepoint(string $savepoint): void - { - $this->ensureConnectedToPrimary(); - - parent::releaseSavepoint($savepoint); - } - - public function rollbackSavepoint(string $savepoint): void - { - $this->ensureConnectedToPrimary(); - - parent::rollbackSavepoint($savepoint); - } - - public function prepare(string $sql): Statement - { - $this->ensureConnectedToPrimary(); - - return parent::prepare($sql); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver.php deleted file mode 100644 index 0b8bd16..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver.php +++ /dev/null @@ -1,51 +0,0 @@ - $params All connection parameters. - * @phpstan-param Params $params All connection parameters. - * - * @return DriverConnection The database connection. - * - * @throws Exception - */ - public function connect( - #[SensitiveParameter] - array $params, - ): DriverConnection; - - /** - * Gets the DatabasePlatform instance that provides all the metadata about - * the platform this driver connects to. - * - * @return AbstractPlatform The database platform. - * - * @throws PlatformException - */ - public function getDatabasePlatform(ServerVersionProvider $versionProvider): AbstractPlatform; - - /** - * Gets the ExceptionConverter that can be used to convert driver-level exceptions into DBAL exceptions. - */ - public function getExceptionConverter(): ExceptionConverter; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/ExceptionConverter.php deleted file mode 100644 index a7bf271..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/ExceptionConverter.php +++ /dev/null @@ -1,25 +0,0 @@ -getCode()) { - -104 => new SyntaxErrorException($exception, $query), - -203 => new NonUniqueFieldNameException($exception, $query), - -204 => new TableNotFoundException($exception, $query), - -206 => new InvalidFieldNameException($exception, $query), - -407 => new NotNullConstraintViolationException($exception, $query), - -530, - -531, - -532, - -20356 => new ForeignKeyConstraintViolationException($exception, $query), - -601 => new TableExistsException($exception, $query), - -803 => new UniqueConstraintViolationException($exception, $query), - -1336, - -30082 => new ConnectionException($exception, $query), - default => new DriverException($exception, $query), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php deleted file mode 100644 index ad0f0e1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php +++ /dev/null @@ -1,94 +0,0 @@ -getCode()) { - 1008 => new DatabaseDoesNotExist($exception, $query), - 1213 => new DeadlockException($exception, $query), - 1205 => new LockWaitTimeoutException($exception, $query), - 1050 => new TableExistsException($exception, $query), - 1051, - 1146 => new TableNotFoundException($exception, $query), - 1216, - 1217, - 1451, - 1452, - 1701 => new ForeignKeyConstraintViolationException($exception, $query), - 1062, - 1557, - 1569, - 1586 => new UniqueConstraintViolationException($exception, $query), - 1054, - 1166, - 1611 => new InvalidFieldNameException($exception, $query), - 1052, - 1060, - 1110 => new NonUniqueFieldNameException($exception, $query), - 1064, - 1149, - 1287, - 1341, - 1342, - 1343, - 1344, - 1382, - 1479, - 1541, - 1554, - 1626 => new SyntaxErrorException($exception, $query), - 1044, - 1045, - 1046, - 1049, - 1095, - 1142, - 1143, - 1227, - 1370, - 1429, - 2002, - 2005, - 2054 => new ConnectionException($exception, $query), - 2006, - 4031 => new ConnectionLost($exception, $query), - 1048, - 1121, - 1138, - 1171, - 1252, - 1263, - 1364, - 1566 => new NotNullConstraintViolationException($exception, $query), - default => new DriverException($exception, $query), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/OCI/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/OCI/ExceptionConverter.php deleted file mode 100644 index 9bde91e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/OCI/ExceptionConverter.php +++ /dev/null @@ -1,80 +0,0 @@ -getCode()) { - 1, - 2299, - 38911 => new UniqueConstraintViolationException($exception, $query), - 904 => new InvalidFieldNameException($exception, $query), - 918, - 960 => new NonUniqueFieldNameException($exception, $query), - 923 => new SyntaxErrorException($exception, $query), - 942 => new TableNotFoundException($exception, $query), - 955 => new TableExistsException($exception, $query), - 1017, - 12545 => new ConnectionException($exception, $query), - 1400 => new NotNullConstraintViolationException($exception, $query), - 1918 => new DatabaseDoesNotExist($exception, $query), - 2091 => (function () use ($exception, $query) { - //SQLSTATE[HY000]: General error: 2091 OCITransCommit: ORA-02091: transaction rolled back - //ORA-00001: unique constraint (DOCTRINE.GH3423_UNIQUE) violated - $lines = explode("\n", $exception->getMessage(), 2); - assert(count($lines) >= 2); - - [, $causeError] = $lines; - - [$causeCode] = explode(': ', $causeError, 2); - $code = (int) str_replace('ORA-', '', $causeCode); - - $sqlState = $exception->getSQLState(); - if ($exception instanceof DriverPDOException) { - $why = $this->convert(new DriverPDOException($causeError, $sqlState, $code, $exception), $query); - } else { - $why = $this->convert(new Error($causeError, $sqlState, $code, $exception), $query); - } - - return new TransactionRolledBack($why, $query); - })(), - 2289, - 2443, - 4080 => new DatabaseObjectNotFoundException($exception, $query), - 2266, - 2291, - 2292 => new ForeignKeyConstraintViolationException($exception, $query), - default => new DriverException($exception, $query), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/PostgreSQL/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/PostgreSQL/ExceptionConverter.php deleted file mode 100644 index 8f22fc7..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/PostgreSQL/ExceptionConverter.php +++ /dev/null @@ -1,87 +0,0 @@ -getSQLState()) { - case '40001': - case '40P01': - return new DeadlockException($exception, $query); - - case '0A000': - // Foreign key constraint violations during a TRUNCATE operation - // are considered "feature not supported" in PostgreSQL. - if (str_contains($exception->getMessage(), 'truncate')) { - return new ForeignKeyConstraintViolationException($exception, $query); - } - - break; - - case '23502': - return new NotNullConstraintViolationException($exception, $query); - - case '23503': - return new ForeignKeyConstraintViolationException($exception, $query); - - case '23505': - return new UniqueConstraintViolationException($exception, $query); - - case '3D000': - return new DatabaseDoesNotExist($exception, $query); - - case '3F000': - return new SchemaDoesNotExist($exception, $query); - - case '42601': - return new SyntaxErrorException($exception, $query); - - case '42702': - return new NonUniqueFieldNameException($exception, $query); - - case '42703': - return new InvalidFieldNameException($exception, $query); - - case '42P01': - return new TableNotFoundException($exception, $query); - - case '42P07': - return new TableExistsException($exception, $query); - - case '08006': - return new ConnectionException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'terminating connection')) { - return new ConnectionLost($exception, $query); - } - - return new DriverException($exception, $query); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLSrv/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLSrv/ExceptionConverter.php deleted file mode 100644 index 561e58b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLSrv/ExceptionConverter.php +++ /dev/null @@ -1,49 +0,0 @@ -getCode()) { - 102 => new SyntaxErrorException($exception, $query), - 207 => new InvalidFieldNameException($exception, $query), - 208 => new TableNotFoundException($exception, $query), - 209 => new NonUniqueFieldNameException($exception, $query), - 515 => new NotNullConstraintViolationException($exception, $query), - 547, - 4712 => new ForeignKeyConstraintViolationException($exception, $query), - 2601, - 2627 => new UniqueConstraintViolationException($exception, $query), - 2714 => new TableExistsException($exception, $query), - 3701, - 15151 => new DatabaseObjectNotFoundException($exception, $query), - 11001, - 18456 => new ConnectionException($exception, $query), - default => new DriverException($exception, $query), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLite/ExceptionConverter.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLite/ExceptionConverter.php deleted file mode 100644 index 5885195..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/API/SQLite/ExceptionConverter.php +++ /dev/null @@ -1,85 +0,0 @@ -getMessage(), 'database is locked')) { - return new LockWaitTimeoutException($exception, $query); - } - - if ( - str_contains($exception->getMessage(), 'must be unique') || - str_contains($exception->getMessage(), 'is not unique') || - str_contains($exception->getMessage(), 'are not unique') || - str_contains($exception->getMessage(), 'UNIQUE constraint failed') - ) { - return new UniqueConstraintViolationException($exception, $query); - } - - if ( - str_contains($exception->getMessage(), 'may not be NULL') || - str_contains($exception->getMessage(), 'NOT NULL constraint failed') - ) { - return new NotNullConstraintViolationException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'no such table:')) { - return new TableNotFoundException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'already exists')) { - return new TableExistsException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'has no column named')) { - return new InvalidFieldNameException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'ambiguous column name')) { - return new NonUniqueFieldNameException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'syntax error')) { - return new SyntaxErrorException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'attempt to write a readonly database')) { - return new ReadOnlyException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'unable to open database file')) { - return new ConnectionException($exception, $query); - } - - if (str_contains($exception->getMessage(), 'FOREIGN KEY constraint failed')) { - return new ForeignKeyConstraintViolationException($exception, $query); - } - - return new DriverException($exception, $query); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractDB2Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractDB2Driver.php deleted file mode 100644 index 9955a38..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractDB2Driver.php +++ /dev/null @@ -1,27 +0,0 @@ -sqlState; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php deleted file mode 100644 index aebd306..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php +++ /dev/null @@ -1,109 +0,0 @@ -getServerVersion(); - if (stripos($version, 'mariadb') !== false) { - $mariaDbVersion = $this->getMariaDbMysqlVersionNumber($version); - if (version_compare($mariaDbVersion, '10.10.0', '>=')) { - return new MariaDB1010Platform(); - } - - if (version_compare($mariaDbVersion, '10.6.0', '>=')) { - return new MariaDB1060Platform(); - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6343', - 'Support for MariaDB < 10.6.0 is deprecated and will be removed in DBAL 5', - ); - - if (version_compare($mariaDbVersion, '10.5.2', '>=')) { - return new MariaDB1052Platform(); - } - - return new MariaDBPlatform(); - } - - if (version_compare($version, '8.4.0', '>=')) { - return new MySQL84Platform(); - } - - if (version_compare($version, '8.0.0', '>=')) { - return new MySQL80Platform(); - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6343', - 'Support for MySQL < 8 is deprecated and will be removed in DBAL 5', - ); - - return new MySQLPlatform(); - } - - public function getExceptionConverter(): ExceptionConverterInterface - { - return new ExceptionConverter(); - } - - /** - * Detect MariaDB server version, including hack for some mariadb distributions - * that starts with the prefix '5.5.5-' - * - * @param string $versionString Version string as returned by mariadb server, i.e. '5.5.5-Mariadb-10.0.8-xenial' - * - * @throws InvalidPlatformVersion - */ - private function getMariaDbMysqlVersionNumber(string $versionString): string - { - if ( - preg_match( - '/^(?:5\.5\.5-)?(mariadb-)?(?P\d+)\.(?P\d+)\.(?P\d+)/i', - $versionString, - $versionParts, - ) !== 1 - ) { - throw InvalidPlatformVersion::new( - $versionString, - '^(?:5\.5\.5-)?(mariadb-)?..', - ); - } - - return $versionParts['major'] . '.' . $versionParts['minor'] . '.' . $versionParts['patch']; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver.php deleted file mode 100644 index cf56cfa..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver.php +++ /dev/null @@ -1,38 +0,0 @@ - $params The connection parameters to return the Easy Connect String for. - */ - protected function getEasyConnectString(array $params): string - { - return (string) EasyConnectString::fromConnectionParameters($params); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver/EasyConnectString.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver/EasyConnectString.php deleted file mode 100644 index be85d5f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractOracleDriver/EasyConnectString.php +++ /dev/null @@ -1,112 +0,0 @@ -string; - } - - /** - * Creates the object from an array representation - * - * @param mixed[] $params - */ - public static function fromArray(array $params): self - { - return new self(self::renderParams($params)); - } - - /** - * Creates the object from the given DBAL connection parameters. - * - * @param mixed[] $params - */ - public static function fromConnectionParameters(array $params): self - { - if (isset($params['connectstring'])) { - return new self($params['connectstring']); - } - - if (! isset($params['host'])) { - return new self($params['dbname'] ?? ''); - } - - $connectData = []; - - if (isset($params['servicename']) || isset($params['dbname'])) { - $serviceKey = 'SID'; - - if (isset($params['service'])) { - $serviceKey = 'SERVICE_NAME'; - } - - $serviceName = $params['servicename'] ?? $params['dbname']; - - $connectData[$serviceKey] = $serviceName; - } - - if (isset($params['instancename'])) { - $connectData['INSTANCE_NAME'] = $params['instancename']; - } - - if (! empty($params['pooled'])) { - $connectData['SERVER'] = 'POOLED'; - } - - return self::fromArray([ - 'DESCRIPTION' => [ - 'ADDRESS' => [ - 'PROTOCOL' => $params['driverOptions']['protocol'] ?? 'TCP', - 'HOST' => $params['host'], - 'PORT' => $params['port'] ?? 1521, - ], - 'CONNECT_DATA' => $connectData, - ], - ]); - } - - /** @param mixed[] $params */ - private static function renderParams(array $params): string - { - $chunks = []; - - foreach ($params as $key => $value) { - $string = self::renderValue($value); - - if ($string === '') { - continue; - } - - $chunks[] = sprintf('(%s=%s)', $key, $string); - } - - return implode('', $chunks); - } - - private static function renderValue(mixed $value): string - { - if (is_array($value)) { - return self::renderParams($value); - } - - return (string) $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractPostgreSQLDriver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractPostgreSQLDriver.php deleted file mode 100644 index 7b679c6..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractPostgreSQLDriver.php +++ /dev/null @@ -1,57 +0,0 @@ -getServerVersion(); - - if (preg_match('/^(?P\d+)(?:\.(?P\d+)(?:\.(?P\d+))?)?/', $version, $versionParts) !== 1) { - throw InvalidPlatformVersion::new( - $version, - '..', - ); - } - - $majorVersion = $versionParts['major']; - $minorVersion = $versionParts['minor'] ?? 0; - $patchVersion = $versionParts['patch'] ?? 0; - $version = $majorVersion . '.' . $minorVersion . '.' . $patchVersion; - - if (version_compare($version, '12.0', '>=')) { - return new PostgreSQL120Platform(); - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6495', - 'Support for Postgres < 12 is deprecated and will be removed in DBAL 5', - ); - - return new PostgreSQLPlatform(); - } - - public function getExceptionConverter(): ExceptionConverterInterface - { - return new ExceptionConverter(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLServerDriver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLServerDriver.php deleted file mode 100644 index 8c2d012..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/AbstractSQLServerDriver.php +++ /dev/null @@ -1,27 +0,0 @@ -exec('PRAGMA foreign_keys=ON'); - - return $connection; - } - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Connection.php deleted file mode 100644 index 68852e9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Connection.php +++ /dev/null @@ -1,93 +0,0 @@ -fetchNumeric(); - - if ($row === false) { - return false; - } - - return $row[0]; - } - - /** - * @return list> - * - * @throws Exception - */ - public static function fetchAllNumeric(Result $result): array - { - $rows = []; - - while (($row = $result->fetchNumeric()) !== false) { - $rows[] = $row; - } - - return $rows; - } - - /** - * @return list> - * - * @throws Exception - */ - public static function fetchAllAssociative(Result $result): array - { - $rows = []; - - while (($row = $result->fetchAssociative()) !== false) { - $rows[] = $row; - } - - return $rows; - } - - /** - * @return list - * - * @throws Exception - */ - public static function fetchFirstColumn(Result $result): array - { - $rows = []; - - while (($row = $result->fetchOne()) !== false) { - $rows[] = $row; - } - - return $rows; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php deleted file mode 100644 index 2c8783b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php +++ /dev/null @@ -1,131 +0,0 @@ -connection); - assert($serverInfo instanceof stdClass); - - return $serverInfo->DBMS_VER; - } - - public function prepare(string $sql): Statement - { - $stmt = @db2_prepare($this->connection, $sql); - - if ($stmt === false) { - throw PrepareFailed::new(error_get_last()); - } - - return new Statement($stmt); - } - - public function query(string $sql): Result - { - return $this->prepare($sql)->execute(); - } - - public function quote(string $value): string - { - return "'" . db2_escape_string($value) . "'"; - } - - public function exec(string $sql): int|string - { - $stmt = @db2_exec($this->connection, $sql); - - if ($stmt === false) { - throw StatementError::new(); - } - - $numRows = db2_num_rows($stmt); - - if ($numRows === false) { - throw StatementError::new(); - } - - return $numRows; - } - - public function lastInsertId(): string - { - $lastInsertId = db2_last_insert_id($this->connection); - - if ($lastInsertId === null) { - throw NoIdentityValue::new(); - } - - return $lastInsertId; - } - - public function beginTransaction(): void - { - if (db2_autocommit($this->connection, DB2_AUTOCOMMIT_OFF) !== true) { - throw ConnectionError::new($this->connection); - } - } - - public function commit(): void - { - if (! db2_commit($this->connection)) { - throw ConnectionError::new($this->connection); - } - - if (db2_autocommit($this->connection, DB2_AUTOCOMMIT_ON) !== true) { - throw ConnectionError::new($this->connection); - } - } - - public function rollBack(): void - { - if (! db2_rollback($this->connection)) { - throw ConnectionError::new($this->connection); - } - - if (db2_autocommit($this->connection, DB2_AUTOCOMMIT_ON) !== true) { - throw ConnectionError::new($this->connection); - } - } - - /** @return resource */ - public function getNativeConnection() - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/DataSourceName.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/DataSourceName.php deleted file mode 100644 index a1e5948..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/DataSourceName.php +++ /dev/null @@ -1,80 +0,0 @@ -string; - } - - /** - * Creates the object from an array representation - * - * @param array $params - */ - public static function fromArray( - #[SensitiveParameter] - array $params, - ): self { - $chunks = []; - - foreach ($params as $key => $value) { - $chunks[] = sprintf('%s=%s', $key, $value); - } - - return new self(implode(';', $chunks)); - } - - /** - * Creates the object from the given DBAL connection parameters. - * - * @param array $params - */ - public static function fromConnectionParameters(#[SensitiveParameter] - array $params,): self - { - if (isset($params['dbname']) && str_contains($params['dbname'], '=')) { - return new self($params['dbname']); - } - - $dsnParams = []; - - foreach ( - [ - 'host' => 'HOSTNAME', - 'port' => 'PORT', - 'protocol' => 'PROTOCOL', - 'dbname' => 'DATABASE', - 'user' => 'UID', - 'password' => 'PWD', - ] as $dbalParam => $dsnParam - ) { - if (! isset($params[$dbalParam])) { - continue; - } - - $dsnParams[$dsnParam] = $params[$dbalParam]; - } - - return self::fromArray($dsnParams); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Driver.php deleted file mode 100644 index f2f4ed7..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Driver.php +++ /dev/null @@ -1,41 +0,0 @@ -toString(); - - $username = $params['user'] ?? ''; - $password = $params['password'] ?? ''; - $driverOptions = $params['driverOptions'] ?? []; - - if (! empty($params['persistent'])) { - $connection = db2_pconnect($dataSourceName, $username, $password, $driverOptions); - } else { - $connection = db2_connect($dataSourceName, $username, $password, $driverOptions); - } - - if ($connection === false) { - throw ConnectionFailed::new(); - } - - return new Connection($connection); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/CannotCopyStreamToStream.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/CannotCopyStreamToStream.php deleted file mode 100644 index ee0aaf1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Exception/CannotCopyStreamToStream.php +++ /dev/null @@ -1,23 +0,0 @@ -statement); - - if ($row === false && db2_stmt_error($this->statement) !== '02000') { - throw StatementError::new($this->statement); - } - - return $row; - } - - public function fetchAssociative(): array|false - { - $row = @db2_fetch_assoc($this->statement); - - if ($row === false && db2_stmt_error($this->statement) !== '02000') { - throw StatementError::new($this->statement); - } - - return $row; - } - - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return FetchUtils::fetchAllNumeric($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return FetchUtils::fetchAllAssociative($this); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return FetchUtils::fetchFirstColumn($this); - } - - public function rowCount(): int - { - $numRows = @db2_num_rows($this->statement); - - if ($numRows === false) { - throw StatementError::new($this->statement); - } - - return $numRows; - } - - public function columnCount(): int - { - $count = db2_num_fields($this->statement); - - if ($count !== false) { - return $count; - } - - return 0; - } - - public function getColumnName(int $index): string - { - $name = db2_field_name($this->statement, $index); - - if ($name === false) { - throw InvalidColumnIndex::new($index); - } - - return $name; - } - - public function free(): void - { - db2_free_result($this->statement); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Statement.php deleted file mode 100644 index 96852da..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/IBMDB2/Statement.php +++ /dev/null @@ -1,156 +0,0 @@ - - */ - private array $lobs = []; - - /** - * @internal The statement can be only instantiated by its driver connection. - * - * @param resource $stmt - */ - public function __construct(private readonly mixed $stmt) - { - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - assert(is_int($param)); - - switch ($type) { - case ParameterType::INTEGER: - $this->bind($param, $value, DB2_PARAM_IN, DB2_LONG); - break; - - case ParameterType::LARGE_OBJECT: - $this->lobs[$param] = &$value; - break; - - default: - $this->bind($param, $value, DB2_PARAM_IN, DB2_CHAR); - break; - } - } - - /** @throws Exception */ - private function bind(int $position, mixed &$variable, int $parameterType, int $dataType): void - { - $this->parameters[$position] =& $variable; - - if (! db2_bind_param($this->stmt, $position, '', $parameterType, $dataType)) { - throw StatementError::new($this->stmt); - } - } - - public function execute(): Result - { - $handles = $this->bindLobs(); - - $result = @db2_execute($this->stmt, $this->parameters); - - foreach ($handles as $handle) { - fclose($handle); - } - - $this->lobs = []; - - if ($result === false) { - throw StatementError::new($this->stmt); - } - - return new Result($this->stmt); - } - - /** - * @return list - * - * @throws Exception - */ - private function bindLobs(): array - { - $handles = []; - - foreach ($this->lobs as $param => $value) { - if (is_resource($value)) { - $handle = $handles[] = $this->createTemporaryFile(); - $path = stream_get_meta_data($handle)['uri']; - - $this->copyStreamToStream($value, $handle); - - $this->bind($param, $path, DB2_PARAM_FILE, DB2_BINARY); - } else { - $this->bind($param, $value, DB2_PARAM_IN, DB2_CHAR); - } - - unset($value); - } - - return $handles; - } - - /** - * @return resource - * - * @throws Exception - */ - private function createTemporaryFile() - { - $handle = @tmpfile(); - - if ($handle === false) { - throw CannotCreateTemporaryFile::new(error_get_last()); - } - - return $handle; - } - - /** - * @param resource $source - * @param resource $target - * - * @throws Exception - */ - private function copyStreamToStream($source, $target): void - { - if (@stream_copy_to_stream($source, $target) === false) { - throw CannotCopyStreamToStream::new(error_get_last()); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware.php deleted file mode 100644 index 4629d9a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware.php +++ /dev/null @@ -1,12 +0,0 @@ -wrappedConnection->prepare($sql); - } - - public function query(string $sql): Result - { - return $this->wrappedConnection->query($sql); - } - - public function quote(string $value): string - { - return $this->wrappedConnection->quote($value); - } - - public function exec(string $sql): int|string - { - return $this->wrappedConnection->exec($sql); - } - - public function lastInsertId(): int|string - { - return $this->wrappedConnection->lastInsertId(); - } - - public function beginTransaction(): void - { - $this->wrappedConnection->beginTransaction(); - } - - public function commit(): void - { - $this->wrappedConnection->commit(); - } - - public function rollBack(): void - { - $this->wrappedConnection->rollBack(); - } - - public function getServerVersion(): string - { - return $this->wrappedConnection->getServerVersion(); - } - - /** - * {@inheritDoc} - */ - public function getNativeConnection() - { - return $this->wrappedConnection->getNativeConnection(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractDriverMiddleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractDriverMiddleware.php deleted file mode 100644 index 482f134..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractDriverMiddleware.php +++ /dev/null @@ -1,39 +0,0 @@ -wrappedDriver->connect($params); - } - - public function getDatabasePlatform(ServerVersionProvider $versionProvider): AbstractPlatform - { - return $this->wrappedDriver->getDatabasePlatform($versionProvider); - } - - public function getExceptionConverter(): ExceptionConverter - { - return $this->wrappedDriver->getExceptionConverter(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractResultMiddleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractResultMiddleware.php deleted file mode 100644 index f335c21..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractResultMiddleware.php +++ /dev/null @@ -1,85 +0,0 @@ -wrappedResult->fetchNumeric(); - } - - public function fetchAssociative(): array|false - { - return $this->wrappedResult->fetchAssociative(); - } - - public function fetchOne(): mixed - { - return $this->wrappedResult->fetchOne(); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return $this->wrappedResult->fetchAllNumeric(); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return $this->wrappedResult->fetchAllAssociative(); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return $this->wrappedResult->fetchFirstColumn(); - } - - public function rowCount(): int|string - { - return $this->wrappedResult->rowCount(); - } - - public function columnCount(): int - { - return $this->wrappedResult->columnCount(); - } - - public function getColumnName(int $index): string - { - if (! method_exists($this->wrappedResult, 'getColumnName')) { - throw new LogicException(sprintf( - 'The driver result %s does not support accessing the column name.', - get_debug_type($this->wrappedResult), - )); - } - - return $this->wrappedResult->getColumnName($index); - } - - public function free(): void - { - $this->wrappedResult->free(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractStatementMiddleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractStatementMiddleware.php deleted file mode 100644 index 6eaad50..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Middleware/AbstractStatementMiddleware.php +++ /dev/null @@ -1,26 +0,0 @@ -wrappedStatement->bindValue($param, $value, $type); - } - - public function execute(): Result - { - return $this->wrappedStatement->execute(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Connection.php deleted file mode 100644 index 27b808b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Connection.php +++ /dev/null @@ -1,114 +0,0 @@ -connection->get_server_info(); - } - - public function prepare(string $sql): Statement - { - try { - $stmt = $this->connection->prepare($sql); - } catch (mysqli_sql_exception $e) { - throw ConnectionError::upcast($e); - } - - if ($stmt === false) { - throw ConnectionError::new($this->connection); - } - - return new Statement($stmt); - } - - public function query(string $sql): Result - { - return $this->prepare($sql)->execute(); - } - - public function quote(string $value): string - { - return "'" . $this->connection->escape_string($value) . "'"; - } - - public function exec(string $sql): int|string - { - try { - $result = $this->connection->query($sql); - } catch (mysqli_sql_exception $e) { - throw ConnectionError::upcast($e); - } - - if ($result === false) { - throw ConnectionError::new($this->connection); - } - - return $this->connection->affected_rows; - } - - public function lastInsertId(): int|string - { - $lastInsertId = $this->connection->insert_id; - - if ($lastInsertId === 0) { - throw Exception\NoIdentityValue::new(); - } - - return $this->connection->insert_id; - } - - public function beginTransaction(): void - { - if (! $this->connection->begin_transaction()) { - throw ConnectionError::new($this->connection); - } - } - - public function commit(): void - { - try { - if (! $this->connection->commit()) { - throw ConnectionError::new($this->connection); - } - } catch (mysqli_sql_exception $e) { - throw ConnectionError::upcast($e); - } - } - - public function rollBack(): void - { - try { - if (! $this->connection->rollback()) { - throw ConnectionError::new($this->connection); - } - } catch (mysqli_sql_exception $e) { - throw ConnectionError::upcast($e); - } - } - - public function getNativeConnection(): mysqli - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Driver.php deleted file mode 100644 index 9855e56..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Driver.php +++ /dev/null @@ -1,117 +0,0 @@ -compilePreInitializers($params) as $initializer) { - $initializer->initialize($connection); - } - - try { - $success = @$connection->real_connect( - $host, - $params['user'] ?? '', - $params['password'] ?? '', - $params['dbname'] ?? '', - $params['port'] ?? 0, - $params['unix_socket'] ?? '', - $params['driverOptions'][Connection::OPTION_FLAGS] ?? 0, - ); - } catch (mysqli_sql_exception $e) { - throw ConnectionFailed::upcast($e); - } - - if (! $success) { - throw ConnectionFailed::new($connection); - } - - foreach ($this->compilePostInitializers($params) as $initializer) { - $initializer->initialize($connection); - } - - return new Connection($connection); - } - - /** - * @param array $params - * - * @return Generator - */ - private function compilePreInitializers( - #[SensitiveParameter] - array $params, - ): Generator { - unset($params['driverOptions'][Connection::OPTION_FLAGS]); - - if (isset($params['driverOptions']) && $params['driverOptions'] !== []) { - yield new Options($params['driverOptions']); - } - - if ( - ! isset($params['ssl_key']) && - ! isset($params['ssl_cert']) && - ! isset($params['ssl_ca']) && - ! isset($params['ssl_capath']) && - ! isset($params['ssl_cipher']) - ) { - return; - } - - yield new Secure( - $params['ssl_key'] ?? '', - $params['ssl_cert'] ?? '', - $params['ssl_ca'] ?? '', - $params['ssl_capath'] ?? '', - $params['ssl_cipher'] ?? '', - ); - } - - /** - * @param array $params - * - * @return Generator - */ - private function compilePostInitializers( - #[SensitiveParameter] - array $params, - ): Generator { - if (! isset($params['charset'])) { - return; - } - - yield new Charset($params['charset']); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionError.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionError.php deleted file mode 100644 index ccbc6cb..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionError.php +++ /dev/null @@ -1,26 +0,0 @@ -error, $connection->sqlstate, $connection->errno); - } - - public static function upcast(mysqli_sql_exception $exception): self - { - $p = new ReflectionProperty(mysqli_sql_exception::class, 'sqlstate'); - - return new self($exception->getMessage(), $p->getValue($exception), $exception->getCode(), $exception); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionFailed.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionFailed.php deleted file mode 100644 index d34aafb..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/ConnectionFailed.php +++ /dev/null @@ -1,31 +0,0 @@ -connect_error; - assert($error !== null); - - return new self($error, 'HY000', $connection->connect_errno); - } - - public static function upcast(mysqli_sql_exception $exception): self - { - $p = new ReflectionProperty(mysqli_sql_exception::class, 'sqlstate'); - - return new self($exception->getMessage(), $p->getValue($exception), $exception->getCode(), $exception); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/FailedReadingStreamOffset.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/FailedReadingStreamOffset.php deleted file mode 100644 index f20d8bc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/FailedReadingStreamOffset.php +++ /dev/null @@ -1,18 +0,0 @@ -error), - $connection->sqlstate, - $connection->errno, - ); - } - - public static function upcast(mysqli_sql_exception $exception, string $charset): self - { - $p = new ReflectionProperty(mysqli_sql_exception::class, 'sqlstate'); - - return new self( - sprintf('Failed to set charset "%s": %s', $charset, $exception->getMessage()), - $p->getValue($exception), - $exception->getCode(), - $exception, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/InvalidOption.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/InvalidOption.php deleted file mode 100644 index 1f1f7aa..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Exception/InvalidOption.php +++ /dev/null @@ -1,20 +0,0 @@ -error, $statement->sqlstate, $statement->errno); - } - - public static function upcast(mysqli_sql_exception $exception): self - { - $p = new ReflectionProperty(mysqli_sql_exception::class, 'sqlstate'); - - return new self($exception->getMessage(), $p->getValue($exception), $exception->getCode(), $exception); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer.php deleted file mode 100644 index efab67e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer.php +++ /dev/null @@ -1,14 +0,0 @@ -set_charset($this->charset); - } catch (mysqli_sql_exception $e) { - throw InvalidCharset::upcast($e, $this->charset); - } - - if ($success) { - return; - } - - throw InvalidCharset::fromCharset($connection, $this->charset); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Options.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Options.php deleted file mode 100644 index 3223951..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Options.php +++ /dev/null @@ -1,28 +0,0 @@ - $options */ - public function __construct(private readonly array $options) - { - } - - public function initialize(mysqli $connection): void - { - foreach ($this->options as $option => $value) { - if (! mysqli_options($connection, $option, $value)) { - throw InvalidOption::fromOption($option, $value); - } - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Secure.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Secure.php deleted file mode 100644 index fa819b5..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Initializer/Secure.php +++ /dev/null @@ -1,27 +0,0 @@ -ssl_set($this->key, $this->cert, $this->ca, $this->capath, $this->cipher); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Result.php deleted file mode 100644 index 89f94f3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Result.php +++ /dev/null @@ -1,177 +0,0 @@ - - */ - private readonly array $columnNames; - - /** @var mixed[] */ - private array $boundValues = []; - - /** - * @internal The result can be only instantiated by its driver connection or statement. - * - * @param Statement|null $statementReference Maintains a reference to the Statement that generated this result. This - * ensures that the lifetime of the Statement is managed in conjunction - * with its associated results, so they are destroyed together at the - * appropriate time, see {@see Statement::__destruct()}. - * - * @throws Exception - */ - public function __construct( - private readonly mysqli_stmt $statement, - private ?Statement $statementReference = null, // @phpstan-ignore property.onlyWritten - ) { - $meta = $statement->result_metadata(); - $this->hasColumns = $meta !== false; - $this->columnNames = $meta !== false ? array_column($meta->fetch_fields(), 'name') : []; - - if ($meta === false) { - return; - } - - $meta->free(); - - // Store result of every execution which has it. Otherwise it will be impossible - // to execute a new statement in case if the previous one has non-fetched rows - // @link http://dev.mysql.com/doc/refman/5.7/en/commands-out-of-sync.html - $this->statement->store_result(); - - // Bind row values _after_ storing the result. Otherwise, if mysqli is compiled with libmysql, - // it will have to allocate as much memory as it may be needed for the given column type - // (e.g. for a LONGBLOB column it's 4 gigabytes) - // @link https://bugs.php.net/bug.php?id=51386#1270673122 - // - // Make sure that the values are bound after each execution. Otherwise, if free() has been - // previously called on the result, the values are unbound making the statement unusable. - // - // It's also important that row values are bound after _each_ call to store_result(). Otherwise, - // if mysqli is compiled with libmysql, subsequently fetched string values will get truncated - // to the length of the ones fetched during the previous execution. - $this->boundValues = array_fill(0, count($this->columnNames), null); - - // The following is necessary as PHP cannot handle references to properties properly - $refs = &$this->boundValues; - - if (! $this->statement->bind_result(...$refs)) { - throw StatementError::new($this->statement); - } - } - - public function fetchNumeric(): array|false - { - try { - $ret = $this->statement->fetch(); - } catch (mysqli_sql_exception $e) { - throw StatementError::upcast($e); - } - - if ($ret === false) { - throw StatementError::new($this->statement); - } - - if ($ret === null) { - return false; - } - - $values = []; - - foreach ($this->boundValues as $v) { - $values[] = $v; - } - - return $values; - } - - public function fetchAssociative(): array|false - { - $values = $this->fetchNumeric(); - - if ($values === false) { - return false; - } - - return array_combine($this->columnNames, $values); - } - - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return FetchUtils::fetchAllNumeric($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return FetchUtils::fetchAllAssociative($this); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return FetchUtils::fetchFirstColumn($this); - } - - public function rowCount(): int|string - { - if ($this->hasColumns) { - return $this->statement->num_rows; - } - - return $this->statement->affected_rows; - } - - public function columnCount(): int - { - return $this->statement->field_count; - } - - public function getColumnName(int $index): string - { - return $this->columnNames[$index] ?? throw InvalidColumnIndex::new($index); - } - - public function free(): void - { - $this->statement->free_result(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Statement.php deleted file mode 100644 index 9a21517..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Mysqli/Statement.php +++ /dev/null @@ -1,159 +0,0 @@ -stmt->param_count; - $this->types = str_repeat(self::PARAMETER_TYPE_STRING, $paramCount); - $this->boundValues = array_fill(1, $paramCount, null); - } - - public function __destruct() - { - @$this->stmt->close(); - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - assert(is_int($param)); - - $this->types[$param - 1] = $this->convertParameterType($type); - $this->values[$param] = $value; - $this->boundValues[$param] =& $this->values[$param]; - } - - public function execute(): Result - { - if (count($this->boundValues) > 0) { - $this->bindParameters(); - } - - try { - if (! $this->stmt->execute()) { - throw StatementError::new($this->stmt); - } - } catch (mysqli_sql_exception $e) { - throw StatementError::upcast($e); - } - - return new Result($this->stmt, $this); - } - - /** - * Binds parameters with known types previously bound to the statement - * - * @throws Exception - */ - private function bindParameters(): void - { - $streams = $values = []; - $types = $this->types; - - foreach ($this->boundValues as $parameter => $value) { - assert(is_int($parameter)); - if (! isset($types[$parameter - 1])) { - $types[$parameter - 1] = self::PARAMETER_TYPE_STRING; - } - - if ($types[$parameter - 1] === self::PARAMETER_TYPE_BINARY) { - if (is_resource($value)) { - if (get_resource_type($value) !== 'stream') { - throw NonStreamResourceUsedAsLargeObject::new($parameter); - } - - $streams[$parameter] = $value; - $values[$parameter] = null; - continue; - } - - $types[$parameter - 1] = self::PARAMETER_TYPE_STRING; - } - - $values[$parameter] = $value; - } - - if (! $this->stmt->bind_param($types, ...$values)) { - throw StatementError::new($this->stmt); - } - - $this->sendLongData($streams); - } - - /** - * Handle $this->_longData after regular query parameters have been bound - * - * @param array $streams - * - * @throws Exception - */ - private function sendLongData(array $streams): void - { - foreach ($streams as $paramNr => $stream) { - while (! feof($stream)) { - $chunk = fread($stream, 8192); - - if ($chunk === false) { - throw FailedReadingStreamOffset::new($paramNr); - } - - if (! $this->stmt->send_long_data($paramNr - 1, $chunk)) { - throw StatementError::new($this->stmt); - } - } - } - } - - private function convertParameterType(ParameterType $type): string - { - return match ($type) { - ParameterType::NULL, - ParameterType::STRING, - ParameterType::ASCII, - ParameterType::BINARY => self::PARAMETER_TYPE_STRING, - ParameterType::INTEGER, - ParameterType::BOOLEAN => self::PARAMETER_TYPE_INTEGER, - ParameterType::LARGE_OBJECT => self::PARAMETER_TYPE_BINARY, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Connection.php deleted file mode 100644 index 64c210c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Connection.php +++ /dev/null @@ -1,125 +0,0 @@ -parser = new Parser(false); - $this->executionMode = new ExecutionMode(); - } - - public function getServerVersion(): string - { - $version = oci_server_version($this->connection); - assert($version !== false); - - $result = preg_match('/\s+(\d+\.\d+\.\d+\.\d+\.\d+)\s+/', $version, $matches); - assert($result === 1); - - return $matches[1]; - } - - /** - * @throws Parser\Exception - * @throws Error - */ - public function prepare(string $sql): Statement - { - $visitor = new ConvertPositionalToNamedPlaceholders(); - - $this->parser->parse($sql, $visitor); - - $statement = @oci_parse($this->connection, $visitor->getSQL()); - - if (! is_resource($statement)) { - throw Error::new($this->connection); - } - - return new Statement($this->connection, $statement, $visitor->getParameterMap(), $this->executionMode); - } - - /** - * @throws Exception - * @throws Parser\Exception - */ - public function query(string $sql): Result - { - return $this->prepare($sql)->execute(); - } - - public function quote(string $value): string - { - return "'" . addcslashes(str_replace("'", "''", $value), "\000\n\r\\\032") . "'"; - } - - /** - * @throws Exception - * @throws Parser\Exception - */ - public function exec(string $sql): int|string - { - return $this->prepare($sql)->execute()->rowCount(); - } - - public function lastInsertId(): int|string - { - throw IdentityColumnsNotSupported::new(); - } - - public function beginTransaction(): void - { - $this->executionMode->disableAutoCommit(); - } - - public function commit(): void - { - if (! @oci_commit($this->connection)) { - throw Error::new($this->connection); - } - - $this->executionMode->enableAutoCommit(); - } - - public function rollBack(): void - { - if (! oci_rollback($this->connection)) { - throw Error::new($this->connection); - } - - $this->executionMode->enableAutoCommit(); - } - - /** @return resource */ - public function getNativeConnection() - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/ConvertPositionalToNamedPlaceholders.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/ConvertPositionalToNamedPlaceholders.php deleted file mode 100644 index 5898a2c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/ConvertPositionalToNamedPlaceholders.php +++ /dev/null @@ -1,58 +0,0 @@ -). - * - * Oracle does not support positional parameters, hence this method converts all - * positional parameters into artificially named parameters. - * - * @internal This class is not covered by the backward compatibility promise - */ -final class ConvertPositionalToNamedPlaceholders implements Visitor -{ - /** @var list */ - private array $buffer = []; - - /** @var array */ - private array $parameterMap = []; - - public function acceptOther(string $sql): void - { - $this->buffer[] = $sql; - } - - public function acceptPositionalParameter(string $sql): void - { - $position = count($this->parameterMap) + 1; - $param = ':param' . $position; - - $this->parameterMap[$position] = $param; - - $this->buffer[] = $param; - } - - public function acceptNamedParameter(string $sql): void - { - $this->buffer[] = $sql; - } - - public function getSQL(): string - { - return implode('', $this->buffer); - } - - /** @return array */ - public function getParameterMap(): array - { - return $this->parameterMap; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Driver.php deleted file mode 100644 index d519cc9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Driver.php +++ /dev/null @@ -1,58 +0,0 @@ -getEasyConnectString($params); - - $persistent = ! empty($params['persistent']); - $exclusive = ! empty($params['driverOptions']['exclusive']); - - if ($persistent && $exclusive) { - throw InvalidConfiguration::forPersistentAndExclusive(); - } - - if ($persistent) { - $connection = @oci_pconnect($username, $password, $connectionString, $charset, $sessionMode); - } elseif ($exclusive) { - $connection = @oci_new_connect($username, $password, $connectionString, $charset, $sessionMode); - } else { - $connection = @oci_connect($username, $password, $connectionString, $charset, $sessionMode); - } - - if ($connection === false) { - throw ConnectionFailed::new(); - } - - return new Connection($connection); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/ConnectionFailed.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/ConnectionFailed.php deleted file mode 100644 index 691d1e3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Exception/ConnectionFailed.php +++ /dev/null @@ -1,22 +0,0 @@ -isAutoCommitEnabled = true; - } - - public function disableAutoCommit(): void - { - $this->isAutoCommitEnabled = false; - } - - public function isAutoCommitEnabled(): bool - { - return $this->isAutoCommitEnabled; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Middleware/InitializeSession.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Middleware/InitializeSession.php deleted file mode 100644 index b825a1a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Middleware/InitializeSession.php +++ /dev/null @@ -1,40 +0,0 @@ -exec( - 'ALTER SESSION SET' - . " NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'" - . " NLS_TIME_FORMAT = 'HH24:MI:SS'" - . " NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS'" - . " NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH24:MI:SS TZH:TZM'" - . " NLS_NUMERIC_CHARACTERS = '.,'", - ); - - return $connection; - } - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Result.php deleted file mode 100644 index bafd883..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Result.php +++ /dev/null @@ -1,136 +0,0 @@ -fetch(OCI_NUM); - } - - public function fetchAssociative(): array|false - { - return $this->fetch(OCI_ASSOC); - } - - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return $this->fetchAll(OCI_NUM, OCI_FETCHSTATEMENT_BY_ROW); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return $this->fetchAll(OCI_ASSOC, OCI_FETCHSTATEMENT_BY_ROW); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return $this->fetchAll(OCI_NUM, OCI_FETCHSTATEMENT_BY_COLUMN)[0]; - } - - public function rowCount(): int - { - $count = oci_num_rows($this->statement); - - if ($count !== false) { - return $count; - } - - return 0; - } - - public function columnCount(): int - { - return oci_num_fields($this->statement); - } - - public function getColumnName(int $index): string - { - // OCI expects a 1-based index while DBAL works with a O-based index. - $name = @oci_field_name($this->statement, $index + 1); - - if ($name === false) { - throw InvalidColumnIndex::new($index); - } - - return $name; - } - - public function free(): void - { - oci_cancel($this->statement); - } - - /** @throws Exception */ - private function fetch(int $mode): mixed - { - $result = oci_fetch_array($this->statement, $mode | OCI_RETURN_NULLS | OCI_RETURN_LOBS); - - if ($result === false && oci_error($this->statement) !== false) { - throw Error::new($this->statement); - } - - return $result; - } - - /** @return array */ - private function fetchAll(int $mode, int $fetchStructure): array - { - oci_fetch_all( - $this->statement, - $result, - 0, - -1, - $mode | OCI_RETURN_NULLS | $fetchStructure | OCI_RETURN_LOBS, - ); - - return $result; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Statement.php deleted file mode 100644 index 408f0dd..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/OCI8/Statement.php +++ /dev/null @@ -1,103 +0,0 @@ - $parameterMap - */ - public function __construct( - private readonly mixed $connection, - private readonly mixed $statement, - private readonly array $parameterMap, - private readonly ExecutionMode $executionMode, - ) { - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - if (is_int($param)) { - if (! isset($this->parameterMap[$param])) { - throw UnknownParameterIndex::new($param); - } - - $param = $this->parameterMap[$param]; - } - - if ($type === ParameterType::LARGE_OBJECT) { - if ($value !== null) { - $lob = oci_new_descriptor($this->connection, OCI_D_LOB); - $lob->writeTemporary($value, OCI_TEMP_BLOB); - - $value =& $lob; - } else { - $type = ParameterType::STRING; - } - } - - if ( - ! @oci_bind_by_name( - $this->statement, - $param, - $value, - -1, - $this->convertParameterType($type), - ) - ) { - throw Error::new($this->statement); - } - } - - /** - * Converts DBAL parameter type to oci8 parameter type - */ - private function convertParameterType(ParameterType $type): int - { - return match ($type) { - ParameterType::BINARY => OCI_B_BIN, - ParameterType::LARGE_OBJECT => OCI_B_BLOB, - default => SQLT_CHR, - }; - } - - public function execute(): Result - { - if ($this->executionMode->isAutoCommitEnabled()) { - $mode = OCI_COMMIT_ON_SUCCESS; - } else { - $mode = OCI_NO_AUTO_COMMIT; - } - - $ret = @oci_execute($this->statement, $mode); - if (! $ret) { - throw Error::new($this->statement); - } - - return new Result($this->statement); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Connection.php deleted file mode 100644 index b1faca1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Connection.php +++ /dev/null @@ -1,133 +0,0 @@ -setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - } - - public function exec(string $sql): int - { - try { - $result = $this->connection->exec($sql); - - assert($result !== false); - - return $result; - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function getServerVersion(): string - { - return $this->connection->getAttribute(PDO::ATTR_SERVER_VERSION); - } - - public function prepare(string $sql): Statement - { - try { - $stmt = $this->connection->prepare($sql); - assert($stmt instanceof PDOStatement); - - return new Statement($stmt); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function query(string $sql): Result - { - try { - $stmt = $this->connection->query($sql); - assert($stmt instanceof PDOStatement); - - return new Result($stmt); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function quote(string $value): string - { - return $this->connection->quote($value); - } - - public function lastInsertId(): int|string - { - try { - $value = $this->connection->lastInsertId(); - } catch (PDOException $exception) { - assert($exception->errorInfo !== null); - [$sqlState] = $exception->errorInfo; - - // if the PDO driver does not support this capability, PDO::lastInsertId() triggers an IM001 SQLSTATE - // see https://www.php.net/manual/en/pdo.lastinsertid.php - if ($sqlState === 'IM001') { - throw IdentityColumnsNotSupported::new(); - } - - // PDO PGSQL throws a 'lastval is not yet defined in this session' error when no identity value is - // available, with SQLSTATE 55000 'Object Not In Prerequisite State' - if ($sqlState === '55000' && $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME) === 'pgsql') { - throw NoIdentityValue::new($exception); - } - - throw Exception::new($exception); - } - - // pdo_mysql & pdo_sqlite return '0', pdo_sqlsrv returns '' or false depending on the PHP version - if ($value === '0' || $value === '' || $value === false) { - throw NoIdentityValue::new(); - } - - return $value; - } - - public function beginTransaction(): void - { - try { - $this->connection->beginTransaction(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function commit(): void - { - try { - $this->connection->commit(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function rollBack(): void - { - try { - $this->connection->rollBack(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function getNativeConnection(): PDO - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception.php deleted file mode 100644 index 0c0d155..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception.php +++ /dev/null @@ -1,26 +0,0 @@ -errorInfo !== null) { - [$sqlState, $code] = $exception->errorInfo; - - $code ??= 0; - } else { - $code = $exception->getCode(); - $sqlState = null; - } - - return new self($exception->getMessage(), $sqlState, $code, $exception); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception/InvalidConfiguration.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception/InvalidConfiguration.php deleted file mode 100644 index e9f0452..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Exception/InvalidConfiguration.php +++ /dev/null @@ -1,22 +0,0 @@ -doConnect( - $this->constructPdoDsn($safeParams), - $params['user'] ?? '', - $params['password'] ?? '', - $driverOptions, - ); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - return new Connection($pdo); - } - - /** - * Constructs the MySQL PDO DSN. - * - * @param mixed[] $params - */ - private function constructPdoDsn(array $params): string - { - $dsn = 'mysql:'; - if (isset($params['host']) && $params['host'] !== '') { - $dsn .= 'host=' . $params['host'] . ';'; - } - - if (isset($params['port'])) { - $dsn .= 'port=' . $params['port'] . ';'; - } - - if (isset($params['dbname'])) { - $dsn .= 'dbname=' . $params['dbname'] . ';'; - } - - if (isset($params['unix_socket'])) { - $dsn .= 'unix_socket=' . $params['unix_socket'] . ';'; - } - - if (isset($params['charset'])) { - $dsn .= 'charset=' . $params['charset'] . ';'; - } - - return $dsn; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/OCI/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/OCI/Driver.php deleted file mode 100644 index 49882b0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/OCI/Driver.php +++ /dev/null @@ -1,73 +0,0 @@ -doConnect( - $this->constructPdoDsn($params), - $params['user'] ?? '', - $params['password'] ?? '', - $driverOptions, - ); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - return new Connection($pdo); - } - - /** - * Constructs the Oracle PDO DSN. - * - * @param mixed[] $params - */ - private function constructPdoDsn(array $params): string - { - $dsn = 'oci:dbname=' . $this->getEasyConnectString($params); - - if (isset($params['charset'])) { - $dsn .= ';charset=' . $params['charset']; - } - - return $dsn; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PDOConnect.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PDOConnect.php deleted file mode 100644 index 742298d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PDOConnect.php +++ /dev/null @@ -1,27 +0,0 @@ - $options */ - private function doConnect( - string $dsn, - string $username, - string $password, - array $options, - ): PDO { - if (PHP_VERSION_ID < 80400) { - return new PDO($dsn, $username, $password, $options); - } - - return PDO::connect($dsn, $username, $password, $options); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PgSQL/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PgSQL/Driver.php deleted file mode 100644 index cdf411a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/PgSQL/Driver.php +++ /dev/null @@ -1,125 +0,0 @@ -doConnect( - $this->constructPdoDsn($safeParams), - $params['user'] ?? '', - $params['password'] ?? '', - $driverOptions, - ); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - if ( - ! isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES]) - || $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES] === true - ) { - $pdo->setAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES, true); - } - - $connection = new Connection($pdo); - - /* defining client_encoding via SET NAMES to avoid inconsistent DSN support - * - passing client_encoding via the 'options' param breaks pgbouncer support - */ - if (isset($params['charset'])) { - $connection->exec('SET NAMES \'' . $params['charset'] . '\''); - } - - return $connection; - } - - /** - * Constructs the Postgres PDO DSN. - * - * @param array $params - */ - private function constructPdoDsn(array $params): string - { - $dsn = 'pgsql:'; - - if (isset($params['host']) && $params['host'] !== '') { - $dsn .= 'host=' . $params['host'] . ';'; - } - - if (isset($params['port']) && $params['port'] !== '') { - $dsn .= 'port=' . $params['port'] . ';'; - } - - if (isset($params['dbname'])) { - $dsn .= 'dbname=' . $params['dbname'] . ';'; - } - - if (isset($params['sslmode'])) { - $dsn .= 'sslmode=' . $params['sslmode'] . ';'; - } - - if (isset($params['sslrootcert'])) { - $dsn .= 'sslrootcert=' . $params['sslrootcert'] . ';'; - } - - if (isset($params['sslcert'])) { - $dsn .= 'sslcert=' . $params['sslcert'] . ';'; - } - - if (isset($params['sslkey'])) { - $dsn .= 'sslkey=' . $params['sslkey'] . ';'; - } - - if (isset($params['sslcrl'])) { - $dsn .= 'sslcrl=' . $params['sslcrl'] . ';'; - } - - if (isset($params['application_name'])) { - $dsn .= 'application_name=' . $params['application_name'] . ';'; - } - - if (isset($params['gssencmode'])) { - $dsn .= 'gssencmode=' . $params['gssencmode'] . ';'; - } - - return $dsn; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Result.php deleted file mode 100644 index ca2ff45..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Result.php +++ /dev/null @@ -1,130 +0,0 @@ -fetch(PDO::FETCH_NUM); - } - - public function fetchAssociative(): array|false - { - return $this->fetch(PDO::FETCH_ASSOC); - } - - public function fetchOne(): mixed - { - return $this->fetch(PDO::FETCH_COLUMN); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return $this->fetchAll(PDO::FETCH_NUM); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return $this->fetchAll(PDO::FETCH_ASSOC); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return $this->fetchAll(PDO::FETCH_COLUMN); - } - - public function rowCount(): int - { - try { - return $this->statement->rowCount(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function columnCount(): int - { - try { - return $this->statement->columnCount(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - /** @throws Exception */ - public function getColumnName(int $index): string - { - try { - $meta = $this->statement->getColumnMeta($index); - } catch (ValueError $exception) { - throw InvalidColumnIndex::new($index, $exception); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - if ($meta === false) { - throw InvalidColumnIndex::new($index); - } - - return $meta['name']; - } - - public function free(): void - { - $this->statement->closeCursor(); - } - - /** - * @phpstan-param PDO::FETCH_* $mode - * - * @throws Exception - */ - private function fetch(int $mode): mixed - { - try { - return $this->statement->fetch($mode); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - /** - * @phpstan-param PDO::FETCH_* $mode - * - * @return list - * - * @throws Exception - */ - private function fetchAll(int $mode): array - { - try { - return $this->statement->fetchAll($mode); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Connection.php deleted file mode 100644 index 78ba7f8..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Connection.php +++ /dev/null @@ -1,29 +0,0 @@ -connection->prepare($sql), - ); - } - - public function getNativeConnection(): PDO - { - return $this->connection->getNativeConnection(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Driver.php deleted file mode 100644 index 2d7490b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Driver.php +++ /dev/null @@ -1,119 +0,0 @@ - $value) { - if (is_int($option)) { - $driverOptions[$option] = $value; - } else { - $dsnOptions[$option] = $value; - } - } - } - - if (! empty($params['persistent'])) { - $driverOptions[PDO::ATTR_PERSISTENT] = true; - } - - foreach (['user', 'password'] as $key) { - if (isset($params[$key]) && ! is_string($params[$key])) { - throw InvalidConfiguration::notAStringOrNull($key, $params[$key]); - } - } - - $safeParams = $params; - unset($safeParams['password']); - - try { - $pdo = $this->doConnect( - $this->constructDsn($safeParams, $dsnOptions), - $params['user'] ?? '', - $params['password'] ?? '', - $driverOptions, - ); - } catch (\PDOException $exception) { - throw PDOException::new($exception); - } - - return new Connection(new PDOConnection($pdo)); - } - - /** - * Constructs the Sqlsrv PDO DSN. - * - * @param mixed[] $params - * @param string[] $connectionOptions - * - * @throws Exception - */ - private function constructDsn(array $params, array $connectionOptions): string - { - $dsn = 'sqlsrv:server='; - - if (isset($params['host'])) { - $dsn .= $params['host']; - - if (isset($params['port'])) { - $dsn .= ',' . $params['port']; - } - } elseif (isset($params['port'])) { - throw PortWithoutHost::new(); - } - - if (isset($params['dbname'])) { - $connectionOptions['Database'] = $params['dbname']; - } - - if (isset($params['MultipleActiveResultSets'])) { - $connectionOptions['MultipleActiveResultSets'] = $params['MultipleActiveResultSets'] ? 'true' : 'false'; - } - - return $dsn . $this->getConnectionOptionsDsn($connectionOptions); - } - - /** - * Converts a connection options array to the DSN - * - * @param string[] $connectionOptions - */ - private function getConnectionOptionsDsn(array $connectionOptions): string - { - $connectionOptionsDsn = ''; - - foreach ($connectionOptions as $paramName => $paramValue) { - $connectionOptionsDsn .= sprintf(';%s=%s', $paramName, $paramValue); - } - - return $connectionOptionsDsn; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Statement.php deleted file mode 100644 index 44cecc9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLSrv/Statement.php +++ /dev/null @@ -1,46 +0,0 @@ -statement->bindParamWithDriverOptions( - $param, - $value, - $type, - PDO::SQLSRV_ENCODING_BINARY, - ); - break; - - case ParameterType::ASCII: - $this->statement->bindParamWithDriverOptions( - $param, - $value, - ParameterType::STRING, - PDO::SQLSRV_ENCODING_SYSTEM, - ); - break; - - default: - $this->statement->bindValue($param, $value, $type); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLite/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLite/Driver.php deleted file mode 100644 index fbd4187..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/SQLite/Driver.php +++ /dev/null @@ -1,65 +0,0 @@ -doConnect( - $this->constructPdoDsn(array_intersect_key($params, ['path' => true, 'memory' => true])), - $params['user'] ?? '', - $params['password'] ?? '', - $params['driverOptions'] ?? [], - ); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - return new Connection($pdo); - } - - /** - * Constructs the Sqlite PDO DSN. - * - * @param array $params - */ - private function constructPdoDsn(array $params): string - { - $dsn = 'sqlite:'; - if (isset($params['path'])) { - $dsn .= $params['path']; - } elseif (isset($params['memory'])) { - $dsn .= ':memory:'; - } - - return $dsn; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Statement.php deleted file mode 100644 index a2694fc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PDO/Statement.php +++ /dev/null @@ -1,80 +0,0 @@ -convertParamType($type); - - try { - $this->stmt->bindValue($param, $value, $pdoType); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - /** - * @internal Driver options can be only specified by a PDO-based driver. - * - * @throws ExceptionInterface - */ - public function bindParamWithDriverOptions( - string|int $param, - mixed &$variable, - ParameterType $type, - mixed $driverOptions, - ): void { - $pdoType = $this->convertParamType($type); - - try { - $this->stmt->bindParam($param, $variable, $pdoType, 0, $driverOptions); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - } - - public function execute(): Result - { - try { - $this->stmt->execute(); - } catch (PDOException $exception) { - throw Exception::new($exception); - } - - return new Result($this->stmt); - } - - /** - * Converts DBAL parameter type to PDO parameter type - * - * @phpstan-return PDO::PARAM_* - */ - private function convertParamType(ParameterType $type): int - { - return match ($type) { - ParameterType::NULL => PDO::PARAM_NULL, - ParameterType::INTEGER => PDO::PARAM_INT, - ParameterType::STRING, - ParameterType::ASCII => PDO::PARAM_STR, - ParameterType::BINARY, - ParameterType::LARGE_OBJECT => PDO::PARAM_LOB, - ParameterType::BOOLEAN => PDO::PARAM_BOOL, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Connection.php deleted file mode 100644 index 5d7a40d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Connection.php +++ /dev/null @@ -1,132 +0,0 @@ -parser = new Parser(false); - } - - public function __destruct() - { - // @phpstan-ignore isset.initializedProperty - if (! isset($this->connection)) { - return; - } - - @pg_close($this->connection); - } - - public function prepare(string $sql): Statement - { - $visitor = new ConvertParameters(); - - /** @phpstan-ignore missingType.checkedException */ - $this->parser->parse($sql, $visitor); - - $statementName = uniqid('dbal', true); - if (@pg_send_prepare($this->connection, $statementName, $visitor->getSQL()) !== true) { - throw new Exception(pg_last_error($this->connection)); - } - - $result = @pg_get_result($this->connection); - assert($result !== false); - - if ((bool) pg_result_error($result)) { - throw Exception::fromResult($result); - } - - return new Statement($this->connection, $statementName, $visitor->getParameterMap()); - } - - public function query(string $sql): Result - { - if (@pg_send_query($this->connection, $sql) !== true) { - throw new Exception(pg_last_error($this->connection)); - } - - $result = @pg_get_result($this->connection); - assert($result !== false); - - if ((bool) pg_result_error($result)) { - throw Exception::fromResult($result); - } - - return new Result($result); - } - - /** {@inheritDoc} */ - public function quote(string $value): string - { - $quotedValue = pg_escape_literal($this->connection, $value); - assert($quotedValue !== false); - - return $quotedValue; - } - - public function exec(string $sql): int - { - return $this->query($sql)->rowCount(); - } - - /** {@inheritDoc} */ - public function lastInsertId(): int|string - { - try { - return $this->query('SELECT LASTVAL()')->fetchOne(); - } catch (Exception $exception) { - if ($exception->getSQLState() === '55000') { - throw NoIdentityValue::new($exception); - } - - throw $exception; - } - } - - public function beginTransaction(): void - { - $this->exec('BEGIN'); - } - - public function commit(): void - { - $this->exec('COMMIT'); - } - - public function rollBack(): void - { - $this->exec('ROLLBACK'); - } - - public function getServerVersion(): string - { - return (string) pg_version($this->connection)['server']; - } - - public function getNativeConnection(): PgSqlConnection - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/ConvertParameters.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/ConvertParameters.php deleted file mode 100644 index 795f12d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/ConvertParameters.php +++ /dev/null @@ -1,49 +0,0 @@ - */ - private array $buffer = []; - - /** @var array */ - private array $parameterMap = []; - - public function acceptPositionalParameter(string $sql): void - { - $position = count($this->parameterMap) + 1; - $this->parameterMap[$position] = $position; - $this->buffer[] = '$' . $position; - } - - public function acceptNamedParameter(string $sql): void - { - $position = count($this->parameterMap) + 1; - $this->parameterMap[$sql] = $position; - $this->buffer[] = '$' . $position; - } - - public function acceptOther(string $sql): void - { - $this->buffer[] = $sql; - } - - public function getSQL(): string - { - return implode('', $this->buffer); - } - - /** @return array */ - public function getParameterMap(): array - { - return $this->parameterMap; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Driver.php deleted file mode 100644 index 6bdcb60..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Driver.php +++ /dev/null @@ -1,98 +0,0 @@ -constructConnectionString($params), PGSQL_CONNECT_FORCE_NEW); - } catch (ErrorException $e) { - throw new Exception($e->getMessage(), '08006', 0, $e); - } finally { - restore_error_handler(); - } - - if ($connection === false) { - throw new Exception('Unable to connect to Postgres server.'); - } - - $driverConnection = new Connection($connection); - - if (isset($params['application_name'])) { - $driverConnection->exec('SET application_name = ' . $driverConnection->quote($params['application_name'])); - } - - return $driverConnection; - } - - /** - * Constructs the Postgres connection string - * - * @param array $params - */ - private function constructConnectionString( - #[SensitiveParameter] - array $params, - ): string { - // pg_connect used by Doctrine DBAL does not support [...] notation, - // but requires the host address in plain form like `aa:bb:99...` - $matches = []; - if (isset($params['host']) && preg_match('/^\[(.+)\]$/', $params['host'], $matches) === 1) { - $params['hostaddr'] = $matches[1]; - unset($params['host']); - } - - $components = array_filter( - [ - 'host' => $params['host'] ?? null, - 'hostaddr' => $params['hostaddr'] ?? null, - 'port' => $params['port'] ?? null, - 'dbname' => $params['dbname'] ?? 'postgres', - 'user' => $params['user'] ?? null, - 'password' => $params['password'] ?? null, - 'sslmode' => $params['sslmode'] ?? null, - 'gssencmode' => $params['gssencmode'] ?? null, - ], - static fn (int|string|null $value) => $value !== '' && $value !== null, - ); - - return implode(' ', array_map( - static fn (int|string $value, string $key) => sprintf("%s='%s'", $key, addslashes((string) $value)), - array_values($components), - array_keys($components), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception.php deleted file mode 100644 index 91f4e3d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Exception.php +++ /dev/null @@ -1,27 +0,0 @@ -result = $result; - } - - public function __destruct() - { - if (! isset($this->result)) { - return; - } - - $this->free(); - } - - /** {@inheritDoc} */ - public function fetchNumeric(): array|false - { - if ($this->result === null) { - return false; - } - - $row = pg_fetch_row($this->result); - if ($row === false) { - return false; - } - - return $this->mapNumericRow($row, $this->fetchNumericColumnTypes()); - } - - /** {@inheritDoc} */ - public function fetchAssociative(): array|false - { - if ($this->result === null) { - return false; - } - - $row = pg_fetch_assoc($this->result); - if ($row === false) { - return false; - } - - return $this->mapAssociativeRow($row, $this->fetchAssociativeColumnTypes()); - } - - /** {@inheritDoc} */ - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** {@inheritDoc} */ - public function fetchAllNumeric(): array - { - if ($this->result === null) { - return []; - } - - $types = $this->fetchNumericColumnTypes(); - - return array_map( - fn (array $row) => $this->mapNumericRow($row, $types), - pg_fetch_all($this->result, PGSQL_NUM), - ); - } - - /** {@inheritDoc} */ - public function fetchAllAssociative(): array - { - if ($this->result === null) { - return []; - } - - $types = $this->fetchAssociativeColumnTypes(); - - return array_map( - fn (array $row) => $this->mapAssociativeRow($row, $types), - pg_fetch_all($this->result, PGSQL_ASSOC), - ); - } - - /** {@inheritDoc} */ - public function fetchFirstColumn(): array - { - if ($this->result === null) { - return []; - } - - $postgresType = pg_field_type($this->result, 0); - - return array_map( - fn ($value) => $this->mapType($postgresType, $value), - pg_fetch_all_columns($this->result), - ); - } - - public function rowCount(): int - { - if ($this->result === null) { - return 0; - } - - return pg_affected_rows($this->result); - } - - public function columnCount(): int - { - if ($this->result === null) { - return 0; - } - - return pg_num_fields($this->result); - } - - public function getColumnName(int $index): string - { - if ($this->result === null) { - throw InvalidColumnIndex::new($index); - } - - try { - return pg_field_name($this->result, $index); - } catch (ValueError) { - throw InvalidColumnIndex::new($index); - } - } - - public function free(): void - { - if ($this->result === null) { - return; - } - - pg_free_result($this->result); - $this->result = null; - } - - /** @return array */ - private function fetchNumericColumnTypes(): array - { - assert($this->result !== null); - - $types = []; - $numFields = pg_num_fields($this->result); - for ($i = 0; $i < $numFields; ++$i) { - $types[$i] = pg_field_type($this->result, $i); - } - - return $types; - } - - /** @return array */ - private function fetchAssociativeColumnTypes(): array - { - assert($this->result !== null); - - $types = []; - $numFields = pg_num_fields($this->result); - for ($i = 0; $i < $numFields; ++$i) { - $types[pg_field_name($this->result, $i)] = pg_field_type($this->result, $i); - } - - return $types; - } - - /** - * @param list $row - * @param array $types - * - * @return list - */ - private function mapNumericRow(array $row, array $types): array - { - assert($this->result !== null); - - return array_map( - fn ($value, $field) => $this->mapType($types[$field], $value), - $row, - array_keys($row), - ); - } - - /** - * @param array $row - * @param array $types - * - * @return array - */ - private function mapAssociativeRow(array $row, array $types): array - { - assert($this->result !== null); - - $mappedRow = []; - foreach ($row as $field => $value) { - $mappedRow[$field] = $this->mapType($types[$field], $value); - } - - return $mappedRow; - } - - private function mapType(string $postgresType, ?string $value): string|int|float|bool|null - { - if ($value === null) { - return null; - } - - return match ($postgresType) { - 'bool' => match ($value) { - 't' => true, - 'f' => false, - default => throw UnexpectedValue::new($value, $postgresType), - }, - 'bytea' => hex2bin(substr($value, 2)), - 'float4', 'float8' => (float) $value, - 'int2', 'int4' => (int) $value, - 'int8' => PHP_INT_SIZE >= 8 ? (int) $value : $value, - default => $value, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Statement.php deleted file mode 100644 index 0810d98..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/PgSQL/Statement.php +++ /dev/null @@ -1,97 +0,0 @@ - */ - private array $parameters = []; - - /** @phpstan-var array */ - private array $parameterTypes = []; - - /** @param array $parameterMap */ - public function __construct( - private readonly PgSqlConnection $connection, - private readonly string $name, - private readonly array $parameterMap, - ) { - } - - public function __destruct() - { - // @phpstan-ignore isset.initializedProperty - if (! isset($this->connection)) { - return; - } - - @pg_query( - $this->connection, - 'DEALLOCATE ' . pg_escape_identifier($this->connection, $this->name), - ); - } - - /** {@inheritDoc} */ - public function bindValue(int|string $param, mixed $value, ParameterType $type = ParameterType::STRING): void - { - if (! isset($this->parameterMap[$param])) { - throw UnknownParameter::new((string) $param); - } - - if ($type === ParameterType::BOOLEAN) { - $this->parameters[$this->parameterMap[$param]] = (bool) $value === false ? 'f' : 't'; - $this->parameterTypes[$this->parameterMap[$param]] = ParameterType::STRING; - } else { - $this->parameters[$this->parameterMap[$param]] = $value; - $this->parameterTypes[$this->parameterMap[$param]] = $type; - } - } - - /** {@inheritDoc} */ - public function execute(): Result - { - ksort($this->parameters); - - $escapedParameters = []; - foreach ($this->parameters as $parameter => $value) { - $escapedParameters[] = match ($this->parameterTypes[$parameter]) { - ParameterType::BINARY, ParameterType::LARGE_OBJECT => $value === null - ? null - : pg_escape_bytea($this->connection, is_resource($value) ? stream_get_contents($value) : $value), - default => $value, - }; - } - - if (@pg_send_execute($this->connection, $this->name, $escapedParameters) !== true) { - throw new Exception(pg_last_error($this->connection)); - } - - $result = @pg_get_result($this->connection); - assert($result !== false); - - if ((bool) pg_result_error($result)) { - throw Exception::fromResult($result); - } - - return new Result($result); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Result.php deleted file mode 100644 index c26e38c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Result.php +++ /dev/null @@ -1,95 +0,0 @@ -|false - * - * @throws Exception - */ - public function fetchNumeric(): array|false; - - /** - * Returns the next row of the result as an associative array or FALSE if there are no more rows. - * - * @return array|false - * - * @throws Exception - */ - public function fetchAssociative(): array|false; - - /** - * Returns the first value of the next row of the result or FALSE if there are no more rows. - * - * @throws Exception - */ - public function fetchOne(): mixed; - - /** - * Returns an array containing all of the result rows represented as numeric arrays. - * - * @return list> - * - * @throws Exception - */ - public function fetchAllNumeric(): array; - - /** - * Returns an array containing all of the result rows represented as associative arrays. - * - * @return list> - * - * @throws Exception - */ - public function fetchAllAssociative(): array; - - /** - * Returns an array containing the values of the first column of the result. - * - * @return list - * - * @throws Exception - */ - public function fetchFirstColumn(): array; - - /** - * Returns the number of rows affected by the DELETE, INSERT, or UPDATE statement that produced the result. - * - * If the statement executed a SELECT query or a similar platform-specific SQL (e.g. DESCRIBE, SHOW, etc.), - * some database drivers may return the number of rows returned by that query. However, this behaviour - * is not guaranteed for all drivers and should not be relied on in portable applications. - * - * If the number of rows exceeds {@see PHP_INT_MAX}, it might be returned as string if the driver supports it. - * - * @return int|numeric-string - * - * @throws Exception - */ - public function rowCount(): int|string; - - /** - * Returns the number of columns in the result - * - * @return int The number of columns in the result. If the columns cannot be counted, - * this method must return 0. - * - * @throws Exception - */ - public function columnCount(): int; - - /** - * Discards the non-fetched portion of the result, enabling the originating statement to be executed again. - */ - public function free(): void; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Connection.php deleted file mode 100644 index 71050f1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Connection.php +++ /dev/null @@ -1,108 +0,0 @@ -connection); - - return $serverInfo['SQLServerVersion']; - } - - public function prepare(string $sql): Statement - { - return new Statement($this->connection, $sql); - } - - public function query(string $sql): Result - { - return $this->prepare($sql)->execute(); - } - - public function quote(string $value): string - { - return "'" . str_replace("'", "''", $value) . "'"; - } - - public function exec(string $sql): int - { - $stmt = sqlsrv_query($this->connection, $sql); - - if ($stmt === false) { - throw Error::new(); - } - - $rowsAffected = sqlsrv_rows_affected($stmt); - - if ($rowsAffected === false) { - throw Error::new(); - } - - return $rowsAffected; - } - - public function lastInsertId(): int|string - { - $result = $this->query('SELECT @@IDENTITY'); - - $lastInsertId = $result->fetchOne(); - - if ($lastInsertId === null) { - throw NoIdentityValue::new(); - } - - return $lastInsertId; - } - - public function beginTransaction(): void - { - if (! sqlsrv_begin_transaction($this->connection)) { - throw Error::new(); - } - } - - public function commit(): void - { - if (! sqlsrv_commit($this->connection)) { - throw Error::new(); - } - } - - public function rollBack(): void - { - if (! sqlsrv_rollback($this->connection)) { - throw Error::new(); - } - } - - /** @return resource */ - public function getNativeConnection() - { - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Driver.php deleted file mode 100644 index c9c2c34..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Driver.php +++ /dev/null @@ -1,73 +0,0 @@ -fetch(SQLSRV_FETCH_NUMERIC); - } - - public function fetchAssociative(): array|false - { - return $this->fetch(SQLSRV_FETCH_ASSOC); - } - - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return FetchUtils::fetchAllNumeric($this); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return FetchUtils::fetchAllAssociative($this); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return FetchUtils::fetchFirstColumn($this); - } - - public function rowCount(): int - { - $count = sqlsrv_rows_affected($this->statement); - - if ($count !== false) { - return $count; - } - - return 0; - } - - public function columnCount(): int - { - $count = sqlsrv_num_fields($this->statement); - - if ($count !== false) { - return $count; - } - - return 0; - } - - public function getColumnName(int $index): string - { - $meta = sqlsrv_field_metadata($this->statement); - - if ($meta === false || ! isset($meta[$index])) { - throw InvalidColumnIndex::new($index); - } - - return $meta[$index]['Name']; - } - - public function free(): void - { - // emulate it by fetching and discarding rows, similarly to what PDO does in this case - // @link http://php.net/manual/en/pdostatement.closecursor.php - // @link https://github.com/php/php-src/blob/php-7.0.11/ext/pdo/pdo_stmt.c#L2075 - // deliberately do not consider multiple result sets, since doctrine/dbal doesn't support them - while (sqlsrv_fetch($this->statement) === true) { - } - } - - private function fetch(int $fetchType): mixed - { - return sqlsrv_fetch_array($this->statement, $fetchType) ?? false; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Statement.php deleted file mode 100644 index dc7827a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLSrv/Statement.php +++ /dev/null @@ -1,140 +0,0 @@ - - */ - private array $variables = []; - - /** - * Bound parameter types. - * - * @var array - */ - private array $types = []; - - /** - * Append to any INSERT query to retrieve the last insert id. - */ - private const LAST_INSERT_ID_SQL = ';SELECT SCOPE_IDENTITY() AS LastInsertId;'; - - /** - * @internal The statement can be only instantiated by its driver connection. - * - * @param resource $conn - */ - public function __construct( - private readonly mixed $conn, - private string $sql, - ) { - if (stripos($sql, 'INSERT INTO ') !== 0) { - return; - } - - $this->sql .= self::LAST_INSERT_ID_SQL; - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - assert(is_int($param)); - - $this->variables[$param] = $value; - $this->types[$param] = $type; - } - - public function execute(): Result - { - $this->stmt ??= $this->prepare(); - - if (! sqlsrv_execute($this->stmt)) { - throw Error::new(); - } - - return new Result($this->stmt); - } - - /** - * Prepares SQL Server statement resource - * - * @return resource - * - * @throws Exception - */ - private function prepare() - { - $params = []; - - foreach ($this->variables as $column => &$variable) { - switch ($this->types[$column]) { - case ParameterType::LARGE_OBJECT: - $params[$column - 1] = [ - &$variable, - SQLSRV_PARAM_IN, - SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY), - SQLSRV_SQLTYPE_VARBINARY('max'), - ]; - break; - - case ParameterType::BINARY: - $params[$column - 1] = [ - &$variable, - SQLSRV_PARAM_IN, - SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_BINARY), - ]; - break; - - case ParameterType::ASCII: - $params[$column - 1] = [ - &$variable, - SQLSRV_PARAM_IN, - SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR), - ]; - break; - - default: - $params[$column - 1] =& $variable; - break; - } - } - - $stmt = sqlsrv_prepare($this->conn, $this->sql, $params); - - if ($stmt === false) { - throw Error::new(); - } - - return $stmt; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php deleted file mode 100644 index 1e9af93..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php +++ /dev/null @@ -1,109 +0,0 @@ -connection->prepare($sql); - } catch (\Exception $e) { - throw Exception::new($e); - } - - assert($statement !== false); - - return new Statement($this->connection, $statement); - } - - public function query(string $sql): Result - { - try { - $result = $this->connection->query($sql); - } catch (\Exception $e) { - throw Exception::new($e); - } - - assert($result !== false); - - return new Result($result, $this->connection->changes()); - } - - public function quote(string $value): string - { - return sprintf('\'%s\'', SQLite3::escapeString($value)); - } - - public function exec(string $sql): int - { - try { - $this->connection->exec($sql); - } catch (\Exception $e) { - throw Exception::new($e); - } - - return $this->connection->changes(); - } - - public function lastInsertId(): int - { - $value = $this->connection->lastInsertRowID(); - if ($value === 0) { - throw NoIdentityValue::new(); - } - - return $value; - } - - public function beginTransaction(): void - { - try { - $this->connection->exec('BEGIN'); - } catch (\Exception $e) { - throw Exception::new($e); - } - } - - public function commit(): void - { - try { - $this->connection->exec('COMMIT'); - } catch (\Exception $e) { - throw Exception::new($e); - } - } - - public function rollBack(): void - { - try { - $this->connection->exec('ROLLBACK'); - } catch (\Exception $e) { - throw Exception::new($e); - } - } - - public function getNativeConnection(): SQLite3 - { - return $this->connection; - } - - public function getServerVersion(): string - { - return SQLite3::version()['versionString']; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php deleted file mode 100644 index e6996d3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php +++ /dev/null @@ -1,48 +0,0 @@ -enableExceptions(true); - - return new Connection($connection); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php deleted file mode 100644 index be1a225..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php +++ /dev/null @@ -1,16 +0,0 @@ -getMessage(), null, (int) $exception->getCode(), $exception); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php deleted file mode 100644 index 601c026..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php +++ /dev/null @@ -1,104 +0,0 @@ -result = $result; - } - - public function fetchNumeric(): array|false - { - if ($this->result === null) { - return false; - } - - return $this->result->fetchArray(SQLITE3_NUM); - } - - public function fetchAssociative(): array|false - { - if ($this->result === null) { - return false; - } - - return $this->result->fetchArray(SQLITE3_ASSOC); - } - - public function fetchOne(): mixed - { - return FetchUtils::fetchOne($this); - } - - /** @inheritDoc */ - public function fetchAllNumeric(): array - { - return FetchUtils::fetchAllNumeric($this); - } - - /** @inheritDoc */ - public function fetchAllAssociative(): array - { - return FetchUtils::fetchAllAssociative($this); - } - - /** @inheritDoc */ - public function fetchFirstColumn(): array - { - return FetchUtils::fetchFirstColumn($this); - } - - public function rowCount(): int - { - return $this->changes; - } - - public function columnCount(): int - { - if ($this->result === null) { - return 0; - } - - return $this->result->numColumns(); - } - - public function getColumnName(int $index): string - { - if ($this->result === null) { - throw InvalidColumnIndex::new($index); - } - - $name = $this->result->columnName($index); - - if ($name === false) { - throw InvalidColumnIndex::new($index); - } - - return $name; - } - - public function free(): void - { - if ($this->result === null) { - return; - } - - $this->result->finalize(); - $this->result = null; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php deleted file mode 100644 index eb55667..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php +++ /dev/null @@ -1,61 +0,0 @@ -statement->bindValue($param, $value, $this->convertParamType($type)); - } - - public function execute(): Result - { - try { - $result = $this->statement->execute(); - } catch (\Exception $e) { - throw Exception::new($e); - } - - assert($result !== false); - - return new Result($result, $this->connection->changes()); - } - - /** @phpstan-return self::TYPE_* */ - private function convertParamType(ParameterType $type): int - { - return match ($type) { - ParameterType::NULL => self::TYPE_NULL, - ParameterType::INTEGER, ParameterType::BOOLEAN => self::TYPE_INTEGER, - ParameterType::STRING, ParameterType::ASCII => self::TYPE_TEXT, - ParameterType::BINARY, ParameterType::LARGE_OBJECT => self::TYPE_BLOB, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Driver/Statement.php deleted file mode 100644 index 5f91b49..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Driver/Statement.php +++ /dev/null @@ -1,39 +0,0 @@ -, - * driver?: key-of, - * driverClass?: class-string, - * driverOptions?: array, - * host?: string, - * memory?: bool, - * password?: string, - * path?: string, - * persistent?: bool, - * port?: int, - * serverVersion?: string, - * sessionMode?: int, - * user?: string, - * unix_socket?: string, - * wrapperClass?: class-string, - * } - * @phpstan-type Params = array{ - * application_name?: string, - * charset?: string, - * dbname?: string, - * defaultTableOptions?: array, - * driver?: key-of, - * driverClass?: class-string, - * driverOptions?: array, - * host?: string, - * keepReplica?: bool, - * memory?: bool, - * password?: string, - * path?: string, - * persistent?: bool, - * port?: int, - * primary?: OverrideParams, - * replica?: array, - * serverVersion?: string, - * sessionMode?: int, - * user?: string, - * wrapperClass?: class-string, - * unix_socket?: string, - * } - */ -final class DriverManager -{ - /** - * List of supported drivers and their mappings to the driver classes. - * - * To add your own driver use the 'driverClass' parameter to {@see DriverManager::getConnection()}. - */ - private const DRIVER_MAP = [ - 'pdo_mysql' => PDO\MySQL\Driver::class, - 'pdo_sqlite' => PDO\SQLite\Driver::class, - 'pdo_pgsql' => PDO\PgSQL\Driver::class, - 'pdo_oci' => PDO\OCI\Driver::class, - 'oci8' => OCI8\Driver::class, - 'ibm_db2' => IBMDB2\Driver::class, - 'pdo_sqlsrv' => PDO\SQLSrv\Driver::class, - 'mysqli' => Mysqli\Driver::class, - 'pgsql' => PgSQL\Driver::class, - 'sqlsrv' => SQLSrv\Driver::class, - 'sqlite3' => SQLite3\Driver::class, - ]; - - /** - * Private constructor. This class cannot be instantiated. - * - * @codeCoverageIgnore - */ - private function __construct() - { - } - - /** - * Creates a connection object based on the specified parameters. - * This method returns a Doctrine\DBAL\Connection which wraps the underlying - * driver connection. - * - * $params must contain at least one of the following. - * - * Either 'driver' with one of the array keys of {@see DRIVER_MAP}, - * OR 'driverClass' that contains the full class name (with namespace) of the - * driver class to instantiate. - * - * Other (optional) parameters: - * - * user (string): - * The username to use when connecting. - * - * password (string): - * The password to use when connecting. - * - * driverOptions (array): - * Any additional driver-specific options for the driver. These are just passed - * through to the driver. - * - * wrapperClass: - * You may specify a custom wrapper class through the 'wrapperClass' - * parameter but this class MUST inherit from Doctrine\DBAL\Connection. - * - * driverClass: - * The driver class to use. - * - * @param Configuration|null $config The configuration to use. - * @phpstan-param Params $params - * - * @phpstan-return ($params is array{wrapperClass: class-string} ? T : Connection) - * - * @template T of Connection - */ - public static function getConnection( - #[SensitiveParameter] - array $params, - ?Configuration $config = null, - ): Connection { - $config ??= new Configuration(); - $driver = self::createDriver($params['driver'] ?? null, $params['driverClass'] ?? null); - - foreach ($config->getMiddlewares() as $middleware) { - $driver = $middleware->wrap($driver); - } - - /** @var class-string $wrapperClass */ - $wrapperClass = $params['wrapperClass'] ?? Connection::class; - if (! is_a($wrapperClass, Connection::class, true)) { - throw InvalidWrapperClass::new($wrapperClass); - } - - return new $wrapperClass($params, $driver, $config); - } - - /** - * Returns the list of supported drivers. - * - * @return string[] - * @phpstan-return list> - */ - public static function getAvailableDrivers(): array - { - return array_keys(self::DRIVER_MAP); - } - - /** - * @param class-string|null $driverClass - * @param key-of|null $driver - */ - private static function createDriver(?string $driver, ?string $driverClass): Driver - { - if ($driverClass === null) { - if ($driver === null) { - throw DriverRequired::new(); - } - - if (! isset(self::DRIVER_MAP[$driver])) { - throw UnknownDriver::new($driver, array_keys(self::DRIVER_MAP)); - } - - $driverClass = self::DRIVER_MAP[$driver]; - } elseif (! is_a($driverClass, Driver::class, true)) { - throw InvalidDriverClass::new($driverClass); - } - - return new $driverClass(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/Exception.php deleted file mode 100644 index 304fb6b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Exception.php +++ /dev/null @@ -1,11 +0,0 @@ -getMessage(); - } else { - $message = 'An exception occurred in the driver: ' . $driverException->getMessage(); - } - - parent::__construct($message, $driverException->getCode(), $driverException); - } - - public function getSQLState(): ?string - { - $previous = $this->getPrevious(); - assert($previous instanceof Driver\Exception); - - return $previous->getSQLState(); - } - - public function getQuery(): ?Query - { - return $this->query; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Exception/DriverRequired.php b/projects/priceservice/vendor/doctrine/dbal/src/Exception/DriverRequired.php deleted file mode 100644 index 883f233..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Exception/DriverRequired.php +++ /dev/null @@ -1,29 +0,0 @@ - */ - private array $convertedSQL = []; - - /** @var list */ - private array $convertedParameters = []; - - /** @var array,string|ParameterType|Type> */ - private array $convertedTypes = []; - - /** - * @param array|array $parameters - * @phpstan-param WrapperParameterTypeArray $types - */ - public function __construct( - private readonly array $parameters, - private readonly array $types, - ) { - } - - public function acceptPositionalParameter(string $sql): void - { - $index = $this->originalParameterIndex; - - if (! array_key_exists($index, $this->parameters)) { - throw MissingPositionalParameter::new($index); - } - - $this->acceptParameter($index, $this->parameters[$index]); - - $this->originalParameterIndex++; - } - - public function acceptNamedParameter(string $sql): void - { - $name = substr($sql, 1); - - if (! array_key_exists($name, $this->parameters)) { - throw MissingNamedParameter::new($name); - } - - $this->acceptParameter($name, $this->parameters[$name]); - } - - public function acceptOther(string $sql): void - { - $this->convertedSQL[] = $sql; - } - - public function getSQL(): string - { - return implode('', $this->convertedSQL); - } - - /** @return list */ - public function getParameters(): array - { - return $this->convertedParameters; - } - - private function acceptParameter(int|string $key, mixed $value): void - { - if (! isset($this->types[$key])) { - $this->convertedSQL[] = '?'; - $this->convertedParameters[] = $value; - - return; - } - - $type = $this->types[$key]; - - if (! $type instanceof ArrayParameterType) { - $this->appendTypedParameter([$value], $type); - - return; - } - - if (count($value) === 0) { - $this->convertedSQL[] = 'NULL'; - - return; - } - - $this->appendTypedParameter($value, ArrayParameterType::toElementParameterType($type)); - } - - /** @return array,string|ParameterType|Type> */ - public function getTypes(): array - { - return $this->convertedTypes; - } - - /** @param list $values */ - private function appendTypedParameter(array $values, string|ParameterType|Type $type): void - { - $this->convertedSQL[] = implode(', ', array_fill(0, count($values), '?')); - - $index = count($this->convertedParameters); - - foreach ($values as $value) { - $this->convertedParameters[] = $value; - $this->convertedTypes[$index] = $type; - - $index++; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/LockMode.php b/projects/priceservice/vendor/doctrine/dbal/src/LockMode.php deleted file mode 100644 index 035353e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/LockMode.php +++ /dev/null @@ -1,16 +0,0 @@ -logger->info('Disconnecting'); - } - - public function prepare(string $sql): DriverStatement - { - return new Statement( - parent::prepare($sql), - $this->logger, - $sql, - ); - } - - public function query(string $sql): Result - { - $this->logger->debug('Executing query: {sql}', ['sql' => $sql]); - - return parent::query($sql); - } - - public function exec(string $sql): int|string - { - $this->logger->debug('Executing statement: {sql}', ['sql' => $sql]); - - return parent::exec($sql); - } - - public function beginTransaction(): void - { - $this->logger->debug('Beginning transaction'); - - parent::beginTransaction(); - } - - public function commit(): void - { - $this->logger->debug('Committing transaction'); - - parent::commit(); - } - - public function rollBack(): void - { - $this->logger->debug('Rolling back transaction'); - - parent::rollBack(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Logging/Driver.php deleted file mode 100644 index 35acd39..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Driver.php +++ /dev/null @@ -1,50 +0,0 @@ -logger->info('Connecting with parameters {params}', ['params' => $this->maskPassword($params)]); - - return new Connection( - parent::connect($params), - $this->logger, - ); - } - - /** - * @param array $params Connection parameters - * - * @return array - */ - private function maskPassword( - #[SensitiveParameter] - array $params, - ): array { - if (isset($params['password'])) { - $params['password'] = ''; - } - - return $params; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Middleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Logging/Middleware.php deleted file mode 100644 index 989e0ca..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Middleware.php +++ /dev/null @@ -1,21 +0,0 @@ -logger); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Logging/Statement.php deleted file mode 100644 index ed1ca7f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Logging/Statement.php +++ /dev/null @@ -1,48 +0,0 @@ -|array */ - private array $params = []; - - /** @var array|array */ - private array $types = []; - - /** @internal This statement can be only instantiated by its connection. */ - public function __construct( - StatementInterface $statement, - private readonly LoggerInterface $logger, - private readonly string $sql, - ) { - parent::__construct($statement); - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - $this->params[$param] = $value; - $this->types[$param] = $type; - - parent::bindValue($param, $value, $type); - } - - public function execute(): ResultInterface - { - $this->logger->debug('Executing statement: {sql} (parameters: {params}, types: {types})', [ - 'sql' => $this->sql, - 'params' => $this->params, - 'types' => $this->types, - ]); - - return parent::execute(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ParameterType.php b/projects/priceservice/vendor/doctrine/dbal/src/ParameterType.php deleted file mode 100644 index 19f577e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ParameterType.php +++ /dev/null @@ -1,46 +0,0 @@ - 0) { - $query .= sprintf(' OFFSET %d', $offset); - } - } elseif ($offset > 0) { - // 2^64-1 is the maximum of unsigned BIGINT, the biggest limit possible - $query .= sprintf(' LIMIT 18446744073709551615 OFFSET %d', $offset); - } - - return $query; - } - - public function quoteSingleIdentifier(string $str): string - { - return '`' . str_replace('`', '``', $str) . '`'; - } - - public function getRegexpExpression(): string - { - return 'RLIKE'; - } - - public function getLocateExpression(string $string, string $substring, ?string $start = null): string - { - if ($start === null) { - return sprintf('LOCATE(%s, %s)', $substring, $string); - } - - return sprintf('LOCATE(%s, %s, %s)', $substring, $string, $start); - } - - public function getConcatExpression(string ...$string): string - { - return sprintf('CONCAT(%s)', implode(', ', $string)); - } - - protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string { - $function = $operator === '+' ? 'DATE_ADD' : 'DATE_SUB'; - - return $function . '(' . $date . ', INTERVAL ' . $interval . ' ' . $unit->value . ')'; - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return 'DATEDIFF(' . $date1 . ', ' . $date2 . ')'; - } - - public function getCurrentDatabaseExpression(): string - { - return 'DATABASE()'; - } - - public function getLengthExpression(string $string): string - { - return 'CHAR_LENGTH(' . $string . ')'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListDatabasesSQL(): string - { - return 'SHOW DATABASES'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return 'SELECT * FROM information_schema.VIEWS WHERE TABLE_SCHEMA = ' . $this->quoteStringLiteral($database); - } - - /** - * {@inheritDoc} - */ - public function getJsonTypeDeclarationSQL(array $column): string - { - if (! empty($column['jsonb'])) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6939', - 'The "jsonb" column platform option is deprecated. Use the "JSONB" type instead.', - ); - } - - return 'JSON'; - } - - /** - * Gets the SQL snippet used to declare a CLOB column type. - * TINYTEXT : 2 ^ 8 - 1 = 255 - * TEXT : 2 ^ 16 - 1 = 65535 - * MEDIUMTEXT : 2 ^ 24 - 1 = 16777215 - * LONGTEXT : 2 ^ 32 - 1 = 4294967295 - * - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - if (! empty($column['length']) && is_numeric($column['length'])) { - $length = $column['length']; - - if ($length <= static::LENGTH_LIMIT_TINYTEXT) { - return 'TINYTEXT'; - } - - if ($length <= static::LENGTH_LIMIT_TEXT) { - return 'TEXT'; - } - - if ($length <= static::LENGTH_LIMIT_MEDIUMTEXT) { - return 'MEDIUMTEXT'; - } - } - - return 'LONGTEXT'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - if (isset($column['version']) && $column['version'] === true) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6940', - 'The "version" column platform option is deprecated.', - ); - - return 'TIMESTAMP'; - } - - return 'DATETIME'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'TIME'; - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'TINYINT(1)'; - } - - /** - * {@inheritDoc} - * - * MySQL supports this through AUTO_INCREMENT columns. - */ - public function supportsIdentityColumns(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsInlineColumnComments(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsColumnCollation(): bool - { - return true; - } - - /** - * The SQL snippet required to elucidate a column type - * - * Returns a column type SELECT snippet string - * - * @internal The method should be only used from within the {@see MySQLSchemaManager} class hierarchy. - */ - public function getColumnTypeSQLSnippet(string $tableAlias, string $databaseName): string - { - return $tableAlias . '.DATA_TYPE'; - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $queryFields = $this->getColumnDeclarationListSQL($columns); - - if (! empty($options['uniqueConstraints'])) { - foreach ($options['uniqueConstraints'] as $definition) { - $queryFields .= ', ' . $this->getUniqueConstraintDeclarationSQL($definition); - } - } - - // add all indexes - if (! empty($options['indexes'])) { - foreach ($options['indexes'] as $definition) { - $queryFields .= ', ' . $this->getIndexDeclarationSQL($definition); - } - } - - // attach all primary keys - if (! empty($options['primary'])) { - $keyColumns = array_unique(array_values($options['primary'])); - $queryFields .= ', PRIMARY KEY (' . implode(', ', $keyColumns) . ')'; - } - - $sql = ['CREATE']; - - if (! empty($options['temporary'])) { - $sql[] = 'TEMPORARY'; - } - - $sql[] = 'TABLE ' . $name . ' (' . $queryFields . ')'; - - $tableOptions = $this->buildTableOptions($options); - - if ($tableOptions !== '') { - $sql[] = $tableOptions; - } - - if (isset($options['partition_options'])) { - $sql[] = $options['partition_options']; - } - - $sql = [implode(' ', $sql)]; - - if (isset($options['foreignKeys'])) { - foreach ($options['foreignKeys'] as $definition) { - $sql[] = $this->getCreateForeignKeySQL($definition, $name); - } - } - - return $sql; - } - - public function createSelectSQLBuilder(): SelectSQLBuilder - { - return new DefaultSelectSQLBuilder($this, 'FOR UPDATE', null); - } - - /** - * Build SQL for table options - * - * @param mixed[] $options - */ - private function buildTableOptions(array $options): string - { - if (isset($options['table_options'])) { - return $options['table_options']; - } - - $tableOptions = []; - - if (isset($options['charset'])) { - $tableOptions[] = sprintf('DEFAULT CHARACTER SET %s', $options['charset']); - } - - if (isset($options['collation'])) { - $tableOptions[] = $this->getColumnCollationDeclarationSQL($options['collation']); - } - - if (isset($options['engine'])) { - $tableOptions[] = sprintf('ENGINE = %s', $options['engine']); - } - - // Auto increment - if (isset($options['auto_increment'])) { - $tableOptions[] = sprintf('AUTO_INCREMENT = %s', $options['auto_increment']); - } - - // Comment - if (isset($options['comment'])) { - $tableOptions[] = sprintf('COMMENT = %s ', $this->quoteStringLiteral($options['comment'])); - } - - // Row format - if (isset($options['row_format'])) { - $tableOptions[] = sprintf('ROW_FORMAT = %s', $options['row_format']); - } - - return implode(' ', $tableOptions); - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $queryParts = []; - - foreach ($diff->getAddedColumns() as $column) { - $columnProperties = array_merge($column->toArray(), [ - 'comment' => $column->getComment(), - ]); - - $queryParts[] = 'ADD ' . $this->getColumnDeclarationSQL( - $column->getQuotedName($this), - $columnProperties, - ); - } - - foreach ($diff->getDroppedColumns() as $column) { - $queryParts[] = 'DROP ' . $column->getQuotedName($this); - } - - foreach ($diff->getChangedColumns() as $columnDiff) { - $newColumn = $columnDiff->getNewColumn(); - - $newColumnProperties = array_merge($newColumn->toArray(), [ - 'comment' => $newColumn->getComment(), - ]); - - $oldColumn = $columnDiff->getOldColumn(); - - $queryParts[] = 'CHANGE ' . $oldColumn->getQuotedName($this) . ' ' - . $this->getColumnDeclarationSQL($newColumn->getQuotedName($this), $newColumnProperties); - } - - $droppedIndexes = $this->indexIndexesByLowerCaseName($diff->getDroppedIndexes()); - $addedIndexes = $this->indexIndexesByLowerCaseName($diff->getAddedIndexes()); - $diffModified = false; - - $noLongerPrimaryKeyColumns = []; - - if (isset($droppedIndexes['primary'])) { - $queryParts[] = 'DROP PRIMARY KEY'; - - $noLongerPrimaryKeyColumns = $droppedIndexes['primary']->getColumns(); - } - - if (isset($addedIndexes['primary'])) { - $keyColumns = array_values(array_unique($addedIndexes['primary']->getColumns())); - $queryParts[] = 'ADD PRIMARY KEY (' . implode(', ', $keyColumns) . ')'; - - $noLongerPrimaryKeyColumns = array_diff( - $noLongerPrimaryKeyColumns, - $addedIndexes['primary']->getColumns(), - ); - - $diff->unsetAddedIndex($addedIndexes['primary']); - } - - $tableSql = []; - - if (isset($droppedIndexes['primary'])) { - $oldTable = $diff->getOldTable(); - foreach ($noLongerPrimaryKeyColumns as $columnName) { - if (! $oldTable->hasColumn($columnName)) { - continue; - } - - $column = $oldTable->getColumn($columnName); - if ($column->getAutoincrement()) { - $tableSql = array_merge( - $tableSql, - $this->getPreAlterTableAlterPrimaryKeySQL($diff, $droppedIndexes['primary']), - ); - break; - } - } - - $diff->unsetDroppedIndex($droppedIndexes['primary']); - } - - if (count($queryParts) > 0) { - $tableSql[] = 'ALTER TABLE ' . $diff->getOldTable()->getQuotedName($this) . ' ' - . implode(', ', $queryParts); - } - - return array_merge( - $this->getPreAlterTableIndexForeignKeySQL($diff), - $tableSql, - $this->getPostAlterTableIndexForeignKeySQL($diff), - ); - } - - /** - * {@inheritDoc} - */ - protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - $sql = []; - - $tableNameSQL = $diff->getOldTable()->getQuotedName($this); - - foreach ($diff->getModifiedIndexes() as $changedIndex) { - $sql = array_merge($sql, $this->getPreAlterTableAlterPrimaryKeySQL($diff, $changedIndex)); - } - - foreach ($diff->getDroppedIndexes() as $droppedIndex) { - $sql = array_merge($sql, $this->getPreAlterTableAlterPrimaryKeySQL($diff, $droppedIndex)); - - foreach ($diff->getAddedIndexes() as $addedIndex) { - if ($droppedIndex->getColumns() !== $addedIndex->getColumns()) { - continue; - } - - $indexClause = 'INDEX ' . $addedIndex->getName(); - - if ($addedIndex->isPrimary()) { - $indexClause = 'PRIMARY KEY'; - } elseif ($addedIndex->isUnique()) { - $indexClause = 'UNIQUE INDEX ' . $addedIndex->getName(); - } - - $query = 'ALTER TABLE ' . $tableNameSQL . ' DROP INDEX ' . $droppedIndex->getName() . ', '; - $query .= 'ADD ' . $indexClause; - $query .= ' (' . implode(', ', $addedIndex->getQuotedColumns($this)) . ')'; - - $sql[] = $query; - - $diff->unsetAddedIndex($addedIndex); - $diff->unsetDroppedIndex($droppedIndex); - - break; - } - } - - return array_merge( - $sql, - $this->getPreAlterTableAlterIndexForeignKeySQL($diff), - parent::getPreAlterTableIndexForeignKeySQL($diff), - $this->getPreAlterTableRenameIndexForeignKeySQL($diff), - ); - } - - /** @return list */ - private function getPreAlterTableAlterPrimaryKeySQL(TableDiff $diff, Index $index): array - { - if (! $index->isPrimary()) { - return []; - } - - $table = $diff->getOldTable(); - - $sql = []; - - $tableNameSQL = $table->getQuotedName($this); - - // Dropping primary keys requires to unset autoincrement attribute on the particular column first. - foreach ($index->getColumns() as $columnName) { - if (! $table->hasColumn($columnName)) { - continue; - } - - $column = $table->getColumn($columnName); - - if (! $column->getAutoincrement()) { - continue; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6841', - 'Relying on the auto-increment attribute of a column being automatically dropped once a column' - . ' is no longer part of the primary key constraint is deprecated. Instead, drop the auto-increment' - . ' attribute explicitly.', - ); - - $column->setAutoincrement(false); - - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' MODIFY ' . - $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray()); - - // original autoincrement information might be needed later on by other parts of the table alteration - $column->setAutoincrement(true); - } - - return $sql; - } - - /** - * @param TableDiff $diff The table diff to gather the SQL for. - * - * @return list - */ - private function getPreAlterTableAlterIndexForeignKeySQL(TableDiff $diff): array - { - $table = $diff->getOldTable(); - - $primaryKey = $table->getPrimaryKey(); - - if ($primaryKey === null) { - return []; - } - - $primaryKeyColumns = []; - - foreach ($primaryKey->getColumns() as $columnName) { - if (! $table->hasColumn($columnName)) { - continue; - } - - $primaryKeyColumns[] = $table->getColumn($columnName); - } - - if (count($primaryKeyColumns) === 0) { - return []; - } - - $sql = []; - - $tableNameSQL = $table->getQuotedName($this); - - foreach ($diff->getModifiedIndexes() as $changedIndex) { - // Changed primary key - if (! $changedIndex->isPrimary()) { - continue; - } - - foreach ($primaryKeyColumns as $column) { - // Check if an autoincrement column was dropped from the primary key. - if (! $column->getAutoincrement() || in_array($column->getName(), $changedIndex->getColumns(), true)) { - continue; - } - - // The autoincrement attribute needs to be removed from the dropped column - // before we can drop and recreate the primary key. - $column->setAutoincrement(false); - - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' MODIFY ' . - $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray()); - - // Restore the autoincrement attribute as it might be needed later on - // by other parts of the table alteration. - $column->setAutoincrement(true); - } - } - - return $sql; - } - - /** - * @param TableDiff $diff The table diff to gather the SQL for. - * - * @return list - */ - protected function getPreAlterTableRenameIndexForeignKeySQL(TableDiff $diff): array - { - return []; - } - - protected function getCreateIndexSQLFlags(Index $index): string - { - $type = ''; - if ($index->isUnique()) { - $type .= 'UNIQUE '; - } elseif ($index->hasFlag('fulltext')) { - $type .= 'FULLTEXT '; - } elseif ($index->hasFlag('spatial')) { - $type .= 'SPATIAL '; - } - - return $type; - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getFloatDeclarationSQL(array $column): string - { - return 'DOUBLE PRECISION' . $this->getUnsignedDeclaration($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallFloatDeclarationSQL(array $column): string - { - return 'FLOAT' . $this->getUnsignedDeclaration($column); - } - - /** - * {@inheritDoc} - */ - public function getDecimalTypeDeclarationSQL(array $column): string - { - return parent::getDecimalTypeDeclarationSQL($column) . $this->getUnsignedDeclaration($column); - } - - /** - * {@inheritDoc} - */ - public function getEnumDeclarationSQL(array $column): string - { - if (! isset($column['values']) || ! is_array($column['values']) || $column['values'] === []) { - throw ColumnValuesRequired::new($this, 'ENUM'); - } - - return sprintf('ENUM(%s)', implode(', ', array_map( - $this->quoteStringLiteral(...), - $column['values'], - ))); - } - - /** - * Get unsigned declaration for a column. - * - * @param mixed[] $columnDef - */ - private function getUnsignedDeclaration(array $columnDef): string - { - return ! empty($columnDef['unsigned']) ? ' UNSIGNED' : ''; - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - $sql = $this->getUnsignedDeclaration($column); - - if (! empty($column['autoincrement'])) { - $sql .= ' AUTO_INCREMENT'; - } - - return $sql; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getColumnCharsetDeclarationSQL(string $charset): string - { - return 'CHARACTER SET ' . $charset; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey): string - { - $query = ''; - if ($foreignKey->hasOption('match')) { - $query .= ' MATCH ' . $foreignKey->getOption('match'); - } - - $query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey); - - return $query; - } - - public function getDropIndexSQL(string $name, string $table): string - { - return 'DROP INDEX ' . $name . ' ON ' . $table; - } - - /** - * The `ALTER TABLE ... DROP CONSTRAINT` syntax is only available as of MySQL 8.0.19. - * - * @link https://dev.mysql.com/doc/refman/8.0/en/alter-table.html - */ - public function getDropUniqueConstraintSQL(string $name, string $tableName): string - { - return $this->getDropIndexSQL($name, $tableName); - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - return 'SET SESSION TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level); - } - - protected function initializeDoctrineTypeMappings(): void - { - $this->doctrineTypeMapping = [ - 'bigint' => Types::BIGINT, - 'binary' => Types::BINARY, - 'blob' => Types::BLOB, - 'char' => Types::STRING, - 'date' => Types::DATE_MUTABLE, - 'datetime' => Types::DATETIME_MUTABLE, - 'decimal' => Types::DECIMAL, - 'double' => Types::FLOAT, - 'enum' => Types::ENUM, - 'float' => Types::SMALLFLOAT, - 'int' => Types::INTEGER, - 'integer' => Types::INTEGER, - 'json' => Types::JSON, - 'longblob' => Types::BLOB, - 'longtext' => Types::TEXT, - 'mediumblob' => Types::BLOB, - 'mediumint' => Types::INTEGER, - 'mediumtext' => Types::TEXT, - 'numeric' => Types::DECIMAL, - 'real' => Types::FLOAT, - 'set' => Types::SIMPLE_ARRAY, - 'smallint' => Types::SMALLINT, - 'string' => Types::STRING, - 'text' => Types::TEXT, - 'time' => Types::TIME_MUTABLE, - 'timestamp' => Types::DATETIME_MUTABLE, - 'tinyblob' => Types::BLOB, - 'tinyint' => Types::BOOLEAN, - 'tinytext' => Types::TEXT, - 'varbinary' => Types::BINARY, - 'varchar' => Types::STRING, - 'year' => Types::DATE_MUTABLE, - ]; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new MySQLKeywords(); - } - - /** - * {@inheritDoc} - * - * MySQL commits a transaction implicitly when DROP TABLE is executed, however not - * if DROP TEMPORARY TABLE is executed. - */ - public function getDropTemporaryTableSQL(string $table): string - { - return 'DROP TEMPORARY TABLE ' . $table; - } - - /** - * Gets the SQL Snippet used to declare a BLOB column type. - * TINYBLOB : 2 ^ 8 - 1 = 255 - * BLOB : 2 ^ 16 - 1 = 65535 - * MEDIUMBLOB : 2 ^ 24 - 1 = 16777215 - * LONGBLOB : 2 ^ 32 - 1 = 4294967295 - * - * {@inheritDoc} - */ - public function getBlobTypeDeclarationSQL(array $column): string - { - if (! empty($column['length']) && is_numeric($column['length'])) { - $length = $column['length']; - - if ($length <= static::LENGTH_LIMIT_TINYBLOB) { - return 'TINYBLOB'; - } - - if ($length <= static::LENGTH_LIMIT_BLOB) { - return 'BLOB'; - } - - if ($length <= static::LENGTH_LIMIT_MEDIUMBLOB) { - return 'MEDIUMBLOB'; - } - } - - return 'LONGBLOB'; - } - - public function quoteStringLiteral(string $str): string - { - // MySQL requires backslashes to be escaped as well. - $str = str_replace('\\', '\\\\', $str); - - return parent::quoteStringLiteral($str); - } - - public function getDefaultTransactionIsolationLevel(): TransactionIsolationLevel - { - return TransactionIsolationLevel::REPEATABLE_READ; - } - - /** @deprecated */ - public function supportsColumnLengthIndexes(): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated.', - __METHOD__, - ); - - return true; - } - - public function createSchemaManager(Connection $connection): MySQLSchemaManager - { - return new MySQLSchemaManager($connection, $this); - } - - /** - * @param array $indexes - * - * @return array - */ - private function indexIndexesByLowerCaseName(array $indexes): array - { - $result = []; - - foreach ($indexes as $index) { - $result[strtolower($index->getName())] = $index; - } - - return $result; - } - - /** @internal The method should be only used from within the {@see MySQLSchemaManager} class hierarchy. */ - public function fetchTableOptionsByTable(bool $includeTableName): string - { - $sql = <<<'SQL' - SELECT t.TABLE_NAME, - t.ENGINE, - t.AUTO_INCREMENT, - t.TABLE_COMMENT, - t.CREATE_OPTIONS, - t.TABLE_COLLATION, - ccsa.CHARACTER_SET_NAME - FROM information_schema.TABLES t - INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa - ON ccsa.COLLATION_NAME = t.TABLE_COLLATION -SQL; - - $conditions = ['t.TABLE_SCHEMA = ?']; - - if ($includeTableName) { - $conditions[] = 't.TABLE_NAME = ?'; - } - - $conditions[] = "t.TABLE_TYPE = 'BASE TABLE'"; - - return $sql . ' WHERE ' . implode(' AND ', $conditions); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/AbstractPlatform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/AbstractPlatform.php deleted file mode 100644 index f1fe398..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/AbstractPlatform.php +++ /dev/null @@ -1,2438 +0,0 @@ -, - * primary_index?: Index, - * indexes?: list, - * uniqueConstraints?: list, - * foreignKeys?: list, - * comment?: string, - * } - */ -abstract class AbstractPlatform -{ - /** @deprecated */ - public const CREATE_INDEXES = 1; - - /** @deprecated */ - public const CREATE_FOREIGNKEYS = 2; - - /** @var string[]|null */ - protected ?array $doctrineTypeMapping = null; - - /** - * Holds the KeywordList instance for the current platform. - * - * @deprecated - */ - protected ?KeywordList $_keywords = null; - - /** - * Defines how the platform folds the case of unquoted identifiers. - */ - private ?UnquotedIdentifierFolding $unquotedIdentifierFolding = null; - - public function __construct(?UnquotedIdentifierFolding $unquotedIdentifierFolding = null) - { - if ($unquotedIdentifierFolding === null) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6823', - 'Not passing $unquotedIdentifierFolding to %s() is deprecated.', - __METHOD__, - ); - } - - $this->unquotedIdentifierFolding = $unquotedIdentifierFolding ?? UnquotedIdentifierFolding::UPPER; - } - - /** - * Returns the SQL snippet that declares a boolean column. - * - * @param array $column - */ - abstract public function getBooleanTypeDeclarationSQL(array $column): string; - - /** - * Returns the SQL snippet that declares a 4 byte integer column. - * - * @param array $column - */ - abstract public function getIntegerTypeDeclarationSQL(array $column): string; - - /** - * Returns the SQL snippet that declares an 8 byte integer column. - * - * @param array $column - */ - abstract public function getBigIntTypeDeclarationSQL(array $column): string; - - /** - * Returns the SQL snippet that declares a 2 byte integer column. - * - * @param array $column - */ - abstract public function getSmallIntTypeDeclarationSQL(array $column): string; - - /** - * Returns the SQL snippet that declares common properties of an integer column. - * - * @param array $column - */ - abstract protected function _getCommonIntegerTypeDeclarationSQL(array $column): string; - - /** - * Lazy load Doctrine Type Mappings. - */ - abstract protected function initializeDoctrineTypeMappings(): void; - - /** - * Initializes Doctrine Type Mappings with the platform defaults - * and with all additional type mappings. - * - * @throws TypesException - */ - private function initializeAllDoctrineTypeMappings(): void - { - $this->initializeDoctrineTypeMappings(); - - foreach (Type::getTypesMap() as $typeName => $className) { - foreach (Type::getType($typeName)->getMappedDatabaseTypes($this) as $dbType) { - $dbType = strtolower($dbType); - $this->doctrineTypeMapping[$dbType] = $typeName; - } - } - } - - /** - * Returns the SQL snippet used to declare a column that can - * store characters in the ASCII character set - * - * @param array $column The column definition. - */ - public function getAsciiStringTypeDeclarationSQL(array $column): string - { - return $this->getStringTypeDeclarationSQL($column); - } - - /** - * Returns the SQL snippet used to declare a string column type. - * - * @param array $column The column definition. - */ - public function getStringTypeDeclarationSQL(array $column): string - { - $length = $column['length'] ?? null; - - if (empty($column['fixed'])) { - try { - return $this->getVarcharTypeDeclarationSQLSnippet($length); - } catch (InvalidColumnType $e) { - throw InvalidColumnDeclaration::fromInvalidColumnType($column['name'], $e); - } - } - - return $this->getCharTypeDeclarationSQLSnippet($length); - } - - /** - * Returns the SQL snippet used to declare a binary string column type. - * - * @param array $column The column definition. - */ - public function getBinaryTypeDeclarationSQL(array $column): string - { - $length = $column['length'] ?? null; - - try { - if (empty($column['fixed'])) { - return $this->getVarbinaryTypeDeclarationSQLSnippet($length); - } - - return $this->getBinaryTypeDeclarationSQLSnippet($length); - } catch (InvalidColumnType $e) { - throw InvalidColumnDeclaration::fromInvalidColumnType($column['name'], $e); - } - } - - /** - * Returns the SQL snippet to declare an ENUM column. - * - * Enum is a non-standard type that is especially popular in MySQL and MariaDB. By default, this method map to - * a simple VARCHAR field which allows us to deploy it on any platform, e.g. SQLite. - * - * @param array $column - * - * @throws ColumnValuesRequired If the column definition does not contain any values. - */ - public function getEnumDeclarationSQL(array $column): string - { - if (! isset($column['values']) || ! is_array($column['values']) || $column['values'] === []) { - throw ColumnValuesRequired::new($this, 'ENUM'); - } - - $length = count($column['values']) > 1 - ? max(...array_map(mb_strlen(...), $column['values'])) - : mb_strlen($column['values'][key($column['values'])]); - - return $this->getStringTypeDeclarationSQL(['length' => $length]); - } - - /** - * Returns the SQL snippet to declare a GUID/UUID column. - * - * By default this maps directly to a CHAR(36) and only maps to more - * special datatypes when the underlying databases support this datatype. - * - * @param array $column The column definition. - */ - public function getGuidTypeDeclarationSQL(array $column): string - { - $column['length'] = 36; - $column['fixed'] = true; - - return $this->getStringTypeDeclarationSQL($column); - } - - /** - * Returns the SQL snippet to declare a JSON column. - * - * By default this maps directly to a CLOB and only maps to more - * special datatypes when the underlying databases support this datatype. - * - * @param array $column - */ - public function getJsonTypeDeclarationSQL(array $column): string - { - if (! empty($column['jsonb'])) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6939', - 'The "jsonb" column platform option is deprecated. Use the "JSONB" type instead.', - ); - } - - return $this->getClobTypeDeclarationSQL($column); - } - - /** - * Returns the SQL snippet to declare a JSONB column. - * - * @param array $column - */ - public function getJsonbTypeDeclarationSQL(array $column): string - { - return $this->getJsonTypeDeclarationSQL($column); - } - - /** - * @param int|null $length The length of the column in characters - * or NULL if the length should be omitted. - */ - protected function getCharTypeDeclarationSQLSnippet(?int $length): string - { - $sql = 'CHAR'; - - if ($length !== null) { - $sql .= sprintf('(%d)', $length); - } - - return $sql; - } - - /** - * @param int|null $length The length of the column in characters - * or NULL if the length should be omitted. - */ - protected function getVarcharTypeDeclarationSQLSnippet(?int $length): string - { - if ($length === null) { - throw ColumnLengthRequired::new($this, 'VARCHAR'); - } - - return sprintf('VARCHAR(%d)', $length); - } - - /** - * Returns the SQL snippet used to declare a fixed length binary column type. - * - * @param int|null $length The length of the column in bytes - * or NULL if the length should be omitted. - */ - protected function getBinaryTypeDeclarationSQLSnippet(?int $length): string - { - $sql = 'BINARY'; - - if ($length !== null) { - $sql .= sprintf('(%d)', $length); - } - - return $sql; - } - - /** - * Returns the SQL snippet used to declare a variable length binary column type. - * - * @param int|null $length The length of the column in bytes - * or NULL if the length should be omitted. - */ - protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length): string - { - if ($length === null) { - throw ColumnLengthRequired::new($this, 'VARBINARY'); - } - - return sprintf('VARBINARY(%d)', $length); - } - - /** - * Returns the SQL snippet used to declare a CLOB column type. - * - * @param array $column - */ - abstract public function getClobTypeDeclarationSQL(array $column): string; - - /** - * Returns the SQL Snippet used to declare a BLOB column type. - * - * @param array $column - */ - abstract public function getBlobTypeDeclarationSQL(array $column): string; - - /** - * Registers a doctrine type to be used in conjunction with a column type of this platform. - * - * @throws Exception If the type is not found. - */ - public function registerDoctrineTypeMapping(string $dbType, string $doctrineType): void - { - if ($this->doctrineTypeMapping === null) { - $this->initializeAllDoctrineTypeMappings(); - } - - if (! Types\Type::hasType($doctrineType)) { - throw TypeNotFound::new($doctrineType); - } - - $dbType = strtolower($dbType); - $this->doctrineTypeMapping[$dbType] = $doctrineType; - } - - /** - * Gets the Doctrine type that is mapped for the given database column type. - * - * @throws TypesException - */ - public function getDoctrineTypeMapping(string $dbType): string - { - if ($this->doctrineTypeMapping === null) { - $this->initializeAllDoctrineTypeMappings(); - } - - $dbType = strtolower($dbType); - - if (! isset($this->doctrineTypeMapping[$dbType])) { - throw new InvalidArgumentException(sprintf( - 'Unknown database type "%s" requested, %s may not support it.', - $dbType, - static::class, - )); - } - - return $this->doctrineTypeMapping[$dbType]; - } - - /** - * Checks if a database type is currently supported by this platform. - * - * @throws TypesException - */ - public function hasDoctrineTypeMappingFor(string $dbType): bool - { - if ($this->doctrineTypeMapping === null) { - $this->initializeAllDoctrineTypeMappings(); - } - - $dbType = strtolower($dbType); - - return isset($this->doctrineTypeMapping[$dbType]); - } - - /** - * Returns the regular expression operator. - */ - public function getRegexpExpression(): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * Returns the SQL snippet to get the length of a text column in characters. - * - * @param string $string SQL expression producing the string. - */ - public function getLengthExpression(string $string): string - { - return 'LENGTH(' . $string . ')'; - } - - /** - * Returns the SQL snippet to get the remainder of the operation of division of dividend by divisor. - * - * @param string $dividend SQL expression producing the dividend. - * @param string $divisor SQL expression producing the divisor. - */ - public function getModExpression(string $dividend, string $divisor): string - { - return 'MOD(' . $dividend . ', ' . $divisor . ')'; - } - - /** - * Returns the SQL snippet to trim a string. - * - * @param string $str The expression to apply the trim to. - * @param TrimMode $mode The position of the trim. - * @param string|null $char The char to trim, has to be quoted already. Defaults to space. - */ - public function getTrimExpression( - string $str, - TrimMode $mode = TrimMode::UNSPECIFIED, - ?string $char = null, - ): string { - $tokens = []; - - switch ($mode) { - case TrimMode::UNSPECIFIED: - break; - - case TrimMode::LEADING: - $tokens[] = 'LEADING'; - break; - - case TrimMode::TRAILING: - $tokens[] = 'TRAILING'; - break; - - case TrimMode::BOTH: - $tokens[] = 'BOTH'; - break; - } - - if ($char !== null) { - $tokens[] = $char; - } - - if (count($tokens) > 0) { - $tokens[] = 'FROM'; - } - - $tokens[] = $str; - - return sprintf('TRIM(%s)', implode(' ', $tokens)); - } - - /** - * Returns the SQL snippet to get the position of the first occurrence of the substring in the string. - * - * @param string $string SQL expression producing the string to locate the substring in. - * @param string $substring SQL expression producing the substring to locate. - * @param string|null $start SQL expression producing the position to start at. - * Defaults to the beginning of the string. - */ - abstract public function getLocateExpression(string $string, string $substring, ?string $start = null): string; - - /** - * Returns an SQL snippet to get a substring inside the string. - * - * Note: Not SQL92, but common functionality. - * - * @param string $string SQL expression producing the string from which a substring should be extracted. - * @param string $start SQL expression producing the position to start at, - * @param string|null $length SQL expression producing the length of the substring portion to be returned. - * By default, the entire substring is returned. - */ - public function getSubstringExpression(string $string, string $start, ?string $length = null): string - { - if ($length === null) { - return sprintf('SUBSTRING(%s FROM %s)', $string, $start); - } - - return sprintf('SUBSTRING(%s FROM %s FOR %s)', $string, $start, $length); - } - - /** - * Returns a SQL snippet to concatenate the given strings. - */ - public function getConcatExpression(string ...$string): string - { - return implode(' || ', $string); - } - - /** - * Returns the SQL to calculate the difference in days between the two passed dates. - * - * Computes diff = date1 - date2. - */ - abstract public function getDateDiffExpression(string $date1, string $date2): string; - - /** - * Returns the SQL to add the number of given seconds to a date. - * - * @param string $date SQL expression producing the date. - * @param string $seconds SQL expression producing the number of seconds. - */ - public function getDateAddSecondsExpression(string $date, string $seconds): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $seconds, DateIntervalUnit::SECOND); - } - - /** - * Returns the SQL to subtract the number of given seconds from a date. - * - * @param string $date SQL expression producing the date. - * @param string $seconds SQL expression producing the number of seconds. - */ - public function getDateSubSecondsExpression(string $date, string $seconds): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $seconds, DateIntervalUnit::SECOND); - } - - /** - * Returns the SQL to add the number of given minutes to a date. - * - * @param string $date SQL expression producing the date. - * @param string $minutes SQL expression producing the number of minutes. - */ - public function getDateAddMinutesExpression(string $date, string $minutes): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $minutes, DateIntervalUnit::MINUTE); - } - - /** - * Returns the SQL to subtract the number of given minutes from a date. - * - * @param string $date SQL expression producing the date. - * @param string $minutes SQL expression producing the number of minutes. - */ - public function getDateSubMinutesExpression(string $date, string $minutes): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $minutes, DateIntervalUnit::MINUTE); - } - - /** - * Returns the SQL to add the number of given hours to a date. - * - * @param string $date SQL expression producing the date. - * @param string $hours SQL expression producing the number of hours. - */ - public function getDateAddHourExpression(string $date, string $hours): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $hours, DateIntervalUnit::HOUR); - } - - /** - * Returns the SQL to subtract the number of given hours to a date. - * - * @param string $date SQL expression producing the date. - * @param string $hours SQL expression producing the number of hours. - */ - public function getDateSubHourExpression(string $date, string $hours): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $hours, DateIntervalUnit::HOUR); - } - - /** - * Returns the SQL to add the number of given days to a date. - * - * @param string $date SQL expression producing the date. - * @param string $days SQL expression producing the number of days. - */ - public function getDateAddDaysExpression(string $date, string $days): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $days, DateIntervalUnit::DAY); - } - - /** - * Returns the SQL to subtract the number of given days to a date. - * - * @param string $date SQL expression producing the date. - * @param string $days SQL expression producing the number of days. - */ - public function getDateSubDaysExpression(string $date, string $days): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $days, DateIntervalUnit::DAY); - } - - /** - * Returns the SQL to add the number of given weeks to a date. - * - * @param string $date SQL expression producing the date. - * @param string $weeks SQL expression producing the number of weeks. - */ - public function getDateAddWeeksExpression(string $date, string $weeks): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $weeks, DateIntervalUnit::WEEK); - } - - /** - * Returns the SQL to subtract the number of given weeks from a date. - * - * @param string $date SQL expression producing the date. - * @param string $weeks SQL expression producing the number of weeks. - */ - public function getDateSubWeeksExpression(string $date, string $weeks): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $weeks, DateIntervalUnit::WEEK); - } - - /** - * Returns the SQL to add the number of given months to a date. - * - * @param string $date SQL expression producing the date. - * @param string $months SQL expression producing the number of months. - */ - public function getDateAddMonthExpression(string $date, string $months): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $months, DateIntervalUnit::MONTH); - } - - /** - * Returns the SQL to subtract the number of given months to a date. - * - * @param string $date SQL expression producing the date. - * @param string $months SQL expression producing the number of months. - */ - public function getDateSubMonthExpression(string $date, string $months): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $months, DateIntervalUnit::MONTH); - } - - /** - * Returns the SQL to add the number of given quarters to a date. - * - * @param string $date SQL expression producing the date. - * @param string $quarters SQL expression producing the number of quarters. - */ - public function getDateAddQuartersExpression(string $date, string $quarters): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $quarters, DateIntervalUnit::QUARTER); - } - - /** - * Returns the SQL to subtract the number of given quarters from a date. - * - * @param string $date SQL expression producing the date. - * @param string $quarters SQL expression producing the number of quarters. - */ - public function getDateSubQuartersExpression(string $date, string $quarters): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $quarters, DateIntervalUnit::QUARTER); - } - - /** - * Returns the SQL to add the number of given years to a date. - * - * @param string $date SQL expression producing the date. - * @param string $years SQL expression producing the number of years. - */ - public function getDateAddYearsExpression(string $date, string $years): string - { - return $this->getDateArithmeticIntervalExpression($date, '+', $years, DateIntervalUnit::YEAR); - } - - /** - * Returns the SQL to subtract the number of given years from a date. - * - * @param string $date SQL expression producing the date. - * @param string $years SQL expression producing the number of years. - */ - public function getDateSubYearsExpression(string $date, string $years): string - { - return $this->getDateArithmeticIntervalExpression($date, '-', $years, DateIntervalUnit::YEAR); - } - - /** - * Returns the SQL for a date arithmetic expression. - * - * @param string $date SQL expression representing a date to perform the arithmetic operation on. - * @param string $operator The arithmetic operator (+ or -). - * @param string $interval SQL expression representing the value of the interval that shall be calculated - * into the date. - * @param DateIntervalUnit $unit The unit of the interval that shall be calculated into the date. - */ - abstract protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string; - - /** - * Generates the SQL expression which represents the given date interval multiplied by a number - * - * @param string $interval SQL expression describing the interval value - * @param int $multiplier Interval multiplier - */ - protected function multiplyInterval(string $interval, int $multiplier): string - { - return sprintf('(%s * %d)', $interval, $multiplier); - } - - /** - * Returns the SQL bit AND comparison expression. - * - * @param string $value1 SQL expression producing the first value. - * @param string $value2 SQL expression producing the second value. - */ - public function getBitAndComparisonExpression(string $value1, string $value2): string - { - return '(' . $value1 . ' & ' . $value2 . ')'; - } - - /** - * Returns the SQL bit OR comparison expression. - * - * @param string $value1 SQL expression producing the first value. - * @param string $value2 SQL expression producing the second value. - */ - public function getBitOrComparisonExpression(string $value1, string $value2): string - { - return '(' . $value1 . ' | ' . $value2 . ')'; - } - - /** - * Returns the SQL expression which represents the currently selected database. - */ - abstract public function getCurrentDatabaseExpression(): string; - - /** - * Honors that some SQL vendors such as MsSql use table hints for locking instead of the - * ANSI SQL FOR UPDATE specification. - * - * @param string $fromClause The FROM clause to append the hint for the given lock mode to - */ - public function appendLockHint(string $fromClause, LockMode $lockMode): string - { - return $fromClause; - } - - /** - * Returns the SQL snippet to drop an existing table. - */ - public function getDropTableSQL(string $table): string - { - return 'DROP TABLE ' . $table; - } - - /** - * Returns the SQL to safely drop a temporary table WITHOUT implicitly committing an open transaction. - */ - public function getDropTemporaryTableSQL(string $table): string - { - return $this->getDropTableSQL($table); - } - - /** - * Returns the SQL to drop an index from a table. - */ - public function getDropIndexSQL(string $name, string $table): string - { - return 'DROP INDEX ' . $name; - } - - /** - * Returns the SQL to drop a constraint. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - protected function getDropConstraintSQL(string $name, string $table): string - { - return 'ALTER TABLE ' . $table . ' DROP CONSTRAINT ' . $name; - } - - /** - * Returns the SQL to drop a foreign key. - */ - public function getDropForeignKeySQL(string $foreignKey, string $table): string - { - return 'ALTER TABLE ' . $table . ' DROP FOREIGN KEY ' . $foreignKey; - } - - /** - * Returns the SQL to drop a unique constraint. - */ - public function getDropUniqueConstraintSQL(string $name, string $tableName): string - { - return $this->getDropConstraintSQL($name, $tableName); - } - - /** - * Returns the SQL statement(s) to create a table with the specified name, columns and constraints - * on this platform. - * - * @return list The list of SQL statements. - */ - public function getCreateTableSQL(Table $table): array - { - return $this->buildCreateTableSQL($table, true); - } - - public function createSelectSQLBuilder(): SelectSQLBuilder - { - return new DefaultSelectSQLBuilder($this, 'FOR UPDATE', 'SKIP LOCKED'); - } - - public function createUnionSQLBuilder(): UnionSQLBuilder - { - return new DefaultUnionSQLBuilder($this); - } - - public function createWithSQLBuilder(): WithSQLBuilder - { - return new WithSQLBuilder(); - } - - /** - * @internal - * - * @return list - */ - final protected function getCreateTableWithoutForeignKeysSQL(Table $table): array - { - return $this->buildCreateTableSQL($table, false); - } - - /** @return list */ - private function buildCreateTableSQL(Table $table, bool $createForeignKeys): array - { - if (count($table->getColumns()) === 0) { - throw NoColumnsSpecifiedForTable::new($table->getName()); - } - - $tableName = $table->getQuotedName($this); - $options = $table->getOptions(); - $options['primary'] = []; - $options['indexes'] = []; - $options['uniqueConstraints'] = []; - $options['foreignKeys'] = []; - - foreach ($table->getIndexes() as $index) { - if (! $index->isPrimary()) { - $options['indexes'][] = $index; - - continue; - } - - $options['primary'] = $index->getQuotedColumns($this); - $options['primary_index'] = $index; - } - - foreach ($table->getUniqueConstraints() as $uniqueConstraint) { - $options['uniqueConstraints'][] = $uniqueConstraint; - } - - if ($createForeignKeys) { - foreach ($table->getForeignKeys() as $fkConstraint) { - $options['foreignKeys'][] = $fkConstraint; - } - } - - $columns = []; - - foreach ($table->getColumns() as $column) { - $columns[] = $this->columnToArray($column); - } - - $sql = $this->_getCreateTableSQL($tableName, $columns, $options); - - if ($this->supportsCommentOnStatement()) { - if ($table->hasOption('comment')) { - $sql[] = $this->getCommentOnTableSQL($tableName, $table->getOption('comment')); - } - - foreach ($table->getColumns() as $column) { - $comment = $column->getComment(); - - if ($comment === '') { - continue; - } - - $sql[] = $this->getCommentOnColumnSQL($tableName, $column->getQuotedName($this), $comment); - } - } - - return $sql; - } - - /** - * @param array $tables - * - * @return list - */ - public function getCreateTablesSQL(array $tables): array - { - $sql = []; - - foreach ($tables as $table) { - $sql = array_merge($sql, $this->getCreateTableWithoutForeignKeysSQL($table)); - } - - foreach ($tables as $table) { - foreach ($table->getForeignKeys() as $foreignKey) { - $sql[] = $this->getCreateForeignKeySQL( - $foreignKey, - $table->getQuotedName($this), - ); - } - } - - return $sql; - } - - /** - * @param array
$tables - * - * @return list - */ - public function getDropTablesSQL(array $tables): array - { - $sql = []; - - foreach ($tables as $table) { - foreach ($table->getForeignKeys() as $foreignKey) { - $sql[] = $this->getDropForeignKeySQL( - $foreignKey->getQuotedName($this), - $table->getQuotedName($this), - ); - } - } - - foreach ($tables as $table) { - $sql[] = $this->getDropTableSQL($table->getQuotedName($this)); - } - - return $sql; - } - - protected function getCommentOnTableSQL(string $tableName, string $comment): string - { - $tableName = new Identifier($tableName); - - return sprintf( - 'COMMENT ON TABLE %s IS %s', - $tableName->getQuotedName($this), - $this->quoteStringLiteral($comment), - ); - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getCommentOnColumnSQL(string $tableName, string $columnName, string $comment): string - { - $tableName = new Identifier($tableName); - $columnName = new Identifier($columnName); - - return sprintf( - 'COMMENT ON COLUMN %s.%s IS %s', - $tableName->getQuotedName($this), - $columnName->getQuotedName($this), - $this->quoteStringLiteral($comment), - ); - } - - /** - * Returns the SQL to create inline comment on a column. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getInlineColumnCommentSQL(string $comment): string - { - if (! $this->supportsInlineColumnComments()) { - throw NotSupported::new(__METHOD__); - } - - return 'COMMENT ' . $this->quoteStringLiteral($comment); - } - - /** - * Returns the SQL used to create a table. - * - * @param list $columns - * @param CreateTableParameters $options - * - * @return list - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $columnListSql = $this->getColumnDeclarationListSQL($columns); - - if (! empty($options['uniqueConstraints'])) { - foreach ($options['uniqueConstraints'] as $definition) { - $columnListSql .= ', ' . $this->getUniqueConstraintDeclarationSQL($definition); - } - } - - if (! empty($options['primary'])) { - $columnListSql .= ', PRIMARY KEY (' . implode(', ', array_unique(array_values($options['primary']))) . ')'; - } - - if (! empty($options['indexes'])) { - foreach ($options['indexes'] as $definition) { - $columnListSql .= ', ' . $this->getIndexDeclarationSQL($definition); - } - } - - $query = 'CREATE TABLE ' . $name . ' (' . $columnListSql; - $check = $this->getCheckDeclarationSQL($columns); - - if (! empty($check)) { - $query .= ', ' . $check; - } - - $query .= ')'; - - $sql = [$query]; - - if (isset($options['foreignKeys'])) { - foreach ($options['foreignKeys'] as $definition) { - $sql[] = $this->getCreateForeignKeySQL($definition, $name); - } - } - - return $sql; - } - - /** - * @internal - * - * @param CreateTableParameters $options - */ - final protected function validateCreateTableOptions(array $options, string $methodName): void - { - if ( - isset( - $options['primary'], - $options['indexes'], - $options['uniqueConstraints'], - $options['foreignKeys'], - ) - ) { - return; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6805', - 'Not passing $options or any of its following keys to %s() is deprecated:' - . ' "primary", "indexes", "uniqueConstraints", "foreignKeys".', - $methodName, - ); - } - - public function getCreateTemporaryTableSnippetSQL(): string - { - return 'CREATE TEMPORARY TABLE'; - } - - /** - * Generates SQL statements that can be used to apply the diff. - * - * @return list - */ - public function getAlterSchemaSQL(SchemaDiff $diff): array - { - $sql = []; - - if ($this->supportsSchemas()) { - foreach ($diff->getCreatedSchemas() as $schema) { - $sql[] = $this->getCreateSchemaSQL($schema); - } - } - - if ($this->supportsSequences()) { - foreach ($diff->getAlteredSequences() as $sequence) { - $sql[] = $this->getAlterSequenceSQL($sequence); - } - - foreach ($diff->getDroppedSequences() as $sequence) { - $sql[] = $this->getDropSequenceSQL($sequence->getQuotedName($this)); - } - - foreach ($diff->getCreatedSequences() as $sequence) { - $sql[] = $this->getCreateSequenceSQL($sequence); - } - } - - $sql = array_merge( - $sql, - $this->getCreateTablesSQL( - $diff->getCreatedTables(), - ), - $this->getDropTablesSQL( - $diff->getDroppedTables(), - ), - ); - - foreach ($diff->getAlteredTables() as $tableDiff) { - $sql = array_merge($sql, $this->getAlterTableSQL($tableDiff)); - } - - return $sql; - } - - /** - * Returns the SQL to create a sequence on this platform. - */ - public function getCreateSequenceSQL(Sequence $sequence): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * Returns the SQL to change a sequence on this platform. - */ - public function getAlterSequenceSQL(Sequence $sequence): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * Returns the SQL snippet to drop an existing sequence. - */ - public function getDropSequenceSQL(string $name): string - { - if (! $this->supportsSequences()) { - throw NotSupported::new(__METHOD__); - } - - return 'DROP SEQUENCE ' . $name; - } - - /** - * Returns the SQL to create an index on a table on this platform. - */ - public function getCreateIndexSQL(Index $index, string $table): string - { - $name = $index->getQuotedName($this); - $columns = $index->getColumns(); - - if (count($columns) === 0) { - throw new InvalidArgumentException(sprintf( - 'Incomplete or invalid index definition %s on table %s', - $name, - $table, - )); - } - - if ($index->isPrimary()) { - return $this->getCreatePrimaryKeySQL($index, $table); - } - - $query = 'CREATE ' . $this->getCreateIndexSQLFlags($index) . 'INDEX ' . $name . ' ON ' . $table; - $query .= ' (' . implode(', ', $index->getQuotedColumns($this)) . ')' . $this->getPartialIndexSQL($index); - - return $query; - } - - /** - * Adds condition for partial index. - */ - protected function getPartialIndexSQL(Index $index): string - { - if ($this->supportsPartialIndexes() && $index->hasOption('where')) { - return ' WHERE ' . $index->getOption('where'); - } - - return ''; - } - - /** - * Adds additional flags for index generation. - */ - protected function getCreateIndexSQLFlags(Index $index): string - { - return $index->isUnique() ? 'UNIQUE ' : ''; - } - - /** - * Returns the SQL to create an unnamed primary key constraint. - * - * @deprecated - */ - public function getCreatePrimaryKeySQL(Index $index, string $table): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - '%s() is deprecated.', - __METHOD__, - ); - - return 'ALTER TABLE ' . $table . ' ADD PRIMARY KEY (' . implode(', ', $index->getQuotedColumns($this)) . ')'; - } - - /** - * Returns the SQL to create a named schema. - */ - public function getCreateSchemaSQL(string $schemaName): string - { - if (! $this->supportsSchemas()) { - throw NotSupported::new(__METHOD__); - } - - return 'CREATE SCHEMA ' . $schemaName; - } - - /** - * Returns the SQL to create a unique constraint on a table on this platform. - */ - public function getCreateUniqueConstraintSQL(UniqueConstraint $constraint, string $tableName): string - { - return 'ALTER TABLE ' . $tableName . ' ADD ' . $this->getUniqueConstraintDeclarationSQL($constraint); - } - - /** - * Returns the SQL snippet to drop a schema. - */ - public function getDropSchemaSQL(string $schemaName): string - { - if (! $this->supportsSchemas()) { - throw NotSupported::new(__METHOD__); - } - - return 'DROP SCHEMA ' . $schemaName; - } - - /** - * Quotes a string so that it can be safely used as a table or column name, - * even if it is a reserved word of the platform. This also detects identifier - * chains separated by dot and quotes them independently. - * - * NOTE: Just because you CAN use quoted identifiers doesn't mean - * you SHOULD use them. In general, they end up causing way more - * problems than they solve. - * - * @deprecated Use {@link quoteSingleIdentifier()} individually for each part of a qualified name instead. - * - * @param string $identifier The identifier name to be quoted. - * - * @return string The quoted identifier string. - */ - public function quoteIdentifier(string $identifier): string - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6590', - <<<'DEPRECATION' - Method %s is deprecated and will be removed in 5.0. - Use quoteSingleIdentifier() individually for each part of a qualified name instead. - DEPRECATION, - __METHOD__, - ); - - if (str_contains($identifier, '.')) { - $parts = array_map($this->quoteSingleIdentifier(...), explode('.', $identifier)); - - return implode('.', $parts); - } - - return $this->quoteSingleIdentifier($identifier); - } - - /** - * Quotes a single identifier (no dot chain separation). - * - * @param string $str The identifier name to be quoted. - * - * @return string The quoted identifier string. - */ - public function quoteSingleIdentifier(string $str): string - { - return '"' . str_replace('"', '""', $str) . '"'; - } - - /** - * Returns the SQL to create a new foreign key. - * - * @param ForeignKeyConstraint $foreignKey The foreign key constraint. - * @param string $table The name of the table on which the foreign key is to be created. - */ - public function getCreateForeignKeySQL(ForeignKeyConstraint $foreignKey, string $table): string - { - return 'ALTER TABLE ' . $table . ' ADD ' . $this->getForeignKeyDeclarationSQL($foreignKey); - } - - /** - * Gets the SQL statements for altering an existing table. - * - * This method returns an array of SQL statements, since some platforms need several statements. - * - * @return list - */ - abstract public function getAlterTableSQL(TableDiff $diff): array; - - public function getRenameTableSQL(string $oldName, string $newName): string - { - return sprintf('ALTER TABLE %s RENAME TO %s', $oldName, $newName); - } - - /** @return list */ - protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - $tableNameSQL = $diff->getOldTable()->getQuotedName($this); - - $sql = []; - - foreach ($diff->getDroppedForeignKeys() as $foreignKey) { - $sql[] = $this->getDropForeignKeySQL($foreignKey->getQuotedName($this), $tableNameSQL); - } - - foreach ($diff->getModifiedForeignKeys() as $foreignKey) { - $sql[] = $this->getDropForeignKeySQL($foreignKey->getQuotedName($this), $tableNameSQL); - } - - foreach ($diff->getDroppedIndexes() as $index) { - $sql[] = $this->getDropIndexSQL($index->getQuotedName($this), $tableNameSQL); - } - - foreach ($diff->getModifiedIndexes() as $index) { - $sql[] = $this->getDropIndexSQL($index->getQuotedName($this), $tableNameSQL); - } - - return $sql; - } - - /** @return list */ - protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - $sql = []; - - $tableNameSQL = $diff->getOldTable()->getQuotedName($this); - - foreach ($diff->getAddedForeignKeys() as $foreignKey) { - $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableNameSQL); - } - - foreach ($diff->getModifiedForeignKeys() as $foreignKey) { - $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableNameSQL); - } - - foreach ($diff->getAddedIndexes() as $index) { - $sql[] = $this->getCreateIndexSQL($index, $tableNameSQL); - } - - foreach ($diff->getModifiedIndexes() as $index) { - $sql[] = $this->getCreateIndexSQL($index, $tableNameSQL); - } - - foreach ($diff->getRenamedIndexes() as $oldIndexName => $index) { - $oldIndexName = new Identifier($oldIndexName); - $sql = array_merge( - $sql, - $this->getRenameIndexSQL($oldIndexName->getQuotedName($this), $index, $tableNameSQL), - ); - } - - return $sql; - } - - /** - * Returns the SQL for renaming an index on a table. - * - * @param string $oldIndexName The name of the index to rename from. - * @param Index $index The definition of the index to rename to. - * @param string $tableName The table to rename the given index on. - * - * @return list The sequence of SQL statements for renaming the given index. - */ - protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName): array - { - return [ - $this->getDropIndexSQL($oldIndexName, $tableName), - $this->getCreateIndexSQL($index, $tableName), - ]; - } - - /** - * Returns the SQL for renaming a column - * - * @param string $tableName The table to rename the column on. - * @param string $oldColumnName The name of the column we want to rename. - * @param string $newColumnName The name we should rename it to. - * - * @return list The sequence of SQL statements for renaming the given column. - */ - protected function getRenameColumnSQL(string $tableName, string $oldColumnName, string $newColumnName): array - { - return [sprintf('ALTER TABLE %s RENAME COLUMN %s TO %s', $tableName, $oldColumnName, $newColumnName)]; - } - - /** - * Gets declaration of a number of columns in bulk. - * - * @param list $columns The properties of the columns to be declared. - */ - public function getColumnDeclarationListSQL(array $columns): string - { - $declarations = []; - - foreach ($columns as $column) { - $declarations[] = $this->getColumnDeclarationSQL($column['name'], $column); - } - - return implode(', ', $declarations); - } - - /** - * Obtains DBMS specific SQL code portion needed to declare a generic type - * column to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param string $name The name of the column to be declared. - * @param ColumnProperties $column Column properties. - * - * @return string DBMS specific SQL code portion that should be used to declare the column. - */ - public function getColumnDeclarationSQL(string $name, array $column): string - { - if (isset($column['columnDefinition'])) { - $declaration = $column['columnDefinition']; - } else { - $default = $this->getDefaultValueDeclarationSQL($column); - - $charset = ! empty($column['charset']) ? - ' ' . $this->getColumnCharsetDeclarationSQL($column['charset']) : ''; - - $collation = ! empty($column['collation']) ? - ' ' . $this->getColumnCollationDeclarationSQL($column['collation']) : ''; - - $notnull = ! empty($column['notnull']) ? ' NOT NULL' : ''; - - $typeDecl = $column['type']->getSQLDeclaration($column, $this); - $declaration = $typeDecl . $charset . $default . $notnull . $collation; - - if ($this->supportsInlineColumnComments() && isset($column['comment']) && $column['comment'] !== '') { - $declaration .= ' ' . $this->getInlineColumnCommentSQL($column['comment']); - } - } - - return $name . ' ' . $declaration; - } - - /** - * Returns the SQL snippet that declares a floating point column of arbitrary precision. - * - * @param array $column - */ - public function getDecimalTypeDeclarationSQL(array $column): string - { - if (! isset($column['precision'])) { - throw InvalidColumnDeclaration::fromInvalidColumnType($column['name'], ColumnPrecisionRequired::new()); - } - - if (! isset($column['scale'])) { - throw InvalidColumnDeclaration::fromInvalidColumnType($column['name'], ColumnScaleRequired::new()); - } - - return 'NUMERIC(' . $column['precision'] . ', ' . $column['scale'] . ')'; - } - - /** - * Obtains DBMS specific SQL code portion needed to set a default value - * declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param array $column The column definition array. - * - * @return string DBMS specific SQL code portion needed to set a default value. - */ - public function getDefaultValueDeclarationSQL(array $column): string - { - if (! isset($column['default'])) { - return empty($column['notnull']) ? ' DEFAULT NULL' : ''; - } - - $default = $column['default']; - - if (! isset($column['type'])) { - return " DEFAULT '" . $default . "'"; - } - - $type = $column['type']; - - if ($type instanceof Types\PhpIntegerMappingType) { - return ' DEFAULT ' . $default; - } - - if ($type instanceof Types\PhpDateTimeMappingType && $default === $this->getCurrentTimestampSQL()) { - return ' DEFAULT ' . $this->getCurrentTimestampSQL(); - } - - if ($type instanceof Types\PhpTimeMappingType && $default === $this->getCurrentTimeSQL()) { - return ' DEFAULT ' . $this->getCurrentTimeSQL(); - } - - if ($type instanceof Types\PhpDateMappingType && $default === $this->getCurrentDateSQL()) { - return ' DEFAULT ' . $this->getCurrentDateSQL(); - } - - if ($type instanceof Types\BooleanType) { - return ' DEFAULT ' . $this->convertBooleans($default); - } - - if (is_int($default) || is_float($default)) { - return ' DEFAULT ' . $default; - } - - return ' DEFAULT ' . $this->quoteStringLiteral($default); - } - - /** - * Obtains DBMS specific SQL code portion needed to set a CHECK constraint - * declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param list $definition The check definition. - * - * @return string DBMS specific SQL code portion needed to set a CHECK constraint. - */ - public function getCheckDeclarationSQL(array $definition): string - { - $constraints = []; - foreach ($definition as $def) { - if (is_string($def)) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6805', - 'Passing column definition to %s() as string is deprecated. Pass the definition as array' - . ' instead.', - __METHOD__, - ); - - $constraints[] = 'CHECK (' . $def . ')'; - } else { - if (isset($def['min'])) { - $constraints[] = 'CHECK (' . $def['name'] . ' >= ' . $def['min'] . ')'; - } - - if (! isset($def['max'])) { - continue; - } - - $constraints[] = 'CHECK (' . $def['name'] . ' <= ' . $def['max'] . ')'; - } - } - - return implode(', ', $constraints); - } - - /** - * Obtains DBMS specific DDL fragment that defines a unique constraint to be used in statements like CREATE - * TABLE or ALTER TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param UniqueConstraint $constraint The unique constraint definition. - * - * @return string DBMS specific DDL fragment that defines the constraint. - */ - public function getUniqueConstraintDeclarationSQL(UniqueConstraint $constraint): string - { - $columns = $constraint->getQuotedColumns($this); - - if (count($columns) === 0) { - throw new InvalidArgumentException('Incomplete definition. "columns" required.'); - } - - $chunks = []; - - if ($constraint->getName() !== '') { - $chunks[] = 'CONSTRAINT'; - $chunks[] = $constraint->getQuotedName($this); - } - - $chunks[] = 'UNIQUE'; - - if ($constraint->hasFlag('clustered')) { - $chunks[] = 'CLUSTERED'; - } - - $chunks[] = sprintf('(%s)', implode(', ', $columns)); - - return implode(' ', $chunks); - } - - /** - * Obtains DBMS specific SQL code portion needed to set an index - * declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param Index $index The index definition. - * - * @return string DBMS specific SQL code portion needed to set an index. - */ - public function getIndexDeclarationSQL(Index $index): string - { - $columns = $index->getColumns(); - - if (count($columns) === 0) { - throw new InvalidArgumentException('Incomplete definition. "columns" required.'); - } - - return $this->getCreateIndexSQLFlags($index) . 'INDEX ' . $index->getQuotedName($this) - . ' (' . implode(', ', $index->getQuotedColumns($this)) . ')' . $this->getPartialIndexSQL($index); - } - - /** - * Some vendors require temporary table names to be qualified specially. - */ - public function getTemporaryTableName(string $tableName): string - { - return $tableName; - } - - /** - * Obtain DBMS specific SQL code portion needed to set the FOREIGN KEY constraint - * of a column declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @return string DBMS specific SQL code portion needed to set the FOREIGN KEY constraint - * of a column declaration. - */ - public function getForeignKeyDeclarationSQL(ForeignKeyConstraint $foreignKey): string - { - $sql = $this->getForeignKeyBaseDeclarationSQL($foreignKey); - $sql .= $this->getAdvancedForeignKeyOptionsSQL($foreignKey); - - return $sql; - } - - /** - * Returns the FOREIGN KEY query section dealing with non-standard options - * as MATCH, INITIALLY DEFERRED, ON UPDATE, ... - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param ForeignKeyConstraint $foreignKey The foreign key definition. - */ - public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey): string - { - $query = ''; - if ($foreignKey->hasOption('onUpdate')) { - $query .= ' ON UPDATE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onUpdate')); - } - - if ($foreignKey->hasOption('onDelete')) { - $query .= ' ON DELETE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete')); - } - - return $query; - } - - /** - * Returns the SQL fragment representing the deferrability of a constraint. - */ - protected function getConstraintDeferrabilitySQL(ForeignKeyConstraint $foreignKey): string - { - $sql = ''; - - if ($foreignKey->hasOption('deferrable')) { - if ($foreignKey->getOption('deferrable') !== false) { - $sql .= ' DEFERRABLE'; - } else { - $sql .= ' NOT DEFERRABLE'; - } - } - - if ($foreignKey->hasOption('deferred')) { - if ($foreignKey->getOption('deferred') !== false) { - $sql .= ' INITIALLY DEFERRED'; - } else { - $sql .= ' INITIALLY IMMEDIATE'; - } - } - - return $sql; - } - - /** - * Returns the given referential action in uppercase if valid, otherwise throws an exception. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param string $action The foreign key referential action. - */ - public function getForeignKeyReferentialActionSQL(string $action): string - { - $upper = strtoupper($action); - - return match ($upper) { - 'CASCADE', - 'SET NULL', - 'NO ACTION', - 'RESTRICT', - 'SET DEFAULT' => $upper, - default => throw new InvalidArgumentException(sprintf('Invalid foreign key action "%s".', $upper)), - }; - } - - /** - * Obtains DBMS specific SQL code portion needed to set the FOREIGN KEY constraint - * of a column declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getForeignKeyBaseDeclarationSQL(ForeignKeyConstraint $foreignKey): string - { - $sql = ''; - if ($foreignKey->getName() !== '') { - $sql .= 'CONSTRAINT ' . $foreignKey->getQuotedName($this) . ' '; - } - - $sql .= 'FOREIGN KEY ('; - - if (count($foreignKey->getLocalColumns()) === 0) { - throw new InvalidArgumentException('Incomplete definition. "local" required.'); - } - - if (count($foreignKey->getForeignColumns()) === 0) { - throw new InvalidArgumentException('Incomplete definition. "foreign" required.'); - } - - if (strlen($foreignKey->getForeignTableName()) === 0) { - throw new InvalidArgumentException('Incomplete definition. "foreignTable" required.'); - } - - return $sql . implode(', ', $foreignKey->getQuotedLocalColumns($this)) - . ') REFERENCES ' - . $foreignKey->getQuotedForeignTableName($this) . ' (' - . implode(', ', $foreignKey->getQuotedForeignColumns($this)) . ')'; - } - - /** - * Obtains DBMS specific SQL code portion needed to set the CHARACTER SET - * of a column declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param string $charset The name of the charset. - * - * @return string DBMS specific SQL code portion needed to set the CHARACTER SET - * of a column declaration. - */ - public function getColumnCharsetDeclarationSQL(string $charset): string - { - return ''; - } - - /** - * Obtains DBMS specific SQL code portion needed to set the COLLATION - * of a column declaration to be used in statements like CREATE TABLE. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - * - * @param string $collation The name of the collation. - * - * @return string DBMS specific SQL code portion needed to set the COLLATION - * of a column declaration. - */ - public function getColumnCollationDeclarationSQL(string $collation): string - { - return $this->supportsColumnCollation() ? 'COLLATE ' . $this->quoteSingleIdentifier($collation) : ''; - } - - /** - * Some platforms need the boolean values to be converted. - * - * The default conversion in this implementation converts to integers (false => 0, true => 1). - * - * Note: if the input is not a boolean the original input might be returned. - * - * There are two contexts when converting booleans: Literals and Prepared Statements. - * This method should handle the literal case - * - * @param mixed $item A boolean or an array of them. - * - * @return mixed A boolean database value or an array of them. - */ - public function convertBooleans(mixed $item): mixed - { - if (is_array($item)) { - foreach ($item as $k => $value) { - if (! is_bool($value)) { - continue; - } - - $item[$k] = (int) $value; - } - } elseif (is_bool($item)) { - $item = (int) $item; - } - - return $item; - } - - /** - * Some platforms have boolean literals that needs to be correctly converted - * - * The default conversion tries to convert value into bool "(bool)$item" - * - * @param T $item - * - * @return (T is null ? null : bool) - * - * @template T - */ - public function convertFromBoolean(mixed $item): ?bool - { - if ($item === null) { - return null; - } - - return (bool) $item; - } - - /** - * This method should handle the prepared statements case. When there is no - * distinction, it's OK to use the same method. - * - * Note: if the input is not a boolean the original input might be returned. - * - * @param mixed $item A boolean or an array of them. - * - * @return mixed A boolean database value or an array of them. - */ - public function convertBooleansToDatabaseValue(mixed $item): mixed - { - return $this->convertBooleans($item); - } - - /** - * Returns the SQL specific for the platform to get the current date. - */ - public function getCurrentDateSQL(): string - { - return 'CURRENT_DATE'; - } - - /** - * Returns the SQL specific for the platform to get the current time. - */ - public function getCurrentTimeSQL(): string - { - return 'CURRENT_TIME'; - } - - /** - * Returns the SQL specific for the platform to get the current timestamp - */ - public function getCurrentTimestampSQL(): string - { - return 'CURRENT_TIMESTAMP'; - } - - /** - * Returns the SQL for a given transaction isolation level Connection constant. - */ - protected function _getTransactionIsolationLevelSQL(TransactionIsolationLevel $level): string - { - return match ($level) { - TransactionIsolationLevel::READ_UNCOMMITTED => 'READ UNCOMMITTED', - TransactionIsolationLevel::READ_COMMITTED => 'READ COMMITTED', - TransactionIsolationLevel::REPEATABLE_READ => 'REPEATABLE READ', - TransactionIsolationLevel::SERIALIZABLE => 'SERIALIZABLE', - }; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListDatabasesSQL(): string - { - throw NotSupported::new(__METHOD__); - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListSequencesSQL(string $database): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * Returns the SQL to list all views of a database or user. - * - * @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. - */ - abstract public function getListViewsSQL(string $database): string; - - public function getCreateViewSQL(string $name, string $sql): string - { - return 'CREATE VIEW ' . $name . ' AS ' . $sql; - } - - public function getDropViewSQL(string $name): string - { - return 'DROP VIEW ' . $name; - } - - public function getSequenceNextValSQL(string $sequence): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * Returns the SQL to create a new database. - * - * @param string $name The name of the database that should be created. - */ - public function getCreateDatabaseSQL(string $name): string - { - return 'CREATE DATABASE ' . $name; - } - - /** - * Returns the SQL snippet to drop an existing database. - * - * @param string $name The name of the database that should be dropped. - */ - public function getDropDatabaseSQL(string $name): string - { - return 'DROP DATABASE ' . $name; - } - - /** - * Returns the SQL to set the transaction isolation level. - */ - abstract public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string; - - /** - * Obtains DBMS specific SQL to be used to create datetime columns in - * statements like CREATE TABLE. - * - * @param array $column - */ - abstract public function getDateTimeTypeDeclarationSQL(array $column): string; - - /** - * Obtains DBMS specific SQL to be used to create datetime with timezone offset columns. - * - * @param array $column - */ - public function getDateTimeTzTypeDeclarationSQL(array $column): string - { - return $this->getDateTimeTypeDeclarationSQL($column); - } - - /** - * Obtains DBMS specific SQL to be used to create date columns in statements - * like CREATE TABLE. - * - * @param array $column - */ - abstract public function getDateTypeDeclarationSQL(array $column): string; - - /** - * Obtains DBMS specific SQL to be used to create time columns in statements - * like CREATE TABLE. - * - * @param array $column - */ - abstract public function getTimeTypeDeclarationSQL(array $column): string; - - /** @param array $column */ - public function getFloatDeclarationSQL(array $column): string - { - return 'DOUBLE PRECISION'; - } - - /** @param array $column */ - public function getSmallFloatDeclarationSQL(array $column): string - { - return 'REAL'; - } - - /** - * Gets the default transaction isolation level of the platform. - * - * @return TransactionIsolationLevel The default isolation level. - */ - public function getDefaultTransactionIsolationLevel(): TransactionIsolationLevel - { - return TransactionIsolationLevel::READ_COMMITTED; - } - - /* supports*() methods */ - - /** - * Whether the platform supports sequences. - */ - public function supportsSequences(): bool - { - return false; - } - - /** - * Whether the platform supports identity columns. - * - * Identity columns are columns that receive an auto-generated value from the - * database on insert of a row. - */ - public function supportsIdentityColumns(): bool - { - return false; - } - - /** - * Whether the platform supports partial indexes. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function supportsPartialIndexes(): bool - { - return false; - } - - /** - * Whether the platform supports indexes with column length definitions. - * - * @deprecated - */ - public function supportsColumnLengthIndexes(): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated.', - __METHOD__, - ); - - return false; - } - - /** - * Whether the platform supports savepoints. - */ - public function supportsSavepoints(): bool - { - return true; - } - - /** - * Whether the platform supports releasing savepoints. - */ - public function supportsReleaseSavepoints(): bool - { - return $this->supportsSavepoints(); - } - - /** - * Whether the platform supports database schemas. - */ - public function supportsSchemas(): bool - { - return false; - } - - /** - * Whether this platform support to add inline column comments as postfix. - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function supportsInlineColumnComments(): bool - { - return false; - } - - /** - * Whether this platform support the proprietary syntax "COMMENT ON asset". - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function supportsCommentOnStatement(): bool - { - return false; - } - - /** - * Does this platform support column collation? - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function supportsColumnCollation(): bool - { - return false; - } - - /** - * Gets the format string, as accepted by the date() function, that describes - * the format of a stored datetime value of this platform. - * - * @return string The format string. - */ - public function getDateTimeFormatString(): string - { - return 'Y-m-d H:i:s'; - } - - /** - * Gets the format string, as accepted by the date() function, that describes - * the format of a stored datetime with timezone value of this platform. - * - * @return string The format string. - */ - public function getDateTimeTzFormatString(): string - { - return 'Y-m-d H:i:s'; - } - - /** - * Gets the format string, as accepted by the date() function, that describes - * the format of a stored date value of this platform. - * - * @return string The format string. - */ - public function getDateFormatString(): string - { - return 'Y-m-d'; - } - - /** - * Gets the format string, as accepted by the date() function, that describes - * the format of a stored time value of this platform. - * - * @return string The format string. - */ - public function getTimeFormatString(): string - { - return 'H:i:s'; - } - - /** - * Adds an driver-specific LIMIT clause to the query. - */ - final public function modifyLimitQuery(string $query, ?int $limit, int $offset = 0): string - { - if ($offset < 0) { - throw new InvalidArgumentException(sprintf( - 'Offset must be a positive integer or zero, %d given.', - $offset, - )); - } - - return $this->doModifyLimitQuery($query, $limit, $offset); - } - - /** - * Adds an platform-specific LIMIT clause to the query. - */ - protected function doModifyLimitQuery(string $query, ?int $limit, int $offset): string - { - if ($limit !== null) { - $query .= sprintf(' LIMIT %d', $limit); - } - - if ($offset > 0) { - $query .= sprintf(' OFFSET %d', $offset); - } - - return $query; - } - - /** - * Maximum length of any given database identifier, like tables or column names. - * - * @return positive-int - */ - public function getMaxIdentifierLength(): int - { - return 63; - } - - /** - * Returns the insert SQL for an empty insert statement. - */ - public function getEmptyIdentityInsertSQL(string $quotedTableName, string $quotedIdentifierColumnName): string - { - return 'INSERT INTO ' . $quotedTableName . ' (' . $quotedIdentifierColumnName . ') VALUES (null)'; - } - - /** - * Generates a Truncate Table SQL statement for a given table. - * - * Cascade is not supported on many platforms but would optionally cascade the truncate by - * following the foreign keys. - */ - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - - return 'TRUNCATE ' . $tableIdentifier->getQuotedName($this); - } - - /** - * This is for test reasons, many vendors have special requirements for dummy statements. - */ - public function getDummySelectSQL(string $expression = '1'): string - { - return sprintf('SELECT %s', $expression); - } - - /** - * Returns the SQL to create a new savepoint. - */ - public function createSavePoint(string $savepoint): string - { - return 'SAVEPOINT ' . $savepoint; - } - - /** - * Returns the SQL to release a savepoint. - */ - public function releaseSavePoint(string $savepoint): string - { - return 'RELEASE SAVEPOINT ' . $savepoint; - } - - /** - * Returns the SQL to rollback a savepoint. - */ - public function rollbackSavePoint(string $savepoint): string - { - return 'ROLLBACK TO SAVEPOINT ' . $savepoint; - } - - /** - * Returns the keyword list instance of this platform. - * - * @deprecated - */ - final public function getReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - // Store the instance so it doesn't need to be generated on every request. - return $this->_keywords ??= $this->createReservedKeywordsList(); - } - - /** - * Creates an instance of the reserved keyword list of this platform. - * - * @deprecated - */ - abstract protected function createReservedKeywordsList(): KeywordList; - - /** - * Quotes a literal string. - * This method is NOT meant to fix SQL injections! - * It is only meant to escape this platform's string literal - * quote character inside the given literal string. - * - * @param string $str The literal string to be quoted. - * - * @return string The quoted literal string. - */ - public function quoteStringLiteral(string $str): string - { - return "'" . str_replace("'", "''", $str) . "'"; - } - - /** - * Escapes metacharacters in a string intended to be used with a LIKE - * operator. - * - * @param string $inputString a literal, unquoted string - * @param string $escapeChar should be reused by the caller in the LIKE - * expression. - */ - final public function escapeStringForLike(string $inputString, string $escapeChar): string - { - $sql = preg_replace( - '~([' . preg_quote($this->getLikeWildcardCharacters() . $escapeChar, '~') . '])~u', - addcslashes($escapeChar, '\\') . '$1', - $inputString, - ); - - assert(is_string($sql)); - - return $sql; - } - - /** - * @return ColumnProperties An associative array with the name of the properties of the column being declared as - * array keys. - */ - private function columnToArray(Column $column): array - { - return array_merge($column->toArray(), [ - 'name' => $column->getQuotedName($this), - 'version' => $column->hasPlatformOption('version') ? $column->getPlatformOption('version') : false, - 'comment' => $column->getComment(), - ]); - } - - /** @internal */ - public function createSQLParser(): Parser - { - return new Parser(false); - } - - protected function getLikeWildcardCharacters(): string - { - return '%_'; - } - - /** - * Compares the definitions of the given columns in the context of this platform. - */ - public function columnsEqual(Column $column1, Column $column2): bool - { - $column1Array = $this->columnToArray($column1); - $column2Array = $this->columnToArray($column2); - - // ignore explicit columnDefinition since it's not set on the Column generated by the SchemaManager - $column1Array['columnDefinition'] = null; - $column2Array['columnDefinition'] = null; - - if ( - $this->getColumnDeclarationSQL('', $column1Array) - !== $this->getColumnDeclarationSQL('', $column2Array) - ) { - return false; - } - - // If the platform supports inline comments, all comparison is already done above - if ($this->supportsInlineColumnComments()) { - return true; - } - - return $column1->getComment() === $column2->getComment(); - } - - /** - * Returns the union select query part surrounded by parenthesis if possible for platform. - */ - public function getUnionSelectPartSQL(string $subQuery): string - { - return sprintf('(%s)', $subQuery); - } - - /** - * Returns the `UNION ALL` keyword. - */ - public function getUnionAllSQL(): string - { - return 'UNION ALL'; - } - - /** - * Returns the compatible `UNION DISTINCT` keyword. - */ - public function getUnionDistinctSQL(): string - { - return 'UNION'; - } - - public function getUnquotedIdentifierFolding(): UnquotedIdentifierFolding - { - if ($this->unquotedIdentifierFolding === null) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6823', - 'Not calling the %s constructor from child class constructors is deprecated.', - self::class, - ); - - $this->unquotedIdentifierFolding = UnquotedIdentifierFolding::UPPER; - } - - return $this->unquotedIdentifierFolding; - } - - /** - * Creates the schema manager that can be used to inspect and change the underlying - * database schema according to the dialect of the platform. - */ - abstract public function createSchemaManager(Connection $connection): AbstractSchemaManager; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DB2Platform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DB2Platform.php deleted file mode 100644 index 3e347e0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DB2Platform.php +++ /dev/null @@ -1,596 +0,0 @@ -doctrineTypeMapping = [ - 'bigint' => Types::BIGINT, - 'binary' => Types::BINARY, - 'blob' => Types::BLOB, - 'character' => Types::STRING, - 'clob' => Types::TEXT, - 'date' => Types::DATE_MUTABLE, - 'decimal' => Types::DECIMAL, - 'double' => Types::FLOAT, - 'integer' => Types::INTEGER, - 'real' => Types::SMALLFLOAT, - 'smallint' => Types::SMALLINT, - 'time' => Types::TIME_MUTABLE, - 'timestamp' => Types::DATETIME_MUTABLE, - 'varbinary' => Types::BINARY, - 'varchar' => Types::STRING, - ]; - } - - protected function getBinaryTypeDeclarationSQLSnippet(?int $length): string - { - return $this->getCharTypeDeclarationSQLSnippet($length) . ' FOR BIT DATA'; - } - - protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length): string - { - return $this->getVarcharTypeDeclarationSQLSnippet($length) . ' FOR BIT DATA'; - } - - /** - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - // todo clob(n) with $column['length']; - return 'CLOB(1M)'; - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'SMALLINT'; - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'INTEGER' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - if (! empty($column['autoincrement'])) { - return ' GENERATED BY DEFAULT AS IDENTITY'; - } - - return ''; - } - - public function getBitAndComparisonExpression(string $value1, string $value2): string - { - return 'BITAND(' . $value1 . ', ' . $value2 . ')'; - } - - public function getBitOrComparisonExpression(string $value1, string $value2): string - { - return 'BITOR(' . $value1 . ', ' . $value2 . ')'; - } - - protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string { - switch ($unit) { - case DateIntervalUnit::WEEK: - $interval = $this->multiplyInterval($interval, 7); - $unit = DateIntervalUnit::DAY; - break; - - case DateIntervalUnit::QUARTER: - $interval = $this->multiplyInterval($interval, 3); - $unit = DateIntervalUnit::MONTH; - break; - } - - return $date . ' ' . $operator . ' ' . $interval . ' ' . $unit->value; - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return 'DAYS(' . $date1 . ') - DAYS(' . $date2 . ')'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - if (isset($column['version']) && $column['version'] === true) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6940', - 'The "version" column platform option is deprecated.', - ); - - return 'TIMESTAMP(0) WITH DEFAULT'; - } - - return 'TIMESTAMP(0)'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'TIME'; - } - - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - - return 'TRUNCATE ' . $tableIdentifier->getQuotedName($this) . ' IMMEDIATE'; - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - throw NotSupported::new(__METHOD__); - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return 'SELECT NAME, TEXT FROM SYSIBM.SYSVIEWS'; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsCommentOnStatement(): bool - { - return true; - } - - public function getCurrentDateSQL(): string - { - return 'CURRENT DATE'; - } - - public function getCurrentTimeSQL(): string - { - return 'CURRENT TIME'; - } - - public function getCurrentTimestampSQL(): string - { - return 'CURRENT TIMESTAMP'; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getIndexDeclarationSQL(Index $index): string - { - // Index declaration in statements like CREATE TABLE is not supported. - throw NotSupported::new(__METHOD__); - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $indexes = []; - if (isset($options['indexes'])) { - $indexes = $options['indexes']; - } - - $options['indexes'] = []; - - $sqls = parent::_getCreateTableSQL($name, $columns, $options); - - foreach ($indexes as $definition) { - $sqls[] = $this->getCreateIndexSQL($definition, $name); - } - - return $sqls; - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $sql = []; - $commentsSQL = []; - - $tableNameSQL = $diff->getOldTable()->getQuotedName($this); - - $queryParts = []; - foreach ($diff->getAddedColumns() as $column) { - $columnDef = $column->toArray(); - $queryPart = 'ADD COLUMN ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnDef); - - // Adding non-nullable columns to a table requires a default value to be specified. - if ( - ! empty($columnDef['notnull']) && - ! isset($columnDef['default']) && - empty($columnDef['autoincrement']) - ) { - $queryPart .= ' WITH DEFAULT'; - } - - $queryParts[] = $queryPart; - - $comment = $column->getComment(); - - if ($comment === '') { - continue; - } - - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $column->getQuotedName($this), - $comment, - ); - } - - $needsReorg = false; - foreach ($diff->getDroppedColumns() as $column) { - $queryParts[] = 'DROP COLUMN ' . $column->getQuotedName($this); - $needsReorg = true; - } - - foreach ($diff->getChangedColumns() as $columnDiff) { - if ($columnDiff->hasCommentChanged()) { - $newColumn = $columnDiff->getNewColumn(); - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $newColumn->getQuotedName($this), - $newColumn->getComment(), - ); - } - - $this->gatherAlterColumnSQL( - $tableNameSQL, - $columnDiff, - $sql, - $queryParts, - $needsReorg, - ); - } - - if (count($queryParts) > 0) { - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . implode(' ', $queryParts); - } - - // Some table alteration operations require a table reorganization. - if ($needsReorg) { - $sql[] = "CALL SYSPROC.ADMIN_CMD ('REORG TABLE " . $tableNameSQL . "')"; - } - - return array_merge( - $this->getPreAlterTableIndexForeignKeySQL($diff), - $sql, - $commentsSQL, - $this->getPostAlterTableIndexForeignKeySQL($diff), - ); - } - - public function getRenameTableSQL(string $oldName, string $newName): string - { - return sprintf('RENAME TABLE %s TO %s', $oldName, $newName); - } - - /** - * Gathers the table alteration SQL for a given column diff. - * - * @param string $table The table to gather the SQL for. - * @param ColumnDiff $columnDiff The column diff to evaluate. - * @param list $sql The sequence of table alteration statements to fill. - * @param list $queryParts The sequence of column alteration clauses to fill. - */ - private function gatherAlterColumnSQL( - string $table, - ColumnDiff $columnDiff, - array &$sql, - array &$queryParts, - bool &$needsReorg, - ): void { - $alterColumnClauses = $this->getAlterColumnClausesSQL($columnDiff, $needsReorg); - - if (count($alterColumnClauses) < 1) { - return; - } - - // If we have a single column alteration, we can append the clause to the main query. - if (count($alterColumnClauses) === 1) { - $queryParts[] = current($alterColumnClauses); - - return; - } - - // We have multiple alterations for the same column, - // so we need to trigger a complete ALTER TABLE statement - // for each ALTER COLUMN clause. - foreach ($alterColumnClauses as $alterColumnClause) { - $sql[] = 'ALTER TABLE ' . $table . ' ' . $alterColumnClause; - } - } - - /** - * Returns the ALTER COLUMN SQL clauses for altering a column described by the given column diff. - * - * @return string[] - */ - private function getAlterColumnClausesSQL(ColumnDiff $columnDiff, bool &$needsReorg): array - { - $newColumn = $columnDiff->getNewColumn(); - $columnArray = $newColumn->toArray(); - - $newName = $columnDiff->getNewColumn()->getQuotedName($this); - $oldName = $columnDiff->getOldColumn()->getQuotedName($this); - - $alterClause = 'ALTER COLUMN ' . $newName; - - if ($newColumn->getColumnDefinition() !== null) { - $needsReorg = true; - - return [$alterClause . ' ' . $newColumn->getColumnDefinition()]; - } - - $clauses = []; - - if ($columnDiff->hasNameChanged()) { - $clauses[] = 'RENAME COLUMN ' . $oldName . ' TO ' . $newName; - } - - if ( - $columnDiff->hasTypeChanged() || - $columnDiff->hasLengthChanged() || - $columnDiff->hasPrecisionChanged() || - $columnDiff->hasScaleChanged() || - $columnDiff->hasFixedChanged() - ) { - $needsReorg = true; - $clauses[] = $alterClause . ' SET DATA TYPE ' . $newColumn->getType() - ->getSQLDeclaration($columnArray, $this); - } - - if ($columnDiff->hasNotNullChanged()) { - $needsReorg = true; - $clauses[] = $newColumn->getNotnull() ? $alterClause . ' SET NOT NULL' : $alterClause . ' DROP NOT NULL'; - } - - if ($columnDiff->hasDefaultChanged()) { - if ($newColumn->getDefault() !== null) { - $defaultClause = $this->getDefaultValueDeclarationSQL($columnArray); - - if ($defaultClause !== '') { - $needsReorg = true; - $clauses[] = $alterClause . ' SET' . $defaultClause; - } - } else { - $needsReorg = true; - $clauses[] = $alterClause . ' DROP DEFAULT'; - } - } - - return $clauses; - } - - /** - * {@inheritDoc} - */ - protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName): array - { - if (str_contains($tableName, '.')) { - [$schema] = explode('.', $tableName); - $oldIndexName = $schema . '.' . $oldIndexName; - } - - return ['RENAME INDEX ' . $oldIndexName . ' TO ' . $index->getQuotedName($this)]; - } - - /** - * {@inheritDoc} - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getDefaultValueDeclarationSQL(array $column): string - { - if (isset($column['autoincrement']) && $column['autoincrement'] === true) { - return ''; - } - - if (isset($column['version']) && $column['version'] === true) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6940', - 'The "version" column platform option is deprecated.', - ); - - if ($column['type'] instanceof DateTimeType) { - $column['default'] = '1'; - } - } - - return parent::getDefaultValueDeclarationSQL($column); - } - - public function getEmptyIdentityInsertSQL(string $quotedTableName, string $quotedIdentifierColumnName): string - { - return 'INSERT INTO ' . $quotedTableName . ' (' . $quotedIdentifierColumnName . ') VALUES (DEFAULT)'; - } - - public function getCreateTemporaryTableSnippetSQL(): string - { - return 'DECLARE GLOBAL TEMPORARY TABLE'; - } - - public function getTemporaryTableName(string $tableName): string - { - return 'SESSION.' . $tableName; - } - - protected function doModifyLimitQuery(string $query, ?int $limit, int $offset): string - { - if ($offset > 0) { - $query .= sprintf(' OFFSET %d ROWS', $offset); - } - - if ($limit !== null) { - $query .= sprintf(' FETCH NEXT %d ROWS ONLY', $limit); - } - - return $query; - } - - public function getLocateExpression(string $string, string $substring, ?string $start = null): string - { - if ($start === null) { - return sprintf('LOCATE(%s, %s)', $substring, $string); - } - - return sprintf('LOCATE(%s, %s, %s)', $substring, $string, $start); - } - - public function getSubstringExpression(string $string, string $start, ?string $length = null): string - { - if ($length === null) { - return sprintf('SUBSTR(%s, %s)', $string, $start); - } - - return sprintf('SUBSTR(%s, %s, %s)', $string, $start, $length); - } - - public function getLengthExpression(string $string): string - { - return 'LENGTH(' . $string . ', CODEUNITS32)'; - } - - public function getCurrentDatabaseExpression(): string - { - return 'CURRENT_USER'; - } - - public function supportsIdentityColumns(): bool - { - return true; - } - - public function createSelectSQLBuilder(): SelectSQLBuilder - { - return new DefaultSelectSQLBuilder($this, 'WITH RR USE AND KEEP UPDATE LOCKS', null); - } - - public function getDummySelectSQL(string $expression = '1'): string - { - return sprintf('SELECT %s FROM sysibm.sysdummy1', $expression); - } - - /** - * {@inheritDoc} - * - * DB2 supports savepoints, but they work semantically different than on other vendor platforms. - * - * TODO: We have to investigate how to get DB2 up and running with savepoints. - */ - public function supportsSavepoints(): bool - { - return false; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new DB2Keywords(); - } - - public function createSchemaManager(Connection $connection): DB2SchemaManager - { - return new DB2SchemaManager($connection, $this); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DateIntervalUnit.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DateIntervalUnit.php deleted file mode 100644 index ba783f3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/DateIntervalUnit.php +++ /dev/null @@ -1,17 +0,0 @@ -keywords === null) { - $this->initializeKeywords(); - } - - return isset($this->keywords[strtoupper($word)]); - } - - protected function initializeKeywords(): void - { - $this->keywords = array_flip(array_map('strtoupper', $this->getKeywords())); - } - - /** - * Returns the list of keywords. - * - * @return string[] - */ - abstract protected function getKeywords(): array; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php deleted file mode 100644 index de271aa..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php +++ /dev/null @@ -1,265 +0,0 @@ -getQuotedName($this)]; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1060Platform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1060Platform.php deleted file mode 100644 index 15eb803..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MariaDB1060Platform.php +++ /dev/null @@ -1,20 +0,0 @@ -quoteStringLiteral($databaseName); - - // The check for `CONSTRAINT_SCHEMA = $databaseName` is mandatory here to prevent performance issues - return <<getOldTable()->getQuotedName($this); - - $modifiedForeignKeys = $diff->getModifiedForeignKeys(); - - foreach ($this->getRemainingForeignKeyConstraintsRequiringRenamedIndexes($diff) as $foreignKey) { - if (in_array($foreignKey, $modifiedForeignKeys, true)) { - continue; - } - - $sql[] = $this->getDropForeignKeySQL($foreignKey->getQuotedName($this), $tableName); - } - - return $sql; - } - - /** - * {@inheritDoc} - */ - protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - return array_merge( - parent::getPostAlterTableIndexForeignKeySQL($diff), - $this->getPostAlterTableRenameIndexForeignKeySQL($diff), - ); - } - - /** @return list */ - private function getPostAlterTableRenameIndexForeignKeySQL(TableDiff $diff): array - { - $sql = []; - - $tableName = $diff->getOldTable()->getQuotedName($this); - - $modifiedForeignKeys = $diff->getModifiedForeignKeys(); - - foreach ($this->getRemainingForeignKeyConstraintsRequiringRenamedIndexes($diff) as $foreignKey) { - if (in_array($foreignKey, $modifiedForeignKeys, true)) { - continue; - } - - $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableName); - } - - return $sql; - } - - /** - * Returns the remaining foreign key constraints that require one of the renamed indexes. - * - * "Remaining" here refers to the diff between the foreign keys currently defined in the associated - * table and the foreign keys to be removed. - * - * @param TableDiff $diff The table diff to evaluate. - * - * @return ForeignKeyConstraint[] - */ - private function getRemainingForeignKeyConstraintsRequiringRenamedIndexes(TableDiff $diff): array - { - $renamedIndexes = $diff->getRenamedIndexes(); - - if (count($renamedIndexes) === 0) { - return []; - } - - $foreignKeys = []; - - $remainingForeignKeys = array_diff_key( - $diff->getOldTable()->getForeignKeys(), - $diff->getDroppedForeignKeys(), - ); - - foreach ($remainingForeignKeys as $foreignKey) { - foreach ($renamedIndexes as $index) { - if ($foreignKey->intersectsIndexColumns($index)) { - $foreignKeys[] = $foreignKey; - - break; - } - } - } - - return $foreignKeys; - } - - /** {@inheritDoc} */ - public function getColumnDeclarationSQL(string $name, array $column): string - { - // MariaDb forces column collation to utf8mb4_bin where the column was declared as JSON so ignore - // collation and character set for json columns as attempting to set them can cause an error. - if ($this->getJsonTypeDeclarationSQL([]) === 'JSON' && ($column['type'] ?? null) instanceof JsonType) { - unset($column['collation']); - unset($column['charset']); - } - - return parent::getColumnDeclarationSQL($name, $column); - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new MariaDBKeywords(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider.php deleted file mode 100644 index 305a7e3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider.php +++ /dev/null @@ -1,12 +0,0 @@ - */ - private array $cache = []; - - public function __construct(private readonly CharsetMetadataProvider $charsetMetadataProvider) - { - } - - public function getDefaultCharsetCollation(string $charset): ?string - { - if (array_key_exists($charset, $this->cache)) { - return $this->cache[$charset]; - } - - return $this->cache[$charset] = $this->charsetMetadataProvider->getDefaultCharsetCollation($charset); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider/ConnectionCharsetMetadataProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider/ConnectionCharsetMetadataProvider.php deleted file mode 100644 index 65b63df..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CharsetMetadataProvider/ConnectionCharsetMetadataProvider.php +++ /dev/null @@ -1,37 +0,0 @@ -connection->fetchOne( - <<<'SQL' - SELECT DEFAULT_COLLATE_NAME - FROM information_schema.CHARACTER_SETS - WHERE CHARACTER_SET_NAME = ?; - SQL - , - [$charset], - ); - - if ($collation !== false) { - return $collation; - } - - return null; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider.php deleted file mode 100644 index 028edf9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider.php +++ /dev/null @@ -1,16 +0,0 @@ - */ - private array $cache = []; - - public function __construct(private readonly CollationMetadataProvider $collationMetadataProvider) - { - } - - public function getCollationCharset(string $collation): ?string - { - if (array_key_exists($collation, $this->cache)) { - return $this->cache[$collation]; - } - - return $this->cache[$collation] = $this->collationMetadataProvider->getCollationCharset($collation); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider/ConnectionCollationMetadataProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider/ConnectionCollationMetadataProvider.php deleted file mode 100644 index fcd9995..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/CollationMetadataProvider/ConnectionCollationMetadataProvider.php +++ /dev/null @@ -1,37 +0,0 @@ -connection->fetchOne( - <<<'SQL' -SELECT CHARACTER_SET_NAME -FROM information_schema.COLLATIONS -WHERE COLLATION_NAME = ?; -SQL - , - [$collation], - ); - - if ($charset !== false) { - return $charset; - } - - return null; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/Comparator.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/Comparator.php deleted file mode 100644 index 30956ec..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/Comparator.php +++ /dev/null @@ -1,99 +0,0 @@ -normalizeTable($oldTable), - $this->normalizeTable($newTable), - ); - } - - private function normalizeTable(Table $table): Table - { - $charset = $table->getOption('charset'); - $collation = $table->getOption('collation'); - - if ($charset === null && $collation !== null) { - $charset = $this->collationMetadataProvider->getCollationCharset($collation); - } elseif ($charset !== null && $collation === null) { - $collation = $this->charsetMetadataProvider->getDefaultCharsetCollation($charset); - } elseif ($charset === null && $collation === null) { - $charset = $this->defaultTableOptions->getCharset(); - $collation = $this->defaultTableOptions->getCollation(); - } - - $tableOptions = [ - 'charset' => $charset, - 'collation' => $collation, - ]; - - $table = clone $table; - - foreach ($table->getColumns() as $column) { - $originalOptions = $column->getPlatformOptions(); - $normalizedOptions = $this->normalizeOptions($originalOptions); - - $overrideOptions = array_diff_assoc($normalizedOptions, $tableOptions); - - if ($overrideOptions === $originalOptions) { - continue; - } - - /** @phpstan-ignore argument.type */ - $column->setPlatformOptions($overrideOptions); - } - - return $table; - } - - /** - * @param PlatformOptions $options - * - * @return PlatformOptions - */ - private function normalizeOptions(array $options): array - { - if (isset($options['charset']) && ! isset($options['collation'])) { - $options['collation'] = $this->charsetMetadataProvider->getDefaultCharsetCollation($options['charset']); - } elseif (isset($options['collation']) && ! isset($options['charset'])) { - $options['charset'] = $this->collationMetadataProvider->getCollationCharset($options['collation']); - } - - return $options; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/DefaultTableOptions.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/DefaultTableOptions.php deleted file mode 100644 index efa399d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL/DefaultTableOptions.php +++ /dev/null @@ -1,23 +0,0 @@ -charset; - } - - public function getCollation(): string - { - return $this->collation; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL80Platform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL80Platform.php deleted file mode 100644 index 01dcfb4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/MySQL80Platform.php +++ /dev/null @@ -1,41 +0,0 @@ -getQuotedName($this)]; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new MySQLKeywords(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/OraclePlatform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/OraclePlatform.php deleted file mode 100644 index b2d1728..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/OraclePlatform.php +++ /dev/null @@ -1,865 +0,0 @@ -multiplyInterval($interval, 3); - break; - - case DateIntervalUnit::YEAR: - $interval = $this->multiplyInterval($interval, 12); - break; - } - - return 'ADD_MONTHS(' . $date . ', ' . $operator . $interval . ')'; - - default: - $calculationClause = ''; - - switch ($unit) { - case DateIntervalUnit::SECOND: - $calculationClause = '/24/60/60'; - break; - - case DateIntervalUnit::MINUTE: - $calculationClause = '/24/60'; - break; - - case DateIntervalUnit::HOUR: - $calculationClause = '/24'; - break; - - case DateIntervalUnit::WEEK: - $calculationClause = '*7'; - break; - } - - return '(' . $date . $operator . $interval . $calculationClause . ')'; - } - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return sprintf('TRUNC(%s) - TRUNC(%s)', $date1, $date2); - } - - public function getBitAndComparisonExpression(string $value1, string $value2): string - { - return 'BITAND(' . $value1 . ', ' . $value2 . ')'; - } - - public function getCurrentDatabaseExpression(): string - { - return "SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')"; - } - - public function getBitOrComparisonExpression(string $value1, string $value2): string - { - return '(' . $value1 . '-' . - $this->getBitAndComparisonExpression($value1, $value2) - . '+' . $value2 . ')'; - } - - /** @deprecated */ - public function getCreatePrimaryKeySQL(Index $index, string $table): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - '%s() is deprecated.', - __METHOD__, - ); - - return 'ALTER TABLE ' . $table . ' ADD CONSTRAINT ' . $index->getQuotedName($this) - . ' PRIMARY KEY (' . implode(', ', $index->getQuotedColumns($this)) . ')'; - } - - /** - * {@inheritDoc} - * - * Need to specifiy minvalue, since start with is hidden in the system and MINVALUE <= START WITH. - * Therefore we can use MINVALUE to be able to get a hint what START WITH was for later introspection - * in {@see listSequences()} - */ - public function getCreateSequenceSQL(Sequence $sequence): string - { - return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) . - ' START WITH ' . $sequence->getInitialValue() . - ' MINVALUE ' . $sequence->getInitialValue() . - ' INCREMENT BY ' . $sequence->getAllocationSize() . - $this->getSequenceCacheSQL($sequence); - } - - public function getAlterSequenceSQL(Sequence $sequence): string - { - return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) . - ' INCREMENT BY ' . $sequence->getAllocationSize() - . $this->getSequenceCacheSQL($sequence); - } - - /** - * Cache definition for sequences - */ - private function getSequenceCacheSQL(Sequence $sequence): string - { - if ($sequence->getCache() === 0) { - return ' NOCACHE'; - } - - if ($sequence->getCache() === 1) { - return ' NOCACHE'; - } - - if ($sequence->getCache() > 1) { - return ' CACHE ' . $sequence->getCache(); - } - - return ''; - } - - public function getSequenceNextValSQL(string $sequence): string - { - return 'SELECT ' . $sequence . '.nextval FROM DUAL'; - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - return 'SET TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level); - } - - protected function _getTransactionIsolationLevelSQL(TransactionIsolationLevel $level): string - { - return match ($level) { - TransactionIsolationLevel::READ_UNCOMMITTED => 'READ UNCOMMITTED', - TransactionIsolationLevel::READ_COMMITTED => 'READ COMMITTED', - TransactionIsolationLevel::REPEATABLE_READ, - TransactionIsolationLevel::SERIALIZABLE => 'SERIALIZABLE', - }; - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'NUMBER(1)'; - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'NUMBER(10)'; - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - return 'NUMBER(20)'; - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - return 'NUMBER(5)'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - return 'TIMESTAMP(0)'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTzTypeDeclarationSQL(array $column): string - { - return 'TIMESTAMP(0) WITH TIME ZONE'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - return ''; - } - - protected function getVarcharTypeDeclarationSQLSnippet(?int $length): string - { - if ($length === null) { - throw ColumnLengthRequired::new($this, 'VARCHAR2'); - } - - return sprintf('VARCHAR2(%d)', $length); - } - - protected function getBinaryTypeDeclarationSQLSnippet(?int $length): string - { - if ($length === null) { - throw ColumnLengthRequired::new($this, 'RAW'); - } - - return sprintf('RAW(%d)', $length); - } - - protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length): string - { - return $this->getBinaryTypeDeclarationSQLSnippet($length); - } - - /** - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - return 'CLOB'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListDatabasesSQL(): string - { - return 'SELECT username FROM all_users'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListSequencesSQL(string $database): string - { - return 'SELECT SEQUENCE_NAME, MIN_VALUE, INCREMENT_BY FROM SYS.ALL_SEQUENCES WHERE SEQUENCE_OWNER = ' - . $this->quoteStringLiteral( - $this->normalizeIdentifier($database)->getName(), - ); - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $indexes = $options['indexes'] ?? []; - $options['indexes'] = []; - $sql = parent::_getCreateTableSQL($name, $columns, $options); - - foreach ($columns as $column) { - if (isset($column['sequence'])) { - $sql[] = $this->getCreateSequenceSQL($column['sequence']); - } - - if ( - ! isset($column['autoincrement']) || $column['autoincrement'] === false - ) { - continue; - } - - $sql = array_merge($sql, $this->getCreateAutoincrementSql($column['name'], $name)); - } - - foreach ($indexes as $index) { - $sql[] = $this->getCreateIndexSQL($index, $name); - } - - return $sql; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return 'SELECT view_name, text FROM sys.user_views'; - } - - /** - * @internal The method should be only used by the {@see OraclePlatform} class. - * - * @return array - */ - protected function getCreateAutoincrementSql(string $name, string $table, int $start = 1): array - { - $tableIdentifier = $this->normalizeIdentifier($table); - $quotedTableName = $tableIdentifier->getQuotedName($this); - $unquotedTableName = $tableIdentifier->getName(); - - $nameIdentifier = $this->normalizeIdentifier($name); - $quotedName = $nameIdentifier->getQuotedName($this); - - $sql = []; - - $autoincrementIdentifierName = $this->getAutoincrementIdentifierName($tableIdentifier); - - $idx = new Index($autoincrementIdentifierName, [$quotedName], true, true); - - $sql[] = sprintf( - <<<'SQL' -DECLARE - CONSTRAINTS_COUNT NUMBER; -BEGIN - SELECT COUNT(CONSTRAINT_NAME) INTO CONSTRAINTS_COUNT - FROM USER_CONSTRAINTS - WHERE TABLE_NAME = %s - AND CONSTRAINT_TYPE = 'P'; - IF CONSTRAINTS_COUNT = 0 THEN - EXECUTE IMMEDIATE %s; - END IF; -END; -SQL, - $this->quoteStringLiteral($unquotedTableName), - $this->quoteStringLiteral($this->getCreateIndexSQL($idx, $quotedTableName)), - ); - - $sequenceName = $this->getIdentitySequenceName( - $tableIdentifier->isQuoted() ? $quotedTableName : $unquotedTableName, - ); - $sequence = new Sequence($sequenceName, $start); - $sql[] = $this->getCreateSequenceSQL($sequence); - - $sql[] = sprintf( - <<<'SQL' -CREATE TRIGGER %1$s - BEFORE INSERT - ON %2$s - FOR EACH ROW -DECLARE - last_Sequence NUMBER; - last_InsertID NUMBER; -BEGIN - IF (:NEW.%3$s IS NULL OR :NEW.%3$s = 0) THEN - SELECT %4$s.NEXTVAL INTO :NEW.%3$s FROM DUAL; - ELSE - SELECT NVL(Last_Number, 0) INTO last_Sequence - FROM USER_SEQUENCES - WHERE Sequence_Name = %5$s; - SELECT :NEW.%3$s INTO last_InsertID FROM DUAL; - WHILE (last_InsertID > last_Sequence) LOOP - SELECT %4$s.NEXTVAL INTO last_Sequence FROM DUAL; - END LOOP; - END IF; -END; -SQL, - $autoincrementIdentifierName, - $quotedTableName, - $quotedName, - $sequenceName, - $this->quoteStringLiteral($sequence->getName()), - ); - - return $sql; - } - - /** - * @internal The method should be only used from within the OracleSchemaManager class hierarchy. - * - * Returns the SQL statements to drop the autoincrement for the given table name. - * - * @param string $table The table name to drop the autoincrement for. - * - * @return string[] - */ - public function getDropAutoincrementSql(string $table): array - { - $table = $this->normalizeIdentifier($table); - $autoincrementIdentifierName = $this->getAutoincrementIdentifierName($table); - $identitySequenceName = $this->getIdentitySequenceName( - $table->isQuoted() ? $table->getQuotedName($this) : $table->getName(), - ); - - return [ - 'DROP TRIGGER ' . $autoincrementIdentifierName, - $this->getDropSequenceSQL($identitySequenceName), - $this->getDropConstraintSQL($autoincrementIdentifierName, $table->getQuotedName($this)), - ]; - } - - /** - * Normalizes the given identifier. - * - * Uppercases the given identifier if it is not quoted by intention - * to reflect Oracle's internal auto uppercasing strategy of unquoted identifiers. - * - * @param string $name The identifier to normalize. - */ - private function normalizeIdentifier(string $name): Identifier - { - $identifier = new Identifier($name); - - return $identifier->isQuoted() ? $identifier : new Identifier(strtoupper($name)); - } - - /** - * Adds suffix to identifier, - * - * if the new string exceeds max identifier length, - * keeps $suffix, cuts from $identifier as much as the part exceeding. - * - * @param non-empty-string $suffix - */ - private function addSuffix(string $identifier, string $suffix): string - { - $maxPossibleLengthWithoutSuffix = $this->getMaxIdentifierLength() - strlen($suffix); - if (strlen($identifier) > $maxPossibleLengthWithoutSuffix) { - $identifier = substr($identifier, 0, $maxPossibleLengthWithoutSuffix); - } - - return $identifier . $suffix; - } - - /** - * Returns the autoincrement primary key identifier name for the given table identifier. - * - * Quotes the autoincrement primary key identifier name - * if the given table name is quoted by intention. - */ - private function getAutoincrementIdentifierName(Identifier $table): string - { - $identifierName = $this->addSuffix($table->getName(), '_AI_PK'); - - return $table->isQuoted() - ? $this->quoteSingleIdentifier($identifierName) - : $identifierName; - } - - public function getDropForeignKeySQL(string $foreignKey, string $table): string - { - return $this->getDropConstraintSQL($foreignKey, $table); - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey): string - { - $sql = ''; - - if ($foreignKey->hasOption('onDelete')) { - $referentialAction = $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete')); - - if ($referentialAction !== '') { - $sql .= ' ON DELETE ' . $referentialAction; - } - } - - $deferrabilitySQL = $this->getConstraintDeferrabilitySQL($foreignKey); - - if ($deferrabilitySQL !== '') { - $sql .= $deferrabilitySQL; - } - - return $sql; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getForeignKeyReferentialActionSQL(string $action): string - { - $action = strtoupper($action); - - if ($action === 'RESTRICT') { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6707', - 'Relying on automatic conversion of RESTRICT to NO ACTION for Oracle is deprecated.' - . ' Use NO ACTION explicitly instead.', - ); - } - - return match ($action) { - 'RESTRICT', - 'NO ACTION' => '', - 'CASCADE', - 'SET NULL' => $action, - default => throw new InvalidArgumentException(sprintf('Invalid foreign key action "%s".', $action)), - }; - } - - public function getCreateDatabaseSQL(string $name): string - { - return 'CREATE USER ' . $name; - } - - public function getDropDatabaseSQL(string $name): string - { - return 'DROP USER ' . $name . ' CASCADE'; - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $sql = []; - $commentsSQL = []; - $addColumnSQL = []; - - $tableNameSQL = $diff->getOldTable()->getQuotedName($this); - - foreach ($diff->getAddedColumns() as $column) { - $addColumnSQL[] = $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray()); - $comment = $column->getComment(); - - if ($comment === '') { - continue; - } - - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $column->getQuotedName($this), - $comment, - ); - } - - if (count($addColumnSQL) > 0) { - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ADD (' . implode(', ', $addColumnSQL) . ')'; - } - - $modifyColumnSQL = []; - foreach ($diff->getChangedColumns() as $columnDiff) { - $newColumn = $columnDiff->getNewColumn(); - $oldColumn = $columnDiff->getOldColumn(); - - // Column names in Oracle are case insensitive and automatically uppercased on the server. - if ($columnDiff->hasNameChanged()) { - $newColumnName = $newColumn->getQuotedName($this); - $oldColumnName = $oldColumn->getQuotedName($this); - - $sql = array_merge( - $sql, - $this->getRenameColumnSQL($tableNameSQL, $oldColumnName, $newColumnName), - ); - } - - $countChangedProperties = $columnDiff->countChangedProperties(); - // Do not generate column alteration clause if type is binary and only fixed property has changed. - // Oracle only supports binary type columns with variable length. - // Avoids unnecessary table alteration statements. - if ( - $newColumn->getType() instanceof BinaryType && - $columnDiff->hasFixedChanged() && - $countChangedProperties === 1 - ) { - continue; - } - - $columnHasChangedComment = $columnDiff->hasCommentChanged(); - - /** - * Do not add query part if only comment has changed - */ - if ($countChangedProperties > ($columnHasChangedComment ? 1 : 0)) { - $newColumnProperties = $newColumn->toArray(); - - $oldSQL = $this->getColumnDeclarationSQL('', $oldColumn->toArray()); - $newSQL = $this->getColumnDeclarationSQL('', $newColumnProperties); - - if ($newSQL !== $oldSQL) { - if (! $columnDiff->hasNotNullChanged()) { - unset($newColumnProperties['notnull']); - $newSQL = $this->getColumnDeclarationSQL('', $newColumnProperties); - } - - $modifyColumnSQL[] = $newColumn->getQuotedName($this) . $newSQL; - } - } - - if (! $columnDiff->hasCommentChanged()) { - continue; - } - - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $newColumn->getQuotedName($this), - $newColumn->getComment(), - ); - } - - if (count($modifyColumnSQL) > 0) { - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' MODIFY (' . implode(', ', $modifyColumnSQL) . ')'; - } - - $dropColumnSQL = []; - foreach ($diff->getDroppedColumns() as $column) { - $dropColumnSQL[] = $column->getQuotedName($this); - } - - if (count($dropColumnSQL) > 0) { - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' DROP (' . implode(', ', $dropColumnSQL) . ')'; - } - - return array_merge( - $this->getPreAlterTableIndexForeignKeySQL($diff), - $sql, - $commentsSQL, - $this->getPostAlterTableIndexForeignKeySQL($diff), - ); - } - - /** - * {@inheritDoc} - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getColumnDeclarationSQL(string $name, array $column): string - { - if (isset($column['columnDefinition'])) { - $declaration = $column['columnDefinition']; - } else { - $default = $this->getDefaultValueDeclarationSQL($column); - - $notnull = ''; - - if (isset($column['notnull'])) { - $notnull = $column['notnull'] ? ' NOT NULL' : ' NULL'; - } - - $typeDecl = $column['type']->getSQLDeclaration($column, $this); - $declaration = $typeDecl . $default . $notnull; - } - - return $name . ' ' . $declaration; - } - - /** - * {@inheritDoc} - */ - protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName): array - { - if (str_contains($tableName, '.')) { - [$schema] = explode('.', $tableName); - $oldIndexName = $schema . '.' . $oldIndexName; - } - - return ['ALTER INDEX ' . $oldIndexName . ' RENAME TO ' . $index->getQuotedName($this)]; - } - - /** @internal The method should be only used by the {@see OraclePlatform} class. */ - protected function getIdentitySequenceName(string $tableName): string - { - $table = new Identifier($tableName); - - // No usage of column name to preserve BC compatibility with <2.5 - $identitySequenceName = $this->addSuffix($table->getName(), '_SEQ'); - - if ($table->isQuoted()) { - $identitySequenceName = '"' . $identitySequenceName . '"'; - } - - $identitySequenceIdentifier = $this->normalizeIdentifier($identitySequenceName); - - return $identitySequenceIdentifier->getQuotedName($this); - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsCommentOnStatement(): bool - { - return true; - } - - protected function doModifyLimitQuery(string $query, ?int $limit, int $offset): string - { - if ($offset > 0) { - $query .= sprintf(' OFFSET %d ROWS', $offset); - } - - if ($limit !== null) { - $query .= sprintf(' FETCH NEXT %d ROWS ONLY', $limit); - } - - return $query; - } - - public function getCreateTemporaryTableSnippetSQL(): string - { - return 'CREATE GLOBAL TEMPORARY TABLE'; - } - - public function getDateTimeTzFormatString(): string - { - return 'Y-m-d H:i:sP'; - } - - public function getDateFormatString(): string - { - return 'Y-m-d 00:00:00'; - } - - public function getTimeFormatString(): string - { - return '1900-01-01 H:i:s'; - } - - public function getMaxIdentifierLength(): int - { - return 128; - } - - public function supportsSequences(): bool - { - return true; - } - - public function supportsReleaseSavepoints(): bool - { - return false; - } - - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - - return 'TRUNCATE TABLE ' . $tableIdentifier->getQuotedName($this); - } - - public function getDummySelectSQL(string $expression = '1'): string - { - return sprintf('SELECT %s FROM DUAL', $expression); - } - - protected function initializeDoctrineTypeMappings(): void - { - $this->doctrineTypeMapping = [ - 'binary_double' => Types::FLOAT, - 'binary_float' => Types::FLOAT, - 'binary_integer' => Types::BOOLEAN, - 'blob' => Types::BLOB, - 'char' => Types::STRING, - 'clob' => Types::TEXT, - 'date' => Types::DATE_MUTABLE, - 'float' => Types::FLOAT, - 'integer' => Types::INTEGER, - 'long' => Types::STRING, - 'long raw' => Types::BLOB, - 'nchar' => Types::STRING, - 'nclob' => Types::TEXT, - 'number' => Types::INTEGER, - 'nvarchar2' => Types::STRING, - 'pls_integer' => Types::BOOLEAN, - 'raw' => Types::BINARY, - 'real' => Types::SMALLFLOAT, - 'rowid' => Types::STRING, - 'timestamp' => Types::DATETIME_MUTABLE, - 'timestamptz' => Types::DATETIMETZ_MUTABLE, - 'urowid' => Types::STRING, - 'varchar' => Types::STRING, - 'varchar2' => Types::STRING, - ]; - } - - public function releaseSavePoint(string $savepoint): string - { - return ''; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new OracleKeywords(); - } - - /** - * {@inheritDoc} - */ - public function getBlobTypeDeclarationSQL(array $column): string - { - return 'BLOB'; - } - - public function createSchemaManager(Connection $connection): OracleSchemaManager - { - return new OracleSchemaManager($connection, $this); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/PostgreSQL120Platform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/PostgreSQL120Platform.php deleted file mode 100644 index 3fff90e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/PostgreSQL120Platform.php +++ /dev/null @@ -1,32 +0,0 @@ - [ - 't', - 'true', - 'y', - 'yes', - 'on', - '1', - ], - 'false' => [ - 'f', - 'false', - 'n', - 'no', - 'off', - '0', - ], - ]; - - public function __construct() - { - parent::__construct(UnquotedIdentifierFolding::LOWER); - } - - /** - * PostgreSQL has different behavior with some drivers - * with regard to how booleans have to be handled. - * - * Enables use of 'true'/'false' or otherwise 1 and 0 instead. - */ - public function setUseBooleanTrueFalseStrings(bool $flag): void - { - $this->useBooleanTrueFalseStrings = $flag; - } - - public function getRegexpExpression(): string - { - return 'SIMILAR TO'; - } - - public function getLocateExpression(string $string, string $substring, ?string $start = null): string - { - if ($start !== null) { - $string = $this->getSubstringExpression($string, $start); - - return 'CASE WHEN (POSITION(' . $substring . ' IN ' . $string . ') = 0) THEN 0' - . ' ELSE (POSITION(' . $substring . ' IN ' . $string . ') + ' . $start . ' - 1) END'; - } - - return sprintf('POSITION(%s IN %s)', $substring, $string); - } - - protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string { - if ($unit === DateIntervalUnit::QUARTER) { - $interval = $this->multiplyInterval($interval, 3); - $unit = DateIntervalUnit::MONTH; - } - - return '(' . $date . ' ' . $operator . ' (' . $interval . " || ' " . $unit->value . "')::interval)"; - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return '(DATE(' . $date1 . ')-DATE(' . $date2 . '))'; - } - - public function getCurrentDatabaseExpression(): string - { - return 'CURRENT_DATABASE()'; - } - - public function supportsSequences(): bool - { - return true; - } - - public function supportsSchemas(): bool - { - return true; - } - - public function supportsIdentityColumns(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsPartialIndexes(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsCommentOnStatement(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListDatabasesSQL(): string - { - return 'SELECT datname FROM pg_database'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListSequencesSQL(string $database): string - { - return 'SELECT sequence_name AS relname, - sequence_schema AS schemaname, - minimum_value AS min_value, - increment AS increment_by - FROM information_schema.sequences - WHERE sequence_catalog = ' . $this->quoteStringLiteral($database) . " - AND sequence_schema NOT LIKE 'pg\_%' - AND sequence_schema != 'information_schema'"; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return 'SELECT quote_ident(table_name) AS viewname, - table_schema AS schemaname, - view_definition AS definition - FROM information_schema.views - WHERE view_definition IS NOT NULL'; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey): string - { - $query = ''; - - if ($foreignKey->hasOption('match')) { - $query .= ' MATCH ' . $foreignKey->getOption('match'); - } - - $query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey); - - $deferrabilitySQL = $this->getConstraintDeferrabilitySQL($foreignKey); - - if ($deferrabilitySQL !== '') { - $query .= $deferrabilitySQL; - } - - return $query; - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $sql = []; - $commentsSQL = []; - - $table = $diff->getOldTable(); - - $tableNameSQL = $table->getQuotedName($this); - - foreach ($diff->getAddedColumns() as $addedColumn) { - $query = 'ADD ' . $this->getColumnDeclarationSQL( - $addedColumn->getQuotedName($this), - $addedColumn->toArray(), - ); - - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - - $comment = $addedColumn->getComment(); - - if ($comment === '') { - continue; - } - - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $addedColumn->getQuotedName($this), - $comment, - ); - } - - foreach ($diff->getDroppedColumns() as $droppedColumn) { - $query = 'DROP ' . $droppedColumn->getQuotedName($this); - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - } - - foreach ($diff->getChangedColumns() as $columnDiff) { - $oldColumn = $columnDiff->getOldColumn(); - $newColumn = $columnDiff->getNewColumn(); - - $oldColumnName = $oldColumn->getQuotedName($this); - $newColumnName = $newColumn->getQuotedName($this); - - if ($columnDiff->hasNameChanged()) { - $sql = array_merge( - $sql, - $this->getRenameColumnSQL($tableNameSQL, $oldColumnName, $newColumnName), - ); - } - - $newTypeSQLDeclaration = $this->getTypeSQLDeclaration($newColumn); - $oldTypeSQLDeclaration = $this->getTypeSQLDeclaration($oldColumn); - if ($oldTypeSQLDeclaration !== $newTypeSQLDeclaration) { - $query = 'ALTER ' . $newColumnName . ' TYPE ' . $newTypeSQLDeclaration; - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - } - - if ($columnDiff->hasDefaultChanged()) { - $defaultClause = $newColumn->getDefault() === null - ? ' DROP DEFAULT' - : ' SET' . $this->getDefaultValueDeclarationSQL($newColumn->toArray()); - - $query = 'ALTER ' . $newColumnName . $defaultClause; - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - } - - if ($columnDiff->hasNotNullChanged()) { - $query = 'ALTER ' . $newColumnName . ' ' . ($newColumn->getNotnull() ? 'SET' : 'DROP') . ' NOT NULL'; - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - } - - if ($columnDiff->hasAutoIncrementChanged()) { - if ($newColumn->getAutoincrement()) { - $query = 'ADD GENERATED BY DEFAULT AS IDENTITY'; - } else { - $query = 'DROP IDENTITY'; - } - - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ALTER ' . $newColumnName . ' ' . $query; - } - - if (! $columnDiff->hasCommentChanged()) { - continue; - } - - $commentsSQL[] = $this->getCommentOnColumnSQL( - $tableNameSQL, - $newColumn->getQuotedName($this), - $newColumn->getComment(), - ); - } - - return array_merge( - $this->getPreAlterTableIndexForeignKeySQL($diff), - $sql, - $commentsSQL, - $this->getPostAlterTableIndexForeignKeySQL($diff), - ); - } - - private function getTypeSQLDeclaration(Column $column): string - { - $type = $column->getType(); - - // SERIAL/BIGSERIAL are not "real" types and we can't alter a column to that type - $columnDefinition = $column->toArray(); - $columnDefinition['autoincrement'] = false; - - return $type->getSQLDeclaration($columnDefinition, $this); - } - - /** - * {@inheritDoc} - */ - protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName): array - { - if (str_contains($tableName, '.')) { - [$schema] = explode('.', $tableName); - $oldIndexName = $schema . '.' . $oldIndexName; - } - - return ['ALTER INDEX ' . $oldIndexName . ' RENAME TO ' . $index->getQuotedName($this)]; - } - - public function getCreateSequenceSQL(Sequence $sequence): string - { - return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) . - ' INCREMENT BY ' . $sequence->getAllocationSize() . - ' MINVALUE ' . $sequence->getInitialValue() . - ' START ' . $sequence->getInitialValue() . - $this->getSequenceCacheSQL($sequence); - } - - public function getAlterSequenceSQL(Sequence $sequence): string - { - return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) . - ' INCREMENT BY ' . $sequence->getAllocationSize() . - $this->getSequenceCacheSQL($sequence); - } - - /** - * Cache definition for sequences - */ - private function getSequenceCacheSQL(Sequence $sequence): string - { - if ($sequence->getCache() > 1) { - return ' CACHE ' . $sequence->getCache(); - } - - return ''; - } - - public function getDropSequenceSQL(string $name): string - { - return parent::getDropSequenceSQL($name) . ' CASCADE'; - } - - public function getDropForeignKeySQL(string $foreignKey, string $table): string - { - return $this->getDropConstraintSQL($foreignKey, $table); - } - - public function getDropIndexSQL(string $name, string $table): string - { - if (str_ends_with($table, '"')) { - $primaryKeyName = substr($table, 0, -1) . '_pkey"'; - } else { - $primaryKeyName = $table . '_pkey'; - } - - if ($name === '"primary"' || $name === $primaryKeyName) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - 'Building the SQL for dropping primary key constraint via %s() is deprecated. Use' - . ' getDropConstraintSQL() instead.', - __METHOD__, - ); - - return $this->getDropConstraintSQL($primaryKeyName, $table); - } - - if (str_contains($table, '.')) { - [$schema] = explode('.', $table); - $name = $schema . '.' . $name; - } - - return parent::getDropIndexSQL($name, $table); - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $queryFields = $this->getColumnDeclarationListSQL($columns); - - if (! empty($options['primary'])) { - $keyColumns = array_unique(array_values($options['primary'])); - $queryFields .= ', PRIMARY KEY (' . implode(', ', $keyColumns) . ')'; - } - - $unlogged = isset($options['unlogged']) && $options['unlogged'] === true ? ' UNLOGGED' : ''; - - $query = 'CREATE' . $unlogged . ' TABLE ' . $name . ' (' . $queryFields . ')'; - - $sql = [$query]; - - if (! empty($options['indexes'])) { - foreach ($options['indexes'] as $index) { - $sql[] = $this->getCreateIndexSQL($index, $name); - } - } - - if (isset($options['uniqueConstraints'])) { - foreach ($options['uniqueConstraints'] as $uniqueConstraint) { - $sql[] = $this->getCreateUniqueConstraintSQL($uniqueConstraint, $name); - } - } - - if (isset($options['foreignKeys'])) { - foreach ($options['foreignKeys'] as $definition) { - $sql[] = $this->getCreateForeignKeySQL($definition, $name); - } - } - - return $sql; - } - - /** - * Converts a single boolean value. - * - * First converts the value to its native PHP boolean type - * and passes it to the given callback function to be reconverted - * into any custom representation. - * - * @param mixed $value The value to convert. - * @param callable $callback The callback function to use for converting the real boolean value. - * - * @throws UnexpectedValueException - */ - private function convertSingleBooleanValue(mixed $value, callable $callback): mixed - { - if ($value === null) { - return $callback(null); - } - - if (is_bool($value) || is_numeric($value)) { - return $callback((bool) $value); - } - - if (! is_string($value)) { - return $callback(true); - } - - /** - * Better safe than sorry: http://php.net/in_array#106319 - */ - if (in_array(strtolower(trim($value)), $this->booleanLiterals['false'], true)) { - return $callback(false); - } - - if (in_array(strtolower(trim($value)), $this->booleanLiterals['true'], true)) { - return $callback(true); - } - - throw new UnexpectedValueException(sprintf( - 'Unrecognized boolean literal, %s given.', - $value, - )); - } - - /** - * Converts one or multiple boolean values. - * - * First converts the value(s) to their native PHP boolean type - * and passes them to the given callback function to be reconverted - * into any custom representation. - * - * @param mixed $item The value(s) to convert. - * @param callable $callback The callback function to use for converting the real boolean value(s). - */ - private function doConvertBooleans(mixed $item, callable $callback): mixed - { - if (is_array($item)) { - foreach ($item as $key => $value) { - $item[$key] = $this->convertSingleBooleanValue($value, $callback); - } - - return $item; - } - - return $this->convertSingleBooleanValue($item, $callback); - } - - /** - * {@inheritDoc} - * - * Postgres wants boolean values converted to the strings 'true'/'false'. - */ - public function convertBooleans(mixed $item): mixed - { - if (! $this->useBooleanTrueFalseStrings) { - return parent::convertBooleans($item); - } - - return $this->doConvertBooleans( - $item, - /** @param mixed $value */ - static function ($value): string { - if ($value === null) { - return 'NULL'; - } - - return $value === true ? 'true' : 'false'; - }, - ); - } - - public function convertBooleansToDatabaseValue(mixed $item): mixed - { - if (! $this->useBooleanTrueFalseStrings) { - return parent::convertBooleansToDatabaseValue($item); - } - - return $this->doConvertBooleans( - $item, - /** @param mixed $value */ - static function ($value): ?int { - return $value === null ? null : (int) $value; - }, - ); - } - - /** - * @param T $item - * - * @return (T is null ? null : bool) - * - * @template T - */ - public function convertFromBoolean(mixed $item): ?bool - { - if (in_array($item, $this->booleanLiterals['false'], true)) { - return false; - } - - return parent::convertFromBoolean($item); - } - - public function getSequenceNextValSQL(string $sequence): string - { - return "SELECT NEXTVAL('" . $sequence . "')"; - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - return 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL ' - . $this->_getTransactionIsolationLevelSQL($level); - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'BOOLEAN'; - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getGuidTypeDeclarationSQL(array $column): string - { - return 'UUID'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - return 'TIMESTAMP(0) WITHOUT TIME ZONE'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTzTypeDeclarationSQL(array $column): string - { - return 'TIMESTAMP(0) WITH TIME ZONE'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'TIME(0) WITHOUT TIME ZONE'; - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - if (! empty($column['autoincrement'])) { - return ' GENERATED BY DEFAULT AS IDENTITY'; - } - - return ''; - } - - protected function getVarcharTypeDeclarationSQLSnippet(?int $length): string - { - $sql = 'VARCHAR'; - - if ($length !== null) { - $sql .= sprintf('(%d)', $length); - } - - return $sql; - } - - protected function getBinaryTypeDeclarationSQLSnippet(?int $length): string - { - return 'BYTEA'; - } - - protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length): string - { - return 'BYTEA'; - } - - /** - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - return 'TEXT'; - } - - public function getDateTimeTzFormatString(): string - { - return 'Y-m-d H:i:sO'; - } - - public function getEmptyIdentityInsertSQL(string $quotedTableName, string $quotedIdentifierColumnName): string - { - return 'INSERT INTO ' . $quotedTableName . ' (' . $quotedIdentifierColumnName . ') VALUES (DEFAULT)'; - } - - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - $sql = 'TRUNCATE ' . $tableIdentifier->getQuotedName($this); - - if ($cascade) { - $sql .= ' CASCADE'; - } - - return $sql; - } - - /** - * Get the snippet used to retrieve the default value for a given column - */ - public function getDefaultColumnValueSQLSnippet(): string - { - return <<<'SQL' - SELECT pg_get_expr(adbin, adrelid) - FROM pg_attrdef - WHERE c.oid = pg_attrdef.adrelid - AND pg_attrdef.adnum=a.attnum - SQL; - } - - protected function initializeDoctrineTypeMappings(): void - { - $this->doctrineTypeMapping = [ - 'bigint' => Types::BIGINT, - 'bigserial' => Types::BIGINT, - 'bool' => Types::BOOLEAN, - 'boolean' => Types::BOOLEAN, - 'bpchar' => Types::STRING, - 'bytea' => Types::BLOB, - 'char' => Types::STRING, - 'date' => Types::DATE_MUTABLE, - 'decimal' => Types::DECIMAL, - 'double precision' => Types::FLOAT, - 'float' => Types::FLOAT, - 'float4' => Types::SMALLFLOAT, - 'float8' => Types::FLOAT, - 'inet' => Types::STRING, - 'int' => Types::INTEGER, - 'int2' => Types::SMALLINT, - 'int4' => Types::INTEGER, - 'int8' => Types::BIGINT, - 'integer' => Types::INTEGER, - 'interval' => Types::STRING, - 'json' => Types::JSON, - 'jsonb' => Types::JSON, - 'money' => Types::DECIMAL, - 'numeric' => Types::DECIMAL, - 'serial' => Types::INTEGER, - 'serial4' => Types::INTEGER, - 'serial8' => Types::BIGINT, - 'real' => Types::SMALLFLOAT, - 'smallint' => Types::SMALLINT, - 'text' => Types::TEXT, - 'time' => Types::TIME_MUTABLE, - 'timestamp' => Types::DATETIME_MUTABLE, - 'timestamptz' => Types::DATETIMETZ_MUTABLE, - 'timetz' => Types::TIME_MUTABLE, - 'tsvector' => Types::TEXT, - 'uuid' => Types::GUID, - 'varchar' => Types::STRING, - '_varchar' => Types::STRING, - ]; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new PostgreSQLKeywords(); - } - - /** - * {@inheritDoc} - */ - public function getBlobTypeDeclarationSQL(array $column): string - { - return 'BYTEA'; - } - - /** - * {@inheritDoc} - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getDefaultValueDeclarationSQL(array $column): string - { - if (isset($column['autoincrement']) && $column['autoincrement'] === true) { - return ''; - } - - return parent::getDefaultValueDeclarationSQL($column); - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsColumnCollation(): bool - { - return true; - } - - /** - * {@inheritDoc} - */ - public function getJsonTypeDeclarationSQL(array $column): string - { - if (! empty($column['jsonb'])) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6939', - 'The "jsonb" column platform option is deprecated. Use the "JSONB" type instead.', - ); - - return 'JSONB'; - } - - return 'JSON'; - } - - /** - * {@inheritDoc} - */ - public function getJsonbTypeDeclarationSQL(array $column): string - { - return 'JSONB'; - } - - public function createSchemaManager(Connection $connection): PostgreSQLSchemaManager - { - return new PostgreSQLSchemaManager($connection, $this); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/Comparator.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/Comparator.php deleted file mode 100644 index 079e70e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/Comparator.php +++ /dev/null @@ -1,54 +0,0 @@ -normalizeColumns($oldTable), - $this->normalizeColumns($newTable), - ); - } - - private function normalizeColumns(Table $table): Table - { - $table = clone $table; - - foreach ($table->getColumns() as $column) { - $options = $column->getPlatformOptions(); - - if (! isset($options['collation']) || $options['collation'] !== $this->databaseCollation) { - continue; - } - - unset($options['collation']); - $column->setPlatformOptions($options); - } - - return $table; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/SQL/Builder/SQLServerSelectSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/SQL/Builder/SQLServerSelectSQLBuilder.php deleted file mode 100644 index ea6bb60..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServer/SQL/Builder/SQLServerSelectSQLBuilder.php +++ /dev/null @@ -1,84 +0,0 @@ -isDistinct()) { - $parts[] = 'DISTINCT'; - } - - $parts[] = implode(', ', $query->getColumns()); - - $from = $query->getFrom(); - - if (count($from) > 0) { - $parts[] = 'FROM ' . implode(', ', $from); - } - - $forUpdate = $query->getForUpdate(); - - if ($forUpdate !== null) { - $with = ['UPDLOCK', 'ROWLOCK']; - - if ($forUpdate->getConflictResolutionMode() === ConflictResolutionMode::SKIP_LOCKED) { - $with[] = 'READPAST'; - } - - $parts[] = 'WITH (' . implode(', ', $with) . ')'; - } - - $where = $query->getWhere(); - - if ($where !== null) { - $parts[] = 'WHERE ' . $where; - } - - $groupBy = $query->getGroupBy(); - - if (count($groupBy) > 0) { - $parts[] = 'GROUP BY ' . implode(', ', $groupBy); - } - - $having = $query->getHaving(); - - if ($having !== null) { - $parts[] = 'HAVING ' . $having; - } - - $orderBy = $query->getOrderBy(); - - if (count($orderBy) > 0) { - $parts[] = 'ORDER BY ' . implode(', ', $orderBy); - } - - $sql = implode(' ', $parts); - $limit = $query->getLimit(); - - if ($limit->isDefined()) { - $sql = $this->platform->modifyLimitQuery($sql, $limit->getMaxResults(), $limit->getFirstResult()); - } - - return $sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServerPlatform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServerPlatform.php deleted file mode 100644 index 2b87e43..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLServerPlatform.php +++ /dev/null @@ -1,1339 +0,0 @@ -getConvertExpression('date', 'GETDATE()'); - } - - public function getCurrentTimeSQL(): string - { - return $this->getConvertExpression('time', 'GETDATE()'); - } - - /** - * Returns an expression that converts an expression of one data type to another. - * - * @param string $dataType The target native data type. Alias data types cannot be used. - * @param string $expression The SQL expression to convert. - */ - private function getConvertExpression(string $dataType, string $expression): string - { - return sprintf('CONVERT(%s, %s)', $dataType, $expression); - } - - protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string { - $factorClause = ''; - - if ($operator === '-') { - $factorClause = '-1 * '; - } - - return 'DATEADD(' . $unit->value . ', ' . $factorClause . $interval . ', ' . $date . ')'; - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return 'DATEDIFF(day, ' . $date2 . ',' . $date1 . ')'; - } - - /** - * {@inheritDoc} - * - * Microsoft SQL Server supports this through AUTO_INCREMENT columns. - */ - public function supportsIdentityColumns(): bool - { - return true; - } - - public function supportsReleaseSavepoints(): bool - { - return false; - } - - public function supportsSchemas(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsColumnCollation(): bool - { - return true; - } - - public function supportsSequences(): bool - { - return true; - } - - public function getAlterSequenceSQL(Sequence $sequence): string - { - return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) . - ' INCREMENT BY ' . $sequence->getAllocationSize(); - } - - public function getCreateSequenceSQL(Sequence $sequence): string - { - return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) . - ' START WITH ' . $sequence->getInitialValue() . - ' INCREMENT BY ' . $sequence->getAllocationSize() . - ' MINVALUE ' . $sequence->getInitialValue(); - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListSequencesSQL(string $database): string - { - return 'SELECT seq.name, - CAST( - seq.increment AS VARCHAR(MAX) - ) AS increment, -- CAST avoids driver error for sql_variant type - CAST( - seq.start_value AS VARCHAR(MAX) - ) AS start_value -- CAST avoids driver error for sql_variant type - FROM sys.sequences AS seq'; - } - - public function getSequenceNextValSQL(string $sequence): string - { - return 'SELECT NEXT VALUE FOR ' . $sequence; - } - - public function getDropForeignKeySQL(string $foreignKey, string $table): string - { - return $this->getDropConstraintSQL($foreignKey, $table); - } - - public function getDropIndexSQL(string $name, string $table): string - { - return 'DROP INDEX ' . $name . ' ON ' . $table; - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - $defaultConstraintsSql = []; - $commentsSql = []; - - $tableComment = $options['comment'] ?? null; - if ($tableComment !== null) { - $commentsSql[] = $this->getCommentOnTableSQL($name, $tableComment); - } - - // @todo does other code breaks because of this? - // force primary keys to be not null - foreach ($columns as &$column) { - if (! empty($column['primary'])) { - $column['notnull'] = true; - } - - // Build default constraints SQL statements. - if (isset($column['default'])) { - $defaultConstraintsSql[] = 'ALTER TABLE ' . $name . - ' ADD' . $this->getDefaultConstraintDeclarationSQL($column); - } - - if (empty($column['comment']) && ! is_numeric($column['comment'])) { - continue; - } - - $commentsSql[] = $this->getCreateColumnCommentSQL($name, $column['name'], $column['comment']); - } - - $columnListSql = $this->getColumnDeclarationListSQL($columns); - - if (! empty($options['uniqueConstraints'])) { - foreach ($options['uniqueConstraints'] as $definition) { - $columnListSql .= ', ' . $this->getUniqueConstraintDeclarationSQL($definition); - } - } - - if (! empty($options['primary'])) { - $flags = ''; - if (isset($options['primary_index']) && $options['primary_index']->hasFlag('nonclustered')) { - $flags = ' NONCLUSTERED'; - } - - $columnListSql .= ', PRIMARY KEY' . $flags - . ' (' . implode(', ', array_unique(array_values($options['primary']))) . ')'; - } - - $query = 'CREATE TABLE ' . $name . ' (' . $columnListSql; - - $check = $this->getCheckDeclarationSQL($columns); - if (! empty($check)) { - $query .= ', ' . $check; - } - - $query .= ')'; - - $sql = [$query]; - - if (! empty($options['indexes'])) { - foreach ($options['indexes'] as $index) { - $sql[] = $this->getCreateIndexSQL($index, $name); - } - } - - if (isset($options['foreignKeys'])) { - foreach ($options['foreignKeys'] as $definition) { - $sql[] = $this->getCreateForeignKeySQL($definition, $name); - } - } - - return array_merge($sql, $commentsSql, $defaultConstraintsSql); - } - - /** @deprecated */ - public function getCreatePrimaryKeySQL(Index $index, string $table): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - '%s() is deprecated.', - __METHOD__, - ); - - $sql = 'ALTER TABLE ' . $table . ' ADD PRIMARY KEY'; - - if ($index->hasFlag('nonclustered')) { - $sql .= ' NONCLUSTERED'; - } - - return $sql . ' (' . implode(', ', $index->getQuotedColumns($this)) . ')'; - } - - private function unquoteSingleIdentifier(string $possiblyQuotedName): string - { - return str_starts_with($possiblyQuotedName, '[') && str_ends_with($possiblyQuotedName, ']') - ? substr($possiblyQuotedName, 1, -1) - : $possiblyQuotedName; - } - - /** - * Returns the SQL statement for creating a column comment. - * - * SQL Server does not support native column comments, - * therefore the extended properties functionality is used - * as a workaround to store them. - * The property name used to store column comments is "MS_Description" - * which provides compatibility with SQL Server Management Studio, - * as column comments are stored in the same property there when - * specifying a column's "Description" attribute. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @param string $tableName The quoted table name to which the column belongs. - * @param string $columnName The quoted column name to create the comment for. - * @param string $comment The column's comment. - */ - protected function getCreateColumnCommentSQL(string $tableName, string $columnName, string $comment): string - { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - } else { - $schemaName = 'dbo'; - } - - return $this->getAddExtendedPropertySQL( - 'MS_Description', - $comment, - 'SCHEMA', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($schemaName)), - 'TABLE', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($tableName)), - 'COLUMN', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($columnName)), - ); - } - - /** - * Returns the SQL snippet for declaring a default constraint. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @param mixed[] $column Column definition. - */ - protected function getDefaultConstraintDeclarationSQL(array $column): string - { - if (! isset($column['default'])) { - throw new InvalidArgumentException('Incomplete column definition. "default" required.'); - } - - $columnName = new Identifier($column['name']); - - return $this->getDefaultValueDeclarationSQL($column) . ' FOR ' . $columnName->getQuotedName($this); - } - - public function getCreateIndexSQL(Index $index, string $table): string - { - $constraint = parent::getCreateIndexSQL($index, $table); - - if ($index->isUnique() && ! $index->isPrimary()) { - $constraint = $this->_appendUniqueConstraintDefinition($constraint, $index); - } - - return $constraint; - } - - protected function getCreateIndexSQLFlags(Index $index): string - { - $type = ''; - if ($index->isUnique()) { - $type .= 'UNIQUE '; - } - - if ($index->hasFlag('clustered')) { - $type .= 'CLUSTERED '; - } elseif ($index->hasFlag('nonclustered')) { - $type .= 'NONCLUSTERED '; - } - - return $type; - } - - /** - * Extend unique key constraint with required filters - */ - private function _appendUniqueConstraintDefinition(string $sql, Index $index): string - { - $fields = []; - - foreach ($index->getQuotedColumns($this) as $field) { - $fields[] = $field . ' IS NOT NULL'; - } - - return $sql . ' WHERE ' . implode(' AND ', $fields); - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $queryParts = []; - $sql = []; - $commentsSql = []; - - $table = $diff->getOldTable(); - - $tableName = $table->getName(); - - foreach ($diff->getAddedColumns() as $column) { - $columnProperties = $column->toArray(); - - $addColumnSql = 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnProperties); - - if (isset($columnProperties['default'])) { - $addColumnSql .= $this->getDefaultValueDeclarationSQL($columnProperties); - } - - $queryParts[] = $addColumnSql; - - $comment = $column->getComment(); - - if ($comment === '') { - continue; - } - - $commentsSql[] = $this->getCreateColumnCommentSQL( - $tableName, - $column->getQuotedName($this), - $comment, - ); - } - - foreach ($diff->getDroppedColumns() as $column) { - if ($column->getDefault() !== null) { - $queryParts[] = $this->getAlterTableDropDefaultConstraintClause($column); - } - - $queryParts[] = 'DROP COLUMN ' . $column->getQuotedName($this); - } - - $tableNameSQL = $table->getQuotedName($this); - - foreach ($diff->getChangedColumns() as $columnDiff) { - $newColumn = $columnDiff->getNewColumn(); - $oldColumn = $columnDiff->getOldColumn(); - $nameChanged = $columnDiff->hasNameChanged(); - - if ($nameChanged) { - // sp_rename accepts the old name as a qualified name, so it should be quoted. - $oldColumnNameSQL = $oldColumn->getQuotedName($this); - - // sp_rename accepts the new name as a literal value, so it cannot be quoted. - $newColumnName = $newColumn->getName(); - - $sql = array_merge( - $sql, - $this->getRenameColumnSQL($tableNameSQL, $oldColumnNameSQL, $newColumnName), - ); - } - - $newComment = $newColumn->getComment(); - $hasNewComment = $newComment !== ''; - - $oldComment = $oldColumn->getComment(); - $hasOldComment = $oldComment !== ''; - - if ($hasOldComment && $hasNewComment && $oldComment !== $newComment) { - $commentsSql[] = $this->getAlterColumnCommentSQL( - $tableName, - $newColumn->getQuotedName($this), - $newComment, - ); - } elseif ($hasOldComment && ! $hasNewComment) { - $commentsSql[] = $this->getDropColumnCommentSQL( - $tableName, - $newColumn->getQuotedName($this), - ); - } elseif (! $hasOldComment && $hasNewComment) { - $commentsSql[] = $this->getCreateColumnCommentSQL( - $tableName, - $newColumn->getQuotedName($this), - $newComment, - ); - } - - $columnNameSQL = $newColumn->getQuotedName($this); - - $newDeclarationSQL = $this->getColumnDeclarationSQL($columnNameSQL, $newColumn->toArray()); - $oldDeclarationSQL = $this->getColumnDeclarationSQL($columnNameSQL, $oldColumn->toArray()); - $declarationSQLChanged = $newDeclarationSQL !== $oldDeclarationSQL; - - $defaultChanged = $columnDiff->hasDefaultChanged(); - - if (! $declarationSQLChanged && ! $defaultChanged && ! $nameChanged) { - continue; - } - - $requireDropDefaultConstraint = $this->alterColumnRequiresDropDefaultConstraint($columnDiff); - - if ($requireDropDefaultConstraint) { - $queryParts[] = $this->getAlterTableDropDefaultConstraintClause($oldColumn); - } - - if ($declarationSQLChanged) { - $queryParts[] = 'ALTER COLUMN ' . $newDeclarationSQL; - } - - if ( - $newColumn->getDefault() === null - || (! $requireDropDefaultConstraint && ! $defaultChanged) - ) { - continue; - } - - $queryParts[] = $this->getAlterTableAddDefaultConstraintClause($tableName, $newColumn); - } - - foreach ($queryParts as $query) { - $sql[] = 'ALTER TABLE ' . $tableNameSQL . ' ' . $query; - } - - return array_merge( - $this->getPreAlterTableIndexForeignKeySQL($diff), - $sql, - $commentsSql, - $this->getPostAlterTableIndexForeignKeySQL($diff), - ); - } - - public function getRenameTableSQL(string $oldName, string $newName): string - { - return $this->getRenameSQL($oldName, $newName); - } - - /** - * Returns the SQL clause for adding a default constraint in an ALTER TABLE statement. - * - * @param string $tableName The name of the table to generate the clause for. - * @param Column $column The column to generate the clause for. - */ - private function getAlterTableAddDefaultConstraintClause(string $tableName, Column $column): string - { - $columnDef = $column->toArray(); - $columnDef['name'] = $column->getQuotedName($this); - - return 'ADD' . $this->getDefaultConstraintDeclarationSQL($columnDef); - } - - /** - * Returns the SQL clause for dropping an existing default constraint in an ALTER TABLE statement. - */ - private function getAlterTableDropDefaultConstraintClause(Column $column): string - { - if (! $column->hasPlatformOption(self::OPTION_DEFAULT_CONSTRAINT_NAME)) { - throw new InvalidArgumentException( - 'Column ' . $column->getName() . ' was not properly introspected as it has a default value' - . ' but does not have the default constraint name.', - ); - } - - return 'DROP CONSTRAINT ' . $this->quoteSingleIdentifier( - $column->getPlatformOption(self::OPTION_DEFAULT_CONSTRAINT_NAME), - ); - } - - /** - * Checks whether a column alteration requires dropping its default constraint first. - * - * Different to other database vendors SQL Server implements column default values - * as constraints and therefore changes in a column's default value as well as changes - * in a column's type require dropping the default constraint first before being to - * alter the particular column to the new definition. - */ - private function alterColumnRequiresDropDefaultConstraint(ColumnDiff $columnDiff): bool - { - // We only need to drop an existing default constraint if we know the - // column was defined with a default value before. - if ($columnDiff->getOldColumn()->getDefault() === null) { - return false; - } - - // We need to drop an existing default constraint if the column was - // defined with a default value before and it has changed. - if ($columnDiff->hasDefaultChanged()) { - return true; - } - - // We need to drop an existing default constraint if the column was - // defined with a default value before and the native column type has changed. - return $columnDiff->hasTypeChanged() || $columnDiff->hasFixedChanged(); - } - - /** - * Returns the SQL statement for altering a column comment. - * - * SQL Server does not support native column comments, - * therefore the extended properties functionality is used - * as a workaround to store them. - * The property name used to store column comments is "MS_Description" - * which provides compatibility with SQL Server Management Studio, - * as column comments are stored in the same property there when - * specifying a column's "Description" attribute. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @param string $tableName The quoted table name to which the column belongs. - * @param string $columnName The quoted column name to alter the comment for. - * @param string $comment The column's comment. - */ - protected function getAlterColumnCommentSQL(string $tableName, string $columnName, string $comment): string - { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - } else { - $schemaName = 'dbo'; - } - - return $this->getUpdateExtendedPropertySQL( - 'MS_Description', - $comment, - 'SCHEMA', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($schemaName)), - 'TABLE', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($tableName)), - 'COLUMN', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($columnName)), - ); - } - - /** - * Returns the SQL statement for dropping a column comment. - * - * SQL Server does not support native column comments, - * therefore the extended properties functionality is used - * as a workaround to store them. - * The property name used to store column comments is "MS_Description" - * which provides compatibility with SQL Server Management Studio, - * as column comments are stored in the same property there when - * specifying a column's "Description" attribute. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @param string $tableName The quoted table name to which the column belongs. - * @param string $columnName The quoted column name to drop the comment for. - */ - protected function getDropColumnCommentSQL(string $tableName, string $columnName): string - { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - } else { - $schemaName = 'dbo'; - } - - return $this->getDropExtendedPropertySQL( - 'MS_Description', - 'SCHEMA', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($schemaName)), - 'TABLE', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($tableName)), - 'COLUMN', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($columnName)), - ); - } - - /** - * {@inheritDoc} - */ - protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName): array - { - return [$this->getRenameSQL($tableName . '.' . $oldIndexName, $index->getName(), 'INDEX')]; - } - - /** - * Returns the SQL for renaming a column - * - * @param string $tableName The table to rename the column on. - * @param string $oldColumnName The name of the column we want to rename. - * @param string $newColumnName The name we should rename it to. - * - * @return list The sequence of SQL statements for renaming the given column. - */ - protected function getRenameColumnSQL(string $tableName, string $oldColumnName, string $newColumnName): array - { - return [$this->getRenameSQL($tableName . '.' . $oldColumnName, $newColumnName)]; - } - - /** - * Returns the SQL statement that will execute sp_rename with the given arguments. - */ - private function getRenameSQL(string ...$arguments): string - { - return $this->getExecSQL('sp_rename', ...array_map(function (string $argument): string { - return $this->quoteNationalStringLiteral($argument); - }, $arguments)); - } - - /** - * Returns the SQL statement for adding an extended property to a database object. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @link http://msdn.microsoft.com/en-us/library/ms180047%28v=sql.90%29.aspx - * - * @param string $name The name of the property to add. - * @param string|null $value The value of the property to add. - * @param string|null $level0Type The type of the object at level 0 the property belongs to. - * @param string|null $level0Name The name of the object at level 0 the property belongs to. - * @param string|null $level1Type The type of the object at level 1 the property belongs to. - * @param string|null $level1Name The name of the object at level 1 the property belongs to. - * @param string|null $level2Type The type of the object at level 2 the property belongs to. - * @param string|null $level2Name The name of the object at level 2 the property belongs to. - */ - protected function getAddExtendedPropertySQL( - string $name, - ?string $value = null, - ?string $level0Type = null, - ?string $level0Name = null, - ?string $level1Type = null, - ?string $level1Name = null, - ?string $level2Type = null, - ?string $level2Name = null, - ): string { - $arguments = [ - $this->quoteNationalStringLiteral($name), - $this->quoteNationalStringLiteral($value ?? ''), - $this->quoteNationalStringLiteral($level0Type ?? ''), - $level0Name ?? '', - $this->quoteNationalStringLiteral($level1Type ?? ''), - $level1Name ?? '', - ]; - - if ($level2Type !== null || $level2Name !== null) { - $arguments[] = $this->quoteNationalStringLiteral($level2Type ?? ''); - $arguments[] = $level2Name ?? ''; - } - - return $this->getExecSQL('sp_addextendedproperty', ...$arguments); - } - - /** - * Returns the SQL statement for dropping an extended property from a database object. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @link http://technet.microsoft.com/en-gb/library/ms178595%28v=sql.90%29.aspx - * - * @param string $name The name of the property to drop. - * @param string|null $level0Type The type of the object at level 0 the property belongs to. - * @param string|null $level0Name The name of the object at level 0 the property belongs to. - * @param string|null $level1Type The type of the object at level 1 the property belongs to. - * @param string|null $level1Name The name of the object at level 1 the property belongs to. - * @param string|null $level2Type The type of the object at level 2 the property belongs to. - * @param string|null $level2Name The name of the object at level 2 the property belongs to. - */ - protected function getDropExtendedPropertySQL( - string $name, - ?string $level0Type = null, - ?string $level0Name = null, - ?string $level1Type = null, - ?string $level1Name = null, - ?string $level2Type = null, - ?string $level2Name = null, - ): string { - $arguments = [ - $this->quoteNationalStringLiteral($name), - $this->quoteNationalStringLiteral($level0Type ?? ''), - $level0Name ?? '', - $this->quoteNationalStringLiteral($level1Type ?? ''), - $level1Name ?? '', - ]; - - if ($level2Type !== null || $level2Name !== null) { - $arguments[] = $this->quoteNationalStringLiteral($level2Type ?? ''); - $arguments[] = $level2Name ?? ''; - } - - return $this->getExecSQL('sp_dropextendedproperty', ...$arguments); - } - - /** - * Returns the SQL statement for updating an extended property of a database object. - * - * @internal The method should be only used by the {@see SQLServerPlatform} class. - * - * @link http://msdn.microsoft.com/en-us/library/ms186885%28v=sql.90%29.aspx - * - * @param string $name The name of the property to update. - * @param string|null $value The value of the property to update. - * @param string|null $level0Type The type of the object at level 0 the property belongs to. - * @param string|null $level0Name The name of the object at level 0 the property belongs to. - * @param string|null $level1Type The type of the object at level 1 the property belongs to. - * @param string|null $level1Name The name of the object at level 1 the property belongs to. - * @param string|null $level2Type The type of the object at level 2 the property belongs to. - * @param string|null $level2Name The name of the object at level 2 the property belongs to. - */ - protected function getUpdateExtendedPropertySQL( - string $name, - ?string $value = null, - ?string $level0Type = null, - ?string $level0Name = null, - ?string $level1Type = null, - ?string $level1Name = null, - ?string $level2Type = null, - ?string $level2Name = null, - ): string { - $arguments = [ - $this->quoteNationalStringLiteral($name), - $this->quoteNationalStringLiteral($value ?? ''), - $this->quoteNationalStringLiteral($level0Type ?? ''), - $level0Name ?? '', - $this->quoteNationalStringLiteral($level1Type ?? ''), - $level1Name ?? '', - ]; - - if ($level2Type !== null || $level2Name !== null) { - $arguments[] = $this->quoteNationalStringLiteral($level2Type ?? ''); - $arguments[] = $level2Name ?? ''; - } - - return $this->getExecSQL('sp_updateextendedproperty', ...$arguments); - } - - /** - * Returns the SQL statement that will execute the given stored procedure with the given arguments. - * - * @param string $procedureName The name of the stored procedure to execute. - * @param string ...$arguments The SQL fragments representing the arguments to pass to the stored procedure. - */ - private function getExecSQL(string $procedureName, string ...$arguments): string - { - return 'EXEC ' . $this->quoteSingleIdentifier($procedureName) . ' ' . implode(', ', $arguments); - } - - private function quoteNationalStringLiteral(string $value): string - { - return 'N' . $this->quoteStringLiteral($value); - } - - public function getEmptyIdentityInsertSQL(string $quotedTableName, string $quotedIdentifierColumnName): string - { - return 'INSERT INTO ' . $quotedTableName . ' DEFAULT VALUES'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return "SELECT name, definition FROM sysobjects - INNER JOIN sys.sql_modules ON sysobjects.id = sys.sql_modules.object_id - WHERE type = 'V' ORDER BY name"; - } - - public function getLocateExpression(string $string, string $substring, ?string $start = null): string - { - if ($start === null) { - return sprintf('CHARINDEX(%s, %s)', $substring, $string); - } - - return sprintf('CHARINDEX(%s, %s, %s)', $substring, $string, $start); - } - - public function getModExpression(string $dividend, string $divisor): string - { - return $dividend . ' % ' . $divisor; - } - - public function getTrimExpression( - string $str, - TrimMode $mode = TrimMode::UNSPECIFIED, - ?string $char = null, - ): string { - if ($char === null) { - return match ($mode) { - TrimMode::LEADING => 'LTRIM(' . $str . ')', - TrimMode::TRAILING => 'RTRIM(' . $str . ')', - default => 'LTRIM(RTRIM(' . $str . '))', - }; - } - - $pattern = "'%[^' + " . $char . " + ']%'"; - - if ($mode === TrimMode::LEADING) { - return 'stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str . ') - 1, null)'; - } - - if ($mode === TrimMode::TRAILING) { - return 'reverse(stuff(reverse(' . $str . '), 1, ' - . 'patindex(' . $pattern . ', reverse(' . $str . ')) - 1, null))'; - } - - return 'reverse(stuff(reverse(stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str . ') - 1, null)), 1, ' - . 'patindex(' . $pattern . ', reverse(stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str - . ') - 1, null))) - 1, null))'; - } - - public function getConcatExpression(string ...$string): string - { - return sprintf('CONCAT(%s)', implode(', ', $string)); - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListDatabasesSQL(): string - { - return 'SELECT * FROM sys.databases'; - } - - public function getSubstringExpression(string $string, string $start, ?string $length = null): string - { - if ($length === null) { - return sprintf('SUBSTRING(%s, %s, LEN(%s) - %s + 1)', $string, $start, $string, $start); - } - - return sprintf('SUBSTRING(%s, %s, %s)', $string, $start, $length); - } - - public function getLengthExpression(string $string): string - { - return 'LEN(' . $string . ')'; - } - - public function getCurrentDatabaseExpression(): string - { - return 'DB_NAME()'; - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - return 'SET TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level); - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getGuidTypeDeclarationSQL(array $column): string - { - return 'UNIQUEIDENTIFIER'; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTzTypeDeclarationSQL(array $column): string - { - return 'DATETIMEOFFSET(6)'; - } - - protected function getCharTypeDeclarationSQLSnippet(?int $length): string - { - $sql = 'NCHAR'; - - if ($length !== null) { - $sql .= sprintf('(%d)', $length); - } - - return $sql; - } - - protected function getVarcharTypeDeclarationSQLSnippet(?int $length): string - { - if ($length === null) { - throw ColumnLengthRequired::new($this, 'NVARCHAR'); - } - - return sprintf('NVARCHAR(%d)', $length); - } - - /** - * {@inheritDoc} - */ - public function getAsciiStringTypeDeclarationSQL(array $column): string - { - $length = $column['length'] ?? null; - - if (empty($column['fixed'])) { - return parent::getVarcharTypeDeclarationSQLSnippet($length); - } - - return parent::getCharTypeDeclarationSQLSnippet($length); - } - - /** - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - return 'VARCHAR(MAX)'; - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - if (! empty($column['autoincrement'])) { - return ' IDENTITY'; - } - - return ''; - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - // 3 - microseconds precision length - // http://msdn.microsoft.com/en-us/library/ms187819.aspx - return 'DATETIME2(6)'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'TIME(0)'; - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'BIT'; - } - - protected function doModifyLimitQuery(string $query, ?int $limit, int $offset): string - { - if ($limit === null && $offset <= 0) { - return $query; - } - - if ($this->shouldAddOrderBy($query)) { - if (preg_match('/^SELECT\s+DISTINCT/im', $query) > 0) { - // SQL Server won't let us order by a non-selected column in a DISTINCT query, - // so we have to do this madness. This says, order by the first column in the - // result. SQL Server's docs say that a nonordered query's result order is non- - // deterministic anyway, so this won't do anything that a bunch of update and - // deletes to the table wouldn't do anyway. - $query .= ' ORDER BY 1'; - } else { - // In another DBMS, we could do ORDER BY 0, but SQL Server gets angry if you - // use constant expressions in the order by list. - $query .= ' ORDER BY (SELECT 0)'; - } - } - - // This looks somewhat like MYSQL, but limit/offset are in inverse positions - // Supposedly SQL:2008 core standard. - // Per TSQL spec, FETCH NEXT n ROWS ONLY is not valid without OFFSET n ROWS. - $query .= sprintf(' OFFSET %d ROWS', $offset); - - if ($limit !== null) { - $query .= sprintf(' FETCH NEXT %d ROWS ONLY', $limit); - } - - return $query; - } - - public function convertBooleans(mixed $item): mixed - { - if (is_array($item)) { - foreach ($item as $key => $value) { - if (! is_bool($value) && ! is_numeric($value)) { - continue; - } - - $item[$key] = (int) (bool) $value; - } - } elseif (is_bool($item) || is_numeric($item)) { - $item = (int) (bool) $item; - } - - return $item; - } - - public function getCreateTemporaryTableSnippetSQL(): string - { - return 'CREATE TABLE'; - } - - public function getTemporaryTableName(string $tableName): string - { - return '#' . $tableName; - } - - public function getDateTimeFormatString(): string - { - return 'Y-m-d H:i:s.u'; - } - - public function getDateFormatString(): string - { - return 'Y-m-d'; - } - - public function getTimeFormatString(): string - { - return 'H:i:s'; - } - - public function getDateTimeTzFormatString(): string - { - return 'Y-m-d H:i:s.u P'; - } - - protected function initializeDoctrineTypeMappings(): void - { - $this->doctrineTypeMapping = [ - 'bigint' => Types::BIGINT, - 'binary' => Types::BINARY, - 'bit' => Types::BOOLEAN, - 'blob' => Types::BLOB, - 'char' => Types::STRING, - 'date' => Types::DATE_MUTABLE, - 'datetime' => Types::DATETIME_MUTABLE, - 'datetime2' => Types::DATETIME_MUTABLE, - 'datetimeoffset' => Types::DATETIMETZ_MUTABLE, - 'decimal' => Types::DECIMAL, - 'double' => Types::FLOAT, - 'double precision' => Types::FLOAT, - 'float' => Types::FLOAT, - 'image' => Types::BLOB, - 'int' => Types::INTEGER, - 'money' => Types::INTEGER, - 'nchar' => Types::STRING, - 'ntext' => Types::TEXT, - 'numeric' => Types::DECIMAL, - 'nvarchar' => Types::STRING, - 'real' => Types::SMALLFLOAT, - 'smalldatetime' => Types::DATETIME_MUTABLE, - 'smallint' => Types::SMALLINT, - 'smallmoney' => Types::INTEGER, - 'sysname' => Types::STRING, - 'text' => Types::TEXT, - 'time' => Types::TIME_MUTABLE, - 'tinyint' => Types::SMALLINT, - 'uniqueidentifier' => Types::GUID, - 'varbinary' => Types::BINARY, - 'varchar' => Types::STRING, - 'xml' => Types::TEXT, - ]; - } - - public function createSavePoint(string $savepoint): string - { - return 'SAVE TRANSACTION ' . $savepoint; - } - - public function releaseSavePoint(string $savepoint): string - { - return ''; - } - - public function rollbackSavePoint(string $savepoint): string - { - return 'ROLLBACK TRANSACTION ' . $savepoint; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getForeignKeyReferentialActionSQL(string $action): string - { - // RESTRICT is not supported, therefore falling back to NO ACTION. - if (strtoupper($action) === 'RESTRICT') { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6707', - 'Relying on automatic conversion of RESTRICT to NO ACTION for SQL Server is deprecated.' - . ' Use NO ACTION explicitly instead.', - ); - - return 'NO ACTION'; - } - - return parent::getForeignKeyReferentialActionSQL($action); - } - - public function appendLockHint(string $fromClause, LockMode $lockMode): string - { - return match ($lockMode) { - LockMode::NONE, - LockMode::OPTIMISTIC => $fromClause, - LockMode::PESSIMISTIC_READ => $fromClause . ' WITH (HOLDLOCK, ROWLOCK)', - LockMode::PESSIMISTIC_WRITE => $fromClause . ' WITH (UPDLOCK, ROWLOCK)', - }; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new SQLServerKeywords(); - } - - public function quoteSingleIdentifier(string $str): string - { - return '[' . str_replace(']', ']]', $str) . ']'; - } - - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - - return 'TRUNCATE TABLE ' . $tableIdentifier->getQuotedName($this); - } - - /** - * {@inheritDoc} - */ - public function getBlobTypeDeclarationSQL(array $column): string - { - return 'VARBINARY(MAX)'; - } - - /** - * {@inheritDoc} - * - * @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. - */ - public function getColumnDeclarationSQL(string $name, array $column): string - { - if (isset($column['columnDefinition'])) { - $declaration = $column['columnDefinition']; - } else { - $collation = ! empty($column['collation']) ? - ' ' . $this->getColumnCollationDeclarationSQL($column['collation']) : ''; - - $notnull = ! empty($column['notnull']) ? ' NOT NULL' : ''; - - $typeDecl = $column['type']->getSQLDeclaration($column, $this); - $declaration = $typeDecl . $collation . $notnull; - } - - return $name . ' ' . $declaration; - } - - /** - * SQL Server does not support quoting collation identifiers. - */ - public function getColumnCollationDeclarationSQL(string $collation): string - { - return 'COLLATE ' . $collation; - } - - public function columnsEqual(Column $column1, Column $column2): bool - { - if (! parent::columnsEqual($column1, $column2)) { - return false; - } - - return $this->getDefaultValueDeclarationSQL($column1->toArray()) - === $this->getDefaultValueDeclarationSQL($column2->toArray()); - } - - /** - * The [ character is used in SQL Server's extended pattern syntax to define character ranges or sets. - * - * @link https://learn.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql#pattern - */ - protected function getLikeWildcardCharacters(): string - { - return parent::getLikeWildcardCharacters() . '['; - } - - protected function getCommentOnTableSQL(string $tableName, string $comment): string - { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - } else { - $schemaName = 'dbo'; - } - - return $this->getAddExtendedPropertySQL( - 'MS_Description', - $comment, - 'SCHEMA', - $this->quoteStringLiteral($schemaName), - 'TABLE', - $this->quoteStringLiteral($this->unquoteSingleIdentifier($tableName)), - ); - } - - private function shouldAddOrderBy(string $query): bool - { - // Find the position of the last instance of ORDER BY and ensure it is not within a parenthetical statement - // but can be in a newline - $matches = []; - $matchesCount = preg_match_all('/[\\s]+order\\s+by\\s/im', $query, $matches, PREG_OFFSET_CAPTURE); - if ($matchesCount === 0) { - return true; - } - - // ORDER BY instance may be in a subquery after ORDER BY - // e.g. SELECT col1 FROM test ORDER BY (SELECT col2 from test ORDER BY col2) - // if in the searched query ORDER BY clause was found where - // number of open parentheses after the occurrence of the clause is equal to - // number of closed brackets after the occurrence of the clause, - // it means that ORDER BY is included in the query being checked - while ($matchesCount > 0) { - $orderByPos = $matches[0][--$matchesCount][1]; - $openBracketsCount = substr_count($query, '(', $orderByPos); - $closedBracketsCount = substr_count($query, ')', $orderByPos); - if ($openBracketsCount === $closedBracketsCount) { - return false; - } - } - - return true; - } - - public function createSchemaManager(Connection $connection): SQLServerSchemaManager - { - return new SQLServerSchemaManager($connection, $this); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLite/Comparator.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLite/Comparator.php deleted file mode 100644 index d14aefb..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLite/Comparator.php +++ /dev/null @@ -1,53 +0,0 @@ -normalizeColumns($oldTable), - $this->normalizeColumns($newTable), - ); - } - - private function normalizeColumns(Table $table): Table - { - $table = clone $table; - - foreach ($table->getColumns() as $column) { - $options = $column->getPlatformOptions(); - - if (! isset($options['collation']) || strcasecmp($options['collation'], 'binary') !== 0) { - continue; - } - - unset($options['collation']); - $column->setPlatformOptions($options); - } - - return $table; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLitePlatform.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLitePlatform.php deleted file mode 100644 index 7567159..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/SQLitePlatform.php +++ /dev/null @@ -1,983 +0,0 @@ - 'TRIM', - TrimMode::LEADING => 'LTRIM', - TrimMode::TRAILING => 'RTRIM', - }; - - $arguments = [$str]; - - if ($char !== null) { - $arguments[] = $char; - } - - return sprintf('%s(%s)', $trimFn, implode(', ', $arguments)); - } - - public function getSubstringExpression(string $string, string $start, ?string $length = null): string - { - if ($length === null) { - return sprintf('SUBSTR(%s, %s)', $string, $start); - } - - return sprintf('SUBSTR(%s, %s, %s)', $string, $start, $length); - } - - public function getLocateExpression(string $string, string $substring, ?string $start = null): string - { - if ($start === null || $start === '1') { - return sprintf('INSTR(%s, %s)', $string, $substring); - } - - return sprintf( - 'CASE WHEN INSTR(SUBSTR(%1$s, %3$s), %2$s) > 0 THEN INSTR(SUBSTR(%1$s, %3$s), %2$s) + %3$s - 1 ELSE 0 END', - $string, - $substring, - $start, - ); - } - - protected function getDateArithmeticIntervalExpression( - string $date, - string $operator, - string $interval, - DateIntervalUnit $unit, - ): string { - switch ($unit) { - case DateIntervalUnit::WEEK: - $interval = $this->multiplyInterval($interval, 7); - $unit = DateIntervalUnit::DAY; - break; - - case DateIntervalUnit::QUARTER: - $interval = $this->multiplyInterval($interval, 3); - $unit = DateIntervalUnit::MONTH; - break; - } - - return 'DATETIME(' . $date . ',' . $this->getConcatExpression( - $this->quoteStringLiteral($operator), - $interval, - $this->quoteStringLiteral(' ' . $unit->value), - ) . ')'; - } - - public function getDateDiffExpression(string $date1, string $date2): string - { - return sprintf("JULIANDAY(%s, 'start of day') - JULIANDAY(%s, 'start of day')", $date1, $date2); - } - - /** - * {@inheritDoc} - * - * The DBAL doesn't support databases on the SQLite platform. The expression here always returns a fixed string - * as an indicator of an implicitly selected database. - * - * @link https://www.sqlite.org/lang_select.html - * @see Connection::getDatabase() - */ - public function getCurrentDatabaseExpression(): string - { - return "'main'"; - } - - /** @link https://www2.sqlite.org/cvstrac/wiki?p=UnsupportedSql */ - public function createSelectSQLBuilder(): SelectSQLBuilder - { - return new DefaultSelectSQLBuilder($this, null, null); - } - - protected function _getTransactionIsolationLevelSQL(TransactionIsolationLevel $level): string - { - return match ($level) { - TransactionIsolationLevel::READ_UNCOMMITTED => '0', - TransactionIsolationLevel::READ_COMMITTED, - TransactionIsolationLevel::REPEATABLE_READ, - TransactionIsolationLevel::SERIALIZABLE => '1', - }; - } - - public function getSetTransactionIsolationSQL(TransactionIsolationLevel $level): string - { - return 'PRAGMA read_uncommitted = ' . $this->_getTransactionIsolationLevelSQL($level); - } - - /** - * {@inheritDoc} - */ - public function getBooleanTypeDeclarationSQL(array $column): string - { - return 'BOOLEAN'; - } - - /** - * {@inheritDoc} - */ - public function getIntegerTypeDeclarationSQL(array $column): string - { - return 'INTEGER' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getBigIntTypeDeclarationSQL(array $column): string - { - // SQLite autoincrement is implicit for INTEGER PKs, but not for BIGINT fields. - if (! empty($column['autoincrement'])) { - return $this->getIntegerTypeDeclarationSQL($column); - } - - return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getSmallIntTypeDeclarationSQL(array $column): string - { - // SQLite autoincrement is implicit for INTEGER PKs, but not for SMALLINT fields. - if (! empty($column['autoincrement'])) { - return $this->getIntegerTypeDeclarationSQL($column); - } - - return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($column); - } - - /** - * {@inheritDoc} - */ - public function getDateTimeTypeDeclarationSQL(array $column): string - { - return 'DATETIME'; - } - - /** - * {@inheritDoc} - */ - public function getDateTypeDeclarationSQL(array $column): string - { - return 'DATE'; - } - - /** - * {@inheritDoc} - */ - public function getTimeTypeDeclarationSQL(array $column): string - { - return 'TIME'; - } - - /** - * {@inheritDoc} - */ - protected function _getCommonIntegerTypeDeclarationSQL(array $column): string - { - // SQLite autoincrement is only possible for the primary key - if (! empty($column['autoincrement'])) { - return ' PRIMARY KEY AUTOINCREMENT'; - } - - return ! empty($column['unsigned']) ? ' UNSIGNED' : ''; - } - - /** - * {@inheritDoc} - */ - protected function _getCreateTableSQL(string $name, array $columns, array $options = []): array - { - $this->validateCreateTableOptions($options, __METHOD__); - - if ($this->hasAutoIncrementColumn($columns, $options)) { - $options['primary'] = []; - } - - $queryFields = $this->getColumnDeclarationListSQL($columns); - - if (! empty($options['uniqueConstraints'])) { - foreach ($options['uniqueConstraints'] as $definition) { - $queryFields .= ', ' . $this->getUniqueConstraintDeclarationSQL($definition); - } - } - - if (! empty($options['primary'])) { - $keyColumns = array_unique(array_values($options['primary'])); - $queryFields .= ', PRIMARY KEY (' . implode(', ', $keyColumns) . ')'; - } - - if (isset($options['foreignKeys'])) { - foreach ($options['foreignKeys'] as $foreignKey) { - $queryFields .= ', ' . $this->getForeignKeyDeclarationSQL($foreignKey); - } - } - - $tableComment = ''; - if (isset($options['comment'])) { - $tableComment = $this->getInlineTableCommentSQL($options['comment']); - } - - $query = ['CREATE TABLE ' . $name . ' ' . $tableComment . '(' . $queryFields . ')']; - - if (isset($options['alter']) && $options['alter'] === true) { - return $query; - } - - if (! empty($options['indexes'])) { - foreach ($options['indexes'] as $indexDef) { - $query[] = $this->getCreateIndexSQL($indexDef, $name); - } - } - - return $query; - } - - /** - * @param list $columns - * @param CreateTableParameters $options - */ - private function hasAutoIncrementColumn(array $columns, array $options): bool - { - $primaryKeyColumnNames = array_fill_keys($options['primary'] ?? [], true); - - foreach ($columns as $column) { - if (empty($column['autoincrement'])) { - continue; - } - - if (! isset($primaryKeyColumnNames[$column['name']])) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6849', - 'Declaring a column that is not part of the primary key as auto-increment is deprecated.', - ); - } elseif (count($primaryKeyColumnNames) > 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6849', - 'Declaring a column that is part of a composite primary key as auto-increment is deprecated.', - ); - } - - return true; - } - - return false; - } - - protected function getBinaryTypeDeclarationSQLSnippet(?int $length): string - { - return 'BLOB'; - } - - protected function getVarcharTypeDeclarationSQLSnippet(?int $length): string - { - $sql = 'VARCHAR'; - - if ($length !== null) { - $sql .= sprintf('(%d)', $length); - } - - return $sql; - } - - protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length): string - { - return 'BLOB'; - } - - /** - * {@inheritDoc} - */ - public function getClobTypeDeclarationSQL(array $column): string - { - return 'CLOB'; - } - - /** @internal The method should be only used from within the {@see AbstractSchemaManager} class hierarchy. */ - public function getListViewsSQL(string $database): string - { - return "SELECT name, sql FROM sqlite_master WHERE type='view' AND sql NOT NULL"; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey): string - { - $query = parent::getAdvancedForeignKeyOptionsSQL($foreignKey); - - if (! $foreignKey->hasOption('deferrable') || $foreignKey->getOption('deferrable') === false) { - $query .= ' NOT'; - } - - $query .= ' DEFERRABLE'; - $query .= ' INITIALLY'; - - if ($foreignKey->hasOption('deferred') && $foreignKey->getOption('deferred') !== false) { - $query .= ' DEFERRED'; - } else { - $query .= ' IMMEDIATE'; - } - - return $query; - } - - public function supportsIdentityColumns(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsColumnCollation(): bool - { - return true; - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function supportsInlineColumnComments(): bool - { - return true; - } - - public function getTruncateTableSQL(string $tableName, bool $cascade = false): string - { - $tableIdentifier = new Identifier($tableName); - - return 'DELETE FROM ' . $tableIdentifier->getQuotedName($this); - } - - /** @internal The method should be only used from within the {@see AbstractPlatform} class hierarchy. */ - public function getInlineColumnCommentSQL(string $comment): string - { - if ($comment === '') { - return ''; - } - - return '--' . str_replace("\n", "\n--", $comment) . "\n"; - } - - private function getInlineTableCommentSQL(string $comment): string - { - return $this->getInlineColumnCommentSQL($comment); - } - - protected function initializeDoctrineTypeMappings(): void - { - $this->doctrineTypeMapping = [ - 'bigint' => 'bigint', - 'bigserial' => 'bigint', - 'blob' => 'blob', - 'boolean' => 'boolean', - 'char' => 'string', - 'clob' => 'text', - 'date' => 'date', - 'datetime' => 'datetime', - 'decimal' => 'decimal', - 'double' => 'float', - 'double precision' => 'float', - 'float' => 'float', - 'image' => 'string', - 'int' => 'integer', - 'integer' => 'integer', - 'longtext' => 'text', - 'longvarchar' => 'string', - 'mediumint' => 'integer', - 'mediumtext' => 'text', - 'ntext' => 'string', - 'numeric' => 'decimal', - 'nvarchar' => 'string', - 'real' => 'smallfloat', - 'serial' => 'integer', - 'smallint' => 'smallint', - 'string' => 'string', - 'text' => 'text', - 'time' => 'time', - 'timestamp' => 'datetime', - 'tinyint' => 'boolean', - 'tinytext' => 'text', - 'varchar' => 'string', - 'varchar2' => 'string', - ]; - } - - /** @deprecated */ - protected function createReservedKeywordsList(): KeywordList - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6607', - '%s is deprecated.', - __METHOD__, - ); - - return new SQLiteKeywords(); - } - - /** - * {@inheritDoc} - */ - protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - return []; - } - - /** - * {@inheritDoc} - */ - protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff): array - { - $table = $diff->getOldTable(); - - $sql = []; - - foreach ($this->getIndexesInAlteredTable($diff) as $index) { - if ($index->isPrimary()) { - continue; - } - - $sql[] = $this->getCreateIndexSQL($index, $table->getQuotedName($this)); - } - - return $sql; - } - - protected function doModifyLimitQuery(string $query, ?int $limit, int $offset): string - { - if ($limit === null && $offset > 0) { - $limit = -1; - } - - return parent::doModifyLimitQuery($query, $limit, $offset); - } - - /** - * {@inheritDoc} - */ - public function getBlobTypeDeclarationSQL(array $column): string - { - return 'BLOB'; - } - - public function getTemporaryTableName(string $tableName): string - { - return $tableName; - } - - /** - * {@inheritDoc} - */ - public function getCreateTablesSQL(array $tables): array - { - $sql = []; - - foreach ($tables as $table) { - $sql = array_merge($sql, $this->getCreateTableSQL($table)); - } - - return $sql; - } - - /** {@inheritDoc} */ - public function getCreateIndexSQL(Index $index, string $table): string - { - $name = $index->getQuotedName($this); - $columns = $index->getColumns(); - - if (count($columns) === 0) { - throw new InvalidArgumentException(sprintf( - 'Incomplete or invalid index definition %s on table %s', - $name, - $table, - )); - } - - if ($index->isPrimary()) { - return $this->getCreatePrimaryKeySQL($index, $table); - } - - if (strpos($table, '.') !== false) { - [$schema, $table] = explode('.', $table); - $name = $schema . '.' . $name; - } - - $query = 'CREATE ' . $this->getCreateIndexSQLFlags($index) . 'INDEX ' . $name . ' ON ' . $table; - $query .= ' (' . implode(', ', $index->getQuotedColumns($this)) . ')' . $this->getPartialIndexSQL($index); - - return $query; - } - - /** - * {@inheritDoc} - */ - public function getDropTablesSQL(array $tables): array - { - $sql = []; - - foreach ($tables as $table) { - $sql[] = $this->getDropTableSQL($table->getQuotedName($this)); - } - - return $sql; - } - - /** @deprecated */ - public function getCreatePrimaryKeySQL(Index $index, string $table): string - { - throw NotSupported::new(__METHOD__); - } - - public function getCreateForeignKeySQL(ForeignKeyConstraint $foreignKey, string $table): string - { - throw NotSupported::new(__METHOD__); - } - - public function getDropForeignKeySQL(string $foreignKey, string $table): string - { - throw NotSupported::new(__METHOD__); - } - - /** - * {@inheritDoc} - */ - public function getAlterTableSQL(TableDiff $diff): array - { - $sql = $this->getSimpleAlterTableSQL($diff); - if ($sql !== false) { - return $sql; - } - - $table = $diff->getOldTable(); - - $columns = []; - $oldColumnNames = []; - $newColumnNames = []; - - foreach ($table->getColumns() as $column) { - $columnName = strtolower($column->getName()); - $columns[$columnName] = $column; - $oldColumnNames[$columnName] = $newColumnNames[$columnName] = $column->getQuotedName($this); - } - - foreach ($diff->getDroppedColumns() as $column) { - $columnName = strtolower($column->getName()); - if (! isset($columns[$columnName])) { - continue; - } - - unset( - $columns[$columnName], - $oldColumnNames[$columnName], - $newColumnNames[$columnName], - ); - } - - foreach ($diff->getChangedColumns() as $columnDiff) { - $oldColumnName = strtolower($columnDiff->getOldColumn()->getName()); - $newColumn = $columnDiff->getNewColumn(); - - $columns = $this->replaceColumn( - $table->getName(), - $columns, - $oldColumnName, - $newColumn, - ); - - if (! isset($newColumnNames[$oldColumnName])) { - continue; - } - - $newColumnNames[$oldColumnName] = $newColumn->getQuotedName($this); - } - - foreach ($diff->getAddedColumns() as $column) { - $columns[strtolower($column->getName())] = $column; - } - - $tableName = $table->getName(); - $pos = strpos($tableName, '.'); - if ($pos !== false) { - $tableName = substr($tableName, $pos + 1); - } - - $dataTable = new Table('__temp__' . $tableName); - - $newTable = new Table( - $table->getQuotedName($this), - $columns, - $this->getPrimaryIndexInAlteredTable($diff), - [], - $this->getForeignKeysInAlteredTable($diff), - $table->getOptions(), - ); - - $newTable->addOption('alter', true); - - $sql = $this->getPreAlterTableIndexForeignKeySQL($diff); - - $sql[] = sprintf( - 'CREATE TEMPORARY TABLE %s AS SELECT %s FROM %s', - $dataTable->getQuotedName($this), - implode(', ', $oldColumnNames), - $table->getQuotedName($this), - ); - $sql[] = $this->getDropTableSQL($table->getQuotedName($this)); - - $sql = array_merge($sql, $this->getCreateTableSQL($newTable)); - $sql[] = sprintf( - 'INSERT INTO %s (%s) SELECT %s FROM %s', - $newTable->getQuotedName($this), - implode(', ', $newColumnNames), - implode(', ', $oldColumnNames), - $dataTable->getQuotedName($this), - ); - $sql[] = $this->getDropTableSQL($dataTable->getQuotedName($this)); - - return array_merge($sql, $this->getPostAlterTableIndexForeignKeySQL($diff)); - } - - /** - * Replace the column with the given name with the new column. - * - * @param array $columns - * - * @return array - */ - private function replaceColumn(string $tableName, array $columns, string $columnName, Column $column): array - { - $keys = array_keys($columns); - $index = array_search($columnName, $keys, true); - - if ($index === false) { - throw ColumnDoesNotExist::new($columnName, $tableName); - } - - $values = array_values($columns); - - $keys[$index] = strtolower($column->getName()); - $values[$index] = $column; - - return array_combine($keys, $values); - } - - /** @return list|false */ - private function getSimpleAlterTableSQL(TableDiff $diff): array|false - { - if ( - count($diff->getChangedColumns()) > 0 - || count($diff->getDroppedColumns()) > 0 - || count($diff->getAddedIndexes()) > 0 - || count($diff->getModifiedIndexes()) > 0 - || count($diff->getDroppedIndexes()) > 0 - || count($diff->getRenamedIndexes()) > 0 - || count($diff->getAddedForeignKeys()) > 0 - || count($diff->getModifiedForeignKeys()) > 0 - || count($diff->getDroppedForeignKeys()) > 0 - ) { - return false; - } - - $table = $diff->getOldTable(); - - $sql = []; - - foreach ($diff->getAddedColumns() as $column) { - $definition = $column->toArray(); - - $type = $definition['type']; - - switch (true) { - case isset($definition['columnDefinition']) || $definition['autoincrement']: - case $type instanceof Types\DateTimeType && $definition['default'] === $this->getCurrentTimestampSQL(): - case $type instanceof Types\DateType && $definition['default'] === $this->getCurrentDateSQL(): - case $type instanceof Types\TimeType && $definition['default'] === $this->getCurrentTimeSQL(): - return false; - } - - $definition['name'] = $column->getQuotedName($this); - - $sql[] = 'ALTER TABLE ' . $table->getQuotedName($this) . ' ADD COLUMN ' - . $this->getColumnDeclarationSQL($definition['name'], $definition); - } - - return $sql; - } - - /** - * Based on the table diff, returns a map where the keys are the lower-case old column names and the values are the - * new column names. If the column was dropped, it is not present in the map. - * - * @return array - */ - private function getDiffColumnNameMap(TableDiff $diff): array - { - $oldTable = $diff->getOldTable(); - - $map = []; - - foreach ($oldTable->getColumns() as $column) { - $columnName = $column->getName(); - $map[strtolower($columnName)] = $columnName; - } - - foreach ($diff->getDroppedColumns() as $column) { - unset($map[strtolower($column->getName())]); - } - - foreach ($diff->getChangedColumns() as $columnDiff) { - $columnName = $columnDiff->getOldColumn()->getName(); - $map[strtolower($columnName)] = $columnDiff->getNewColumn()->getName(); - } - - foreach ($diff->getAddedColumns() as $column) { - $columnName = $column->getName(); - $map[strtolower($columnName)] = $columnName; - } - - // @phpstan-ignore return.type - return $map; - } - - /** @return array */ - private function getIndexesInAlteredTable(TableDiff $diff): array - { - $oldTable = $diff->getOldTable(); - $indexes = $oldTable->getIndexes(); - $nameMap = $this->getDiffColumnNameMap($diff); - - foreach ($indexes as $key => $index) { - foreach ($diff->getRenamedIndexes() as $oldIndexName => $renamedIndex) { - if (strtolower($key) !== strtolower($oldIndexName)) { - continue; - } - - unset($indexes[$key]); - } - - $changed = false; - $indexColumns = []; - foreach ($index->getColumns() as $columnName) { - $normalizedColumnName = strtolower($columnName); - if (! isset($nameMap[$normalizedColumnName])) { - unset($indexes[$key]); - continue 2; - } - - $indexColumns[] = $nameMap[$normalizedColumnName]; - if ($columnName === $nameMap[$normalizedColumnName]) { - continue; - } - - $changed = true; - } - - if (! $changed) { - continue; - } - - $indexes[$key] = new Index( - $index->getName(), - $indexColumns, - $index->isUnique(), - $index->isPrimary(), - $index->getFlags(), - ); - } - - foreach ($diff->getDroppedIndexes() as $index) { - $indexName = $index->getName(); - - if ($indexName === '') { - continue; - } - - unset($indexes[strtolower($indexName)]); - } - - foreach ( - array_merge( - $diff->getModifiedIndexes(), - $diff->getAddedIndexes(), - $diff->getRenamedIndexes(), - ) as $index - ) { - $indexName = $index->getName(); - - if ($indexName !== '') { - $indexes[strtolower($indexName)] = $index; - } else { - $indexes[] = $index; - } - } - - return $indexes; - } - - /** @return array */ - private function getForeignKeysInAlteredTable(TableDiff $diff): array - { - $oldTable = $diff->getOldTable(); - $foreignKeys = $oldTable->getForeignKeys(); - $nameMap = $this->getDiffColumnNameMap($diff); - - foreach ($foreignKeys as $key => $constraint) { - $changed = false; - $localColumns = []; - foreach ($constraint->getLocalColumns() as $columnName) { - $normalizedColumnName = strtolower($columnName); - if (! isset($nameMap[$normalizedColumnName])) { - unset($foreignKeys[$key]); - continue 2; - } - - $localColumns[] = $nameMap[$normalizedColumnName]; - if ($columnName === $nameMap[$normalizedColumnName]) { - continue; - } - - $changed = true; - } - - if (! $changed) { - continue; - } - - $foreignKeys[$key] = new ForeignKeyConstraint( - $localColumns, // @phpstan-ignore argument.type - $constraint->getForeignTableName(), - $constraint->getForeignColumns(), // @phpstan-ignore argument.type - $constraint->getName(), - $constraint->getOptions(), - ); - } - - foreach ($diff->getDroppedForeignKeys() as $constraint) { - $constraintName = $constraint->getName(); - - if ($constraintName === '') { - continue; - } - - unset($foreignKeys[strtolower($constraintName)]); - } - - foreach (array_merge($diff->getModifiedForeignKeys(), $diff->getAddedForeignKeys()) as $constraint) { - $constraintName = $constraint->getName(); - - if ($constraintName !== '') { - $foreignKeys[strtolower($constraintName)] = $constraint; - } else { - $foreignKeys[] = $constraint; - } - } - - return $foreignKeys; - } - - /** @return array */ - private function getPrimaryIndexInAlteredTable(TableDiff $diff): array - { - $primaryIndex = []; - - foreach ($this->getIndexesInAlteredTable($diff) as $index) { - if (! $index->isPrimary()) { - continue; - } - - $primaryIndex = [$index->getName() => $index]; - } - - return $primaryIndex; - } - - public function createSchemaManager(Connection $connection): SQLiteSchemaManager - { - return new SQLiteSchemaManager($connection, $this); - } - - /** - * Returns the union select query part surrounded by parenthesis if possible for platform. - */ - public function getUnionSelectPartSQL(string $subQuery): string - { - return $subQuery; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/TrimMode.php b/projects/priceservice/vendor/doctrine/dbal/src/Platforms/TrimMode.php deleted file mode 100644 index 31c2375..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Platforms/TrimMode.php +++ /dev/null @@ -1,13 +0,0 @@ -converter, - ); - } - - public function query(string $sql): Result - { - return new Result( - parent::query($sql), - $this->converter, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Converter.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/Converter.php deleted file mode 100644 index d26e85f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Converter.php +++ /dev/null @@ -1,294 +0,0 @@ -createConvertValue($convertEmptyStringToNull, $rightTrimString); - $convertNumeric = $this->createConvertRow($convertValue, null); - $convertAssociative = $this->createConvertRow($convertValue, $case); - - $this->convertNumeric = $this->createConvert($convertNumeric); - $this->convertAssociative = $this->createConvert($convertAssociative); - $this->convertOne = $this->createConvert($convertValue); - - $this->convertAllNumeric = $this->createConvertAll($convertNumeric); - $this->convertAllAssociative = $this->createConvertAll($convertAssociative); - $this->convertFirstColumn = $this->createConvertAll($convertValue); - - $this->convertColumnName = match ($case) { - null => static fn (string $name) => $name, - self::CASE_LOWER => strtolower(...), - self::CASE_UPPER => strtoupper(...), - }; - } - - /** - * @param array|false $row - * - * @return list|false - */ - public function convertNumeric(array|false $row): array|false - { - return ($this->convertNumeric)($row); - } - - /** - * @param array|false $row - * - * @return array|false - */ - public function convertAssociative(array|false $row): array|false - { - return ($this->convertAssociative)($row); - } - - public function convertOne(mixed $value): mixed - { - return ($this->convertOne)($value); - } - - /** - * @param list> $data - * - * @return list> - */ - public function convertAllNumeric(array $data): array - { - return ($this->convertAllNumeric)($data); - } - - /** - * @param list> $data - * - * @return list> - */ - public function convertAllAssociative(array $data): array - { - return ($this->convertAllAssociative)($data); - } - - /** - * @param list $data - * - * @return list - */ - public function convertFirstColumn(array $data): array - { - return ($this->convertFirstColumn)($data); - } - - public function convertColumnName(string $name): string - { - return ($this->convertColumnName)($name); - } - - /** - * @param T $value - * - * @return T - * - * @template T - */ - private static function id(mixed $value): mixed - { - return $value; - } - - /** - * @param T $value - * - * @return T|null - * - * @template T - */ - private static function convertEmptyStringToNull(mixed $value): mixed - { - if ($value === '') { - return null; - } - - return $value; - } - - /** - * @param T $value - * - * @return T|string - * @phpstan-return (T is string ? string : T) - * - * @template T - */ - private static function rightTrimString(mixed $value): mixed - { - if (! is_string($value)) { - return $value; - } - - return rtrim($value); - } - - /** - * Creates a function that will convert each individual value retrieved from the database - * - * @param bool $convertEmptyStringToNull Whether each empty string should be converted to NULL - * @param bool $rightTrimString Whether each string should right-trimmed - * - * @return Closure|null The resulting function or NULL if no conversion is needed - */ - private function createConvertValue(bool $convertEmptyStringToNull, bool $rightTrimString): ?Closure - { - $functions = []; - - if ($convertEmptyStringToNull) { - $functions[] = self::convertEmptyStringToNull(...); - } - - if ($rightTrimString) { - $functions[] = self::rightTrimString(...); - } - - return $this->compose(...$functions); - } - - /** - * Creates a function that will convert each array-row retrieved from the database - * - * @param Closure|null $function The function that will convert each value - * @param self::CASE_LOWER|self::CASE_UPPER|null $case Column name case - * - * @return Closure|null The resulting function or NULL if no conversion is needed - */ - private function createConvertRow(?Closure $function, ?int $case): ?Closure - { - $functions = []; - - if ($function !== null) { - $functions[] = $this->createMapper($function); - } - - if ($case !== null) { - $functions[] = static fn (array $row): array => array_change_key_case($row, $case); - } - - return $this->compose(...$functions); - } - - /** - * Creates a function that will be applied to the return value of Statement::fetch*() - * or an identity function if no conversion is needed - * - * @param Closure|null $function The function that will convert each tow - */ - private function createConvert(?Closure $function): Closure - { - if ($function === null) { - return self::id(...); - } - - return /** - * @param T $value - * - * @phpstan-return (T is false ? false : T) - * - * @template T - */ - static function (mixed $value) use ($function): mixed { - if ($value === false) { - return false; - } - - return $function($value); - }; - } - - /** - * Creates a function that will be applied to the return value of Statement::fetchAll*() - * or an identity function if no transformation is required - * - * @param Closure|null $function The function that will transform each value - */ - private function createConvertAll(?Closure $function): Closure - { - if ($function === null) { - return self::id(...); - } - - return $this->createMapper($function); - } - - /** - * Creates a function that maps each value of the array using the given function - * - * @param Closure $function The function that maps each value of the array - * - * @return Closure(array):array - */ - private function createMapper(Closure $function): Closure - { - return static fn (array $array): array => array_map($function, $array); - } - - /** - * Creates a composition of the given set of functions - * - * @param Closure(T):T ...$functions The functions to compose - * - * @return Closure(T):T|null - * - * @template T - */ - private function compose(Closure ...$functions): ?Closure - { - return array_reduce($functions, static function (?Closure $carry, Closure $item): Closure { - if ($carry === null) { - return $item; - } - - return /** - * @param T $value - * - * @return T - * - * @template T - */ - static fn (mixed $value): mixed => $item($carry($value)); - }); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Driver.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/Driver.php deleted file mode 100644 index d2f7de6..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Driver.php +++ /dev/null @@ -1,74 +0,0 @@ -getDatabasePlatform($connection), - $this->mode, - ); - - $case = null; - - if ($this->case !== null && ($portability & Connection::PORTABILITY_FIX_CASE) !== 0) { - $nativeConnection = $connection->getNativeConnection(); - - $case = match ($this->case) { - ColumnCase::LOWER => CASE_LOWER, - ColumnCase::UPPER => CASE_UPPER, - }; - - if ($nativeConnection instanceof PDO) { - $portability &= ~Connection::PORTABILITY_FIX_CASE; - $nativeConnection->setAttribute(PDO::ATTR_CASE, $case); - } - } - - $convertEmptyStringToNull = ($portability & Connection::PORTABILITY_EMPTY_TO_NULL) !== 0; - $rightTrimString = ($portability & Connection::PORTABILITY_RTRIM) !== 0; - - if (! $convertEmptyStringToNull && ! $rightTrimString && $case === null) { - return $connection; - } - - return new Connection( - $connection, - new Converter($convertEmptyStringToNull, $rightTrimString, $case), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Middleware.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/Middleware.php deleted file mode 100644 index b97897c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Middleware.php +++ /dev/null @@ -1,25 +0,0 @@ -mode !== 0) { - return new Driver($driver, $this->mode, $this->case); - } - - return $driver; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/OptimizeFlags.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/OptimizeFlags.php deleted file mode 100644 index c985d4b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/OptimizeFlags.php +++ /dev/null @@ -1,42 +0,0 @@ - - */ - private static array $platforms = [ - DB2Platform::class => 0, - OraclePlatform::class => Connection::PORTABILITY_EMPTY_TO_NULL, - PostgreSQLPlatform::class => 0, - SQLitePlatform::class => 0, - SQLServerPlatform::class => 0, - ]; - - public function __invoke(AbstractPlatform $platform, int $flags): int - { - foreach (self::$platforms as $class => $mask) { - if ($platform instanceof $class) { - $flags &= ~$mask; - - break; - } - } - - return $flags; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Result.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/Result.php deleted file mode 100644 index bb1208f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Result.php +++ /dev/null @@ -1,75 +0,0 @@ -converter->convertNumeric( - parent::fetchNumeric(), - ); - } - - public function fetchAssociative(): array|false - { - return $this->converter->convertAssociative( - parent::fetchAssociative(), - ); - } - - public function fetchOne(): mixed - { - return $this->converter->convertOne( - parent::fetchOne(), - ); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return $this->converter->convertAllNumeric( - parent::fetchAllNumeric(), - ); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - return $this->converter->convertAllAssociative( - parent::fetchAllAssociative(), - ); - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return $this->converter->convertFirstColumn( - parent::fetchFirstColumn(), - ); - } - - public function getColumnName(int $index): string - { - return $this->converter->convertColumnName( - parent::getColumnName($index), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Statement.php b/projects/priceservice/vendor/doctrine/dbal/src/Portability/Statement.php deleted file mode 100644 index de0c76f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Portability/Statement.php +++ /dev/null @@ -1,31 +0,0 @@ -Statement and applies portability measures. - */ - public function __construct(DriverStatement $stmt, private readonly Converter $converter) - { - parent::__construct($stmt); - } - - public function execute(): ResultInterface - { - return new Result( - parent::execute(), - $this->converter, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query.php b/projects/priceservice/vendor/doctrine/dbal/src/Query.php deleted file mode 100644 index 5ea162b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query.php +++ /dev/null @@ -1,41 +0,0 @@ - $params - * @phpstan-param array $types - */ - public function __construct( - private readonly string $sql, - private readonly array $params, - private readonly array $types, - ) { - } - - public function getSQL(): string - { - return $this->sql; - } - - /** @return array */ - public function getParams(): array - { - return $this->params; - } - - /** @phpstan-return array */ - public function getTypes(): array - { - return $this->types; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/CommonTableExpression.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/CommonTableExpression.php deleted file mode 100644 index 0e37bd4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/CommonTableExpression.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ - private array $parts; - - /** @internal Use the and() / or() factory methods. */ - public function __construct( - private readonly string $type, - self|string $part, - self|string ...$parts, - ) { - $this->parts = array_merge([$part], array_values($parts)); - } - - public static function and(self|string $part, self|string ...$parts): self - { - return new self(self::TYPE_AND, $part, ...$parts); - } - - public static function or(self|string $part, self|string ...$parts): self - { - return new self(self::TYPE_OR, $part, ...$parts); - } - - /** - * Returns a new CompositeExpression with the given parts added. - */ - public function with(self|string $part, self|string ...$parts): self - { - $that = clone $this; - - $that->parts = array_merge($that->parts, [$part], array_values($parts)); - - return $that; - } - - /** - * Retrieves the amount of expressions on composite expression. - * - * @phpstan-return int<0, max> - */ - public function count(): int - { - return count($this->parts); - } - - /** - * Retrieves the string representation of this composite expression. - */ - public function __toString(): string - { - if ($this->count() === 1) { - return (string) $this->parts[0]; - } - - return '(' . implode(') ' . $this->type . ' (', $this->parts) . ')'; - } - - /** - * Returns the type of this composite expression (AND/OR). - */ - public function getType(): string - { - return $this->type; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php deleted file mode 100644 index 55e1496..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php +++ /dev/null @@ -1,247 +0,0 @@ -'; - final public const LT = '<'; - final public const LTE = '<='; - final public const GT = '>'; - final public const GTE = '>='; - - /** - * Initializes a new ExpressionBuilder. - * - * @param Connection $connection The DBAL Connection. - */ - public function __construct(private readonly Connection $connection) - { - } - - /** - * Creates a conjunction of the given expressions. - */ - public function and( - string|CompositeExpression $expression, - string|CompositeExpression ...$expressions, - ): CompositeExpression { - return CompositeExpression::and($expression, ...$expressions); - } - - /** - * Creates a disjunction of the given expressions. - */ - public function or( - string|CompositeExpression $expression, - string|CompositeExpression ...$expressions, - ): CompositeExpression { - return CompositeExpression::or($expression, ...$expressions); - } - - /** - * Creates a comparison expression. - * - * @param string $x The left expression. - * @param string $operator The comparison operator. - * @param string $y The right expression. - */ - public function comparison(string $x, string $operator, string $y): string - { - return $x . ' ' . $operator . ' ' . $y; - } - - /** - * Creates an equality comparison expression with the given arguments. - * - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a = . Example: - * - * [php] - * // u.id = ? - * $expr->eq('u.id', '?'); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function eq(string $x, string $y): string - { - return $this->comparison($x, self::EQ, $y); - } - - /** - * Creates a non equality comparison expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a <> . Example: - * - * [php] - * // u.id <> 1 - * $q->where($q->expr()->neq('u.id', '1')); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function neq(string $x, string $y): string - { - return $this->comparison($x, self::NEQ, $y); - } - - /** - * Creates a lower-than comparison expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a < . Example: - * - * [php] - * // u.id < ? - * $q->where($q->expr()->lt('u.id', '?')); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function lt(string $x, string $y): string - { - return $this->comparison($x, self::LT, $y); - } - - /** - * Creates a lower-than-equal comparison expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a <= . Example: - * - * [php] - * // u.id <= ? - * $q->where($q->expr()->lte('u.id', '?')); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function lte(string $x, string $y): string - { - return $this->comparison($x, self::LTE, $y); - } - - /** - * Creates a greater-than comparison expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a > . Example: - * - * [php] - * // u.id > ? - * $q->where($q->expr()->gt('u.id', '?')); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function gt(string $x, string $y): string - { - return $this->comparison($x, self::GT, $y); - } - - /** - * Creates a greater-than-equal comparison expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a >= . Example: - * - * [php] - * // u.id >= ? - * $q->where($q->expr()->gte('u.id', '?')); - * - * @param string $x The left expression. - * @param string $y The right expression. - */ - public function gte(string $x, string $y): string - { - return $this->comparison($x, self::GTE, $y); - } - - /** - * Creates an IS NULL expression with the given arguments. - * - * @param string $x The expression to be restricted by IS NULL. - */ - public function isNull(string $x): string - { - return $x . ' IS NULL'; - } - - /** - * Creates an IS NOT NULL expression with the given arguments. - * - * @param string $x The expression to be restricted by IS NOT NULL. - */ - public function isNotNull(string $x): string - { - return $x . ' IS NOT NULL'; - } - - /** - * Creates a LIKE comparison expression. - * - * @param string $expression The expression to be inspected by the LIKE comparison - * @param string $pattern The pattern to compare against - */ - public function like(string $expression, string $pattern, ?string $escapeChar = null): string - { - return $this->comparison($expression, 'LIKE', $pattern) . - ($escapeChar !== null ? sprintf(' ESCAPE %s', $escapeChar) : ''); - } - - /** - * Creates a NOT LIKE comparison expression - * - * @param string $expression The expression to be inspected by the NOT LIKE comparison - * @param string $pattern The pattern to compare against - */ - public function notLike(string $expression, string $pattern, ?string $escapeChar = null): string - { - return $this->comparison($expression, 'NOT LIKE', $pattern) . - ($escapeChar !== null ? sprintf(' ESCAPE %s', $escapeChar) : ''); - } - - /** - * Creates an IN () comparison expression with the given arguments. - * - * @param string $x The SQL expression to be matched against the set. - * @param string|string[] $y The SQL expression or an array of SQL expressions representing the set. - */ - public function in(string $x, string|array $y): string - { - return $this->comparison($x, 'IN', '(' . implode(', ', (array) $y) . ')'); - } - - /** - * Creates a NOT IN () comparison expression with the given arguments. - * - * @param string $x The SQL expression to be matched against the set. - * @param string|string[] $y The SQL expression or an array of SQL expressions representing the set. - */ - public function notIn(string $x, string|array $y): string - { - return $this->comparison($x, 'NOT IN', '(' . implode(', ', (array) $y) . ')'); - } - - /** - * Creates an SQL literal expression from the string. - * - * The usage of this method is discouraged. Use prepared statements - * or {@see AbstractPlatform::quoteStringLiteral()} instead. - * - * @throws Exception - */ - public function literal(string $input): string - { - return $this->connection->quote($input); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate.php deleted file mode 100644 index 62c169d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate.php +++ /dev/null @@ -1,21 +0,0 @@ -conflictResolutionMode; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate/ConflictResolutionMode.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate/ConflictResolutionMode.php deleted file mode 100644 index f45f774..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/ForUpdate/ConflictResolutionMode.php +++ /dev/null @@ -1,18 +0,0 @@ -maxResults !== null || $this->firstResult !== 0; - } - - public function getMaxResults(): ?int - { - return $this->maxResults; - } - - public function getFirstResult(): int - { - return $this->firstResult; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryBuilder.php deleted file mode 100644 index 503642d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryBuilder.php +++ /dev/null @@ -1,1620 +0,0 @@ -|array - */ - private array $params = []; - - /** - * The parameter type map of this query. - * - * @phpstan-var WrapperParameterTypeArray - */ - private array $types = []; - - /** - * The type of query this is. Can be select, update or delete. - */ - private QueryType $type = QueryType::SELECT; - - /** - * The index of the first result to retrieve. - */ - private int $firstResult = 0; - - /** - * The maximum number of results to retrieve or NULL to retrieve all results. - */ - private ?int $maxResults = null; - - /** - * The counter of bound parameters used with {@see bindValue). - * - * @var int<0, max> - */ - private int $boundCounter = 0; - - /** - * The SELECT parts of the query. - * - * @var string[] - */ - private array $select = []; - - /** - * Whether this is a SELECT DISTINCT query. - */ - private bool $distinct = false; - - /** - * The FROM parts of a SELECT query. - * - * @var From[] - */ - private array $from = []; - - /** - * The table name for an INSERT, UPDATE or DELETE query. - */ - private ?string $table = null; - - /** - * The list of joins, indexed by from alias. - * - * @var array - */ - private array $join = []; - - /** - * The SET parts of an UPDATE query. - * - * @var string[] - */ - private array $set = []; - - /** - * The WHERE part of a SELECT, UPDATE or DELETE query. - */ - private string|CompositeExpression|null $where = null; - - /** - * The GROUP BY part of a SELECT query. - * - * @var string[] - */ - private array $groupBy = []; - - /** - * The HAVING part of a SELECT query. - */ - private string|CompositeExpression|null $having = null; - - /** - * The ORDER BY parts of a SELECT query. - * - * @var string[] - */ - private array $orderBy = []; - - private ?ForUpdate $forUpdate = null; - - /** - * The values of an INSERT query. - * - * @var array - */ - private array $values = []; - - /** - * The QueryBuilder for the union parts. - * - * @var Union[] - */ - private array $unionParts = []; - - /** - * The common table expression parts. - * - * @var CommonTableExpression[] - */ - private array $commonTableExpressions = []; - - /** - * The query cache profile used for caching results. - */ - private ?QueryCacheProfile $resultCacheProfile = null; - - /** - * Initializes a new QueryBuilder. - * - * @param Connection $connection The DBAL Connection. - */ - public function __construct(private readonly Connection $connection) - { - } - - /** - * Gets an ExpressionBuilder used for object-oriented construction of query expressions. - * This producer method is intended for convenient inline usage. Example: - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u') - * ->from('users', 'u') - * ->where($qb->expr()->eq('u.id', 1)); - * - * - * For more complex expression construction, consider storing the expression - * builder object in a local variable. - */ - public function expr(): ExpressionBuilder - { - return $this->connection->createExpressionBuilder(); - } - - /** - * Prepares and executes an SQL query and returns the first row of the result - * as an associative array. - * - * @return array|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchAssociative(): array|false - { - return $this->executeQuery()->fetchAssociative(); - } - - /** - * Prepares and executes an SQL query and returns the first row of the result - * as a numerically indexed array. - * - * @return array|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchNumeric(): array|false - { - return $this->executeQuery()->fetchNumeric(); - } - - /** - * Prepares and executes an SQL query and returns the value of a single column - * of the first row of the result. - * - * @return mixed|false False is returned if no rows are found. - * - * @throws Exception - */ - public function fetchOne(): mixed - { - return $this->executeQuery()->fetchOne(); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of numeric arrays. - * - * @return array> - * - * @throws Exception - */ - public function fetchAllNumeric(): array - { - return $this->executeQuery()->fetchAllNumeric(); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of associative arrays. - * - * @return array> - * - * @throws Exception - */ - public function fetchAllAssociative(): array - { - return $this->executeQuery()->fetchAllAssociative(); - } - - /** - * Prepares and executes an SQL query and returns the result as an associative array with the keys - * mapped to the first column and the values mapped to the second column. - * - * @return array - * - * @throws Exception - */ - public function fetchAllKeyValue(): array - { - return $this->executeQuery()->fetchAllKeyValue(); - } - - /** - * Prepares and executes an SQL query and returns the result as an associative array with the keys mapped - * to the first column and the values being an associative array representing the rest of the columns - * and their values. - * - * @return array> - * - * @throws Exception - */ - public function fetchAllAssociativeIndexed(): array - { - return $this->executeQuery()->fetchAllAssociativeIndexed(); - } - - /** - * Prepares and executes an SQL query and returns the result as an array of the first column values. - * - * @return array - * - * @throws Exception - */ - public function fetchFirstColumn(): array - { - return $this->executeQuery()->fetchFirstColumn(); - } - - /** - * Executes an SQL query (SELECT) and returns a Result. - * - * @throws Exception - */ - public function executeQuery(): Result - { - return $this->connection->executeQuery( - $this->getSQL(), - $this->params, - $this->types, - $this->resultCacheProfile, - ); - } - - /** - * Executes an SQL statement and returns the number of affected rows. - * - * Should be used for INSERT, UPDATE and DELETE - * - * @return int|numeric-string The number of affected rows. - * - * @throws Exception - */ - public function executeStatement(): int|string - { - return $this->connection->executeStatement($this->getSQL(), $this->params, $this->types); - } - - /** - * Gets the complete SQL string formed by the current specifications of this QueryBuilder. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * echo $qb->getSQL(); // SELECT u FROM User u - * - * - * @return string The SQL query string. - * - * @throws Exception - */ - public function getSQL(): string - { - return $this->sql ??= match ($this->type) { - QueryType::INSERT => $this->getSQLForInsert(), - QueryType::DELETE => $this->getSQLForDelete(), - QueryType::UPDATE => $this->getSQLForUpdate(), - QueryType::SELECT => $this->getSQLForSelect(), - QueryType::UNION => $this->getSQLForUnion(), - }; - } - - /** - * Sets a query parameter for the query being constructed. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u') - * ->from('users', 'u') - * ->where('u.id = :user_id') - * ->setParameter('user_id', 1); - * - * - * @param int<0, max>|string $key Parameter position or name - * - * @return $this This QueryBuilder instance. - */ - public function setParameter( - int|string $key, - mixed $value, - string|ParameterType|Type|ArrayParameterType $type = ParameterType::STRING, - ): self { - $this->params[$key] = $value; - $this->types[$key] = $type; - - return $this; - } - - /** - * Sets a collection of query parameters for the query being constructed. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u') - * ->from('users', 'u') - * ->where('u.id = :user_id1 OR u.id = :user_id2') - * ->setParameters(array( - * 'user_id1' => 1, - * 'user_id2' => 2 - * )); - * - * - * @param list|array $params - * @phpstan-param WrapperParameterTypeArray $types - * - * @return $this This QueryBuilder instance. - */ - public function setParameters(array $params, array $types = []): self - { - $this->params = $params; - $this->types = $types; - - return $this; - } - - /** - * Gets all defined query parameters for the query being constructed indexed by parameter index or name. - * - * @return list|array The currently defined query parameters - */ - public function getParameters(): array - { - return $this->params; - } - - /** - * Gets a (previously set) query parameter of the query being constructed. - * - * @param string|int $key The key (index or name) of the bound parameter. - * - * @return mixed The value of the bound parameter. - */ - public function getParameter(string|int $key): mixed - { - return $this->params[$key] ?? null; - } - - /** - * Gets all defined query parameter types for the query being constructed indexed by parameter index or name. - * - * @phpstan-return WrapperParameterTypeArray - */ - public function getParameterTypes(): array - { - return $this->types; - } - - /** - * Gets a (previously set) query parameter type of the query being constructed. - * - * @param int|string $key The key of the bound parameter type - */ - public function getParameterType(int|string $key): string|ParameterType|Type|ArrayParameterType - { - return $this->types[$key] ?? ParameterType::STRING; - } - - /** - * Sets the position of the first result to retrieve (the "offset"). - * - * @param int $firstResult The first result to return. - * - * @return $this This QueryBuilder instance. - */ - public function setFirstResult(int $firstResult): self - { - $this->firstResult = $firstResult; - - $this->sql = null; - - return $this; - } - - /** - * Gets the position of the first result the query object was set to retrieve (the "offset"). - * - * @return int The position of the first result. - */ - public function getFirstResult(): int - { - return $this->firstResult; - } - - /** - * Sets the maximum number of results to retrieve (the "limit"). - * - * @param int|null $maxResults The maximum number of results to retrieve or NULL to retrieve all results. - * - * @return $this This QueryBuilder instance. - */ - public function setMaxResults(?int $maxResults): self - { - $this->maxResults = $maxResults; - - $this->sql = null; - - return $this; - } - - /** - * Gets the maximum number of results the query object was set to retrieve (the "limit"). - * Returns NULL if all results will be returned. - * - * @return int|null The maximum number of results. - */ - public function getMaxResults(): ?int - { - return $this->maxResults; - } - - /** - * Locks the queried rows for a subsequent update. - * - * @return $this - */ - public function forUpdate(ConflictResolutionMode $conflictResolutionMode = ConflictResolutionMode::ORDINARY): self - { - $this->forUpdate = new ForUpdate($conflictResolutionMode); - - $this->sql = null; - - return $this; - } - - /** - * Specifies union parts to be used to build a UNION query. - * Replaces any previously specified parts. - * - * - * $qb = $conn->createQueryBuilder() - * ->union('SELECT 1 AS field1') - * ->addUnion('SELECT 2 AS field1') - * ->addUnion('SELECT 3 AS field1'); - * - * - * @return $this - */ - public function union(string|QueryBuilder $part): self - { - $this->type = QueryType::UNION; - - $this->unionParts = [new Union($part)]; - - $this->sql = null; - - return $this; - } - - /** - * Add parts to be used to build a UNION query. - * - * - * $qb = $conn->createQueryBuilder() - * ->union('SELECT 1 AS field1') - * ->addUnion('SELECT 2 AS field1') - * ->addUnion('SELECT 3 AS field1'); - * - * - * @return $this - * - * @throws QueryException - */ - public function addUnion(string|QueryBuilder $part, UnionType $type = UnionType::DISTINCT): self - { - $this->type = QueryType::UNION; - - if (count($this->unionParts) === 0) { - throw new QueryException('No initial UNION part set, use union() to set one first.'); - } - - $this->unionParts[] = new Union($part, $type); - - $this->sql = null; - - return $this; - } - - /** - * Add a Common Table Expression to be used for a select query. - * - * - * // WITH cte_name AS (SELECT id AS column1 FROM table_a) - * $qb = $conn->createQueryBuilder() - * ->with('cte_name', 'SELECT id AS column1 FROM table_a'); - * - * // WITH cte_name(column1) AS (SELECT id AS column1 FROM table_a) - * $qb = $conn->createQueryBuilder() - * ->with('cte_name', 'SELECT id AS column1 FROM table_a', ['column1']); - * - * - * @param string $name The name of the CTE - * @param string[]|null $columns The optional columns list to select in the CTE. - * If not provided, the columns are inferred from the CTE. - * - * @return $this This QueryBuilder instance. - * - * @throws QueryException Setting an empty array as columns is not allowed. - */ - public function with(string $name, string|QueryBuilder $part, ?array $columns = null): self - { - $this->commonTableExpressions[] = new CommonTableExpression($name, $part, $columns); - - $this->sql = null; - - return $this; - } - - /** - * Specifies an item that is to be returned in the query result. - * Replaces any previously specified selections, if any. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.id', 'p.id') - * ->from('users', 'u') - * ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id'); - * - * - * @param string ...$expressions The selection expressions. - * - * @return $this This QueryBuilder instance. - */ - public function select(string ...$expressions): self - { - $this->type = QueryType::SELECT; - - $this->select = $expressions; - - $this->sql = null; - - return $this; - } - - /** - * Adds or removes DISTINCT to/from the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.id') - * ->distinct() - * ->from('users', 'u') - * - * - * @return $this This QueryBuilder instance. - */ - public function distinct(bool $distinct = true): self - { - $this->distinct = $distinct; - $this->sql = null; - - return $this; - } - - /** - * Adds an item that is to be returned in the query result. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.id') - * ->addSelect('p.id') - * ->from('users', 'u') - * ->leftJoin('u', 'phonenumbers', 'u.id = p.user_id'); - * - * - * @param string $expression The selection expression. - * @param string ...$expressions Additional selection expressions. - * - * @return $this This QueryBuilder instance. - */ - public function addSelect(string $expression, string ...$expressions): self - { - $this->type = QueryType::SELECT; - - $this->select = array_merge($this->select, [$expression], $expressions); - - $this->sql = null; - - return $this; - } - - /** - * Turns the query being built into a bulk delete query that ranges over - * a certain table. - * - * - * $qb = $conn->createQueryBuilder() - * ->delete('users u') - * ->where('u.id = :user_id') - * ->setParameter(':user_id', 1); - * - * - * @param string $table The table whose rows are subject to the deletion. - * - * @return $this This QueryBuilder instance. - */ - public function delete(string $table): self - { - $this->type = QueryType::DELETE; - - $this->table = $table; - - $this->sql = null; - - return $this; - } - - /** - * Turns the query being built into a bulk update query that ranges over - * a certain table - * - * - * $qb = $conn->createQueryBuilder() - * ->update('counters c') - * ->set('c.value', 'c.value + 1') - * ->where('c.id = ?'); - * - * - * @param string $table The table whose rows are subject to the update. - * - * @return $this This QueryBuilder instance. - */ - public function update(string $table): self - { - $this->type = QueryType::UPDATE; - - $this->table = $table; - - $this->sql = null; - - return $this; - } - - /** - * Turns the query being built into an insert query that inserts into - * a certain table - * - * - * $qb = $conn->createQueryBuilder() - * ->insert('users') - * ->values( - * array( - * 'name' => '?', - * 'password' => '?' - * ) - * ); - * - * - * @param string $table The table into which the rows should be inserted. - * - * @return $this This QueryBuilder instance. - */ - public function insert(string $table): self - { - $this->type = QueryType::INSERT; - - $this->table = $table; - - $this->sql = null; - - return $this; - } - - /** - * Creates and adds a query root corresponding to the table identified by the - * given alias, forming a cartesian product with any existing query roots. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.id') - * ->from('users', 'u') - * - * - * @param string $table The table. - * @param string|null $alias The alias of the table. - * - * @return $this This QueryBuilder instance. - */ - public function from(string $table, ?string $alias = null): self - { - $this->from[] = new From($table, $alias); - - $this->sql = null; - - return $this; - } - - /** - * Creates and adds a join to the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->join('u', 'phonenumbers', 'p', 'p.is_primary = 1'); - * - * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. - * - * @return $this This QueryBuilder instance. - */ - public function join(string $fromAlias, string $join, string $alias, ?string $condition = null): self - { - return $this->innerJoin($fromAlias, $join, $alias, $condition); - } - - /** - * Creates and adds a join to the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); - * - * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. - * - * @return $this This QueryBuilder instance. - */ - public function innerJoin(string $fromAlias, string $join, string $alias, ?string $condition = null): self - { - $this->join[$fromAlias][] = Join::inner($join, $alias, $condition); - - $this->sql = null; - - return $this; - } - - /** - * Creates and adds a left join to the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); - * - * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. - * - * @return $this This QueryBuilder instance. - */ - public function leftJoin(string $fromAlias, string $join, string $alias, ?string $condition = null): self - { - $this->join[$fromAlias][] = Join::left($join, $alias, $condition); - - $this->sql = null; - - return $this; - } - - /** - * Creates and adds a right join to the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); - * - * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. - * - * @return $this This QueryBuilder instance. - */ - public function rightJoin(string $fromAlias, string $join, string $alias, ?string $condition = null): self - { - $this->join[$fromAlias][] = Join::right($join, $alias, $condition); - - $this->sql = null; - - return $this; - } - - /** - * Sets a new value for a column in a bulk update query. - * - * - * $qb = $conn->createQueryBuilder() - * ->update('counters c') - * ->set('c.value', 'c.value + 1') - * ->where('c.id = ?'); - * - * - * @param string $key The column to set. - * @param string $value The value, expression, placeholder, etc. - * - * @return $this This QueryBuilder instance. - */ - public function set(string $key, string $value): self - { - $this->set[] = $key . ' = ' . $value; - - $this->sql = null; - - return $this; - } - - /** - * Specifies one or more restrictions to the query result. - * Replaces any previously specified restrictions, if any. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('c.value') - * ->from('counters', 'c') - * ->where('c.id = ?'); - * - * // You can optionally programmatically build and/or expressions - * $qb = $conn->createQueryBuilder(); - * - * $or = $qb->expr()->orx(); - * $or->add($qb->expr()->eq('c.id', 1)); - * $or->add($qb->expr()->eq('c.id', 2)); - * - * $qb->update('counters c') - * ->set('c.value', 'c.value + 1') - * ->where($or); - * - * - * @param string|CompositeExpression $predicate The WHERE clause predicate. - * @param string|CompositeExpression ...$predicates Additional WHERE clause predicates. - * - * @return $this This QueryBuilder instance. - */ - public function where(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->where = $this->createPredicate($predicate, ...$predicates); - - $this->sql = null; - - return $this; - } - - /** - * Adds one or more restrictions to the query results, forming a logical - * conjunction with any previously specified restrictions. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u') - * ->from('users', 'u') - * ->where('u.username LIKE ?') - * ->andWhere('u.is_active = 1'); - * - * - * @see where() - * - * @param string|CompositeExpression $predicate The predicate to append. - * @param string|CompositeExpression ...$predicates Additional predicates to append. - * - * @return $this This QueryBuilder instance. - */ - public function andWhere(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->where = $this->appendToPredicate( - $this->where, - CompositeExpression::TYPE_AND, - $predicate, - ...$predicates, - ); - - $this->sql = null; - - return $this; - } - - /** - * Adds one or more restrictions to the query results, forming a logical - * disjunction with any previously specified restrictions. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->where('u.id = 1') - * ->orWhere('u.id = 2'); - * - * - * @see where() - * - * @param string|CompositeExpression $predicate The predicate to append. - * @param string|CompositeExpression ...$predicates Additional predicates to append. - * - * @return $this This QueryBuilder instance. - */ - public function orWhere(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->where = $this->appendToPredicate($this->where, CompositeExpression::TYPE_OR, $predicate, ...$predicates); - - $this->sql = null; - - return $this; - } - - /** - * Specifies one or more grouping expressions over the results of the query. - * Replaces any previously specified groupings, if any. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->groupBy('u.id'); - * - * - * @param string $expression The grouping expression - * @param string ...$expressions Additional grouping expressions - * - * @return $this This QueryBuilder instance. - */ - public function groupBy(string $expression, string ...$expressions): self - { - $this->groupBy = array_merge([$expression], $expressions); - - $this->sql = null; - - return $this; - } - - /** - * Adds one or more grouping expressions to the query. - * - * - * $qb = $conn->createQueryBuilder() - * ->select('u.name') - * ->from('users', 'u') - * ->groupBy('u.lastLogin') - * ->addGroupBy('u.createdAt'); - * - * - * @param string $expression The grouping expression - * @param string ...$expressions Additional grouping expressions - * - * @return $this This QueryBuilder instance. - */ - public function addGroupBy(string $expression, string ...$expressions): self - { - $this->groupBy = array_merge($this->groupBy, [$expression], $expressions); - - $this->sql = null; - - return $this; - } - - /** - * Sets a value for a column in an insert query. - * - * - * $qb = $conn->createQueryBuilder() - * ->insert('users') - * ->values( - * array( - * 'name' => '?' - * ) - * ) - * ->setValue('password', '?'); - * - * - * @param string $column The column into which the value should be inserted. - * @param string $value The value that should be inserted into the column. - * - * @return $this This QueryBuilder instance. - */ - public function setValue(string $column, string $value): self - { - $this->values[$column] = $value; - - return $this; - } - - /** - * Specifies values for an insert query indexed by column names. - * Replaces any previous values, if any. - * - * - * $qb = $conn->createQueryBuilder() - * ->insert('users') - * ->values( - * array( - * 'name' => '?', - * 'password' => '?' - * ) - * ); - * - * - * @param array $values The values to specify for the insert query indexed by column names. - * - * @return $this This QueryBuilder instance. - */ - public function values(array $values): self - { - $this->values = $values; - - $this->sql = null; - - return $this; - } - - /** - * Specifies a restriction over the groups of the query. - * Replaces any previous having restrictions, if any. - * - * @param string|CompositeExpression $predicate The HAVING clause predicate. - * @param string|CompositeExpression ...$predicates Additional HAVING clause predicates. - * - * @return $this This QueryBuilder instance. - */ - public function having(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->having = $this->createPredicate($predicate, ...$predicates); - - $this->sql = null; - - return $this; - } - - /** - * Adds a restriction over the groups of the query, forming a logical - * conjunction with any existing having restrictions. - * - * @param string|CompositeExpression $predicate The predicate to append. - * @param string|CompositeExpression ...$predicates Additional predicates to append. - * - * @return $this This QueryBuilder instance. - */ - public function andHaving(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->having = $this->appendToPredicate( - $this->having, - CompositeExpression::TYPE_AND, - $predicate, - ...$predicates, - ); - - $this->sql = null; - - return $this; - } - - /** - * Adds a restriction over the groups of the query, forming a logical - * disjunction with any existing having restrictions. - * - * @param string|CompositeExpression $predicate The predicate to append. - * @param string|CompositeExpression ...$predicates Additional predicates to append. - * - * @return $this This QueryBuilder instance. - */ - public function orHaving(string|CompositeExpression $predicate, string|CompositeExpression ...$predicates): self - { - $this->having = $this->appendToPredicate( - $this->having, - CompositeExpression::TYPE_OR, - $predicate, - ...$predicates, - ); - - $this->sql = null; - - return $this; - } - - /** - * Creates a CompositeExpression from one or more predicates combined by the AND logic. - */ - private function createPredicate( - string|CompositeExpression $predicate, - string|CompositeExpression ...$predicates, - ): string|CompositeExpression { - if (count($predicates) === 0) { - return $predicate; - } - - return new CompositeExpression(CompositeExpression::TYPE_AND, $predicate, ...$predicates); - } - - /** - * Appends the given predicates combined by the given type of logic to the current predicate. - */ - private function appendToPredicate( - string|CompositeExpression|null $currentPredicate, - string $type, - string|CompositeExpression ...$predicates, - ): string|CompositeExpression { - if ($currentPredicate instanceof CompositeExpression && $currentPredicate->getType() === $type) { - return $currentPredicate->with(...$predicates); - } - - if ($currentPredicate !== null) { - array_unshift($predicates, $currentPredicate); - } elseif (count($predicates) === 1) { - return $predicates[0]; - } - - return new CompositeExpression($type, ...$predicates); - } - - /** - * Specifies an ordering for the query results. - * Replaces any previously specified orderings, if any. - * - * @param string $sort The ordering expression. - * @param string $order The ordering direction. - * - * @return $this This QueryBuilder instance. - */ - public function orderBy(string $sort, ?string $order = null): self - { - $orderBy = $sort; - - if ($order !== null) { - $orderBy .= ' ' . $order; - } - - $this->orderBy = [$orderBy]; - - $this->sql = null; - - return $this; - } - - /** - * Adds an ordering to the query results. - * - * @param string $sort The ordering expression. - * @param string $order The ordering direction. - * - * @return $this This QueryBuilder instance. - */ - public function addOrderBy(string $sort, ?string $order = null): self - { - $orderBy = $sort; - - if ($order !== null) { - $orderBy .= ' ' . $order; - } - - $this->orderBy[] = $orderBy; - - $this->sql = null; - - return $this; - } - - /** - * Resets the WHERE conditions for the query. - * - * @return $this This QueryBuilder instance. - */ - public function resetWhere(): self - { - $this->where = null; - $this->sql = null; - - return $this; - } - - /** - * Resets the grouping for the query. - * - * @return $this This QueryBuilder instance. - */ - public function resetGroupBy(): self - { - $this->groupBy = []; - $this->sql = null; - - return $this; - } - - /** - * Resets the HAVING conditions for the query. - * - * @return $this This QueryBuilder instance. - */ - public function resetHaving(): self - { - $this->having = null; - $this->sql = null; - - return $this; - } - - /** - * Resets the ordering for the query. - * - * @return $this This QueryBuilder instance. - */ - public function resetOrderBy(): self - { - $this->orderBy = []; - $this->sql = null; - - return $this; - } - - /** @throws Exception */ - private function getSQLForSelect(): string - { - if (count($this->select) === 0) { - throw new QueryException('No SELECT expressions given. Please use select() or addSelect().'); - } - - $databasePlatform = $this->connection->getDatabasePlatform(); - $selectParts = []; - if (count($this->commonTableExpressions) > 0) { - $selectParts[] = $databasePlatform - ->createWithSQLBuilder() - ->buildSQL(...$this->commonTableExpressions); - } - - $selectParts[] = $databasePlatform - ->createSelectSQLBuilder() - ->buildSQL( - new SelectQuery( - $this->distinct, - $this->select, - $this->getFromClauses(), - $this->where !== null ? (string) $this->where : null, - $this->groupBy, - $this->having !== null ? (string) $this->having : null, - $this->orderBy, - new Limit($this->maxResults, $this->firstResult), - $this->forUpdate, - ), - ); - - return implode(' ', $selectParts); - } - - /** - * @return array - * - * @throws QueryException - */ - private function getFromClauses(): array - { - $fromClauses = []; - $knownAliases = []; - - foreach ($this->from as $from) { - if ($from->alias === null || $from->alias === $from->table) { - $tableSql = $from->table; - $tableReference = $from->table; - } else { - $tableSql = $from->table . ' ' . $from->alias; - $tableReference = $from->alias; - } - - $knownAliases[$tableReference] = true; - - $fromClauses[$tableReference] = $tableSql . $this->getSQLForJoins($tableReference, $knownAliases); - } - - $this->verifyAllAliasesAreKnown($knownAliases); - - return $fromClauses; - } - - /** - * @param array $knownAliases - * - * @throws QueryException - */ - private function verifyAllAliasesAreKnown(array $knownAliases): void - { - foreach ($this->join as $fromAlias => $joins) { - if (! isset($knownAliases[$fromAlias])) { - throw UnknownAlias::new($fromAlias, array_keys($knownAliases)); - } - } - } - - /** - * Converts this instance into an INSERT string in SQL. - */ - private function getSQLForInsert(): string - { - return 'INSERT INTO ' . $this->table . - ' (' . implode(', ', array_keys($this->values)) . ')' . - ' VALUES(' . implode(', ', $this->values) . ')'; - } - - /** - * Converts this instance into an UPDATE string in SQL. - */ - private function getSQLForUpdate(): string - { - $query = 'UPDATE ' . $this->table - . ' SET ' . implode(', ', $this->set); - - if ($this->where !== null) { - $query .= ' WHERE ' . $this->where; - } - - return $query; - } - - /** - * Converts this instance into a DELETE string in SQL. - */ - private function getSQLForDelete(): string - { - $query = 'DELETE FROM ' . $this->table; - - if ($this->where !== null) { - $query .= ' WHERE ' . $this->where; - } - - return $query; - } - - /** - * Converts this instance into a UNION string in SQL. - * - * @throws Exception - */ - private function getSQLForUnion(): string - { - $countUnions = count($this->unionParts); - if ($countUnions < 2) { - throw new QueryException( - 'Insufficient UNION parts give, need at least 2.' - . ' Please use union() and addUnion() to set enough UNION parts.', - ); - } - - return $this->connection->getDatabasePlatform() - ->createUnionSQLBuilder() - ->buildSQL( - new UnionQuery( - $this->unionParts, - $this->orderBy, - new Limit($this->maxResults, $this->firstResult), - ), - ); - } - - /** - * Gets a string representation of this QueryBuilder which corresponds to - * the final SQL query being constructed. - * - * @return string The string representation of this QueryBuilder. - * - * @throws Exception - */ - public function __toString(): string - { - return $this->getSQL(); - } - - /** - * Creates a new named parameter and bind the value $value to it. - * - * This method provides a shortcut for {@see Statement::bindValue()} - * when using prepared statements. - * - * The parameter $value specifies the value that you want to bind. If - * $placeholder is not provided createNamedParameter() will automatically - * create a placeholder for you. An automatic placeholder will be of the - * name ':dcValue1', ':dcValue2' etc. - * - * Example: - * - * $value = 2; - * $q->eq( 'id', $q->createNamedParameter( $value ) ); - * $stmt = $q->executeQuery(); // executed with 'id = 2' - * - * - * @link http://www.zetacomponents.org - * - * @param string|null $placeHolder The name to bind with. The string must start with a colon ':'. - * - * @return string the placeholder name used. - */ - public function createNamedParameter( - mixed $value, - string|ParameterType|Type|ArrayParameterType $type = ParameterType::STRING, - ?string $placeHolder = null, - ): string { - if ($placeHolder === null) { - $this->boundCounter++; - $placeHolder = ':dcValue' . $this->boundCounter; - } - - $this->setParameter(substr($placeHolder, 1), $value, $type); - - return $placeHolder; - } - - /** - * Creates a new positional parameter and bind the given value to it. - * - * Attention: If you are using positional parameters with the query builder you have - * to be very careful to bind all parameters in the order they appear in the SQL - * statement , otherwise they get bound in the wrong order which can lead to serious - * bugs in your code. - * - * Example: - * - * $qb = $conn->createQueryBuilder(); - * $qb->select('u.*') - * ->from('users', 'u') - * ->where('u.username = ' . $qb->createPositionalParameter('Foo', ParameterType::STRING)) - * ->orWhere('u.username = ' . $qb->createPositionalParameter('Bar', ParameterType::STRING)) - * - */ - public function createPositionalParameter( - mixed $value, - string|ParameterType|Type|ArrayParameterType $type = ParameterType::STRING, - ): string { - $this->setParameter($this->boundCounter, $value, $type); - $this->boundCounter++; - - return '?'; - } - - /** - * @param array $knownAliases - * - * @throws QueryException - */ - private function getSQLForJoins(string $fromAlias, array &$knownAliases): string - { - $sql = ''; - - if (! isset($this->join[$fromAlias])) { - return $sql; - } - - foreach ($this->join[$fromAlias] as $join) { - if (array_key_exists($join->alias, $knownAliases)) { - throw NonUniqueAlias::new($join->alias, array_keys($knownAliases)); - } - - $sql .= ' ' . $join->type . ' JOIN ' . $join->table . ' ' . $join->alias; - - if ($join->condition !== null) { - $sql .= ' ON ' . $join->condition; - } - - $knownAliases[$join->alias] = true; - } - - foreach ($this->join[$fromAlias] as $join) { - $sql .= $this->getSQLForJoins($join->alias, $knownAliases); - } - - return $sql; - } - - /** - * Deep clone of all expression objects in the SQL parts. - */ - public function __clone() - { - foreach ($this->from as $key => $from) { - $this->from[$key] = clone $from; - } - - foreach ($this->join as $fromAlias => $joins) { - foreach ($joins as $key => $join) { - $this->join[$fromAlias][$key] = clone $join; - } - } - - if (is_object($this->where)) { - $this->where = clone $this->where; - } - - if (is_object($this->having)) { - $this->having = clone $this->having; - } - - foreach ($this->params as $name => $param) { - if (! is_object($param)) { - continue; - } - - $this->params[$name] = clone $param; - } - } - - /** - * Enables caching of the results of this query, for given amount of seconds - * and optionally specified which key to use for the cache entry. - * - * @return $this - */ - public function enableResultCache(QueryCacheProfile $cacheProfile): self - { - $this->resultCacheProfile = $cacheProfile; - - return $this; - } - - /** - * Disables caching of the results of this query. - * - * @return $this - */ - public function disableResultCache(): self - { - $this->resultCacheProfile = null; - - return $this; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryException.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryException.php deleted file mode 100644 index 34b9527..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/QueryException.php +++ /dev/null @@ -1,11 +0,0 @@ -distinct; - } - - /** @return string[] */ - public function getColumns(): array - { - return $this->columns; - } - - /** @return string[] */ - public function getFrom(): array - { - return $this->from; - } - - public function getWhere(): ?string - { - return $this->where; - } - - /** @return string[] */ - public function getGroupBy(): array - { - return $this->groupBy; - } - - public function getHaving(): ?string - { - return $this->having; - } - - /** @return string[] */ - public function getOrderBy(): array - { - return $this->orderBy; - } - - public function getLimit(): Limit - { - return $this->limit; - } - - public function getForUpdate(): ?ForUpdate - { - return $this->forUpdate; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/Union.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/Union.php deleted file mode 100644 index 33a5a6d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/Union.php +++ /dev/null @@ -1,15 +0,0 @@ -unionParts; - } - - /** @return string[] */ - public function getOrderBy(): array - { - return $this->orderBy; - } - - public function getLimit(): Limit - { - return $this->limit; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Query/UnionType.php b/projects/priceservice/vendor/doctrine/dbal/src/Query/UnionType.php deleted file mode 100644 index e7c0df6..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Query/UnionType.php +++ /dev/null @@ -1,11 +0,0 @@ -|false - * - * @throws Exception - */ - public function fetchNumeric(): array|false - { - try { - return $this->result->fetchNumeric(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns the next row of the result as an associative array or FALSE if there are no more rows. - * - * @return array|false - * - * @throws Exception - */ - public function fetchAssociative(): array|false - { - try { - return $this->result->fetchAssociative(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns the first value of the next row of the result or FALSE if there are no more rows. - * - * @throws Exception - */ - public function fetchOne(): mixed - { - try { - return $this->result->fetchOne(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns an array containing all of the result rows represented as numeric arrays. - * - * @return list> - * - * @throws Exception - */ - public function fetchAllNumeric(): array - { - try { - return $this->result->fetchAllNumeric(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns an array containing all of the result rows represented as associative arrays. - * - * @return list> - * - * @throws Exception - */ - public function fetchAllAssociative(): array - { - try { - return $this->result->fetchAllAssociative(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns an array containing the values of the first column of the result. - * - * @return array - * - * @throws Exception - */ - public function fetchAllKeyValue(): array - { - $this->ensureHasKeyValue(); - - $data = []; - - foreach ($this->fetchAllNumeric() as $row) { - assert(count($row) >= 2); - [$key, $value] = $row; - $data[$key] = $value; - } - - return $data; - } - - /** - * Returns an associative array with the keys mapped to the first column and the values being - * an associative array representing the rest of the columns and their values. - * - * @return array> - * - * @throws Exception - */ - public function fetchAllAssociativeIndexed(): array - { - $data = []; - - foreach ($this->fetchAllAssociative() as $row) { - $data[array_shift($row)] = $row; - } - - return $data; - } - - /** - * @return list - * - * @throws Exception - */ - public function fetchFirstColumn(): array - { - try { - return $this->result->fetchFirstColumn(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * @return Traversable> - * - * @throws Exception - */ - public function iterateNumeric(): Traversable - { - while (($row = $this->fetchNumeric()) !== false) { - yield $row; - } - } - - /** - * @return Traversable> - * - * @throws Exception - */ - public function iterateAssociative(): Traversable - { - while (($row = $this->fetchAssociative()) !== false) { - yield $row; - } - } - - /** - * @return Traversable - * - * @throws Exception - */ - public function iterateKeyValue(): Traversable - { - $this->ensureHasKeyValue(); - - foreach ($this->iterateNumeric() as $row) { - assert(count($row) >= 2); - [$key, $value] = $row; - - yield $key => $value; - } - } - - /** - * Returns an iterator over the result set with the keys mapped to the first column and the values being - * an associative array representing the rest of the columns and their values. - * - * @return Traversable> - * - * @throws Exception - */ - public function iterateAssociativeIndexed(): Traversable - { - foreach ($this->iterateAssociative() as $row) { - yield array_shift($row) => $row; - } - } - - /** - * @return Traversable - * - * @throws Exception - */ - public function iterateColumn(): Traversable - { - while (($value = $this->fetchOne()) !== false) { - yield $value; - } - } - - /** - * Returns the number of rows affected by the DELETE, INSERT, or UPDATE statement that produced the result. - * - * If the statement executed a SELECT query or a similar platform-specific SQL (e.g. DESCRIBE, SHOW, etc.), - * some database drivers may return the number of rows returned by that query. However, this behaviour - * is not guaranteed for all drivers and should not be relied on in portable applications. - * - * If the number of rows exceeds {@see PHP_INT_MAX}, it might be returned as string if the driver supports it. - * - * @return int|numeric-string - * - * @throws Exception - */ - public function rowCount(): int|string - { - try { - return $this->result->rowCount(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** @throws Exception */ - public function columnCount(): int - { - try { - return $this->result->columnCount(); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - /** - * Returns the name of the column in the result set for the given 0-based index. - * - * If the index is not a valid column index ({@see columnCount}), an exception will be thrown. - * - * @throws Exception - */ - public function getColumnName(int $index): string - { - if (! method_exists($this->result, 'getColumnName')) { - throw new LogicException(sprintf( - 'The driver result %s does not support accessing the column name.', - get_debug_type($this->result), - )); - } - - try { - return $this->result->getColumnName($index); - } catch (DriverException $e) { - throw $this->connection->convertException($e); - } - } - - public function free(): void - { - $this->result->free(); - } - - /** @throws Exception */ - private function ensureHasKeyValue(): void - { - $columnCount = $this->columnCount(); - - if ($columnCount < 2) { - throw NoKeyValue::fromColumnCount($columnCount); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/CreateSchemaObjectsSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/CreateSchemaObjectsSQLBuilder.php deleted file mode 100644 index 598a6ad..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/CreateSchemaObjectsSQLBuilder.php +++ /dev/null @@ -1,73 +0,0 @@ - */ - public function buildSQL(Schema $schema): array - { - return array_merge( - $this->buildNamespaceStatements($schema->getNamespaces()), - $this->buildSequenceStatements($schema->getSequences()), - $this->buildTableStatements($schema->getTables()), - ); - } - - /** - * @param string[] $namespaces - * - * @return list - */ - private function buildNamespaceStatements(array $namespaces): array - { - $statements = []; - - if ($this->platform->supportsSchemas()) { - foreach ($namespaces as $namespace) { - $statements[] = $this->platform->getCreateSchemaSQL($namespace); - } - } - - return $statements; - } - - /** - * @param Table[] $tables - * - * @return list - */ - private function buildTableStatements(array $tables): array - { - return $this->platform->getCreateTablesSQL($tables); - } - - /** - * @param Sequence[] $sequences - * - * @return list - */ - private function buildSequenceStatements(array $sequences): array - { - $statements = []; - - foreach ($sequences as $sequence) { - $statements[] = $this->platform->getCreateSequenceSQL($sequence); - } - - return $statements; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultSelectSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultSelectSQLBuilder.php deleted file mode 100644 index a30120e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultSelectSQLBuilder.php +++ /dev/null @@ -1,94 +0,0 @@ -isDistinct()) { - $parts[] = 'DISTINCT'; - } - - $parts[] = implode(', ', $query->getColumns()); - - $from = $query->getFrom(); - - if (count($from) > 0) { - $parts[] = 'FROM ' . implode(', ', $from); - } - - $where = $query->getWhere(); - - if ($where !== null) { - $parts[] = 'WHERE ' . $where; - } - - $groupBy = $query->getGroupBy(); - - if (count($groupBy) > 0) { - $parts[] = 'GROUP BY ' . implode(', ', $groupBy); - } - - $having = $query->getHaving(); - - if ($having !== null) { - $parts[] = 'HAVING ' . $having; - } - - $orderBy = $query->getOrderBy(); - - if (count($orderBy) > 0) { - $parts[] = 'ORDER BY ' . implode(', ', $orderBy); - } - - $sql = implode(' ', $parts); - $limit = $query->getLimit(); - - if ($limit->isDefined()) { - $sql = $this->platform->modifyLimitQuery($sql, $limit->getMaxResults(), $limit->getFirstResult()); - } - - $forUpdate = $query->getForUpdate(); - - if ($forUpdate !== null) { - if ($this->forUpdateSQL === null) { - throw NotSupported::new('FOR UPDATE'); - } - - $sql .= ' ' . $this->forUpdateSQL; - - if ($forUpdate->getConflictResolutionMode() === ConflictResolutionMode::SKIP_LOCKED) { - if ($this->skipLockedSQL === null) { - throw NotSupported::new('SKIP LOCKED'); - } - - $sql .= ' ' . $this->skipLockedSQL; - } - } - - return $sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultUnionSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultUnionSQLBuilder.php deleted file mode 100644 index 289382d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DefaultUnionSQLBuilder.php +++ /dev/null @@ -1,48 +0,0 @@ -getUnionParts() as $union) { - if ($union->type !== null) { - $parts[] = $union->type === UnionType::ALL - ? $this->platform->getUnionAllSQL() - : $this->platform->getUnionDistinctSQL(); - } - - $parts[] = $this->platform->getUnionSelectPartSQL((string) $union->query); - } - - $orderBy = $query->getOrderBy(); - if (count($orderBy) > 0) { - $parts[] = 'ORDER BY ' . implode(', ', $orderBy); - } - - $sql = implode(' ', $parts); - $limit = $query->getLimit(); - - if ($limit->isDefined()) { - $sql = $this->platform->modifyLimitQuery($sql, $limit->getMaxResults(), $limit->getFirstResult()); - } - - return $sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php deleted file mode 100644 index c038489..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php +++ /dev/null @@ -1,54 +0,0 @@ - */ - public function buildSQL(Schema $schema): array - { - return array_merge( - $this->buildSequenceStatements($schema->getSequences()), - $this->buildTableStatements($schema->getTables()), - ); - } - - /** - * @param list
$tables - * - * @return list - */ - private function buildTableStatements(array $tables): array - { - return $this->platform->getDropTablesSQL($tables); - } - - /** - * @param list $sequences - * - * @return list - */ - private function buildSequenceStatements(array $sequences): array - { - $statements = []; - - foreach ($sequences as $sequence) { - $statements[] = $this->platform->getDropSequenceSQL($sequence->getQuotedName($this->platform)); - } - - return $statements; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/SelectSQLBuilder.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/SelectSQLBuilder.php deleted file mode 100644 index c013f96..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Builder/SelectSQLBuilder.php +++ /dev/null @@ -1,14 +0,0 @@ -name]; - if ($part->columns !== null && count($part->columns) > 0) { - $ctePart[] = ' (' . implode(', ', $part->columns) . ')'; - } - - $ctePart[] = ' AS (' . $part->query . ')'; - $cteParts[] = implode('', $ctePart); - } - - return 'WITH ' . implode(', ', $cteParts); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser.php deleted file mode 100644 index c332a1e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser.php +++ /dev/null @@ -1,116 +0,0 @@ -getMySQLStringLiteralPattern("'"), - $this->getMySQLStringLiteralPattern('"'), - ]; - } else { - $patterns = [ - $this->getAnsiSQLStringLiteralPattern("'"), - $this->getAnsiSQLStringLiteralPattern('"'), - ]; - } - - $patterns = array_merge($patterns, [ - self::BACKTICK_IDENTIFIER, - self::BRACKET_IDENTIFIER, - self::MULTICHAR, - self::ONE_LINE_COMMENT, - self::MULTI_LINE_COMMENT, - self::OTHER, - ]); - - $this->sqlPattern = sprintf('(%s)', implode('|', $patterns)); - $this->tokenPattern = '~\\G' - . '(?P' . self::NAMED_PARAMETER . ')' - . '|(?P' . self::POSITIONAL_PARAMETER . ')' - . '|(?P' . $this->sqlPattern . '|' . self::SPECIAL . ')' - . '~s'; - } - - /** - * Parses the given SQL statement - * - * @throws Exception - */ - public function parse(string $sql, Visitor $visitor): void - { - $offset = 0; - $length = strlen($sql); - while ($offset < $length) { - if (preg_match($this->tokenPattern, $sql, $matches, 0, $offset) === 1) { - $match = $matches[0]; - if ($matches['named'] !== '') { - $visitor->acceptNamedParameter($match); - } elseif ($matches['positional'] !== '') { - $visitor->acceptPositionalParameter($match); - } else { - $visitor->acceptOther($match); - } - - $offset += strlen($match); - } elseif (preg_last_error() !== PREG_NO_ERROR) { - // @codeCoverageIgnoreStart - throw RegularExpressionError::new(); - // @codeCoverageIgnoreEnd - } - } - } - - private function getMySQLStringLiteralPattern(string $delimiter): string - { - return $delimiter . '((\\\\.)|(?![' . $delimiter . '\\\\]).)*' . $delimiter; - } - - private function getAnsiSQLStringLiteralPattern(string $delimiter): string - { - return $delimiter . '[^' . $delimiter . ']*' . $delimiter; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Exception.php deleted file mode 100644 index 0c14b35..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/SQL/Parser/Exception.php +++ /dev/null @@ -1,11 +0,0 @@ - Table($tableName)); if you want to rename the table, you have to make sure this does not get - * recreated during schema migration. - * - * @internal This class should be extended only by DBAL itself. - * - * @template N of Name - */ -abstract class AbstractAsset -{ - protected string $_name = ''; - - /** - * Indicates whether the object name has been initialized. - */ - protected bool $isNameInitialized = false; - - /** - * Namespace of the asset. If none isset the default namespace is assumed. - * - * @deprecated Use {@see NamedObject::getObjectName()} and {@see OptionallyQualifiedName::getQualifier()} instead. - */ - protected ?string $_namespace = null; - - protected bool $_quoted = false; - - /** @var list */ - private array $identifiers = []; - - private bool $validateFuture = false; - - public function __construct(?string $name = null) - { - if ($name === null) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6610', - 'Not passing $name to %s is deprecated.', - __METHOD__, - ); - - return; - } - - $this->_setName($name); - } - - /** - * Returns a parser for parsing the object name. - * - * @deprecated Parse the name in the constructor instead. - * - * @return Parser - */ - protected function getNameParser(): Parser - { - throw NotImplemented::fromMethod(static::class, __FUNCTION__); - } - - /** - * Sets the object name. - * - * @deprecated Set the name in the constructor instead. - * - * @param ?N $name - */ - protected function setName(?Name $name): void - { - throw NotImplemented::fromMethod(static::class, __FUNCTION__); - } - - /** - * Sets the name of this asset. - * - * @deprecated Use the constructor instead. - */ - protected function _setName(string $name): void - { - $this->isNameInitialized = false; - - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6610', - '%s is deprecated. Use the constructor instead.', - __METHOD__, - ); - - $input = $name; - - if ($this->isIdentifierQuoted($name)) { - $this->_quoted = true; - $name = $this->trimQuotes($name); - } - - if (str_contains($name, '.')) { - $parts = explode('.', $name); - $this->_namespace = $parts[0]; - $name = $parts[1]; - } - - $this->_name = $name; - - $this->validateFuture = false; - - if ($input !== '') { - try { - $parsedName = $this->getNameParser()->parse($input); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6592', - 'Unable to parse object name: %s.', - $e->getMessage(), - ); - - return; - } - } else { - $parsedName = null; - } - - try { - $this->setName($parsedName); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6646', - 'Using invalid database object names is deprecated: %s.', - $e->getMessage(), - ); - - return; - } - - $this->isNameInitialized = true; - - if ($parsedName === null) { - $this->identifiers = []; - - return; - } - - if ($parsedName instanceof UnqualifiedName) { - $identifiers = [$parsedName->getIdentifier()]; - } elseif ($parsedName instanceof OptionallyQualifiedName) { - $unqualifiedName = $parsedName->getUnqualifiedName(); - $qualifier = $parsedName->getQualifier(); - - $identifiers = $qualifier !== null - ? [$qualifier, $unqualifiedName] - : [$unqualifiedName]; - } elseif ($parsedName instanceof GenericName) { - $identifiers = $parsedName->getIdentifiers(); - } else { - return; - } - - switch (count($identifiers)) { - case 1: - $namespace = null; - $name = $identifiers[0]; - break; - - case 2: - [$namespace, $name] = $identifiers; - break; - - default: - return; - } - - $this->identifiers = $identifiers; - $this->validateFuture = true; - - $futureName = $name->getValue(); - $futureNamespace = $namespace?->getValue(); - - if ($this->_name !== $futureName) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6592', - 'Instead of "%s", this name will be interpreted as "%s" in 5.0', - $this->_name, - $futureName, - ); - } - - if ($this->_namespace === $futureNamespace) { - return; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6592', - 'Instead of %s, the namespace in this name will be interpreted as %s in 5.0.', - $this->_namespace !== null ? sprintf('"%s"', $this->_namespace) : 'null', - $futureNamespace !== null ? sprintf('"%s"', $futureNamespace) : 'null', - ); - } - - /** - * Is this asset in the default namespace? - * - * @deprecated - */ - public function isInDefaultNamespace(string $defaultNamespaceName): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6664', - '%s is deprecated and will be removed in 5.0.', - __METHOD__, - ); - - return $this->_namespace === $defaultNamespaceName || $this->_namespace === null; - } - - /** - * Gets the namespace name of this asset. - * - * If NULL is returned this means the default namespace is used. - * - * @deprecated Use {@see NamedObject::getObjectName()} and {@see OptionallyQualifiedName::getQualifier()} instead. - */ - public function getNamespaceName(): ?string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6664', - '%s is deprecated and will be removed in 5.0. Use NamedObject::getObjectName()' - . ' and OptionallyQualifiedName::getQualifier() instead.', - __METHOD__, - ); - - return $this->_namespace; - } - - /** - * The shortest name is stripped of the default namespace. All other - * namespaced elements are returned as full-qualified names. - * - * @deprecated Use {@link getName()} instead. - */ - public function getShortestName(?string $defaultNamespaceName): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6657', - '%s is deprecated and will be removed in 5.0.', - __METHOD__, - ); - - $shortestName = $this->getName(); - if ($this->_namespace === $defaultNamespaceName) { - $shortestName = $this->_name; - } - - return strtolower($shortestName); - } - - /** - * Checks if this asset's name is quoted. - */ - public function isQuoted(): bool - { - return $this->_quoted; - } - - /** - * Checks if this identifier is quoted. - * - * @deprecated Parse the name and introspect its identifiers individually using {@see Identifier::isQuoted()} - * instead. - */ - protected function isIdentifierQuoted(string $identifier): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6677', - '%s is deprecated and will be removed in 5.0.', - __METHOD__, - ); - - return isset($identifier[0]) && ($identifier[0] === '`' || $identifier[0] === '"' || $identifier[0] === '['); - } - - /** - * Trim quotes from the identifier. - */ - protected function trimQuotes(string $identifier): string - { - return str_replace(['`', '"', '[', ']'], '', $identifier); - } - - /** - * Returns the name of this schema asset. - */ - public function getName(): string - { - if ($this->_namespace !== null) { - return $this->_namespace . '.' . $this->_name; - } - - return $this->_name; - } - - /** - * Gets the quoted representation of this asset but only if it was defined with one. Otherwise - * return the plain unquoted value as inserted. - * - * @deprecated Use {@see NamedObject::getObjectName()} or {@see OptionallyQualifiedName::getObjectName()} followed - * by {@see Name::toSQL()} instead. - */ - public function getQuotedName(AbstractPlatform $platform): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6674', - '%s is deprecated and will be removed in 5.0.', - __METHOD__, - ); - - $keywords = $platform->getReservedKeywordsList(); - $folding = $platform->getUnquotedIdentifierFolding(); - $parts = $normalizedParts = []; - - foreach (explode('.', $this->getName()) as $identifier) { - $isQuoted = $this->_quoted || $keywords->isKeyword($identifier); - - if (! $isQuoted) { - $parts[] = $identifier; - - /** @phpstan-ignore argument.type */ - $normalizedParts[] = $folding->foldUnquotedIdentifier($identifier); - } else { - $parts[] = $platform->quoteSingleIdentifier($identifier); - $normalizedParts[] = $identifier; - } - } - - $name = implode('.', $parts); - - if ($this->validateFuture) { - $futureParts = array_map(static function (Identifier $identifier) use ($folding): string { - $value = $identifier->getValue(); - - if (! $identifier->isQuoted()) { - $value = $folding->foldUnquotedIdentifier($value); - } - - return $value; - }, $this->identifiers); - - if ($normalizedParts !== $futureParts) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6592', - 'Relying on implicitly quoted identifiers preserving their original case is deprecated. ' - . 'The current name %s will become %s in 5.0. ' - . 'Please quote the name if the case needs to be preserved.', - $name, - implode('.', array_map([$platform, 'quoteSingleIdentifier'], $futureParts)), - ); - } - } - - return $name; - } - - /** - * Generates an identifier from a list of column names obeying a certain string length. - * - * This is especially important for Oracle, since it does not allow identifiers larger than 30 chars, - * however building idents automatically for foreign keys, composite keys or such can easily create - * very long names. - * - * @param array $columnNames - * @param positive-int $maxSize - * - * @return non-empty-string - */ - protected function _generateIdentifierName(array $columnNames, string $prefix = '', int $maxSize = 30): string - { - $hash = implode('', array_map(static function ($column): string { - return dechex(crc32($column)); - }, $columnNames)); - - return strtoupper(substr($prefix . '_' . $hash, 0, $maxSize)); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractNamedObject.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractNamedObject.php deleted file mode 100644 index 54fe512..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractNamedObject.php +++ /dev/null @@ -1,58 +0,0 @@ - - * @implements NamedObject - */ -abstract class AbstractNamedObject extends AbstractAsset implements NamedObject -{ - /** - * The name of the database object. - * - * Until the validity of the name is enforced, this property isn't guaranteed to be always initialized. The property - * can be accessed only if {@see $isNameInitialized} is set to true. - * - * @var N - */ - protected Name $name; - - public function __construct(string $name) - { - parent::__construct($name); - } - - /** - * Returns the object name. - * - * @return N - * - * @throws InvalidState - */ - public function getObjectName(): Name - { - if (! $this->isNameInitialized) { - throw InvalidState::objectNameNotInitialized(); - } - - return $this->name; - } - - protected function setName(?Name $name): void - { - if ($name === null) { - throw InvalidName::fromEmpty(); - } - - $this->name = $name; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractOptionallyNamedObject.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractOptionallyNamedObject.php deleted file mode 100644 index c1fe096..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractOptionallyNamedObject.php +++ /dev/null @@ -1,46 +0,0 @@ - - * @implements OptionallyNamedObject - */ -abstract class AbstractOptionallyNamedObject extends AbstractAsset implements OptionallyNamedObject -{ - /** - * The name of the database object. - * - * Until the validity of the name is enforced, this property isn't guaranteed to be always initialized. The property - * can be accessed only if {@see $isNameInitialized} is set to true. - * - * @var ?N - */ - protected ?Name $name; - - public function __construct(?string $name) - { - parent::__construct($name ?? ''); - } - - public function getObjectName(): ?Name - { - if (! $this->isNameInitialized) { - throw InvalidState::objectNameNotInitialized(); - } - - return $this->name; - } - - protected function setName(?Name $name): void - { - $this->name = $name; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php deleted file mode 100644 index b9afdb4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php +++ /dev/null @@ -1,1021 +0,0 @@ -null value means that there is no - * schema currently selected within the connection. - * - * The property should be accessed only when {@link $currentSchemaDetermined} is set to true. If the - * currently used database platform doesn't support schemas, the property will remain uninitialized. - * - * The property is initialized only once. If the underlying connection switches to a different schema, a new schema - * manager instance will have to be created to reflect this change. - * - * @var ?non-empty-string - */ - private ?string $currentSchemaName; - - /** - * Indicates whether the current schema has been determined. - */ - private bool $currentSchemaDetermined = false; - - /** @param T $platform */ - public function __construct(protected Connection $connection, protected AbstractPlatform $platform) - { - } - - /** - * Lists the available databases for this connection. - * - * @return array - * - * @throws Exception - */ - public function listDatabases(): array - { - return array_map(function (array $row): string { - return $this->_getPortableDatabaseDefinition($row); - }, $this->connection->fetchAllAssociative( - $this->platform->getListDatabasesSQL(), - )); - } - - /** - * Returns a list of the names of all schemata in the current database. - * - * @return list - * - * @throws Exception - */ - public function listSchemaNames(): array - { - throw NotSupported::new(__METHOD__); - } - - /** - * Lists the available sequences for this connection. - * - * @return array - * - * @throws Exception - */ - public function listSequences(): array - { - return $this->filterAssetNames( - array_map(function (array $row): Sequence { - return $this->_getPortableSequenceDefinition($row); - }, $this->connection->fetchAllAssociative( - $this->platform->getListSequencesSQL( - $this->getDatabase(__METHOD__), - ), - )), - ); - } - - /** - * Lists the columns for a given table. - * - * In contrast to other libraries and to the old version of Doctrine, - * this column definition does try to contain the 'primary' column for - * the reason that it is not portable across different RDBMS. Use - * {@see listTableIndexes($tableName)} to retrieve the primary key - * of a table. Where a RDBMS specifies more details, these are held - * in the platformDetails array. - * - * @return array - * - * @throws Exception - */ - public function listTableColumns(string $table): array - { - $this->validateTableName($table, __METHOD__); - - $database = $this->getDatabase(__METHOD__); - - return $this->_getPortableTableColumnList( - $table, - $database, - $this->fetchTableColumns($database, $this->normalizeName($table)), - ); - } - - /** - * Lists the indexes for a given table returning an array of Index instances. - * - * Keys of the portable indexes list are all lower-cased. - * - * @return array - * - * @throws Exception - */ - public function listTableIndexes(string $table): array - { - $this->validateTableName($table, __METHOD__); - - $database = $this->getDatabase(__METHOD__); - $table = $this->normalizeName($table); - - return $this->_getPortableTableIndexesList( - $this->fetchIndexColumns($database, $table), - $table, - ); - } - - /** - * Returns true if all the given tables exist. - * - * @param array $names - * - * @throws Exception - */ - public function tablesExist(array $names): bool - { - $names = array_map('strtolower', $names); - - return count($names) === count(array_intersect($names, array_map('strtolower', $this->listTableNames()))); - } - - /** @throws Exception */ - public function tableExists(string $tableName): bool - { - return $this->tablesExist([$tableName]); - } - - /** - * Returns a list of all tables in the current database. - * - * @return array - * - * @throws Exception - */ - public function listTableNames(): array - { - return $this->filterAssetNames( - array_map(function (array $row): string { - return $this->_getPortableTableDefinition($row); - }, $this->selectTableNames( - $this->getDatabase(__METHOD__), - )->fetchAllAssociative()), - ); - } - - /** - * Filters asset names if they are configured to return only a subset of all - * the found elements. - * - * @param array $assetNames - * - * @return array - */ - private function filterAssetNames(array $assetNames): array - { - $filter = $this->connection->getConfiguration()->getSchemaAssetsFilter(); - - return array_values(array_filter($assetNames, $filter)); - } - - /** - * Lists the tables for this connection. - * - * @return list
- * - * @throws Exception - */ - public function listTables(): array - { - $database = $this->getDatabase(__METHOD__); - - $tableColumnsByTable = $this->fetchTableColumnsByTable($database); - $indexColumnsByTable = $this->fetchIndexColumnsByTable($database); - $foreignKeyColumnsByTable = $this->fetchForeignKeyColumnsByTable($database); - $tableOptionsByTable = $this->fetchTableOptionsByTable($database); - - $filter = $this->connection->getConfiguration()->getSchemaAssetsFilter(); - $tables = []; - - $configuration = $this->createSchemaConfig() - ->toTableConfiguration(); - - foreach ($tableColumnsByTable as $tableName => $tableColumns) { - if (! $filter($tableName)) { - continue; - } - - $tables[] = new Table( - $tableName, - $this->_getPortableTableColumnList($tableName, $database, $tableColumns), - $this->_getPortableTableIndexesList($indexColumnsByTable[$tableName] ?? [], $tableName), - [], - $this->_getPortableTableForeignKeysList($foreignKeyColumnsByTable[$tableName] ?? []), - $tableOptionsByTable[$tableName] ?? [], - $configuration, - ); - } - - return $tables; - } - - /** - * Returns the current schema name used by the schema manager connection. - * - * The null value means that there is no schema currently selected within the connection or the - * corresponding database platform doesn't support schemas. - * - * @return ?non-empty-string - * - * @throws Exception - */ - final protected function getCurrentSchemaName(): ?string - { - if (! $this->platform->supportsSchemas()) { - return null; - } - - if (! $this->currentSchemaDetermined) { - $this->currentSchemaName = $this->determineCurrentSchemaName(); - $this->currentSchemaDetermined = true; - } - - return $this->currentSchemaName; - } - - /** - * Determines the name of the current schema. - * - * If the corresponding database platform supports schemas, the schema manager must implement this method. - * - * @return ?non-empty-string - * - * @throws Exception - */ - protected function determineCurrentSchemaName(): ?string - { - throw NotSupported::new(__METHOD__); - } - - /** - * An extension point for those platforms where case sensitivity of the object name depends on whether it's quoted. - * - * Such platforms should convert a possibly quoted name into a value of the corresponding case. - * - * @deprecated Use {@see Identifier::toNormalizedValue()} instead. - */ - protected function normalizeName(string $name): string - { - $identifier = new Identifier($name); - - return $identifier->getName(); - } - - private function validateTableName(string $input, string $methodName): void - { - $parser = Parsers::getOptionallyQualifiedNameParser(); - - try { - $tableName = $parser->parse($input); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6768', - 'Unable to parse table name passed to %s(): %s.', - $methodName, - $e->getMessage(), - ); - - return; - } - - if ($tableName->getQualifier() === null || $this->platform->supportsSchemas()) { - return; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6768', - 'Relying on %s() not parsing an unquoted table name containing a dot while working with %s is' - . ' deprecated. Pass a quoted name instead.', - $methodName, - $this->platform::class, - ); - } - - /** - * Selects names of tables in the specified database. - * - * @throws Exception - */ - abstract protected function selectTableNames(string $databaseName): Result; - - /** - * Selects definitions of table columns in the specified database. If the table name is specified, narrows down - * the selection to this table. - * - * @throws Exception - */ - abstract protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result; - - /** - * Selects definitions of index columns in the specified database. If the table name is specified, narrows down - * the selection to this table. - * - * @throws Exception - */ - abstract protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result; - - /** - * Selects definitions of foreign key columns in the specified database. If the table name is specified, - * narrows down the selection to this table. - * - * @throws Exception - */ - abstract protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result; - - /** - * Fetches definitions of table columns in the specified database. If the table name is specified, narrows down - * the selection to this table. - * - * @return list> - * - * @throws Exception - */ - protected function fetchTableColumns(string $databaseName, ?string $tableName = null): array - { - return $this->selectTableColumns($databaseName, $tableName)->fetchAllAssociative(); - } - - /** - * Fetches definitions of index columns in the specified database. If the table name is specified, narrows down - * the selection to this table. - * - * @return list> - * - * @throws Exception - */ - protected function fetchIndexColumns(string $databaseName, ?string $tableName = null): array - { - return $this->selectIndexColumns($databaseName, $tableName)->fetchAllAssociative(); - } - - /** - * Fetches definitions of foreign key columns in the specified database. If the table name is specified, - * narrows down the selection to this table. - * - * @return list> - * - * @throws Exception - */ - protected function fetchForeignKeyColumns(string $databaseName, ?string $tableName = null): array - { - return $this->selectForeignKeyColumns($databaseName, $tableName)->fetchAllAssociative(); - } - - /** - * Fetches definitions of table columns in the specified database and returns them grouped by table name. - * - * @return array>> - * - * @throws Exception - */ - protected function fetchTableColumnsByTable(string $databaseName): array - { - return $this->groupByTable($this->fetchTableColumns($databaseName)); - } - - /** - * Fetches definitions of index columns in the specified database and returns them grouped by table name. - * - * @return array>> - * - * @throws Exception - */ - protected function fetchIndexColumnsByTable(string $databaseName): array - { - return $this->groupByTable($this->fetchIndexColumns($databaseName)); - } - - /** - * Fetches definitions of foreign key columns in the specified database and returns them grouped by table name. - * - * @return array>> - * - * @throws Exception - */ - protected function fetchForeignKeyColumnsByTable(string $databaseName): array - { - return $this->groupByTable($this->fetchForeignKeyColumns($databaseName)); - } - - /** - * Fetches table options for the tables in the specified database and returns them grouped by table name. - * If the table name is specified, narrows down the selection to this table. - * - * @param ?non-empty-string $tableName - * - * @return array> - * - * @throws Exception - */ - abstract protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array; - - /** - * Introspects the table with the given name. - * - * @throws Exception - */ - public function introspectTable(string $name): Table - { - $columns = $this->listTableColumns($name); - - if ($columns === []) { - throw TableDoesNotExist::new($name); - } - - return new Table( - $name, - $columns, - $this->listTableIndexes($name), - [], - $this->listTableForeignKeys($name), - $this->getTableOptions($name), - ); - } - - /** - * Lists the views this connection has. - * - * @return list - * - * @throws Exception - */ - public function listViews(): array - { - return array_map(function (array $row): View { - return $this->_getPortableViewDefinition($row); - }, $this->connection->fetchAllAssociative( - $this->platform->getListViewsSQL( - $this->getDatabase(__METHOD__), - ), - )); - } - - /** - * Lists the foreign keys for the given table. - * - * @return array - * - * @throws Exception - */ - public function listTableForeignKeys(string $table): array - { - $this->validateTableName($table, __METHOD__); - - $database = $this->getDatabase(__METHOD__); - - return $this->_getPortableTableForeignKeysList( - $this->fetchForeignKeyColumns( - $database, - $this->normalizeName($table), - ), - ); - } - - /** - * @return array - * - * @throws Exception - */ - private function getTableOptions(string $name): array - { - $this->validateTableName($name, __METHOD__); - - $normalizedName = $this->normalizeName($name); - - return $this->fetchTableOptionsByTable( - $this->getDatabase(__METHOD__), - $normalizedName, // @phpstan-ignore argument.type - )[$normalizedName] ?? []; - } - - /* drop*() Methods */ - - /** - * Drops a database. - * - * NOTE: You can not drop the database this SchemaManager is currently connected to. - * - * @throws Exception - */ - public function dropDatabase(string $database): void - { - $this->connection->executeStatement( - $this->platform->getDropDatabaseSQL($database), - ); - } - - /** - * Drops a schema. - * - * @throws Exception - */ - public function dropSchema(string $schemaName): void - { - $this->connection->executeStatement( - $this->platform->getDropSchemaSQL($schemaName), - ); - } - - /** - * Drops the given table. - * - * @throws Exception - */ - public function dropTable(string $name): void - { - $this->connection->executeStatement( - $this->platform->getDropTableSQL($name), - ); - } - - /** - * Drops the index from the given table. - * - * @throws Exception - */ - public function dropIndex(string $index, string $table): void - { - $this->connection->executeStatement( - $this->platform->getDropIndexSQL($index, $table), - ); - } - - /** - * Drops a foreign key from a table. - * - * @throws Exception - */ - public function dropForeignKey(string $name, string $table): void - { - $this->connection->executeStatement( - $this->platform->getDropForeignKeySQL($name, $table), - ); - } - - /** - * Drops a sequence with a given name. - * - * @throws Exception - */ - public function dropSequence(string $name): void - { - $this->connection->executeStatement( - $this->platform->getDropSequenceSQL($name), - ); - } - - /** - * Drops the unique constraint from the given table. - * - * @throws Exception - */ - public function dropUniqueConstraint(string $name, string $tableName): void - { - $this->connection->executeStatement( - $this->platform->getDropUniqueConstraintSQL($name, $tableName), - ); - } - - /** - * Drops a view. - * - * @throws Exception - */ - public function dropView(string $name): void - { - $this->connection->executeStatement( - $this->platform->getDropViewSQL($name), - ); - } - - /* create*() Methods */ - - /** @throws Exception */ - public function createSchemaObjects(Schema $schema): void - { - $this->executeStatements($schema->toSql($this->platform)); - } - - /** - * Creates a new database. - * - * @throws Exception - */ - public function createDatabase(string $database): void - { - $this->connection->executeStatement( - $this->platform->getCreateDatabaseSQL($database), - ); - } - - /** - * Creates a new table. - * - * @throws Exception - */ - public function createTable(Table $table): void - { - $this->executeStatements($this->platform->getCreateTableSQL($table)); - } - - /** - * Creates a new sequence. - * - * @throws Exception - */ - public function createSequence(Sequence $sequence): void - { - $this->connection->executeStatement( - $this->platform->getCreateSequenceSQL($sequence), - ); - } - - /** - * Creates a new index on a table. - * - * @param string $table The name of the table on which the index is to be created. - * - * @throws Exception - */ - public function createIndex(Index $index, string $table): void - { - $this->connection->executeStatement( - $this->platform->getCreateIndexSQL($index, $table), - ); - } - - /** - * Creates a new foreign key. - * - * @param ForeignKeyConstraint $foreignKey The ForeignKey instance. - * @param string $table The name of the table on which the foreign key is to be created. - * - * @throws Exception - */ - public function createForeignKey(ForeignKeyConstraint $foreignKey, string $table): void - { - $this->connection->executeStatement( - $this->platform->getCreateForeignKeySQL($foreignKey, $table), - ); - } - - /** - * Creates a unique constraint on a table. - * - * @throws Exception - */ - public function createUniqueConstraint(UniqueConstraint $uniqueConstraint, string $tableName): void - { - $this->connection->executeStatement( - $this->platform->getCreateUniqueConstraintSQL($uniqueConstraint, $tableName), - ); - } - - /** - * Creates a new view. - * - * @throws Exception - */ - public function createView(View $view): void - { - $this->connection->executeStatement( - $this->platform->getCreateViewSQL( - $view->getQuotedName($this->platform), - $view->getSql(), - ), - ); - } - - /** @throws Exception */ - public function dropSchemaObjects(Schema $schema): void - { - $this->executeStatements($schema->toDropSql($this->platform)); - } - - /** - * Alters an existing schema. - * - * @throws Exception - */ - public function alterSchema(SchemaDiff $schemaDiff): void - { - $this->executeStatements($this->platform->getAlterSchemaSQL($schemaDiff)); - } - - /** - * Migrates an existing schema to a new schema. - * - * @throws Exception - */ - public function migrateSchema(Schema $newSchema): void - { - $schemaDiff = $this->createComparator() - ->compareSchemas($this->introspectSchema(), $newSchema); - - $this->alterSchema($schemaDiff); - } - - /* alterTable() Methods */ - - /** - * Alters an existing tables schema. - * - * @throws Exception - */ - public function alterTable(TableDiff $tableDiff): void - { - $this->executeStatements($this->platform->getAlterTableSQL($tableDiff)); - } - - /** - * Renames a given table to another name. - * - * @throws Exception - */ - public function renameTable(string $name, string $newName): void - { - $this->connection->executeStatement( - $this->platform->getRenameTableSQL($name, $newName), - ); - } - - /** - * Methods for filtering return values of list*() methods to convert - * the native DBMS data definition to a portable Doctrine definition - */ - - /** @param array $database */ - protected function _getPortableDatabaseDefinition(array $database): string - { - throw NotSupported::new(__METHOD__); - } - - /** @param array $sequence */ - protected function _getPortableSequenceDefinition(array $sequence): Sequence - { - throw NotSupported::new(__METHOD__); - } - - /** - * Independent of the database the keys of the column list result are lowercased. - * - * The name of the created column instance however is kept in its case. - * - * @param array> $rows - * - * @return array - * - * @throws TypesException - */ - protected function _getPortableTableColumnList(string $table, string $database, array $rows): array - { - $list = []; - foreach ($rows as $row) { - $column = $this->_getPortableTableColumnDefinition($row); - - $name = strtolower($column->getQuotedName($this->platform)); - $list[$name] = $column; - } - - return $list; - } - - /** - * Gets Table Column Definition. - * - * @param array $tableColumn - * - * @throws TypesException - */ - abstract protected function _getPortableTableColumnDefinition(array $tableColumn): Column; - - /** - * Aggregates and groups the index results according to the required data result. - * - * @param array> $rows - * - * @return array - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - $result = []; - foreach ($rows as $row) { - $indexName = $keyName = $row['key_name']; - if ($row['primary']) { - $keyName = 'primary'; - } - - $keyName = strtolower($keyName); - - if (! isset($result[$keyName])) { - $options = [ - 'lengths' => [], - ]; - - if (isset($row['where'])) { - $options['where'] = $row['where']; - } - - $result[$keyName] = [ - 'name' => $indexName, - 'columns' => [], - 'unique' => ! $row['non_unique'], - 'primary' => $row['primary'], - 'flags' => $row['flags'] ?? [], - 'options' => $options, - ]; - } - - $result[$keyName]['columns'][] = $row['column_name']; - $result[$keyName]['options']['lengths'][] = $row['length'] ?? null; - } - - $indexes = []; - foreach ($result as $indexKey => $data) { - $indexes[$indexKey] = new Index( - $data['name'], - $data['columns'], - $data['unique'], - $data['primary'], - $data['flags'], - $data['options'], - ); - } - - return $indexes; - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * @param array $table - * - * @return non-empty-string - */ - abstract protected function _getPortableTableDefinition(array $table): string; - - /** @param array $view */ - abstract protected function _getPortableViewDefinition(array $view): View; - - /** - * @param array> $rows - * - * @return array - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $list = []; - - foreach ($rows as $value) { - $list[] = $this->_getPortableTableForeignKeyDefinition($value); - } - - return $list; - } - - /** @param array $tableForeignKey */ - abstract protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint; - - /** - * @param array $sql - * - * @throws Exception - */ - private function executeStatements(array $sql): void - { - foreach ($sql as $query) { - $this->connection->executeStatement($query); - } - } - - /** - * Returns a {@see Schema} instance representing the current database schema. - * - * @throws Exception - */ - public function introspectSchema(): Schema - { - $schemaNames = []; - - if ($this->platform->supportsSchemas()) { - $schemaNames = $this->listSchemaNames(); - } - - $sequences = []; - - if ($this->platform->supportsSequences()) { - $sequences = $this->listSequences(); - } - - $tables = $this->listTables(); - - return new Schema($tables, $sequences, $this->createSchemaConfig(), $schemaNames); - } - - /** - * Creates the configuration for this schema. - * - * @throws Exception - */ - public function createSchemaConfig(): SchemaConfig - { - $schemaConfig = new SchemaConfig(); - $schemaConfig->setMaxIdentifierLength($this->platform->getMaxIdentifierLength()); - $schemaConfig->setName($this->getCurrentSchemaName()); - - $params = $this->connection->getParams(); - if (! isset($params['defaultTableOptions'])) { - $params['defaultTableOptions'] = []; - } - - if (! isset($params['defaultTableOptions']['charset']) && isset($params['charset'])) { - $params['defaultTableOptions']['charset'] = $params['charset']; - } - - $schemaConfig->setDefaultTableOptions($params['defaultTableOptions']); - - return $schemaConfig; - } - - /** - * @return non-empty-string - * - * @throws Exception - */ - private function getDatabase(string $methodName): string - { - $database = $this->connection->getDatabase(); - - if ($database === null) { - throw DatabaseRequired::new($methodName); - } - - return $database; - } - - public function createComparator(/* ComparatorConfig $config = new ComparatorConfig() */): Comparator - { - return new Comparator($this->platform, func_num_args() > 0 ? func_get_arg(0) : new ComparatorConfig()); - } - - /** - * Groups the rows representing database object elements by table they belong to. - * - * @param list> $rows - * - * @return array>> - */ - private function groupByTable(array $rows): array - { - $data = []; - - foreach ($rows as $row) { - $tableName = $this->_getPortableTableDefinition($row); - $data[$tableName][] = $row; - } - - /** @phpstan-ignore return.type */ - return $data; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception.php deleted file mode 100644 index 31b5451..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception.php +++ /dev/null @@ -1,12 +0,0 @@ -objectName; - } - - public static function new(UnqualifiedName $objectName): self - { - return new self(sprintf('Object %s already exists.', $objectName->toString()), $objectName); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception/ObjectDoesNotExist.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception/ObjectDoesNotExist.php deleted file mode 100644 index 37f6534..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/Exception/ObjectDoesNotExist.php +++ /dev/null @@ -1,30 +0,0 @@ -objectName; - } - - public static function new(UnqualifiedName $objectName): self - { - return new self(sprintf('Object %s does not exist.', $objectName->toString()), $objectName); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/ObjectSet.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/ObjectSet.php deleted file mode 100644 index 3e6f963..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/ObjectSet.php +++ /dev/null @@ -1,69 +0,0 @@ - - */ - public function toList(): array; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/OptionallyUnqualifiedNamedObjectSet.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/OptionallyUnqualifiedNamedObjectSet.php deleted file mode 100644 index c56aa36..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/OptionallyUnqualifiedNamedObjectSet.php +++ /dev/null @@ -1,164 +0,0 @@ - - * @template-implements ObjectSet - */ -final class OptionallyUnqualifiedNamedObjectSet implements ObjectSet -{ - /** @var list */ - private array $elements = []; - - /** @var array */ - private array $elementPositionsByKey = []; - - /** @phpstan-param E ...$elements */ - public function __construct(OptionallyNamedObject ...$elements) - { - foreach ($elements as $element) { - $this->add($element); - } - } - - public function isEmpty(): bool - { - return count($this->elements) === 0; - } - - public function get(UnqualifiedName $elementName): ?OptionallyNamedObject - { - $key = $this->getKey($elementName); - - if (isset($this->elementPositionsByKey[$key])) { - return $this->elements[$this->elementPositionsByKey[$key]]; - } - - return null; - } - - public function add(object $element): void - { - $elementName = $element->getObjectName(); - - if ($elementName !== null) { - $key = $this->getKey($elementName); - - if (isset($this->elementPositionsByKey[$key])) { - throw ObjectAlreadyExists::new($elementName); - } - - $this->elementPositionsByKey[$key] = count($this->elements); - } - - $this->elements[] = $element; - } - - public function remove(UnqualifiedName $elementName): void - { - $key = $this->getKey($elementName); - - if (! isset($this->elementPositionsByKey[$key])) { - throw ObjectDoesNotExist::new($elementName); - } - - $this->removeByKey($key); - } - - public function modify(UnqualifiedName $elementName, callable $modification): void - { - $key = $this->getKey($elementName); - - if (! isset($this->elementPositionsByKey[$key])) { - throw ObjectDoesNotExist::new($elementName); - } - - $position = $this->elementPositionsByKey[$key]; - - $this->replace($key, $position, $modification($this->elements[$position])); - } - - public function clear(): void - { - $this->elements = $this->elementPositionsByKey = []; - } - - /** {@inheritDoc} */ - public function toList(): array - { - return $this->elements; - } - - /** - * Replaces the element corresponding to the old key with the provided element. - * - * @phpstan-param E $element - * - * @throws ObjectAlreadyExists If an element with the same name as the element name already exists. - */ - private function replace(string $oldKey, int $position, OptionallyNamedObject $element): void - { - $elementName = $element->getObjectName(); - - if ($elementName !== null) { - $newKey = $this->getKey($elementName); - - if ($newKey !== $oldKey) { - if (isset($this->elementPositionsByKey[$newKey])) { - throw ObjectAlreadyExists::new($elementName); - } - - unset($this->elementPositionsByKey[$oldKey]); - - $this->elementPositionsByKey[$newKey] = $position; - } - } else { - unset($this->elementPositionsByKey[$oldKey]); - } - - // @phpstan-ignore assign.propertyType - $this->elements[$position] = $element; - } - - private function removeByKey(string $key): void - { - $position = $this->elementPositionsByKey[$key]; - - array_splice($this->elements, $position, 1); - unset($this->elementPositionsByKey[$key]); - - foreach ($this->elementPositionsByKey as $elementKey => $elementPosition) { - if ($elementPosition <= $position) { - continue; - } - - $this->elementPositionsByKey[$elementKey]--; - } - } - - private function getKey(UnqualifiedName $name): string - { - return strtolower($name->getIdentifier()->getValue()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/UnqualifiedNamedObjectSet.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/UnqualifiedNamedObjectSet.php deleted file mode 100644 index e18de30..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Collections/UnqualifiedNamedObjectSet.php +++ /dev/null @@ -1,139 +0,0 @@ - - * @template-implements ObjectSet - */ -final class UnqualifiedNamedObjectSet implements ObjectSet -{ - /** @var array */ - private array $elements = []; - - /** @phpstan-param E ...$elements */ - public function __construct(NamedObject ...$elements) - { - foreach ($elements as $element) { - $this->add($element); - } - } - - public function isEmpty(): bool - { - return count($this->elements) === 0; - } - - public function get(UnqualifiedName $elementName): ?NamedObject - { - $key = $this->getKey($elementName); - - return $this->elements[$key] ?? null; - } - - public function add(object $element): void - { - $elementName = $element->getObjectName(); - $key = $this->getKey($elementName); - - if (isset($this->elements[$key])) { - throw ObjectAlreadyExists::new($elementName); - } - - $this->elements[$key] = $element; - } - - public function remove(UnqualifiedName $elementName): void - { - $key = $this->getKey($elementName); - - if (! isset($this->elements[$key])) { - throw ObjectDoesNotExist::new($elementName); - } - - unset($this->elements[$key]); - } - - public function modify(UnqualifiedName $elementName, callable $modification): void - { - $key = $this->getKey($elementName); - - if (! isset($this->elements[$key])) { - throw ObjectDoesNotExist::new($elementName); - } - - $this->replace($key, $modification($this->elements[$key])); - } - - public function clear(): void - { - $this->elements = []; - } - - /** {@inheritDoc} */ - public function toList(): array - { - return array_values($this->elements); - } - - /** - * Replaces the element corresponding to the old key with the provided element. The position of the element in the - * set is preserved. - * - * @phpstan-param E $element - * - * @throws ObjectAlreadyExists If an element with the same name as the element name already exists. - */ - private function replace(string $oldKey, NamedObject $element): void - { - $elementName = $element->getObjectName(); - $newKey = $this->getKey($elementName); - - if ($newKey === $oldKey) { - $this->elements[$oldKey] = $element; - - return; - } - - if (isset($this->elements[$newKey])) { - throw ObjectAlreadyExists::new($elementName); - } - - $keys = array_keys($this->elements); - $values = array_values($this->elements); - - $position = array_search($oldKey, $keys, true); - assert($position !== false); - - $keys[$position] = $newKey; - $values[$position] = $element; - - $this->elements = array_combine($keys, $values); - } - - private function getKey(UnqualifiedName $name): string - { - return strtolower($name->getIdentifier()->getValue()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Column.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Column.php deleted file mode 100644 index e2b6731..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Column.php +++ /dev/null @@ -1,420 +0,0 @@ - - * @phpstan-type ColumnProperties = array{ - * name: string, - * type: Type, - * default: mixed, - * notnull?: bool, - * autoincrement: bool, - * columnDefinition: ?non-empty-string, - * comment: string, - * charset?: ?non-empty-string, - * collation?: ?non-empty-string, - * } - * @phpstan-type PlatformOptions = array{ - * charset?: ?non-empty-string, - * collation?: ?non-empty-string, - * default_constraint_name?: non-empty-string, - * jsonb?: bool, - * version?: bool, - * } - */ -class Column extends AbstractNamedObject -{ - protected Type $_type; - - protected ?int $_length = null; - - protected ?int $_precision = null; - - protected int $_scale = 0; - - protected bool $_unsigned = false; - - protected bool $_fixed = false; - - protected bool $_notnull = true; - - protected mixed $_default = null; - - protected bool $_autoincrement = false; - - /** @var list */ - protected array $_values = []; - - /** @var PlatformOptions */ - protected array $_platformOptions = []; - - /** @var ?non-empty-string */ - protected ?string $_columnDefinition = null; - - protected string $_comment = ''; - - /** - * @internal Use {@link Column::editor()} to instantiate an editor and {@link ColumnEditor::create()} to create a - * column. - * - * @param array $options - */ - public function __construct(string $name, Type $type, array $options = []) - { - parent::__construct($name); - - $this->setType($type); - $this->setOptions($options); - } - - protected function getNameParser(): UnqualifiedNameParser - { - return Parsers::getUnqualifiedNameParser(); - } - - /** @param array $options */ - public function setOptions(array $options): self - { - foreach ($options as $name => $value) { - $method = 'set' . $name; - - if (! method_exists($this, $method)) { - throw UnknownColumnOption::new($name); - } - - $this->$method($value); - } - - return $this; - } - - public function setType(Type $type): self - { - $this->_type = $type; - - return $this; - } - - public function setLength(?int $length): self - { - $this->_length = $length; - - return $this; - } - - public function setPrecision(?int $precision): self - { - $this->_precision = $precision; - - return $this; - } - - public function setScale(int $scale): self - { - $this->_scale = $scale; - - return $this; - } - - public function setUnsigned(bool $unsigned): self - { - $this->_unsigned = $unsigned; - - return $this; - } - - public function setFixed(bool $fixed): self - { - $this->_fixed = $fixed; - - return $this; - } - - public function setNotnull(bool $notnull): self - { - $this->_notnull = $notnull; - - return $this; - } - - public function setDefault(mixed $default): self - { - $this->_default = $default; - - return $this; - } - - /** @param PlatformOptions $platformOptions */ - public function setPlatformOptions(array $platformOptions): self - { - if (isset($platformOptions['jsonb']) && $platformOptions['jsonb']) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6939', - 'The "jsonb" column platform option is deprecated. Use the "JSONB" type instead.', - ); - } - - $this->_platformOptions = $platformOptions; - - return $this; - } - - /** @param key-of $name */ - public function setPlatformOption(string $name, mixed $value): self - { - if ($name === 'jsonb' && (bool) $value === true) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6939', - 'The "jsonb" column platform option is deprecated. Use the "JSONB" type instead.', - ); - } - - $this->_platformOptions[$name] = $value; - - return $this; - } - - /** @param ?non-empty-string $value */ - public function setColumnDefinition(?string $value): self - { - $this->_columnDefinition = $value; - - return $this; - } - - public function getType(): Type - { - return $this->_type; - } - - public function getLength(): ?int - { - return $this->_length; - } - - public function getPrecision(): ?int - { - return $this->_precision; - } - - public function getScale(): int - { - return $this->_scale; - } - - public function getUnsigned(): bool - { - return $this->_unsigned; - } - - public function getFixed(): bool - { - return $this->_fixed; - } - - public function getNotnull(): bool - { - return $this->_notnull; - } - - public function getDefault(): mixed - { - return $this->_default; - } - - /** - * Returns the name of the character set to use with the column. - * - * @return ?non-empty-string - */ - public function getCharset(): ?string - { - return $this->_platformOptions['charset'] ?? null; - } - - /** - * Returns the name of the collation to use with the column. - * - * @return ?non-empty-string - */ - public function getCollation(): ?string - { - return $this->_platformOptions['collation'] ?? null; - } - - /** - * Returns the minimum value to enforce on the column. - */ - public function getMinimumValue(): mixed - { - return $this->_platformOptions['min'] ?? null; - } - - /** - * Returns the maximum value to enforce on the column. - */ - public function getMaximumValue(): mixed - { - return $this->_platformOptions['max'] ?? null; - } - - /** - * @internal Should be used only from within the {@see AbstractSchemaManager} class hierarchy. - * - * Returns the name of the DEFAULT constraint that implements the default value for the column on SQL Server. - * - * @return ?non-empty-string - */ - public function getDefaultConstraintName(): ?string - { - return $this->_platformOptions[SQLServerPlatform::OPTION_DEFAULT_CONSTRAINT_NAME] ?? null; - } - - /** - * @deprecated Use {@see getCharset()}, {@see getCollation()}, {@see getMinimumValue()} or {@see getMaximumValue()} - * instead. - * - * @return PlatformOptions - */ - public function getPlatformOptions(): array - { - return $this->_platformOptions; - } - - /** - * @deprecated Use {@see getCharset()}, {@see getCollation()}, {@see getMinimumValue()} or {@see getMaximumValue()} - * instead. - * - * @param key-of $name - */ - public function hasPlatformOption(string $name): bool - { - return isset($this->_platformOptions[$name]); - } - - /** - * @deprecated Use {@see getCharset()}, {@see getCollation()}, {@see getMinimumValue()} or {@see getMaximumValue()} - * instead. - * - * @param key-of $name - */ - public function getPlatformOption(string $name): mixed - { - /** @phpstan-ignore offsetAccess.notFound */ - return $this->_platformOptions[$name]; - } - - public function getColumnDefinition(): ?string - { - return $this->_columnDefinition; - } - - public function getAutoincrement(): bool - { - return $this->_autoincrement; - } - - public function setAutoincrement(bool $flag): self - { - $this->_autoincrement = $flag; - - return $this; - } - - public function setComment(string $comment): self - { - $this->_comment = $comment; - - return $this; - } - - public function getComment(): string - { - return $this->_comment; - } - - /** - * @param list $values - * - * @return $this - */ - public function setValues(array $values): static - { - $this->_values = $values; - - return $this; - } - - /** @return list */ - public function getValues(): array - { - return $this->_values; - } - - /** @return ColumnProperties */ - public function toArray(): array - { - return array_merge([ - 'name' => $this->_name, - 'type' => $this->_type, - 'default' => $this->_default, - 'notnull' => $this->_notnull, - 'length' => $this->_length, - 'precision' => $this->_precision, - 'scale' => $this->_scale, - 'fixed' => $this->_fixed, - 'unsigned' => $this->_unsigned, - 'autoincrement' => $this->_autoincrement, - 'columnDefinition' => $this->_columnDefinition, - 'comment' => $this->_comment, - 'values' => $this->_values, - ], $this->_platformOptions); - } - - public static function editor(): ColumnEditor - { - return new ColumnEditor(); - } - - public function edit(): ColumnEditor - { - return self::editor() - ->setName($this->getObjectName()) - ->setType($this->_type) - ->setLength($this->_length) - ->setPrecision($this->_precision) - ->setScale($this->_scale) - ->setUnsigned($this->_unsigned) - ->setFixed($this->_fixed) - ->setNotNull($this->_notnull) - ->setDefaultValue($this->_default) - ->setAutoincrement($this->_autoincrement) - ->setComment($this->_comment) - ->setValues($this->_values) - ->setColumnDefinition($this->_columnDefinition) - ->setCharset($this->getCharset()) - ->setCollation($this->getCollation()) - ->setMinimumValue($this->getMinimumValue()) - ->setMaximumValue($this->getMaximumValue()) - ->setDefaultConstraintName($this->getDefaultConstraintName()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnDiff.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnDiff.php deleted file mode 100644 index 6c86e92..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnDiff.php +++ /dev/null @@ -1,141 +0,0 @@ -hasUnsignedChanged() - + (int) $this->hasAutoIncrementChanged() - + (int) $this->hasDefaultChanged() - + (int) $this->hasFixedChanged() - + (int) $this->hasPrecisionChanged() - + (int) $this->hasScaleChanged() - + (int) $this->hasLengthChanged() - + (int) $this->hasNotNullChanged() - + (int) $this->hasNameChanged() - + (int) $this->hasTypeChanged() - + (int) $this->hasPlatformOptionsChanged() - + (int) $this->hasCommentChanged(); - } - - public function getOldColumn(): Column - { - return $this->oldColumn; - } - - public function getNewColumn(): Column - { - return $this->newColumn; - } - - public function hasNameChanged(): bool - { - $oldColumn = $this->getOldColumn(); - - // Column names are case insensitive - return strcasecmp($oldColumn->getName(), $this->getNewColumn()->getName()) !== 0; - } - - public function hasTypeChanged(): bool - { - return $this->newColumn->getType()::class !== $this->oldColumn->getType()::class; - } - - public function hasLengthChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): ?int { - return $column->getLength(); - }); - } - - public function hasPrecisionChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): ?int { - return $column->getPrecision(); - }); - } - - public function hasScaleChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): int { - return $column->getScale(); - }); - } - - public function hasUnsignedChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): bool { - return $column->getUnsigned(); - }); - } - - public function hasFixedChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): bool { - return $column->getFixed(); - }); - } - - public function hasNotNullChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): bool { - return $column->getNotnull(); - }); - } - - public function hasDefaultChanged(): bool - { - $oldDefault = $this->oldColumn->getDefault(); - $newDefault = $this->newColumn->getDefault(); - - // Null values need to be checked additionally as they tell whether to create or drop a default value. - // null != 0, null != false, null != '' etc. This affects platform's table alteration SQL generation. - if (($newDefault === null) xor ($oldDefault === null)) { - return true; - } - - return $newDefault != $oldDefault; - } - - public function hasAutoIncrementChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): bool { - return $column->getAutoincrement(); - }); - } - - public function hasCommentChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): string { - return $column->getComment(); - }); - } - - public function hasPlatformOptionsChanged(): bool - { - return $this->hasPropertyChanged(static function (Column $column): array { - return $column->getPlatformOptions(); - }); - } - - private function hasPropertyChanged(callable $property): bool - { - return $property($this->newColumn) !== $property($this->oldColumn); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnEditor.php deleted file mode 100644 index 0e2e9e0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ColumnEditor.php +++ /dev/null @@ -1,271 +0,0 @@ - */ - private array $values = []; - - /** @var ?non-empty-string */ - private ?string $charset = null; - - /** @var ?non-empty-string */ - private ?string $collation = null; - - /** @var ?non-empty-string */ - private ?string $defaultConstraintName = null; - - /** @var ?non-empty-string */ - private ?string $columnDefinition = null; - - /** @internal Use {@link Column::editor()} or {@link Column::edit()} to create an instance */ - public function __construct() - { - } - - public function setName(UnqualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** @param non-empty-string $name */ - public function setUnquotedName(string $name): self - { - $this->name = UnqualifiedName::unquoted($name); - - return $this; - } - - /** @param non-empty-string $name */ - public function setQuotedName(string $name): self - { - $this->name = UnqualifiedName::quoted($name); - - return $this; - } - - public function setType(Type $type): self - { - $this->type = $type; - - return $this; - } - - /** @throws TypesException */ - public function setTypeName(string $typeName): self - { - $this->type = Type::getType($typeName); - - return $this; - } - - public function setLength(?int $length): self - { - $this->length = $length; - - return $this; - } - - public function setPrecision(?int $precision): self - { - $this->precision = $precision; - - return $this; - } - - public function setScale(int $scale): self - { - $this->scale = $scale; - - return $this; - } - - public function setUnsigned(bool $unsigned): self - { - $this->unsigned = $unsigned; - - return $this; - } - - public function setFixed(bool $fixed): self - { - $this->fixed = $fixed; - - return $this; - } - - public function setNotNull(bool $notNull): self - { - $this->notNull = $notNull; - - return $this; - } - - public function setDefaultValue(mixed $defaultValue): self - { - $this->defaultValue = $defaultValue; - - return $this; - } - - public function setMinimumValue(mixed $minimumValue): self - { - $this->minimumValue = $minimumValue; - - return $this; - } - - public function setMaximumValue(mixed $maximumValue): self - { - $this->maximumValue = $maximumValue; - - return $this; - } - - public function setAutoincrement(bool $flag): self - { - $this->autoincrement = $flag; - - return $this; - } - - public function setComment(string $comment): self - { - $this->comment = $comment; - - return $this; - } - - /** @param list $values */ - public function setValues(array $values): self - { - $this->values = $values; - - return $this; - } - - /** @param ?non-empty-string $charset */ - public function setCharset(?string $charset): self - { - $this->charset = $charset; - - return $this; - } - - /** @param ?non-empty-string $collation */ - public function setCollation(?string $collation): self - { - $this->collation = $collation; - - return $this; - } - - /** - * @internal Should be used only from within the {@see AbstractSchemaManager} class hierarchy. - * - * @param ?non-empty-string $defaultConstraintName - */ - public function setDefaultConstraintName(?string $defaultConstraintName): self - { - $this->defaultConstraintName = $defaultConstraintName; - - return $this; - } - - /** @param ?non-empty-string $columnDefinition */ - public function setColumnDefinition(?string $columnDefinition): self - { - $this->columnDefinition = $columnDefinition; - - return $this; - } - - public function create(): Column - { - if ($this->name === null) { - throw InvalidColumnDefinition::nameNotSpecified(); - } - - if ($this->type === null) { - throw InvalidColumnDefinition::dataTypeNotSpecified($this->name); - } - - $platformOptions = []; - - if ($this->charset !== null) { - $platformOptions['charset'] = $this->charset; - } - - if ($this->collation !== null) { - $platformOptions['collation'] = $this->collation; - } - - if ($this->minimumValue !== null) { - $platformOptions['min'] = $this->minimumValue; - } - - if ($this->maximumValue !== null) { - $platformOptions['max'] = $this->maximumValue; - } - - if ($this->defaultConstraintName !== null) { - $platformOptions[SQLServerPlatform::OPTION_DEFAULT_CONSTRAINT_NAME] = $this->defaultConstraintName; - } - - return new Column( - $this->name->toString(), - $this->type, - [ - 'length' => $this->length, - 'precision' => $this->precision, - 'scale' => $this->scale, - 'unsigned' => $this->unsigned, - 'fixed' => $this->fixed, - 'notnull' => $this->notNull, - 'default' => $this->defaultValue, - 'autoincrement' => $this->autoincrement, - 'comment' => $this->comment, - 'values' => $this->values, - 'platformOptions' => $platformOptions, - 'columnDefinition' => $this->columnDefinition, - ], - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Comparator.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Comparator.php deleted file mode 100644 index 6c06865..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Comparator.php +++ /dev/null @@ -1,457 +0,0 @@ -getNamespaces() as $newNamespace) { - if ($oldSchema->hasNamespace($newNamespace)) { - continue; - } - - $createdSchemas[] = $newNamespace; - } - - foreach ($oldSchema->getNamespaces() as $oldNamespace) { - if ($newSchema->hasNamespace($oldNamespace)) { - continue; - } - - $droppedSchemas[] = $oldNamespace; - } - - foreach ($newSchema->getTables() as $newTable) { - $newTableName = $newTable->getShortestName($newSchema->getName()); - if (! $oldSchema->hasTable($newTableName)) { - $createdTables[] = $newSchema->getTable($newTableName); - } else { - $tableDiff = $this->compareTables( - $oldSchema->getTable($newTableName), - $newSchema->getTable($newTableName), - ); - - if (! $tableDiff->isEmpty()) { - $alteredTables[] = $tableDiff; - } - } - } - - // Check if there are tables removed - foreach ($oldSchema->getTables() as $oldTable) { - $oldTableName = $oldTable->getShortestName($oldSchema->getName()); - - $oldTable = $oldSchema->getTable($oldTableName); - if ($newSchema->hasTable($oldTableName)) { - continue; - } - - $droppedTables[] = $oldTable; - } - - foreach ($newSchema->getSequences() as $newSequence) { - $newSequenceName = $newSequence->getShortestName($newSchema->getName()); - if (! $oldSchema->hasSequence($newSequenceName)) { - if (! $this->isAutoIncrementSequenceInSchema($oldSchema, $newSequence)) { - $createdSequences[] = $newSequence; - } - } else { - if ($this->diffSequence($newSequence, $oldSchema->getSequence($newSequenceName))) { - $alteredSequences[] = $newSchema->getSequence($newSequenceName); - } - } - } - - foreach ($oldSchema->getSequences() as $oldSequence) { - if ($this->isAutoIncrementSequenceInSchema($newSchema, $oldSequence)) { - continue; - } - - $oldSequenceName = $oldSequence->getShortestName($oldSchema->getName()); - - if ($newSchema->hasSequence($oldSequenceName)) { - continue; - } - - $droppedSequences[] = $oldSequence; - } - - return new SchemaDiff( - $createdSchemas, - $droppedSchemas, - $createdTables, - $alteredTables, - $droppedTables, - $createdSequences, - $alteredSequences, - $droppedSequences, - ); - } - - private function isAutoIncrementSequenceInSchema(Schema $schema, Sequence $sequence): bool - { - foreach ($schema->getTables() as $table) { - if ($sequence->isAutoIncrementsFor($table)) { - return true; - } - } - - return false; - } - - public function diffSequence(Sequence $sequence1, Sequence $sequence2): bool - { - if ($sequence1->getAllocationSize() !== $sequence2->getAllocationSize()) { - return true; - } - - return $sequence1->getInitialValue() !== $sequence2->getInitialValue(); - } - - /** - * Compares the tables and returns the difference between them. - */ - public function compareTables(Table $oldTable, Table $newTable): TableDiff - { - $shouldReportModifiedIndexes = $this->config->getReportModifiedIndexes(); - if ($shouldReportModifiedIndexes) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6890', - 'Detection of modified indexes is deprecated. Please disable it by configuring the comparator' - . ' using ComparatorConfig::withReportModifiedIndexes(false).', - ); - } - - $addedColumns = []; - $modifiedColumns = []; - $droppedColumns = []; - $addedIndexes = []; - $modifiedIndexes = []; - $droppedIndexes = []; - $renamedIndexes = []; - $addedForeignKeys = []; - $droppedForeignKeys = []; - - $oldColumns = $oldTable->getColumns(); - $newColumns = $newTable->getColumns(); - - // See if all the columns in the old table exist in the new table - foreach ($newColumns as $newColumn) { - $newColumnName = strtolower($newColumn->getName()); - - if ($oldTable->hasColumn($newColumnName)) { - continue; - } - - $addedColumns[$newColumnName] = $newColumn; - } - - // See if there are any removed columns in the new table - foreach ($oldColumns as $oldColumn) { - $oldColumnName = strtolower($oldColumn->getName()); - - // See if column is removed in the new table. - if (! $newTable->hasColumn($oldColumnName)) { - $droppedColumns[$oldColumnName] = $oldColumn; - - continue; - } - - $newColumn = $newTable->getColumn($oldColumnName); - - if ($this->columnsEqual($oldColumn, $newColumn)) { - continue; - } - - $modifiedColumns[$oldColumnName] = new ColumnDiff($oldColumn, $newColumn); - } - - $renamedColumnNames = $newTable->getRenamedColumns(); - - foreach ($addedColumns as $addedColumnName => $addedColumn) { - if (! isset($renamedColumnNames[$addedColumn->getName()])) { - continue; - } - - $removedColumnName = strtolower($renamedColumnNames[$addedColumn->getName()]); - // Explicitly renamed columns need to be diffed, because their types can also have changed - $modifiedColumns[$removedColumnName] = new ColumnDiff( - $droppedColumns[$removedColumnName], - $addedColumn, - ); - - unset( - $addedColumns[$addedColumnName], - $droppedColumns[$removedColumnName], - ); - } - - if ($this->config->getDetectRenamedColumns()) { - $this->detectRenamedColumns($modifiedColumns, $addedColumns, $droppedColumns); - } - - $oldIndexes = $oldTable->getIndexes(); - $newIndexes = $newTable->getIndexes(); - - // See if all the indexes from the old table exist in the new one - foreach ($newIndexes as $newIndexName => $newIndex) { - if (($newIndex->isPrimary() && $oldTable->getPrimaryKey() !== null) || $oldTable->hasIndex($newIndexName)) { - continue; - } - - $addedIndexes[$newIndexName] = $newIndex; - } - - // See if there are any removed indexes in the new table - foreach ($oldIndexes as $oldIndexName => $oldIndex) { - // See if the index is removed in the new table. - if ( - ($oldIndex->isPrimary() && $newTable->getPrimaryKey() === null) || - ! $oldIndex->isPrimary() && ! $newTable->hasIndex($oldIndexName) - ) { - $droppedIndexes[$oldIndexName] = $oldIndex; - - continue; - } - - // See if index has changed in the new table. - $newIndex = $oldIndex->isPrimary() ? $newTable->getPrimaryKey() : $newTable->getIndex($oldIndexName); - assert($newIndex instanceof Index); - - if (! $this->diffIndex($oldIndex, $newIndex)) { - continue; - } - - if ($shouldReportModifiedIndexes) { - $modifiedIndexes[] = $newIndex; - } else { - $droppedIndexes[$oldIndexName] = $oldIndex; - $addedIndexes[$oldIndexName] = $newIndex; - } - } - - if ($this->config->getDetectRenamedIndexes()) { - $renamedIndexes = $this->detectRenamedIndexes($addedIndexes, $droppedIndexes); - } - - $oldForeignKeys = $oldTable->getForeignKeys(); - $newForeignKeys = $newTable->getForeignKeys(); - - foreach ($oldForeignKeys as $oldKey => $oldForeignKey) { - foreach ($newForeignKeys as $newKey => $newForeignKey) { - if ($this->diffForeignKey($oldForeignKey, $newForeignKey) === false) { - unset($oldForeignKeys[$oldKey], $newForeignKeys[$newKey]); - } else { - if (strtolower($oldForeignKey->getName()) === strtolower($newForeignKey->getName())) { - $droppedForeignKeys[$oldKey] = $oldForeignKey; - $addedForeignKeys[$newKey] = $newForeignKey; - - unset($oldForeignKeys[$oldKey], $newForeignKeys[$newKey]); - } - } - } - } - - foreach ($oldForeignKeys as $oldForeignKey) { - $droppedForeignKeys[] = $oldForeignKey; - } - - foreach ($newForeignKeys as $newForeignKey) { - $addedForeignKeys[] = $newForeignKey; - } - - return new TableDiff( - $oldTable, - addedColumns: $addedColumns, - changedColumns: $modifiedColumns, - droppedColumns: $droppedColumns, - addedIndexes: $addedIndexes, - modifiedIndexes: $modifiedIndexes, - droppedIndexes: $droppedIndexes, - renamedIndexes: $renamedIndexes, - addedForeignKeys: $addedForeignKeys, - droppedForeignKeys: $droppedForeignKeys, - ); - } - - /** - * Try to find columns that only changed their name, rename operations maybe cheaper than add/drop - * however ambiguities between different possibilities should not lead to renaming at all. - * - * @param array $modifiedColumns - * @param array $addedColumns - * @param array $removedColumns - */ - private function detectRenamedColumns(array &$modifiedColumns, array &$addedColumns, array &$removedColumns): void - { - /** @var array>> $candidatesByName */ - $candidatesByName = []; - - foreach ($addedColumns as $addedColumnName => $addedColumn) { - foreach ($removedColumns as $removedColumn) { - if (! $this->columnsEqual($addedColumn, $removedColumn)) { - continue; - } - - $candidatesByName[$addedColumnName][] = [$removedColumn, $addedColumn]; - } - } - - foreach ($candidatesByName as $addedColumnName => $candidates) { - if (count($candidates) !== 1) { - continue; - } - - [$oldColumn, $newColumn] = $candidates[0]; - $oldColumnName = strtolower($oldColumn->getName()); - - if (isset($modifiedColumns[$oldColumnName])) { - continue; - } - - $modifiedColumns[$oldColumnName] = new ColumnDiff( - $oldColumn, - $newColumn, - ); - - unset( - $addedColumns[$addedColumnName], - $removedColumns[$oldColumnName], - ); - } - } - - /** - * Try to find indexes that only changed their name, rename operations maybe cheaper than add/drop - * however ambiguities between different possibilities should not lead to renaming at all. - * - * @param array $addedIndexes - * @param array $removedIndexes - * - * @return array - */ - private function detectRenamedIndexes(array &$addedIndexes, array &$removedIndexes): array - { - $candidatesByName = []; - - // Gather possible rename candidates by comparing each added and removed index based on semantics. - foreach ($addedIndexes as $addedIndexName => $addedIndex) { - foreach ($removedIndexes as $removedIndex) { - if ($this->diffIndex($addedIndex, $removedIndex)) { - continue; - } - - $candidatesByName[$addedIndex->getName()][] = [$removedIndex, $addedIndex, $addedIndexName]; - } - } - - $renamedIndexes = []; - - foreach ($candidatesByName as $candidates) { - // If the current rename candidate contains exactly one semantically equal index, - // we can safely rename it. - // Otherwise, it is unclear if a rename action is really intended, - // therefore we let those ambiguous indexes be added/dropped. - if (count($candidates) !== 1) { - continue; - } - - [$removedIndex, $addedIndex] = $candidates[0]; - - $removedIndexName = strtolower($removedIndex->getName()); - $addedIndexName = strtolower($addedIndex->getName()); - - if (isset($renamedIndexes[$removedIndexName])) { - continue; - } - - $renamedIndexes[$removedIndexName] = $addedIndex; - unset( - $addedIndexes[$addedIndexName], - $removedIndexes[$removedIndexName], - ); - } - - return $renamedIndexes; - } - - protected function diffForeignKey(ForeignKeyConstraint $key1, ForeignKeyConstraint $key2): bool - { - if ( - array_map('strtolower', $key1->getUnquotedLocalColumns()) - !== array_map('strtolower', $key2->getUnquotedLocalColumns()) - ) { - return true; - } - - if ( - array_map('strtolower', $key1->getUnquotedForeignColumns()) - !== array_map('strtolower', $key2->getUnquotedForeignColumns()) - ) { - return true; - } - - if ($key1->getUnqualifiedForeignTableName() !== $key2->getUnqualifiedForeignTableName()) { - return true; - } - - if ($key1->onUpdate() !== $key2->onUpdate()) { - return true; - } - - return $key1->onDelete() !== $key2->onDelete(); - } - - /** - * Compares the definitions of the given columns - */ - protected function columnsEqual(Column $column1, Column $column2): bool - { - return $this->platform->columnsEqual($column1, $column2); - } - - /** - * Finds the difference between the indexes $index1 and $index2. - * - * Compares $index1 with $index2 and returns true if there are any - * differences or false in case there are no differences. - */ - protected function diffIndex(Index $index1, Index $index2): bool - { - return ! ($index1->isFulfilledBy($index2) && $index2->isFulfilledBy($index1)); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ComparatorConfig.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ComparatorConfig.php deleted file mode 100644 index c303cdc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ComparatorConfig.php +++ /dev/null @@ -1,58 +0,0 @@ -detectRenamedIndexes, - $this->reportModifiedIndexes, - ); - } - - public function getDetectRenamedColumns(): bool - { - return $this->detectRenamedColumns; - } - - public function withDetectRenamedIndexes(bool $detectRenamedIndexes): self - { - return new self( - $this->detectRenamedColumns, - $detectRenamedIndexes, - $this->reportModifiedIndexes, - ); - } - - public function getDetectRenamedIndexes(): bool - { - return $this->detectRenamedIndexes; - } - - public function withReportModifiedIndexes(bool $reportModifiedIndexes): self - { - return new self( - $this->detectRenamedColumns, - $this->detectRenamedIndexes, - $reportModifiedIndexes, - ); - } - - /** @internal This method is intended solely to provide an upgrade path to DBAL 5.0. */ - public function getReportModifiedIndexes(): bool - { - return $this->reportModifiedIndexes; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/DB2SchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/DB2SchemaManager.php deleted file mode 100644 index 03be0ba..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/DB2SchemaManager.php +++ /dev/null @@ -1,374 +0,0 @@ - - */ -class DB2SchemaManager extends AbstractSchemaManager -{ - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $tableColumn = array_change_key_case($tableColumn, CASE_LOWER); - - $length = $precision = $default = null; - $scale = 0; - $fixed = false; - - if ($tableColumn['default'] !== null && $tableColumn['default'] !== 'NULL') { - $default = $tableColumn['default']; - - if (preg_match('/^\'(.*)\'$/s', $default, $matches) === 1) { - $default = str_replace("''", "'", $matches[1]); - } - } - - $type = $this->platform->getDoctrineTypeMapping($tableColumn['typename']); - - switch (strtolower($tableColumn['typename'])) { - case 'varchar': - if ($tableColumn['codepage'] === 0) { - $type = Types::BINARY; - } - - $length = $tableColumn['length']; - break; - - case 'character': - if ($tableColumn['codepage'] === 0) { - $type = Types::BINARY; - } - - $length = $tableColumn['length']; - $fixed = true; - break; - - case 'clob': - $length = $tableColumn['length']; - break; - - case 'decimal': - case 'double': - case 'real': - $scale = $tableColumn['scale']; - $precision = $tableColumn['length']; - break; - } - - $options = [ - 'length' => $length, - 'fixed' => $fixed, - 'default' => $default, - 'autoincrement' => (bool) $tableColumn['autoincrement'], - 'notnull' => $tableColumn['nulls'] === 'N', - ]; - - if ($tableColumn['comment'] !== null) { - $options['comment'] = $tableColumn['comment']; - } - - if ($scale !== null && $precision !== null) { - $options['scale'] = $scale; - $options['precision'] = $precision; - } - - return new Column($tableColumn['colname'], Type::getType($type), $options); - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - $table = array_change_key_case($table, CASE_LOWER); - - return $table['name']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - foreach ($rows as &$row) { - $row = array_change_key_case($row, CASE_LOWER); - $row['primary'] = (bool) $row['primary']; - } - - return parent::_getPortableTableIndexesList($rows, $tableName); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - return new ForeignKeyConstraint( - $tableForeignKey['local_columns'], - $tableForeignKey['foreign_table'], - $tableForeignKey['foreign_columns'], - $tableForeignKey['name'], - $tableForeignKey['options'], - ); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $foreignKeys = []; - - foreach ($rows as $tableForeignKey) { - $tableForeignKey = array_change_key_case($tableForeignKey, CASE_LOWER); - - if (! isset($foreignKeys[$tableForeignKey['index_name']])) { - $foreignKeys[$tableForeignKey['index_name']] = [ - 'local_columns' => [$tableForeignKey['local_column']], - 'foreign_table' => $tableForeignKey['foreign_table'], - 'foreign_columns' => [$tableForeignKey['foreign_column']], - 'name' => $tableForeignKey['index_name'], - 'options' => [ - 'onUpdate' => $tableForeignKey['on_update'], - 'onDelete' => $tableForeignKey['on_delete'], - ], - ]; - } else { - $foreignKeys[$tableForeignKey['index_name']]['local_columns'][] = $tableForeignKey['local_column']; - $foreignKeys[$tableForeignKey['index_name']]['foreign_columns'][] = $tableForeignKey['foreign_column']; - } - } - - return parent::_getPortableTableForeignKeysList($foreignKeys); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - $view = array_change_key_case($view, CASE_LOWER); - - $sql = ''; - $pos = strpos($view['text'], ' AS '); - - if ($pos !== false) { - $sql = substr($view['text'], $pos + 4); - } - - return new View($view['name'], $sql); - } - - /** @deprecated Use {@see Identifier::toNormalizedValue()} instead. */ - protected function normalizeName(string $name): string - { - $identifier = new Identifier($name); - - return $identifier->isQuoted() ? $identifier->getName() : strtoupper($name); - } - - protected function selectTableNames(string $databaseName): Result - { - $sql = <<<'SQL' -SELECT TABNAME AS NAME -FROM SYSCAT.TABLES -WHERE TYPE = 'T' - AND TABSCHEMA = ? -SQL; - - return $this->connection->executeQuery($sql, [$databaseName]); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['C.TABSCHEMA = ?']; - $params = [$databaseName]; - - if ($tableName !== null) { - $conditions[] = 'C.TABNAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' -SELECT - C.TABNAME AS NAME, - C.COLNAME, - C.TYPENAME, - C.CODEPAGE, - C.NULLS, - C.LENGTH, - C.SCALE, - C.REMARKS AS COMMENT, - CASE - WHEN C.GENERATED = 'D' THEN 1 - ELSE 0 - END AS AUTOINCREMENT, - C.DEFAULT -FROM SYSCAT.COLUMNS C - JOIN SYSCAT.TABLES AS T - ON T.TABSCHEMA = C.TABSCHEMA - AND T.TABNAME = C.TABNAME - WHERE %s - AND T.TYPE = 'T' -ORDER BY C.TABNAME, C.COLNO -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['IDX.TABSCHEMA = ?']; - $params = [$databaseName]; - - if ($tableName !== null) { - $conditions[] = 'IDX.TABNAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT - IDX.TABNAME AS NAME, - IDX.INDNAME AS KEY_NAME, - IDXCOL.COLNAME AS COLUMN_NAME, - CASE - WHEN IDX.UNIQUERULE = 'P' THEN 1 - ELSE 0 - END AS PRIMARY, - CASE - WHEN IDX.UNIQUERULE = 'D' THEN 1 - ELSE 0 - END AS NON_UNIQUE - FROM SYSCAT.INDEXES AS IDX - JOIN SYSCAT.TABLES AS T - ON IDX.TABSCHEMA = T.TABSCHEMA AND IDX.TABNAME = T.TABNAME - JOIN SYSCAT.INDEXCOLUSE AS IDXCOL - ON IDX.INDSCHEMA = IDXCOL.INDSCHEMA AND IDX.INDNAME = IDXCOL.INDNAME - WHERE %s - AND T.TYPE = 'T' - ORDER BY IDX.TABNAME, - IDX.INDNAME, - IDXCOL.COLSEQ -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['R.TABSCHEMA = ?']; - $params = [$databaseName]; - - if ($tableName !== null) { - $conditions[] = 'R.TABNAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT - R.TABNAME AS NAME, - FKCOL.COLNAME AS LOCAL_COLUMN, - R.REFTABNAME AS FOREIGN_TABLE, - PKCOL.COLNAME AS FOREIGN_COLUMN, - R.CONSTNAME AS INDEX_NAME, - CASE - WHEN R.UPDATERULE = 'R' THEN 'RESTRICT' - END AS ON_UPDATE, - CASE - WHEN R.DELETERULE = 'C' THEN 'CASCADE' - WHEN R.DELETERULE = 'N' THEN 'SET NULL' - WHEN R.DELETERULE = 'R' THEN 'RESTRICT' - END AS ON_DELETE - FROM SYSCAT.REFERENCES AS R - JOIN SYSCAT.TABLES AS T - ON T.TABSCHEMA = R.TABSCHEMA - AND T.TABNAME = R.TABNAME - JOIN SYSCAT.KEYCOLUSE AS FKCOL - ON FKCOL.CONSTNAME = R.CONSTNAME - AND FKCOL.TABSCHEMA = R.TABSCHEMA - AND FKCOL.TABNAME = R.TABNAME - JOIN SYSCAT.KEYCOLUSE AS PKCOL - ON PKCOL.CONSTNAME = R.REFKEYNAME - AND PKCOL.TABSCHEMA = R.REFTABSCHEMA - AND PKCOL.TABNAME = R.REFTABNAME - AND PKCOL.COLSEQ = FKCOL.COLSEQ - WHERE %s - AND T.TYPE = 'T' - ORDER BY R.TABNAME, - R.CONSTNAME, - FKCOL.COLSEQ -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - $conditions = ['TABSCHEMA = ?']; - $params = [$databaseName]; - - if ($tableName !== null) { - $conditions[] = 'TABNAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT TABNAME, - REMARKS - FROM SYSCAT.TABLES - WHERE %s - AND TYPE = 'T' - ORDER BY TABNAME -SQL, - implode(' AND ', $conditions), - ); - - $tableOptions = []; - foreach ($this->connection->iterateKeyValue($sql, $params) as $table => $remarks) { - $tableOptions[$table] = ['comment' => $remarks]; - } - - return $tableOptions; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php deleted file mode 100644 index efba87f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php +++ /dev/null @@ -1,20 +0,0 @@ -getDatabasePlatform()->createSchemaManager($connection); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ColumnAlreadyExists.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ColumnAlreadyExists.php deleted file mode 100644 index c9bc82b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/ColumnAlreadyExists.php +++ /dev/null @@ -1,18 +0,0 @@ -toString())); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidForeignKeyConstraintDefinition.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidForeignKeyConstraintDefinition.php deleted file mode 100644 index 427cbdf..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidForeignKeyConstraintDefinition.php +++ /dev/null @@ -1,43 +0,0 @@ -' : $constraintName->toString(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidIdentifier.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidIdentifier.php deleted file mode 100644 index dc10cbc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidIdentifier.php +++ /dev/null @@ -1,16 +0,0 @@ -toString())); - } - - public static function fromNonPositiveColumnLength(UnqualifiedName $columnName, int $length): self - { - return new self(sprintf( - 'Indexed column length must be a positive integer, %d given for column %s.', - $length, - $columnName->toString(), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidName.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidName.php deleted file mode 100644 index 5053766..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidName.php +++ /dev/null @@ -1,16 +0,0 @@ -toString())); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableModification.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableModification.php deleted file mode 100644 index 0465ac4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableModification.php +++ /dev/null @@ -1,184 +0,0 @@ -getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function columnDoesNotExist( - ?OptionallyQualifiedName $tableName, - ObjectDoesNotExist $previous, - ): self { - return new self(sprintf( - 'Column %s does not exist on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function indexAlreadyExists( - ?OptionallyQualifiedName $tableName, - ObjectAlreadyExists $previous, - ): self { - return new self(sprintf( - 'Index %s already exists on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function indexDoesNotExist( - ?OptionallyQualifiedName $tableName, - ObjectDoesNotExist $previous, - ): self { - return new self(sprintf( - 'Index %s does not exist on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function primaryKeyConstraintAlreadyExists(?OptionallyQualifiedName $tableName): self - { - return new self(sprintf( - 'Primary key constraint already exists on table %s.', - self::formatTableName($tableName), - )); - } - - public static function primaryKeyConstraintDoesNotExist(?OptionallyQualifiedName $tableName): self - { - return new self(sprintf( - 'Primary key constraint does not exist on table %s.', - self::formatTableName($tableName), - )); - } - - public static function uniqueConstraintAlreadyExists( - ?OptionallyQualifiedName $tableName, - ObjectAlreadyExists $previous, - ): self { - return new self(sprintf( - 'Unique constraint %s already exists on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function uniqueConstraintDoesNotExist( - ?OptionallyQualifiedName $tableName, - ObjectDoesNotExist $previous, - ): self { - return new self(sprintf( - 'Unique constraint %s does not exist on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function foreignKeyConstraintAlreadyExists( - ?OptionallyQualifiedName $tableName, - ObjectAlreadyExists $previous, - ): self { - return new self(sprintf( - 'Foreign key constraint %s already exists on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function foreignKeyConstraintDoesNotExist( - ?OptionallyQualifiedName $tableName, - ObjectDoesNotExist $previous, - ): self { - return new self(sprintf( - 'Foreign key constraint %s does not exist on table %s.', - $previous->getObjectName()->toString(), - self::formatTableName($tableName), - ), previous: $previous); - } - - public static function indexedColumnDoesNotExist( - ?OptionallyQualifiedName $tableName, - UnqualifiedName $indexName, - UnqualifiedName $columnName, - ): self { - return new self(sprintf( - 'Column %s referenced by index %s does not exist on table %s.', - $columnName->toString(), - $indexName->toString(), - self::formatTableName($tableName), - )); - } - - public static function primaryKeyConstraintColumnDoesNotExist( - ?OptionallyQualifiedName $tableName, - ?UnqualifiedName $constraintName, - UnqualifiedName $columnName, - ): self { - return new self(sprintf( - 'Column %s referenced by primary key constraint %s does not exist on table %s.', - $columnName->toString(), - self::formatConstraintName($constraintName), - self::formatTableName($tableName), - )); - } - - public static function uniqueConstraintColumnDoesNotExist( - ?OptionallyQualifiedName $tableName, - ?UnqualifiedName $constraintName, - UnqualifiedName $columnName, - ): self { - return new self(sprintf( - 'Column %s referenced by unique constraint %s does not exist on table %s.', - $columnName->toString(), - self::formatConstraintName($constraintName), - self::formatTableName($tableName), - )); - } - - public static function foreignKeyConstraintReferencingColumnDoesNotExist( - ?OptionallyQualifiedName $tableName, - ?UnqualifiedName $constraintName, - UnqualifiedName $columnName, - ): self { - return new self(sprintf( - 'Referencing column %s of foreign key constraint %s does not exist on table %s.', - $columnName->toString(), - self::formatConstraintName($constraintName), - self::formatTableName($tableName), - )); - } - - private static function formatTableName(?OptionallyQualifiedName $tableName): string - { - return $tableName === null ? '' : $tableName->toString(); - } - - private static function formatConstraintName(?UnqualifiedName $constraintName): string - { - return $constraintName === null ? '' : $constraintName->toString(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableName.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableName.php deleted file mode 100644 index 0433b0c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/InvalidTableName.php +++ /dev/null @@ -1,18 +0,0 @@ -' : $constraintName->toString(), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/NamespaceAlreadyExists.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/NamespaceAlreadyExists.php deleted file mode 100644 index 2bad735..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Exception/NamespaceAlreadyExists.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @final This class will be made final in DBAL 5.0. - */ -class ForeignKeyConstraint extends AbstractOptionallyNamedObject -{ - /** - * Asset identifier instances of the referencing table column names the foreign key constraint is associated with. - * - * @deprecated - * - * @var non-empty-array - */ - protected array $_localColumnNames; - - /** - * Table or asset identifier instance of the referenced table name the foreign key constraint is associated with. - * - * @deprecated - */ - protected Identifier $_foreignTableName; - - /** - * Asset identifier instances of the referenced table column names the foreign key constraint is associated with. - * - * @deprecated - * - * @var non-empty-array - */ - protected array $_foreignColumnNames; - - /** - * Options associated with the foreign key constraint. - * - * @deprecated - * - * @var array - */ - protected array $options; - - /** - * Referencing table column names the foreign key constraint is associated with. - * - * An empty list indicates that an attempt to parse column names failed. - * - * @var list - */ - private readonly array $referencingColumnNames; - - /** - * Referenced table name the foreign key constraint is associated with. - * - * A null value indicates that an attempt to parse the table name failed. - */ - private readonly ?OptionallyQualifiedName $referencedTableName; - - /** - * Referenced table column names the foreign key constraint is associated with. - * - * An empty list indicates that an attempt to parse column names failed. - * - * @var list - */ - private readonly array $referencedColumnNames; - - /** - * The match type of the foreign key constraint. - * - * A null value indicates that an attempt to parse the match type failed. - */ - private readonly ?MatchType $matchType; - - /** - * The referential action for UPDATE operations. - * - * A null value indicates that an attempt to parse the referential action failed. - */ - private readonly ?ReferentialAction $onUpdateAction; - - /** - * The referential action for DELETE operations. - * - * A null value indicates that an attempt to parse the referential action failed. - */ - private readonly ?ReferentialAction $onDeleteAction; - - /** - * Indicates whether the constraint is or can be deferred. - * - * A null value indicates that the combination of the options that defined deferrability was invalid. - */ - private readonly ?Deferrability $deferrability; - - /** - * @internal Use {@link ForeignKeyConstraint::editor()} to instantiate an editor and - * {@link ForeignKeyConstraintEditor::create()} to create a foreign key constraint. - * - * @param non-empty-list $localColumnNames Names of the referencing table columns. - * @param string $foreignTableName Referenced table. - * @param non-empty-list $foreignColumnNames Names of the referenced table columns. - * @param string $name Name of the foreign key constraint. - * @param array $options Options associated with the foreign key constraint. - */ - public function __construct( - array $localColumnNames, - string $foreignTableName, - array $foreignColumnNames, - string $name = '', - array $options = [], - ) { - $this->options = $options; - - if (count($localColumnNames) < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Instantiation of a foreign key constraint without local column names is deprecated.', - ); - } - - if (count($foreignColumnNames) < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Instantiation of a foreign key constraint without foreign column names is deprecated.', - ); - } - - if (count($foreignColumnNames) !== count($localColumnNames)) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Instantiation of a foreign key constraint with a different number of local and foreign' - . ' column names is deprecated.', - ); - } - - parent::__construct($name); - - $this->_localColumnNames = $this->createIdentifierMap($localColumnNames); - $this->_foreignTableName = new Identifier($foreignTableName); - - $this->_foreignColumnNames = $this->createIdentifierMap($foreignColumnNames); - - $this->referencingColumnNames = $this->parseColumnNames($localColumnNames); - $this->referencedTableName = $this->parseReferencedTableName($foreignTableName); - $this->referencedColumnNames = $this->parseColumnNames($foreignColumnNames); - - $this->matchType = $this->parseMatchType($options); - $this->onUpdateAction = $this->parseReferentialAction($options, 'onUpdate'); - $this->onDeleteAction = $this->parseReferentialAction($options, 'onDelete'); - - $this->deferrability = $this->parseDeferrability($options); - } - - protected function getNameParser(): UnqualifiedNameParser - { - return Parsers::getUnqualifiedNameParser(); - } - - /** - * Returns the names of the referencing table columns the foreign key constraint is associated with. - * - * @return non-empty-list - */ - public function getReferencingColumnNames(): array - { - if (count($this->referencingColumnNames) < 1) { - throw InvalidState::foreignKeyConstraintHasInvalidReferencingColumnNames($this->getName()); - } - - return $this->referencingColumnNames; - } - - /** - * Returns the names of the referenced table columns the foreign key constraint is associated with. - */ - public function getReferencedTableName(): OptionallyQualifiedName - { - if ($this->referencedTableName === null) { - throw InvalidState::foreignKeyConstraintHasInvalidReferencedTableName($this->getName()); - } - - return $this->referencedTableName; - } - - /** - * Returns the names of the referenced table columns the foreign key constraint is associated with. - * - * @return non-empty-list - */ - public function getReferencedColumnNames(): array - { - if (count($this->referencedColumnNames) < 1) { - throw InvalidState::foreignKeyConstraintHasInvalidReferencedColumnNames($this->getName()); - } - - return $this->referencedColumnNames; - } - - /** - * Returns the match type of the foreign key constraint. - */ - public function getMatchType(): MatchType - { - if ($this->matchType === null) { - throw InvalidState::foreignKeyConstraintHasInvalidMatchType($this->getName()); - } - - return $this->matchType; - } - - /** - * Returns the referential action for UPDATE operations. - */ - public function getOnUpdateAction(): ReferentialAction - { - if ($this->onUpdateAction === null) { - throw InvalidState::foreignKeyConstraintHasInvalidOnUpdateAction($this->getName()); - } - - return $this->onUpdateAction; - } - - /** - * Returns the referential action for DELETE operations. - */ - public function getOnDeleteAction(): ReferentialAction - { - if ($this->onDeleteAction === null) { - throw InvalidState::foreignKeyConstraintHasInvalidOnDeleteAction($this->getName()); - } - - return $this->onDeleteAction; - } - - /** - * Returns whether the constraint is or can be deferred. - */ - public function getDeferrability(): Deferrability - { - if ($this->deferrability === null) { - throw InvalidState::foreignKeyConstraintHasInvalidDeferrability($this->getName()); - } - - return $this->deferrability; - } - - /** - * @param non-empty-array $names - * - * @return non-empty-array - */ - private function createIdentifierMap(array $names): array - { - $identifiers = []; - - foreach ($names as $name) { - $identifiers[$name] = new Identifier($name); - } - - return $identifiers; - } - - /** - * Returns the names of the referencing table columns - * the foreign key constraint is associated with. - * - * @deprecated Use {@see getReferencingColumnNames()} instead. - * - * @return non-empty-list - */ - public function getLocalColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencingColumnNames() instead.', - __METHOD__, - ); - - return array_keys($this->_localColumnNames); - } - - /** - * @deprecated Use {@see getReferencingColumnNames()} and {@see UnqualifiedName::toSQL()} instead. - * - * Returns the quoted representation of the referencing table column names - * the foreign key constraint is associated with. - * - * But only if they were defined with one or the referencing table column name - * is a keyword reserved by the platform. - * Otherwise the plain unquoted value as inserted is returned. - * - * @param AbstractPlatform $platform The platform to use for quotation. - * - * @return non-empty-array - */ - public function getQuotedLocalColumns(AbstractPlatform $platform): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencingColumnNames() and UnqualifiedName::toSQL() instead.', - __METHOD__, - ); - - $columns = []; - - foreach ($this->_localColumnNames as $column) { - $columns[] = $column->getQuotedName($platform); - } - - return $columns; - } - - /** - * @deprecated Use {@see getReferencingColumnNames()} instead. - * - * Returns unquoted representation of local table column names for comparison with other FK - * - * @return non-empty-array - */ - public function getUnquotedLocalColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencingColumnNames() instead.', - __METHOD__, - ); - - return array_map($this->trimQuotes(...), $this->getLocalColumns()); - } - - /** - * @deprecated Use {@see getReferencedColumnNames()} instead. - * - * Returns unquoted representation of foreign table column names for comparison with other FK - * - * @return non-empty-array - */ - public function getUnquotedForeignColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedColumnNames() instead.', - __METHOD__, - ); - - return array_map($this->trimQuotes(...), $this->getForeignColumns()); - } - - /** - * @deprecated Use {@see getReferencedTableName()} instead. - * - * Returns the name of the referenced table - * the foreign key constraint is associated with. - */ - public function getForeignTableName(): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedTableName() instead.', - __METHOD__, - ); - - return $this->_foreignTableName->getName(); - } - - /** - * @deprecated Use {@see getReferencedTableName()} instead. - * - * Returns the non-schema qualified foreign table name. - */ - public function getUnqualifiedForeignTableName(): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedTableName() instead.', - __METHOD__, - ); - - $name = $this->_foreignTableName->getName(); - $position = strrpos($name, '.'); - - if ($position !== false) { - $name = substr($name, $position + 1); - } - - if ($this->isIdentifierQuoted($name)) { - $name = $this->trimQuotes($name); - } - - return strtolower($name); - } - - /** - * @deprecated Use {@see getReferencedTableName()} and {@see OptionallyQualifiedName::toSQL()} instead. - * - * Returns the quoted representation of the referenced table name - * the foreign key constraint is associated with. - * - * But only if it was defined with one or the referenced table name - * is a keyword reserved by the platform. - * Otherwise the plain unquoted value as inserted is returned. - * - * @param AbstractPlatform $platform The platform to use for quotation. - */ - public function getQuotedForeignTableName(AbstractPlatform $platform): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedTableName() and OptionallyQualifiedName::toSQL() instead.', - __METHOD__, - ); - - return $this->_foreignTableName->getQuotedName($platform); - } - - /** - * @deprecated Use {@see getReferencedColumnNames()} instead. - * - * Returns the names of the referenced table columns - * the foreign key constraint is associated with. - * - * @return non-empty-array - */ - public function getForeignColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedColumnNames() instead.', - __METHOD__, - ); - - return array_keys($this->_foreignColumnNames); - } - - /** - * @deprecated Use {@see getReferencedColumnNames()} and {@see UnqualifiedName::toSQL()} instead. - * - * Returns the quoted representation of the referenced table column names - * the foreign key constraint is associated with. - * - * But only if they were defined with one or the referenced table column name - * is a keyword reserved by the platform. - * Otherwise the plain unquoted value as inserted is returned. - * - * @param AbstractPlatform $platform The platform to use for quotation. - * - * @return non-empty-array - */ - public function getQuotedForeignColumns(AbstractPlatform $platform): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getReferencedColumnNames() and UnqualifiedName::toSQL() instead.', - __METHOD__, - ); - - $columns = []; - - foreach ($this->_foreignColumnNames as $column) { - $columns[] = $column->getQuotedName($platform); - } - - return $columns; - } - - /** - * @deprecated Use {@see getMatchType()}, {@see getOnDeleteAction()}, {@see getOnUpdateAction()} or - * {@see getDeferrability()} instead. - * - * Returns whether or not a given option - * is associated with the foreign key constraint. - */ - public function hasOption(string $name): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getMatchType(), getOnDeleteAction(), getOnUpdateAction() or' - . ' getDeferrability() instead.', - __METHOD__, - ); - - return isset($this->options[$name]); - } - - /** - * @deprecated Use {@see getMatchType()}, {@see getOnDeleteAction()}, {@see getOnUpdateAction()} or - * {@see getDeferrability()} instead. - * - * Returns an option associated with the foreign key constraint. - */ - public function getOption(string $name): mixed - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getMatchType(), getOnDeleteAction(), getOnUpdateAction() or' - . ' getDeferrability() instead.', - __METHOD__, - ); - - return $this->options[$name]; - } - - /** - * @deprecated Use {@see getMatchType()}, {@see getOnDeleteAction()}, {@see getOnUpdateAction()} or - * {@see getDeferrability()} instead. - * - * Returns the options associated with the foreign key constraint. - * - * @return array - */ - public function getOptions(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getMatchType(), getOnDeleteAction(), getOnUpdateAction() or' - . ' getDeferrability() instead.', - __METHOD__, - ); - - return $this->options; - } - - /** - * @deprecated Use {@see getOnUpdateAction()} instead. - * - * Returns the referential action for UPDATE operations - * on the referenced table the foreign key constraint is associated with. - */ - public function onUpdate(): ?string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getOnUpdateAction() instead.', - __METHOD__, - ); - - return $this->onEvent('onUpdate'); - } - - /** - * @deprecated Use {@see getOnDeleteAction()} instead. - * - * Returns the referential action for DELETE operations - * on the referenced table the foreign key constraint is associated with. - */ - public function onDelete(): ?string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated. Use getOnDeleteAction() instead.', - __METHOD__, - ); - - return $this->onEvent('onDelete'); - } - - private function parseReferencedTableName(string $referencedTableName): ?OptionallyQualifiedName - { - $parser = Parsers::getOptionallyQualifiedNameParser(); - - try { - return $parser->parse($referencedTableName); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Unable to parse referenced table name: %s.', - $e->getMessage(), - ); - - return null; - } - } - - /** - * @param list $columnNames - * - * @return list - */ - private function parseColumnNames(array $columnNames): array - { - $parser = Parsers::getUnqualifiedNameParser(); - - try { - return array_map( - static fn (string $columnName) => $parser->parse($columnName), - $columnNames, - ); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Unable to parse column name: %s.', - $e->getMessage(), - ); - - return []; - } - } - - /** @param array $options */ - private function parseMatchType(array $options): ?MatchType - { - if (isset($options['match'])) { - try { - /** - * This looks like a PHPStan bug. - * - * @phpstan-ignore missingType.checkedException - */ - return MatchType::from(strtoupper($options['match'])); - } catch (ValueError $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Unable to parse match type: %s.', - $e->getMessage(), - ); - - return null; - } - } - - return MatchType::SIMPLE; - } - - /** @param array $options */ - private function parseReferentialAction(array $options, string $option): ?ReferentialAction - { - if (isset($options[$option])) { - try { - /** - * This looks like a PHPStan bug. - * - * @phpstan-ignore missingType.checkedException - */ - return ReferentialAction::from(strtoupper($options[$option])); - } catch (ValueError $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Unable to parse referential action: %s.', - $e->getMessage(), - ); - - return null; - } - } - - return ReferentialAction::NO_ACTION; - } - - /** @param array $options */ - private function parseDeferrability(array $options): ?Deferrability - { - // a constraint is INITIALLY IMMEDIATE unless explicitly declared as INITIALLY DEFERRED - $isDeferred = isset($options['deferred']) && $options['deferred'] !== false; - - // a constraint is NOT DEFERRABLE unless explicitly declared as DEFERRABLE or is explicitly or implicitly - // INITIALLY DEFERRED - $isDeferrable = isset($options['deferrable']) - ? $options['deferrable'] !== false - : $isDeferred; - - if ($isDeferred) { - if (! $isDeferrable) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - 'Declaring a constraint as NOT DEFERRABLE INITIALLY DEFERRED is deprecated', - ); - - return null; - } - - return Deferrability::DEFERRED; - } - - return $isDeferrable ? Deferrability::DEFERRABLE : Deferrability::NOT_DEFERRABLE; - } - - /** - * Returns the referential action for a given database operation - * on the referenced table the foreign key constraint is associated with. - * - * @param string $event Name of the database operation/event to return the referential action for. - */ - private function onEvent(string $event): ?string - { - if (isset($this->options[$event])) { - $onEvent = strtoupper($this->options[$event]); - - if ($onEvent !== 'NO ACTION' && $onEvent !== 'RESTRICT') { - return $onEvent; - } - } - - return null; - } - - /** - * @deprecated - * - * Checks whether this foreign key constraint intersects the given index columns. - * - * Returns `true` if at least one of this foreign key's local columns - * matches one of the given index's columns, `false` otherwise. - * - * @param Index $index The index to be checked against. - */ - public function intersectsIndexColumns(Index $index): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6728', - '%s is deprecated.', - __METHOD__, - ); - - foreach ($index->getColumns() as $indexColumn) { - foreach ($this->_localColumnNames as $localColumn) { - if (strtolower($indexColumn) === strtolower($localColumn->getName())) { - return true; - } - } - } - - return false; - } - - /** - * Instantiates a new foreign key constraint editor. - */ - public static function editor(): ForeignKeyConstraintEditor - { - return new ForeignKeyConstraintEditor(); - } - - /** - * Instantiates a new foreign key constraint editor and initializes it with the constraint's properties. - */ - public function edit(): ForeignKeyConstraintEditor - { - return self::editor() - ->setName($this->getObjectName()) - ->setReferencedTableName($this->getReferencedTableName()) - ->setReferencingColumnNames(...$this->getReferencingColumnNames()) - ->setReferencedColumnNames(...$this->getReferencedColumnNames()) - ->setMatchType($this->getMatchType()) - ->setOnDeleteAction($this->getOnDeleteAction()) - ->setOnUpdateAction($this->getOnUpdateAction()) - ->setDeferrability($this->getDeferrability()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/Deferrability.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/Deferrability.php deleted file mode 100644 index 4bd09b9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/Deferrability.php +++ /dev/null @@ -1,23 +0,0 @@ -value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/MatchType.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/MatchType.php deleted file mode 100644 index be67fda..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/MatchType.php +++ /dev/null @@ -1,33 +0,0 @@ -" - * @link https://dev.mysql.com/doc/refman/8.4/en/constraint-foreign-key.html - * @link https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES - * @link https://www.sqlite.org/foreignkeys.html - */ -enum MatchType: string -{ - case FULL = 'FULL'; - case PARTIAL = 'PARTIAL'; - - /** - * The SIMPLE match type is not part of the SQL-92 standard but is supported by and is the default - * for MySQL, PostgreSQL and SQLite. - */ - case SIMPLE = 'SIMPLE'; - - /** - * Returns the SQL representation of the match type. - */ - public function toSQL(): string - { - return $this->value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/ReferentialAction.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/ReferentialAction.php deleted file mode 100644 index b565807..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraint/ReferentialAction.php +++ /dev/null @@ -1,38 +0,0 @@ -" - * @link https://dev.mysql.com/doc/refman/8.4/en/constraint-foreign-key.html - * @link https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES - * @link https://learn.microsoft.com/en-us/sql/relational-databases/tables/primary-and-foreign-key-constraints#cascading-referential-integrity - * @link https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/constraint.html - * @link https://www.ibm.com/docs/en/db2/11.5?topic=constraints-foreign-key-referential - * @link https://www.sqlite.org/foreignkeys.html - */ -enum ReferentialAction: string -{ - case CASCADE = 'CASCADE'; - case NO_ACTION = 'NO ACTION'; - case SET_DEFAULT = 'SET DEFAULT'; - case SET_NULL = 'SET NULL'; - - /** - * The RESTRICT referential action is not part of the SQL-92 standard but is supported by MySQL, - * PostgreSQL, IBM DB2 and SQLite. - */ - case RESTRICT = 'RESTRICT'; - - /** - * Returns the SQL representation of the referential action. - */ - public function toSQL(): string - { - return $this->value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraintEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraintEditor.php deleted file mode 100644 index 2a8e4c8..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/ForeignKeyConstraintEditor.php +++ /dev/null @@ -1,261 +0,0 @@ - */ - private array $referencingColumnNames = []; - - private ?OptionallyQualifiedName $referencedTableName = null; - - /** @var list */ - private array $referencedColumnNames = []; - - private MatchType $matchType = MatchType::SIMPLE; - - private ReferentialAction $onUpdateAction = ReferentialAction::NO_ACTION; - - private ReferentialAction $onDeleteAction = ReferentialAction::NO_ACTION; - - private Deferrability $deferrability = Deferrability::NOT_DEFERRABLE; - - /** - * @internal Use {@link ForeignKeyConstraint::editor()} or {@link ForeignKeyConstraint::edit()} to create - * an instance. - */ - public function __construct() - { - } - - public function setName(?UnqualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** @param non-empty-string $name */ - public function setUnquotedName(string $name): self - { - $this->name = UnqualifiedName::unquoted($name); - - return $this; - } - - /** @param non-empty-string $name */ - public function setQuotedName(string $name): self - { - $this->name = UnqualifiedName::quoted($name); - - return $this; - } - - public function setReferencingColumnNames( - UnqualifiedName $firstColumnName, - UnqualifiedName ...$otherColumnNames, - ): self { - $this->referencingColumnNames = [$firstColumnName, ...array_values($otherColumnNames)]; - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setUnquotedReferencingColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->referencingColumnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::unquoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setQuotedReferencingColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->referencingColumnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::quoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - public function setReferencedTableName(OptionallyQualifiedName $referencedTableName): self - { - $this->referencedTableName = $referencedTableName; - - return $this; - } - - /** - * @param non-empty-string $unqualifiedReferencedTableName - * @param ?non-empty-string $referencedTableNameQualifier - */ - public function setUnquotedReferencedTableName( - string $unqualifiedReferencedTableName, - ?string $referencedTableNameQualifier = null, - ): self { - $this->referencedTableName = - OptionallyQualifiedName::unquoted($unqualifiedReferencedTableName, $referencedTableNameQualifier); - - return $this; - } - - /** - * @param non-empty-string $unqualifiedReferencedTableName - * @param ?non-empty-string $referencedTableNameQualifier - */ - public function setQuotedReferencedTableName( - string $unqualifiedReferencedTableName, - ?string $referencedTableNameQualifier = null, - ): self { - $this->referencedTableName = - OptionallyQualifiedName::quoted($unqualifiedReferencedTableName, $referencedTableNameQualifier); - - return $this; - } - - public function setReferencedColumnNames( - UnqualifiedName $firstColumnName, - UnqualifiedName ...$otherColumnNames, - ): self { - $this->referencedColumnNames = [$firstColumnName, ...array_values($otherColumnNames)]; - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setUnquotedReferencedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->referencedColumnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::unquoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setQuotedReferencedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->referencedColumnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::quoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - public function setMatchType(MatchType $matchType): self - { - $this->matchType = $matchType; - - return $this; - } - - public function setOnUpdateAction(ReferentialAction $action): self - { - $this->onUpdateAction = $action; - - return $this; - } - - public function setOnDeleteAction(ReferentialAction $action): self - { - $this->onDeleteAction = $action; - - return $this; - } - - public function setDeferrability(Deferrability $deferrability): self - { - $this->deferrability = $deferrability; - - return $this; - } - - public function create(): ForeignKeyConstraint - { - if (count($this->referencingColumnNames) < 1) { - throw InvalidForeignKeyConstraintDefinition::referencingColumnNamesNotSet($this->name); - } - - if ($this->referencedTableName === null) { - throw InvalidForeignKeyConstraintDefinition::referencedTableNameNotSet($this->name); - } - - if (count($this->referencedColumnNames) < 1) { - throw InvalidForeignKeyConstraintDefinition::referencedColumnNamesNotSet($this->name); - } - - $options = []; - - if ($this->matchType !== MatchType::SIMPLE) { - $options['match'] = $this->matchType->value; - } - - if ($this->onUpdateAction !== ReferentialAction::NO_ACTION) { - $options['onUpdate'] = $this->onUpdateAction->value; - } - - if ($this->onDeleteAction !== ReferentialAction::NO_ACTION) { - $options['onDelete'] = $this->onDeleteAction->value; - } - - return new ForeignKeyConstraint( - array_map( - static fn (UnqualifiedName $columnName) => $columnName->toString(), - $this->referencingColumnNames, - ), - $this->referencedTableName->toString(), - array_map( - static fn (UnqualifiedName $columnName) => $columnName->toString(), - $this->referencedColumnNames, - ), - $this->name?->toString() ?? '', - array_merge($options, match ($this->deferrability) { - Deferrability::NOT_DEFERRABLE => [], - Deferrability::DEFERRABLE => ['deferrable' => true], - Deferrability::DEFERRED => ['deferrable' => true, 'deferred' => true], - }), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Identifier.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Identifier.php deleted file mode 100644 index 5382026..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Identifier.php +++ /dev/null @@ -1,42 +0,0 @@ - - */ -class Identifier extends AbstractNamedObject -{ - /** - * @param string $identifier Identifier name to wrap. - * @param bool $quote Whether to force quoting the given identifier. - */ - public function __construct(string $identifier, bool $quote = false) - { - parent::__construct($identifier); - - if (! $quote || $this->_quoted) { - return; - } - - $this->_setName('"' . $this->getName() . '"'); - } - - protected function getNameParser(): GenericNameParser - { - return Parsers::getGenericNameParser(); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index.php deleted file mode 100644 index 63d8012..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index.php +++ /dev/null @@ -1,761 +0,0 @@ - - */ -class Index extends AbstractNamedObject -{ - /** - * Asset identifier instances of the column names the index is associated with. - * - * @deprecated Use {@see getIndexedColumns()} instead. - * - * @var array - */ - protected array $_columns = []; - - /** @deprecated Use {@see getType()} and compare with {@see IndexType::UNIQUE} instead. */ - protected bool $_isUnique = false; - - /** @deprecated Use {@see PrimaryKeyConstraint()} instead. */ - protected bool $_isPrimary = false; - - /** - * Platform specific flags for indexes. - * - * @deprecated - * - * @var array - */ - protected array $_flags = []; - - /** - * Column the index is associated with. - * - * An empty list indicates that an attempt to parse indexed columns failed. - * - * @var list - */ - private readonly array $columns; - - /** - * Index type. - * - * A null value indicates that an attempt to parse the index type failed. - */ - private ?IndexType $type = null; - - private ?string $predicate = null; - - private bool $failedToParsePredicate = false; - - /** - * @internal Use {@link Index::editor()} to instantiate an editor and {@link IndexEditor::create()} to create an - * index. - * - * @param non-empty-list $columns - * @param array $flags - * @param array $options - */ - public function __construct( - ?string $name, - array $columns, - bool $isUnique = false, - bool $isPrimary = false, - array $flags = [], - private readonly array $options = [], - ) { - parent::__construct($name ?? ''); - - if (count($columns) < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Instantiation of an index without column names is deprecated.', - ); - } - - if ($isPrimary) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - 'Declaring an index as primary is deprecated. Use PrimaryKeyConstraint instead.', - ); - } - - $this->_isUnique = $isUnique || $isPrimary; - $this->_isPrimary = $isPrimary; - - foreach ($columns as $column) { - $this->_addColumn($column); - } - - if (isset($options['where'])) { - $predicate = $options['where']; - - if (strlen($predicate) === 0) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - 'Passing an empty string as index predicate is deprecated.', - ); - - $this->failedToParsePredicate = true; - } else { - $this->predicate = $predicate; - } - } - - foreach ($flags as $flag) { - $this->addFlag($flag); - } - - if (count($flags) === 0) { - $this->type = $this->inferType(); - } - - $this->columns = $this->parseColumns($isPrimary, $columns, $options['lengths'] ?? []); - } - - protected function getNameParser(): UnqualifiedNameParser - { - return Parsers::getUnqualifiedNameParser(); - } - - public function getType(): IndexType - { - if ($this->type === null) { - throw InvalidState::indexHasInvalidType($this->getName()); - } - - return $this->type; - } - - /** - * Returns the indexed columns. - * - * @return non-empty-list - */ - public function getIndexedColumns(): array - { - if (count($this->columns) < 1) { - throw InvalidState::indexHasInvalidColumns($this->getName()); - } - - return $this->columns; - } - - /** - * Returns whether the index is clustered. - */ - public function isClustered(): bool - { - return $this->hasFlag('clustered'); - } - - /** - * Returns the index predicate. - * - * @return ?non-empty-string - */ - public function getPredicate(): ?string - { - if ($this->failedToParsePredicate) { - throw InvalidState::indexHasInvalidPredicate($this->getName()); - } - - return $this->hasOption('where') - ? $this->getOption('where') - : null; - } - - protected function _addColumn(string $column): void - { - $this->_columns[$column] = new Identifier($column); - } - - /** - * Returns the names of the referencing table columns the constraint is associated with. - * - * @deprecated Use {@see getIndexedColumns()} instead. - * - * @return non-empty-list - */ - public function getColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() instead.', - __METHOD__, - ); - - /** @phpstan-ignore return.type */ - return array_keys($this->_columns); - } - - /** - * Returns the quoted representation of the column names the constraint is associated with. - * - * But only if they were defined with one or a column name - * is a keyword reserved by the platform. - * Otherwise, the plain unquoted value as inserted is returned. - * - * @deprecated Use {@see getIndexedColumns()} instead. - * - * @param AbstractPlatform $platform The platform to use for quotation. - * - * @return list - */ - public function getQuotedColumns(AbstractPlatform $platform): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() instead.', - __METHOD__, - ); - - $subParts = $platform->supportsColumnLengthIndexes() && $this->hasOption('lengths') - ? $this->getOption('lengths') : []; - - $columns = []; - - foreach ($this->_columns as $column) { - $length = array_shift($subParts); - - $quotedColumn = $column->getQuotedName($platform); - - if ($length !== null) { - $quotedColumn .= '(' . $length . ')'; - } - - $columns[] = $quotedColumn; - } - - return $columns; - } - - /** - * @deprecated Use {@see getIndexedColumns()} instead. - * - * @return non-empty-list - */ - public function getUnquotedColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() instead.', - __METHOD__, - ); - - return array_map($this->trimQuotes(...), $this->getColumns()); - } - - /** - * Is the index neither unique nor primary key? - * - * @deprecated Use {@see getType()} and compare with {@see IndexType::REGULAR} instead. - */ - public function isSimpleIndex(): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getType() and compare with IndexType::REGULAR instead.', - __METHOD__, - ); - - return ! $this->_isPrimary && ! $this->_isUnique; - } - - /** @deprecated Use {@see getType()} and compare with {@see IndexType::UNIQUE} instead. */ - public function isUnique(): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getType() and compare with IndexType::UNIQUE instead.', - __METHOD__, - ); - - return $this->_isUnique; - } - - /** @deprecated Use {@see PrimaryKeyConstraint()} instead. */ - public function isPrimary(): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - 'Checking whether an index is primary is deprecated. Use PrimaryKeyConstraint instead.', - ); - - return $this->_isPrimary; - } - - /** @deprecated Use {@see getIndexedColumns()} instead. */ - public function hasColumnAtPosition(string $name, int $pos = 0): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() instead.', - __METHOD__, - ); - - $name = $this->trimQuotes(strtolower($name)); - $indexColumns = array_map('strtolower', $this->getUnquotedColumns()); - - return array_search($name, $indexColumns, true) === $pos; - } - - /** - * Checks if this index exactly spans the given column names in the correct order. - * - * @internal - * - * @param array $columnNames - */ - public function spansColumns(array $columnNames): bool - { - $columns = $this->getColumns(); - $numberOfColumns = count($columns); - $sameColumns = true; - - for ($i = 0; $i < $numberOfColumns; $i++) { - if ( - isset($columnNames[$i]) - && $this->trimQuotes(strtolower($columns[$i])) === $this->trimQuotes(strtolower($columnNames[$i])) - ) { - continue; - } - - $sameColumns = false; - } - - return $sameColumns; - } - - /** - * Checks if the other index already fulfills all the indexing and constraint needs of the current one. - */ - public function isFulfilledBy(Index $other): bool - { - // allow the other index to be equally large only. It being larger is an option - // but it creates a problem with scenarios of the kind PRIMARY KEY(foo,bar) UNIQUE(foo) - if (count($other->getColumns()) !== count($this->getColumns())) { - return false; - } - - // Check if columns are the same, and even in the same order - $sameColumns = $this->spansColumns($other->getColumns()); - - if ($sameColumns) { - if (! $this->samePartialIndex($other)) { - return false; - } - - if (! $this->hasSameColumnLengths($other)) { - return false; - } - - if (! $this->isUnique() && ! $this->isPrimary()) { - // this is a special case: If the current key is neither primary or unique, any unique or - // primary key will always have the same effect for the index and there cannot be any constraint - // overlaps. This means a primary or unique index can always fulfill the requirements of just an - // index that has no constraints. - return true; - } - - if ($other->isPrimary() !== $this->isPrimary()) { - return false; - } - - return $other->isUnique() === $this->isUnique(); - } - - return false; - } - - /** - * Detects if the other index is a non-unique, non primary index that can be overwritten by this one. - * - * @deprecated - */ - public function overrules(Index $other): bool - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated.', - __METHOD__, - ); - - if ($other->isPrimary()) { - return false; - } - - if ($this->isSimpleIndex() && $other->isUnique()) { - return false; - } - - return $this->spansColumns($other->getColumns()) - && ($this->isPrimary() || $this->isUnique()) - && $this->samePartialIndex($other); - } - - /** - * Returns platform specific flags for indexes. - * - * @deprecated Use {@see getType()} and {@see isClustered()} instead. - * - * @return array - */ - public function getFlags(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getType() and Index::isClustered() instead.', - __METHOD__, - ); - - return array_keys($this->_flags); - } - - /** - * Adds Flag for an index that translates to platform specific handling. - * - * @deprecated Use {@see edit()}, {@see IndexEditor::setType()} and {@see IndexEditor::setIsClustered()} instead. - * - * @example $index->addFlag('CLUSTERED') - */ - public function addFlag(string $flag): self - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::edit(), IndexEditor::setType() and IndexEditor::setIsClustered()' - . ' instead.', - __METHOD__, - ); - - $this->_flags[strtolower($flag)] = true; - - $this->validateFlags(); - - $this->type = $this->inferType(); - - return $this; - } - - /** - * Does this index have a specific flag? - * - * @deprecated Use {@see getType()} and {@see isClustered()} instead. - */ - public function hasFlag(string $flag): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getType() and Index::isClustered() instead.', - __METHOD__, - ); - - return isset($this->_flags[strtolower($flag)]); - } - - /** - * @deprecated Use {@see edit()}, {@see IndexEditor::setType()} and {@see IndexEditor::setIsClustered()} - * instead. - */ - public function removeFlag(string $flag): void - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::edit(), IndexEditor::setType() and IndexEditor::setIsClustered()' - . ' instead.', - __METHOD__, - ); - - unset($this->_flags[strtolower($flag)]); - - $this->type = $this->inferType(); - } - - /** @deprecated Use {@see getIndexedColumns()} and {@see getPredicate()} instead. */ - public function hasOption(string $name): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() and Index::getPredicate() instead.', - __METHOD__, - ); - - return isset($this->options[strtolower($name)]); - } - - /** @deprecated Use {@see getIndexedColumns()} and {@see getPredicate()} instead. */ - public function getOption(string $name): mixed - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() and Index::getPredicate() instead.', - __METHOD__, - ); - - return $this->options[strtolower($name)]; - } - - /** - * @deprecated Use {@see getIndexedColumns()} and {@see getPredicate()} instead. - * - * @return array - */ - public function getOptions(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - '%s is deprecated. Use Index::getIndexedColumns() and Index::getPredicate() instead.', - __METHOD__, - ); - - return $this->options; - } - - private function validateFlags(): void - { - $unsupportedFlags = $this->_flags; - unset( - $unsupportedFlags['fulltext'], - $unsupportedFlags['spatial'], - $unsupportedFlags['clustered'], - $unsupportedFlags['nonclustered'], - ); - - if (count($unsupportedFlags) > 0) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - 'Configuring an index with non-standard flags is deprecated: %s', - implode(', ', array_keys($unsupportedFlags)), - ); - } - - if ( - $this->hasFlag('clustered') && ( - $this->hasFlag('nonclustered') - || $this->hasFlag('fulltext') - || $this->hasFlag('spatial') - ) - ) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - 'A fulltext, spatial or non-clustered index cannot be clustered.', - ); - } - - if ( - $this->predicate === null - || (! $this->hasFlag('fulltext') - && ! $this->hasFlag('spatial') - && ! $this->hasFlag('clustered')) - ) { - return; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - 'A fulltext, spatial or clustered index cannot be partial.', - ); - } - - private function inferType(): ?IndexType - { - $type = IndexType::REGULAR; - $matches = []; - - if ($this->_isUnique) { - $type = IndexType::UNIQUE; - $matches[] = 'unique'; - } - - if ($this->hasFlag('fulltext')) { - $type = IndexType::FULLTEXT; - $matches[] = 'fulltext'; - } - - if ($this->hasFlag('spatial')) { - $type = IndexType::SPATIAL; - $matches[] = 'spatial'; - } - - if (count($matches) > 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6886', - 'Configuring an index with mutually exclusive properties is deprecated: %s', - implode(', ', $matches), - ); - - return null; - } - - return $type; - } - - /** - * @param non-empty-array $columnNames - * @param array $lengths - * - * @return list - */ - private function parseColumns(bool $isPrimary, array $columnNames, array $lengths): array - { - $columns = []; - - $parser = Parsers::getUnqualifiedNameParser(); - - foreach ($columnNames as $columnName) { - try { - $parsedName = $parser->parse($columnName); - } catch (Throwable $e) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Unable to parse column name: %s.', - $e->getMessage(), - ); - - return []; - } - - $length = array_shift($lengths); - - if ($length !== null) { - if ($isPrimary) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Declaring column length for primary key indexes is deprecated.', - ); - - return []; - } - - if (! is_int($length)) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Indexed column length should be an integer, %s given.', - is_object($length) ? $length::class : gettype($length), - ); - - $length = (int) $length; - } - - if ($length < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Indexed column length should be a positive integer, %d given.', - $length, - ); - - return []; - } - } - - $columns[] = new IndexedColumn($parsedName, $length); - } - - return $columns; - } - - /** - * Return whether the two indexes have the same partial index - */ - private function samePartialIndex(Index $other): bool - { - if ( - $this->hasOption('where') - && $other->hasOption('where') - && $this->getOption('where') === $other->getOption('where') - ) { - return true; - } - - return ! $this->hasOption('where') && ! $other->hasOption('where'); - } - - /** - * Returns whether the index has the same column lengths as the other - */ - private function hasSameColumnLengths(self $other): bool - { - $filter = static function (?int $length): bool { - return $length !== null; - }; - - return array_filter($this->options['lengths'] ?? [], $filter) - === array_filter($other->options['lengths'] ?? [], $filter); - } - - /** - * Instantiates a new index editor. - */ - public static function editor(): IndexEditor - { - return new IndexEditor(); - } - - /** - * Instantiates a new index editor and initializes it with the properties of the current index. - */ - public function edit(): IndexEditor - { - return self::editor() - ->setName($this->getObjectName()) - ->setType($this->getType()) - ->setColumns(...$this->getIndexedColumns()) - ->setIsClustered($this->isClustered()) - ->setPredicate($this->getPredicate()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index/IndexType.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index/IndexType.php deleted file mode 100644 index 6466688..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Index/IndexType.php +++ /dev/null @@ -1,13 +0,0 @@ -columnName; - } - - /** @return ?positive-int */ - public function getLength(): ?int - { - return $this->length; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/IndexEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/IndexEditor.php deleted file mode 100644 index ec06f07..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/IndexEditor.php +++ /dev/null @@ -1,178 +0,0 @@ - */ - private array $columns = []; - - private bool $isClustered = false; - - /** @var ?non-empty-string */ - private ?string $predicate = null; - - /** @internal Use {@link Index::editor()} or {@link Index::edit()} to create an instance */ - public function __construct() - { - } - - public function setName(?UnqualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** @param non-empty-string $name */ - public function setUnquotedName(string $name): self - { - $this->name = UnqualifiedName::unquoted($name); - - return $this; - } - - /** @param non-empty-string $name */ - public function setQuotedName(string $name): self - { - $this->name = UnqualifiedName::quoted($name); - - return $this; - } - - public function setType(IndexType $type): self - { - $this->type = $type; - - return $this; - } - - public function setColumns(IndexedColumn $firstColumn, IndexedColumn ...$otherColumns): self - { - $this->columns = [$firstColumn, ...array_values($otherColumns)]; - - return $this; - } - - public function setColumnNames(UnqualifiedName $firstColumnName, UnqualifiedName ...$otherColumnNames): self - { - $this->columns = array_map( - static fn (UnqualifiedName $name) => new IndexedColumn($name, null), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setUnquotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columns = array_map( - static fn (string $name): IndexedColumn => new IndexedColumn(UnqualifiedName::unquoted($name), null), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setQuotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columns = array_map( - static fn (string $name): IndexedColumn => new IndexedColumn(UnqualifiedName::quoted($name), null), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - public function setIsClustered(bool $isClustered): self - { - $this->isClustered = $isClustered; - - return $this; - } - - /** @param ?non-empty-string $predicate */ - public function setPredicate(?string $predicate): self - { - $this->predicate = $predicate; - - return $this; - } - - public function create(): Index - { - if ($this->name === null) { - throw InvalidIndexDefinition::nameNotSet(); - } - - if (count($this->columns) < 1) { - throw InvalidIndexDefinition::columnsNotSet($this->name); - } - - $columnNames = $lengths = $options = $flags = []; - foreach ($this->columns as $i => $column) { - $columnNames[] = $column->getColumnName()->toString(); - - $length = $column->getLength(); - if ($length === null) { - continue; - } - - $lengths[$i] = $column->getLength(); - } - - if (count($lengths) !== 0) { - $options['lengths'] = $lengths; - } - - if ($this->type === IndexType::FULLTEXT) { - $flags[] = 'fulltext'; - } elseif ($this->type === IndexType::SPATIAL) { - $flags[] = 'spatial'; - } - - if ($this->isClustered) { - $flags[] = 'clustered'; - } - - if ($this->predicate !== null) { - $options['where'] = $this->predicate; - } - - return new Index( - $this->name->toString(), - $columnNames, - $this->type === IndexType::UNIQUE, - false, - $flags, - $options, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php deleted file mode 100644 index e581926..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php +++ /dev/null @@ -1,537 +0,0 @@ - - */ -class MySQLSchemaManager extends AbstractSchemaManager -{ - /** @see https://mariadb.com/kb/en/library/string-literals/#escape-sequences */ - private const MARIADB_ESCAPE_SEQUENCES = [ - '\\0' => "\0", - "\\'" => "'", - '\\"' => '"', - '\\b' => "\b", - '\\n' => "\n", - '\\r' => "\r", - '\\t' => "\t", - '\\Z' => "\x1a", - '\\\\' => '\\', - '\\%' => '%', - '\\_' => '_', - - // Internally, MariaDB escapes single quotes using the standard syntax - "''" => "'", - ]; - - private ?DefaultTableOptions $defaultTableOptions = null; - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - return $table['TABLE_NAME']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - return new View($view['TABLE_NAME'], $view['VIEW_DEFINITION']); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - foreach ($rows as $i => $row) { - $row = array_change_key_case($row, CASE_LOWER); - - $row['primary'] = $row['key_name'] === 'PRIMARY'; - - if (str_contains($row['index_type'], 'FULLTEXT')) { - $row['flags'] = ['FULLTEXT']; - } elseif (str_contains($row['index_type'], 'SPATIAL')) { - $row['flags'] = ['SPATIAL']; - } - - // Ignore prohibited prefix `length` for spatial index - if (! str_contains($row['index_type'], 'SPATIAL')) { - $row['length'] = isset($row['sub_part']) ? (int) $row['sub_part'] : null; - } - - $rows[$i] = $row; - } - - return parent::_getPortableTableIndexesList($rows, $tableName); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableDatabaseDefinition(array $database): string - { - return $database['Database']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $tableColumn = array_change_key_case($tableColumn, CASE_LOWER); - - $dbType = $tableColumn['type']; - $length = null; - $scale = 0; - $precision = null; - $fixed = false; - $values = []; - - $type = $this->platform->getDoctrineTypeMapping($dbType); - - switch ($dbType) { - case 'char': - case 'varchar': - $length = (int) $tableColumn['character_maximum_length']; - break; - - case 'binary': - case 'varbinary': - $length = (int) $tableColumn['character_octet_length']; - break; - - case 'tinytext': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_TINYTEXT; - break; - - case 'text': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_TEXT; - break; - - case 'mediumtext': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_MEDIUMTEXT; - break; - - case 'tinyblob': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_TINYBLOB; - break; - - case 'blob': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_BLOB; - break; - - case 'mediumblob': - $length = AbstractMySQLPlatform::LENGTH_LIMIT_MEDIUMBLOB; - break; - - case 'float': - case 'double': - case 'real': - case 'numeric': - case 'decimal': - $precision = (int) $tableColumn['numeric_precision']; - - if (isset($tableColumn['numeric_scale'])) { - $scale = (int) $tableColumn['numeric_scale']; - } - - break; - } - - switch ($dbType) { - case 'char': - case 'binary': - $fixed = true; - break; - - case 'enum': - $values = $this->parseEnumExpression($tableColumn['column_type']); - break; - } - - if ($this->platform instanceof MariaDBPlatform) { - $columnDefault = $this->getMariaDBColumnDefault($this->platform, $tableColumn['default']); - } else { - $columnDefault = $tableColumn['default']; - } - - $options = [ - 'length' => $length, - 'unsigned' => str_contains($tableColumn['column_type'], 'unsigned'), - 'fixed' => $fixed, - 'default' => $columnDefault, - 'notnull' => $tableColumn['null'] !== 'YES', - 'scale' => $scale, - 'precision' => $precision, - 'autoincrement' => str_contains($tableColumn['extra'], 'auto_increment'), - 'values' => $values, - ]; - - if ($tableColumn['comment'] !== null) { - $options['comment'] = $tableColumn['comment']; - } - - $column = new Column($tableColumn['field'], Type::getType($type), $options); - $column->setPlatformOption('charset', $tableColumn['characterset']); - $column->setPlatformOption('collation', $tableColumn['collation']); - - return $column; - } - - /** @return list */ - private function parseEnumExpression(string $expression): array - { - $result = preg_match_all("/'([^']*(?:''[^']*)*)'/", $expression, $matches); - assert($result !== false); - - return array_map( - static fn (string $match): string => strtr($match, ["''" => "'"]), - $matches[1], - ); - } - - /** - * Return Doctrine/Mysql-compatible column default values for MariaDB 10.2.7+ servers. - * - * - Since MariaDb 10.2.7 column defaults stored in information_schema are now quoted - * to distinguish them from expressions (see MDEV-10134). - * - CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE are stored in information_schema - * as current_timestamp(), currdate(), currtime() - * - Quoted 'NULL' is not enforced by Maria, it is technically possible to have - * null in some circumstances (see https://jira.mariadb.org/browse/MDEV-14053) - * - \' is always stored as '' in information_schema (normalized) - * - * @link https://mariadb.com/kb/en/library/information-schema-columns-table/ - * @link https://jira.mariadb.org/browse/MDEV-13132 - * - * @param string|null $columnDefault default value as stored in information_schema for MariaDB >= 10.2.7 - */ - private function getMariaDBColumnDefault(MariaDBPlatform $platform, ?string $columnDefault): ?string - { - if ($columnDefault === 'NULL' || $columnDefault === null) { - return null; - } - - if (preg_match('/^\'(.*)\'$/', $columnDefault, $matches) === 1) { - return strtr($matches[1], self::MARIADB_ESCAPE_SEQUENCES); - } - - return match ($columnDefault) { - 'current_timestamp()' => $platform->getCurrentTimestampSQL(), - 'curdate()' => $platform->getCurrentDateSQL(), - 'curtime()' => $platform->getCurrentTimeSQL(), - default => $columnDefault, - }; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $list = []; - foreach ($rows as $row) { - $row = array_change_key_case($row, CASE_LOWER); - if (! isset($list[$row['constraint_name']])) { - if (! isset($row['delete_rule']) || $row['delete_rule'] === 'RESTRICT') { - $row['delete_rule'] = null; - } - - if (! isset($row['update_rule']) || $row['update_rule'] === 'RESTRICT') { - $row['update_rule'] = null; - } - - $list[$row['constraint_name']] = [ - 'name' => $this->getQuotedIdentifierName($row['constraint_name']), - 'local' => [], - 'foreign' => [], - 'foreignTable' => $row['referenced_table_name'], - 'onDelete' => $row['delete_rule'], - 'onUpdate' => $row['update_rule'], - ]; - } - - $list[$row['constraint_name']]['local'][] = $row['column_name']; - $list[$row['constraint_name']]['foreign'][] = $row['referenced_column_name']; - } - - return parent::_getPortableTableForeignKeysList($list); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - return new ForeignKeyConstraint( - $tableForeignKey['local'], - $tableForeignKey['foreignTable'], - $tableForeignKey['foreign'], - $tableForeignKey['name'], - [ - 'onDelete' => $tableForeignKey['onDelete'], - 'onUpdate' => $tableForeignKey['onUpdate'], - ], - ); - } - - /** @throws Exception */ - public function createComparator(/* ComparatorConfig $config = new ComparatorConfig() */): Comparator - { - return new MySQL\Comparator( - $this->platform, - new CachingCharsetMetadataProvider( - new ConnectionCharsetMetadataProvider($this->connection), - ), - new CachingCollationMetadataProvider( - new ConnectionCollationMetadataProvider($this->connection), - ), - $this->getDefaultTableOptions(), - func_num_args() > 0 ? func_get_arg(0) : new ComparatorConfig(), - ); - } - - protected function selectTableNames(string $databaseName): Result - { - $sql = <<<'SQL' -SELECT TABLE_NAME -FROM information_schema.TABLES -WHERE TABLE_SCHEMA = ? - AND TABLE_TYPE = 'BASE TABLE' -ORDER BY TABLE_NAME -SQL; - - return $this->connection->executeQuery($sql, [$databaseName]); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - // The schema name is passed multiple times as a literal in the WHERE clause instead of using a JOIN condition - // in order to avoid performance issues on MySQL older than 8.0 and the corresponding MariaDB versions - // caused by https://bugs.mysql.com/bug.php?id=81347 - $conditions = ['c.TABLE_SCHEMA = ?', 't.TABLE_SCHEMA = ?']; - $params = [$databaseName, $databaseName]; - - if ($tableName !== null) { - $conditions[] = 't.TABLE_NAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' -SELECT - c.TABLE_NAME, - c.COLUMN_NAME AS field, - %s AS type, - c.COLUMN_TYPE, - c.CHARACTER_MAXIMUM_LENGTH, - c.CHARACTER_OCTET_LENGTH, - c.NUMERIC_PRECISION, - c.NUMERIC_SCALE, - c.IS_NULLABLE AS `null`, - c.COLUMN_KEY AS `key`, - c.COLUMN_DEFAULT AS `default`, - c.EXTRA, - c.COLUMN_COMMENT AS comment, - c.CHARACTER_SET_NAME AS characterset, - c.COLLATION_NAME AS collation -FROM information_schema.COLUMNS c - INNER JOIN information_schema.TABLES t - ON t.TABLE_NAME = c.TABLE_NAME - WHERE %s - AND t.TABLE_TYPE = 'BASE TABLE' -ORDER BY c.TABLE_NAME, - c.ORDINAL_POSITION -SQL, - $this->platform->getColumnTypeSQLSnippet('c', $databaseName), - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['TABLE_SCHEMA = ?']; - $params = [$databaseName]; - - if ($tableName !== null) { - $conditions[] = 'TABLE_NAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' -SELECT - TABLE_NAME, - NON_UNIQUE AS Non_Unique, - INDEX_NAME AS Key_name, - COLUMN_NAME AS Column_Name, - SUB_PART AS Sub_Part, - INDEX_TYPE AS Index_Type -FROM information_schema.STATISTICS -WHERE %s -ORDER BY TABLE_NAME, - SEQ_IN_INDEX -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - // The schema name is passed multiple times in the WHERE clause instead of using a JOIN condition - // in order to avoid performance issues on MySQL older than 8.0 and the corresponding MariaDB versions - // caused by https://bugs.mysql.com/bug.php?id=81347 - $conditions = ['k.TABLE_SCHEMA = ?', 'c.CONSTRAINT_SCHEMA = ?']; - $params = [$databaseName, $databaseName]; - - if ($tableName !== null) { - $conditions[] = 'k.TABLE_NAME = ?'; - $params[] = $tableName; - } - - $sql = sprintf( - <<<'SQL' -SELECT - k.TABLE_NAME, - k.CONSTRAINT_NAME, - k.COLUMN_NAME, - k.REFERENCED_TABLE_NAME, - k.REFERENCED_COLUMN_NAME, - k.ORDINAL_POSITION, - c.UPDATE_RULE, - c.DELETE_RULE -FROM information_schema.key_column_usage k -INNER JOIN information_schema.referential_constraints c -ON c.CONSTRAINT_NAME = k.CONSTRAINT_NAME -AND c.TABLE_NAME = k.TABLE_NAME -WHERE %s -AND k.REFERENCED_COLUMN_NAME IS NOT NULL -ORDER BY k.TABLE_NAME, - k.CONSTRAINT_NAME, - k.ORDINAL_POSITION -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - $sql = $this->platform->fetchTableOptionsByTable($tableName !== null); - - $params = [$databaseName]; - if ($tableName !== null) { - $params[] = $tableName; - } - - /** @var array> $metadata */ - $metadata = $this->connection->executeQuery($sql, $params) - ->fetchAllAssociativeIndexed(); - - $tableOptions = []; - foreach ($metadata as $table => $data) { - $data = array_change_key_case($data, CASE_LOWER); - - $tableOptions[$table] = [ - 'engine' => $data['engine'], - 'collation' => $data['table_collation'], - 'charset' => $data['character_set_name'], - 'autoincrement' => $data['auto_increment'], - 'comment' => $data['table_comment'], - 'create_options' => $this->parseCreateOptions($data['create_options']), - ]; - } - - return $tableOptions; - } - - /** @return array|array */ - private function parseCreateOptions(?string $string): array - { - $options = []; - - if ($string === null || $string === '') { - return $options; - } - - foreach (explode(' ', $string) as $pair) { - $parts = explode('=', $pair, 2); - - $options[$parts[0]] = $parts[1] ?? true; - } - - return $options; - } - - /** @throws Exception */ - private function getDefaultTableOptions(): DefaultTableOptions - { - if ($this->defaultTableOptions === null) { - $row = $this->connection->fetchNumeric( - 'SELECT @@character_set_database, @@collation_database', - ); - - assert($row !== false); - - $this->defaultTableOptions = new DefaultTableOptions(...$row); - } - - return $this->defaultTableOptions; - } - - /** Returns the quoted representation of the given identifier name. */ - private function getQuotedIdentifierName(?string $identifier): ?string - { - if ($identifier === null) { - return null; - } - - return $this->platform->quoteSingleIdentifier($identifier); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name.php deleted file mode 100644 index d516977..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name.php +++ /dev/null @@ -1,25 +0,0 @@ - $identifiers */ - private array $identifiers; - - public function __construct(Identifier $firstIdentifier, Identifier ...$otherIdentifiers) - { - $this->identifiers = array_merge([$firstIdentifier], array_values($otherIdentifiers)); - } - - /** @return non-empty-list */ - public function getIdentifiers(): array - { - return $this->identifiers; - } - - public function toSQL(AbstractPlatform $platform): string - { - return $this->joinIdentifiers(static fn (Identifier $identifier): string => $identifier->toSQL($platform)); - } - - public function toString(): string - { - return $this->joinIdentifiers(static fn (Identifier $identifier): string => $identifier->toString()); - } - - /** @param callable(Identifier): string $mapper */ - private function joinIdentifiers(callable $mapper): string - { - return implode('.', array_map($mapper, $this->identifiers)); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Identifier.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Identifier.php deleted file mode 100644 index f0a433e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Identifier.php +++ /dev/null @@ -1,91 +0,0 @@ -value) === 0) { - throw InvalidIdentifier::fromEmpty(); - } - } - - /** @return non-empty-string */ - public function getValue(): string - { - return $this->value; - } - - public function isQuoted(): bool - { - return $this->isQuoted; - } - - public function toSQL(AbstractPlatform $platform): string - { - return $platform->quoteSingleIdentifier( - $this->toNormalizedValue($platform->getUnquotedIdentifierFolding()), - ); - } - - /** - * Returns the literal value of the identifier normalized according to the rules of the given database platform. - * - * Consumers should use the normalized value for schema comparison and referencing the objects to be introspected. - * - * @return non-empty-string - */ - public function toNormalizedValue(UnquotedIdentifierFolding $folding): string - { - if (! $this->isQuoted) { - return $folding->foldUnquotedIdentifier($this->value); - } - - return $this->value; - } - - public function toString(): string - { - if (! $this->isQuoted) { - return $this->value; - } - - return sprintf('"%s"', str_replace('"', '""', $this->value)); - } - - /** - * Creates a quoted identifier. - * - * @param non-empty-string $value - */ - public static function quoted(string $value): self - { - return new self($value, true); - } - - /** - * Creates an unquoted identifier. - * - * @param non-empty-string $value - */ - public static function unquoted(string $value): self - { - return new self($value, false); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/OptionallyQualifiedName.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/OptionallyQualifiedName.php deleted file mode 100644 index f818a94..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/OptionallyQualifiedName.php +++ /dev/null @@ -1,78 +0,0 @@ -unqualifiedName; - } - - public function getQualifier(): ?Identifier - { - return $this->qualifier; - } - - public function toSQL(AbstractPlatform $platform): string - { - $unqualifiedName = $this->unqualifiedName->toSQL($platform); - - if ($this->qualifier === null) { - return $unqualifiedName; - } - - return $this->qualifier->toSQL($platform) . '.' . $unqualifiedName; - } - - public function toString(): string - { - $unqualifiedName = $this->unqualifiedName->toString(); - - if ($this->qualifier === null) { - return $unqualifiedName; - } - - return $this->qualifier->toString() . '.' . $unqualifiedName; - } - - /** - * Creates an optionally qualified name with all identifiers quoted. - * - * @param non-empty-string $unqualifiedName - * @param ?non-empty-string $qualifier - */ - public static function quoted(string $unqualifiedName, ?string $qualifier = null): self - { - return new self( - Identifier::quoted($unqualifiedName), - $qualifier !== null ? Identifier::quoted($qualifier) : null, - ); - } - - /** - * Creates an optionally qualified name with all identifiers unquoted. - * - * @param non-empty-string $unqualifiedName - * @param ?non-empty-string $qualifier - */ - public static function unquoted(string $unqualifiedName, ?string $qualifier = null): self - { - return new self( - Identifier::unquoted($unqualifiedName), - $qualifier !== null ? Identifier::unquoted($qualifier) : null, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser.php deleted file mode 100644 index 90254ba..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -final class GenericNameParser implements Parser -{ - private const IDENTIFIER_PATTERN = <<<'PATTERN' - /\G - (?: - "(?[^"]*(?:""[^"]*)*)" # ANSI SQL double-quoted - | `(?[^`]*(?:``[^`]*)*)` # MySQL-style backtick-quoted - | \[(?[^]]*(?:]][^]]*)*)] # SQL Server-style square-bracket-quoted - | (?[^\s."`\[\]]+) # Unquoted - ) - /x - PATTERN; - - public function parse(string $input): GenericName - { - $offset = 0; - $identifiers = []; - $length = strlen($input); - - while (true) { - if ($offset >= $length) { - throw ExpectedNextIdentifier::new(); - } - - if (preg_match(self::IDENTIFIER_PATTERN, $input, $matches, 0, $offset) === 0) { - throw UnableToParseIdentifier::new($offset); - } - - if (isset($matches['ansi']) && strlen($matches['ansi']) > 0) { - $identifier = Identifier::quoted(str_replace('""', '"', $matches['ansi'])); - } elseif (isset($matches['mysql']) && strlen($matches['mysql']) > 0) { - $identifier = Identifier::quoted(str_replace('``', '`', $matches['mysql'])); - } elseif (isset($matches['sqlserver']) && strlen($matches['sqlserver']) > 0) { - $identifier = Identifier::quoted(str_replace(']]', ']', $matches['sqlserver'])); - } else { - assert(isset($matches['unquoted']) && strlen($matches['unquoted']) > 0); - $identifier = Identifier::unquoted($matches['unquoted']); - } - - $identifiers[] = $identifier; - - $offset += strlen($matches[0]); - - if ($offset >= $length) { - break; - } - - $character = $input[$offset]; - - if ($character !== '.') { - throw ExpectedDot::new($offset, $character); - } - - $offset++; - } - - assert(count($identifiers) > 0); - - return new GenericName(...$identifiers); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/OptionallyQualifiedNameParser.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/OptionallyQualifiedNameParser.php deleted file mode 100644 index 92b868a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/OptionallyQualifiedNameParser.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ -final readonly class OptionallyQualifiedNameParser implements Parser -{ - public function __construct(private GenericNameParser $genericNameParser) - { - } - - public function parse(string $input): OptionallyQualifiedName - { - $identifiers = $this->genericNameParser->parse($input) - ->getIdentifiers(); - - return match (count($identifiers)) { - 1 => new OptionallyQualifiedName($identifiers[0], null), - 2 => new OptionallyQualifiedName($identifiers[1], $identifiers[0]), - default => throw InvalidName::forOptionallyQualifiedName(count($identifiers)), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/UnqualifiedNameParser.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/UnqualifiedNameParser.php deleted file mode 100644 index f91dc1d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parser/UnqualifiedNameParser.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ -final readonly class UnqualifiedNameParser implements Parser -{ - public function __construct(private GenericNameParser $genericNameParser) - { - } - - public function parse(string $input): UnqualifiedName - { - $identifiers = $this->genericNameParser->parse($input) - ->getIdentifiers(); - - if (count($identifiers) > 1) { - throw InvalidName::forUnqualifiedName(count($identifiers)); - } - - return new UnqualifiedName($identifiers[0]); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parsers.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parsers.php deleted file mode 100644 index 58611d1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/Parsers.php +++ /dev/null @@ -1,43 +0,0 @@ -identifier; - } - - public function toSQL(AbstractPlatform $platform): string - { - return $this->identifier->toSQL($platform); - } - - public function toString(): string - { - return $this->identifier->toString(); - } - - /** - * Creates a quoted unqualified name. - * - * @param non-empty-string $value - */ - public static function quoted(string $value): self - { - return new self(Identifier::quoted($value)); - } - - /** - * Creates an unquoted unqualified name. - * - * @param non-empty-string $value - */ - public static function unquoted(string $value): self - { - return new self(Identifier::unquoted($value)); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/UnquotedIdentifierFolding.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/UnquotedIdentifierFolding.php deleted file mode 100644 index 4b1ed83..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Name/UnquotedIdentifierFolding.php +++ /dev/null @@ -1,45 +0,0 @@ - strtoupper($value), - self::LOWER => strtolower($value), - self::NONE => $value, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/NamedObject.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/NamedObject.php deleted file mode 100644 index c17310f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/NamedObject.php +++ /dev/null @@ -1,22 +0,0 @@ -null, if the name is not set. - * - * @return ?N - */ - public function getObjectName(): ?Name; -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/OracleSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/OracleSchemaManager.php deleted file mode 100644 index 47d8740..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/OracleSchemaManager.php +++ /dev/null @@ -1,489 +0,0 @@ - - */ -class OracleSchemaManager extends AbstractSchemaManager -{ - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - $view = array_change_key_case($view, CASE_LOWER); - - return new View($this->getQuotedIdentifierName($view['view_name']), $view['text']); - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - $table = array_change_key_case($table, CASE_LOWER); - - /** @phpstan-ignore return.type */ - return $this->getQuotedIdentifierName($table['table_name']); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - $indexBuffer = []; - foreach ($rows as $row) { - $row = array_change_key_case($row, CASE_LOWER); - - $buffer = []; - - if ($row['is_primary'] === 'P') { - $buffer['key_name'] = 'primary'; - $buffer['primary'] = true; - $buffer['non_unique'] = false; - } else { - $buffer['key_name'] = strtolower($row['name']); - $buffer['primary'] = false; - $buffer['non_unique'] = ! $row['is_unique']; - } - - $buffer['column_name'] = $this->getQuotedIdentifierName($row['column_name']); - $indexBuffer[] = $buffer; - } - - return parent::_getPortableTableIndexesList($indexBuffer, $tableName); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $tableColumn = array_change_key_case($tableColumn, CASE_LOWER); - - $dbType = strtolower($tableColumn['data_type']); - if (str_starts_with($dbType, 'timestamp(')) { - if (str_contains($dbType, 'with time zone')) { - $dbType = 'timestamptz'; - } else { - $dbType = 'timestamp'; - } - } - - $length = $precision = null; - $scale = 0; - $fixed = false; - - assert(array_key_exists('data_default', $tableColumn)); - - // Default values returned from database sometimes have trailing spaces. - if (is_string($tableColumn['data_default'])) { - $tableColumn['data_default'] = trim($tableColumn['data_default']); - } - - if ($tableColumn['data_default'] === '' || $tableColumn['data_default'] === 'NULL') { - $tableColumn['data_default'] = null; - } - - if ($tableColumn['data_default'] !== null) { - // Default values returned from database are represented as literal expressions - if (preg_match('/^\'(.*)\'$/s', $tableColumn['data_default'], $matches) === 1) { - $tableColumn['data_default'] = str_replace("''", "'", $matches[1]); - } - } - - if ($tableColumn['data_precision'] !== null) { - $precision = (int) $tableColumn['data_precision']; - } - - if ($tableColumn['data_scale'] !== null) { - $scale = (int) $tableColumn['data_scale']; - } - - $type = $this->platform->getDoctrineTypeMapping($dbType); - - switch ($dbType) { - case 'number': - if ($precision === 20 && $scale === 0) { - $type = 'bigint'; - } elseif ($precision === 5 && $scale === 0) { - $type = 'smallint'; - } elseif ($precision === 1 && $scale === 0) { - $type = 'boolean'; - } elseif ($scale > 0) { - $type = 'decimal'; - } - - break; - - case 'float': - if ($precision === 63) { - $type = 'smallfloat'; - } - - break; - - case 'varchar': - case 'varchar2': - case 'nvarchar2': - $length = (int) $tableColumn['char_length']; - break; - - case 'raw': - $length = (int) $tableColumn['data_length']; - $fixed = true; - break; - - case 'char': - case 'nchar': - $length = (int) $tableColumn['char_length']; - $fixed = true; - break; - } - - $options = [ - 'notnull' => $tableColumn['nullable'] === 'N', - 'fixed' => $fixed, - 'default' => $tableColumn['data_default'], - 'length' => $length, - 'precision' => $precision, - 'scale' => $scale, - ]; - - if ($tableColumn['comments'] !== null) { - $options['comment'] = $tableColumn['comments']; - } - - return new Column($this->getQuotedIdentifierName($tableColumn['column_name']), Type::getType($type), $options); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $list = []; - foreach ($rows as $row) { - $row = array_change_key_case($row, CASE_LOWER); - if (! isset($list[$row['constraint_name']])) { - if ($row['delete_rule'] === 'NO ACTION') { - $row['delete_rule'] = null; - } - - $list[$row['constraint_name']] = [ - 'name' => $this->getQuotedIdentifierName($row['constraint_name']), - 'local' => [], - 'foreign' => [], - 'foreignTable' => $row['references_table'], - 'onDelete' => $row['delete_rule'], - 'deferrable' => $row['deferrable'] === 'DEFERRABLE', - 'deferred' => $row['deferred'] === 'DEFERRED', - ]; - } - - $localColumn = $this->getQuotedIdentifierName($row['local_column']); - $foreignColumn = $this->getQuotedIdentifierName($row['foreign_column']); - - $list[$row['constraint_name']]['local'][] = $localColumn; - $list[$row['constraint_name']]['foreign'][] = $foreignColumn; - } - - return parent::_getPortableTableForeignKeysList($list); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - return new ForeignKeyConstraint( - $tableForeignKey['local'], - $this->getQuotedIdentifierName($tableForeignKey['foreignTable']), - $tableForeignKey['foreign'], - $this->getQuotedIdentifierName($tableForeignKey['name']), - [ - 'onDelete' => $tableForeignKey['onDelete'], - 'deferrable' => $tableForeignKey['deferrable'], - 'deferred' => $tableForeignKey['deferred'], - ], - ); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableSequenceDefinition(array $sequence): Sequence - { - $sequence = array_change_key_case($sequence, CASE_LOWER); - - return new Sequence( - $this->getQuotedIdentifierName($sequence['sequence_name']), - (int) $sequence['increment_by'], - (int) $sequence['min_value'], - ); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableDatabaseDefinition(array $database): string - { - $database = array_change_key_case($database, CASE_LOWER); - - return $database['username']; - } - - public function createDatabase(string $database): void - { - $statement = $this->platform->getCreateDatabaseSQL($database); - - $params = $this->connection->getParams(); - - if (isset($params['password'])) { - $statement .= ' IDENTIFIED BY ' . $this->connection->quoteSingleIdentifier($params['password']); - } - - $this->connection->executeStatement($statement); - - $statement = 'GRANT DBA TO ' . $database; - $this->connection->executeStatement($statement); - } - - /** - * @internal The method should be only used by the {@see OracleSchemaManager} class. - * - * @throws Exception - */ - protected function dropAutoincrement(string $table): bool - { - $sql = $this->platform->getDropAutoincrementSql($table); - foreach ($sql as $query) { - $this->connection->executeStatement($query); - } - - return true; - } - - public function dropTable(string $name): void - { - try { - $this->dropAutoincrement($name); - } catch (DatabaseObjectNotFoundException) { - } - - parent::dropTable($name); - } - - /** - * Returns the quoted representation of the given identifier name. - * - * Quotes non-uppercase identifiers explicitly to preserve case - * and thus make references to the particular identifier work. - */ - private function getQuotedIdentifierName(string $identifier): string - { - if (preg_match('/[a-z]/', $identifier) === 1) { - return $this->platform->quoteSingleIdentifier($identifier); - } - - return $identifier; - } - - protected function selectTableNames(string $databaseName): Result - { - $sql = <<<'SQL' -SELECT TABLE_NAME -FROM ALL_TABLES -WHERE OWNER = :OWNER -ORDER BY TABLE_NAME -SQL; - - return $this->connection->executeQuery($sql, ['OWNER' => $databaseName]); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['C.OWNER = :OWNER']; - $params = ['OWNER' => $databaseName]; - - if ($tableName !== null) { - $conditions[] = 'C.TABLE_NAME = :TABLE_NAME'; - $params['TABLE_NAME'] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT - C.TABLE_NAME, - C.COLUMN_NAME, - C.DATA_TYPE, - C.DATA_DEFAULT, - C.DATA_PRECISION, - C.DATA_SCALE, - C.CHAR_LENGTH, - C.DATA_LENGTH, - C.NULLABLE, - D.COMMENTS - FROM ALL_TAB_COLUMNS C - INNER JOIN ALL_TABLES T - ON T.OWNER = C.OWNER - AND T.TABLE_NAME = C.TABLE_NAME - LEFT JOIN ALL_COL_COMMENTS D - ON D.OWNER = C.OWNER - AND D.TABLE_NAME = C.TABLE_NAME - AND D.COLUMN_NAME = C.COLUMN_NAME - WHERE %s - ORDER BY C.TABLE_NAME, C.COLUMN_ID -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ['IND_COL.INDEX_OWNER = :OWNER']; - $params = ['OWNER' => $databaseName]; - - if ($tableName !== null) { - $conditions[] = 'IND_COL.TABLE_NAME = :TABLE_NAME'; - $params['TABLE_NAME'] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT - IND_COL.TABLE_NAME, - IND_COL.INDEX_NAME AS NAME, - IND.INDEX_TYPE AS TYPE, - DECODE(IND.UNIQUENESS, 'NONUNIQUE', 0, 'UNIQUE', 1) AS IS_UNIQUE, - IND_COL.COLUMN_NAME, - IND_COL.COLUMN_POSITION AS COLUMN_POS, - CON.CONSTRAINT_TYPE AS IS_PRIMARY - FROM ALL_IND_COLUMNS IND_COL - LEFT JOIN ALL_INDEXES IND - ON IND.OWNER = IND_COL.INDEX_OWNER - AND IND.INDEX_NAME = IND_COL.INDEX_NAME - LEFT JOIN ALL_CONSTRAINTS CON - ON CON.OWNER = IND_COL.INDEX_OWNER - AND CON.INDEX_NAME = IND_COL.INDEX_NAME - WHERE %s - ORDER BY IND_COL.TABLE_NAME, - IND_COL.INDEX_NAME, - IND_COL.COLUMN_POSITION -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - $conditions = ["ALC.CONSTRAINT_TYPE = 'R'", 'COLS.OWNER = :OWNER']; - $params = ['OWNER' => $databaseName]; - - if ($tableName !== null) { - $conditions[] = 'COLS.TABLE_NAME = :TABLE_NAME'; - $params['TABLE_NAME'] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT - COLS.TABLE_NAME, - ALC.CONSTRAINT_NAME, - ALC.DELETE_RULE, - ALC.DEFERRABLE, - ALC.DEFERRED, - COLS.COLUMN_NAME LOCAL_COLUMN, - COLS.POSITION, - R_COLS.TABLE_NAME REFERENCES_TABLE, - R_COLS.COLUMN_NAME FOREIGN_COLUMN - FROM ALL_CONS_COLUMNS COLS - LEFT JOIN ALL_CONSTRAINTS ALC ON ALC.OWNER = COLS.OWNER AND ALC.CONSTRAINT_NAME = COLS.CONSTRAINT_NAME - LEFT JOIN ALL_CONS_COLUMNS R_COLS ON R_COLS.OWNER = ALC.R_OWNER AND - R_COLS.CONSTRAINT_NAME = ALC.R_CONSTRAINT_NAME AND - R_COLS.POSITION = COLS.POSITION - WHERE %s - ORDER BY COLS.TABLE_NAME, - COLS.CONSTRAINT_NAME, - COLS.POSITION -SQL, - implode(' AND ', $conditions), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - $conditions = ['OWNER = :OWNER']; - $params = ['OWNER' => $databaseName]; - - if ($tableName !== null) { - $conditions[] = 'TABLE_NAME = :TABLE_NAME'; - $params['TABLE_NAME'] = $tableName; - } - - $sql = sprintf( - <<<'SQL' - SELECT TABLE_NAME, - COMMENTS - FROM ALL_TAB_COMMENTS - WHERE %s - ORDER BY TABLE_NAME -SQL, - implode(' AND ', $conditions), - ); - - $tableOptions = []; - foreach ($this->connection->iterateKeyValue($sql, $params) as $table => $comments) { - $tableOptions[$table] = ['comment' => $comments]; - } - - return $tableOptions; - } - - /** @deprecated Use {@see Identifier::toNormalizedValue()} instead. */ - protected function normalizeName(string $name): string - { - $identifier = new Identifier($name); - - return $identifier->isQuoted() ? $identifier->getName() : strtoupper($name); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PostgreSQLSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/PostgreSQLSchemaManager.php deleted file mode 100644 index 0282af3..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PostgreSQLSchemaManager.php +++ /dev/null @@ -1,542 +0,0 @@ - - */ -class PostgreSQLSchemaManager extends AbstractSchemaManager -{ - /** - * {@inheritDoc} - */ - public function listSchemaNames(): array - { - return $this->connection->fetchFirstColumn( - <<<'SQL' -SELECT schema_name -FROM information_schema.schemata -WHERE schema_name NOT LIKE 'pg\_%' -AND schema_name != 'information_schema' -SQL, - ); - } - - /** - * Returns the name of the current schema. - * - * @deprecated Use {@link getCurrentSchemaName()} instead - * - * @throws Exception - */ - protected function getCurrentSchema(): ?string - { - return $this->getCurrentSchemaName(); - } - - /** - * Determines the name of the current schema. - * - * @deprecated Use {@link determineCurrentSchemaName()} instead - * - * @return non-empty-string - * - * @throws Exception - */ - protected function determineCurrentSchema(): string - { - $currentSchema = $this->connection->fetchOne('SELECT current_schema()'); - assert(is_string($currentSchema)); - assert(strlen($currentSchema) > 0); - - return $currentSchema; - } - - protected function determineCurrentSchemaName(): ?string - { - return $this->determineCurrentSchema(); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - $onUpdate = null; - $onDelete = null; - - if ( - preg_match( - '(ON UPDATE ([a-zA-Z0-9]+( (NULL|ACTION|DEFAULT))?))', - $tableForeignKey['condef'], - $match, - ) === 1 - ) { - $onUpdate = $match[1]; - } - - if ( - preg_match( - '(ON DELETE ([a-zA-Z0-9]+( (NULL|ACTION|DEFAULT))?))', - $tableForeignKey['condef'], - $match, - ) === 1 - ) { - $onDelete = $match[1]; - } - - $result = preg_match('/FOREIGN KEY \((.+)\) REFERENCES (.+)\((.+)\)/', $tableForeignKey['condef'], $values); - assert($result === 1); - - // PostgreSQL returns identifiers that are keywords with quotes, we need them later, don't get - // the idea to trim them here. - $localColumns = array_map('trim', explode(',', $values[1])); - $foreignColumns = array_map('trim', explode(',', $values[3])); - $foreignTable = $values[2]; - - return new ForeignKeyConstraint( - $localColumns, - $foreignTable, - $foreignColumns, - $tableForeignKey['conname'], - [ - 'onUpdate' => $onUpdate, - 'onDelete' => $onDelete, - 'deferrable' => $tableForeignKey['condeferrable'], - 'deferred' => $tableForeignKey['condeferred'], - ], - ); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - return new View($view['schemaname'] . '.' . $view['viewname'], $view['definition']); - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - // @phpstan-ignore missingType.checkedException - $currentSchema = $this->getCurrentSchema(); - - if ($table['schema_name'] === $currentSchema) { - return $table['table_name']; - } - - return $table['schema_name'] . '.' . $table['table_name']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - return parent::_getPortableTableIndexesList(array_map( - /** @param array $row */ - static function (array $row): array { - return [ - 'key_name' => $row['relname'], - 'non_unique' => ! $row['indisunique'], - 'primary' => $row['indisprimary'], - 'where' => $row['where'], - 'column_name' => $row['attname'], - ]; - }, - $rows, - ), $tableName); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableDatabaseDefinition(array $database): string - { - return $database['datname']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableSequenceDefinition(array $sequence): Sequence - { - if ($sequence['schemaname'] !== 'public') { - $sequenceName = $sequence['schemaname'] . '.' . $sequence['relname']; - } else { - $sequenceName = $sequence['relname']; - } - - return new Sequence($sequenceName, (int) $sequence['increment_by'], (int) $sequence['min_value']); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $tableColumn = array_change_key_case($tableColumn, CASE_LOWER); - - $length = null; - $precision = null; - $scale = 0; - $fixed = false; - $jsonb = false; - - $dbType = $tableColumn['type']; - - if ( - $tableColumn['domain_type'] !== null - && ! $this->platform->hasDoctrineTypeMappingFor($dbType) - ) { - $dbType = $tableColumn['domain_type']; - $completeType = $tableColumn['domain_complete_type']; - } else { - $completeType = $tableColumn['complete_type']; - } - - $type = $this->platform->getDoctrineTypeMapping($dbType); - - switch ($dbType) { - case 'bpchar': - case 'varchar': - $parameters = $this->parseColumnTypeParameters($completeType); - if (count($parameters) > 0) { - $length = $parameters[0]; - } - - break; - - case 'double': - case 'decimal': - case 'money': - case 'numeric': - $parameters = $this->parseColumnTypeParameters($completeType); - if (count($parameters) > 0) { - $precision = $parameters[0]; - } - - if (count($parameters) > 1) { - $scale = $parameters[1]; - } - - break; - } - - if ($dbType === 'bpchar') { - $fixed = true; - } elseif ($dbType === 'jsonb') { - $jsonb = true; - } - - $options = [ - 'length' => $length, - 'notnull' => (bool) $tableColumn['isnotnull'], - 'default' => $this->parseDefaultExpression($tableColumn['default']), - 'precision' => $precision, - 'scale' => $scale, - 'fixed' => $fixed, - 'autoincrement' => $tableColumn['attidentity'] === 'd', - ]; - - if ($tableColumn['comment'] !== null) { - $options['comment'] = $tableColumn['comment']; - } - - $column = new Column($tableColumn['field'], Type::getType($type), $options); - - if (! empty($tableColumn['collation'])) { - $column->setPlatformOption('collation', $tableColumn['collation']); - } - - if ($column->getType() instanceof JsonType) { - $column->setPlatformOption('jsonb', $jsonb); - } - - return $column; - } - - /** - * Parses the parameters between parenthesis in the data type. - * - * @return list - */ - private function parseColumnTypeParameters(string $type): array - { - if (preg_match('/\((\d+)(?:,(\d+))?\)/', $type, $matches) !== 1) { - return []; - } - - $parameters = [(int) $matches[1]]; - - if (isset($matches[2])) { - $parameters[] = (int) $matches[2]; - } - - return $parameters; - } - - /** - * Parses a default value expression as given by PostgreSQL - */ - private function parseDefaultExpression(?string $expression): mixed - { - if ($expression === null || str_starts_with($expression, 'NULL::')) { - return null; - } - - if ($expression === 'true') { - return true; - } - - if ($expression === 'false') { - return false; - } - - if (preg_match("/^'(.*)'::/s", $expression, $matches) === 1) { - return str_replace("''", "'", $matches[1]); - } - - return $expression; - } - - protected function selectTableNames(string $databaseName): Result - { - $sql = <<<'SQL' -SELECT quote_ident(table_name) AS table_name, - table_schema AS schema_name -FROM information_schema.tables -WHERE table_catalog = ? - AND table_schema NOT LIKE 'pg\_%' - AND table_schema != 'information_schema' - AND table_name != 'geometry_columns' - AND table_name != 'spatial_ref_sys' - AND table_type = 'BASE TABLE' -ORDER BY - quote_ident(table_name) -SQL; - - return $this->connection->executeQuery($sql, [$databaseName]); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT quote_ident(n.nspname) AS schema_name, - quote_ident(c.relname) AS table_name, - quote_ident(a.attname) AS field, - t.typname AS type, - format_type(a.atttypid, a.atttypmod) AS complete_type, - bt.typname AS domain_type, - format_type(bt.oid, t.typtypmod) AS domain_complete_type, - a.attnotnull AS isnotnull, - a.attidentity, - (%s) AS "default", - dsc.description AS comment, - CASE - WHEN coll.collprovider = 'c' - THEN coll.collcollate - WHEN coll.collprovider = 'd' - THEN NULL - ELSE coll.collname - END AS collation - FROM pg_attribute a - JOIN pg_class c - ON c.oid = a.attrelid - JOIN pg_namespace n - ON n.oid = c.relnamespace - JOIN pg_type t - ON t.oid = a.atttypid - LEFT JOIN pg_type bt - ON t.typtype = 'd' - AND bt.oid = t.typbasetype - LEFT JOIN pg_collation coll - ON coll.oid = a.attcollation - LEFT JOIN pg_depend dep - ON dep.objid = c.oid - AND dep.deptype = 'e' - AND dep.classid = (SELECT oid FROM pg_class WHERE relname = 'pg_class') - LEFT JOIN pg_description dsc - ON dsc.objoid = c.oid AND dsc.objsubid = a.attnum - LEFT JOIN pg_inherits i - ON i.inhrelid = c.oid - LEFT JOIN pg_class p - ON i.inhparent = p.oid - AND p.relkind = 'p' - WHERE %s - -- 'r' for regular tables - 'p' for partitioned tables - AND c.relkind IN ('r', 'p') - AND a.attnum > 0 - AND dep.refobjid IS NULL - -- exclude partitions (tables that inherit from partitioned tables) - AND p.oid IS NULL - ORDER BY n.nspname, - c.relname, - a.attnum - SQL, - $this->platform->getDefaultColumnValueSQLSnippet(), - implode(' AND ', $this->buildQueryConditions($tableName, $params)), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - quote_ident(n.nspname) AS schema_name, - quote_ident(c.relname) AS table_name, - quote_ident(ic.relname) AS relname, - i.indisunique, - i.indisprimary, - i.indkey, - i.indrelid, - pg_get_expr(indpred, indrelid) AS "where", - quote_ident(attname) AS attname - FROM pg_index i - JOIN pg_class AS c ON c.oid = i.indrelid - JOIN pg_namespace n ON n.oid = c.relnamespace - JOIN pg_class AS ic ON ic.oid = i.indexrelid - JOIN LATERAL UNNEST(i.indkey) WITH ORDINALITY AS keys(attnum, ord) - ON TRUE - JOIN pg_attribute a - ON a.attrelid = c.oid - AND a.attnum = keys.attnum - WHERE %s - ORDER BY 1, 2, keys.ord; - SQL, - implode(' AND ', $this->buildQueryConditions($tableName, $params)), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - quote_ident(tn.nspname) AS schema_name, - quote_ident(tc.relname) AS table_name, - quote_ident(r.conname) as conname, - pg_get_constraintdef(r.oid, true) as condef, - r.condeferrable, - r.condeferred - FROM pg_constraint r - JOIN pg_class AS tc ON tc.oid = r.conrelid - JOIN pg_namespace tn ON tn.oid = tc.relnamespace - WHERE r.conrelid IN - ( - SELECT c.oid - FROM pg_class c - JOIN pg_namespace n - ON n.oid = c.relnamespace - WHERE %s) - AND r.contype = 'f' - ORDER BY 1, 2 - SQL, - implode(' AND ', $this->buildQueryConditions($tableName, $params)), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT quote_ident(n.nspname) AS schema_name, - quote_ident(c.relname) AS table_name, - CASE c.relpersistence WHEN 'u' THEN true ELSE false END as unlogged, - obj_description(c.oid, 'pg_class') AS comment - FROM pg_class c - INNER JOIN pg_namespace n - ON n.oid = c.relnamespace - WHERE - c.relkind = 'r' - AND %s - SQL, - implode(' AND ', $this->buildQueryConditions($tableName, $params)), - ); - - $tableOptions = []; - foreach ($this->connection->iterateAssociative($sql, $params) as $row) { - $tableOptions[$this->_getPortableTableDefinition($row)] = $row; - } - - return $tableOptions; - } - - /** - * @param list $params - * - * @return non-empty-list - */ - private function buildQueryConditions(?string $tableName, array &$params): array - { - $conditions = []; - - if ($tableName !== null) { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - - $conditions[] = 'n.nspname = ?'; - $params[] = $schemaName; - } else { - $conditions[] = 'n.nspname = ANY(current_schemas(false))'; - } - - $conditions[] = 'c.relname = ?'; - $params[] = $tableName; - } - - $conditions[] = "n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')"; - - return $conditions; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraint.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraint.php deleted file mode 100644 index 700a5bc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraint.php +++ /dev/null @@ -1,76 +0,0 @@ - */ -final readonly class PrimaryKeyConstraint implements OptionallyNamedObject -{ - /** - * @internal Use {@link PrimaryKeyConstraint::editor()} to instantiate an editor and - * {@link PrimaryKeyConstraintEditor::create()} to create a primary key constraint. - * - * @param ?UnqualifiedName $name Name of the primary key constraint. If omitted in the schema - * defined by the application, it is considered that the name is - * not essential and may be generated by the underlying database - * platform. - * @param non-empty-list $columnNames - */ - public function __construct( - private ?UnqualifiedName $name, - private array $columnNames, - private bool $isClustered, - ) { - if (count($this->columnNames) < 1) { - throw InvalidPrimaryKeyConstraintDefinition::columnNamesNotSet(); - } - } - - public function getObjectName(): ?UnqualifiedName - { - return $this->name; - } - - /** - * Returns the names of the columns. - * - * @return non-empty-list - */ - public function getColumnNames(): array - { - return $this->columnNames; - } - - /** - * Returns whether the primary key constraint is clustered. - */ - public function isClustered(): bool - { - return $this->isClustered; - } - - /** - * Instantiates a new primary key constraint editor. - */ - public static function editor(): PrimaryKeyConstraintEditor - { - return new PrimaryKeyConstraintEditor(); - } - - /** - * Instantiates a new foreign key constraint editor and initializes it with the constraint's properties. - */ - public function edit(): PrimaryKeyConstraintEditor - { - return self::editor() - ->setName($this->name) - ->setColumnNames(...$this->columnNames) - ->setIsClustered($this->isClustered); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraintEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraintEditor.php deleted file mode 100644 index 0dc55f4..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/PrimaryKeyConstraintEditor.php +++ /dev/null @@ -1,108 +0,0 @@ - */ - private array $columnNames = []; - - private bool $isClustered = true; - - /** - * @internal Use {@link PrimaryKeyConstraint::editor()} or {@link PrimaryKeyConstraint::edit()} to create - * an instance. - */ - public function __construct() - { - } - - public function setName(?UnqualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** @param non-empty-string $name */ - public function setUnquotedName(string $name): self - { - $this->name = UnqualifiedName::unquoted($name); - - return $this; - } - - /** @param non-empty-string $name */ - public function setQuotedName(string $name): self - { - $this->name = UnqualifiedName::quoted($name); - - return $this; - } - - public function setColumnNames(UnqualifiedName $firstColumnName, UnqualifiedName ...$otherColumnNames): self - { - $this->columnNames = [$firstColumnName, ...array_values($otherColumnNames)]; - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setUnquotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::unquoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setQuotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::quoted($name), - [$firstColumnName, ...array_values($otherColumnNames)], - ); - - return $this; - } - - public function setIsClustered(bool $isClustered): self - { - $this->isClustered = $isClustered; - - return $this; - } - - public function create(): PrimaryKeyConstraint - { - if (count($this->columnNames) < 1) { - throw InvalidPrimaryKeyConstraintDefinition::columnNamesNotSet(); - } - - return new PrimaryKeyConstraint($this->name, $this->columnNames, $this->isClustered); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLServerSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLServerSchemaManager.php deleted file mode 100644 index a386433..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLServerSchemaManager.php +++ /dev/null @@ -1,515 +0,0 @@ - - */ -class SQLServerSchemaManager extends AbstractSchemaManager -{ - private ?string $databaseCollation = null; - - /** - * {@inheritDoc} - */ - public function listSchemaNames(): array - { - return $this->connection->fetchFirstColumn( - <<<'SQL' -SELECT name -FROM sys.schemas -WHERE name NOT IN('guest', 'INFORMATION_SCHEMA', 'sys') -SQL, - ); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableSequenceDefinition(array $sequence): Sequence - { - return new Sequence($sequence['name'], (int) $sequence['increment'], (int) $sequence['start_value']); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $dbType = $tableColumn['type']; - - $length = (int) $tableColumn['length']; - - $precision = null; - - $scale = 0; - $fixed = false; - - if ($tableColumn['scale'] !== null) { - $scale = (int) $tableColumn['scale']; - } - - if ($tableColumn['precision'] !== null) { - $precision = (int) $tableColumn['precision']; - } - - switch ($dbType) { - case 'nchar': - case 'ntext': - // Unicode data requires 2 bytes per character - $length /= 2; - break; - - case 'nvarchar': - if ($length === -1) { - break; - } - - // Unicode data requires 2 bytes per character - $length /= 2; - break; - - case 'varchar': - // TEXT type is returned as VARCHAR(MAX) with a length of -1 - if ($length === -1) { - $dbType = 'text'; - } - - break; - - case 'varbinary': - if ($length === -1) { - $dbType = 'blob'; - } - - break; - } - - if ($dbType === 'char' || $dbType === 'nchar' || $dbType === 'binary') { - $fixed = true; - } - - $type = $this->platform->getDoctrineTypeMapping($dbType); - - $options = [ - 'fixed' => $fixed, - 'notnull' => (bool) $tableColumn['notnull'], - 'scale' => $scale, - 'precision' => $precision, - 'autoincrement' => (bool) $tableColumn['autoincrement'], - ]; - - if ($tableColumn['comment'] !== null) { - $options['comment'] = $tableColumn['comment']; - } - - if ($length !== 0 && ($type === 'text' || $type === 'string' || $type === 'binary')) { - $options['length'] = $length; - } - - $column = new Column($tableColumn['name'], Type::getType($type), $options); - - if ($tableColumn['default'] !== null) { - $default = $this->parseDefaultExpression($tableColumn['default']); - - $column->setDefault($default); - $column->setPlatformOption( - SQLServerPlatform::OPTION_DEFAULT_CONSTRAINT_NAME, - $tableColumn['df_name'], - ); - } - - $column->setPlatformOption('collation', $tableColumn['collation']); - - return $column; - } - - private function parseDefaultExpression(string $value): ?string - { - while (preg_match('/^\((.*)\)$/s', $value, $matches) === 1) { - $value = $matches[1]; - } - - if ($value === 'NULL') { - return null; - } - - if (preg_match('/^\'(.*)\'$/s', $value, $matches) === 1) { - $value = str_replace("''", "'", $matches[1]); - } - - if ($value === 'getdate()') { - return $this->platform->getCurrentTimestampSQL(); - } - - return $value; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $foreignKeys = []; - - foreach ($rows as $row) { - $name = $row['ForeignKey']; - - if (! isset($foreignKeys[$name])) { - $referencedTableName = $row['ReferenceTableName']; - - // @phpstan-ignore missingType.checkedException - if ($row['ReferenceSchemaName'] !== $this->getCurrentSchemaName()) { - $referencedTableName = $row['ReferenceSchemaName'] . '.' . $referencedTableName; - } - - $foreignKeys[$name] = [ - 'local_columns' => [$row['ColumnName']], - 'foreign_table' => $referencedTableName, - 'foreign_columns' => [$row['ReferenceColumnName']], - 'name' => $name, - 'options' => [ - 'onUpdate' => str_replace('_', ' ', $row['update_referential_action_desc']), - 'onDelete' => str_replace('_', ' ', $row['delete_referential_action_desc']), - ], - ]; - } else { - $foreignKeys[$name]['local_columns'][] = $row['ColumnName']; - $foreignKeys[$name]['foreign_columns'][] = $row['ReferenceColumnName']; - } - } - - return parent::_getPortableTableForeignKeysList($foreignKeys); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableIndexesList(array $rows, string $tableName): array - { - foreach ($rows as &$row) { - $row['non_unique'] = (bool) $row['non_unique']; - $row['primary'] = (bool) $row['primary']; - $row['flags'] = $row['flags'] ? [$row['flags']] : null; - } - - return parent::_getPortableTableIndexesList($rows, $tableName); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - return new ForeignKeyConstraint( - $tableForeignKey['local_columns'], - $tableForeignKey['foreign_table'], - $tableForeignKey['foreign_columns'], - $tableForeignKey['name'], - $tableForeignKey['options'], - ); - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - // @phpstan-ignore missingType.checkedException - if ($table['schema_name'] !== $this->getCurrentSchemaName()) { - return $table['schema_name'] . '.' . $table['table_name']; - } - - return $table['table_name']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableDatabaseDefinition(array $database): string - { - return $database['name']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - return new View($view['name'], $view['definition']); - } - - /** @throws Exception */ - public function createComparator(/* ComparatorConfig $config = new ComparatorConfig() */): Comparator - { - return new SQLServer\Comparator( - $this->platform, - $this->getDatabaseCollation(), - func_num_args() > 0 ? func_get_arg(0) : new ComparatorConfig(), - ); - } - - /** @throws Exception */ - private function getDatabaseCollation(): string - { - if ($this->databaseCollation === null) { - $databaseCollation = $this->connection->fetchOne( - 'SELECT collation_name FROM sys.databases WHERE name = ' - . $this->platform->getCurrentDatabaseExpression(), - ); - - // a database is always selected, even if omitted in the connection parameters - assert(is_string($databaseCollation)); - - $this->databaseCollation = $databaseCollation; - } - - return $this->databaseCollation; - } - - protected function determineCurrentSchemaName(): ?string - { - $schemaName = $this->connection->fetchOne('SELECT SCHEMA_NAME()'); - assert($schemaName !== false); - - return $schemaName; - } - - protected function selectTableNames(string $databaseName): Result - { - // The "sysdiagrams" table must be ignored as it's internal SQL Server table for Database Diagrams - $sql = <<<'SQL' -SELECT SCHEMA_NAME(schema_id) AS schema_name, - name AS table_name -FROM sys.tables -WHERE name != 'sysdiagrams' -ORDER BY name -SQL; - - return $this->connection->executeQuery($sql); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - scm.name AS schema_name, - tbl.name AS table_name, - col.name, - type.name AS type, - col.max_length AS length, - ~col.is_nullable AS notnull, - def.definition AS [default], - def.name AS df_name, - col.scale, - col.precision, - col.is_identity AS autoincrement, - col.collation_name AS collation, - -- CAST avoids driver error for sql_variant type - CAST(prop.value AS NVARCHAR(MAX)) AS comment - FROM sys.columns AS col - JOIN sys.types AS type - ON col.user_type_id = type.user_type_id - JOIN sys.tables AS tbl - ON col.object_id = tbl.object_id - JOIN sys.schemas AS scm - ON tbl.schema_id = scm.schema_id - LEFT JOIN sys.default_constraints def - ON col.default_object_id = def.object_id - AND col.object_id = def.parent_object_id - LEFT JOIN sys.extended_properties AS prop - ON tbl.object_id = prop.major_id - AND col.column_id = prop.minor_id - AND prop.name = 'MS_Description' - WHERE %s - ORDER BY scm.name, - tbl.name, - col.column_id -SQL, - $this->getWhereClause($tableName, 'scm.name', 'tbl.name', $params), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - scm.name AS schema_name, - tbl.name AS table_name, - idx.name AS key_name, - col.name AS column_name, - ~idx.is_unique AS non_unique, - idx.is_primary_key AS [primary], - CASE idx.type - WHEN '1' THEN 'clustered' - WHEN '2' THEN 'nonclustered' - ELSE NULL - END AS flags - FROM sys.tables AS tbl - JOIN sys.schemas AS scm - ON tbl.schema_id = scm.schema_id - JOIN sys.indexes AS idx - ON tbl.object_id = idx.object_id - JOIN sys.index_columns AS idxcol - ON idx.object_id = idxcol.object_id - AND idx.index_id = idxcol.index_id - JOIN sys.columns AS col - ON idxcol.object_id = col.object_id - AND idxcol.column_id = col.column_id - WHERE %s - ORDER BY scm.name, - tbl.name, - idx.index_id, - idxcol.key_ordinal -SQL, - $this->getWhereClause($tableName, 'scm.name', 'tbl.name', $params), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - SCHEMA_NAME(f.schema_id) AS schema_name, - OBJECT_NAME(f.parent_object_id) AS table_name, - f.name AS ForeignKey, - COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName, - SCHEMA_NAME(t.schema_id) ReferenceSchemaName, - OBJECT_NAME(f.referenced_object_id) AS ReferenceTableName, - COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName, - f.delete_referential_action_desc, - f.update_referential_action_desc - FROM sys.foreign_keys AS f - INNER JOIN sys.foreign_key_columns AS fc - ON f.object_id = fc.constraint_object_id - INNER JOIN sys.tables AS t - ON t.object_id = fc.referenced_object_id - WHERE %s - ORDER BY 1, - 2, - 3, - fc.constraint_column_id -SQL, - $this->getWhereClause( - $tableName, - 'SCHEMA_NAME(f.schema_id)', - 'OBJECT_NAME(f.parent_object_id)', - $params, - ), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT - scm.name AS schema_name, - tbl.name AS table_name, - p.value - FROM - sys.tables AS tbl - JOIN sys.schemas AS scm - ON tbl.schema_id = scm.schema_id - INNER JOIN sys.extended_properties AS p ON p.major_id=tbl.object_id AND p.minor_id=0 AND p.class=1 - WHERE - p.name = N'MS_Description' - AND %s -SQL, - $this->getWhereClause($tableName, 'scm.name', 'tbl.name', $params), - ); - - $tableOptions = []; - foreach ($this->connection->iterateAssociative($sql, $params) as $data) { - $data = array_change_key_case($data, CASE_LOWER); - - $tableOptions[$this->_getPortableTableDefinition($data)] = [ - 'comment' => $data['value'], - ]; - } - - return $tableOptions; - } - - /** - * Returns the where clause to filter schema and table name in a query. - * - * @param ?string $tableName The full qualified name of the table. - * @param string $schemaColumn The name of the column to compare the schema to in the where clause. - * @param string $tableColumn The name of the column to compare the table to in the where clause. - * @param list $params - */ - private function getWhereClause( - ?string $tableName, - string $schemaColumn, - string $tableColumn, - array &$params, - ): string { - $conditions = []; - - if ($tableName !== null) { - if (str_contains($tableName, '.')) { - [$schemaName, $tableName] = explode('.', $tableName); - - $conditions = [sprintf('%s = ?', $schemaColumn)]; - $params[] = $schemaName; - } else { - $conditions = [sprintf('%s = SCHEMA_NAME()', $schemaColumn)]; - } - - $conditions[] = sprintf('%s = ?', $tableColumn); - $params[] = $tableName; - } - - // The "sysdiagrams" table must be ignored as it's internal SQL Server table for Database Diagrams - $conditions[] = sprintf("%s != 'sysdiagrams'", $tableColumn); - - return implode(' AND ', $conditions); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLiteSchemaManager.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLiteSchemaManager.php deleted file mode 100644 index 8a8cba8..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SQLiteSchemaManager.php +++ /dev/null @@ -1,622 +0,0 @@ - - */ -class SQLiteSchemaManager extends AbstractSchemaManager -{ - public function createForeignKey(ForeignKeyConstraint $foreignKey, string $table): void - { - $table = $this->introspectTable($table); - - $this->alterTable(new TableDiff($table, addedForeignKeys: [$foreignKey])); - } - - public function dropForeignKey(string $name, string $table): void - { - $table = $this->introspectTable($table); - - $foreignKey = $table->getForeignKey($name); - - $this->alterTable(new TableDiff($table, droppedForeignKeys: [$foreignKey])); - } - - /** - * @deprecated Use the schema name and the unqualified table name separately instead. - * - * {@inheritDoc} - */ - protected function _getPortableTableDefinition(array $table): string - { - return $table['table_name']; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableColumnDefinition(array $tableColumn): Column - { - $matchResult = preg_match('/^([A-Z\s]+?)(?:\s*\((\d+)(?:,\s*(\d+))?\))?$/i', $tableColumn['type'], $matches); - assert($matchResult === 1); - - $dbType = strtolower($matches[1]); - - $length = $precision = null; - $fixed = $unsigned = false; - $scale = 0; - - if (isset($matches[2])) { - if (isset($matches[3])) { - $precision = (int) $matches[2]; - $scale = (int) $matches[3]; - } else { - $length = (int) $matches[2]; - } - } - - if (str_contains($dbType, ' unsigned')) { - $dbType = str_replace(' unsigned', '', $dbType); - $unsigned = true; - } - - $type = $this->platform->getDoctrineTypeMapping($dbType); - $default = $tableColumn['dflt_value']; - if ($default === 'NULL') { - $default = null; - } - - if ($default !== null) { - // SQLite returns the default value as a literal expression, so we need to parse it - if (preg_match('/^\'(.*)\'$/s', $default, $matches) === 1) { - $default = str_replace("''", "'", $matches[1]); - } - } - - $notnull = (bool) $tableColumn['notnull']; - - if ($dbType === 'char') { - $fixed = true; - } - - $options = [ - 'autoincrement' => $tableColumn['autoincrement'], - 'comment' => $tableColumn['comment'], - 'length' => $length, - 'unsigned' => $unsigned, - 'fixed' => $fixed, - 'notnull' => $notnull, - 'default' => $default, - 'precision' => $precision, - 'scale' => $scale, - ]; - - $column = new Column($tableColumn['name'], Type::getType($type), $options); - - if ($type === Types::STRING || $type === Types::TEXT) { - $column->setPlatformOption('collation', $tableColumn['collation'] ?? 'BINARY'); - } - - return $column; - } - - /** - * {@inheritDoc} - */ - protected function _getPortableViewDefinition(array $view): View - { - return new View($view['name'], $view['sql']); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeysList(array $rows): array - { - $list = []; - foreach ($rows as $row) { - $row = array_change_key_case($row, CASE_LOWER); - $id = $row['id']; - if (! isset($list[$id])) { - if (! isset($row['on_delete']) || $row['on_delete'] === 'RESTRICT') { - $row['on_delete'] = null; - } - - if (! isset($row['on_update']) || $row['on_update'] === 'RESTRICT') { - $row['on_update'] = null; - } - - $list[$id] = [ - 'name' => $row['constraint_name'], - 'local' => [], - 'foreign' => [], - 'foreignTable' => $row['table'], - 'onDelete' => $row['on_delete'], - 'onUpdate' => $row['on_update'], - 'deferrable' => $row['deferrable'], - 'deferred' => $row['deferred'], - ]; - } - - $list[$id]['local'][] = $row['from']; - - if ($row['to'] === null) { - continue; - } - - $list[$id]['foreign'][] = $row['to']; - } - - foreach ($list as $id => $value) { - if (count($value['foreign']) !== 0) { - continue; - } - - // Inferring a shorthand form for the foreign key constraint, where the "to" field is empty. - // @see https://www.sqlite.org/foreignkeys.html#fk_indexes. - // @phpstan-ignore missingType.checkedException - $foreignTablePrimaryKeyColumnRows = $this->fetchPrimaryKeyColumns($value['foreignTable']); - - if (count($foreignTablePrimaryKeyColumnRows) < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6701', - 'Introspection of SQLite foreign key constraints with omitted referenced column names' - . ' in an incomplete schema is deprecated.', - ); - - continue; - } - - $list[$id]['foreign'] = array_column($foreignTablePrimaryKeyColumnRows, 'name'); - } - - return parent::_getPortableTableForeignKeysList($list); - } - - /** - * {@inheritDoc} - */ - protected function _getPortableTableForeignKeyDefinition(array $tableForeignKey): ForeignKeyConstraint - { - return new ForeignKeyConstraint( - $tableForeignKey['local'], - $tableForeignKey['foreignTable'], - $tableForeignKey['foreign'], - $tableForeignKey['name'], - [ - 'onDelete' => $tableForeignKey['onDelete'], - 'onUpdate' => $tableForeignKey['onUpdate'], - 'deferrable' => $tableForeignKey['deferrable'], - 'deferred' => $tableForeignKey['deferred'], - ], - ); - } - - private function parseColumnCollationFromSQL(string $column, string $sql): ?string - { - $pattern = '{' . $this->buildIdentifierPattern($column) - . '[^,(]+(?:\([^()]+\)[^,]*)?(?:(?:DEFAULT|CHECK)\s*(?:\(.*?\))?[^,]*)*COLLATE\s+["\']?([^\s,"\')]+)}is'; - - if (preg_match($pattern, $sql, $match) !== 1) { - return null; - } - - return $match[1]; - } - - private function parseTableCommentFromSQL(string $table, string $sql): ?string - { - $pattern = '/\s* # Allow whitespace characters at start of line -CREATE\sTABLE' . $this->buildIdentifierPattern($table) . ' -( # Start capture - (?:\s*--[^\n]*\n?)+ # Capture anything that starts with whitespaces followed by -- until the end of the line(s) -)/ix'; - - if (preg_match($pattern, $sql, $match) !== 1) { - return null; - } - - $comment = preg_replace('{^\s*--}m', '', rtrim($match[1], "\n")); - - return $comment === '' ? null : $comment; - } - - private function parseColumnCommentFromSQL(string $column, string $sql): string - { - $pattern = '{[\s(,]' . $this->buildIdentifierPattern($column) - . '(?:\([^)]*?\)|[^,(])*?,?((?:(?!\n))(?:\s*--[^\n]*\n?)+)}i'; - - if (preg_match($pattern, $sql, $match) !== 1) { - return ''; - } - - $comment = preg_replace('{^\s*--}m', '', rtrim($match[1], "\n")); - assert(is_string($comment)); - - return $comment; - } - - /** - * Returns a regular expression pattern that matches the given unquoted or quoted identifier. - */ - private function buildIdentifierPattern(string $identifier): string - { - return '(?:' . implode('|', array_map( - static function (string $sql): string { - return '\W' . preg_quote($sql, '/') . '\W'; - }, - [ - $identifier, - $this->platform->quoteSingleIdentifier($identifier), - ], - )) . ')'; - } - - /** @throws Exception */ - private function getCreateTableSQL(string $table): string - { - $sql = $this->connection->fetchOne( - <<<'SQL' -SELECT sql - FROM ( - SELECT * - FROM sqlite_master - UNION ALL - SELECT * - FROM sqlite_temp_master - ) -WHERE type = 'table' -AND name = ? -SQL - , - [$table], - ); - - if ($sql !== false) { - return $sql; - } - - return ''; - } - - /** - * @return list> - * - * @throws Exception - */ - private function getForeignKeyDetails(string $table): array - { - $createSql = $this->getCreateTableSQL($table); - - if ( - preg_match_all( - '# - (?:CONSTRAINT\s+(\S+)\s+)? - (?:FOREIGN\s+KEY[^)]+\)\s*)? - REFERENCES\s+\S+\s*(?:\([^)]+\))? - (?: - [^,]*? - (NOT\s+DEFERRABLE|DEFERRABLE) - (?:\s+INITIALLY\s+(DEFERRED|IMMEDIATE))? - )?#isx', - $createSql, - $match, - ) === 0 - ) { - return []; - } - - $names = $match[1]; - $deferrable = $match[2]; - $deferred = $match[3]; - $details = []; - - for ($i = 0, $count = count($match[0]); $i < $count; $i++) { - $details[] = [ - 'constraint_name' => $names[$i] ?? '', - 'deferrable' => isset($deferrable[$i]) && strcasecmp($deferrable[$i], 'deferrable') === 0, - 'deferred' => isset($deferred[$i]) && strcasecmp($deferred[$i], 'deferred') === 0, - ]; - } - - return $details; - } - - public function createComparator(/* ComparatorConfig $config = new ComparatorConfig() */): Comparator - { - return new SQLite\Comparator($this->platform, func_num_args() > 0 ? func_get_arg(0) : new ComparatorConfig()); - } - - protected function selectTableNames(string $databaseName): Result - { - $sql = <<<'SQL' -SELECT name AS table_name -FROM sqlite_master -WHERE type = 'table' - AND name NOT IN ('geometry_columns', 'spatial_ref_sys', 'sqlite_sequence') -UNION ALL -SELECT name -FROM sqlite_temp_master -WHERE type = 'table' -ORDER BY name -SQL; - - return $this->connection->executeQuery($sql); - } - - protected function selectTableColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT t.name AS table_name, - c.* - FROM sqlite_master t - JOIN pragma_table_info(t.name) c - WHERE %s - ORDER BY t.name, - c.cid -SQL, - $this->getWhereClause($tableName, $params), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - * - * @link https://www.sqlite.org/pragma.html#pragma_index_info - * @link https://www.sqlite.org/pragma.html#pragma_table_info - * @link https://www.sqlite.org/fileformat2.html#internal_schema_objects - */ - protected function selectIndexColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT t.name AS table_name, - i.name, - i."unique", - c.name AS column_name - FROM sqlite_master t - JOIN pragma_index_list(t.name) i - JOIN pragma_index_info(i.name) c - WHERE %s - AND i.name NOT LIKE 'sqlite_%%' - ORDER BY t.name, i.seq, c.seqno -SQL, - $this->getWhereClause($tableName, $params), - ); - - return $this->connection->executeQuery($sql, $params); - } - - protected function selectForeignKeyColumns(string $databaseName, ?string $tableName = null): Result - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT t.name AS table_name, - p.* - FROM sqlite_master t - JOIN pragma_foreign_key_list(t.name) p - ON p.seq != '-1' - WHERE %s - ORDER BY t.name, - p.id DESC, - p.seq -SQL, - $this->getWhereClause($tableName, $params), - ); - - return $this->connection->executeQuery($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchTableColumns(string $databaseName, ?string $tableName = null): array - { - $rows = parent::fetchTableColumns($databaseName, $tableName); - - $sqlByTable = $pkColumnNamesByTable = $result = []; - - foreach ($rows as $row) { - $tableName = $row['table_name']; - - $sqlByTable[$tableName] ??= $this->getCreateTableSQL($tableName); - - if ($row['pk'] === 0 || $row['pk'] === '0' || $row['type'] !== 'INTEGER') { - continue; - } - - $pkColumnNamesByTable[$tableName][] = $row['name']; - } - - foreach ($rows as $row) { - $tableName = $row['table_name']; - $columnName = $row['name']; - $tableSQL = $sqlByTable[$row['table_name']]; - - $result[] = array_merge($row, [ - 'autoincrement' => isset($pkColumnNamesByTable[$tableName]) - && $pkColumnNamesByTable[$tableName] === [$columnName], - 'collation' => $this->parseColumnCollationFromSQL($columnName, $tableSQL), - 'comment' => $this->parseColumnCommentFromSQL($columnName, $tableSQL), - ]); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - protected function fetchIndexColumns(string $databaseName, ?string $tableName = null): array - { - $result = []; - - $pkColumnNameRows = $this->fetchPrimaryKeyColumns($tableName); - - foreach ($pkColumnNameRows as $pkColumnNameRow) { - $result[] = [ - 'table_name' => $pkColumnNameRow['table_name'], - 'key_name' => 'primary', - 'primary' => true, - 'non_unique' => false, - 'column_name' => $pkColumnNameRow['name'], - ]; - } - - $indexColumnRows = parent::fetchIndexColumns($databaseName, $tableName); - - foreach ($indexColumnRows as $indexColumnRow) { - $result[] = [ - 'table_name' => $indexColumnRow['table_name'], - 'key_name' => $indexColumnRow['name'], - 'primary' => false, - 'non_unique' => ! $indexColumnRow['unique'], - 'column_name' => $indexColumnRow['column_name'], - ]; - } - - return $result; - } - - /** - * Fetches names of primary key columns. If the table name is specified, narrows down the selection to this table. - * - * @link https://www.sqlite.org/pragma.html#pragma_table_info - * - * @return list> - * - * @throws Exception - */ - private function fetchPrimaryKeyColumns(?string $tableName = null): array - { - $params = []; - - $sql = sprintf( - <<<'SQL' - SELECT t.name AS table_name, - p.name - FROM sqlite_master t - JOIN pragma_table_info(t.name) p - WHERE %s - AND p.pk > 0 - ORDER BY t.name, - p.pk - SQL, - $this->getWhereClause($tableName, $params), - ); - - return $this->connection->fetchAllAssociative($sql, $params); - } - - /** - * {@inheritDoc} - */ - protected function fetchForeignKeyColumns(string $databaseName, ?string $tableName = null): array - { - $columnsByTable = []; - foreach (parent::fetchForeignKeyColumns($databaseName, $tableName) as $column) { - $columnsByTable[$column['table_name']][] = $column; - } - - $columns = []; - foreach ($columnsByTable as $table => $tableColumns) { - $foreignKeyDetails = $this->getForeignKeyDetails($table); - $foreignKeyCount = count($foreignKeyDetails); - - foreach ($tableColumns as $column) { - // SQLite identifies foreign keys in reverse order of appearance in SQL - $columns[] = array_merge($column, $foreignKeyDetails[$foreignKeyCount - $column['id'] - 1]); - } - } - - return $columns; - } - - /** - * {@inheritDoc} - */ - protected function fetchTableOptionsByTable(string $databaseName, ?string $tableName = null): array - { - if ($tableName === null) { - $tables = $this->listTableNames(); - } else { - $tables = [$tableName]; - } - - $tableOptions = []; - foreach ($tables as $table) { - $comment = $this->parseTableCommentFromSQL($table, $this->getCreateTableSQL($table)); - - if ($comment === null) { - continue; - } - - $tableOptions[$table]['comment'] = $comment; - } - - /** @phpstan-ignore return.type */ - return $tableOptions; - } - - /** @param list $params */ - private function getWhereClause(?string $tableName, array &$params): string - { - $conditions = [ - "t.type = 'table'", - "t.name NOT IN ('geometry_columns', 'spatial_ref_sys', 'sqlite_sequence')", - ]; - - if ($tableName !== null) { - $conditions[] = 't.name = ?'; - $params[] = $tableName; - } - - return implode(' AND ', $conditions); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Schema.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Schema.php deleted file mode 100644 index 8d4f41d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Schema.php +++ /dev/null @@ -1,481 +0,0 @@ - - */ -class Schema extends AbstractAsset -{ - /** - * The namespaces in this schema. - * - * @var array - */ - private array $namespaces = []; - - /** @var array */ - protected array $_tables = []; - - /** @var array */ - protected array $_sequences = []; - - protected SchemaConfig $_schemaConfig; - - /** - * Indicates whether the schema uses unqualified names for its objects. Once this flag is set to true, it won't be - * unset even after the objects with unqualified names have been dropped from the schema. - */ - private bool $usesUnqualifiedNames = false; - - /** - * @param array
$tables - * @param array $sequences - * @param array $namespaces - */ - public function __construct( - array $tables = [], - array $sequences = [], - ?SchemaConfig $schemaConfig = null, - array $namespaces = [], - ) { - $schemaConfig ??= new SchemaConfig(); - - $this->_schemaConfig = $schemaConfig; - - $name = $schemaConfig->getName(); - - parent::__construct($name ?? ''); - - foreach ($namespaces as $namespace) { - $this->createNamespace($namespace); - } - - foreach ($tables as $table) { - $table->setSchemaConfig($this->_schemaConfig); - $this->_addTable($table); - } - - foreach ($sequences as $sequence) { - $this->_addSequence($sequence); - } - } - - /** @deprecated */ - public function getName(): string - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6734', - 'Using Schema as AbstractAsset, including %s, is deprecated.', - __METHOD__, - ); - - return parent::getName(); - } - - protected function getNameParser(): UnqualifiedNameParser - { - return Parsers::getUnqualifiedNameParser(); - } - - /** - * The object representation of the name isn't used because {@see Schema} is not an {@see AbstractAsset}. - * - * This method implements the abstract method in the parent class and will be removed once {@see Schema} stops - * extending {@see AbstractAsset}. - */ - protected function setName(?Name $name): void - { - } - - protected function _addTable(Table $table): void - { - $resolvedName = $this->resolveName($table); - - $key = $this->getKeyFromResolvedName($resolvedName); - - if (isset($this->_tables[$key])) { - throw TableAlreadyExists::new($resolvedName->getName()); - } - - $namespaceName = $resolvedName->getNamespaceName(); - - if ($namespaceName !== null) { - if ( - ! $table->isInDefaultNamespace($this->getName()) - && ! $this->hasNamespace($namespaceName) - ) { - $this->createNamespace($namespaceName); - } - } else { - $this->usesUnqualifiedNames = true; - } - - $this->_tables[$key] = $table; - } - - protected function _addSequence(Sequence $sequence): void - { - $resolvedName = $this->resolveName($sequence); - - $key = $this->getKeyFromResolvedName($resolvedName); - - if (isset($this->_sequences[$key])) { - throw SequenceAlreadyExists::new($resolvedName->getName()); - } - - $namespaceName = $resolvedName->getNamespaceName(); - - if ($namespaceName !== null) { - if ( - ! $sequence->isInDefaultNamespace($this->getName()) - && ! $this->hasNamespace($namespaceName) - ) { - $this->createNamespace($namespaceName); - } - } else { - $this->usesUnqualifiedNames = true; - } - - $this->_sequences[$key] = $sequence; - } - - /** - * Returns the namespaces of this schema. - * - * @return list A list of namespace names. - */ - public function getNamespaces(): array - { - return array_values($this->namespaces); - } - - /** - * Gets all tables of this schema. - * - * @return list
- */ - public function getTables(): array - { - return array_values($this->_tables); - } - - public function getTable(string $name): Table - { - $key = $this->getKeyFromName($name); - if (! isset($this->_tables[$key])) { - throw TableDoesNotExist::new($name); - } - - return $this->_tables[$key]; - } - - /** - * Returns the key that will be used to store the given object in a collection of such objects based on its name. - * - * If the schema uses unqualified names, the object name must be unqualified. If the schema uses qualified names, - * the object name must be qualified. - * - * The resulting key is the lower-cased full object name. Lower-casing is - * actually wrong, but we have to do it to keep our sanity. If you are - * using database objects that only differentiate in the casing (FOO vs - * Foo) then you will NOT be able to use Doctrine Schema abstraction. - * - * @param AbstractAsset $asset - * - * @template N of Name - */ - private function getKeyFromResolvedName(AbstractAsset $asset): string - { - $key = $asset->getName(); - - if ($asset->getNamespaceName() !== null) { - if ($this->usesUnqualifiedNames) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6677#user-content-qualified-names', - 'Using qualified names to create or reference objects in a schema that uses unqualified ' - . 'names is deprecated.', - ); - } - - $key = $this->getName() . '.' . $key; - } elseif (count($this->namespaces) > 0) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6677#user-content-unqualified-names', - 'Using unqualified names to create or reference objects in a schema that uses qualified ' - . 'names and lacks a default namespace configuration is deprecated.', - ); - } - - return strtolower($key); - } - - /** - * Returns the key that will be used to store the given object with the given name in a collection of such objects. - * - * If the schema configuration has the default namespace, an unqualified name will be resolved to qualified against - * that namespace. - */ - private function getKeyFromName(string $name): string - { - return $this->getKeyFromResolvedName($this->resolveName(new Identifier($name))); - } - - /** - * Resolves the qualified or unqualified name against the current schema name and returns a qualified name. - * - * @param AbstractAsset $asset A database object with optionally qualified name. - * - * @template N of Name - */ - private function resolveName(AbstractAsset $asset): AbstractAsset - { - if ($asset->getNamespaceName() === null) { - $defaultNamespaceName = $this->getName(); - - if ($defaultNamespaceName !== '') { - return new Identifier($defaultNamespaceName . '.' . $asset->getName()); - } - } - - return $asset; - } - - /** - * Returns the unquoted representation of a given asset name. - */ - private function getUnquotedAssetName(string $assetName): string - { - if ($this->isIdentifierQuoted($assetName)) { - return $this->trimQuotes($assetName); - } - - return $assetName; - } - - /** - * Does this schema have a namespace with the given name? - */ - public function hasNamespace(string $name): bool - { - $name = strtolower($this->getUnquotedAssetName($name)); - - return isset($this->namespaces[$name]); - } - - /** - * Does this schema have a table with the given name? - */ - public function hasTable(string $name): bool - { - $key = $this->getKeyFromName($name); - - return isset($this->_tables[$key]); - } - - public function hasSequence(string $name): bool - { - $key = $this->getKeyFromName($name); - - return isset($this->_sequences[$key]); - } - - public function getSequence(string $name): Sequence - { - $key = $this->getKeyFromName($name); - if (! isset($this->_sequences[$key])) { - throw SequenceDoesNotExist::new($name); - } - - return $this->_sequences[$key]; - } - - /** @return list */ - public function getSequences(): array - { - return array_values($this->_sequences); - } - - /** - * Creates a new namespace. - * - * @return $this - */ - public function createNamespace(string $name): self - { - $unquotedName = strtolower($this->getUnquotedAssetName($name)); - - if (isset($this->namespaces[$unquotedName])) { - throw NamespaceAlreadyExists::new($unquotedName); - } - - $this->namespaces[$unquotedName] = $name; - - return $this; - } - - /** - * Creates a new table. - */ - public function createTable(string $name): Table - { - $table = new Table($name, [], [], [], [], [], $this->_schemaConfig->toTableConfiguration()); - $this->_addTable($table); - - foreach ($this->_schemaConfig->getDefaultTableOptions() as $option => $value) { - $table->addOption($option, $value); - } - - return $table; - } - - /** - * Renames a table. - * - * @return $this - */ - public function renameTable(string $oldName, string $newName): self - { - $table = $this->getTable($oldName); - - $identifier = new Identifier($newName); - - $table->_name = $identifier->_name; - $table->_namespace = $identifier->_namespace; - $table->_quoted = $identifier->_quoted; - - $this->dropTable($oldName); - $this->_addTable($table); - - return $this; - } - - /** - * Drops a table from the schema. - * - * @return $this - */ - public function dropTable(string $name): self - { - $key = $this->getKeyFromName($name); - if (! isset($this->_tables[$key])) { - throw TableDoesNotExist::new($name); - } - - unset($this->_tables[$key]); - - return $this; - } - - /** - * Creates a new sequence. - */ - public function createSequence(string $name, int $allocationSize = 1, int $initialValue = 1): Sequence - { - $seq = new Sequence($name, $allocationSize, $initialValue); - $this->_addSequence($seq); - - return $seq; - } - - /** @return $this */ - public function dropSequence(string $name): self - { - $key = $this->getKeyFromName($name); - unset($this->_sequences[$key]); - - return $this; - } - - /** - * Returns an array of necessary SQL queries to create the schema on the given platform. - * - * @return list - * - * @throws Exception - */ - public function toSql(AbstractPlatform $platform): array - { - $builder = new CreateSchemaObjectsSQLBuilder($platform); - - return $builder->buildSQL($this); - } - - /** - * Return an array of necessary SQL queries to drop the schema on the given platform. - * - * @return list - */ - public function toDropSql(AbstractPlatform $platform): array - { - $builder = new DropSchemaObjectsSQLBuilder($platform); - - return $builder->buildSQL($this); - } - - /** - * Cloning a Schema triggers a deep clone of all related assets. - */ - public function __clone() - { - foreach ($this->_tables as $k => $table) { - $this->_tables[$k] = clone $table; - } - - foreach ($this->_sequences as $k => $sequence) { - $this->_sequences[$k] = clone $sequence; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaConfig.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaConfig.php deleted file mode 100644 index 557ed1e..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaConfig.php +++ /dev/null @@ -1,74 +0,0 @@ - */ - protected array $defaultTableOptions = []; - - /** @param positive-int $length */ - public function setMaxIdentifierLength(int $length): void - { - $this->maxIdentifierLength = $length; - } - - /** @return positive-int */ - public function getMaxIdentifierLength(): int - { - return $this->maxIdentifierLength; - } - - /** - * Gets the default namespace of schema objects. - * - * @return ?non-empty-string - */ - public function getName(): ?string - { - return $this->name; - } - - /** - * Sets the default namespace name of schema objects. - * - * @param ?non-empty-string $name - */ - public function setName(?string $name): void - { - $this->name = $name; - } - - /** - * Gets the default options that are passed to Table instances created with - * Schema#createTable(). - * - * @return array - */ - public function getDefaultTableOptions(): array - { - return $this->defaultTableOptions; - } - - /** @param array $defaultTableOptions */ - public function setDefaultTableOptions(array $defaultTableOptions): void - { - $this->defaultTableOptions = $defaultTableOptions; - } - - public function toTableConfiguration(): TableConfiguration - { - return new TableConfiguration($this->maxIdentifierLength); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaDiff.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaDiff.php deleted file mode 100644 index 185c1b5..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaDiff.php +++ /dev/null @@ -1,111 +0,0 @@ - */ - private readonly array $alteredTables; - - /** - * Constructs an SchemaDiff object. - * - * @internal The diff can be only instantiated by a {@see Comparator}. - * - * @param array $createdSchemas - * @param array $droppedSchemas - * @param array
$createdTables - * @param array $alteredTables - * @param array
$droppedTables - * @param array $createdSequences - * @param array $alteredSequences - * @param array $droppedSequences - */ - public function __construct( - private readonly array $createdSchemas, - private readonly array $droppedSchemas, - private readonly array $createdTables, - array $alteredTables, - private readonly array $droppedTables, - private readonly array $createdSequences, - private readonly array $alteredSequences, - private readonly array $droppedSequences, - ) { - $this->alteredTables = array_filter($alteredTables, static function (TableDiff $diff): bool { - return ! $diff->isEmpty(); - }); - } - - /** @return array */ - public function getCreatedSchemas(): array - { - return $this->createdSchemas; - } - - /** @return array */ - public function getDroppedSchemas(): array - { - return $this->droppedSchemas; - } - - /** @return array
*/ - public function getCreatedTables(): array - { - return $this->createdTables; - } - - /** @return array */ - public function getAlteredTables(): array - { - return $this->alteredTables; - } - - /** @return array
*/ - public function getDroppedTables(): array - { - return $this->droppedTables; - } - - /** @return array */ - public function getCreatedSequences(): array - { - return $this->createdSequences; - } - - /** @return array */ - public function getAlteredSequences(): array - { - return $this->alteredSequences; - } - - /** @return array */ - public function getDroppedSequences(): array - { - return $this->droppedSequences; - } - - /** - * Returns whether the diff is empty (contains no changes). - */ - public function isEmpty(): bool - { - return count($this->createdSchemas) === 0 - && count($this->droppedSchemas) === 0 - && count($this->createdTables) === 0 - && count($this->alteredTables) === 0 - && count($this->droppedTables) === 0 - && count($this->createdSequences) === 0 - && count($this->alteredSequences) === 0 - && count($this->droppedSequences) === 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaException.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaException.php deleted file mode 100644 index 4277139..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/SchemaException.php +++ /dev/null @@ -1,11 +0,0 @@ - - */ -class Sequence extends AbstractNamedObject -{ - protected int $allocationSize = 1; - - protected int $initialValue = 1; - - public function __construct( - string $name, - int $allocationSize = 1, - int $initialValue = 1, - protected ?int $cache = null, - ) { - parent::__construct($name); - - $this->setAllocationSize($allocationSize); - $this->setInitialValue($initialValue); - } - - protected function getNameParser(): OptionallyQualifiedNameParser - { - return Parsers::getOptionallyQualifiedNameParser(); - } - - public function getAllocationSize(): int - { - return $this->allocationSize; - } - - public function getInitialValue(): int - { - return $this->initialValue; - } - - public function getCache(): ?int - { - return $this->cache; - } - - public function setAllocationSize(int $allocationSize): self - { - $this->allocationSize = $allocationSize; - - return $this; - } - - public function setInitialValue(int $initialValue): self - { - $this->initialValue = $initialValue; - - return $this; - } - - public function setCache(int $cache): self - { - $this->cache = $cache; - - return $this; - } - - /** - * Checks if this sequence is an autoincrement sequence for a given table. - * - * This is used inside the comparator to not report sequences as missing, - * when the "from" schema implicitly creates the sequences. - * - * @deprecated - */ - public function isAutoIncrementsFor(Table $table): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6654', - '%s is deprecated and will be removed in 5.0.', - __METHOD__, - ); - - $primaryKey = $table->getPrimaryKey(); - - if ($primaryKey === null) { - return false; - } - - $pkColumns = $primaryKey->getColumns(); - - if (count($pkColumns) !== 1) { - return false; - } - - $column = $table->getColumn($pkColumns[0]); - - if (! $column->getAutoincrement()) { - return false; - } - - $sequenceName = $this->getShortestName($table->getNamespaceName()); - $tableName = $table->getShortestName($table->getNamespaceName()); - $tableSequenceName = sprintf('%s_%s_seq', $tableName, $column->getShortestName($table->getNamespaceName())); - - return $tableSequenceName === $sequenceName; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Table.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/Table.php deleted file mode 100644 index d9bdd67..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/Table.php +++ /dev/null @@ -1,1199 +0,0 @@ - - */ -class Table extends AbstractNamedObject -{ - /** @var Column[] */ - protected array $_columns = []; - - /** @var array keys are new names, values are old names */ - protected array $renamedColumns = []; - - /** @var Index[] */ - protected array $_indexes = []; - - /** - * The keys of this array are the names of the indexes that were implicitly created as backing for foreign key - * constraints. The values are not used but must be non-null for {@link isset()} to work correctly. - * - * @var array - */ - private array $implicitIndexNames = []; - - /** @deprecated Use {@see $primaryKeyConstraint} instead. */ - protected ?string $_primaryKeyName = null; - - /** @var UniqueConstraint[] */ - protected array $uniqueConstraints = []; - - /** @var ForeignKeyConstraint[] */ - protected array $_fkConstraints = []; - - /** @var mixed[] */ - protected array $_options = [ - 'create_options' => [], - ]; - - /** @deprecated Pass a {@link TableConfiguration} instance to the constructor instead. */ - protected ?SchemaConfig $_schemaConfig = null; - - /** @var positive-int */ - private int $maxIdentifierLength; - - private ?PrimaryKeyConstraint $primaryKeyConstraint = null; - - private bool $failedToParsePrimaryKeyConstraint = false; - - /** - * @param array $columns - * @param array $indexes - * @param array $uniqueConstraints - * @param array $fkConstraints - * @param array $options - */ - public function __construct( - string $name, - array $columns = [], - array $indexes = [], - array $uniqueConstraints = [], - array $fkConstraints = [], - array $options = [], - ?TableConfiguration $configuration = null, - ?PrimaryKeyConstraint $primaryKeyConstraint = null, - ) { - if ($name === '') { - throw InvalidTableName::new($name); - } - - parent::__construct($name); - - $configuration ??= (new SchemaConfig())->toTableConfiguration(); - - $this->maxIdentifierLength = $configuration->getMaxIdentifierLength(); - - foreach ($columns as $column) { - $this->_addColumn($column); - } - - foreach ($indexes as $idx) { - $this->_addIndex($idx); - } - - if ($primaryKeyConstraint !== null) { - $this->addPrimaryKeyConstraint($primaryKeyConstraint); - } - - foreach ($uniqueConstraints as $uniqueConstraint) { - $this->_addUniqueConstraint($uniqueConstraint); - } - - foreach ($fkConstraints as $fkConstraint) { - $this->_addForeignKeyConstraint($fkConstraint); - } - - $this->_options = array_merge($this->_options, $options); - } - - protected function getNameParser(): OptionallyQualifiedNameParser - { - return Parsers::getOptionallyQualifiedNameParser(); - } - - /** @deprecated Pass a {@link TableConfiguration} instance to the constructor instead. */ - public function setSchemaConfig(SchemaConfig $schemaConfig): void - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6635', - '%s is deprecated. Pass TableConfiguration to the constructor instead.', - __METHOD__, - ); - - $this->_schemaConfig = $schemaConfig; - - $this->maxIdentifierLength = $schemaConfig->getMaxIdentifierLength(); - } - - /** - * Sets the Primary Key. - * - * @deprecated Use {@see addPrimaryKeyConstraint()} instead. - * - * @param non-empty-list $columnNames - */ - public function setPrimaryKey(array $columnNames, ?string $indexName = null): self - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - '%s() is deprecated. Use Table::addPrimaryKeyConstraint() instead.', - __METHOD__, - ); - - if ($indexName === null) { - $indexName = 'primary'; - } - - $this->_addIndex($this->_createIndex($columnNames, $indexName, true, true)); - - foreach ($columnNames as $columnName) { - $column = $this->getColumn($columnName); - - if (! $column->getNotnull()) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6787', - 'Using nullable columns in a primary key index is deprecated.', - ); - } - - $column->setNotnull(true); - } - - return $this; - } - - public function addPrimaryKeyConstraint(PrimaryKeyConstraint $primaryKeyConstraint): self - { - $this->setPrimaryKey( - array_map( - static fn (UnqualifiedName $columnName): string => $columnName->toString(), - $primaryKeyConstraint->getColumnNames(), - ), - $primaryKeyConstraint->getObjectName()?->toString(), - ); - - // there is no way to set a primary index with flags. we have to set it and then add the flag - if (! $primaryKeyConstraint->isClustered()) { - $index = $this->getPrimaryKey(); - assert($index !== null); - $index->addFlag('nonclustered'); - } - - $this->primaryKeyConstraint = $primaryKeyConstraint; - - return $this; - } - - /** - * @param non-empty-list $columnNames - * @param array $flags - * @param array $options - */ - public function addUniqueConstraint( - array $columnNames, - ?string $indexName = null, - array $flags = [], - array $options = [], - ): self { - $indexName ??= $this->_generateIdentifierName( - array_merge([$this->getName()], $columnNames), - 'uniq', - $this->_getMaxIdentifierLength(), - ); - - return $this->_addUniqueConstraint($this->_createUniqueConstraint($columnNames, $indexName, $flags, $options)); - } - - /** - * @param non-empty-list $columnNames - * @param array $flags - * @param array $options - */ - public function addIndex( - array $columnNames, - ?string $indexName = null, - array $flags = [], - array $options = [], - ): self { - $indexName ??= $this->_generateIdentifierName( - array_merge([$this->getName()], $columnNames), - 'idx', - $this->_getMaxIdentifierLength(), - ); - - return $this->_addIndex($this->_createIndex($columnNames, $indexName, false, false, $flags, $options)); - } - - /** - * Drops the primary key from this table. - */ - public function dropPrimaryKey(): void - { - $this->primaryKeyConstraint = null; - $this->failedToParsePrimaryKeyConstraint = false; - - if ($this->_primaryKeyName === null) { - return; - } - - $this->dropIndex($this->_primaryKeyName); - $this->_primaryKeyName = null; - } - - /** - * Drops an index from this table. - */ - public function dropIndex(string $name): void - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasIndex($name)) { - throw IndexDoesNotExist::new($name, $this->_name); - } - - unset($this->_indexes[$name]); - } - - /** - * @param non-empty-list $columnNames - * @param array $options - */ - public function addUniqueIndex(array $columnNames, ?string $indexName = null, array $options = []): self - { - $indexName ??= $this->_generateIdentifierName( - array_merge([$this->getName()], $columnNames), - 'uniq', - $this->_getMaxIdentifierLength(), - ); - - return $this->_addIndex($this->_createIndex($columnNames, $indexName, true, false, [], $options)); - } - - /** - * Renames an index. - * - * @param string $oldName The name of the index to rename from. - * @param string|null $newName The name of the index to rename to. If null is given, the index name - * will be auto-generated. - */ - public function renameIndex(string $oldName, ?string $newName = null): self - { - if (! $this->hasIndex($oldName)) { - throw IndexDoesNotExist::new($oldName, $this->_name); - } - - $normalizedOldName = $this->normalizeIdentifier($oldName); - - if ($newName !== null) { - $normalizedNewName = $this->normalizeIdentifier($newName); - - if ($normalizedOldName === $normalizedNewName) { - return $this; - } - - if ($this->hasIndex($newName)) { - throw IndexAlreadyExists::new($newName, $this->_name); - } - } - - $oldIndex = $this->_indexes[$normalizedOldName]; - - if ($oldIndex->isPrimary()) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - 'Renaming primary key constraint via %s() is deprecated. Use Table::dropPrimaryKey() and ' - . ' Table::addPrimaryKeyConstraint() instead.', - __METHOD__, - ); - - $this->dropPrimaryKey(); - - return $this->setPrimaryKey($oldIndex->getColumns(), $newName ?? null); - } - - unset($this->_indexes[$normalizedOldName]); - - if ($oldIndex->isUnique()) { - return $this->addUniqueIndex($oldIndex->getColumns(), $newName, $oldIndex->getOptions()); - } - - return $this->addIndex($oldIndex->getColumns(), $newName, $oldIndex->getFlags(), $oldIndex->getOptions()); - } - - /** - * Checks if an index begins in the order of the given columns. - * - * @deprecated - * - * @param array $columnNames - */ - public function columnsAreIndexed(array $columnNames): bool - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6710', - '%s is deprecated.', - __METHOD__, - ); - - foreach ($this->getIndexes() as $index) { - if ($index->spansColumns($columnNames)) { - return true; - } - } - - return false; - } - - /** - * @param array $options - * - * @throws TypesException - */ - public function addColumn(string $name, string $typeName, array $options = []): Column - { - $column = new Column($name, Type::getType($typeName), $options); - - $this->_addColumn($column); - - return $column; - } - - /** @return array */ - final public function getRenamedColumns(): array - { - return $this->renamedColumns; - } - - /** - * @param non-empty-string $oldName - * @param non-empty-string $newName - * - * @throws LogicException - */ - final public function renameColumn(string $oldName, string $newName): Column - { - $oldName = $this->normalizeIdentifier($oldName); - $newName = $this->normalizeIdentifier($newName); - - if ($oldName === $newName) { - throw new LogicException(sprintf( - 'Attempt to rename column "%s.%s" to the same name.', - $this->getName(), - $oldName, - )); - } - - $column = $this->getColumn($oldName); - - $column->_name = $newName; - unset($this->_columns[$oldName]); - $this->_addColumn($column); - - $this->renameColumnInIndexes($oldName, $newName); - $this->renameColumnInForeignKeyConstraints($oldName, $newName); - $this->renameColumnInUniqueConstraints($oldName, $newName); - - // If a column is renamed multiple times, we only want to know the original and last new name - if (isset($this->renamedColumns[$oldName])) { - $toRemove = $oldName; - $oldName = $this->renamedColumns[$oldName]; - unset($this->renamedColumns[$toRemove]); - } - - if ($newName !== $oldName) { - $this->renamedColumns[$newName] = $oldName; - } - - return $column; - } - - /** @param array $options */ - public function modifyColumn(string $name, array $options): self - { - $column = $this->getColumn($name); - $column->setOptions($options); - - return $this; - } - - /** - * Drops a Column from the Table. - */ - public function dropColumn(string $name): self - { - $name = $this->normalizeIdentifier($name); - - $foreignKeyConstraintNames = $this->getForeignKeyConstraintNamesByLocalColumnName($name); - $uniqueConstraintNames = $this->getUniqueConstraintNamesByColumnName($name); - - if (count($foreignKeyConstraintNames) > 0 || count($uniqueConstraintNames) > 0) { - $constraints = []; - - if (count($foreignKeyConstraintNames) > 0) { - $constraints[] = 'foreign key constraints: ' . implode(', ', $foreignKeyConstraintNames); - } - - if (count($uniqueConstraintNames) > 0) { - $constraints[] = 'unique constraints: ' . implode(', ', $uniqueConstraintNames); - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6559', - 'Dropping columns referenced by constraints is deprecated.' - . ' Column %s is used by the following constraints: %s ', - $name, - implode('; ', $constraints), - ); - } - - unset($this->_columns[$name]); - - return $this; - } - - /** - * Adds a foreign key constraint. - * - * Name is inferred from the local columns. - * - * @param non-empty-list $localColumnNames - * @param non-empty-list $foreignColumnNames - * @param array $options - */ - public function addForeignKeyConstraint( - string $foreignTableName, - array $localColumnNames, - array $foreignColumnNames, - array $options = [], - ?string $name = null, - ): self { - $name ??= $this->_generateIdentifierName( - array_merge([$this->getName()], $localColumnNames), - 'fk', - $this->_getMaxIdentifierLength(), - ); - - foreach ($localColumnNames as $columnName) { - if (! $this->hasColumn($columnName)) { - throw ColumnDoesNotExist::new($columnName, $this->_name); - } - } - - $constraint = new ForeignKeyConstraint( - $localColumnNames, - $foreignTableName, - $foreignColumnNames, - $name, - $options, - ); - - return $this->_addForeignKeyConstraint($constraint); - } - - public function addOption(string $name, mixed $value): self - { - $this->_options[$name] = $value; - - return $this; - } - - /** - * Returns whether this table has a foreign key constraint with the given name. - */ - public function hasForeignKey(string $name): bool - { - $name = $this->normalizeIdentifier($name); - - return isset($this->_fkConstraints[$name]); - } - - /** - * Returns the foreign key constraint with the given name. - */ - public function getForeignKey(string $name): ForeignKeyConstraint - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasForeignKey($name)) { - throw ForeignKeyDoesNotExist::new($name, $this->_name); - } - - return $this->_fkConstraints[$name]; - } - - /** - * Removes the foreign key constraint with the given name. - * - * @deprecated Use {@link dropForeignKey()} instead. - */ - public function removeForeignKey(string $name): void - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6560', - 'Table::removeForeignKey() is deprecated. Use Table::dropForeignKey() instead.', - ); - - $this->dropForeignKey($name); - } - - /** - * Drops the foreign key constraint with the given name. - */ - public function dropForeignKey(string $name): void - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasForeignKey($name)) { - throw ForeignKeyDoesNotExist::new($name, $this->_name); - } - - unset($this->_fkConstraints[$name]); - } - - /** - * Returns whether this table has a unique constraint with the given name. - */ - public function hasUniqueConstraint(string $name): bool - { - $name = $this->normalizeIdentifier($name); - - return isset($this->uniqueConstraints[$name]); - } - - /** - * Returns the unique constraint with the given name. - */ - public function getUniqueConstraint(string $name): UniqueConstraint - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasUniqueConstraint($name)) { - throw UniqueConstraintDoesNotExist::new($name, $this->_name); - } - - return $this->uniqueConstraints[$name]; - } - - /** - * Removes the unique constraint with the given name. - * - * @deprecated Use {@link dropUniqueConstraint()} instead. - */ - public function removeUniqueConstraint(string $name): void - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6560', - 'Table::removeUniqueConstraint() is deprecated. Use Table::dropUniqueConstraint() instead.', - ); - - $this->dropUniqueConstraint($name); - } - - /** - * Drops the unique constraint with the given name. - */ - public function dropUniqueConstraint(string $name): void - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasUniqueConstraint($name)) { - throw UniqueConstraintDoesNotExist::new($name, $this->_name); - } - - unset($this->uniqueConstraints[$name]); - } - - /** - * Returns the list of table columns. - * - * @return list - */ - public function getColumns(): array - { - return array_values($this->_columns); - } - - /** - * Returns whether this table has a Column with the given name. - */ - public function hasColumn(string $name): bool - { - $name = $this->normalizeIdentifier($name); - - return isset($this->_columns[$name]); - } - - /** - * Returns the Column with the given name. - */ - public function getColumn(string $name): Column - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasColumn($name)) { - throw ColumnDoesNotExist::new($name, $this->_name); - } - - return $this->_columns[$name]; - } - - /** - * Returns the primary key. - * - * @deprecated Use {@see getPrimaryKeyConstraint()} instead. - */ - public function getPrimaryKey(): ?Index - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6867', - '%s() is deprecated. Use Table::getPrimaryKeyConstraint() instead.', - __METHOD__, - ); - - if ($this->_primaryKeyName !== null) { - return $this->getIndex($this->_primaryKeyName); - } - - return null; - } - - public function getPrimaryKeyConstraint(): ?PrimaryKeyConstraint - { - if ($this->failedToParsePrimaryKeyConstraint) { - throw InvalidState::tableHasInvalidPrimaryKeyConstraint($this->getName()); - } - - return $this->primaryKeyConstraint; - } - - /** - * Returns whether this table has an Index with the given name. - */ - public function hasIndex(string $name): bool - { - $name = $this->normalizeIdentifier($name); - - return isset($this->_indexes[$name]); - } - - /** - * Returns the Index with the given name. - */ - public function getIndex(string $name): Index - { - $name = $this->normalizeIdentifier($name); - - if (! $this->hasIndex($name)) { - throw IndexDoesNotExist::new($name, $this->_name); - } - - return $this->_indexes[$name]; - } - - /** @return array */ - public function getIndexes(): array - { - return $this->_indexes; - } - - /** - * Returns the unique constraints. - * - * @return array - */ - public function getUniqueConstraints(): array - { - return $this->uniqueConstraints; - } - - /** - * Returns the foreign key constraints. - * - * @return array - */ - public function getForeignKeys(): array - { - return $this->_fkConstraints; - } - - public function hasOption(string $name): bool - { - return isset($this->_options[$name]); - } - - public function getOption(string $name): mixed - { - return $this->_options[$name] ?? null; - } - - /** @return array */ - public function getOptions(): array - { - return $this->_options; - } - - /** - * Clone of a Table triggers a deep clone of all affected assets. - */ - public function __clone() - { - foreach ($this->_columns as $k => $column) { - $this->_columns[$k] = clone $column; - } - - foreach ($this->_indexes as $k => $index) { - $this->_indexes[$k] = clone $index; - } - - foreach ($this->_fkConstraints as $k => $fk) { - $this->_fkConstraints[$k] = clone $fk; - } - } - - /** - * @deprecated - * - * @return positive-int - */ - protected function _getMaxIdentifierLength(): int - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6635', - '%s is deprecated.', - __METHOD__, - ); - - return $this->maxIdentifierLength; - } - - protected function _addColumn(Column $column): void - { - $columnName = $column->getName(); - $columnName = $this->normalizeIdentifier($columnName); - - if (isset($this->_columns[$columnName])) { - throw ColumnAlreadyExists::new($this->getName(), $columnName); - } - - $this->_columns[$columnName] = $column; - } - - /** - * Adds an index to the table. - */ - protected function _addIndex(Index $index): self - { - $indexName = $this->normalizeIdentifier($index->getName()); - - $replacedImplicitIndexNames = []; - - foreach ($this->implicitIndexNames as $implicitIndexName => $_) { - if (! isset($this->_indexes[$implicitIndexName])) { - continue; - } - - if (! $this->_indexes[$implicitIndexName]->isFulfilledBy($index)) { - continue; - } - - $replacedImplicitIndexNames[$implicitIndexName] = true; - } - - if ($this->_primaryKeyName !== null && $index->isPrimary()) { - throw PrimaryKeyAlreadyExists::new($this->_name); - } - - if (isset($this->_indexes[$indexName]) && ! isset($replacedImplicitIndexNames[$indexName])) { - throw IndexAlreadyExists::new($indexName, $this->_name); - } - - foreach ($replacedImplicitIndexNames as $name => $_) { - unset($this->_indexes[$name], $this->implicitIndexNames[$name]); - } - - if ($index->isPrimary()) { - $this->_primaryKeyName = $indexName; - - try { - $this->primaryKeyConstraint = $this->parsePrimaryKeyConstraint($index); - $this->failedToParsePrimaryKeyConstraint = false; - } catch (InvalidState) { - $this->primaryKeyConstraint = null; - $this->failedToParsePrimaryKeyConstraint = true; - } - } - - $this->_indexes[$indexName] = $index; - - return $this; - } - - private function parsePrimaryKeyConstraint(Index $index): ?PrimaryKeyConstraint - { - $indexedColumns = $index->getIndexedColumns(); - - $columnNames = []; - foreach ($indexedColumns as $indexedColumn) { - if ($indexedColumn->getLength() !== null) { - return null; - } - - $columnNames[] = $indexedColumn->getColumnName(); - } - - // Do not derive the constraint name from the index name in the upgrade path. The primary index name defaults to - // "PRIMARY", while the default constraint name is null (unspecified, to be generated by the database platform). - return new PrimaryKeyConstraint( - null, - $columnNames, - ! $index->hasFlag('nonclustered'), - ); - } - - protected function _addUniqueConstraint(UniqueConstraint $constraint): self - { - $name = $constraint->getName() !== '' - ? $constraint->getName() - : $this->_generateIdentifierName( - array_merge((array) $this->getName(), $constraint->getColumns()), - 'fk', - $this->_getMaxIdentifierLength(), - ); - - $name = $this->normalizeIdentifier($name); - - $this->uniqueConstraints[$name] = $constraint; - - // If there is already an index that fulfills this requirements drop the request. In the case of __construct - // calling this method during hydration from schema-details all the explicitly added indexes lead to duplicates. - // This creates computation overhead in this case, however no duplicate indexes are ever added (column based). - $indexName = $this->_generateIdentifierName( - array_merge([$this->getName()], $constraint->getColumns()), - 'idx', - $this->_getMaxIdentifierLength(), - ); - - $indexCandidate = $this->_createIndex($constraint->getColumns(), $indexName, true, false); - - foreach ($this->_indexes as $existingIndex) { - if ($indexCandidate->isFulfilledBy($existingIndex)) { - return $this; - } - } - - $this->implicitIndexNames[$this->normalizeIdentifier($indexName)] = true; - - return $this; - } - - protected function _addForeignKeyConstraint(ForeignKeyConstraint $constraint): self - { - $name = $constraint->getName() !== '' - ? $constraint->getName() - : $this->_generateIdentifierName( - array_merge((array) $this->getName(), $constraint->getLocalColumns()), - 'fk', - $this->_getMaxIdentifierLength(), - ); - - $name = $this->normalizeIdentifier($name); - - $this->_fkConstraints[$name] = $constraint; - - // add an explicit index on the foreign key columns. - // If there is already an index that fulfills this requirements drop the request. In the case of __construct - // calling this method during hydration from schema-details all the explicitly added indexes lead to duplicates. - // This creates computation overhead in this case, however no duplicate indexes are ever added (column based). - $indexName = $this->_generateIdentifierName( - array_merge([$this->getName()], $constraint->getLocalColumns()), - 'idx', - $this->_getMaxIdentifierLength(), - ); - - $indexCandidate = $this->_createIndex($constraint->getLocalColumns(), $indexName, false, false); - - foreach ($this->_indexes as $existingIndex) { - if ($indexCandidate->isFulfilledBy($existingIndex)) { - return $this; - } - } - - $this->_addIndex($indexCandidate); - $this->implicitIndexNames[$this->normalizeIdentifier($indexName)] = true; - - return $this; - } - - /** - * Normalizes a given identifier. - * - * Trims quotes and lowercases the given identifier. - * - * @return non-empty-string - */ - private function normalizeIdentifier(string $identifier): string - { - /** @phpstan-ignore return.type */ - return $this->trimQuotes(strtolower($identifier)); - } - - public function setComment(string $comment): self - { - // For keeping backward compatibility with MySQL in previous releases, table comments are stored as options. - $this->addOption('comment', $comment); - - return $this; - } - - public function getComment(): ?string - { - return $this->_options['comment'] ?? null; - } - - /** - * Instantiates a new table editor. - */ - public static function editor(): TableEditor - { - return new TableEditor(); - } - - /** - * Instantiates a new table editor and initializes it with the table's properties. - */ - public function edit(): TableEditor - { - $editor = self::editor() - ->setName($this->getObjectName()) - ->setColumns(...array_values($this->_columns)) - ->setIndexes(...array_values(array_diff_key($this->_indexes, $this->implicitIndexNames))) - ->setPrimaryKeyConstraint($this->primaryKeyConstraint) - ->setUniqueConstraints(...array_values($this->uniqueConstraints)) - ->setForeignKeyConstraints(...array_values($this->_fkConstraints)); - - $options = $this->_options; - - if (isset($options['comment'])) { - $editor->setComment($options['comment']); - unset($options['comment']); - } - - return $editor - ->setOptions($options) - ->setConfiguration( - new TableConfiguration($this->maxIdentifierLength), - ); - } - - /** - * @param non-empty-list $columns - * @param array $flags - * @param array $options - */ - private function _createUniqueConstraint( - array $columns, - string $indexName, - array $flags = [], - array $options = [], - ): UniqueConstraint { - if (preg_match('(([^a-zA-Z0-9_]+))', $this->normalizeIdentifier($indexName)) === 1) { - throw IndexNameInvalid::new($indexName); - } - - foreach ($columns as $columnName) { - if (! $this->hasColumn($columnName)) { - throw ColumnDoesNotExist::new($columnName, $this->_name); - } - } - - return new UniqueConstraint($indexName, $columns, $flags, $options); - } - - /** - * @param non-empty-list $columns - * @param array $flags - * @param array $options - */ - private function _createIndex( - array $columns, - string $indexName, - bool $isUnique, - bool $isPrimary, - array $flags = [], - array $options = [], - ): Index { - if (preg_match('(([^a-zA-Z0-9_]+))', $this->normalizeIdentifier($indexName)) === 1) { - throw IndexNameInvalid::new($indexName); - } - - foreach ($columns as $columnName) { - if (! $this->hasColumn($columnName)) { - throw ColumnDoesNotExist::new($columnName, $this->_name); - } - } - - return new Index($indexName, $columns, $isUnique, $isPrimary, $flags, $options); - } - - /** @param non-empty-string $newName */ - private function renameColumnInIndexes(string $oldName, string $newName): void - { - foreach ($this->_indexes as $key => $index) { - $modified = false; - $columns = []; - foreach ($index->getColumns() as $columnName) { - if ($columnName === $oldName) { - $columns[] = $newName; - $modified = true; - } else { - $columns[] = $columnName; - } - } - - if (! $modified) { - continue; - } - - $this->_indexes[$key] = new Index( - $index->getName(), - $columns, - $index->isUnique(), - $index->isPrimary(), - $index->getFlags(), - $index->getOptions(), - ); - } - } - - /** - * @param non-empty-string $oldName - * @param non-empty-string $newName - */ - private function renameColumnInForeignKeyConstraints(string $oldName, string $newName): void - { - foreach ($this->_fkConstraints as $key => $constraint) { - $modified = false; - $localColumns = []; - foreach ($constraint->getLocalColumns() as $columnName) { - if ($columnName === $oldName) { - $localColumns[] = $newName; - $modified = true; - } else { - $localColumns[] = $columnName; - } - } - - if (! $modified) { - continue; - } - - $this->_fkConstraints[$key] = new ForeignKeyConstraint( - $localColumns, // @phpstan-ignore argument.type - $constraint->getForeignTableName(), - $constraint->getForeignColumns(), // @phpstan-ignore argument.type - $constraint->getName(), - $constraint->getOptions(), - ); - } - } - - /** - * @param non-empty-string $oldName - * @param non-empty-string $newName - */ - private function renameColumnInUniqueConstraints(string $oldName, string $newName): void - { - foreach ($this->uniqueConstraints as $key => $constraint) { - $modified = false; - $columns = []; - foreach ($constraint->getColumns() as $columnName) { - if ($columnName === $oldName) { - $columns[] = $newName; - $modified = true; - } else { - $columns[] = $columnName; - } - } - - if (! $modified) { - continue; - } - - $this->uniqueConstraints[$key] = new UniqueConstraint( - $constraint->getName(), - $columns, // @phpstan-ignore argument.type - $constraint->getFlags(), - $constraint->getOptions(), - ); - } - } - - /** @return list */ - private function getForeignKeyConstraintNamesByLocalColumnName(string $columnName): array - { - $names = []; - - foreach ($this->_fkConstraints as $name => $constraint) { - if (! in_array($columnName, $constraint->getLocalColumns(), true)) { - continue; - } - - $names[] = $name; - } - - return $names; - } - - /** @return list */ - private function getUniqueConstraintNamesByColumnName(string $columnName): array - { - $names = []; - - foreach ($this->uniqueConstraints as $name => $constraint) { - if (! in_array($columnName, $constraint->getColumns(), true)) { - continue; - } - - $names[] = $name; - } - - return $names; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableConfiguration.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableConfiguration.php deleted file mode 100644 index 3348ffe..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableConfiguration.php +++ /dev/null @@ -1,30 +0,0 @@ -maxIdentifierLength; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableDiff.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableDiff.php deleted file mode 100644 index 68dc9a2..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableDiff.php +++ /dev/null @@ -1,249 +0,0 @@ - $droppedForeignKeys - * @param array $addedColumns - * @param array $changedColumns - * @param array $droppedColumns - * @param array $addedIndexes - * @param array $modifiedIndexes - * @param array $droppedIndexes - * @param array $renamedIndexes - * @param array $addedForeignKeys - * @param array $modifiedForeignKeys - */ - public function __construct( - private readonly Table $oldTable, - private readonly array $addedColumns = [], - private readonly array $changedColumns = [], - private readonly array $droppedColumns = [], - private array $addedIndexes = [], - private readonly array $modifiedIndexes = [], - private array $droppedIndexes = [], - private readonly array $renamedIndexes = [], - private readonly array $addedForeignKeys = [], - private readonly array $modifiedForeignKeys = [], - private readonly array $droppedForeignKeys = [], - ) { - if (count($this->modifiedIndexes) !== 0) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6831', - 'Passing a non-empty $modifiedIndexes value to %s() is deprecated. Instead, pass dropped' - . ' indexes via $droppedIndexes and added indexes via $addedIndexes.', - __METHOD__, - ); - } - - if (count($modifiedForeignKeys) === 0) { - return; - } - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6827', - 'Passing a non-empty $modifiedForeignKeys value to %s() is deprecated. Instead, pass dropped' - . ' constraints via $droppedForeignKeys and added constraints via $addedForeignKeys.', - __METHOD__, - ); - } - - public function getOldTable(): Table - { - return $this->oldTable; - } - - /** @return array */ - public function getAddedColumns(): array - { - return $this->addedColumns; - } - - /** @return array */ - public function getChangedColumns(): array - { - return $this->changedColumns; - } - - /** - * @deprecated Use {@see getChangedColumns()} instead. - * - * @return list - */ - public function getModifiedColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6280', - '%s is deprecated, use `getChangedColumns()` instead.', - __METHOD__, - ); - - return array_values(array_filter( - $this->getChangedColumns(), - static fn (ColumnDiff $diff): bool => $diff->countChangedProperties() > ($diff->hasNameChanged() ? 1 : 0), - )); - } - - /** - * @deprecated Use {@see getChangedColumns()} instead. - * - * @return array - */ - public function getRenamedColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6280', - '%s is deprecated, you should use `getChangedColumns()` instead.', - __METHOD__, - ); - $renamed = []; - foreach ($this->getChangedColumns() as $diff) { - if (! $diff->hasNameChanged()) { - continue; - } - - $oldColumnName = $diff->getOldColumn()->getName(); - $renamed[$oldColumnName] = $diff->getNewColumn(); - } - - return $renamed; - } - - /** @return array */ - public function getDroppedColumns(): array - { - return $this->droppedColumns; - } - - /** @return array */ - public function getAddedIndexes(): array - { - return $this->addedIndexes; - } - - /** - * @internal This method exists only for compatibility with the current implementation of schema managers - * that modify the diff while processing it. - */ - public function unsetAddedIndex(Index $index): void - { - $this->addedIndexes = array_filter( - $this->addedIndexes, - static function (Index $addedIndex) use ($index): bool { - return $addedIndex !== $index; - }, - ); - } - - /** - * @deprecated Use {@see getAddedIndexes()} and {@see getDroppedIndexes()} instead. - * - * @return array - */ - public function getModifiedIndexes(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6831', - '%s() is deprecated, use getAddedIndexes() and getDroppedIndexes() instead.', - __METHOD__, - ); - - return $this->modifiedIndexes; - } - - /** @return array */ - public function getDroppedIndexes(): array - { - return $this->droppedIndexes; - } - - /** - * @internal This method exists only for compatibility with the current implementation of schema managers - * that modify the diff while processing it. - */ - public function unsetDroppedIndex(Index $index): void - { - $this->droppedIndexes = array_filter( - $this->droppedIndexes, - static function (Index $droppedIndex) use ($index): bool { - return $droppedIndex !== $index; - }, - ); - } - - /** @return array */ - public function getRenamedIndexes(): array - { - return $this->renamedIndexes; - } - - /** @return array */ - public function getAddedForeignKeys(): array - { - return $this->addedForeignKeys; - } - - /** - * @deprecated Use {@see getAddedForeignKeys()} and {@see getDroppedForeignKeys()} instead. - * - * @return array - */ - public function getModifiedForeignKeys(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6827', - '%s() is deprecated, use getDroppedForeignKeys() and getAddedForeignKeys() instead.', - __METHOD__, - ); - - return $this->modifiedForeignKeys; - } - - /** @return array */ - public function getDroppedForeignKeys(): array - { - return $this->droppedForeignKeys; - } - - /** - * Returns whether the diff is empty (contains no changes). - */ - public function isEmpty(): bool - { - return count($this->addedColumns) === 0 - && count($this->changedColumns) === 0 - && count($this->droppedColumns) === 0 - && count($this->addedIndexes) === 0 - && count($this->modifiedIndexes) === 0 - && count($this->droppedIndexes) === 0 - && count($this->renamedIndexes) === 0 - && count($this->addedForeignKeys) === 0 - && count($this->modifiedForeignKeys) === 0 - && count($this->droppedForeignKeys) === 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableEditor.php deleted file mode 100644 index 0fa47f9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/TableEditor.php +++ /dev/null @@ -1,561 +0,0 @@ - */ - private readonly UnqualifiedNamedObjectSet $columns; - - /** @var UnqualifiedNamedObjectSet */ - private UnqualifiedNamedObjectSet $indexes; - - private ?PrimaryKeyConstraint $primaryKeyConstraint = null; - - /** @var OptionallyUnqualifiedNamedObjectSet */ - private readonly OptionallyUnqualifiedNamedObjectSet $uniqueConstraints; - - /** @var OptionallyUnqualifiedNamedObjectSet */ - private readonly OptionallyUnqualifiedNamedObjectSet $foreignKeyConstraints; - - /** @var array */ - private array $options = []; - - private string $comment = ''; - - private ?TableConfiguration $configuration = null; - - /** @internal Use {@link Table::editor()} or {@link Table::edit()} to create an instance */ - public function __construct() - { - /** @var UnqualifiedNamedObjectSet $columns */ - $columns = new UnqualifiedNamedObjectSet(); - $this->columns = $columns; - - /** @var UnqualifiedNamedObjectSet $indexes */ - $indexes = new UnqualifiedNamedObjectSet(); - $this->indexes = $indexes; - - /** @var OptionallyUnqualifiedNamedObjectSet $uniqueConstraints */ - $uniqueConstraints = new OptionallyUnqualifiedNamedObjectSet(); - $this->uniqueConstraints = $uniqueConstraints; - - /** @var OptionallyUnqualifiedNamedObjectSet $foreignKeyConstraints */ - $foreignKeyConstraints = new OptionallyUnqualifiedNamedObjectSet(); - $this->foreignKeyConstraints = $foreignKeyConstraints; - } - - public function setName(OptionallyQualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** - * @param non-empty-string $unqualifiedName - * @param ?non-empty-string $qualifier - */ - public function setUnquotedName(string $unqualifiedName, ?string $qualifier = null): self - { - $this->name = OptionallyQualifiedName::unquoted($unqualifiedName, $qualifier); - - return $this; - } - - /** - * @param non-empty-string $unqualifiedName - * @param ?non-empty-string $qualifier - */ - public function setQuotedName(string $unqualifiedName, ?string $qualifier = null): self - { - $this->name = OptionallyQualifiedName::quoted($unqualifiedName, $qualifier); - - return $this; - } - - public function setColumns(Column $firstColumn, Column ...$otherColumns): self - { - $this->columns->clear(); - - foreach ([$firstColumn, ...$otherColumns] as $column) { - $this->addColumn($column); - } - - return $this; - } - - public function addColumn(Column $column): self - { - try { - $this->columns->add($column); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::columnAlreadyExists($this->name, $e); - } - - return $this; - } - - /** @param callable(ColumnEditor): void $modification */ - public function modifyColumn(UnqualifiedName $columnName, callable $modification): self - { - try { - $this->columns->modify($columnName, static function (Column $column) use ($modification): Column { - $editor = $column->edit(); - - $modification($editor); - - return $editor->create(); - }); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::columnDoesNotExist($this->name, $e); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::columnAlreadyExists($this->name, $e); - } - - return $this; - } - - /** - * @param non-empty-string $columnName - * @param callable(ColumnEditor): void $modification - */ - public function modifyColumnByUnquotedName(string $columnName, callable $modification): self - { - return $this->modifyColumn(UnqualifiedName::unquoted($columnName), $modification); - } - - public function renameColumn(UnqualifiedName $oldColumnName, UnqualifiedName $newColumnName): self - { - $this->modifyColumn($oldColumnName, static function (ColumnEditor $editor) use ($newColumnName): void { - $editor->setName($newColumnName); - }); - - $this->renameColumnInIndexes($oldColumnName, $newColumnName); - $this->renameColumnInPrimaryKeyConstraint($oldColumnName, $newColumnName); - $this->renameColumnInForeignKeyConstraints($oldColumnName, $newColumnName); - $this->renameColumnInUniqueConstraints($oldColumnName, $newColumnName); - - return $this; - } - - private function renameColumnInIndexes(UnqualifiedName $oldColumnName, UnqualifiedName $newColumnName): void - { - foreach ($this->indexes->toList() as $index) { - $modified = false; - $columns = []; - - foreach ($index->getIndexedColumns() as $column) { - $columnName = $column->getColumnName(); - if ($this->namesEqual($columnName, $oldColumnName)) { - $columns[] = new Index\IndexedColumn($newColumnName, $column->getLength()); - $modified = true; - } else { - $columns[] = $column; - } - } - - if (! $modified) { - continue; - } - - $this->indexes->modify($index->getObjectName(), static function (Index $index) use ($columns): Index { - return $index->edit() - ->setColumns(...$columns) - ->create(); - }); - } - } - - private function renameColumnInPrimaryKeyConstraint( - UnqualifiedName $oldColumnName, - UnqualifiedName $newColumnName, - ): void { - if ($this->primaryKeyConstraint === null) { - return; - } - - $modified = false; - $columnNames = []; - - foreach ($this->primaryKeyConstraint->getColumnNames() as $columnName) { - if ($this->namesEqual($columnName, $oldColumnName)) { - $columnNames[] = $newColumnName; - $modified = true; - } else { - $columnNames[] = $columnName; - } - } - - if (! $modified) { - return; - } - - $this->primaryKeyConstraint = $this->primaryKeyConstraint->edit() - ->setColumnNames(...$columnNames) - ->create(); - } - - private function renameColumnInUniqueConstraints( - UnqualifiedName $oldColumnName, - UnqualifiedName $newColumnName, - ): void { - $this->renameColumnInConstraints( - $this->uniqueConstraints, - $oldColumnName, - $newColumnName, - static fn (UniqueConstraint $constraint): array => $constraint->getColumnNames(), - static function (UniqueConstraint $constraint, array $columnNames): UniqueConstraint { - return $constraint->edit() - ->setColumnNames(...$columnNames) - ->create(); - }, - ); - } - - private function renameColumnInForeignKeyConstraints( - UnqualifiedName $oldColumnName, - UnqualifiedName $newColumnName, - ): void { - $this->renameColumnInConstraints( - $this->foreignKeyConstraints, - $oldColumnName, - $newColumnName, - static fn (ForeignKeyConstraint $constraint): array => $constraint->getReferencingColumnNames(), - static function (ForeignKeyConstraint $constraint, array $columnNames): ForeignKeyConstraint { - return $constraint->edit() - ->setReferencingColumnNames(...$columnNames) - ->create(); - }, - ); - } - - /** - * Generic method to rename a column in constraints - * - * @param OptionallyUnqualifiedNamedObjectSet $collection - * @param callable(T): list $getColumnNames - * @param callable(T, list): T $modify - * - * @template T of OptionallyNamedObject - */ - private function renameColumnInConstraints( - OptionallyUnqualifiedNamedObjectSet $collection, - UnqualifiedName $oldColumnName, - UnqualifiedName $newColumnName, - callable $getColumnNames, - callable $modify, - ): void { - $constraints = []; - $anyModified = false; - - foreach ($collection->toList() as $constraint) { - $newColumnNames = []; - $modified = false; - - foreach ($getColumnNames($constraint) as $columnName) { - if ($this->namesEqual($columnName, $oldColumnName)) { - $newColumnNames[] = $newColumnName; - $modified = true; - } else { - $newColumnNames[] = $columnName; - } - } - - if ($modified) { - $constraint = $modify($constraint, $newColumnNames); - $anyModified = true; - } - - $constraints[] = $constraint; - } - - if (! $anyModified) { - return; - } - - $collection->clear(); - - foreach ($constraints as $constraint) { - $collection->add($constraint); - } - } - - /** - * @param non-empty-string $oldColumnName - * @param non-empty-string $newColumnName - */ - public function renameColumnByUnquotedName(string $oldColumnName, string $newColumnName): self - { - return $this->renameColumn( - UnqualifiedName::unquoted($oldColumnName), - UnqualifiedName::unquoted($newColumnName), - ); - } - - public function dropColumn(UnqualifiedName $columnName): self - { - try { - $this->columns->remove($columnName); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::columnDoesNotExist($this->name, $e); - } - - return $this; - } - - /** @param non-empty-string $columnName */ - public function dropColumnByUnquotedName(string $columnName): self - { - return $this->dropColumn(UnqualifiedName::unquoted($columnName)); - } - - public function setIndexes(Index ...$indexes): self - { - $this->indexes->clear(); - - foreach ($indexes as $index) { - $this->addIndex($index); - } - - return $this; - } - - public function addIndex(Index $index): self - { - try { - $this->indexes->add($index); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::indexAlreadyExists($this->name, $e); - } - - return $this; - } - - public function renameIndex(UnqualifiedName $oldIndexName, UnqualifiedName $newIndexName): self - { - try { - $this->indexes->modify($oldIndexName, static function (Index $index) use ($newIndexName): Index { - return $index->edit() - ->setName($newIndexName) - ->create(); - }); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::indexDoesNotExist($this->name, $e); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::indexAlreadyExists($this->name, $e); - } - - return $this; - } - - /** - * @param non-empty-string $oldIndexName - * @param non-empty-string $newIndexName - */ - public function renameIndexByUnquotedName(string $oldIndexName, string $newIndexName): self - { - return $this->renameIndex( - UnqualifiedName::unquoted($oldIndexName), - UnqualifiedName::unquoted($newIndexName), - ); - } - - public function dropIndex(UnqualifiedName $indexName): self - { - try { - $this->indexes->remove($indexName); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::indexDoesNotExist($this->name, $e); - } - - return $this; - } - - /** @param non-empty-string $indexName */ - public function dropIndexByUnquotedName(string $indexName): self - { - return $this->dropIndex(UnqualifiedName::unquoted($indexName)); - } - - public function setPrimaryKeyConstraint(?PrimaryKeyConstraint $primaryKeyConstraint): self - { - $this->primaryKeyConstraint = $primaryKeyConstraint; - - foreach ($this->indexes->toList() as $index) { - if (! $index->isPrimary()) { - continue; - } - - $this->indexes->remove($index->getObjectName()); - } - - return $this; - } - - public function addPrimaryKeyConstraint(PrimaryKeyConstraint $primaryKeyConstraint): self - { - if ($this->primaryKeyConstraint !== null) { - throw InvalidTableModification::primaryKeyConstraintAlreadyExists($this->name); - } - - return $this->setPrimaryKeyConstraint($primaryKeyConstraint); - } - - public function dropPrimaryKeyConstraint(): self - { - if ($this->primaryKeyConstraint === null) { - throw InvalidTableModification::primaryKeyConstraintDoesNotExist($this->name); - } - - return $this->setPrimaryKeyConstraint(null); - } - - public function setUniqueConstraints(UniqueConstraint ...$uniqueConstraints): self - { - $this->uniqueConstraints->clear(); - - foreach ($uniqueConstraints as $uniqueConstraint) { - $this->addUniqueConstraint($uniqueConstraint); - } - - return $this; - } - - public function addUniqueConstraint(UniqueConstraint $uniqueConstraint): self - { - try { - $this->uniqueConstraints->add($uniqueConstraint); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::uniqueConstraintAlreadyExists($this->name, $e); - } - - return $this; - } - - public function dropUniqueConstraint(UnqualifiedName $constraintName): self - { - try { - $this->uniqueConstraints->remove($constraintName); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::uniqueConstraintDoesNotExist($this->name, $e); - } - - return $this; - } - - /** @param non-empty-string $constraintName */ - public function dropUniqueConstraintByUnquotedName(string $constraintName): self - { - return $this->dropUniqueConstraint(UnqualifiedName::unquoted($constraintName)); - } - - public function setForeignKeyConstraints(ForeignKeyConstraint ...$foreignKeyConstraints): self - { - $this->foreignKeyConstraints->clear(); - - foreach ($foreignKeyConstraints as $foreignKeyConstraint) { - $this->addForeignKeyConstraint($foreignKeyConstraint); - } - - return $this; - } - - public function addForeignKeyConstraint(ForeignKeyConstraint $foreignKeyConstraint): self - { - try { - $this->foreignKeyConstraints->add($foreignKeyConstraint); - } catch (ObjectAlreadyExists $e) { - throw InvalidTableModification::foreignKeyConstraintAlreadyExists($this->name, $e); - } - - return $this; - } - - public function dropForeignKeyConstraint(UnqualifiedName $constraintName): self - { - try { - $this->foreignKeyConstraints->remove($constraintName); - } catch (ObjectDoesNotExist $e) { - throw InvalidTableModification::foreignKeyConstraintDoesNotExist($this->name, $e); - } - - return $this; - } - - /** @param non-empty-string $constraintName */ - public function dropForeignKeyConstraintByUnquotedName(string $constraintName): self - { - return $this->dropForeignKeyConstraint(UnqualifiedName::unquoted($constraintName)); - } - - private function namesEqual(UnqualifiedName $name1, UnqualifiedName $name2): bool - { - return strcasecmp($name1->getIdentifier()->getValue(), $name2->getIdentifier()->getValue()) === 0; - } - - public function setComment(string $comment): self - { - $this->comment = $comment; - - return $this; - } - - /** @param array $options */ - public function setOptions(array $options): self - { - $this->options = $options; - - return $this; - } - - public function setConfiguration(TableConfiguration $configuration): self - { - $this->configuration = $configuration; - - return $this; - } - - public function create(): Table - { - if ($this->name === null) { - throw InvalidTableDefinition::nameNotSet(); - } - - if ($this->columns->isEmpty()) { - throw InvalidTableDefinition::columnsNotSet($this->name); - } - - $options = $this->options; - - if ($this->comment !== '') { - $options['comment'] = $this->comment; - } - - return new Table( - $this->name->toString(), - $this->columns->toList(), - $this->indexes->toList(), - $this->uniqueConstraints->toList(), - $this->foreignKeyConstraints->toList(), - $options, - $this->configuration, - $this->primaryKeyConstraint, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraint.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraint.php deleted file mode 100644 index 6116e0b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraint.php +++ /dev/null @@ -1,359 +0,0 @@ - - * @final This class will be made final in DBAL 5.0. - */ -class UniqueConstraint extends AbstractOptionallyNamedObject -{ - /** - * Asset identifier instances of the column names the unique constraint is associated with. - * - * @deprecated - * - * @var array - */ - protected array $columns = []; - - /** - * Platform specific flags - * - * @deprecated - * - * @var array - */ - protected array $flags = []; - - /** - * Names of the columns covered by the unique constraint. - * - * @var list - */ - private array $columnNames = []; - - private bool $failedToParseColumnNames = false; - - /** - * @internal Use {@link UniqueConstraint::editor()} to instantiate an editor and - * {@link UniqueConstraintEditor::create()} to create a unique constraint. - * - * @param non-empty-list $columns - * @param array $flags - * @param array $options - */ - public function __construct( - string $name, - array $columns, - array $flags = [], - private readonly array $options = [], - ) { - if (count($columns) < 1) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - 'Instantiation of a unique constraint without columns is deprecated.', - ); - } - - if (count($options) > 0) { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - 'Using %s options is deprecated.', - self::class, - ); - } - - parent::__construct($name); - - foreach ($columns as $column) { - $this->addColumn($column); - } - - foreach ($flags as $flag) { - $this->addFlag($flag); - } - } - - protected function getNameParser(): UnqualifiedNameParser - { - return Parsers::getUnqualifiedNameParser(); - } - - /** - * Returns the names of the columns the constraint is associated with. - * - * @return non-empty-list - */ - public function getColumnNames(): array - { - if ($this->failedToParseColumnNames) { - throw InvalidState::uniqueConstraintHasInvalidColumnNames($this->getName()); - } - - if (count($this->columnNames) < 1) { - throw InvalidState::uniqueConstraintHasEmptyColumnNames($this->getName()); - } - - return $this->columnNames; - } - - /** - * @deprecated Use {@see getColumnNames()} instead. - * - * @return non-empty-list - */ - public function getColumns(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated. Use getColumnNames() instead.', - __METHOD__, - ); - - /** @phpstan-ignore return.type */ - return array_keys($this->columns); - } - - /** - * @deprecated Use {@see getColumnNames()} and {@see UnqualifiedName::toSQL()} instead. - * - * But only if they were defined with one or a column name - * is a keyword reserved by the platform. - * Otherwise, the plain unquoted value as inserted is returned. - * - * @param AbstractPlatform $platform The platform to use for quotation. - * - * @return list - * - * Returns the quoted representation of the column names the constraint is associated with. - */ - public function getQuotedColumns(AbstractPlatform $platform): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated. Use getColumnNames() and UnqualifiedName::toSQL() instead.', - __METHOD__, - ); - - $columns = []; - - foreach ($this->columns as $column) { - $columns[] = $column->getQuotedName($platform); - } - - return $columns; - } - - /** - * @deprecated Use {@see getColumnNames()} instead. - * - * @return non-empty-list - */ - public function getUnquotedColumns(): array - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated. Use getColumnNames() instead.', - __METHOD__, - ); - - return array_map($this->trimQuotes(...), $this->getColumns()); - } - - /** - * @deprecated Use {@see isClustered()} instead. - * - * Returns platform specific flags for unique constraint. - * - * @return array - */ - public function getFlags(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated. Use isClustered() instead.', - __METHOD__, - ); - - return array_keys($this->flags); - } - - /** - * Adds flag for a unique constraint that translates to platform specific handling. - * - * @deprecated Use {@see UniqueConstraintEditor::setIsClustered()} instead. - * - * @return $this - * - * @example $uniqueConstraint->addFlag('CLUSTERED') - */ - public function addFlag(string $flag): self - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - $this->flags[strtolower($flag)] = true; - - return $this; - } - - /** - * Does this unique constraint have a specific flag? - * - * @deprecated Use {@see isClustered()} instead. - */ - public function hasFlag(string $flag): bool - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated. Use isClustered() instead.', - __METHOD__, - ); - - return isset($this->flags[strtolower($flag)]); - } - - /** - * Returns whether the unique constraint is clustered. - */ - public function isClustered(): bool - { - return $this->hasFlag('clustered'); - } - - /** - * Removes a flag. - * - * @deprecated Use {@see UniqueConstraintEditor::setIsClustered()} instead. - */ - public function removeFlag(string $flag): void - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - unset($this->flags[strtolower($flag)]); - } - - /** @deprecated */ - public function hasOption(string $name): bool - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - return isset($this->options[strtolower($name)]); - } - - /** @deprecated */ - public function getOption(string $name): mixed - { - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - return $this->options[strtolower($name)]; - } - - /** - * @deprecated - * - * @return array - */ - public function getOptions(): array - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - return $this->options; - } - - /** @deprecated */ - protected function addColumn(string $column): void - { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - '%s is deprecated.', - __METHOD__, - ); - - $this->columns[$column] = new Identifier($column); - - $parser = Parsers::getUnqualifiedNameParser(); - - try { - $this->columnNames[] = $parser->parse($column); - } catch (Throwable $e) { - $this->failedToParseColumnNames = true; - - Deprecation::trigger( - 'doctrine/dbal', - 'https://github.com/doctrine/dbal/pull/6685', - 'Unable to parse column name: %s.', - $e->getMessage(), - ); - } - } - - /** - * Instantiates a new unique constraint editor. - */ - public static function editor(): UniqueConstraintEditor - { - return new UniqueConstraintEditor(); - } - - /** - * Instantiates a new unique constraint editor and initializes it with the constraint's properties. - */ - public function edit(): UniqueConstraintEditor - { - return self::editor() - ->setName($this->getObjectName()) - ->setColumnNames(...$this->getColumnNames()) - ->setIsClustered($this->isClustered()); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraintEditor.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraintEditor.php deleted file mode 100644 index d65ab2a..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/UniqueConstraintEditor.php +++ /dev/null @@ -1,110 +0,0 @@ - */ - private array $columnNames = []; - - private bool $isClustered = false; - - /** @internal Use {@link UniqueConstraint::editor()} or {@link UniqueConstraint::edit()} to create an instance */ - public function __construct() - { - } - - public function setName(?UnqualifiedName $name): self - { - $this->name = $name; - - return $this; - } - - /** @param non-empty-string $name */ - public function setUnquotedName(string $name): self - { - $this->name = UnqualifiedName::unquoted($name); - - return $this; - } - - /** @param non-empty-string $name */ - public function setQuotedName(string $name): self - { - $this->name = UnqualifiedName::quoted($name); - - return $this; - } - - public function setColumnNames(UnqualifiedName $firstColumnName, UnqualifiedName ...$otherColumnNames): self - { - $this->columnNames = array_merge([$firstColumnName], array_values($otherColumnNames)); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setUnquotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::unquoted($name), - array_merge([$firstColumnName], array_values($otherColumnNames)), - ); - - return $this; - } - - /** - * @param non-empty-string $firstColumnName - * @param non-empty-string ...$otherColumnNames - */ - public function setQuotedColumnNames( - string $firstColumnName, - string ...$otherColumnNames, - ): self { - $this->columnNames = array_map( - static fn (string $name): UnqualifiedName => UnqualifiedName::quoted($name), - array_merge([$firstColumnName], array_values($otherColumnNames)), - ); - - return $this; - } - - public function setIsClustered(bool $isClustered): self - { - $this->isClustered = $isClustered; - - return $this; - } - - public function create(): UniqueConstraint - { - if (count($this->columnNames) < 1) { - throw InvalidUniqueConstraintDefinition::columnNamesAreNotSet($this->name); - } - - return new UniqueConstraint( - $this->name?->toString() ?? '', - array_map(static fn (UnqualifiedName $columnName) => $columnName->toString(), $this->columnNames), - $this->isClustered ? ['clustered'] : [], - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Schema/View.php b/projects/priceservice/vendor/doctrine/dbal/src/Schema/View.php deleted file mode 100644 index 337f791..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Schema/View.php +++ /dev/null @@ -1,32 +0,0 @@ - - */ -class View extends AbstractNamedObject -{ - public function __construct(string $name, private readonly string $sql) - { - parent::__construct($name); - } - - protected function getNameParser(): OptionallyQualifiedNameParser - { - return Parsers::getOptionallyQualifiedNameParser(); - } - - public function getSql(): string - { - return $this->sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/ServerVersionProvider.php b/projects/priceservice/vendor/doctrine/dbal/src/ServerVersionProvider.php deleted file mode 100644 index 91dd9ab..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/ServerVersionProvider.php +++ /dev/null @@ -1,13 +0,0 @@ -Statement for the given SQL and Connection. - * - * @internal The statement can be only instantiated by {@see Connection}. - * - * @param Connection $conn The connection for handling statement errors. - * @param Driver\Statement $stmt The underlying driver-level statement. - * @param string $sql The SQL of the statement. - * - * @throws Exception - */ - public function __construct( - protected Connection $conn, - protected Driver\Statement $stmt, - protected string $sql, - ) { - $this->platform = $conn->getDatabasePlatform(); - } - - /** - * Binds a parameter value to the statement. - * - * The value can optionally be bound with a DBAL mapping type. - * If bound with a DBAL mapping type, the binding type is derived from the mapping - * type and the value undergoes the conversion routines of the mapping type before - * being bound. - * - * @param string|int $param Parameter identifier. For a prepared statement using named placeholders, - * this will be a parameter name of the form :name. For a prepared statement - * using question mark placeholders, this will be the 1-indexed position - * of the parameter. - * @param mixed $value The value to bind to the parameter. - * @param ParameterType|string|Type $type Either a {@see \Doctrine\DBAL\ParameterType} or a DBAL mapping type name - * or instance. - * - * @throws Exception - */ - public function bindValue( - string|int $param, - mixed $value, - string|ParameterType|Type $type = ParameterType::STRING, - ): void { - $this->params[$param] = $value; - $this->types[$param] = $type; - - if (is_string($type)) { - $type = Type::getType($type); - } - - if ($type instanceof Type) { - $value = $type->convertToDatabaseValue($value, $this->platform); - $bindingType = $type->getBindingType(); - } else { - $bindingType = $type; - } - - try { - $this->stmt->bindValue($param, $value, $bindingType); - } catch (Driver\Exception $e) { - throw $this->conn->convertException($e); - } - } - - /** @throws Exception */ - private function execute(): Result - { - try { - return new Result( - $this->stmt->execute(), - $this->conn, - ); - } catch (Driver\Exception $ex) { - throw $this->conn->convertExceptionDuringQuery($ex, $this->sql, $this->params, $this->types); - } - } - - /** - * Executes the statement with the currently bound parameters and return result. - * - * @throws Exception - */ - public function executeQuery(): Result - { - return $this->execute(); - } - - /** - * Executes the statement with the currently bound parameters and return affected rows. - * - * If the number of rows exceeds {@see PHP_INT_MAX}, it might be returned as string if the driver supports it. - * - * @return int|numeric-string - * - * @throws Exception - */ - public function executeStatement(): int|string - { - return $this->execute()->rowCount(); - } - - /** - * Gets the wrapped driver statement. - */ - public function getWrappedStatement(): Driver\Statement - { - return $this->stmt; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/Command/RunSqlCommand.php b/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/Command/RunSqlCommand.php deleted file mode 100644 index 8ec6f23..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/Command/RunSqlCommand.php +++ /dev/null @@ -1,119 +0,0 @@ -setName('dbal:run-sql') - ->setDescription('Executes arbitrary SQL directly from the command line.') - ->setDefinition([ - new InputOption('connection', null, InputOption::VALUE_REQUIRED, 'The named database connection'), - new InputArgument('sql', InputArgument::REQUIRED, 'The SQL statement to execute.'), - new InputOption('depth', null, InputOption::VALUE_REQUIRED, 'Dumping depth of result set (deprecated).'), - new InputOption('force-fetch', null, InputOption::VALUE_NONE, 'Forces fetching the result.'), - ]) - ->setHelp(<<<'EOT' -The %command.name% command executes the given SQL query and -outputs the results: - -php %command.full_name% "SELECT * FROM users" -EOT); - } - - /** - * {@inheritDoc} - * - * @throws Exception - */ - protected function execute(InputInterface $input, OutputInterface $output): int - { - $conn = $this->getConnection($input); - $io = new SymfonyStyle($input, $output); - - $sql = $input->getArgument('sql'); - - if ($sql === null) { - throw new RuntimeException('Argument "sql" is required in order to execute this command correctly.'); - } - - assert(is_string($sql)); - - if ($input->getOption('depth') !== null) { - $io->warning('Parameter "depth" is deprecated and has no effect anymore.'); - } - - $forceFetch = $input->getOption('force-fetch'); - assert(is_bool($forceFetch)); - - if (stripos($sql, 'select') === 0 || $forceFetch) { - $this->runQuery($io, $conn, $sql); - } else { - $this->runStatement($io, $conn, $sql); - } - - return 0; - } - - private function getConnection(InputInterface $input): Connection - { - $connectionName = $input->getOption('connection'); - assert(is_string($connectionName) || $connectionName === null); - - if ($connectionName !== null) { - return $this->connectionProvider->getConnection($connectionName); - } - - return $this->connectionProvider->getDefaultConnection(); - } - - /** @throws Exception */ - private function runQuery(SymfonyStyle $io, Connection $conn, string $sql): void - { - $resultSet = $conn->fetchAllAssociative($sql); - if ($resultSet === []) { - $io->success('The query yielded an empty result set.'); - - return; - } - - $io->table(array_keys($resultSet[0]), $resultSet); - } - - /** @throws Exception */ - private function runStatement(SymfonyStyle $io, Connection $conn, string $sql): void - { - $io->success(sprintf('%d rows affected.', $conn->executeStatement($sql))); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionNotFound.php b/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionNotFound.php deleted file mode 100644 index 049d658..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Tools/Console/ConnectionNotFound.php +++ /dev/null @@ -1,11 +0,0 @@ -connection; - } - - public function getConnection(string $name): Connection - { - if ($name !== $this->defaultConnectionName) { - throw new ConnectionNotFound(sprintf('Connection with name "%s" does not exist.', $name)); - } - - return $this->connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Tools/DsnParser.php b/projects/priceservice/vendor/doctrine/dbal/src/Tools/DsnParser.php deleted file mode 100644 index 9a8fb0f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Tools/DsnParser.php +++ /dev/null @@ -1,223 +0,0 @@ -> $schemeMapping An array used to map DSN schemes to DBAL drivers */ - public function __construct( - private readonly array $schemeMapping = [], - ) { - } - - /** - * @phpstan-return Params - * - * @throws MalformedDsnException - */ - public function parse( - #[SensitiveParameter] - string $dsn, - ): array { - // (pdo-)?sqlite3?:///... => (pdo-)?sqlite3?://localhost/... or else the URL will be invalid - $url = preg_replace('#^((?:pdo-)?sqlite3?):///#', '$1://localhost/', $dsn); - assert($url !== null); - - $url = parse_url($url); - - if ($url === false) { - throw MalformedDsnException::new(); - } - - foreach ($url as $param => $value) { - if (! is_string($value)) { - continue; - } - - $url[$param] = rawurldecode($value); - } - - $params = []; - - if (isset($url['scheme'])) { - $params['driver'] = $this->parseDatabaseUrlScheme($url['scheme']); - } - - if (isset($url['host'])) { - $params['host'] = $url['host']; - } - - if (isset($url['port'])) { - $params['port'] = $url['port']; - } - - if (isset($url['user'])) { - $params['user'] = $url['user']; - } - - if (isset($url['pass'])) { - $params['password'] = $url['pass']; - } - - if (isset($params['driver']) && is_a($params['driver'], Driver::class, true)) { - $params['driverClass'] = $params['driver']; - unset($params['driver']); - } - - $params = $this->parseDatabaseUrlPath($url, $params); - $params = $this->parseDatabaseUrlQuery($url, $params); - - return $params; - } - - /** - * Parses the given connection URL and resolves the given connection parameters. - * - * Assumes that the connection URL scheme is already parsed and resolved into the given connection parameters - * via {@see parseDatabaseUrlScheme}. - * - * @see parseDatabaseUrlScheme - * - * @param mixed[] $url The URL parts to evaluate. - * @param mixed[] $params The connection parameters to resolve. - * - * @return mixed[] The resolved connection parameters. - */ - private function parseDatabaseUrlPath(array $url, array $params): array - { - if (! isset($url['path'])) { - return $params; - } - - if (isset($params['host'])) { - // Only normalize the path if a host is also available. Otherwise we might trim leading slashes - // from a pure dbname. - $url['path'] = $this->normalizeDatabaseUrlPath($url['path']); - } - - // If we do not have a known DBAL driver, we do not know any connection URL path semantics to evaluate - // and therefore treat the path as a regular DBAL connection URL path. - if (! isset($params['driver'])) { - return $this->parseRegularDatabaseUrlPath($url, $params); - } - - if (strpos($params['driver'], 'sqlite') !== false) { - return $this->parseSqliteDatabaseUrlPath($url, $params); - } - - return $this->parseRegularDatabaseUrlPath($url, $params); - } - - /** - * Normalizes the given connection URL path. - * - * @return string The normalized connection URL path - */ - private function normalizeDatabaseUrlPath(string $urlPath): string - { - assert($urlPath[0] === '/'); - - // Trim leading slash from URL path. - return substr($urlPath, 1); - } - - /** - * Parses the query part of the given connection URL and resolves the given connection parameters. - * - * @param mixed[] $url The connection URL parts to evaluate. - * @param mixed[] $params The connection parameters to resolve. - * - * @return mixed[] The resolved connection parameters. - */ - private function parseDatabaseUrlQuery(array $url, array $params): array - { - if (! isset($url['query'])) { - return $params; - } - - $query = []; - - parse_str($url['query'], $query); // simply ingest query as extra params, e.g. charset or sslmode - - return array_merge($params, $query); // parse_str wipes existing array elements - } - - /** - * Parses the given regular connection URL and resolves the given connection parameters. - * - * Assumes that the "path" URL part is already normalized via {@see normalizeDatabaseUrlPath}. - * - * @see normalizeDatabaseUrlPath - * - * @param mixed[] $url The regular connection URL parts to evaluate. - * @param mixed[] $params The connection parameters to resolve. - * - * @return mixed[] The resolved connection parameters. - */ - private function parseRegularDatabaseUrlPath(array $url, array $params): array - { - $params['dbname'] = $url['path']; - - return $params; - } - - /** - * Parses the given SQLite connection URL and resolves the given connection parameters. - * - * Assumes that the "path" URL part is already normalized via {@see normalizeDatabaseUrlPath}. - * - * @see normalizeDatabaseUrlPath - * - * @param mixed[] $url The SQLite connection URL parts to evaluate. - * @param mixed[] $params The connection parameters to resolve. - * - * @return mixed[] The resolved connection parameters. - */ - private function parseSqliteDatabaseUrlPath(array $url, array $params): array - { - if ($url['path'] === ':memory:') { - $params['memory'] = true; - - return $params; - } - - $params['path'] = $url['path']; // pdo_sqlite driver uses 'path' instead of 'dbname' key - - return $params; - } - - /** - * Parses the scheme part from given connection URL and resolves the given connection parameters. - * - * @return string The resolved driver. - */ - private function parseDatabaseUrlScheme(string $scheme): string - { - // URL schemes must not contain underscores, but dashes are ok - $driver = str_replace('-', '_', $scheme); - - // If the driver is an alias (e.g. "postgres"), map it to the actual name ("pdo-pgsql"). - // Otherwise, let checkParams decide later if the driver exists. - return $this->schemeMapping[$driver] ?? $driver; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/TransactionIsolationLevel.php b/projects/priceservice/vendor/doctrine/dbal/src/TransactionIsolationLevel.php deleted file mode 100644 index 2b094db..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/TransactionIsolationLevel.php +++ /dev/null @@ -1,13 +0,0 @@ -getAsciiStringTypeDeclarationSQL($column); - } - - public function getBindingType(): ParameterType - { - return ParameterType::ASCII; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/BigIntType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/BigIntType.php deleted file mode 100644 index a9b0967..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/BigIntType.php +++ /dev/null @@ -1,64 +0,0 @@ -getBigIntTypeDeclarationSQL($column); - } - - public function getBindingType(): ParameterType - { - return ParameterType::STRING; - } - - /** - * @param T $value - * - * @return (T is null ? null : int|string) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): int|string|null - { - if ($value === null || is_int($value)) { - return $value; - } - - assert( - is_string($value), - 'DBAL assumes values outside of the integer range to be returned as string by the database driver.', - ); - - if ( - ($value > PHP_INT_MIN && $value < PHP_INT_MAX) - || $value === (string) (int) $value - ) { - return (int) $value; - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/BinaryType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/BinaryType.php deleted file mode 100644 index d400dd5..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/BinaryType.php +++ /dev/null @@ -1,49 +0,0 @@ -getBinaryTypeDeclarationSQL($column); - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return null; - } - - if (is_resource($value)) { - $value = stream_get_contents($value); - } - - if (! is_string($value)) { - throw ValueNotConvertible::new($value, Types::BINARY); - } - - return $value; - } - - public function getBindingType(): ParameterType - { - return ParameterType::BINARY; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/BlobType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/BlobType.php deleted file mode 100644 index c5415bc..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/BlobType.php +++ /dev/null @@ -1,56 +0,0 @@ -getBlobTypeDeclarationSQL($column); - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): mixed - { - if ($value === null) { - return null; - } - - if (is_string($value)) { - $fp = fopen('php://temp', 'rb+'); - assert(is_resource($fp)); - fwrite($fp, $value); - fseek($fp, 0); - $value = $fp; - } - - if (! is_resource($value)) { - throw ValueNotConvertible::new($value, Types::BLOB); - } - - return $value; - } - - public function getBindingType(): ParameterType - { - return ParameterType::LARGE_OBJECT; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/BooleanType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/BooleanType.php deleted file mode 100644 index e837e58..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/BooleanType.php +++ /dev/null @@ -1,44 +0,0 @@ -getBooleanTypeDeclarationSQL($column); - } - - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): mixed - { - return $platform->convertBooleansToDatabaseValue($value); - } - - /** - * @param T $value - * - * @return (T is null ? null : bool) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?bool - { - return $platform->convertFromBoolean($value); - } - - public function getBindingType(): ParameterType - { - return ParameterType::BOOLEAN; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/ConversionException.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/ConversionException.php deleted file mode 100644 index 7cc375d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/ConversionException.php +++ /dev/null @@ -1,14 +0,0 @@ -getDateTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTimeImmutable) { - return $value->format($platform->getDateFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTimeImmutable::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTimeImmutable) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable - { - if ($value === null || $value instanceof DateTimeImmutable) { - return $value; - } - - $dateTime = DateTimeImmutable::createFromFormat('!' . $platform->getDateFormatString(), $value); - - if ($dateTime === false) { - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateFormatString(), - ); - } - - return $dateTime; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateIntervalType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateIntervalType.php deleted file mode 100644 index 29842ae..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateIntervalType.php +++ /dev/null @@ -1,84 +0,0 @@ -getStringTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return null; - } - - if ($value instanceof DateInterval) { - return $value->format(self::FORMAT); - } - - throw InvalidType::new($value, static::class, ['null', DateInterval::class]); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateInterval) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateInterval - { - if ($value === null || $value instanceof DateInterval) { - return $value; - } - - $negative = false; - - if (isset($value[0]) && ($value[0] === '+' || $value[0] === '-')) { - $negative = $value[0] === '-'; - $value = substr($value, 1); - } - - try { - $interval = new DateInterval($value); - - if ($negative) { - $interval->invert = 1; - } - - return $interval; - } catch (Throwable $exception) { - throw InvalidFormat::new($value, static::class, self::FORMAT, $exception); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeImmutableType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeImmutableType.php deleted file mode 100644 index 2d49d1d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeImmutableType.php +++ /dev/null @@ -1,80 +0,0 @@ -getDateTimeTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTimeImmutable) { - return $value->format($platform->getDateTimeFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTimeImmutable::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTimeImmutable) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable - { - if ($value === null || $value instanceof DateTimeImmutable) { - return $value; - } - - $dateTime = DateTimeImmutable::createFromFormat($platform->getDateTimeFormatString(), $value); - - if ($dateTime !== false) { - return $dateTime; - } - - try { - return new DateTimeImmutable($value); - } catch (Exception $e) { - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateTimeFormatString(), - $e, - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeType.php deleted file mode 100644 index 9fd0ba0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeType.php +++ /dev/null @@ -1,80 +0,0 @@ -getDateTimeTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTime) { - return $value->format($platform->getDateTimeFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTime::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTime) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime - { - if ($value === null || $value instanceof DateTime) { - return $value; - } - - $dateTime = DateTime::createFromFormat($platform->getDateTimeFormatString(), $value); - - if ($dateTime !== false) { - return $dateTime; - } - - try { - return new DateTime($value); - } catch (Exception $e) { - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateTimeFormatString(), - $e, - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzImmutableType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzImmutableType.php deleted file mode 100644 index 350964d..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzImmutableType.php +++ /dev/null @@ -1,74 +0,0 @@ -getDateTimeTzTypeDeclarationSQL($column); - } - - /** - * @phpstan-param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTimeImmutable) { - return $value->format($platform->getDateTimeTzFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTimeImmutable::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTimeImmutable) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable - { - if ($value === null || $value instanceof DateTimeImmutable) { - return $value; - } - - $dateTime = DateTimeImmutable::createFromFormat($platform->getDateTimeTzFormatString(), $value); - - if ($dateTime !== false) { - return $dateTime; - } - - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateTimeTzFormatString(), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzType.php deleted file mode 100644 index 98e6569..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateTimeTzType.php +++ /dev/null @@ -1,87 +0,0 @@ -getDateTimeTzTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTime) { - return $value->format($platform->getDateTimeTzFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTime::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTime) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime - { - if ($value === null || $value instanceof DateTime) { - return $value; - } - - $dateTime = DateTime::createFromFormat($platform->getDateTimeTzFormatString(), $value); - if ($dateTime !== false) { - return $dateTime; - } - - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateTimeTzFormatString(), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DateType.php deleted file mode 100644 index 7dcbe4f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DateType.php +++ /dev/null @@ -1,69 +0,0 @@ -getDateTypeDeclarationSQL($column); - } - - /** - * @phpstan-param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): mixed - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTime) { - return $value->format($platform->getDateFormatString()); - } - - throw InvalidType::new($value, static::class, ['null', DateTime::class]); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTime) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime - { - if ($value === null || $value instanceof DateTime) { - return $value; - } - - $dateTime = DateTime::createFromFormat('!' . $platform->getDateFormatString(), $value); - if ($dateTime !== false) { - return $dateTime; - } - - throw InvalidFormat::new( - $value, - static::class, - $platform->getDateFormatString(), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/DecimalType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/DecimalType.php deleted file mode 100644 index 7301a33..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/DecimalType.php +++ /dev/null @@ -1,35 +0,0 @@ -getDecimalTypeDeclarationSQL($column); - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?string - { - // Some drivers can represent decimals as float/int - // See also: https://github.com/doctrine/dbal/pull/4818 - if (is_float($value) || is_int($value)) { - return (string) $value; - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/EnumType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/EnumType.php deleted file mode 100644 index 489dc4b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/EnumType.php +++ /dev/null @@ -1,18 +0,0 @@ -getEnumDeclarationSQL($column); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidFormat.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidFormat.php deleted file mode 100644 index 221da2f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidFormat.php +++ /dev/null @@ -1,37 +0,0 @@ - 32 ? substr($value, 0, 20) . '...' : $value, - $toType, - $expectedFormat ?? '', - ), - 0, - $previous, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidType.php deleted file mode 100644 index 743e41f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/Exception/InvalidType.php +++ /dev/null @@ -1,51 +0,0 @@ - 32 ? substr($value, 0, 20) . '...' : $value, - $toType, - ); - } - - return new self($message, 0, $previous); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/FloatType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/FloatType.php deleted file mode 100644 index 40e11f9..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/FloatType.php +++ /dev/null @@ -1,30 +0,0 @@ -getFloatDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : float) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?float - { - return $value === null ? null : (float) $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/GuidType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/GuidType.php deleted file mode 100644 index cc7cc5f..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/GuidType.php +++ /dev/null @@ -1,21 +0,0 @@ -getGuidTypeDeclarationSQL($column); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/IntegerType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/IntegerType.php deleted file mode 100644 index 8a711c0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/IntegerType.php +++ /dev/null @@ -1,39 +0,0 @@ -getIntegerTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : int) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?int - { - return $value === null ? null : (int) $value; - } - - public function getBindingType(): ParameterType - { - return ParameterType::INTEGER; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonType.php deleted file mode 100644 index 04c3dce..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonType.php +++ /dev/null @@ -1,69 +0,0 @@ -getJsonTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return null; - } - - try { - return json_encode($value, JSON_THROW_ON_ERROR | JSON_PRESERVE_ZERO_FRACTION); - } catch (JsonException $e) { - throw SerializationFailed::new($value, 'json', $e->getMessage(), $e); - } - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): mixed - { - if ($value === null || $value === '') { - return null; - } - - if (is_resource($value)) { - $value = stream_get_contents($value); - } - - try { - return json_decode($value, true, 512, JSON_THROW_ON_ERROR); - } catch (JsonException $e) { - throw ValueNotConvertible::new($value, 'json', $e->getMessage(), $e); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonbType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonbType.php deleted file mode 100644 index f84e5d8..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/JsonbType.php +++ /dev/null @@ -1,21 +0,0 @@ -getJsonbTypeDeclarationSQL($column); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/NumberType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/NumberType.php deleted file mode 100644 index 3b3d6d1..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/NumberType.php +++ /dev/null @@ -1,54 +0,0 @@ -getDecimalTypeDeclarationSQL($column); - } - - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return null; - } - - if (! $value instanceof Number) { - throw InvalidType::new($value, static::class, ['null', Number::class]); - } - - return (string) $value; - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?Number - { - if ($value === null) { - return null; - } - - // SQLite might return a decimal as float. - if (is_float($value)) { - $value = (string) $value; - } - - try { - return new Number($value); - } catch (TypeError | ValueError $e) { - throw ValueNotConvertible::new($value, static::class, previous: $e); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/PhpDateMappingType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/PhpDateMappingType.php deleted file mode 100644 index 200f277..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/PhpDateMappingType.php +++ /dev/null @@ -1,14 +0,0 @@ -getClobTypeDeclarationSQL($column); - } - - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if (! is_array($value) || count($value) === 0) { - return null; - } - - return implode(',', $value); - } - - /** @return list */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): array - { - if ($value === null) { - return []; - } - - $value = is_resource($value) ? stream_get_contents($value) : $value; - - return explode(',', $value); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallFloatType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallFloatType.php deleted file mode 100644 index 431ddb2..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallFloatType.php +++ /dev/null @@ -1,30 +0,0 @@ -getSmallFloatDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : float) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?float - { - return $value === null ? null : (float) $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallIntType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallIntType.php deleted file mode 100644 index ba0899c..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/SmallIntType.php +++ /dev/null @@ -1,39 +0,0 @@ -getSmallIntTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : int) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?int - { - return $value === null ? null : (int) $value; - } - - public function getBindingType(): ParameterType - { - return ParameterType::INTEGER; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/StringType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/StringType.php deleted file mode 100644 index d3f92aa..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/StringType.php +++ /dev/null @@ -1,21 +0,0 @@ -getStringTypeDeclarationSQL($column); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/TextType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/TextType.php deleted file mode 100644 index a682be5..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/TextType.php +++ /dev/null @@ -1,29 +0,0 @@ -getClobTypeDeclarationSQL($column); - } - - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): mixed - { - return is_resource($value) ? stream_get_contents($value) : $value; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeImmutableType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeImmutableType.php deleted file mode 100644 index c1c24d8..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeImmutableType.php +++ /dev/null @@ -1,74 +0,0 @@ -getTimeTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTimeImmutable) { - return $value->format($platform->getTimeFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTimeImmutable::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTimeImmutable) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable - { - if ($value === null || $value instanceof DateTimeImmutable) { - return $value; - } - - $dateTime = DateTimeImmutable::createFromFormat('!' . $platform->getTimeFormatString(), $value); - - if ($dateTime !== false) { - return $dateTime; - } - - throw InvalidFormat::new( - $value, - static::class, - $platform->getTimeFormatString(), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeType.php deleted file mode 100644 index 0f96fd5..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/TimeType.php +++ /dev/null @@ -1,69 +0,0 @@ -getTimeTypeDeclarationSQL($column); - } - - /** - * @param T $value - * - * @return (T is null ? null : string) - * - * @template T - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): ?string - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTime) { - return $value->format($platform->getTimeFormatString()); - } - - throw InvalidType::new($value, static::class, ['null', DateTime::class]); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTime) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime - { - if ($value === null || $value instanceof DateTime) { - return $value; - } - - $dateTime = DateTime::createFromFormat('!' . $platform->getTimeFormatString(), $value); - if ($dateTime !== false) { - return $dateTime; - } - - throw InvalidFormat::new( - $value, - static::class, - $platform->getTimeFormatString(), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/Type.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/Type.php deleted file mode 100644 index 05e78ac..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/Type.php +++ /dev/null @@ -1,243 +0,0 @@ - AsciiStringType::class, - Types::BIGINT => BigIntType::class, - Types::BINARY => BinaryType::class, - Types::BLOB => BlobType::class, - Types::BOOLEAN => BooleanType::class, - Types::DATE_MUTABLE => DateType::class, - Types::DATE_IMMUTABLE => DateImmutableType::class, - Types::DATEINTERVAL => DateIntervalType::class, - Types::DATETIME_MUTABLE => DateTimeType::class, - Types::DATETIME_IMMUTABLE => DateTimeImmutableType::class, - Types::DATETIMETZ_MUTABLE => DateTimeTzType::class, - Types::DATETIMETZ_IMMUTABLE => DateTimeTzImmutableType::class, - Types::DECIMAL => DecimalType::class, - Types::NUMBER => NumberType::class, - Types::ENUM => EnumType::class, - Types::FLOAT => FloatType::class, - Types::GUID => GuidType::class, - Types::INTEGER => IntegerType::class, - Types::JSON => JsonType::class, - Types::JSONB => JsonbType::class, - Types::SIMPLE_ARRAY => SimpleArrayType::class, - Types::SMALLFLOAT => SmallFloatType::class, - Types::SMALLINT => SmallIntType::class, - Types::STRING => StringType::class, - Types::TEXT => TextType::class, - Types::TIME_MUTABLE => TimeType::class, - Types::TIME_IMMUTABLE => TimeImmutableType::class, - ]; - - private static ?TypeRegistry $typeRegistry = null; - - /** - * Converts a value from its PHP representation to its database representation - * of this type. - * - * @param mixed $value The value to convert. - * @param AbstractPlatform $platform The currently used database platform. - * - * @return mixed The database representation of the value. - * - * @throws ConversionException - */ - public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): mixed - { - return $value; - } - - /** - * Converts a value from its database representation to its PHP representation - * of this type. - * - * @param mixed $value The value to convert. - * @param AbstractPlatform $platform The currently used database platform. - * - * @return mixed The PHP representation of the value. - * - * @throws ConversionException - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): mixed - { - return $value; - } - - /** - * Gets the SQL declaration snippet for a column of this type. - * - * @param array $column The column definition - * @param AbstractPlatform $platform The currently used database platform. - */ - abstract public function getSQLDeclaration(array $column, AbstractPlatform $platform): string; - - /** @throws TypesException */ - final public static function getTypeRegistry(): TypeRegistry - { - return self::$typeRegistry ??= self::createTypeRegistry(); - } - - /** @throws TypesException */ - private static function createTypeRegistry(): TypeRegistry - { - return new TypeRegistry( - array_map( - static fn ($class) => new $class(), - self::BUILTIN_TYPES_MAP, - ), - ); - } - - /** - * Factory method to create type instances. - * - * @param string $name The name of the type. - * - * @throws TypesException - */ - public static function getType(string $name): self - { - return self::getTypeRegistry()->get($name); - } - - /** - * Finds a name for the given type. - * - * @throws TypesException - */ - public static function lookupName(self $type): string - { - return self::getTypeRegistry()->lookupName($type); - } - - /** - * Adds a custom type to the type map. - * - * @param string $name The name of the type. - * @param class-string|Type $type The custom type or the class name of the custom type. - * - * @throws Exception - */ - public static function addType(string $name, string|Type $type): void - { - if (is_string($type)) { - try { - $type = new $type(); - } catch (ArgumentCountError $e) { // @phpstan-ignore catch.neverThrown (it can be thrown) - throw TypeArgumentCountError::new($name, $e); - } - } - - self::getTypeRegistry()->register($name, $type); - } - - /** - * Checks if exists support for a type. - * - * @param string $name The name of the type. - * - * @return bool TRUE if type is supported; FALSE otherwise. - * - * @throws TypesException - */ - public static function hasType(string $name): bool - { - return self::getTypeRegistry()->has($name); - } - - /** - * Overrides an already defined type to use a different implementation. - * - * @param class-string|Type $type The custom type or the class name of the custom type. - * - * @throws Exception - */ - public static function overrideType(string $name, string|Type $type): void - { - if (is_string($type)) { - try { - $type = new $type(); - } catch (ArgumentCountError $e) { // @phpstan-ignore catch.neverThrown (it can be thrown) - throw TypeArgumentCountError::new($name, $e); - } - } - - self::getTypeRegistry()->override($name, $type); - } - - /** - * Gets the (preferred) binding type for values of this type that - * can be used when binding parameters to prepared statements. - */ - public function getBindingType(): ParameterType - { - return ParameterType::STRING; - } - - /** - * Gets the types array map which holds all registered types and the corresponding - * type class - * - * @return array - * - * @throws TypesException - */ - public static function getTypesMap(): array - { - return array_map( - static fn (Type $type): string => $type::class, - self::getTypeRegistry()->getMap(), - ); - } - - /** - * Modifies the SQL expression (identifier, parameter) to convert to a database value. - */ - public function convertToDatabaseValueSQL(string $sqlExpr, AbstractPlatform $platform): string - { - return $sqlExpr; - } - - /** - * Modifies the SQL expression (identifier, parameter) to convert to a PHP value. - */ - public function convertToPHPValueSQL(string $sqlExpr, AbstractPlatform $platform): string - { - return $sqlExpr; - } - - /** - * Gets an array of database types that map to this Doctrine type. - * - * @return array - */ - public function getMappedDatabaseTypes(AbstractPlatform $platform): array - { - return []; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/TypeRegistry.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/TypeRegistry.php deleted file mode 100644 index fce4ab0..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/TypeRegistry.php +++ /dev/null @@ -1,136 +0,0 @@ - Map of type names and their corresponding flyweight objects. */ - private array $instances; - /** @var array */ - private array $instancesReverseIndex; - - /** - * @param array $instances - * - * @throws TypesException - */ - public function __construct(array $instances = []) - { - $this->instances = []; - $this->instancesReverseIndex = []; - foreach ($instances as $name => $type) { - $this->register($name, $type); - } - } - - /** - * Finds a type by the given name. - * - * @throws TypesException - */ - public function get(string $name): Type - { - $type = $this->instances[$name] ?? null; - if ($type === null) { - throw UnknownColumnType::new($name); - } - - return $type; - } - - /** - * Finds a name for the given type. - * - * @throws TypesException - */ - public function lookupName(Type $type): string - { - $name = $this->findTypeName($type); - - if ($name === null) { - throw TypeNotRegistered::new($type); - } - - return $name; - } - - /** - * Checks if there is a type of the given name. - */ - public function has(string $name): bool - { - return isset($this->instances[$name]); - } - - /** - * Registers a custom type to the type map. - * - * @throws TypesException - */ - public function register(string $name, Type $type): void - { - if (isset($this->instances[$name])) { - throw TypesAlreadyExists::new($name); - } - - if ($this->findTypeName($type) !== null) { - throw TypeAlreadyRegistered::new($type); - } - - $this->instances[$name] = $type; - $this->instancesReverseIndex[spl_object_id($type)] = $name; - } - - /** - * Overrides an already defined type to use a different implementation. - * - * @throws Exception - */ - public function override(string $name, Type $type): void - { - $origType = $this->instances[$name] ?? null; - if ($origType === null) { - throw TypeNotFound::new($name); - } - - if (($this->findTypeName($type) ?? $name) !== $name) { - throw TypeAlreadyRegistered::new($type); - } - - unset($this->instancesReverseIndex[spl_object_id($origType)]); - $this->instances[$name] = $type; - $this->instancesReverseIndex[spl_object_id($type)] = $name; - } - - /** - * Gets the map of all registered types and their corresponding type instances. - * - * @internal - * - * @return array - */ - public function getMap(): array - { - return $this->instances; - } - - private function findTypeName(Type $type): ?string - { - return $this->instancesReverseIndex[spl_object_id($type)] ?? null; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/Types.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/Types.php deleted file mode 100644 index 56f550b..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/Types.php +++ /dev/null @@ -1,44 +0,0 @@ -format($platform->getDateTimeFormatString()); - } - - throw InvalidType::new( - $value, - static::class, - ['null', DateTimeImmutable::class], - ); - } - - /** - * @param T $value - * - * @return (T is null ? null : DateTimeImmutable) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable - { - if ($value === null || $value instanceof DateTimeImmutable) { - return $value; - } - - try { - $dateTime = new DateTimeImmutable($value); - } catch (Exception $e) { - throw ValueNotConvertible::new($value, DateTimeImmutable::class, $e->getMessage(), $e); - } - - return $dateTime; - } -} diff --git a/projects/priceservice/vendor/doctrine/dbal/src/Types/VarDateTimeType.php b/projects/priceservice/vendor/doctrine/dbal/src/Types/VarDateTimeType.php deleted file mode 100644 index 55dec49..0000000 --- a/projects/priceservice/vendor/doctrine/dbal/src/Types/VarDateTimeType.php +++ /dev/null @@ -1,42 +0,0 @@ - 0 it is necessary to use this type. - */ -class VarDateTimeType extends DateTimeType -{ - /** - * @param T $value - * - * @return (T is null ? null : DateTime) - * - * @template T - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime - { - if ($value === null || $value instanceof DateTime) { - return $value; - } - - try { - $dateTime = new DateTime($value); - } catch (Exception $e) { - throw ValueNotConvertible::new($value, DateTime::class, $e->getMessage(), $e); - } - - return $dateTime; - } -} diff --git a/projects/priceservice/vendor/doctrine/deprecations/LICENSE b/projects/priceservice/vendor/doctrine/deprecations/LICENSE deleted file mode 100644 index 156905c..0000000 --- a/projects/priceservice/vendor/doctrine/deprecations/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2020-2021 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/deprecations/README.md b/projects/priceservice/vendor/doctrine/deprecations/README.md deleted file mode 100644 index 8b806d1..0000000 --- a/projects/priceservice/vendor/doctrine/deprecations/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# Doctrine Deprecations - -A small (side-effect free by default) layer on top of -`trigger_error(E_USER_DEPRECATED)` or PSR-3 logging. - -- no side-effects by default, making it a perfect fit for libraries that don't know how the error handler works they operate under -- options to avoid having to rely on error handlers global state by using PSR-3 logging -- deduplicate deprecation messages to avoid excessive triggering and reduce overhead - -We recommend to collect Deprecations using a PSR logger instead of relying on -the global error handler. - -## Usage from consumer perspective: - -Enable Doctrine deprecations to be sent to a PSR3 logger: - -```php -\Doctrine\Deprecations\Deprecation::enableWithPsrLogger($logger); -``` - -Enable Doctrine deprecations to be sent as `@trigger_error($message, E_USER_DEPRECATED)` -messages by setting the `DOCTRINE_DEPRECATIONS` environment variable to `trigger`. -Alternatively, call: - -```php -\Doctrine\Deprecations\Deprecation::enableWithTriggerError(); -``` - -If you only want to enable deprecation tracking, without logging or calling `trigger_error` -then set the `DOCTRINE_DEPRECATIONS` environment variable to `track`. -Alternatively, call: - -```php -\Doctrine\Deprecations\Deprecation::enableTrackingDeprecations(); -``` - -Tracking is enabled with all three modes and provides access to all triggered -deprecations and their individual count: - -```php -$deprecations = \Doctrine\Deprecations\Deprecation::getTriggeredDeprecations(); - -foreach ($deprecations as $identifier => $count) { - echo $identifier . " was triggered " . $count . " times\n"; -} -``` - -### Suppressing Specific Deprecations - -Disable triggering about specific deprecations: - -```php -\Doctrine\Deprecations\Deprecation::ignoreDeprecations("https://link/to/deprecations-description-identifier"); -``` - -Disable all deprecations from a package - -```php -\Doctrine\Deprecations\Deprecation::ignorePackage("doctrine/orm"); -``` - -### Other Operations - -When used within PHPUnit or other tools that could collect multiple instances of the same deprecations -the deduplication can be disabled: - -```php -\Doctrine\Deprecations\Deprecation::withoutDeduplication(); -``` - -Disable deprecation tracking again: - -```php -\Doctrine\Deprecations\Deprecation::disable(); -``` - -## Usage from a library/producer perspective: - -When you want to unconditionally trigger a deprecation even when called -from the library itself then the `trigger` method is the way to go: - -```php -\Doctrine\Deprecations\Deprecation::trigger( - "doctrine/orm", - "https://link/to/deprecations-description", - "message" -); -``` - -If variable arguments are provided at the end, they are used with `sprintf` on -the message. - -```php -\Doctrine\Deprecations\Deprecation::trigger( - "doctrine/orm", - "https://github.com/doctrine/orm/issue/1234", - "message %s %d", - "foo", - 1234 -); -``` - -When you want to trigger a deprecation only when it is called by a function -outside of the current package, but not trigger when the package itself is the cause, -then use: - -```php -\Doctrine\Deprecations\Deprecation::triggerIfCalledFromOutside( - "doctrine/orm", - "https://link/to/deprecations-description", - "message" -); -``` - -Based on the issue link each deprecation message is only triggered once per -request. - -A limited stacktrace is included in the deprecation message to find the -offending location. - -Note: A producer/library should never call `Deprecation::enableWith` methods -and leave the decision how to handle deprecations to application and -frameworks. - -## Usage in PHPUnit tests - -There is a `VerifyDeprecations` trait that you can use to make assertions on -the occurrence of deprecations within a test. - -```php -use Doctrine\Deprecations\PHPUnit\VerifyDeprecations; - -class MyTest extends TestCase -{ - use VerifyDeprecations; - - public function testSomethingDeprecation() - { - $this->expectDeprecationWithIdentifier('https://github.com/doctrine/orm/issue/1234'); - - triggerTheCodeWithDeprecation(); - } - - public function testSomethingDeprecationFixed() - { - $this->expectNoDeprecationWithIdentifier('https://github.com/doctrine/orm/issue/1234'); - - triggerTheCodeWithoutDeprecation(); - } -} -``` - -## Displaying deprecations after running a PHPUnit test suite - -It is possible to integrate this library with PHPUnit to display all -deprecations triggered during the test suite execution. - -```xml - - - - - - - - - - - - src - - - -``` - -Note that you can still trigger Deprecations in your code, provided you use the -`#[WithoutErrorHandler]` attribute to disable PHPUnit's error handler for tests -that call it. Be wary that this will disable all error handling, meaning it -will mask any warnings or errors that would otherwise be caught by PHPUnit. - -At the moment, it is not possible to disable deduplication with an environment -variable, but you can use a bootstrap file to achieve that: - -```php -// tests/bootstrap.php - - … - -``` - -## What is a deprecation identifier? - -An identifier for deprecations is just a link to any resource, most often a -Github Issue or Pull Request explaining the deprecation and potentially its -alternative. diff --git a/projects/priceservice/vendor/doctrine/deprecations/composer.json b/projects/priceservice/vendor/doctrine/deprecations/composer.json deleted file mode 100644 index 91ba9e6..0000000 --- a/projects/priceservice/vendor/doctrine/deprecations/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "doctrine/deprecations", - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "license": "MIT", - "type": "library", - "homepage": "https://www.doctrine-project.org/", - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", - "psr/log": "^1 || ^2 || ^3" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "DeprecationTests\\": "test_fixtures/src", - "Doctrine\\Foo\\": "test_fixtures/vendor/doctrine/foo" - } - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - } -} diff --git a/projects/priceservice/vendor/doctrine/deprecations/src/Deprecation.php b/projects/priceservice/vendor/doctrine/deprecations/src/Deprecation.php deleted file mode 100644 index 1801e6c..0000000 --- a/projects/priceservice/vendor/doctrine/deprecations/src/Deprecation.php +++ /dev/null @@ -1,309 +0,0 @@ -|null */ - private static $type; - - /** @var LoggerInterface|null */ - private static $logger; - - /** @var array */ - private static $ignoredPackages = []; - - /** @var array */ - private static $triggeredDeprecations = []; - - /** @var array */ - private static $ignoredLinks = []; - - /** @var bool */ - private static $deduplication = true; - - /** - * Trigger a deprecation for the given package and identfier. - * - * The link should point to a Github issue or Wiki entry detailing the - * deprecation. It is additionally used to de-duplicate the trigger of the - * same deprecation during a request. - * - * @param float|int|string $args - */ - public static function trigger(string $package, string $link, string $message, ...$args): void - { - $type = self::$type ?? self::getTypeFromEnv(); - - if ($type === self::TYPE_NONE) { - return; - } - - if (isset(self::$ignoredLinks[$link])) { - return; - } - - if (array_key_exists($link, self::$triggeredDeprecations)) { - self::$triggeredDeprecations[$link]++; - } else { - self::$triggeredDeprecations[$link] = 1; - } - - if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { - return; - } - - if (isset(self::$ignoredPackages[$package])) { - return; - } - - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); - - $message = sprintf($message, ...$args); - - self::delegateTriggerToBackend($message, $backtrace, $link, $package); - } - - /** - * Trigger a deprecation for the given package and identifier when called from outside. - * - * "Outside" means we assume that $package is currently installed as a - * dependency and the caller is not a file in that package. When $package - * is installed as a root package then deprecations triggered from the - * tests folder are also considered "outside". - * - * This deprecation method assumes that you are using Composer to install - * the dependency and are using the default /vendor/ folder and not a - * Composer plugin to change the install location. The assumption is also - * that $package is the exact composer packge name. - * - * Compared to {@link trigger()} this method causes some overhead when - * deprecation tracking is enabled even during deduplication, because it - * needs to call {@link debug_backtrace()} - * - * @param float|int|string $args - */ - public static function triggerIfCalledFromOutside(string $package, string $link, string $message, ...$args): void - { - $type = self::$type ?? self::getTypeFromEnv(); - - if ($type === self::TYPE_NONE) { - return; - } - - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); - - // first check that the caller is not from a tests folder, in which case we always let deprecations pass - if (isset($backtrace[1]['file'], $backtrace[0]['file']) && strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) { - $path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $package) . DIRECTORY_SEPARATOR; - - if (strpos($backtrace[0]['file'], $path) === false) { - return; - } - - if (strpos($backtrace[1]['file'], $path) !== false) { - return; - } - } - - if (isset(self::$ignoredLinks[$link])) { - return; - } - - if (array_key_exists($link, self::$triggeredDeprecations)) { - self::$triggeredDeprecations[$link]++; - } else { - self::$triggeredDeprecations[$link] = 1; - } - - if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { - return; - } - - if (isset(self::$ignoredPackages[$package])) { - return; - } - - $message = sprintf($message, ...$args); - - self::delegateTriggerToBackend($message, $backtrace, $link, $package); - } - - /** @param list $backtrace */ - private static function delegateTriggerToBackend(string $message, array $backtrace, string $link, string $package): void - { - $type = self::$type ?? self::getTypeFromEnv(); - - if (($type & self::TYPE_PSR_LOGGER) > 0) { - $context = [ - 'file' => $backtrace[0]['file'] ?? null, - 'line' => $backtrace[0]['line'] ?? null, - 'package' => $package, - 'link' => $link, - ]; - - assert(self::$logger !== null); - - self::$logger->notice($message, $context); - } - - if (! (($type & self::TYPE_TRIGGER_ERROR) > 0)) { - return; - } - - $message .= sprintf( - ' (%s:%d called by %s:%d, %s, package %s)', - self::basename($backtrace[0]['file'] ?? 'native code'), - $backtrace[0]['line'] ?? 0, - self::basename($backtrace[1]['file'] ?? 'native code'), - $backtrace[1]['line'] ?? 0, - $link, - $package - ); - - @trigger_error($message, E_USER_DEPRECATED); - } - - /** - * A non-local-aware version of PHPs basename function. - */ - private static function basename(string $filename): string - { - $pos = strrpos($filename, DIRECTORY_SEPARATOR); - - if ($pos === false) { - return $filename; - } - - return substr($filename, $pos + 1); - } - - public static function enableTrackingDeprecations(): void - { - self::$type = self::$type ?? self::getTypeFromEnv(); - self::$type |= self::TYPE_TRACK_DEPRECATIONS; - } - - public static function enableWithTriggerError(): void - { - self::$type = self::$type ?? self::getTypeFromEnv(); - self::$type |= self::TYPE_TRIGGER_ERROR; - } - - public static function enableWithPsrLogger(LoggerInterface $logger): void - { - self::$type = self::$type ?? self::getTypeFromEnv(); - self::$type |= self::TYPE_PSR_LOGGER; - self::$logger = $logger; - } - - public static function withoutDeduplication(): void - { - self::$deduplication = false; - } - - public static function disable(): void - { - self::$type = self::TYPE_NONE; - self::$logger = null; - self::$deduplication = true; - self::$ignoredLinks = []; - - foreach (self::$triggeredDeprecations as $link => $count) { - self::$triggeredDeprecations[$link] = 0; - } - } - - public static function ignorePackage(string $packageName): void - { - self::$ignoredPackages[$packageName] = true; - } - - public static function ignoreDeprecations(string ...$links): void - { - foreach ($links as $link) { - self::$ignoredLinks[$link] = true; - } - } - - public static function getUniqueTriggeredDeprecationsCount(): int - { - return array_reduce(self::$triggeredDeprecations, static function (int $carry, int $count) { - return $carry + $count; - }, 0); - } - - /** - * Returns each triggered deprecation link identifier and the amount of occurrences. - * - * @return array - */ - public static function getTriggeredDeprecations(): array - { - return self::$triggeredDeprecations; - } - - /** @return int-mask-of */ - private static function getTypeFromEnv(): int - { - switch ($_SERVER['DOCTRINE_DEPRECATIONS'] ?? $_ENV['DOCTRINE_DEPRECATIONS'] ?? null) { - case 'trigger': - self::$type = self::TYPE_TRIGGER_ERROR; - break; - - case 'track': - self::$type = self::TYPE_TRACK_DEPRECATIONS; - break; - - default: - self::$type = self::TYPE_NONE; - break; - } - - return self::$type; - } -} diff --git a/projects/priceservice/vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php b/projects/priceservice/vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php deleted file mode 100644 index a6c7ad6..0000000 --- a/projects/priceservice/vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php +++ /dev/null @@ -1,66 +0,0 @@ - */ - private $doctrineDeprecationsExpectations = []; - - /** @var array */ - private $doctrineNoDeprecationsExpectations = []; - - public function expectDeprecationWithIdentifier(string $identifier): void - { - $this->doctrineDeprecationsExpectations[$identifier] = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; - } - - public function expectNoDeprecationWithIdentifier(string $identifier): void - { - $this->doctrineNoDeprecationsExpectations[$identifier] = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; - } - - /** @before */ - #[Before] - public function enableDeprecationTracking(): void - { - Deprecation::enableTrackingDeprecations(); - } - - /** @after */ - #[After] - public function verifyDeprecationsAreTriggered(): void - { - foreach ($this->doctrineDeprecationsExpectations as $identifier => $expectation) { - $actualCount = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; - - $this->assertTrue( - $actualCount > $expectation, - sprintf( - "Expected deprecation with identifier '%s' was not triggered by code executed in test.", - $identifier - ) - ); - } - - foreach ($this->doctrineNoDeprecationsExpectations as $identifier => $expectation) { - $actualCount = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; - - $this->assertTrue( - $actualCount === $expectation, - sprintf( - "Expected deprecation with identifier '%s' was triggered by code executed in test, but expected not to.", - $identifier - ) - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/LICENSE b/projects/priceservice/vendor/doctrine/doctrine-bundle/LICENSE deleted file mode 100644 index 655a5ce..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2011 Fabien Potencier, Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, -and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/README.md b/projects/priceservice/vendor/doctrine/doctrine-bundle/README.md deleted file mode 100644 index 16bac93..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Doctrine Bundle - -Doctrine DBAL & ORM Bundle for the Symfony Framework. - -[![Continuous Integration](https://github.com/doctrine/DoctrineBundle/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/doctrine/DoctrineBundle/actions/workflows/continuous-integration.yml) [![codecov](https://codecov.io/gh/doctrine/DoctrineBundle/branch/master/graph/badge.svg?token=qtm3EQ3WgV)](https://codecov.io/gh/doctrine/DoctrineBundle) - -## What is Doctrine? - -The Doctrine Project is the home of a selected set of PHP libraries primarily focused on providing persistence -services and related functionality. Its prize projects are a Object Relational Mapper and the Database Abstraction -Layer it is built on top of. You can read more about the projects below or view a list of all projects. - -Object relational mapper (ORM) for PHP that sits on top of a powerful database abstraction layer (DBAL). -One of its key features is the option to write database queries in a proprietary object oriented SQL dialect -called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful -alternative to SQL that maintains flexibility without requiring unnecessary code duplication. - -DBAL is a powerful database abstraction layer with many features for database schema introspection, -schema management and PDO abstraction. - -## Documentation - -The documentation is rendered on [the symfony.com website](https://symfony.com/doc/current/reference/configuration/doctrine.html). -The source of the documentation is available in the docs folder. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.10.md b/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.10.md deleted file mode 100644 index e9e03c2..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.10.md +++ /dev/null @@ -1,27 +0,0 @@ -UPGRADE FROM 2.9 to 2.10 -======================== - -Configuration -------------- - -### Preparing for a new `report_fields_where_declared` mapping driver mode - -Doctrine ORM 2.16+ makes a change to how the annotations and attribute mapping drivers report fields inherited from parent classes. For details, see https://github.com/doctrine/orm/pull/10455. It will trigger a deprecation notice unless the new mode is activated. In ORM 3.0, the new mode will be the only one. - -The new mode ~does not~ should not make a difference for regular, valid use cases, but may lead to `MappingException`s for users with certain configurations that were not meant to be supported by the ORM in the first place. To avoid surprising users (even when their configuration is invalid) during a 2.16 _minor_ version upgrade, the transition to this new mode was implemented as an opt-in. This way, you can try and deal with the change any time you see fit. - -In version 2.10+ of this bundle, a new configuration setting `report_fields_where_declared` was added at the entity manager configuration level. Set it to `true` to switch the mapping driver for the corresponding entity manager to the new mode. It is only relevant for mapping configurations using attributes or annotations. - -Unless you set it to `true`, Doctrine ORM will emit deprecation messages mentioning this new setting. - -### Preparing for the XSD validation for XML drivers - -Doctrine ORM 2.14+ adds support for validating the XSD of XML mapping files. In ORM 3.0, this validation will be mandatory. - -As the ecosystem is known to rely on custom elements in the XML mapping files that are forbidden when validating the XSD (for instance when using `gedmo/doctrine-extensions`), this validation is opt-in thanks to a `validate_xml_mapping` setting at the entity manager configuration level. - -Unless you set it to `true`, Doctrine ORM will emit deprecation messages mentioning the XSD validation. - -### Deprecations - -- `Doctrine\Bundle\DoctrineBundle\EventSubscriber\EventSubscriberInterface` has been deprecated. Use the `#[AsDoctrineListener]` attribute instead. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.12.md b/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.12.md deleted file mode 100644 index 77e17d2..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.12.md +++ /dev/null @@ -1,13 +0,0 @@ -UPGRADE FROM 2.11 to 2.12 -======================== - -Configuration -------------- - -### Controller resolver auto mapping default configuration will be changed - -The default value of `doctrine.orm.controller_resolver.auto_mapping` will be changed from `true` to `false` in 3.0. - -Auto mapping uses any route parameter that matches with a field name of the Entity to resolve as criteria in a find by query. - -If you are relying on this functionality, you will need to configure it explicitly to silence the deprecation notice. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.13.md b/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.13.md deleted file mode 100644 index 2b0f957..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-2.13.md +++ /dev/null @@ -1,13 +0,0 @@ -UPGRADE FROM 2.12 to 2.13 -======================== - -Configuration -------------- - -### Controller resolver auto mapping deprecated - -The controller resolver auto mapping functionality has been deprecated with Symfony 7.1, and is replaced with explicit mapped route parameters. Enabling the auto mapper by default using this bundle is now deprecated as well. - -Auto mapping uses any route parameter that matches with a field name of the Entity to resolve as criteria in a find by query. - -If you are relying on this functionality, you can update your code to use explicit mapped route parameters instead. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-3.0.md b/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-3.0.md deleted file mode 100644 index 365cd13..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/UPGRADE-3.0.md +++ /dev/null @@ -1,19 +0,0 @@ -UPGRADE FROM 2.x to 3.0 -======================= - -Configuration -------------- - -### Controller resolver auto mapping can no longer be configured - -The `doctrine.orm.controller_resolver.auto_mapping` option now only accepts `false` as value, to disallow the usage of the controller resolver auto mapping feature by default. The configuration option will be fully removed in 4.0. - -Auto mapping used any route parameter that matches with a field name of the Entity to resolve as criteria in a find by query. This method has been deprecated in Symfony 7.1 and is replaced with mapped route parameters. - -If you were relying on this functionality, you will need to update your code to use explicit mapped route parameters instead. - -Types ------ - - * The `commented` configuration option for types is no longer supported and - deprecated. diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/composer.json b/projects/priceservice/vendor/doctrine/doctrine-bundle/composer.json deleted file mode 100644 index 438aeea..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/composer.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "name": "doctrine/doctrine-bundle", - "description": "Symfony DoctrineBundle", - "license": "MIT", - "type": "symfony-bundle", - "keywords": [ - "DBAL", - "ORM", - "Database", - "Persistence" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org/" - } - ], - "homepage": "https://www.doctrine-project.org", - "require": { - "php": "^8.1", - "doctrine/dbal": "^3.7.0 || ^4.0", - "doctrine/persistence": "^3.1 || ^4", - "doctrine/sql-formatter": "^1.0.1", - "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/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3", - "symfony/framework-bundle": "^6.4 || ^7.0", - "symfony/service-contracts": "^2.5 || ^3" - }, - "require-dev": { - "doctrine/annotations": "^1 || ^2", - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^13", - "doctrine/deprecations": "^1.0", - "doctrine/orm": "^2.17 || ^3.1", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpstan/phpstan": "2.1.1", - "phpstan/phpstan-phpunit": "2.0.3", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9.6.22", - "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/doctrine-messenger": "^6.4 || ^7.0", - "symfony/messenger": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^7.2", - "symfony/property-info": "^6.4 || ^7.0", - "symfony/security-bundle": "^6.4 || ^7.0", - "symfony/stopwatch": "^6.4 || ^7.0", - "symfony/string": "^6.4 || ^7.0", - "symfony/twig-bridge": "^6.4 || ^7.0", - "symfony/validator": "^6.4 || ^7.0", - "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.13 || ^3.0.4" - }, - "conflict": { - "doctrine/annotations": ">=3.0", - "doctrine/cache": "< 1.11", - "doctrine/orm": "<2.17 || >=4.0", - "symfony/var-exporter": "< 6.4.1 || 7.0.0", - "twig/twig": "<2.13 || >=3.0 <3.0.4" - }, - "suggest": { - "ext-pdo": "*", - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "symfony/web-profiler-bundle": "To use the data collector." - }, - "minimum-stability": "dev", - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\Tests\\": "tests", - "Fixtures\\": "tests/DependencyInjection/Fixtures" - } - }, - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "dealerdirect/phpcodesniffer-composer-installer": true, - "symfony/flex": true - }, - "sort-packages": true - }, - "scripts": { - "auto-scripts": { - "cache:clear": "symfony-cmd", - "assets:install %PUBLIC_DIR%": "symfony-cmd" - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/dbal.xml b/projects/priceservice/vendor/doctrine/doctrine-bundle/config/dbal.xml deleted file mode 100644 index 61fcb5e..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/dbal.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - Doctrine\DBAL\Configuration - Doctrine\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector - Symfony\Bridge\Doctrine\ContainerAwareEventManager - Doctrine\Bundle\DoctrineBundle\ConnectionFactory - Doctrine\DBAL\Event\Listeners\MysqlSessionInit - Doctrine\DBAL\Event\Listeners\OracleSessionInit - Doctrine\Bundle\DoctrineBundle\Registry - - - - - - - - - - - true - - - - - %doctrine.dbal.connection_factory.types% - - - - - - - - - - - - - - - - - - - - %doctrine.connections% - %doctrine.entity_managers% - %doctrine.default_connection% - %doctrine.default_entity_manager% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/messenger.xml b/projects/priceservice/vendor/doctrine/doctrine-bundle/config/messenger.xml deleted file mode 100644 index a12d403..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/messenger.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - null - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/middlewares.xml b/projects/priceservice/vendor/doctrine/doctrine-bundle/config/middlewares.xml deleted file mode 100644 index 00dad9c..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/middlewares.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/orm.xml b/projects/priceservice/vendor/doctrine/doctrine-bundle/config/orm.xml deleted file mode 100644 index cf547cd..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/orm.xml +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - Doctrine\ORM\Configuration - Doctrine\ORM\EntityManager - Doctrine\Bundle\DoctrineBundle\ManagerConfigurator - - - Doctrine\Common\Cache\ArrayCache - Doctrine\Common\Cache\ApcCache - Doctrine\Common\Cache\MemcacheCache - localhost - 11211 - Memcache - Doctrine\Common\Cache\MemcachedCache - localhost - 11211 - Memcached - Doctrine\Common\Cache\RedisCache - localhost - 6379 - Redis - Doctrine\Common\Cache\XcacheCache - Doctrine\Common\Cache\WinCacheCache - Doctrine\Common\Cache\ZendDataCache - - - Doctrine\Persistence\Mapping\Driver\MappingDriverChain - Doctrine\ORM\Mapping\Driver\AnnotationDriver - Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver - Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver - Doctrine\ORM\Mapping\Driver\PHPDriver - Doctrine\ORM\Mapping\Driver\StaticPHPDriver - Doctrine\ORM\Mapping\Driver\AttributeDriver - - - Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer - - - Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser - - - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator - Symfony\Bridge\Doctrine\Validator\DoctrineInitializer - - - Symfony\Bridge\Doctrine\Security\User\EntityUserProvider - - - Doctrine\ORM\Tools\ResolveTargetEntityListener - Doctrine\ORM\Tools\AttachEntityListenersListener - - - Doctrine\ORM\Mapping\DefaultNamingStrategy - Doctrine\ORM\Mapping\UnderscoreNamingStrategy - - - Doctrine\ORM\Mapping\DefaultQuoteStrategy - Doctrine\ORM\Mapping\AnsiQuoteStrategy - - - Doctrine\ORM\Mapping\DefaultTypedFieldMapper - - - Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver - - - Doctrine\ORM\Cache\DefaultCacheFactory - Doctrine\ORM\Cache\Region\DefaultRegion - Doctrine\ORM\Cache\Region\FileLockRegion - Doctrine\ORM\Cache\Logging\CacheLoggerChain - Doctrine\ORM\Cache\Logging\StatisticsCacheLogger - Doctrine\ORM\Cache\CacheConfiguration - Doctrine\ORM\Cache\RegionsConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CASE_LOWER - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - controller.argument_value_resolver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %kernel.bundles% - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/schema/doctrine-1.0.xsd b/projects/priceservice/vendor/doctrine/doctrine-bundle/config/schema/doctrine-1.0.xsd deleted file mode 100644 index de599e2..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/config/schema/doctrine-1.0.xsd +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsDoctrineListener.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsDoctrineListener.php deleted file mode 100644 index 43489c5..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Attribute/AsDoctrineListener.php +++ /dev/null @@ -1,19 +0,0 @@ -phpArrayFile)) { - return false; - } - - $metadataFactory = $this->entityManager->getMetadataFactory(); - if ($metadataFactory->getLoadedMetadata()) { - throw new LogicException('DoctrineMetadataCacheWarmer must load metadata first, check priority of your warmers.'); - } - - $metadataFactory->setCache($arrayAdapter); - $metadataFactory->getAllMetadata(); - - return true; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/CreateDatabaseDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/CreateDatabaseDoctrineCommand.php deleted file mode 100644 index 62d4676..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/CreateDatabaseDoctrineCommand.php +++ /dev/null @@ -1,101 +0,0 @@ -setName('doctrine:database:create') - ->setDescription('Creates the configured database') - ->addOption('connection', 'c', InputOption::VALUE_OPTIONAL, 'The connection to use for this command') - ->addOption('if-not-exists', null, InputOption::VALUE_NONE, 'Don\'t trigger an error, when the database already exists') - ->setHelp(<<<'EOT' -The %command.name% command creates the default connections database: - - php %command.full_name% - -You can also optionally specify the name of a connection to create the database for: - - php %command.full_name% --connection=default -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $connectionName = $input->getOption('connection'); - if (empty($connectionName)) { - $connectionName = $this->getDoctrine()->getDefaultConnectionName(); - } - - $connection = $this->getDoctrineConnection($connectionName); - - $ifNotExists = $input->getOption('if-not-exists'); - - $params = $connection->getParams(); - - if (isset($params['primary'])) { - $params = $params['primary']; - } - - $hasPath = isset($params['path']); - $name = $hasPath ? $params['path'] : ($params['dbname'] ?? false); - if (! $name) { - throw new InvalidArgumentException("Connection does not contain a 'path' or 'dbname' parameter and cannot be created."); - } - - // Need to get rid of _every_ occurrence of dbname from connection configuration as we have already extracted all relevant info from url - /** @psalm-suppress InvalidArrayOffset Need to be compatible with DBAL < 4, which still has `$params['url']` */ - /** @phpstan-ignore unset.offset */ - unset($params['dbname'], $params['path'], $params['url']); - - if ($connection->getDatabasePlatform() instanceof PostgreSQLPlatform) { - /** @phpstan-ignore nullCoalesce.offset (needed for DBAL < 4) */ - $params['dbname'] = $params['default_dbname'] ?? 'postgres'; - } - - $tmpConnection = DriverManager::getConnection($params, $connection->getConfiguration()); - $schemaManager = $tmpConnection->createSchemaManager(); - $shouldNotCreateDatabase = $ifNotExists && in_array($name, $schemaManager->listDatabases()); - - // Only quote if we don't have a path - if (! $hasPath) { - $name = $tmpConnection->getDatabasePlatform()->quoteSingleIdentifier($name); - } - - $error = false; - try { - if ($shouldNotCreateDatabase) { - $output->writeln(sprintf('Database %s for connection named %s already exists. Skipped.', $name, $connectionName)); - } else { - $schemaManager->createDatabase($name); - $output->writeln(sprintf('Created database %s for connection named %s', $name, $connectionName)); - } - } catch (Throwable $e) { - $output->writeln(sprintf('Could not create database %s for connection named %s', $name, $connectionName)); - $output->writeln(sprintf('%s', $e->getMessage())); - $error = true; - } - - $tmpConnection->close(); - - return $error ? 1 : 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DoctrineCommand.php deleted file mode 100644 index 69a3a0b..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DoctrineCommand.php +++ /dev/null @@ -1,83 +0,0 @@ -setGenerateAnnotations(false); - $entityGenerator->setGenerateStubMethods(true); - $entityGenerator->setRegenerateEntityIfExists(false); - $entityGenerator->setUpdateEntityIfExists(true); - $entityGenerator->setNumSpaces(4); - $entityGenerator->setAnnotationPrefix('ORM\\'); - - return $entityGenerator; - } - - /** - * Get a doctrine entity manager by symfony name. - * - * @param string $name - * @param int|null $shardId - * - * @return EntityManagerInterface - */ - protected function getEntityManager($name, $shardId = null) - { - $manager = $this->getDoctrine()->getManager($name); - - if ($shardId !== null) { - throw new InvalidArgumentException('Shards are not supported anymore using doctrine/dbal >= 3'); - } - - assert($manager instanceof EntityManagerInterface); - - return $manager; - } - - /** - * Get a doctrine dbal connection by symfony name. - * - * @param string $name - * - * @return Connection - */ - protected function getDoctrineConnection($name) - { - return $this->getDoctrine()->getConnection($name); - } - - /** @return ManagerRegistry */ - protected function getDoctrine() - { - return $this->doctrine; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DropDatabaseDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DropDatabaseDoctrineCommand.php deleted file mode 100644 index 51f8546..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/DropDatabaseDoctrineCommand.php +++ /dev/null @@ -1,131 +0,0 @@ -setName('doctrine:database:drop') - ->setDescription('Drops the configured database') - ->addOption('connection', 'c', InputOption::VALUE_OPTIONAL, 'The connection to use for this command') - ->addOption('if-exists', null, InputOption::VALUE_NONE, 'Don\'t trigger an error, when the database doesn\'t exist') - ->addOption('force', 'f', InputOption::VALUE_NONE, 'Set this parameter to execute this action') - ->setHelp(<<<'EOT' -The %command.name% command drops the default connections database: - - php %command.full_name% - -The --force parameter has to be used to actually drop the database. - -You can also optionally specify the name of a connection to drop the database for: - - php %command.full_name% --connection=default - -Be careful: All data in a given database will be lost when executing this command. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $connectionName = $input->getOption('connection'); - if (empty($connectionName)) { - $connectionName = $this->getDoctrine()->getDefaultConnectionName(); - } - - $connection = $this->getDoctrineConnection($connectionName); - - $ifExists = $input->getOption('if-exists'); - - $params = $connection->getParams(); - - if (isset($params['primary'])) { - $params = $params['primary']; - } - - $name = $params['path'] ?? ($params['dbname'] ?? false); - if (! $name) { - throw new InvalidArgumentException("Connection does not contain a 'path' or 'dbname' parameter and cannot be dropped."); - } - - /* @phpstan-ignore unset.offset (Need to be compatible with DBAL < 4, which still has `$params['url']`) */ - unset($params['dbname'], $params['url']); - - if ($connection->getDatabasePlatform() instanceof PostgreSQLPlatform) { - /** @phpstan-ignore nullCoalesce.offset (for DBAL < 4) */ - $params['dbname'] = $params['default_dbname'] ?? 'postgres'; - } - - if (! $input->getOption('force')) { - $output->writeln('ATTENTION: This operation should not be executed in a production environment.'); - $output->writeln(''); - $output->writeln(sprintf('Would drop the database %s for connection named %s.', $name, $connectionName)); - $output->writeln('Please run the operation with --force to execute'); - $output->writeln('All data will be lost!'); - - return self::RETURN_CODE_NO_FORCE; - } - - // Reopen connection without database name set - // as some vendors do not allow dropping the database connected to. - $connection->close(); - $connection = DriverManager::getConnection($params, $connection->getConfiguration()); - $schemaManager = $connection->createSchemaManager(); - $shouldDropDatabase = ! $ifExists || in_array($name, $schemaManager->listDatabases()); - - // Only quote if we don't have a path - if (! isset($params['path'])) { - $name = $connection->getDatabasePlatform()->quoteSingleIdentifier($name); - } - - try { - if ($shouldDropDatabase) { - if ($schemaManager instanceof SQLiteSchemaManager) { - // dropDatabase() is deprecated for Sqlite - $connection->close(); - if (file_exists($name)) { - unlink($name); - } - } else { - $schemaManager->dropDatabase($name); - } - - $output->writeln(sprintf('Dropped database %s for connection named %s', $name, $connectionName)); - } else { - $output->writeln(sprintf('Database %s for connection named %s doesn\'t exist. Skipped.', $name, $connectionName)); - } - - return 0; - } catch (Throwable $e) { - $output->writeln(sprintf('Could not drop database %s for connection named %s', $name, $connectionName)); - $output->writeln(sprintf('%s', $e->getMessage())); - - return self::RETURN_CODE_NOT_DROP; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/ImportMappingDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/ImportMappingDoctrineCommand.php deleted file mode 100644 index 27b8011..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/ImportMappingDoctrineCommand.php +++ /dev/null @@ -1,166 +0,0 @@ -setName('doctrine:mapping:import') - ->addArgument('name', InputArgument::REQUIRED, 'The bundle or namespace to import the mapping information to') - ->addArgument('mapping-type', InputArgument::OPTIONAL, 'The mapping type to export the imported mapping information to') - ->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command') - ->addOption('filter', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'A string pattern used to match entities that should be mapped.') - ->addOption('force', null, InputOption::VALUE_NONE, 'Force to overwrite existing mapping files.') - ->addOption('path', null, InputOption::VALUE_REQUIRED, 'The path where the files would be generated (not used when a bundle is passed).') - ->setDescription('Imports mapping information from an existing database') - ->setHelp(<<<'EOT' -The %command.name% command imports mapping information -from an existing database: - -Generate annotation mappings into the src/ directory using App as the namespace: -php %command.full_name% App\\Entity annotation --path=src/Entity - -Generate xml mappings into the config/doctrine/ directory using App as the namespace: -php %command.full_name% App\\Entity xml --path=config/doctrine - -Generate XML mappings into a bundle: -php %command.full_name% "MyCustomBundle" xml - -You can also optionally specify which entity manager to import from with the ---em option: - -php %command.full_name% "MyCustomBundle" xml --em=default - -If you don't want to map every entity that can be found in the database, use the ---filter option. It will try to match the targeted mapped entity with the -provided pattern string. - -php %command.full_name% "MyCustomBundle" xml --filter=MyMatchedEntity - -Use the --force option, if you want to override existing mapping files: - -php %command.full_name% "MyCustomBundle" xml --force -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $type = $input->getArgument('mapping-type') ?: 'xml'; - if ($type === 'yaml') { - $type = 'yml'; - } - - $namespaceOrBundle = $input->getArgument('name'); - if (isset($this->bundles[$namespaceOrBundle])) { - /** @phpstan-ignore method.notFound */ - $bundle = $this->getApplication()->getKernel()->getBundle($namespaceOrBundle); - $namespace = $bundle->getNamespace() . '\Entity'; - - $destPath = $bundle->getPath(); - if ($type === 'annotation') { - $destPath .= '/Entity'; - } else { - $destPath .= '/Resources/config/doctrine'; - } - } else { - // assume a namespace has been passed - $namespace = $namespaceOrBundle; - $destPath = $input->getOption('path'); - if ($destPath === null) { - throw new InvalidArgumentException('The --path option is required when passing a namespace (e.g. --path=src). If you intended to pass a bundle name, check your spelling.'); - } - } - - /* @phpstan-ignore class.notFound */ - $cme = new ClassMetadataExporter(); - $exporter = $cme->getExporter($type); - $exporter->setOverwriteExistingFiles($input->getOption('force')); - - if ($type === 'annotation') { - $entityGenerator = $this->getEntityGenerator(); - $exporter->setEntityGenerator($entityGenerator); - } - - $em = $this->getEntityManager($input->getOption('em')); - - /* @phpstan-ignore method.notFound (Available in DBAL < 4) */ - $databaseDriver = new DatabaseDriver($em->getConnection()->getSchemaManager()); - $em->getConfiguration()->setMetadataDriverImpl($databaseDriver); - - $emName = $input->getOption('em'); - $emName = $emName ? $emName : 'default'; - - $cmf = new DisconnectedClassMetadataFactory(); - $cmf->setEntityManager($em); - $metadata = $cmf->getAllMetadata(); - $metadata = MetadataFilter::filter($metadata, $input->getOption('filter')); - if ($metadata) { - $output->writeln(sprintf('Importing mapping information from "%s" entity manager', $emName)); - foreach ($metadata as $class) { - assert($class instanceof ClassMetadata); - $className = $class->name; - $class->name = $namespace . '\\' . $className; - if ($type === 'annotation') { - $path = $destPath . '/' . str_replace('\\', '.', $className) . '.php'; - } else { - $path = $destPath . '/' . str_replace('\\', '.', $className) . '.orm.' . $type; - } - - $output->writeln(sprintf(' > writing %s', $path)); - $code = $exporter->exportClassMetadata($class); - $dir = dirname($path); - if (! is_dir($dir)) { - mkdir($dir, 0775, true); - } - - file_put_contents($path, $code); - chmod($path, 0664); - } - - return 0; - } - - $output->writeln('Database does not have any mapping information.'); - $output->writeln(''); - - return 1; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearMetadataCacheDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearMetadataCacheDoctrineCommand.php deleted file mode 100644 index 125036c..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearMetadataCacheDoctrineCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -setName('doctrine:cache:clear-metadata') - ->setDescription('Clears all metadata cache for an entity manager'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearQueryCacheDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearQueryCacheDoctrineCommand.php deleted file mode 100644 index 04c6f56..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearQueryCacheDoctrineCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -setName('doctrine:cache:clear-query') - ->setDescription('Clears all query cache for an entity manager'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearResultCacheDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearResultCacheDoctrineCommand.php deleted file mode 100644 index c813602..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ClearResultCacheDoctrineCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -setName('doctrine:cache:clear-result') - ->setDescription('Clears result cache for an entity manager'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CollectionRegionDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CollectionRegionDoctrineCommand.php deleted file mode 100644 index 6189838..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CollectionRegionDoctrineCommand.php +++ /dev/null @@ -1,30 +0,0 @@ -setName('doctrine:cache:clear-collection-region'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ConvertMappingDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ConvertMappingDoctrineCommand.php deleted file mode 100644 index bd1df53..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ConvertMappingDoctrineCommand.php +++ /dev/null @@ -1,58 +0,0 @@ -setName('doctrine:mapping:convert'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } - - /** - * @param string $toType - * @param string $destPath - * - * @return AbstractExporter - */ - protected function getExporter($toType, $destPath) - { - $exporter = parent::getExporter($toType, $destPath); - assert($exporter instanceof AbstractExporter); - if ($exporter instanceof XmlExporter) { - $exporter->setExtension('.orm.xml'); - } elseif ($exporter instanceof YamlExporter) { - $exporter->setExtension('.orm.yml'); - } - - return $exporter; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CreateSchemaDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CreateSchemaDoctrineCommand.php deleted file mode 100644 index 273ab71..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/CreateSchemaDoctrineCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -setName('doctrine:schema:create') - ->setDescription('Executes (or dumps) the SQL needed to generate the database schema'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DoctrineCommandHelper.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DoctrineCommandHelper.php deleted file mode 100644 index 8b079e8..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DoctrineCommandHelper.php +++ /dev/null @@ -1,43 +0,0 @@ -getKernel()->getContainer()->get('doctrine')->getManager($emName); - assert($em instanceof EntityManagerInterface); - $helperSet = $application->getHelperSet(); - /* @phpstan-ignore class.notFound, argument.type (ORM < 3 specific) */ - $helperSet->set(new EntityManagerHelper($em), 'em'); - - trigger_deprecation( - 'doctrine/doctrine-bundle', - '2.7', - 'Providing an EntityManager using "%s" is deprecated. Use an instance of "%s" instead.', - /* @phpstan-ignore class.notFound */ - EntityManagerHelper::class, - EntityManagerProvider::class, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DropSchemaDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DropSchemaDoctrineCommand.php deleted file mode 100644 index 953bf7a..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/DropSchemaDoctrineCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -setName('doctrine:schema:drop') - ->setDescription('Executes (or dumps) the SQL needed to drop the current database schema'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EnsureProductionSettingsDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EnsureProductionSettingsDoctrineCommand.php deleted file mode 100644 index 6603d4f..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EnsureProductionSettingsDoctrineCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -setName('doctrine:ensure-production-settings'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EntityRegionCacheDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EntityRegionCacheDoctrineCommand.php deleted file mode 100644 index ef94386..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/EntityRegionCacheDoctrineCommand.php +++ /dev/null @@ -1,30 +0,0 @@ -setName('doctrine:cache:clear-entity-region'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/InfoDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/InfoDoctrineCommand.php deleted file mode 100644 index b043fc6..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/InfoDoctrineCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -setName('doctrine:mapping:info'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/OrmProxyCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/OrmProxyCommand.php deleted file mode 100644 index 114833f..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/OrmProxyCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -entityManagerProvider) { - /* @phpstan-ignore argument.type (ORM < 3 specific) */ - DoctrineCommandHelper::setApplicationEntityManager($this->getApplication(), $input->getOption('em')); - } - - return parent::execute($input, $output); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/QueryRegionCacheDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/QueryRegionCacheDoctrineCommand.php deleted file mode 100644 index 2e4a9b1..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/QueryRegionCacheDoctrineCommand.php +++ /dev/null @@ -1,30 +0,0 @@ -setName('doctrine:cache:clear-query-region'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunDqlDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunDqlDoctrineCommand.php deleted file mode 100644 index 8051912..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunDqlDoctrineCommand.php +++ /dev/null @@ -1,46 +0,0 @@ -setName('doctrine:query:dql') - ->setHelp(<<<'EOT' -The %command.name% command executes the given DQL query and -outputs the results: - -php %command.full_name% "SELECT u FROM UserBundle:User u" - -You can also optional specify some additional options like what type of -hydration to use when executing the query: - -php %command.full_name% "SELECT u FROM UserBundle:User u" --hydrate=array - -Additionally you can specify the first result and maximum amount of results to -show: - -php %command.full_name% "SELECT u FROM UserBundle:User u" --first-result=0 --max-result=30 -EOT); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunSqlDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunSqlDoctrineCommand.php deleted file mode 100644 index 7977a4c..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/RunSqlDoctrineCommand.php +++ /dev/null @@ -1,43 +0,0 @@ -setName('doctrine:query:sql') - ->setHelp(<<<'EOT' -The %command.name% command executes the given SQL query and -outputs the results: - -php %command.full_name% "SELECT * FROM users" -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - trigger_deprecation( - 'doctrine/doctrine-bundle', - '2.2', - 'The "%s" (doctrine:query:sql) is deprecated, use dbal:run-sql command instead.', - self::class, - ); - - return parent::execute($input, $output); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/UpdateSchemaDoctrineCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/UpdateSchemaDoctrineCommand.php deleted file mode 100644 index 682a26c..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/UpdateSchemaDoctrineCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -setName('doctrine:schema:update'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ValidateSchemaCommand.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ValidateSchemaCommand.php deleted file mode 100644 index 33d19e7..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Command/Proxy/ValidateSchemaCommand.php +++ /dev/null @@ -1,30 +0,0 @@ -setName('doctrine:schema:validate'); - - if ($this->getDefinition()->hasOption('em')) { - return; - } - - $this->addOption('em', null, InputOption::VALUE_OPTIONAL, 'The entity manager to use for this command'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/ConnectionFactory.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/ConnectionFactory.php deleted file mode 100644 index fd8bf76..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/ConnectionFactory.php +++ /dev/null @@ -1,294 +0,0 @@ - 'ibm_db2', - 'mssql' => 'pdo_sqlsrv', - 'mysql' => 'pdo_mysql', - 'mysql2' => 'pdo_mysql', // Amazon RDS, for some weird reason - 'postgres' => 'pdo_pgsql', - 'postgresql' => 'pdo_pgsql', - 'pgsql' => 'pdo_pgsql', - 'sqlite' => 'pdo_sqlite', - 'sqlite3' => 'pdo_sqlite', - ]; - - /** @phpstan-ignore property.onlyWritten */ - private readonly DsnParser $dsnParser; - - private bool $initialized = false; - - /** @param mixed[][] $typesConfig */ - public function __construct( - private readonly array $typesConfig = [], - DsnParser|null $dsnParser = null, - ) { - $this->dsnParser = $dsnParser ?? new DsnParser(self::DEFAULT_SCHEME_MAP); - } - - /** - * Create a connection by name. - * - * @param mixed[] $params - * @param array $mappingTypes - * @phpstan-param Params $params - * - * @return Connection - */ - public function createConnection(array $params, Configuration|null $config = null, EventManager|null $eventManager = null, array $mappingTypes = []) - { - if (! method_exists(Connection::class, 'getEventManager') && $eventManager !== null) { - throw new InvalidArgumentException('Passing an EventManager instance is not supported with DBAL > 3'); - } - - if (! $this->initialized) { - $this->initializeTypes(); - } - - $overriddenOptions = []; - /** @phpstan-ignore isset.offset (We should adjust when https://github.com/phpstan/phpstan/issues/12414 is fixed) */ - if (isset($params['connection_override_options'])) { - trigger_deprecation('doctrine/doctrine-bundle', '2.4', 'The "connection_override_options" connection parameter is deprecated'); - $overriddenOptions = $params['connection_override_options']; - unset($params['connection_override_options']); - } - - $params = $this->parseDatabaseUrl($params); - - // URL support for PrimaryReplicaConnection - if (isset($params['primary'])) { - $params['primary'] = $this->parseDatabaseUrl($params['primary']); - } - - if (isset($params['replica'])) { - foreach ($params['replica'] as $key => $replicaParams) { - $params['replica'][$key] = $this->parseDatabaseUrl($replicaParams); - } - } - - /** @phpstan-ignore-next-line We should adjust when https://github.com/phpstan/phpstan/issues/12414 is fixed */ - if (! isset($params['pdo']) && (! isset($params['charset']) || $overriddenOptions || isset($params['dbname_suffix']))) { - $wrapperClass = null; - - if (isset($params['wrapperClass'])) { - if (! is_subclass_of($params['wrapperClass'], Connection::class)) { - if (class_exists(InvalidWrapperClass::class)) { - throw InvalidWrapperClass::new($params['wrapperClass']); - } - - /* @phpstan-ignore staticMethod.notFound */ - throw DBALException::invalidWrapperClass($params['wrapperClass']); - } - - $wrapperClass = $params['wrapperClass']; - $params['wrapperClass'] = null; - } - - $connection = DriverManager::getConnection(...array_merge([$params, $config], $eventManager ? [$eventManager] : [])); - $params = $this->addDatabaseSuffix(array_merge($connection->getParams(), $overriddenOptions)); - $driver = $connection->getDriver(); - /** @phpstan-ignore arguments.count (DBAL < 4.x doesn't accept an argument) */ - $platform = $driver->getDatabasePlatform( - ...(class_exists(StaticServerVersionProvider::class) - ? [new StaticServerVersionProvider($params['serverVersion'] ?? $params['primary']['serverVersion'] ?? '')] - : [] - ), - ); - - if (! isset($params['charset'])) { - if ($platform instanceof AbstractMySQLPlatform) { - $params['charset'] = 'utf8mb4'; - - if (isset($params['defaultTableOptions']['collate'])) { - Deprecation::trigger( - 'doctrine/doctrine-bundle', - 'https://github.com/doctrine/dbal/issues/5214', - 'The "collate" default table option is deprecated in favor of "collation" and will be removed in doctrine/doctrine-bundle 3.0. ', - ); - $params['defaultTableOptions']['collation'] = $params['defaultTableOptions']['collate']; - unset($params['defaultTableOptions']['collate']); - } - - if (! isset($params['defaultTableOptions']['collation'])) { - $params['defaultTableOptions']['collation'] = 'utf8mb4_unicode_ci'; - } - } else { - $params['charset'] = 'utf8'; - } - } - - if ($wrapperClass !== null) { - $params['wrapperClass'] = $wrapperClass; - } else { - $wrapperClass = Connection::class; - } - - $connection = new $wrapperClass($params, $driver, $config, $eventManager); - } else { - $connection = DriverManager::getConnection(...array_merge([$params, $config], $eventManager ? [$eventManager] : [])); - } - - if (! empty($mappingTypes)) { - $platform = $this->getDatabasePlatform($connection); - foreach ($mappingTypes as $dbType => $doctrineType) { - $platform->registerDoctrineTypeMapping($dbType, $doctrineType); - } - } - - return $connection; - } - - /** - * Try to get the database platform. - * - * This could fail if types should be registered to an predefined/unused connection - * and the platform version is unknown. - * - * @link https://github.com/doctrine/DoctrineBundle/issues/673 - * - * @throws DBALException - */ - private function getDatabasePlatform(Connection $connection): AbstractPlatform - { - try { - return $connection->getDatabasePlatform(); - } catch (DriverException $driverException) { - $class = class_exists(DBALException::class) ? DBALException::class : ConnectionException::class; - - /* @phpstan-ignore new.interface */ - throw new $class( - 'An exception occurred while establishing a connection to figure out your platform version.' . PHP_EOL . - "You can circumvent this by setting a 'server_version' configuration value" . PHP_EOL . PHP_EOL . - 'For further information have a look at:' . PHP_EOL . - 'https://github.com/doctrine/DoctrineBundle/issues/673', - 0, - $driverException, - ); - } - } - - /** - * initialize the types - */ - private function initializeTypes(): void - { - foreach ($this->typesConfig as $typeName => $typeConfig) { - if (Type::hasType($typeName)) { - Type::overrideType($typeName, $typeConfig['class']); - } else { - Type::addType($typeName, $typeConfig['class']); - } - } - - $this->initialized = true; - } - - /** - * @param array $params - * - * @return array - */ - private function addDatabaseSuffix(array $params): array - { - if (isset($params['dbname']) && isset($params['dbname_suffix'])) { - $params['dbname'] .= $params['dbname_suffix']; - } - - foreach ($params['replica'] ?? [] as $key => $replicaParams) { - if (! isset($replicaParams['dbname'], $replicaParams['dbname_suffix'])) { - continue; - } - - $params['replica'][$key]['dbname'] .= $replicaParams['dbname_suffix']; - } - - if (isset($params['primary']['dbname'], $params['primary']['dbname_suffix'])) { - $params['primary']['dbname'] .= $params['primary']['dbname_suffix']; - } - - return $params; - } - - /** - * Extracts parts from a database URL, if present, and returns an - * updated list of parameters. - * - * @param mixed[] $params The list of parameters. - * @phpstan-param Params $params - * - * @return mixed[] A modified list of parameters with info from a database - * URL extracted into individual parameter parts. - * @phpstan-return Params - * - * @throws DBALException - * - * @phpstan-ignore throws.unusedType - */ - private function parseDatabaseUrl(array $params): array - { - /** @phpstan-ignore isset.offset (for DBAL < 4) */ - if (! isset($params['url'])) { - return $params; - } - - /** @phpstan-ignore deadCode.unreachable */ - try { - $parsedParams = $this->dsnParser->parse($params['url']); - } catch (MalformedDsnException $e) { - throw new MalformedDsnException('Malformed parameter "url".', 0, $e); - } - - if (isset($parsedParams['driver'])) { - // The requested driver from the URL scheme takes precedence - // over the default custom driver from the connection parameters (if any). - unset($params['driverClass']); - } - - $params = array_merge($params, $parsedParams); - - // If a schemeless connection URL is given, we require a default driver or default custom driver - // as connection parameter. - if (! isset($params['driverClass']) && ! isset($params['driver'])) { - if (class_exists(DriverRequired::class)) { - throw DriverRequired::new($params['url']); - } - - throw DBALException::driverRequired($params['url']); - } - - unset($params['url']); - - return $params; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Controller/ProfilerController.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Controller/ProfilerController.php deleted file mode 100644 index cc00db0..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Controller/ProfilerController.php +++ /dev/null @@ -1,128 +0,0 @@ -profiler->disable(); - - $profile = $this->profiler->loadProfile($token); - $collector = $profile->getCollector('db'); - - assert($collector instanceof DoctrineDataCollector); - - $queries = $collector->getQueries(); - - if (! isset($queries[$connectionName][$query])) { - return new Response('This query does not exist.'); - } - - $query = $queries[$connectionName][$query]; - if (! $query['explainable']) { - return new Response('This query cannot be explained.'); - } - - $connection = $this->registry->getConnection($connectionName); - assert($connection instanceof Connection); - try { - $platform = $connection->getDatabasePlatform(); - if ($platform instanceof SQLitePlatform) { - $results = $this->explainSQLitePlatform($connection, $query); - } elseif ($platform instanceof SQLServerPlatform) { - throw new Exception('Explain for SQLServerPlatform is currently not supported. Contributions are welcome.'); - } elseif ($platform instanceof OraclePlatform) { - $results = $this->explainOraclePlatform($connection, $query); - } else { - $results = $this->explainOtherPlatform($connection, $query); - } - } catch (Throwable) { - return new Response('This query cannot be explained.'); - } - - return new Response($this->twig->render('@Doctrine/Collector/explain.html.twig', [ - 'data' => $results, - 'query' => $query, - ])); - } - - /** - * @param mixed[] $query - * - * @return mixed[] - */ - private function explainSQLitePlatform(Connection $connection, array $query): array - { - $params = $query['params']; - - if ($params instanceof Data) { - $params = $params->getValue(true); - } - - return $connection->executeQuery('EXPLAIN QUERY PLAN ' . $query['sql'], $params, $query['types']) - ->fetchAllAssociative(); - } - - /** - * @param mixed[] $query - * - * @return mixed[] - */ - private function explainOtherPlatform(Connection $connection, array $query): array - { - $params = $query['params']; - - if ($params instanceof Data) { - $params = $params->getValue(true); - } - - return $connection->executeQuery('EXPLAIN ' . $query['sql'], $params, $query['types']) - ->fetchAllAssociative(); - } - - /** - * @param mixed[] $query - * - * @return mixed[] - */ - private function explainOraclePlatform(Connection $connection, array $query): array - { - $connection->executeQuery('EXPLAIN PLAN FOR ' . $query['sql']); - - return $connection->executeQuery('SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY())') - ->fetchAllAssociative(); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DataCollector/DoctrineDataCollector.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DataCollector/DoctrineDataCollector.php deleted file mode 100644 index 23818b7..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DataCollector/DoctrineDataCollector.php +++ /dev/null @@ -1,332 +0,0 @@ -, - * runnable: bool, - * types: ?array, - * } - * @phpstan-type DataType = array{ - * caches: array{ - * enabled: bool, - * counts: array<"puts"|"hits"|"misses", int>, - * log_enabled: bool, - * regions: array<"puts"|"hits"|"misses", array>, - * }, - * connections: list, - * entities: array>, - * errors: array>>, - * managers: list, - * queries: array>, - * entityCounts: array> - * } - * @psalm-property DataType $data - */ -class DoctrineDataCollector extends BaseCollector -{ - private int|null $invalidEntityCount = null; - - private int|null $managedEntityCount = null; - - /** - * @var mixed[][]|null - * @phpstan-var ?array> - * @phpstan-ignore property.unusedType - */ - private array|null $groupedQueries = null; - - public function __construct( - private readonly ManagerRegistry $registry, - private readonly bool $shouldValidateSchema = true, - DebugDataHolder|null $debugDataHolder = null, - ) { - parent::__construct($registry, $debugDataHolder); - } - - public function collect(Request $request, Response $response, Throwable|null $exception = null): void - { - parent::collect($request, $response, $exception); - - $errors = []; - $entities = []; - $entityCounts = []; - $caches = [ - 'enabled' => false, - 'log_enabled' => false, - 'counts' => [ - 'puts' => 0, - 'hits' => 0, - 'misses' => 0, - ], - 'regions' => [ - 'puts' => [], - 'hits' => [], - 'misses' => [], - ], - ]; - - foreach ($this->registry->getManagers() as $name => $em) { - assert($em instanceof EntityManagerInterface); - if ($this->shouldValidateSchema) { - $entities[$name] = []; - - $factory = $em->getMetadataFactory(); - $validator = new SchemaValidator($em); - - foreach ($factory->getLoadedMetadata() as $class) { - if (isset($entities[$name][$class->getName()])) { - continue; - } - - $classErrors = $validator->validateClass($class); - $r = $class->getReflectionClass(); - $entities[$name][$class->getName()] = [ - 'class' => $class->getName(), - 'file' => $r->getFileName(), - 'line' => $r->getStartLine(), - ]; - - if (empty($classErrors)) { - continue; - } - - $errors[$name][$class->getName()] = $classErrors; - } - } - - $entityCounts[$name] = []; - foreach ($em->getUnitOfWork()->getIdentityMap() as $className => $entityList) { - $entityCounts[$name][$className] = count($entityList); - } - - // Sort entities by count (in descending order) - arsort($entityCounts[$name]); - - $emConfig = $em->getConfiguration(); - $slcEnabled = $emConfig->isSecondLevelCacheEnabled(); - - if (! $slcEnabled) { - continue; - } - - $caches['enabled'] = true; - - $cacheConfiguration = $emConfig->getSecondLevelCacheConfiguration(); - assert($cacheConfiguration instanceof CacheConfiguration); - $cacheLoggerChain = $cacheConfiguration->getCacheLogger(); - assert($cacheLoggerChain instanceof CacheLoggerChain || $cacheLoggerChain === null); - - if (! $cacheLoggerChain || ! $cacheLoggerChain->getLogger('statistics')) { - continue; - } - - $cacheLoggerStats = $cacheLoggerChain->getLogger('statistics'); - assert($cacheLoggerStats instanceof StatisticsCacheLogger); - $caches['log_enabled'] = true; - - $caches['counts']['puts'] += $cacheLoggerStats->getPutCount(); - $caches['counts']['hits'] += $cacheLoggerStats->getHitCount(); - $caches['counts']['misses'] += $cacheLoggerStats->getMissCount(); - - foreach ($cacheLoggerStats->getRegionsPut() as $key => $value) { - if (! isset($caches['regions']['puts'][$key])) { - $caches['regions']['puts'][$key] = 0; - } - - $caches['regions']['puts'][$key] += $value; - } - - foreach ($cacheLoggerStats->getRegionsHit() as $key => $value) { - if (! isset($caches['regions']['hits'][$key])) { - $caches['regions']['hits'][$key] = 0; - } - - $caches['regions']['hits'][$key] += $value; - } - - foreach ($cacheLoggerStats->getRegionsMiss() as $key => $value) { - if (! isset($caches['regions']['misses'][$key])) { - $caches['regions']['misses'][$key] = 0; - } - - $caches['regions']['misses'][$key] += $value; - } - } - - $this->data['entities'] = $entities; - $this->data['errors'] = $errors; - $this->data['caches'] = $caches; - $this->data['entityCounts'] = $entityCounts; - $this->groupedQueries = null; - } - - /** @return array> */ - public function getEntities() - { - return $this->data['entities']; - } - - /** @return array>> */ - public function getMappingErrors() - { - return $this->data['errors']; - } - - /** @return int */ - public function getCacheHitsCount() - { - return $this->data['caches']['counts']['hits']; - } - - /** @return int */ - public function getCachePutsCount() - { - return $this->data['caches']['counts']['puts']; - } - - /** @return int */ - public function getCacheMissesCount() - { - return $this->data['caches']['counts']['misses']; - } - - /** @return bool */ - public function getCacheEnabled() - { - return $this->data['caches']['enabled']; - } - - /** - * @return array> - * @phpstan-return array<"puts"|"hits"|"misses", array> - */ - public function getCacheRegions() - { - return $this->data['caches']['regions']; - } - - /** @return array */ - public function getCacheCounts() - { - return $this->data['caches']['counts']; - } - - /** @return int */ - public function getInvalidEntityCount() - { - return $this->invalidEntityCount ??= array_sum(array_map('count', $this->data['errors'])); - } - - public function getManagedEntityCount(): int - { - if ($this->managedEntityCount === null) { - $total = 0; - foreach ($this->data['entityCounts'] as $entities) { - $total += array_sum($entities); - } - - $this->managedEntityCount = $total; - } - - return $this->managedEntityCount; - } - - /** @return array> */ - public function getManagedEntityCountByClass(): array - { - return $this->data['entityCounts']; - } - - /** - * @return string[][] - * @phpstan-return array> - */ - public function getGroupedQueries() - { - if ($this->groupedQueries !== null) { - return $this->groupedQueries; - } - - $this->groupedQueries = []; - $totalExecutionMS = 0; - foreach ($this->data['queries'] as $connection => $queries) { - $connectionGroupedQueries = []; - foreach ($queries as $i => $query) { - $key = $query['sql']; - if (! isset($connectionGroupedQueries[$key])) { - $connectionGroupedQueries[$key] = $query; - $connectionGroupedQueries[$key]['executionMS'] = 0; - $connectionGroupedQueries[$key]['count'] = 0; - $connectionGroupedQueries[$key]['index'] = $i; // "Explain query" relies on query index in 'queries'. - } - - $connectionGroupedQueries[$key]['executionMS'] += $query['executionMS']; - $connectionGroupedQueries[$key]['count']++; - $totalExecutionMS += $query['executionMS']; - } - - usort($connectionGroupedQueries, static function ($a, $b) { - if ($a['executionMS'] === $b['executionMS']) { - return 0; - } - - return $a['executionMS'] < $b['executionMS'] ? 1 : -1; - }); - $this->groupedQueries[$connection] = $connectionGroupedQueries; - } - - foreach ($this->groupedQueries as $connection => $queries) { - foreach ($queries as $i => $query) { - $this->groupedQueries[$connection][$i]['executionPercent'] = - $this->executionTimePercentage($query['executionMS'], $totalExecutionMS); - } - } - - return $this->groupedQueries; - } - - private function executionTimePercentage(float $executionTimeMS, float $totalExecutionTimeMS): float - { - if (! $totalExecutionTimeMS) { - return 0; - } - - return $executionTimeMS / $totalExecutionTimeMS * 100; - } - - /** @return int */ - public function getGroupedQueryCount() - { - $count = 0; - foreach ($this->getGroupedQueries() as $connectionGroupedQueries) { - $count += count($connectionGroupedQueries); - } - - return $count; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/BlacklistSchemaAssetFilter.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/BlacklistSchemaAssetFilter.php deleted file mode 100644 index d175169..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/BlacklistSchemaAssetFilter.php +++ /dev/null @@ -1,27 +0,0 @@ -getName(); - } - - return ! in_array($assetName, $this->blacklist, true); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/ManagerRegistryAwareConnectionProvider.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/ManagerRegistryAwareConnectionProvider.php deleted file mode 100644 index f14e389..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/ManagerRegistryAwareConnectionProvider.php +++ /dev/null @@ -1,25 +0,0 @@ -managerRegistry->getConnection(); - } - - public function getConnection(string $name): Connection - { - return $this->managerRegistry->getConnection($name); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/RegexSchemaAssetFilter.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/RegexSchemaAssetFilter.php deleted file mode 100644 index 3acee85..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/RegexSchemaAssetFilter.php +++ /dev/null @@ -1,24 +0,0 @@ -getName(); - } - - return (bool) preg_match($this->filterExpression, $assetName); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/SchemaAssetsFilterManager.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/SchemaAssetsFilterManager.php deleted file mode 100644 index 5c17973..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Dbal/SchemaAssetsFilterManager.php +++ /dev/null @@ -1,29 +0,0 @@ -schemaAssetFilters as $schemaAssetFilter) { - if ($schemaAssetFilter($assetName) === false) { - return false; - } - } - - return true; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheCompatibilityPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheCompatibilityPass.php deleted file mode 100644 index 657cddb..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheCompatibilityPass.php +++ /dev/null @@ -1,125 +0,0 @@ -findTaggedServiceIds(self::CONFIGURATION_TAG)) as $id) { - foreach ($container->getDefinition($id)->getMethodCalls() as $methodCall) { - if ($methodCall[0] === 'setSecondLevelCacheConfiguration') { - $this->updateSecondLevelCache($container, $methodCall[1][0]); - continue; - } - - if (! in_array($methodCall[0], self::CACHE_METHODS_PSR6_SUPPORT, true)) { - continue; - } - - $aliasId = (string) $methodCall[1][0]; - $definitionId = (string) $container->getAlias($aliasId); - - $this->wrapIfNecessary($container, $aliasId, $definitionId); - } - } - } - - private function updateSecondLevelCache(ContainerBuilder $container, Definition $slcConfigDefinition): void - { - foreach ($slcConfigDefinition->getMethodCalls() as $methodCall) { - if ($methodCall[0] !== 'setCacheFactory') { - continue; - } - - $factoryDefinition = $methodCall[1][0]; - assert($factoryDefinition instanceof Definition); - $aliasId = (string) $factoryDefinition->getArgument(1); - $this->wrapIfNecessary($container, $aliasId, (string) $container->getAlias($aliasId)); - foreach ($factoryDefinition->getMethodCalls() as $factoryMethodCall) { - if ($factoryMethodCall[0] !== 'setRegion') { - continue; - } - - $regionDefinition = $container->getDefinition($factoryMethodCall[1][0]); - - // Get inner service for FileLock - if ($regionDefinition->getClass() === '%doctrine.orm.second_level_cache.filelock_region.class%') { - $regionDefinition = $container->getDefinition($regionDefinition->getArgument(0)); - } - - // We don't know how to adjust custom region classes - if ($regionDefinition->getClass() !== '%doctrine.orm.second_level_cache.default_region.class%') { - continue; - } - - $driverId = (string) $regionDefinition->getArgument(1); - if (! $container->hasAlias($driverId)) { - continue; - } - - $this->wrapIfNecessary($container, $driverId, (string) $container->getAlias($driverId)); - } - - break; - } - } - - private function createCompatibilityLayerDefinition(ContainerBuilder $container, string $definitionId): Definition|null - { - $definition = $container->getDefinition($definitionId); - - while (! $definition->getClass() && $definition instanceof ChildDefinition) { - $definition = $container->findDefinition($definition->getParent()); - } - - if (is_a($definition->getClass(), CacheItemPoolInterface::class, true)) { - return null; - } - - trigger_deprecation( - 'doctrine/doctrine-bundle', - '2.4', - 'Configuring doctrine/cache is deprecated. Please update the cache service "%s" to use a PSR-6 cache.', - $definitionId, - ); - - return (new Definition(CacheItemPoolInterface::class)) - ->setFactory([CacheAdapter::class, 'wrap']) - ->addArgument(new Reference($definitionId)); - } - - private function wrapIfNecessary(ContainerBuilder $container, string $aliasId, string $definitionId): void - { - $compatibilityLayer = $this->createCompatibilityLayerDefinition($container, $definitionId); - if ($compatibilityLayer === null) { - return; - } - - $compatibilityLayerId = $definitionId . '.compatibility_layer'; - $container->setAlias($aliasId, $compatibilityLayerId); - $container->setDefinition($compatibilityLayerId, $compatibilityLayer); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheSchemaSubscriberPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheSchemaSubscriberPass.php deleted file mode 100644 index a317d7a..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/CacheSchemaSubscriberPass.php +++ /dev/null @@ -1,43 +0,0 @@ -hasDefinition('doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener')) { - return; - } - - $subscriber = $container->getDefinition('doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener'); - - $cacheAdaptersReferences = []; - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isAbstract() || $definition->isSynthetic()) { - continue; - } - - if ($definition->getClass() !== DoctrineDbalAdapter::class) { - continue; - } - - $cacheAdaptersReferences[] = new Reference($id); - } - - $subscriber->replaceArgument(0, $cacheAdaptersReferences); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DbalSchemaFilterPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DbalSchemaFilterPass.php deleted file mode 100644 index c1d3c7d..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DbalSchemaFilterPass.php +++ /dev/null @@ -1,53 +0,0 @@ -findTaggedServiceIds('doctrine.dbal.schema_filter'); - - $connectionFilters = []; - foreach ($filters as $id => $tagAttributes) { - foreach ($tagAttributes as $attributes) { - $name = $attributes['connection'] ?? $container->getParameter('doctrine.default_connection'); - - if (! isset($connectionFilters[$name])) { - $connectionFilters[$name] = []; - } - - $connectionFilters[$name][] = new Reference($id); - } - } - - foreach ($connectionFilters as $name => $references) { - $configurationId = sprintf('doctrine.dbal.%s_connection.configuration', $name); - - if (! $container->hasDefinition($configurationId)) { - continue; - } - - $definition = new ChildDefinition('doctrine.dbal.schema_asset_filter_manager'); - $definition->setArgument(0, $references); - - $id = sprintf('doctrine.dbal.%s_schema_asset_filter_manager', $name); - $container->setDefinition($id, $definition); - $container->findDefinition($configurationId) - ->addMethodCall('setSchemaAssetsFilter', [new Reference($id)]); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DoctrineOrmMappingsPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DoctrineOrmMappingsPass.php deleted file mode 100644 index 5dad51b..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/DoctrineOrmMappingsPass.php +++ /dev/null @@ -1,185 +0,0 @@ -findAndSortTaggedServices('doctrine.orm.entity_listener', $container); - - $lazyServiceReferencesByResolver = []; - - foreach ($resolvers as $reference) { - $id = $reference->__toString(); - foreach ($container->getDefinition($id)->getTag('doctrine.orm.entity_listener') as $attributes) { - $name = $attributes['entity_manager'] ?? $container->getParameter('doctrine.default_entity_manager'); - $entityManager = sprintf('doctrine.orm.%s_entity_manager', $name); - - if (! $container->hasDefinition($entityManager)) { - continue; - } - - $resolverId = sprintf('doctrine.orm.%s_entity_listener_resolver', $name); - - if (! $container->has($resolverId)) { - continue; - } - - $resolver = $container->findDefinition($resolverId); - $resolver->setPublic(true); - - if (isset($attributes['entity'])) { - $this->attachToListener($container, $name, $this->getConcreteDefinitionClass($container->findDefinition($id), $container, $id), $attributes); - } - - $resolverClass = $this->getResolverClass($resolver, $container, $resolverId); - $resolverSupportsLazyListeners = is_a($resolverClass, EntityListenerServiceResolver::class, true); - - $lazyByAttribute = isset($attributes['lazy']) && $attributes['lazy']; - if ($lazyByAttribute && ! $resolverSupportsLazyListeners) { - throw new InvalidArgumentException(sprintf( - 'Lazy-loaded entity listeners can only be resolved by a resolver implementing %s.', - EntityListenerServiceResolver::class, - )); - } - - if (! isset($attributes['lazy']) && $resolverSupportsLazyListeners || $lazyByAttribute) { - $listener = $container->findDefinition($id); - - $resolver->addMethodCall('registerService', [$this->getConcreteDefinitionClass($listener, $container, $id), $id]); - - // if the resolver uses the default class we will use a service locator for all listeners - if ($resolverClass === ContainerEntityListenerResolver::class) { - if (! isset($lazyServiceReferencesByResolver[$resolverId])) { - $lazyServiceReferencesByResolver[$resolverId] = []; - } - - $lazyServiceReferencesByResolver[$resolverId][$id] = new Reference($id); - } else { - $listener->setPublic(true); - } - } else { - $resolver->addMethodCall('register', [new Reference($id)]); - } - } - } - - foreach ($lazyServiceReferencesByResolver as $resolverId => $listenerReferences) { - $container->findDefinition($resolverId)->setArgument(0, ServiceLocatorTagPass::register($container, $listenerReferences)); - } - } - - /** @param array{entity: class-string, event?: ?string, method?: string} $attributes */ - private function attachToListener(ContainerBuilder $container, string $name, string $class, array $attributes): void - { - $listenerId = sprintf('doctrine.orm.%s_listeners.attach_entity_listeners', $name); - - if (! $container->has($listenerId)) { - return; - } - - $args = [ - $attributes['entity'], - $class, - $attributes['event'] ?? null, - ]; - - if (isset($attributes['method'])) { - $args[] = $attributes['method']; - } elseif (isset($attributes['event']) && ! method_exists($class, $attributes['event']) && method_exists($class, '__invoke')) { - $args[] = '__invoke'; - } - - $container->findDefinition($listenerId)->addMethodCall('addEntityListener', $args); - } - - private function getResolverClass(Definition $resolver, ContainerBuilder $container, string $id): string - { - $resolverClass = $this->getConcreteDefinitionClass($resolver, $container, $id); - - if (substr($resolverClass, 0, 1) === '%') { - // resolve container parameter first - $resolverClass = $container->getParameterBag()->resolveValue($resolverClass); - } - - return $resolverClass; - } - - private function getConcreteDefinitionClass(Definition $definition, ContainerBuilder $container, string $id): string - { - $class = $definition->getClass(); - if ($class) { - return $class; - } - - while ($definition instanceof ChildDefinition) { - $definition = $container->findDefinition($definition->getParent()); - - $class = $definition->getClass(); - if ($class) { - return $class; - } - } - - throw new InvalidArgumentException(sprintf('The service "%s" must define its class.', $id)); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/IdGeneratorPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/IdGeneratorPass.php deleted file mode 100644 index 9235e2f..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/IdGeneratorPass.php +++ /dev/null @@ -1,78 +0,0 @@ -findTaggedServiceIds(self::ID_GENERATOR_TAG)); - - // when ORM is not enabled - if (! $container->hasDefinition('doctrine.orm.configuration') || ! $generatorIds) { - return; - } - - $generatorRefs = array_map(static fn (string $id): Reference => new Reference($id), $generatorIds); - - $ref = ServiceLocatorTagPass::register($container, array_combine($generatorIds, $generatorRefs)); - $container->setAlias('doctrine.id_generator_locator', new Alias((string) $ref, false)); - - foreach ($container->findTaggedServiceIds(self::CONFIGURATION_TAG) as $id => $tags) { - $configurationDef = $container->getDefinition($id); - $methodCalls = $configurationDef->getMethodCalls(); - $metadataDriverImpl = null; - - foreach ($methodCalls as $i => [$method, $arguments]) { - if ($method === 'setMetadataDriverImpl') { - $metadataDriverImpl = (string) $arguments[0]; - } - - if ($method !== 'setClassMetadataFactoryName') { - continue; - } - - if ($arguments[0] !== ORMClassMetadataFactory::class && $arguments[0] !== ClassMetadataFactory::class) { - $class = $container->getReflectionClass($arguments[0]); - - if ($class && $class->isSubclassOf(ClassMetadataFactory::class)) { - break; - } - - continue 2; - } - - $methodCalls[$i] = ['setClassMetadataFactoryName', [ClassMetadataFactory::class]]; - } - - if ($metadataDriverImpl === null) { - continue; - } - - $configurationDef->setMethodCalls($methodCalls); - $container->register('.' . $metadataDriverImpl, MappingDriver::class) - ->setDecoratedService($metadataDriverImpl) - ->setArguments([ - new Reference(sprintf('.%s.inner', $metadataDriverImpl)), - new Reference('doctrine.id_generator_locator'), - ]); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/MiddlewaresPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/MiddlewaresPass.php deleted file mode 100644 index 734c5b9..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/MiddlewaresPass.php +++ /dev/null @@ -1,88 +0,0 @@ -hasParameter('doctrine.connections')) { - return; - } - - $middlewareAbstractDefs = []; - $middlewareConnections = []; - $middlewarePriorities = []; - foreach ($container->findTaggedServiceIds('doctrine.middleware') as $id => $tags) { - $middlewareAbstractDefs[$id] = $container->getDefinition($id); - // When a def has doctrine.middleware tags with connection attributes equal to connection names - // registration of this middleware is limited to the connections with these names - foreach ($tags as $tag) { - if (! isset($tag['connection'])) { - if (isset($tag['priority']) && ! isset($middlewarePriorities[$id])) { - $middlewarePriorities[$id] = $tag['priority']; - } - - continue; - } - - $middlewareConnections[$id][$tag['connection']] = $tag['priority'] ?? null; - } - } - - foreach (array_keys($container->getParameter('doctrine.connections')) as $name) { - $middlewareRefs = []; - $i = 0; - foreach ($middlewareAbstractDefs as $id => $abstractDef) { - if (isset($middlewareConnections[$id]) && ! array_key_exists($name, $middlewareConnections[$id])) { - continue; - } - - $childDef = $container->setDefinition( - $childId = sprintf('%s.%s', $id, $name), - (new ChildDefinition($id)) - ->setTags($abstractDef->getTags())->clearTag('doctrine.middleware') - ->setAutoconfigured($abstractDef->isAutoconfigured()) - ->setAutowired($abstractDef->isAutowired()), - ); - $middlewareRefs[$id] = [new Reference($childId), ++$i]; - - if (! is_subclass_of($abstractDef->getClass(), ConnectionNameAwareInterface::class)) { - continue; - } - - $childDef->addMethodCall('setConnectionName', [$name]); - } - - $middlewareRefs = array_map( - static fn (string $id, array $ref) => [ - $middlewareConnections[$id][$name] ?? $middlewarePriorities[$id] ?? 0, - $ref[1], - $ref[0], - ], - array_keys($middlewareRefs), - array_values($middlewareRefs), - ); - uasort($middlewareRefs, static fn (array $a, array $b): int => $b[0] <=> $a[0] ?: $a[1] <=> $b[1]); - $middlewareRefs = array_map(static fn (array $value): Reference => $value[2], $middlewareRefs); - - $container - ->getDefinition(sprintf('doctrine.dbal.%s_connection.configuration', $name)) - ->addMethodCall('setMiddlewares', [$middlewareRefs]); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveLoggingMiddlewarePass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveLoggingMiddlewarePass.php deleted file mode 100644 index 331e0cb..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveLoggingMiddlewarePass.php +++ /dev/null @@ -1,19 +0,0 @@ -has('logger')) { - return; - } - - $container->removeDefinition('doctrine.dbal.logging_middleware'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveProfilerControllerPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveProfilerControllerPass.php deleted file mode 100644 index e070cec..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/RemoveProfilerControllerPass.php +++ /dev/null @@ -1,20 +0,0 @@ -has('twig') && $container->has('profiler')) { - return; - } - - $container->removeDefinition(ProfilerController::class); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/ServiceRepositoryCompilerPass.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/ServiceRepositoryCompilerPass.php deleted file mode 100644 index d955ad1..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Compiler/ServiceRepositoryCompilerPass.php +++ /dev/null @@ -1,33 +0,0 @@ -hasDefinition('doctrine.orm.container_repository_factory')) { - return; - } - - $locatorDef = $container->getDefinition('doctrine.orm.container_repository_factory'); - - $repoServiceIds = array_keys($container->findTaggedServiceIds(self::REPOSITORY_SERVICE_TAG)); - $repoReferences = array_map(static fn (string $id): Reference => new Reference($id), $repoServiceIds); - - $ref = ServiceLocatorTagPass::register($container, array_combine($repoServiceIds, $repoReferences)); - $locatorDef->replaceArgument(0, $ref); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Configuration.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Configuration.php deleted file mode 100644 index 6a8cc32..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/Configuration.php +++ /dev/null @@ -1,885 +0,0 @@ -getRootNode(); - - /* @phpstan-ignore argument.type (symfony plugin needed) */ - $this->addDbalSection($rootNode); - /* @phpstan-ignore argument.type (symfony plugin needed) */ - $this->addOrmSection($rootNode); - - return $treeBuilder; - } - - /** - * Add DBAL section to configuration tree - */ - private function addDbalSection(ArrayNodeDefinition $node): void - { - // Key that should not be rewritten to the connection config - $excludedKeys = ['default_connection' => true, 'driver_schemes' => true, 'driver_scheme' => true, 'types' => true, 'type' => true]; - - $node - ->children() - ->arrayNode('dbal') - ->beforeNormalization() - ->ifTrue(static function ($v) use ($excludedKeys) { - if (! is_array($v)) { - return false; - } - - if (array_key_exists('connections', $v) || array_key_exists('connection', $v)) { - return false; - } - - // Is there actually anything to use once excluded keys are considered? - return (bool) array_diff_key($v, $excludedKeys); - }) - ->then(static function ($v) use ($excludedKeys) { - $connection = []; - foreach ($v as $key => $value) { - if (isset($excludedKeys[$key])) { - continue; - } - - $connection[$key] = $v[$key]; - unset($v[$key]); - } - - $v['connections'] = [($v['default_connection'] ?? 'default') => $connection]; - - return $v; - }) - ->end() - ->children() - ->scalarNode('default_connection')->end() - ->end() - ->fixXmlConfig('type') - ->children() - ->arrayNode('types') - ->useAttributeAsKey('name') - ->prototype('array') - ->beforeNormalization() - ->ifString() - ->then(static fn ($v) => ['class' => $v]) - ->end() - ->children() - ->scalarNode('class')->isRequired()->end() - ->booleanNode('commented') - ->setDeprecated( - 'doctrine/doctrine-bundle', - '2.0', - 'The doctrine-bundle type commenting features were removed; the corresponding config parameter was deprecated in 2.0 and will be dropped in 3.0.', - ) - ->end() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('driver_scheme') - ->children() - ->arrayNode('driver_schemes') - ->useAttributeAsKey('scheme') - ->normalizeKeys(false) - ->scalarPrototype()->end() - ->info('Defines a driver for given URL schemes. Schemes being driver names cannot be redefined. However, other default schemes can be overwritten.') - ->validate() - ->always() - ->then(static function (array $value) { - $unsupportedSchemes = []; - - foreach ($value as $scheme => $driver) { - if (! in_array($scheme, ['pdo-mysql', 'pdo-sqlite', 'pdo-pgsql', 'pdo-oci', 'oci8', 'ibm-db2', 'pdo-sqlsrv', 'mysqli', 'pgsql', 'sqlsrv', 'sqlite3'], true)) { - continue; - } - - $unsupportedSchemes[] = $scheme; - } - - if ($unsupportedSchemes) { - throw new InvalidArgumentException(sprintf('Registering a scheme with the name of one of the official drivers is forbidden, as those are defined in DBAL itself. The following schemes are forbidden: %s', implode(', ', $unsupportedSchemes))); - } - - return $value; - }) - ->end() - ->end() - ->end() - ->fixXmlConfig('connection') - ->append($this->getDbalConnectionsNode()) - ->end(); - } - - /** - * Return the dbal connections node - */ - private function getDbalConnectionsNode(): ArrayNodeDefinition - { - $treeBuilder = new TreeBuilder('connections'); - $node = $treeBuilder->getRootNode(); - - $connectionNode = $node - ->requiresAtLeastOneElement() - ->useAttributeAsKey('name') - ->prototype('array'); - assert($connectionNode instanceof ArrayNodeDefinition); - - $this->configureDbalDriverNode($connectionNode); - - $collationKey = defined('Doctrine\DBAL\Connection::PARAM_ASCII_STR_ARRAY') - ? 'collate' - : 'collation'; - - $connectionNode - ->fixXmlConfig('option') - ->fixXmlConfig('mapping_type') - ->fixXmlConfig('slave') - ->fixXmlConfig('replica') - ->fixXmlConfig('default_table_option') - ->children() - ->scalarNode('driver')->defaultValue('pdo_mysql')->end() - ->scalarNode('platform_service') - ->setDeprecated( - 'doctrine/doctrine-bundle', - '2.9', - 'The "platform_service" configuration key is deprecated since doctrine-bundle 2.9. DBAL 4 will not support setting a custom platform via connection params anymore.', - ) - ->end() - ->booleanNode('auto_commit')->end() - ->scalarNode('schema_filter')->end() - ->booleanNode('logging')->defaultValue($this->debug)->end() - ->booleanNode('profiling')->defaultValue($this->debug)->end() - ->booleanNode('profiling_collect_backtrace') - ->defaultValue(false) - ->info('Enables collecting backtraces when profiling is enabled') - ->end() - ->booleanNode('profiling_collect_schema_errors') - ->defaultValue(true) - ->info('Enables collecting schema errors when profiling is enabled') - ->end() - ->booleanNode('disable_type_comments')->end() - ->scalarNode('server_version')->end() - ->integerNode('idle_connection_ttl')->defaultValue(600)->end() - ->scalarNode('driver_class')->end() - ->scalarNode('wrapper_class')->end() - ->booleanNode('keep_slave') - ->setDeprecated( - 'doctrine/doctrine-bundle', - '2.2', - 'The "keep_slave" configuration key is deprecated since doctrine-bundle 2.2. Use the "keep_replica" configuration key instead.', - ) - ->end() - ->booleanNode('keep_replica')->end() - ->arrayNode('options') - ->useAttributeAsKey('key') - ->prototype('variable')->end() - ->end() - ->arrayNode('mapping_types') - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->arrayNode('default_table_options') - ->info(sprintf( - "This option is used by the schema-tool and affects generated SQL. Possible keys include 'charset','%s', and 'engine'.", - $collationKey, - )) - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->scalarNode('schema_manager_factory') - ->cannotBeEmpty() - ->defaultValue($this->getDefaultSchemaManagerFactory()) - ->end() - ->scalarNode('result_cache')->end() - ->end(); - - // dbal < 2.11 - $slaveNode = $connectionNode - ->children() - ->arrayNode('slaves') - ->setDeprecated( - 'doctrine/doctrine-bundle', - '2.2', - 'The "slaves" configuration key will be renamed to "replicas" in doctrine-bundle 3.0. "slaves" is deprecated since doctrine-bundle 2.2.', - ) - ->useAttributeAsKey('name') - ->prototype('array'); - /* @phpstan-ignore argument.type (symfony plugin needed) */ - $this->configureDbalDriverNode($slaveNode); - - // dbal >= 2.11 - $replicaNode = $connectionNode - ->children() - ->arrayNode('replicas') - ->useAttributeAsKey('name') - ->prototype('array'); - /* @phpstan-ignore argument.type (symfony plugin needed) */ - $this->configureDbalDriverNode($replicaNode); - - assert($node instanceof ArrayNodeDefinition); - - return $node; - } - - /** - * Adds config keys related to params processed by the DBAL drivers - * - * These keys are available for replica configurations too. - */ - private function configureDbalDriverNode(ArrayNodeDefinition $node): void - { - $node - ->validate() - ->always(static function (array $values) { - if (! isset($values['url'])) { - return $values; - } - - $urlConflictingOptions = ['host' => true, 'port' => true, 'user' => true, 'password' => true, 'path' => true, 'dbname' => true, 'unix_socket' => true, 'memory' => true]; - $urlConflictingValues = array_keys(array_intersect_key($values, $urlConflictingOptions)); - - if ($urlConflictingValues) { - $tail = count($urlConflictingValues) > 1 ? sprintf('or "%s" options', array_pop($urlConflictingValues)) : 'option'; - trigger_deprecation( - 'doctrine/doctrine-bundle', - '2.4', - 'Setting the "doctrine.dbal.%s" %s while the "url" one is defined is deprecated', - implode('", "', $urlConflictingValues), - $tail, - ); - } - - return $values; - }) - ->end() - ->children() - ->scalarNode('url')->info('A URL with connection information; any parameter value parsed from this string will override explicitly set parameters')->end() - ->scalarNode('dbname')->end() - ->scalarNode('host')->info('Defaults to "localhost" at runtime.')->end() - ->scalarNode('port')->info('Defaults to null at runtime.')->end() - ->scalarNode('user')->info('Defaults to "root" at runtime.')->end() - ->scalarNode('password')->info('Defaults to null at runtime.')->end() - ->booleanNode('override_url')->setDeprecated( - 'doctrine/doctrine-bundle', - '2.4', - 'The "doctrine.dbal.override_url" configuration key is deprecated.', - )->end() - ->scalarNode('dbname_suffix')->end() - ->scalarNode('application_name')->end() - ->scalarNode('charset')->end() - ->scalarNode('path')->end() - ->booleanNode('memory')->end() - ->scalarNode('unix_socket')->info('The unix socket to use for MySQL')->end() - ->booleanNode('persistent')->info('True to use as persistent connection for the ibm_db2 driver')->end() - ->scalarNode('protocol')->info('The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)')->end() - ->booleanNode('service') - ->info('True to use SERVICE_NAME as connection parameter instead of SID for Oracle') - ->end() - ->scalarNode('servicename') - ->info( - 'Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter ' . - 'for Oracle depending on the service parameter.', - ) - ->end() - ->scalarNode('sessionMode') - ->info('The session mode to use for the oci8 driver') - ->end() - ->scalarNode('server') - ->info('The name of a running database server to connect to for SQL Anywhere.') - ->end() - ->scalarNode('default_dbname') - ->info( - 'Override the default database (postgres) to connect to for PostgreSQL connexion.', - ) - ->end() - ->scalarNode('sslmode') - ->info( - 'Determines whether or with what priority a SSL TCP/IP connection will be negotiated with ' . - 'the server for PostgreSQL.', - ) - ->end() - ->scalarNode('sslrootcert') - ->info( - 'The name of a file containing SSL certificate authority (CA) certificate(s). ' . - 'If the file exists, the server\'s certificate will be verified to be signed by one of these authorities.', - ) - ->end() - ->scalarNode('sslcert') - ->info( - 'The path to the SSL client certificate file for PostgreSQL.', - ) - ->end() - ->scalarNode('sslkey') - ->info( - 'The path to the SSL client key file for PostgreSQL.', - ) - ->end() - ->scalarNode('sslcrl') - ->info( - 'The file name of the SSL certificate revocation list for PostgreSQL.', - ) - ->end() - ->booleanNode('pooled')->info('True to use a pooled server with the oci8/pdo_oracle driver')->end() - ->booleanNode('MultipleActiveResultSets')->info('Configuring MultipleActiveResultSets for the pdo_sqlsrv driver')->end() - ->booleanNode('use_savepoints')->info('Use savepoints for nested transactions')->end() - ->scalarNode('instancename') - ->info( - 'Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection.' . - ' It is generally used to connect to an Oracle RAC server to select the name' . - ' of a particular instance.', - ) - ->end() - ->scalarNode('connectstring') - ->info( - 'Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.' . - 'When using this option, you will still need to provide the user and password parameters, but the other ' . - 'parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods' . - ' from Doctrine\DBAL\Connection will no longer function as expected.', - ) - ->end() - ->end() - ->beforeNormalization() - ->ifTrue(static fn ($v) => ! isset($v['sessionMode']) && isset($v['session_mode'])) - ->then(static function ($v) { - $v['sessionMode'] = $v['session_mode']; - unset($v['session_mode']); - - return $v; - }) - ->end() - ->beforeNormalization() - ->ifTrue(static fn ($v) => ! isset($v['MultipleActiveResultSets']) && isset($v['multiple_active_result_sets'])) - ->then(static function ($v) { - $v['MultipleActiveResultSets'] = $v['multiple_active_result_sets']; - unset($v['multiple_active_result_sets']); - - return $v; - }) - ->end(); - } - - /** - * Add the ORM section to configuration tree - */ - private function addOrmSection(ArrayNodeDefinition $node): void - { - // Key that should not be rewritten to the entity-manager config - $excludedKeys = [ - 'default_entity_manager' => true, - 'auto_generate_proxy_classes' => true, - 'enable_lazy_ghost_objects' => true, - 'proxy_dir' => true, - 'proxy_namespace' => true, - 'resolve_target_entities' => true, - 'resolve_target_entity' => true, - 'controller_resolver' => true, - ]; - - $node - ->children() - ->arrayNode('orm') - ->beforeNormalization() - ->ifTrue(static function ($v) use ($excludedKeys) { - if (! empty($v) && ! class_exists(EntityManager::class)) { - throw new LogicException('The doctrine/orm package is required when the doctrine.orm config is set.'); - } - - if (! is_array($v)) { - return false; - } - - if (array_key_exists('entity_managers', $v) || array_key_exists('entity_manager', $v)) { - return false; - } - - // Is there actually anything to use once excluded keys are considered? - return (bool) array_diff_key($v, $excludedKeys); - }) - ->then(static function ($v) use ($excludedKeys) { - $entityManager = []; - foreach ($v as $key => $value) { - if (isset($excludedKeys[$key])) { - continue; - } - - $entityManager[$key] = $v[$key]; - unset($v[$key]); - } - - $v['entity_managers'] = [($v['default_entity_manager'] ?? 'default') => $entityManager]; - - return $v; - }) - ->end() - ->children() - ->scalarNode('default_entity_manager')->end() - ->scalarNode('auto_generate_proxy_classes')->defaultValue(false) - ->info('Auto generate mode possible values are: "NEVER", "ALWAYS", "FILE_NOT_EXISTS", "EVAL", "FILE_NOT_EXISTS_OR_CHANGED"') - ->validate() - ->ifTrue(function ($v) { - $generationModes = $this->getAutoGenerateModes(); - - if (is_int($v) && in_array($v, $generationModes['values']/*array(0, 1, 2, 3)*/)) { - return false; - } - - if (is_bool($v)) { - return false; - } - - if (is_string($v)) { - if (in_array(strtoupper($v), $generationModes['names']/*array('NEVER', 'ALWAYS', 'FILE_NOT_EXISTS', 'EVAL', 'FILE_NOT_EXISTS_OR_CHANGED')*/)) { - return false; - } - } - - return true; - }) - ->thenInvalid('Invalid auto generate mode value %s') - ->end() - ->validate() - ->ifString() - ->then(static fn (string $v) => constant('Doctrine\ORM\Proxy\ProxyFactory::AUTOGENERATE_' . strtoupper($v))) - ->end() - ->end() - ->booleanNode('enable_lazy_ghost_objects') - ->defaultValue(! method_exists(ProxyFactory::class, 'resetUninitializedProxy')) - ->info('Enables the new implementation of proxies based on lazy ghosts instead of using the legacy implementation') - ->end() - ->scalarNode('proxy_dir')->defaultValue('%kernel.build_dir%/doctrine/orm/Proxies')->end() - ->scalarNode('proxy_namespace')->defaultValue('Proxies')->end() - ->arrayNode('controller_resolver') - ->canBeDisabled() - ->children() - ->booleanNode('auto_mapping') - ->defaultNull() - ->info('Set to false to disable using route placeholders as lookup criteria when the primary key doesn\'t match the argument name') - ->end() - ->booleanNode('evict_cache') - ->info('Set to true to fetch the entity from the database instead of using the cache, if any') - ->defaultFalse() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('entity_manager') - ->append($this->getOrmEntityManagersNode()) - ->fixXmlConfig('resolve_target_entity', 'resolve_target_entities') - ->append($this->getOrmTargetEntityResolverNode()) - ->end() - ->end(); - } - - /** - * Return ORM target entity resolver node - */ - private function getOrmTargetEntityResolverNode(): NodeDefinition - { - $treeBuilder = new TreeBuilder('resolve_target_entities'); - $node = $treeBuilder->getRootNode(); - - $node - ->useAttributeAsKey('interface') - ->prototype('scalar') - ->cannotBeEmpty() - ->end(); - - return $node; - } - - /** - * Return ORM entity listener node - */ - private function getOrmEntityListenersNode(): NodeDefinition - { - $treeBuilder = new TreeBuilder('entity_listeners'); - $node = $treeBuilder->getRootNode(); - - $normalizer = static function ($mappings) { - $entities = []; - - foreach ($mappings as $entityClass => $mapping) { - $listeners = []; - - foreach ($mapping as $listenerClass => $listenerEvent) { - $events = []; - - foreach ($listenerEvent as $eventType => $eventMapping) { - if ($eventMapping === null) { - $eventMapping = [null]; - } - - foreach ($eventMapping as $method) { - $events[] = [ - 'type' => $eventType, - 'method' => $method, - ]; - } - } - - $listeners[] = [ - 'class' => $listenerClass, - 'event' => $events, - ]; - } - - $entities[] = [ - 'class' => $entityClass, - 'listener' => $listeners, - ]; - } - - return ['entities' => $entities]; - }; - - $node - ->beforeNormalization() - // Yaml normalization - ->ifTrue(static fn ($v) => is_array(reset($v)) && is_string(key(reset($v)))) - ->then($normalizer) - ->end() - ->fixXmlConfig('entity', 'entities') - ->children() - ->arrayNode('entities') - ->useAttributeAsKey('class') - ->prototype('array') - ->fixXmlConfig('listener') - ->children() - ->arrayNode('listeners') - ->useAttributeAsKey('class') - ->prototype('array') - ->fixXmlConfig('event') - ->children() - ->arrayNode('events') - ->prototype('array') - ->children() - ->scalarNode('type')->end() - ->scalarNode('method')->defaultNull()->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end(); - - return $node; - } - - /** - * Return ORM entity manager node - */ - private function getOrmEntityManagersNode(): ArrayNodeDefinition - { - $treeBuilder = new TreeBuilder('entity_managers'); - $node = $treeBuilder->getRootNode(); - - $node - ->requiresAtLeastOneElement() - ->useAttributeAsKey('name') - ->prototype('array') - ->addDefaultsIfNotSet() - ->append($this->getOrmCacheDriverNode('query_cache_driver')) - ->append($this->getOrmCacheDriverNode('metadata_cache_driver')) - ->append($this->getOrmCacheDriverNode('result_cache_driver')) - ->append($this->getOrmEntityListenersNode()) - ->fixXmlConfig('schema_ignore_class', 'schema_ignore_classes') - ->children() - ->scalarNode('connection')->end() - ->scalarNode('class_metadata_factory_name')->defaultValue(ClassMetadataFactory::class)->end() - ->scalarNode('default_repository_class')->defaultValue(EntityRepository::class)->end() - ->scalarNode('auto_mapping')->defaultFalse()->end() - ->booleanNode('enable_native_lazy_objects') - ->defaultFalse() - ->info('Enables the new native implementation of PHP lazy objects instead of generated proxies') - ->end() - ->scalarNode('naming_strategy')->defaultValue('doctrine.orm.naming_strategy.default')->end() - ->scalarNode('quote_strategy')->defaultValue('doctrine.orm.quote_strategy.default')->end() - ->scalarNode('typed_field_mapper')->defaultValue('doctrine.orm.typed_field_mapper.default')->end() - ->scalarNode('entity_listener_resolver')->defaultNull()->end() - ->scalarNode('fetch_mode_subselect_batch_size')->end() - ->scalarNode('repository_factory')->defaultValue('doctrine.orm.container_repository_factory')->end() - ->arrayNode('schema_ignore_classes') - ->prototype('scalar')->end() - ->end() - ->booleanNode('report_fields_where_declared') - ->defaultValue(! class_exists(AnnotationDriver::class)) - ->info('Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.16 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/10455.') - ->validate() - ->ifTrue(static fn (bool $v): bool => ! class_exists(AnnotationDriver::class) && ! $v) - ->thenInvalid('The setting "report_fields_where_declared" cannot be disabled for ORM 3.') - ->end() - ->end() - ->booleanNode('validate_xml_mapping')->defaultFalse()->info('Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/6728.')->end() - ->end() - ->children() - ->arrayNode('second_level_cache') - ->children() - ->append($this->getOrmCacheDriverNode('region_cache_driver')) - ->scalarNode('region_lock_lifetime')->defaultValue(60)->end() - ->booleanNode('log_enabled')->defaultValue($this->debug)->end() - ->scalarNode('region_lifetime')->defaultValue(3600)->end() - ->booleanNode('enabled')->defaultValue(true)->end() - ->scalarNode('factory')->end() - ->end() - ->fixXmlConfig('region') - ->children() - ->arrayNode('regions') - ->useAttributeAsKey('name') - ->prototype('array') - ->children() - ->append($this->getOrmCacheDriverNode('cache_driver')) - ->scalarNode('lock_path')->defaultValue('%kernel.cache_dir%/doctrine/orm/slc/filelock')->end() - ->scalarNode('lock_lifetime')->defaultValue(60)->end() - ->scalarNode('type')->defaultValue('default')->end() - ->scalarNode('lifetime')->defaultValue(0)->end() - ->scalarNode('service')->end() - ->scalarNode('name')->end() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('logger') - ->children() - ->arrayNode('loggers') - ->useAttributeAsKey('name') - ->prototype('array') - ->children() - ->scalarNode('name')->end() - ->scalarNode('service')->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('hydrator') - ->children() - ->arrayNode('hydrators') - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->end() - ->fixXmlConfig('mapping') - ->children() - ->arrayNode('mappings') - ->useAttributeAsKey('name') - ->prototype('array') - ->beforeNormalization() - ->ifString() - ->then(static fn ($v) => ['type' => $v]) - ->end() - ->treatNullLike([]) - ->treatFalseLike(['mapping' => false]) - ->performNoDeepMerging() - ->children() - ->scalarNode('mapping')->defaultValue(true)->end() - ->scalarNode('type')->end() - ->scalarNode('dir')->end() - ->scalarNode('alias')->end() - ->scalarNode('prefix')->end() - ->booleanNode('is_bundle')->end() - ->end() - ->end() - ->end() - ->arrayNode('dql') - ->fixXmlConfig('string_function') - ->fixXmlConfig('numeric_function') - ->fixXmlConfig('datetime_function') - ->children() - ->arrayNode('string_functions') - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->arrayNode('numeric_functions') - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->arrayNode('datetime_functions') - ->useAttributeAsKey('name') - ->prototype('scalar')->end() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('filter') - ->children() - ->arrayNode('filters') - ->info('Register SQL Filters in the entity manager') - ->useAttributeAsKey('name') - ->prototype('array') - ->beforeNormalization() - ->ifString() - ->then(static fn ($v) => ['class' => $v]) - ->end() - ->beforeNormalization() - // The content of the XML node is returned as the "value" key so we need to rename it - ->ifTrue(static fn ($v) => is_array($v) && isset($v['value'])) - ->then(static function ($v) { - $v['class'] = $v['value']; - unset($v['value']); - - return $v; - }) - ->end() - ->fixXmlConfig('parameter') - ->children() - ->scalarNode('class')->isRequired()->end() - ->booleanNode('enabled')->defaultFalse()->end() - ->arrayNode('parameters') - ->useAttributeAsKey('name') - ->prototype('variable')->end() - ->end() - ->end() - ->end() - ->end() - ->end() - ->fixXmlConfig('identity_generation_preference') - ->children() - ->arrayNode('identity_generation_preferences') - ->info('Configures the preferences for identity generation when using the AUTO strategy. Valid values are "SEQUENCE" or "IDENTITY".') - ->useAttributeAsKey('platform') - ->prototype('scalar') - ->beforeNormalization() - ->ifString() - ->then(static fn (string $v) => constant(ClassMetadata::class . '::GENERATOR_TYPE_' . strtoupper($v))) - ->end() - ->end() - ->end() - ->end() - ->end(); - - assert($node instanceof ArrayNodeDefinition); - - return $node; - } - - /** - * Return an ORM cache driver node for a given entity manager - */ - private function getOrmCacheDriverNode(string $name): ArrayNodeDefinition - { - $treeBuilder = new TreeBuilder($name); - $node = $treeBuilder->getRootNode(); - - $node - ->beforeNormalization() - ->ifString() - ->then(static fn ($v): array => ['type' => $v]) - ->end() - ->children() - ->scalarNode('type')->defaultNull()->end() - ->scalarNode('id')->end() - ->scalarNode('pool')->end() - ->end(); - - if ($name !== 'metadata_cache_driver') { - $node->addDefaultsIfNotSet(); - } - - assert($node instanceof ArrayNodeDefinition); - - return $node; - } - - /** - * Find proxy auto generate modes for their names and int values - * - * @return array{names: list, values: list} - */ - private function getAutoGenerateModes(): array - { - $constPrefix = 'AUTOGENERATE_'; - $prefixLen = strlen($constPrefix); - $refClass = new ReflectionClass(ProxyFactory::class); - $constsArray = $refClass->getConstants(); - $namesArray = []; - $valuesArray = []; - - foreach ($constsArray as $key => $value) { - if (strpos($key, $constPrefix) !== 0) { - continue; - } - - $namesArray[] = substr($key, $prefixLen); - $valuesArray[] = (int) $value; - } - - return [ - 'names' => $namesArray, - 'values' => $valuesArray, - ]; - } - - private function getDefaultSchemaManagerFactory(): string - { - if (class_exists(LegacySchemaManagerFactory::class)) { - return 'doctrine.dbal.legacy_schema_manager_factory'; - } - - return 'doctrine.dbal.default_schema_manager_factory'; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/DoctrineExtension.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/DoctrineExtension.php deleted file mode 100644 index 9482e46..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DependencyInjection/DoctrineExtension.php +++ /dev/null @@ -1,1251 +0,0 @@ -, - * driver_schemes: array, - * default_connection: string, - * types: array, - * } - */ -class DoctrineExtension extends AbstractDoctrineExtension -{ - private string $defaultConnection; - - /** - * {@inheritDoc} - * - * @return void - */ - public function load(array $configs, ContainerBuilder $container) - { - $configuration = $this->getConfiguration($configs, $container); - $config = $this->processConfigurationPrependingDefaults($configuration, $configs); - - if (! empty($config['dbal'])) { - $this->dbalLoad($config['dbal'], $container); - - $this->loadMessengerServices($container); - } - - if (empty($config['orm'])) { - return; - } - - if (empty($config['dbal'])) { - throw new LogicException('Configuring the ORM layer requires to configure the DBAL layer as well.'); - } - - $this->ormLoad($config['orm'], $container); - } - - /** - * Process user configuration and adds a default DBAL connection and/or a - * default EM if required, then process again the configuration to get - * default values for each. - * - * @param array> $configs - * - * @return array - */ - private function processConfigurationPrependingDefaults(ConfigurationInterface $configuration, array $configs): array - { - $config = $this->processConfiguration($configuration, $configs); - $configToAdd = []; - - // if no DB connection defined, prepend an empty one for the default - // connection name in order to make Symfony Config resolve the default - // values - if (isset($config['dbal']) && empty($config['dbal']['connections'])) { - $configToAdd['dbal'] = ['connections' => [($config['dbal']['default_connection'] ?? 'default') => []]]; - } - - // if no EM defined, prepend an empty one for the default EM name in - // order to make Symfony Config resolve the default values - if (isset($config['orm']) && empty($config['orm']['entity_managers'])) { - $configToAdd['orm'] = ['entity_managers' => [($config['orm']['default_entity_manager'] ?? 'default') => []]]; - } - - if (! $configToAdd) { - return $config; - } - - return $this->processConfiguration($configuration, array_merge([$configToAdd], $configs)); - } - - /** - * Loads the DBAL configuration. - * - * Usage example: - * - * - * - * @param DBALConfig $config An array of configuration settings - * @param ContainerBuilder $container A ContainerBuilder instance - */ - protected function dbalLoad(array $config, ContainerBuilder $container) - { - $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('dbal.xml'); - - if (empty($config['default_connection'])) { - $keys = array_keys($config['connections']); - $config['default_connection'] = reset($keys); - } - - $this->defaultConnection = $config['default_connection']; - - $container->setAlias('database_connection', sprintf('doctrine.dbal.%s_connection', $this->defaultConnection)); - $container->getAlias('database_connection')->setPublic(true); - $container->setAlias('doctrine.dbal.event_manager', new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $this->defaultConnection), false)); - - $container->setParameter('doctrine.dbal.connection_factory.types', $config['types']); - - $container->getDefinition('doctrine.dbal.connection_factory.dsn_parser')->setArgument(0, array_merge(ConnectionFactory::DEFAULT_SCHEME_MAP, $config['driver_schemes'])); - - $connections = []; - - foreach (array_keys($config['connections']) as $name) { - $connections[$name] = sprintf('doctrine.dbal.%s_connection', $name); - } - - $container->setParameter('doctrine.connections', $connections); - $container->setParameter('doctrine.default_connection', $this->defaultConnection); - - $connWithLogging = []; - $connWithProfiling = []; - $connWithBacktrace = []; - $ttlByConnection = []; - - foreach ($config['connections'] as $name => $connection) { - if ($connection['logging']) { - $connWithLogging[] = $name; - } - - if ($connection['profiling']) { - $connWithProfiling[] = $name; - - if ($connection['profiling_collect_backtrace']) { - $connWithBacktrace[] = $name; - } - } - - if ($connection['idle_connection_ttl'] > 0) { - $ttlByConnection[$name] = $connection['idle_connection_ttl']; - } - - $this->loadDbalConnection($name, $connection, $container); - } - - $container->registerForAutoconfiguration(MiddlewareInterface::class)->addTag('doctrine.middleware'); - - $container->registerAttributeForAutoconfiguration(AsMiddleware::class, static function (ChildDefinition $definition, AsMiddleware $attribute) { - $priority = isset($attribute->priority) ? ['priority' => $attribute->priority] : []; - - if ($attribute->connections === []) { - $definition->addTag('doctrine.middleware', $priority); - - return; - } - - foreach ($attribute->connections as $connName) { - $definition->addTag('doctrine.middleware', array_merge($priority, ['connection' => $connName])); - } - }); - - $this->registerDbalMiddlewares($container, $connWithLogging, $connWithProfiling, $connWithBacktrace, array_keys($ttlByConnection)); - - $container->getDefinition('doctrine.dbal.idle_connection_middleware')->setArgument(1, $ttlByConnection); - - if (class_exists(Listener::class)) { - return; - } - - $container->removeDefinition('doctrine.dbal.idle_connection_listener'); - $container->removeDefinition('doctrine.dbal.idle_connection_middleware'); - } - - /** - * Loads a configured DBAL connection. - * - * @param string $name The name of the connection - * @param array $connection A dbal connection configuration. - * @param ContainerBuilder $container A ContainerBuilder instance - */ - protected function loadDbalConnection($name, array $connection, ContainerBuilder $container) - { - $configuration = $container->setDefinition(sprintf('doctrine.dbal.%s_connection.configuration', $name), new ChildDefinition('doctrine.dbal.connection.configuration')); - unset($connection['logging']); - - $dataCollectorDefinition = $container->getDefinition('data_collector.doctrine'); - $dataCollectorDefinition->replaceArgument(1, $connection['profiling_collect_schema_errors']); - - unset( - $connection['profiling'], - $connection['profiling_collect_backtrace'], - $connection['profiling_collect_schema_errors'], - ); - - if (isset($connection['auto_commit'])) { - $configuration->addMethodCall('setAutoCommit', [$connection['auto_commit']]); - } - - unset($connection['auto_commit']); - - if (isset($connection['disable_type_comments'])) { - $configuration->addMethodCall('setDisableTypeComments', [$connection['disable_type_comments']]); - } - - unset($connection['disable_type_comments']); - - if (isset($connection['schema_filter']) && $connection['schema_filter']) { - $definition = new Definition(RegexSchemaAssetFilter::class, [$connection['schema_filter']]); - $definition->addTag('doctrine.dbal.schema_filter', ['connection' => $name]); - $container->setDefinition(sprintf('doctrine.dbal.%s_regex_schema_filter', $name), $definition); - } - - unset($connection['schema_filter']); - - // event manager - $container->setDefinition(sprintf('doctrine.dbal.%s_connection.event_manager', $name), new ChildDefinition('doctrine.dbal.connection.event_manager')); - - // connection - $options = $this->getConnectionOptions($connection); - - $connectionId = sprintf('doctrine.dbal.%s_connection', $name); - - $def = $container - ->setDefinition($connectionId, new ChildDefinition('doctrine.dbal.connection')) - ->setPublic(true) - ->setArguments([ - $options, - new Reference(sprintf('doctrine.dbal.%s_connection.configuration', $name)), - // event manager is only supported on DBAL < 4 - method_exists(Connection::class, 'getEventManager') ? new Reference(sprintf('doctrine.dbal.%s_connection.event_manager', $name)) : null, - $connection['mapping_types'], - ]); - - $container - ->registerAliasForArgument($connectionId, Connection::class, sprintf('%s.connection', $name)) - ->setPublic(false); - - // Set class in case "wrapper_class" option was used to assist IDEs - if (isset($options['wrapperClass'])) { - $def->setClass($options['wrapperClass']); - } - - if (isset($connection['use_savepoints'])) { - // DBAL >= 4 always has savepoints enabled. So we only need to call "setNestTransactionsWithSavepoints" for DBAL < 4 - if (method_exists(Connection::class, 'getEventManager')) { - if ($connection['use_savepoints']) { - $def->addMethodCall('setNestTransactionsWithSavepoints', [$connection['use_savepoints']]); - } - } elseif (! $connection['use_savepoints']) { - throw new LogicException('The "use_savepoints" option can only be set to "true" and should ideally not be set when using DBAL >= 4'); - } - } - - $container->setDefinition( - ManagerRegistryAwareConnectionProvider::class, - new Definition(ManagerRegistryAwareConnectionProvider::class, [$container->getDefinition('doctrine')]), - ); - - $configuration->addMethodCall('setSchemaManagerFactory', [new Reference($connection['schema_manager_factory'])]); - - if (isset($connection['result_cache'])) { - $configuration->addMethodCall('setResultCache', [new Reference($connection['result_cache'])]); - } - - if (class_exists(LegacySchemaManagerFactory::class)) { - return; - } - - $container->removeDefinition('doctrine.dbal.legacy_schema_manager_factory'); - } - - /** - * @param array $connection - * - * @return mixed[] - */ - protected function getConnectionOptions(array $connection): array - { - $options = $connection; - - $connectionDefaults = [ - 'host' => 'localhost', - 'port' => null, - 'user' => 'root', - 'password' => null, - ]; - - if ($options['override_url'] ?? false) { - $options['connection_override_options'] = array_intersect_key($options, ['dbname' => null] + $connectionDefaults); - } - - unset($options['override_url']); - unset($options['schema_manager_factory']); - - $options += $connectionDefaults; - - foreach (['replicas', 'slaves'] as $connectionKey) { - foreach (array_keys($options[$connectionKey]) as $name) { - $options[$connectionKey][$name] += $connectionDefaults; - } - } - - if (isset($options['platform_service'])) { - $options['platform'] = new Reference($options['platform_service']); - unset($options['platform_service']); - } - - unset($options['mapping_types']); - - foreach ( - [ - 'options' => 'driverOptions', - 'driver_class' => 'driverClass', - 'wrapper_class' => 'wrapperClass', - 'keep_slave' => 'keepReplica', - 'keep_replica' => 'keepReplica', - 'replicas' => 'replica', - 'server_version' => 'serverVersion', - 'default_table_options' => 'defaultTableOptions', - ] as $old => $new - ) { - if (! isset($options[$old])) { - continue; - } - - $options[$new] = $options[$old]; - unset($options[$old]); - } - - foreach (['replica', 'slaves'] as $connectionKey) { - foreach ($options[$connectionKey] as $name => $value) { - $driverOptions = $value['driverOptions'] ?? []; - $parentDriverOptions = $options['driverOptions'] ?? []; - if ($driverOptions === [] && $parentDriverOptions === []) { - continue; - } - - $options[$connectionKey][$name]['driverOptions'] = $driverOptions + $parentDriverOptions; - } - } - - if (! empty($options['slaves']) || ! empty($options['replica'])) { - $nonRewrittenKeys = [ - 'driver' => true, - 'driverClass' => true, - 'wrapperClass' => true, - 'keepSlave' => true, - 'keepReplica' => true, - 'platform' => true, - 'slaves' => true, - 'primary' => true, - 'replica' => true, - 'serverVersion' => true, - 'defaultTableOptions' => true, - // included by safety but should have been unset already - 'logging' => true, - 'profiling' => true, - 'mapping_types' => true, - 'platform_service' => true, - ]; - foreach ($options as $key => $value) { - if (isset($nonRewrittenKeys[$key])) { - continue; - } - - $options['primary'][$key] = $value; - unset($options[$key]); - } - - if (empty($options['wrapperClass'])) { - // Change the wrapper class only if user did not configure custom one. - $options['wrapperClass'] = PrimaryReadReplicaConnection::class; - } - } else { - unset($options['slaves'], $options['replica']); - } - - return $options; - } - - /** - * Loads the Doctrine ORM configuration. - * - * Usage example: - * - * - * - * @param array $config An array of configuration settings - * @param ContainerBuilder $container A ContainerBuilder instance - */ - protected function ormLoad(array $config, ContainerBuilder $container) - { - if (! class_exists(UnitOfWork::class)) { - throw new LogicException('To configure the ORM layer, you must first install the doctrine/orm package.'); - } - - $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('orm.xml'); - - if (class_exists(AbstractType::class)) { - $container->getDefinition('form.type.entity')->addTag('kernel.reset', ['method' => 'reset']); - } - - if (! class_exists(Annotation::class)) { - $container->removeAlias('doctrine.orm.metadata.annotation_reader'); - } - - if (! class_exists(UlidGenerator::class)) { - $container->removeDefinition('doctrine.ulid_generator'); - } - - if (! class_exists(UuidGenerator::class)) { - $container->removeDefinition('doctrine.uuid_generator'); - } - - if (! class_exists(ExpressionLanguage::class)) { - $container->removeDefinition('doctrine.orm.entity_value_resolver.expression_language'); - } - - $controllerResolverDefaults = []; - - if (! $config['controller_resolver']['enabled']) { - $controllerResolverDefaults['disabled'] = true; - } - - if ($config['controller_resolver']['auto_mapping'] === null) { - trigger_deprecation('doctrine/doctrine-bundle', '2.12', 'The default value of "doctrine.orm.controller_resolver.auto_mapping" will be changed from `true` to `false`. Explicitly configure `true` to keep existing behaviour.'); - $config['controller_resolver']['auto_mapping'] = true; - } - - if ($config['controller_resolver']['auto_mapping'] === true) { - trigger_deprecation('doctrine/doctrine-bundle', '2.13', 'Enabling the controller resolver automapping feature has been deprecated. Symfony Mapped Route Parameters should be used as replacement.'); - } - - if (! $config['controller_resolver']['auto_mapping']) { - $controllerResolverDefaults['mapping'] = []; - } - - if ($config['controller_resolver']['evict_cache']) { - $controllerResolverDefaults['evict_cache'] = true; - } - - $valueResolverDefinition = $container->getDefinition('doctrine.orm.entity_value_resolver'); - $valueResolverDefinition->setArgument(2, (new Definition(MapEntity::class))->setArguments([ - null, - null, - null, - $controllerResolverDefaults['mapping'] ?? null, - null, - null, - null, - $controllerResolverDefaults['evict_cache'] ?? null, - $controllerResolverDefaults['disabled'] ?? false, - ])); - - // Symfony 7.3 and higher expose type alias support in the EntityValueResolver - $valueResolverDefinition->setArgument(3, $config['resolve_target_entities']); - - // not available in Doctrine ORM 3.0 and higher - if (! class_exists(ConvertMappingCommand::class)) { - $container->removeDefinition('doctrine.mapping_convert_command'); - } - - if (! class_exists(EnsureProductionSettingsCommand::class)) { - $container->removeDefinition('doctrine.ensure_production_settings_command'); - } - - if (! class_exists(ClassMetadataExporter::class)) { - $container->removeDefinition('doctrine.mapping_import_command'); - } - - $entityManagers = []; - foreach (array_keys($config['entity_managers']) as $name) { - $entityManagers[$name] = sprintf('doctrine.orm.%s_entity_manager', $name); - } - - $container->setParameter('doctrine.entity_managers', $entityManagers); - - if (empty($config['default_entity_manager'])) { - $tmp = array_keys($entityManagers); - $config['default_entity_manager'] = reset($tmp); - } - - $container->setParameter('doctrine.default_entity_manager', $config['default_entity_manager']); - - if ($config['enable_lazy_ghost_objects'] ?? false) { - if (! class_exists(ProxyHelper::class)) { - throw new LogicException( - 'Lazy ghost objects cannot be enabled because the "symfony/var-exporter" library' - . ' is not installed. Please run "composer require symfony/var-exporter".', - ); - } - } elseif (! method_exists(ProxyFactory::class, 'resetUninitializedProxy')) { - throw new LogicException( - 'Lazy ghost objects cannot be disabled for ORM 3.', - ); - } else { - trigger_deprecation('doctrine/doctrine-bundle', '2.11', 'Not setting "doctrine.orm.enable_lazy_ghost_objects" to true is deprecated.'); - } - - $options = ['auto_generate_proxy_classes', 'enable_lazy_ghost_objects', 'proxy_dir', 'proxy_namespace']; - foreach ($options as $key) { - $container->setParameter('doctrine.orm.' . $key, $config[$key]); - } - - $container->setAlias('doctrine.orm.entity_manager', $defaultEntityManagerDefinitionId = sprintf('doctrine.orm.%s_entity_manager', $config['default_entity_manager'])); - $container->getAlias('doctrine.orm.entity_manager')->setPublic(true); - - $config['entity_managers'] = $this->fixManagersAutoMappings($config['entity_managers'], $container->getParameter('kernel.bundles')); - - foreach ($config['entity_managers'] as $name => $entityManager) { - $entityManager['name'] = $name; - $this->loadOrmEntityManager($entityManager, $container); - - if (interface_exists(PropertyInfoExtractorInterface::class)) { - $this->loadPropertyInfoExtractor($name, $container); - } - - if (! interface_exists(LoaderInterface::class)) { - continue; - } - - $this->loadValidatorLoader($name, $container); - } - - if ($config['resolve_target_entities']) { - $def = $container->findDefinition('doctrine.orm.listeners.resolve_target_entity'); - foreach ($config['resolve_target_entities'] as $name => $implementation) { - $def->addMethodCall('addResolveTargetEntity', [ - $name, - $implementation, - [], - ]); - } - - $def - ->addTag('doctrine.event_listener', ['event' => Events::loadClassMetadata]) - ->addTag('doctrine.event_listener', ['event' => Events::onClassMetadataNotFound]); - } - - $container->registerForAutoconfiguration(ServiceEntityRepositoryInterface::class) - ->addTag(ServiceRepositoryCompilerPass::REPOSITORY_SERVICE_TAG); - - $container->registerForAutoconfiguration(EventSubscriberInterface::class) - ->addTag('doctrine.event_subscriber'); - - $container->registerForAutoconfiguration(AbstractIdGenerator::class) - ->addTag(IdGeneratorPass::ID_GENERATOR_TAG); - - $container->registerAttributeForAutoconfiguration(AsEntityListener::class, static function (ChildDefinition $definition, AsEntityListener $attribute) { - $definition->addTag('doctrine.orm.entity_listener', [ - 'event' => $attribute->event, - 'method' => $attribute->method, - 'lazy' => $attribute->lazy, - 'entity_manager' => $attribute->entityManager, - 'entity' => $attribute->entity, - 'priority' => $attribute->priority, - ]); - }); - $container->registerAttributeForAutoconfiguration(AsDoctrineListener::class, static function (ChildDefinition $definition, AsDoctrineListener $attribute) { - $definition->addTag('doctrine.event_listener', [ - 'event' => $attribute->event, - 'priority' => $attribute->priority, - 'connection' => $attribute->connection, - ]); - }); - - $container->registerAttributeForAutoconfiguration(Embeddable::class, static function (ChildDefinition $definition) { - $definition->setAbstract(true)->addTag('container.excluded', ['source' => sprintf('with #[%s] attribute', Embeddable::class)]); - }); - $container->registerAttributeForAutoconfiguration(Entity::class, static function (ChildDefinition $definition) { - $definition->setAbstract(true)->addTag('container.excluded', ['source' => sprintf('with #[%s] attribute', Entity::class)]); - }); - $container->registerAttributeForAutoconfiguration(MappedSuperclass::class, static function (ChildDefinition $definition) { - $definition->setAbstract(true)->addTag('container.excluded', ['source' => sprintf('with #[%s] attribute', MappedSuperclass::class)]); - }); - - /** @see DoctrineBundle::boot() */ - $container->getDefinition($defaultEntityManagerDefinitionId) - ->addTag('container.preload', [ - 'class' => Autoloader::class, - ]); - } - - /** - * Loads a configured ORM entity manager. - * - * @param array $entityManager A configured ORM entity manager. - * @param ContainerBuilder $container A ContainerBuilder instance - */ - protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $container) - { - $ormConfigDef = $container->setDefinition(sprintf('doctrine.orm.%s_configuration', $entityManager['name']), new ChildDefinition('doctrine.orm.configuration')); - $ormConfigDef->addTag(IdGeneratorPass::CONFIGURATION_TAG); - - $this->loadOrmEntityManagerMappingInformation($entityManager, $ormConfigDef, $container); - $this->loadOrmCacheDrivers($entityManager, $container); - - if (isset($entityManager['entity_listener_resolver']) && $entityManager['entity_listener_resolver']) { - $container->setAlias(sprintf('doctrine.orm.%s_entity_listener_resolver', $entityManager['name']), $entityManager['entity_listener_resolver']); - } else { - $definition = new Definition('%doctrine.orm.entity_listener_resolver.class%'); - $definition->addArgument(new Reference('service_container')); - $container->setDefinition(sprintf('doctrine.orm.%s_entity_listener_resolver', $entityManager['name']), $definition); - } - - $methods = [ - 'setMetadataCache' => new Reference(sprintf('doctrine.orm.%s_metadata_cache', $entityManager['name'])), - 'setQueryCache' => new Reference(sprintf('doctrine.orm.%s_query_cache', $entityManager['name'])), - 'setResultCache' => new Reference(sprintf('doctrine.orm.%s_result_cache', $entityManager['name'])), - 'setMetadataDriverImpl' => new Reference('doctrine.orm.' . $entityManager['name'] . '_metadata_driver'), - 'setProxyDir' => '%doctrine.orm.proxy_dir%', - 'setProxyNamespace' => '%doctrine.orm.proxy_namespace%', - 'setAutoGenerateProxyClasses' => '%doctrine.orm.auto_generate_proxy_classes%', - 'setSchemaIgnoreClasses' => $entityManager['schema_ignore_classes'], - 'setClassMetadataFactoryName' => $entityManager['class_metadata_factory_name'], - 'setDefaultRepositoryClassName' => $entityManager['default_repository_class'], - 'setNamingStrategy' => new Reference($entityManager['naming_strategy']), - 'setQuoteStrategy' => new Reference($entityManager['quote_strategy']), - 'setTypedFieldMapper' => new Reference($entityManager['typed_field_mapper']), - 'setEntityListenerResolver' => new Reference(sprintf('doctrine.orm.%s_entity_listener_resolver', $entityManager['name'])), - 'setLazyGhostObjectEnabled' => '%doctrine.orm.enable_lazy_ghost_objects%', - 'setIdentityGenerationPreferences' => $entityManager['identity_generation_preferences'], - ]; - - if (PHP_VERSION_ID >= 80400 && class_exists(LegacyReflectionFields::class)) { - $methods['enableNativeLazyObjects'] = $entityManager['enable_native_lazy_objects']; - } - - if (isset($entityManager['fetch_mode_subselect_batch_size'])) { - $methods['setEagerFetchBatchSize'] = $entityManager['fetch_mode_subselect_batch_size']; - } - - $listenerId = sprintf('doctrine.orm.%s_listeners.attach_entity_listeners', $entityManager['name']); - $listenerDef = $container->setDefinition($listenerId, new Definition('%doctrine.orm.listeners.attach_entity_listeners.class%')); - $listenerTagParams = ['event' => 'loadClassMetadata']; - if (isset($entityManager['connection'])) { - $listenerTagParams['connection'] = $entityManager['connection']; - } - - $listenerDef->addTag('doctrine.event_listener', $listenerTagParams); - - if (isset($entityManager['second_level_cache'])) { - $this->loadOrmSecondLevelCache($entityManager, $ormConfigDef, $container); - } - - if ($entityManager['repository_factory']) { - $methods['setRepositoryFactory'] = new Reference($entityManager['repository_factory']); - } - - foreach ($methods as $method => $arg) { - $ormConfigDef->addMethodCall($method, [$arg]); - } - - foreach ($entityManager['hydrators'] as $name => $class) { - $ormConfigDef->addMethodCall('addCustomHydrationMode', [$name, $class]); - } - - if (! empty($entityManager['dql'])) { - foreach ($entityManager['dql']['string_functions'] as $name => $function) { - $ormConfigDef->addMethodCall('addCustomStringFunction', [$name, $function]); - } - - foreach ($entityManager['dql']['numeric_functions'] as $name => $function) { - $ormConfigDef->addMethodCall('addCustomNumericFunction', [$name, $function]); - } - - foreach ($entityManager['dql']['datetime_functions'] as $name => $function) { - $ormConfigDef->addMethodCall('addCustomDatetimeFunction', [$name, $function]); - } - } - - $enabledFilters = []; - $filtersParameters = []; - foreach ($entityManager['filters'] as $name => $filter) { - $ormConfigDef->addMethodCall('addFilter', [$name, $filter['class']]); - if ($filter['enabled']) { - $enabledFilters[] = $name; - } - - if (! $filter['parameters']) { - continue; - } - - $filtersParameters[$name] = $filter['parameters']; - } - - $managerConfiguratorName = sprintf('doctrine.orm.%s_manager_configurator', $entityManager['name']); - $container - ->setDefinition($managerConfiguratorName, new ChildDefinition('doctrine.orm.manager_configurator.abstract')) - ->replaceArgument(0, $enabledFilters) - ->replaceArgument(1, $filtersParameters); - - if (! isset($entityManager['connection'])) { - $entityManager['connection'] = $this->defaultConnection; - } - - $entityManagerId = sprintf('doctrine.orm.%s_entity_manager', $entityManager['name']); - - $container - ->setDefinition($entityManagerId, new ChildDefinition('doctrine.orm.entity_manager.abstract')) - ->setPublic(true) - ->setArguments([ - new Reference(sprintf('doctrine.dbal.%s_connection', $entityManager['connection'])), - new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name'])), - new Reference(sprintf('doctrine.dbal.%s_connection.event_manager', $entityManager['connection'])), - ]) - ->setConfigurator([new Reference($managerConfiguratorName), 'configure']); - - $container - ->registerAliasForArgument($entityManagerId, EntityManagerInterface::class, sprintf('%s.entity_manager', $entityManager['name'])) - ->setPublic(false); - - $container->setAlias( - sprintf('doctrine.orm.%s_entity_manager.event_manager', $entityManager['name']), - new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $entityManager['connection']), false), - ); - - if (! isset($entityManager['entity_listeners'])) { - return; - } - - $entities = $entityManager['entity_listeners']['entities']; - - foreach ($entities as $entityListenerClass => $entity) { - foreach ($entity['listeners'] as $listenerClass => $listener) { - foreach ($listener['events'] as $listenerEvent) { - $listenerEventName = $listenerEvent['type']; - $listenerMethod = $listenerEvent['method']; - - $listenerDef->addMethodCall('addEntityListener', [ - $entityListenerClass, - $listenerClass, - $listenerEventName, - $listenerMethod, - ]); - } - } - } - } - - /** - * Loads an ORM entity managers bundle mapping information. - * - * There are two distinct configuration possibilities for mapping information: - * - * 1. Specify a bundle and optionally details where the entity and mapping information reside. - * 2. Specify an arbitrary mapping location. - * - * @param array $entityManager A configured ORM entity manager - * @param Definition $ormConfigDef A Definition instance - * @param ContainerBuilder $container A ContainerBuilder instance - * - * @example - * - * doctrine.orm: - * mappings: - * MyBundle1: ~ - * MyBundle2: yml - * MyBundle3: { type: annotation, dir: Entities/ } - * MyBundle4: { type: xml, dir: Resources/config/doctrine/mapping } - * MyBundle5: { type: attribute, dir: Entities/ } - * MyBundle6: - * type: yml - * dir: bundle-mappings/ - * alias: BundleAlias - * arbitrary_key: - * type: xml - * dir: %kernel.project_dir%/src/vendor/DoctrineExtensions/lib/DoctrineExtensions/Entities - * prefix: DoctrineExtensions\Entities\ - * alias: DExt - * - * In the case of bundles everything is really optional (which leads to autodetection for this bundle) but - * in the mappings key everything except alias is a required argument. - */ - protected function loadOrmEntityManagerMappingInformation(array $entityManager, Definition $ormConfigDef, ContainerBuilder $container) - { - // reset state of drivers and alias map. They are only used by this methods and children. - $this->drivers = []; - $this->aliasMap = []; - - $this->loadMappingInformation($entityManager, $container); - $this->registerMappingDrivers($entityManager, $container); - - $container->getDefinition($this->getObjectManagerElementName($entityManager['name'] . '_metadata_driver')); - /** @psalm-suppress NoValue $this->drivers is set by $this->loadMappingInformation() call */ - foreach (array_keys($this->drivers) as $driverType) { - $mappingService = $this->getObjectManagerElementName($entityManager['name'] . '_' . $driverType . '_metadata_driver'); - $mappingDriverDef = $container->getDefinition($mappingService); - $args = $mappingDriverDef->getArguments(); - if ($driverType === 'annotation') { - $args[2] = $entityManager['report_fields_where_declared']; - } elseif ($driverType === 'attribute') { - $args[1] = $entityManager['report_fields_where_declared']; - } elseif ($driverType === 'xml') { - $args[1] ??= SimplifiedXmlDriver::DEFAULT_FILE_EXTENSION; - $args[2] = $entityManager['validate_xml_mapping']; - } else { - continue; - } - - $mappingDriverDef->setArguments($args); - } - - $ormConfigDef->addMethodCall('setEntityNamespaces', [$this->aliasMap]); - } - - /** - * Loads an ORM second level cache bundle mapping information. - * - * @param array $entityManager A configured ORM entity manager - * @param Definition $ormConfigDef A Definition instance - * @param ContainerBuilder $container A ContainerBuilder instance - * - * @example - * entity_managers: - * default: - * second_level_cache: - * region_lifetime: 3600 - * region_lock_lifetime: 60 - * region_cache_driver: apc - * log_enabled: true - * regions: - * my_service_region: - * type: service - * service : "my_service_region" - * - * my_query_region: - * lifetime: 300 - * cache_driver: array - * type: filelock - * - * my_entity_region: - * lifetime: 600 - * cache_driver: - * type: apc - */ - protected function loadOrmSecondLevelCache(array $entityManager, Definition $ormConfigDef, ContainerBuilder $container) - { - $driverId = null; - $enabled = $entityManager['second_level_cache']['enabled']; - - if (isset($entityManager['second_level_cache']['region_cache_driver'])) { - $driverName = 'second_level_cache.region_cache_driver'; - $driverMap = $entityManager['second_level_cache']['region_cache_driver']; - $driverId = $this->loadCacheDriver($driverName, $entityManager['name'], $driverMap, $container); - } - - $configId = sprintf('doctrine.orm.%s_second_level_cache.cache_configuration', $entityManager['name']); - $regionsId = sprintf('doctrine.orm.%s_second_level_cache.regions_configuration', $entityManager['name']); - $driverId = $driverId ?: sprintf('doctrine.orm.%s_second_level_cache.region_cache_driver', $entityManager['name']); - $configDef = $container->setDefinition($configId, new Definition('%doctrine.orm.second_level_cache.cache_configuration.class%')); - $regionsDef = $container - ->setDefinition($regionsId, new Definition('%doctrine.orm.second_level_cache.regions_configuration.class%')) - ->setArguments([$entityManager['second_level_cache']['region_lifetime'], $entityManager['second_level_cache']['region_lock_lifetime']]); - - $slcFactoryId = sprintf('doctrine.orm.%s_second_level_cache.default_cache_factory', $entityManager['name']); - $factoryClass = $entityManager['second_level_cache']['factory'] ?? '%doctrine.orm.second_level_cache.default_cache_factory.class%'; - - $definition = new Definition($factoryClass, [new Reference($regionsId), new Reference($driverId)]); - - $slcFactoryDef = $container - ->setDefinition($slcFactoryId, $definition); - - if (isset($entityManager['second_level_cache']['regions'])) { - foreach ($entityManager['second_level_cache']['regions'] as $name => $region) { - $regionRef = null; - $regionType = $region['type']; - - if ($regionType === 'service') { - $regionId = sprintf('doctrine.orm.%s_second_level_cache.region.%s', $entityManager['name'], $name); - $regionRef = new Reference($region['service']); - - $container->setAlias($regionId, new Alias($region['service'], false)); - } - - if ($regionType === 'default' || $regionType === 'filelock') { - $regionId = sprintf('doctrine.orm.%s_second_level_cache.region.%s', $entityManager['name'], $name); - $driverName = sprintf('second_level_cache.region.%s_driver', $name); - $driverMap = $region['cache_driver']; - $driverId = $this->loadCacheDriver($driverName, $entityManager['name'], $driverMap, $container); - $regionRef = new Reference($regionId); - - $container - ->setDefinition($regionId, new Definition('%doctrine.orm.second_level_cache.default_region.class%')) - ->setArguments([$name, new Reference($driverId), $region['lifetime']]); - } - - if ($regionType === 'filelock') { - $regionId = sprintf('doctrine.orm.%s_second_level_cache.region.%s_filelock', $entityManager['name'], $name); - - $container - ->setDefinition($regionId, new Definition('%doctrine.orm.second_level_cache.filelock_region.class%')) - ->setArguments([$regionRef, $region['lock_path'], $region['lock_lifetime']]); - - $regionRef = new Reference($regionId); - $regionsDef->addMethodCall('getLockLifetime', [$name, $region['lock_lifetime']]); - } - - $regionsDef->addMethodCall('setLifetime', [$name, $region['lifetime']]); - $slcFactoryDef->addMethodCall('setRegion', [$regionRef]); - } - } - - if ($entityManager['second_level_cache']['log_enabled']) { - $loggerChainId = sprintf('doctrine.orm.%s_second_level_cache.logger_chain', $entityManager['name']); - $loggerStatsId = sprintf('doctrine.orm.%s_second_level_cache.logger_statistics', $entityManager['name']); - $loggerChaingDef = $container->setDefinition($loggerChainId, new Definition('%doctrine.orm.second_level_cache.logger_chain.class%')); - $loggerStatsDef = $container->setDefinition($loggerStatsId, new Definition('%doctrine.orm.second_level_cache.logger_statistics.class%')); - - $loggerChaingDef->addMethodCall('setLogger', ['statistics', $loggerStatsDef]); - $configDef->addMethodCall('setCacheLogger', [$loggerChaingDef]); - - foreach ($entityManager['second_level_cache']['loggers'] as $name => $logger) { - $loggerId = sprintf('doctrine.orm.%s_second_level_cache.logger.%s', $entityManager['name'], $name); - $loggerRef = new Reference($logger['service']); - - $container->setAlias($loggerId, new Alias($logger['service'], false)); - $loggerChaingDef->addMethodCall('setLogger', [$name, $loggerRef]); - } - } - - $configDef->addMethodCall('setCacheFactory', [$slcFactoryDef]); - $configDef->addMethodCall('setRegionsConfiguration', [$regionsDef]); - $ormConfigDef->addMethodCall('setSecondLevelCacheEnabled', [$enabled]); - $ormConfigDef->addMethodCall('setSecondLevelCacheConfiguration', [$configDef]); - } - - /** - * {@inheritDoc} - */ - protected function getObjectManagerElementName($name): string - { - return 'doctrine.orm.' . $name; - } - - protected function getMappingObjectDefaultName(): string - { - return 'Entity'; - } - - protected function getMappingResourceConfigDirectory(string|null $bundleDir = null): string - { - if ($bundleDir !== null && is_dir($bundleDir . '/config/doctrine')) { - return 'config/doctrine'; - } - - return 'Resources/config/doctrine'; - } - - protected function getMappingResourceExtension(): string - { - return 'orm'; - } - - /** - * {@inheritDoc} - */ - protected function loadCacheDriver($cacheName, $objectManagerName, array $cacheDriver, ContainerBuilder $container): string - { - $aliasId = $this->getObjectManagerElementName(sprintf('%s_%s', $objectManagerName, $cacheName)); - - switch ($cacheDriver['type'] ?? 'pool') { - case 'service': - $serviceId = $cacheDriver['id']; - break; - - case 'pool': - $serviceId = $cacheDriver['pool'] ?? $this->createArrayAdapterCachePool($container, $objectManagerName, $cacheName); - break; - - default: - throw new InvalidArgumentException(sprintf( - 'Unknown cache of type "%s" configured for cache "%s" in entity manager "%s".', - $cacheDriver['type'], - $cacheName, - $objectManagerName, - )); - } - - $container->setAlias($aliasId, new Alias($serviceId, false)); - - return $aliasId; - } - - /** - * Loads a configured entity managers cache drivers. - * - * @param array $entityManager A configured ORM entity manager. - */ - protected function loadOrmCacheDrivers(array $entityManager, ContainerBuilder $container) - { - if (isset($entityManager['metadata_cache_driver'])) { - $this->loadCacheDriver('metadata_cache', $entityManager['name'], $entityManager['metadata_cache_driver'], $container); - } else { - $this->createMetadataCache($entityManager['name'], $container); - } - - $this->loadCacheDriver('result_cache', $entityManager['name'], $entityManager['result_cache_driver'], $container); - $this->loadCacheDriver('query_cache', $entityManager['name'], $entityManager['query_cache_driver'], $container); - } - - private function createMetadataCache(string $objectManagerName, ContainerBuilder $container): void - { - $aliasId = $this->getObjectManagerElementName(sprintf('%s_%s', $objectManagerName, 'metadata_cache')); - $cacheId = sprintf('cache.doctrine.orm.%s.%s', $objectManagerName, 'metadata'); - - $cache = new Definition(ArrayAdapter::class); - - if (! $container->getParameter('kernel.debug')) { - $phpArrayFile = '%kernel.build_dir%' . sprintf('/doctrine/orm/%s_metadata.php', $objectManagerName); - $cacheWarmerServiceId = $this->getObjectManagerElementName(sprintf('%s_%s', $objectManagerName, 'metadata_cache_warmer')); - - $container->register($cacheWarmerServiceId, DoctrineMetadataCacheWarmer::class) - ->setArguments([new Reference(sprintf('doctrine.orm.%s_entity_manager', $objectManagerName)), $phpArrayFile]) - ->addTag('kernel.cache_warmer', ['priority' => 1000]); // priority should be higher than ProxyCacheWarmer - - $cache = new Definition(PhpArrayAdapter::class, [$phpArrayFile, $cache]); - } - - $container->setDefinition($cacheId, $cache); - $container->setAlias($aliasId, $cacheId); - } - - /** - * Loads a property info extractor for each defined entity manager. - */ - private function loadPropertyInfoExtractor(string $entityManagerName, ContainerBuilder $container): void - { - $propertyExtractorDefinition = $container->register(sprintf('doctrine.orm.%s_entity_manager.property_info_extractor', $entityManagerName), DoctrineExtractor::class); - $argumentId = sprintf('doctrine.orm.%s_entity_manager', $entityManagerName); - - $propertyExtractorDefinition->addArgument(new Reference($argumentId)); - - $propertyExtractorDefinition->addTag('property_info.list_extractor', ['priority' => -1001]); - $propertyExtractorDefinition->addTag('property_info.type_extractor', ['priority' => -999]); - $propertyExtractorDefinition->addTag('property_info.access_extractor', ['priority' => -999]); - } - - /** - * Loads a validator loader for each defined entity manager. - */ - private function loadValidatorLoader(string $entityManagerName, ContainerBuilder $container): void - { - $validatorLoaderDefinition = $container->register(sprintf('doctrine.orm.%s_entity_manager.validator_loader', $entityManagerName), DoctrineLoader::class); - $validatorLoaderDefinition->addArgument(new Reference(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName))); - - $validatorLoaderDefinition->addTag('validator.auto_mapper', ['priority' => -100]); - } - - public function getXsdValidationBasePath(): string - { - return __DIR__ . '/../../config/schema'; - } - - public function getNamespace(): string - { - return 'http://symfony.com/schema/dic/doctrine'; - } - - /** - * {@inheritDoc} - */ - public function getConfiguration(array $config, ContainerBuilder $container): Configuration - { - return new Configuration((bool) $container->getParameter('kernel.debug')); - } - - protected function getMetadataDriverClass(string $driverType): string - { - switch ($driverType) { - case 'driver_chain': - return MappingDriverChain::class; - - case 'annotation': - if (! class_exists(AnnotationDriver::class)) { - throw new LogicException('The annotation driver is only available in doctrine/orm v2.'); - } - - return AnnotationDriver::class; - - case 'xml': - return SimplifiedXmlDriver::class; - - case 'yml': - /* @phpstan-ignore class.notFound */ - return SimplifiedYamlDriver::class; - - case 'php': - /* @phpstan-ignore class.notFound */ - return class_exists(PHPDriver::class) ? PHPDriver::class : LegacyPHPDriver::class; - - case 'staticphp': - /* @phpstan-ignore class.notFound */ - return class_exists(StaticPHPDriver::class) ? StaticPHPDriver::class : LegacyStaticPHPDriver::class; - - case 'attribute': - return AttributeDriver::class; - - default: - throw new LogicException(sprintf('Unknown "%s" metadata driver type.', $driverType)); - } - } - - private function loadMessengerServices(ContainerBuilder $container): void - { - // If the Messenger component is installed, wire it: - - if (! interface_exists(MessageBusInterface::class)) { - return; - } - - $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('messenger.xml'); - - /** - * The Doctrine transport component (symfony/doctrine-messenger) is optional. - * Remove service definition, if it is not available - */ - if (class_exists(DoctrineTransportFactory::class)) { - return; - } - - $container->removeDefinition('messenger.transport.doctrine.factory'); - $container->removeDefinition('doctrine.orm.messenger.doctrine_schema_listener'); - } - - private function createArrayAdapterCachePool(ContainerBuilder $container, string $objectManagerName, string $cacheName): string - { - $id = sprintf('cache.doctrine.orm.%s.%s', $objectManagerName, str_replace('_cache', '', $cacheName)); - - $poolDefinition = $container->register($id, ArrayAdapter::class); - $poolDefinition->addTag('cache.pool'); - $container->setDefinition($id, $poolDefinition); - - return $id; - } - - /** - * @param string[] $connWithLogging - * @param string[] $connWithProfiling - * @param string[] $connWithBacktrace - * @param string[] $connWithTtl - */ - private function registerDbalMiddlewares( - ContainerBuilder $container, - array $connWithLogging, - array $connWithProfiling, - array $connWithBacktrace, - array $connWithTtl, - ): void { - $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); - $loader->load('middlewares.xml'); - - $loggingMiddlewareAbstractDef = $container->getDefinition('doctrine.dbal.logging_middleware'); - foreach ($connWithLogging as $connName) { - $loggingMiddlewareAbstractDef->addTag('doctrine.middleware', ['connection' => $connName, 'priority' => 10]); - } - - $container->getDefinition('doctrine.debug_data_holder')->replaceArgument(0, $connWithBacktrace); - $debugMiddlewareAbstractDef = $container->getDefinition('doctrine.dbal.debug_middleware'); - foreach ($connWithProfiling as $connName) { - $debugMiddlewareAbstractDef - ->addTag('doctrine.middleware', ['connection' => $connName, 'priority' => 10]); - } - - $idleConnectionMiddlewareAbstractDef = $container->getDefinition('doctrine.dbal.idle_connection_middleware'); - foreach ($connWithTtl as $connName) { - $idleConnectionMiddlewareAbstractDef - ->addTag('doctrine.middleware', ['connection' => $connName, 'priority' => 10]); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DoctrineBundle.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DoctrineBundle.php deleted file mode 100644 index 08b75c6..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/DoctrineBundle.php +++ /dev/null @@ -1,173 +0,0 @@ -addCompilerPass(new class () implements CompilerPassInterface { - public function process(ContainerBuilder $container): void - { - if ($container->has('session.handler')) { - return; - } - - $container->removeDefinition('doctrine.orm.listeners.pdo_session_handler_schema_listener'); - } - }, PassConfig::TYPE_BEFORE_OPTIMIZATION); - - $container->addCompilerPass(new RegisterEventListenersAndSubscribersPass('doctrine.connections', 'doctrine.dbal.%s_connection.event_manager', 'doctrine'), PassConfig::TYPE_BEFORE_OPTIMIZATION); - - if ($container->hasExtension('security')) { - $security = $container->getExtension('security'); - - if ($security instanceof SecurityExtension) { - $security->addUserProviderFactory(new EntityFactory('entity', 'doctrine.orm.security.user.provider')); - } - } - - $container->addCompilerPass(new CacheCompatibilityPass()); - $container->addCompilerPass(new DoctrineValidationPass('orm')); - $container->addCompilerPass(new EntityListenerPass()); - $container->addCompilerPass(new ServiceRepositoryCompilerPass()); - $container->addCompilerPass(new IdGeneratorPass()); - $container->addCompilerPass(new DbalSchemaFilterPass()); - $container->addCompilerPass(new CacheSchemaSubscriberPass(), PassConfig::TYPE_BEFORE_REMOVING, -10); - $container->addCompilerPass(new RemoveProfilerControllerPass()); - $container->addCompilerPass(new RemoveLoggingMiddlewarePass()); - $container->addCompilerPass(new MiddlewaresPass()); - $container->addCompilerPass(new RegisterUidTypePass()); - - if (! class_exists(RegisterDatePointTypePass::class)) { - return; - } - - $container->addCompilerPass(new RegisterDatePointTypePass()); - } - - public function boot(): void - { - // Register an autoloader for proxies to avoid issues when unserializing them - // when the ORM is used. - if (! $this->container->hasParameter('doctrine.orm.proxy_namespace')) { - return; - } - - $namespace = (string) $this->container->getParameter('doctrine.orm.proxy_namespace'); - $dir = (string) $this->container->getParameter('doctrine.orm.proxy_dir'); - $proxyGenerator = null; - - if ($this->container->getParameter('doctrine.orm.auto_generate_proxy_classes')) { - // See https://github.com/symfony/symfony/pull/3419 for usage of references - /** @psalm-suppress UnsupportedPropertyReferenceUsage */ - $container = &$this->container; - - $proxyGenerator = static function ($proxyDir, $proxyNamespace, $class) use (&$container): void { - $originalClassName = (new DefaultProxyClassNameResolver())->resolveClassName($class); - $registry = $container->get('doctrine'); - assert($registry instanceof Registry); - - foreach ($registry->getManagers() as $em) { - assert($em instanceof EntityManagerInterface); - if (! $em->getConfiguration()->getAutoGenerateProxyClasses()) { - continue; - } - - $metadataFactory = $em->getMetadataFactory(); - - if ($metadataFactory->isTransient($originalClassName)) { - continue; - } - - $classMetadata = $metadataFactory->getMetadataFor($originalClassName); - - $em->getProxyFactory()->generateProxyClasses([$classMetadata]); - - clearstatcache(true, Autoloader::resolveFile($proxyDir, $proxyNamespace, $class)); - - break; - } - }; - } - - $this->autoloader = Autoloader::register($dir, $namespace, $proxyGenerator); - } - - public function shutdown(): void - { - if ($this->autoloader !== null) { - spl_autoload_unregister($this->autoloader); - $this->autoloader = null; - } - - // Clear all entity managers to clear references to entities for GC - if ($this->container->hasParameter('doctrine.entity_managers')) { - foreach ($this->container->getParameter('doctrine.entity_managers') as $id) { - if (! $this->container->initialized($id)) { - continue; - } - - $this->container->get($id)->clear(); - } - } - - // Close all connections to avoid reaching too many connections in the process when booting again later (tests) - if (! $this->container->hasParameter('doctrine.connections')) { - return; - } - - foreach ($this->container->getParameter('doctrine.connections') as $id) { - if (! $this->container->initialized($id)) { - continue; - } - - $this->container->get($id)->close(); - } - } - - public function registerCommands(Application $application): void - { - } - - public function getPath(): string - { - return dirname(__DIR__); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/EventSubscriber/EventSubscriberInterface.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/EventSubscriber/EventSubscriberInterface.php deleted file mode 100644 index 5cbae93..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/EventSubscriber/EventSubscriberInterface.php +++ /dev/null @@ -1,10 +0,0 @@ -> $filtersParameters - */ - public function __construct( - private readonly array $enabledFilters = [], - private readonly array $filtersParameters = [], - ) { - } - - /** - * Create a connection by name. - * - * @return void - */ - public function configure(EntityManagerInterface $entityManager) - { - $this->enableFilters($entityManager); - } - - /** - * Enables filters for a given entity manager - */ - private function enableFilters(EntityManagerInterface $entityManager): void - { - if (empty($this->enabledFilters)) { - return; - } - - $filterCollection = $entityManager->getFilters(); - foreach ($this->enabledFilters as $filter) { - $this->setFilterParameters($filter, $filterCollection->enable($filter)); - } - } - - /** - * Sets default parameters for a given filter - */ - private function setFilterParameters(string $name, SQLFilter $filter): void - { - if (empty($this->filtersParameters[$name])) { - return; - } - - $parameters = $this->filtersParameters[$name]; - foreach ($parameters as $paramName => $paramValue) { - $filter->setParameter($paramName, $paramValue); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataCollection.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataCollection.php deleted file mode 100644 index bc708db..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataCollection.php +++ /dev/null @@ -1,47 +0,0 @@ -metadata; - } - - /** @param string $path */ - public function setPath($path) - { - $this->path = $path; - } - - /** @return string|null */ - public function getPath() - { - return $this->path; - } - - /** @param string $namespace */ - public function setNamespace($namespace) - { - $this->namespace = $namespace; - } - - /** @return string|null */ - public function getNamespace() - { - return $this->namespace; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataFactory.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataFactory.php deleted file mode 100644 index 2d250a0..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ClassMetadataFactory.php +++ /dev/null @@ -1,34 +0,0 @@ -customGeneratorDefinition; - - if (! isset($customGeneratorDefinition['instance'])) { - return; - } - - /** @phpstan-ignore function.impossibleType, instanceof.alwaysFalse */ - assert($customGeneratorDefinition['instance'] instanceof AbstractIdGenerator); - - $class->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_CUSTOM); - $class->setIdGenerator($customGeneratorDefinition['instance']); - unset($customGeneratorDefinition['instance']); - $class->setCustomGeneratorDefinition($customGeneratorDefinition); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ContainerEntityListenerResolver.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ContainerEntityListenerResolver.php deleted file mode 100644 index 13c19d0..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/ContainerEntityListenerResolver.php +++ /dev/null @@ -1,98 +0,0 @@ -instances = []; - - return; - } - - $className = $this->normalizeClassName($className); - - unset($this->instances[$className]); - } - - /** - * {@inheritDoc} - */ - public function register($object): void - { - if (! is_object($object)) { - throw new InvalidArgumentException(sprintf('An object was expected, but got "%s".', gettype($object))); - } - - $className = $this->normalizeClassName($object::class); - - $this->instances[$className] = $object; - } - - /** - * {@inheritDoc} - */ - public function registerService($className, $serviceId) - { - $this->serviceIds[$this->normalizeClassName($className)] = $serviceId; - } - - /** - * {@inheritDoc} - */ - public function resolve($className): object - { - $className = $this->normalizeClassName($className); - - if (! isset($this->instances[$className])) { - if (isset($this->serviceIds[$className])) { - $this->instances[$className] = $this->resolveService($this->serviceIds[$className]); - } else { - $this->instances[$className] = new $className(); - } - } - - return $this->instances[$className]; - } - - private function resolveService(string $serviceId): object - { - if (! $this->container->has($serviceId)) { - throw new RuntimeException(sprintf('There is no service named "%s"', $serviceId)); - } - - return $this->container->get($serviceId); - } - - private function normalizeClassName(string $className): string - { - return trim($className, '\\'); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/DisconnectedMetadataFactory.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/DisconnectedMetadataFactory.php deleted file mode 100644 index e8803a1..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/DisconnectedMetadataFactory.php +++ /dev/null @@ -1,174 +0,0 @@ -getNamespace(); - $metadata = $this->getMetadataForNamespace($namespace); - if (! $metadata->getMetadata()) { - throw new RuntimeException(sprintf('Bundle "%s" does not contain any mapped entities.', $bundle->getName())); - } - - $path = $this->getBasePathForClass($bundle->getName(), $bundle->getNamespace(), $bundle->getPath()); - - $metadata->setPath($path); - $metadata->setNamespace($bundle->getNamespace()); - - return $metadata; - } - - /** - * Gets the metadata of a class. - * - * @param string $class A class name - * @param string $path The path where the class is stored (if known) - * - * @return ClassMetadataCollection A ClassMetadataCollection instance - * - * @throws MappingException When class is not valid entity or mapped superclass. - */ - public function getClassMetadata($class, $path = null) - { - $metadata = $this->getMetadataForClass($class); - if (! $metadata->getMetadata()) { - throw MappingException::classIsNotAValidEntityOrMappedSuperClass($class); - } - - $this->findNamespaceAndPathForMetadata($metadata, $path); - - return $metadata; - } - - /** - * Gets the metadata of all classes of a namespace. - * - * @param string $namespace A namespace name - * @param string $path The path where the class is stored (if known) - * - * @return ClassMetadataCollection A ClassMetadataCollection instance - * - * @throws RuntimeException When namespace not contain mapped entities. - */ - public function getNamespaceMetadata($namespace, $path = null) - { - $metadata = $this->getMetadataForNamespace($namespace); - if (! $metadata->getMetadata()) { - throw new RuntimeException(sprintf('Namespace "%s" does not contain any mapped entities.', $namespace)); - } - - $this->findNamespaceAndPathForMetadata($metadata, $path); - - return $metadata; - } - - /** - * Find and configure path and namespace for the metadata collection. - * - * @param string|null $path - * - * @throws RuntimeException When unable to determine the path. - */ - public function findNamespaceAndPathForMetadata(ClassMetadataCollection $metadata, $path = null) - { - $r = new ReflectionClass($metadata->getMetadata()[0]->name); - $metadata->setPath($this->getBasePathForClass($r->getName(), $r->getNamespaceName(), dirname($r->getFilename()))); - $metadata->setNamespace($r->getNamespaceName()); - } - - /** - * Get a base path for a class - * - * @throws RuntimeException When base path not found. - */ - private function getBasePathForClass(string $name, string $namespace, string $path): string - { - $namespace = str_replace('\\', '/', $namespace); - $search = str_replace('\\', '/', $path); - $destination = str_replace('/' . $namespace, '', $search, $c); - - if ($c !== 1) { - throw new RuntimeException(sprintf('Can\'t find base path for "%s" (path: "%s", destination: "%s").', $name, $path, $destination)); - } - - return $destination; - } - - private function getMetadataForNamespace(string $namespace): ClassMetadataCollection - { - $metadata = []; - foreach ($this->getAllMetadata() as $m) { - if (strpos($m->name, $namespace) !== 0) { - continue; - } - - $metadata[] = $m; - } - - return new ClassMetadataCollection($metadata); - } - - private function getMetadataForClass(string $entity): ClassMetadataCollection - { - foreach ($this->registry->getManagers() as $em) { - /* @phpstan-ignore class.notFound */ - $cmf = new DisconnectedClassMetadataFactory(); - $cmf->setEntityManager($em); - - if (! $cmf->isTransient($entity)) { - return new ClassMetadataCollection([$cmf->getMetadataFor($entity)]); - } - } - - return new ClassMetadataCollection([]); - } - - /** @return ClassMetadata[] */ - private function getAllMetadata(): array - { - $metadata = []; - foreach ($this->registry->getManagers() as $em) { - /* @phpstan-ignore class.notFound */ - $cmf = new DisconnectedClassMetadataFactory(); - $cmf->setEntityManager($em); - foreach ($cmf->getAllMetadata() as $m) { - $metadata[] = $m; - } - } - - return $metadata; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/EntityListenerServiceResolver.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/EntityListenerServiceResolver.php deleted file mode 100644 index 03120ef..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Mapping/EntityListenerServiceResolver.php +++ /dev/null @@ -1,15 +0,0 @@ -driver->getAllClassNames(); - } - - /** - * {@inheritDoc} - */ - public function isTransient($className): bool - { - return $this->driver->isTransient($className); - } - - /** - * {@inheritDoc} - */ - public function loadMetadataForClass($className, ClassMetadata $metadata): void - { - $this->driver->loadMetadataForClass($className, $metadata); - - if ( - ! $metadata instanceof OrmClassMetadata - || $metadata->generatorType !== OrmClassMetadata::GENERATOR_TYPE_CUSTOM - || ! isset($metadata->customGeneratorDefinition['class']) - || ! $this->idGeneratorLocator->has($metadata->customGeneratorDefinition['class']) - ) { - return; - } - - $idGenerator = $this->idGeneratorLocator->get($metadata->customGeneratorDefinition['class']); - $metadata->setCustomGeneratorDefinition(['instance' => $idGenerator] + $metadata->customGeneratorDefinition); - $metadata->setIdGeneratorType(OrmClassMetadata::GENERATOR_TYPE_NONE); - } - - /** - * Returns the inner driver - */ - public function getDriver(): MappingDriverInterface - { - return $this->driver; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/BacktraceDebugDataHolder.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/BacktraceDebugDataHolder.php deleted file mode 100644 index fd702af..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/BacktraceDebugDataHolder.php +++ /dev/null @@ -1,88 +0,0 @@ -[]> */ - private array $backtraces = []; - - /** @param string[] $connWithBacktraces */ - public function __construct( - private readonly array $connWithBacktraces, - ) { - } - - public function reset(): void - { - parent::reset(); - - $this->backtraces = []; - } - - public function addQuery(string $connectionName, Query $query): void - { - parent::addQuery($connectionName, $query); - - if (! in_array($connectionName, $this->connWithBacktraces, true)) { - return; - } - - // array_slice to skip middleware calls in the trace - $this->backtraces[$connectionName][] = array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), 2); - } - - /** @return array[]> */ - public function getData(): array - { - $dataWithBacktraces = []; - - $data = parent::getData(); - foreach ($data as $connectionName => $dataForConn) { - $dataWithBacktraces[$connectionName] = $this->getDataForConnection($connectionName, $dataForConn); - } - - return $dataWithBacktraces; - } - - /** - * @param mixed[][] $dataForConn - * - * @return mixed[][] - */ - private function getDataForConnection(string $connectionName, array $dataForConn): array - { - $data = []; - - foreach ($dataForConn as $idx => $record) { - $data[] = $this->addBacktracesIfAvailable($connectionName, $record, $idx); - } - - return $data; - } - - /** - * @param mixed[] $record - * - * @return mixed[] - */ - private function addBacktracesIfAvailable(string $connectionName, array $record, int $idx): array - { - if (! isset($this->backtraces[$connectionName])) { - return $record; - } - - $record['backtrace'] = $this->backtraces[$connectionName][$idx]; - - return $record; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/ConnectionNameAwareInterface.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/ConnectionNameAwareInterface.php deleted file mode 100644 index 5bb2e41..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/ConnectionNameAwareInterface.php +++ /dev/null @@ -1,8 +0,0 @@ -connectionName = $name; - } - - public function wrap(DriverInterface $driver): DriverInterface - { - return new Driver($driver, $this->debugDataHolder, $this->stopwatch, $this->connectionName); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/IdleConnectionMiddleware.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/IdleConnectionMiddleware.php deleted file mode 100644 index dd19cac..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Middleware/IdleConnectionMiddleware.php +++ /dev/null @@ -1,38 +0,0 @@ - $connectionExpiries - * @param array $ttlByConnection - */ - public function __construct( - private readonly ArrayObject $connectionExpiries, - private readonly array $ttlByConnection, - ) { - } - - public function setConnectionName(string $name): void - { - $this->connectionName = $name; - } - - public function wrap(Driver $driver): IdleConnectionDriver - { - return new IdleConnectionDriver( - $driver, - $this->connectionExpiries, - $this->ttlByConnection[$this->connectionName], - $this->connectionName, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Orm/ManagerRegistryAwareEntityManagerProvider.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Orm/ManagerRegistryAwareEntityManagerProvider.php deleted file mode 100644 index d639d1e..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Orm/ManagerRegistryAwareEntityManagerProvider.php +++ /dev/null @@ -1,41 +0,0 @@ -getManager($this->managerRegistry->getDefaultManagerName()); - } - - public function getManager(string $name): EntityManagerInterface - { - $em = $this->managerRegistry->getManager($name); - - if ($em instanceof EntityManagerInterface) { - return $em; - } - - throw new RuntimeException( - sprintf( - 'Only managers of type "%s" are supported. Instance of "%s given.', - EntityManagerInterface::class, - get_debug_type($em), - ), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Registry.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Registry.php deleted file mode 100644 index a99e67e..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Registry.php +++ /dev/null @@ -1,90 +0,0 @@ -container = $container; - - parent::__construct('ORM', $connections, $entityManagers, $defaultConnection, $defaultEntityManager, Proxy::class); - } - - /** - * Resolves a registered namespace alias to the full namespace. - * - * This method looks for the alias in all registered entity managers. - * - * @see Configuration::getEntityNamespace - * - * @param string $alias The alias - * - * @return string The full namespace - */ - public function getAliasNamespace($alias) - { - foreach (array_keys($this->getManagers()) as $name) { - $objectManager = $this->getManager($name); - - if (! $objectManager instanceof EntityManagerInterface) { - continue; - } - - try { - /** @phpstan-ignore method.notFound (ORM < 3 specific) */ - return $objectManager->getConfiguration()->getEntityNamespace($alias); - /* @phpstan-ignore class.notFound */ - } catch (ORMException) { - } - } - - /* @phpstan-ignore class.notFound */ - throw ORMException::unknownEntityNamespace($alias); - } - - public function reset(): void - { - foreach ($this->getManagerNames() as $managerName => $serviceId) { - $this->resetOrClearManager($managerName, $serviceId); - } - } - - private function resetOrClearManager(string $managerName, string $serviceId): void - { - if (! $this->container->initialized($serviceId)) { - return; - } - - $manager = $this->container->get($serviceId); - - assert($manager instanceof EntityManagerInterface); - - if ((! $manager instanceof LazyLoadingInterface && ! $manager instanceof LazyObjectInterface) || $manager->isOpen()) { - $manager->clear(); - - return; - } - - $this->resetManager($managerName); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ContainerRepositoryFactory.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ContainerRepositoryFactory.php deleted file mode 100644 index 57d93d0..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ContainerRepositoryFactory.php +++ /dev/null @@ -1,109 +0,0 @@ - */ - private array $managedRepositories = []; - - /** @param ContainerInterface $container A service locator containing the repositories */ - public function __construct( - private readonly ContainerInterface $container, - ) { - } - - /** - * @param class-string $entityName - * - * @return ObjectRepository - * @phpstan-return ($strictTypeCheck is true ? EntityRepository : ObjectRepository) - * - * @template T of object - */ - private function doGetRepository(EntityManagerInterface $entityManager, string $entityName, bool $strictTypeCheck): ObjectRepository - { - $metadata = $entityManager->getClassMetadata($entityName); - $repositoryServiceId = $metadata->customRepositoryClassName; - - $customRepositoryName = $metadata->customRepositoryClassName; - if ($customRepositoryName !== null) { - // fetch from the container - if ($this->container->has($customRepositoryName)) { - $repository = $this->container->get($customRepositoryName); - - if (! $repository instanceof EntityRepository && $strictTypeCheck) { - throw new RuntimeException(sprintf('The service "%s" must extend EntityRepository (e.g. by extending ServiceEntityRepository), "%s" given.', $repositoryServiceId, get_debug_type($repository))); - } - - if (! $repository instanceof ObjectRepository) { - throw new RuntimeException(sprintf('The service "%s" must implement ObjectRepository (or extend a base class, like ServiceEntityRepository), "%s" given.', $repositoryServiceId, get_debug_type($repository))); - } - - if (! $repository instanceof EntityRepository) { - trigger_deprecation('doctrine/doctrine-bundle', '2.11', 'The service "%s" of type "%s" should extend "%s", not doing so is deprecated.', $repositoryServiceId, get_debug_type($repository), EntityRepository::class); - } - - /** @phpstan-var ObjectRepository */ - return $repository; - } - - // if not in the container but the class/id implements the interface, throw an error - if (is_a($customRepositoryName, ServiceEntityRepositoryInterface::class, true)) { - throw new RuntimeException(sprintf('The "%s" entity repository implements "%s", but its service could not be found. Make sure the service exists and is tagged with "%s".', $customRepositoryName, ServiceEntityRepositoryInterface::class, ServiceRepositoryCompilerPass::REPOSITORY_SERVICE_TAG)); - } - - if (! class_exists($customRepositoryName)) { - throw new RuntimeException(sprintf('The "%s" entity has a repositoryClass set to "%s", but this is not a valid class. Check your class naming. If this is meant to be a service id, make sure this service exists and is tagged with "%s".', $metadata->name, $customRepositoryName, ServiceRepositoryCompilerPass::REPOSITORY_SERVICE_TAG)); - } - - // allow the repository to be created below - } - - return $this->getOrCreateRepository($entityManager, $metadata); - } - - /** - * @param ClassMetadata $metadata - * - * @return ObjectRepository - * - * @template TEntity of object - */ - private function getOrCreateRepository( - EntityManagerInterface $entityManager, - ClassMetadata $metadata, - ): ObjectRepository { - $repositoryHash = $metadata->getName() . spl_object_hash($entityManager); - if (isset($this->managedRepositories[$repositoryHash])) { - /** @phpstan-var ObjectRepository */ - return $this->managedRepositories[$repositoryHash]; - } - - $repositoryClassName = $metadata->customRepositoryClassName ?: $entityManager->getConfiguration()->getDefaultRepositoryClassName(); - - /** @phpstan-var ObjectRepository */ - return $this->managedRepositories[$repositoryHash] = new $repositoryClassName($entityManager, $metadata); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/LazyServiceEntityRepository.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/LazyServiceEntityRepository.php deleted file mode 100644 index 5df8f09..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/LazyServiceEntityRepository.php +++ /dev/null @@ -1,75 +0,0 @@ - - */ -class LazyServiceEntityRepository extends EntityRepository implements ServiceEntityRepositoryInterface -{ - /** - * @param string $entityClass The class name of the entity this repository manages - * @phpstan-param class-string $entityClass - */ - public function __construct( - private readonly ManagerRegistry $registry, - private readonly string $entityClass, - ) { - if ($this instanceof LazyObjectInterface) { - $this->initialize(); - - return; - } - - unset($this->_em); - unset($this->_class); - unset($this->_entityName); - } - - /** @return mixed */ - public function __get(string $name) - { - $this->initialize(); - - $scope = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['class'] ?? null; - - return (fn (): mixed => $this->$name)->bindTo($this, $scope)(); - } - - public function __isset(string $name): bool - { - $this->initialize(); - - $scope = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['class'] ?? null; - - return (fn (): bool => isset($this->$name))->bindTo($this, $scope)(); - } - - private function initialize(): void - { - $manager = $this->registry->getManagerForClass($this->entityClass); - - if (! $manager instanceof EntityManagerInterface) { - throw new LogicException(sprintf( - 'Could not find the entity manager for class "%s". Check your Doctrine configuration to make sure it is configured to load this entity’s metadata.', - $this->entityClass, - )); - } - - parent::__construct($manager, $manager->getClassMetadata($this->entityClass)); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/RepositoryFactoryCompatibility.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/RepositoryFactoryCompatibility.php deleted file mode 100644 index f50ff76..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/RepositoryFactoryCompatibility.php +++ /dev/null @@ -1,41 +0,0 @@ -hasReturnType()) { - // ORM >= 3 - /** @internal */ - trait RepositoryFactoryCompatibility - { - /** - * Gets the repository for an entity class. - * - * @param class-string $entityName - * - * @return EntityRepository - * - * @template T of object - */ - public function getRepository(EntityManagerInterface $entityManager, string $entityName): EntityRepository - { - return $this->doGetRepository($entityManager, $entityName, true); - } - } -} else { - // ORM 2 - /** @internal */ - trait RepositoryFactoryCompatibility - { - /** {@inheritDoc} */ - public function getRepository(EntityManagerInterface $entityManager, $entityName): ObjectRepository - { - return $this->doGetRepository($entityManager, $entityName, false); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepository.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepository.php deleted file mode 100644 index d4c59e2..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepository.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ - class ServiceEntityRepository extends LazyServiceEntityRepository - { - } -} else { - // ORM 3 - /** - * Optional EntityRepository base class with a simplified constructor (for autowiring). - * - * To use in your class, inject the "registry" service and call - * the parent constructor. For example: - * - * class YourEntityRepository extends ServiceEntityRepository - * { - * public function __construct(ManagerRegistry $registry) - * { - * parent::__construct($registry, YourEntity::class); - * } - * } - * - * @template T of object - * @template-extends ServiceEntityRepositoryProxy - */ - class ServiceEntityRepository extends ServiceEntityRepositoryProxy - { - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryInterface.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryInterface.php deleted file mode 100644 index fe9ce4d..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryInterface.php +++ /dev/null @@ -1,10 +0,0 @@ - - */ -class ServiceEntityRepositoryProxy extends EntityRepository implements ServiceEntityRepositoryInterface -{ - /** @var EntityRepository */ - private EntityRepository|null $repository = null; - - /** @param class-string $entityClass The class name of the entity this repository manages */ - public function __construct( - private readonly ManagerRegistry $registry, - private readonly string $entityClass, - ) { - if (! $this instanceof LazyObjectInterface) { - return; - } - - $this->repository = $this->resolveRepository(); - } - - public function createQueryBuilder(string $alias, string|null $indexBy = null): QueryBuilder - { - return ($this->repository ??= $this->resolveRepository()) - ->createQueryBuilder($alias, $indexBy); - } - - public function createResultSetMappingBuilder(string $alias): ResultSetMappingBuilder - { - return ($this->repository ??= $this->resolveRepository()) - ->createResultSetMappingBuilder($alias); - } - - public function find(mixed $id, LockMode|int|null $lockMode = null, int|null $lockVersion = null): object|null - { - /** @psalm-suppress InvalidReturnStatement This proxy is used only in combination with newer parent class */ - return ($this->repository ??= $this->resolveRepository()) - ->find($id, $lockMode, $lockVersion); - } - - /** - * {@inheritDoc} - * - * @psalm-suppress InvalidReturnStatement This proxy is used only in combination with newer parent class - * @psalm-suppress InvalidReturnType This proxy is used only in combination with newer parent class - */ - public function findBy(array $criteria, array|null $orderBy = null, int|null $limit = null, int|null $offset = null): array - { - return ($this->repository ??= $this->resolveRepository()) - ->findBy($criteria, $orderBy, $limit, $offset); - } - - /** {@inheritDoc} */ - public function findOneBy(array $criteria, array|null $orderBy = null): object|null - { - /** @psalm-suppress InvalidReturnStatement This proxy is used only in combination with newer parent class */ - return ($this->repository ??= $this->resolveRepository()) - ->findOneBy($criteria, $orderBy); - } - - /** {@inheritDoc} */ - public function count(array $criteria = []): int - { - return ($this->repository ??= $this->resolveRepository())->count($criteria); - } - - /** - * {@inheritDoc} - */ - public function __call(string $method, array $arguments): mixed - { - return ($this->repository ??= $this->resolveRepository())->$method(...$arguments); - } - - protected function getEntityName(): string - { - return ($this->repository ??= $this->resolveRepository())->getEntityName(); - } - - protected function getEntityManager(): EntityManagerInterface - { - return ($this->repository ??= $this->resolveRepository())->getEntityManager(); - } - - /** @psalm-suppress InvalidReturnType This proxy is used only in combination with newer parent class */ - protected function getClassMetadata(): ClassMetadata - { - /** @psalm-suppress InvalidReturnStatement This proxy is used only in combination with newer parent class */ - return ($this->repository ??= $this->resolveRepository())->getClassMetadata(); - } - - /** @phpstan-return AbstractLazyCollection&Selectable */ - public function matching(Criteria $criteria): AbstractLazyCollection&Selectable - { - return ($this->repository ??= $this->resolveRepository())->matching($criteria); - } - - /** @return EntityRepository */ - private function resolveRepository(): EntityRepository - { - $manager = $this->registry->getManagerForClass($this->entityClass); - - if (! $manager instanceof EntityManagerInterface) { - throw new LogicException(sprintf( - 'Could not find the entity manager for class "%s". Check your Doctrine configuration to make sure it is configured to load this entity’s metadata.', - $this->entityClass, - )); - } - - /** @var ClassMetadata $classMetadata */ - $classMetadata = $manager->getClassMetadata($this->entityClass); - - return new EntityRepository($manager, $classMetadata); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Twig/DoctrineExtension.php b/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Twig/DoctrineExtension.php deleted file mode 100644 index 8546625..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/src/Twig/DoctrineExtension.php +++ /dev/null @@ -1,205 +0,0 @@ - ['html']]), - new TwigFilter('doctrine_format_sql', [$this, 'formatSql'], ['is_safe' => ['html']]), - new TwigFilter('doctrine_replace_query_parameters', [$this, 'replaceQueryParameters']), - ]; - $options = ['deprecated' => true]; - // exists since twig/twig 3.15 - if (class_exists(DeprecatedCallableInfo::class)) { - $options = ['deprecation_info' => new DeprecatedCallableInfo('doctrine/doctrine-bundle', '2.1')]; - } - - return array_merge($out, [ - new TwigFilter('doctrine_pretty_query', [$this, 'formatQuery'], ['is_safe' => ['html']] + $options), - ]); - } - - /** - * Escape parameters of a SQL query - * DON'T USE THIS FUNCTION OUTSIDE ITS INTENDED SCOPE - * - * @internal - * - * @return string - */ - public static function escapeFunction(mixed $parameter) - { - $result = $parameter; - - switch (true) { - // Check if result is non-unicode string using PCRE_UTF8 modifier - case is_string($result) && ! preg_match('//u', $result): - $result = '0x' . strtoupper(bin2hex($result)); - break; - - case is_string($result): - $result = "'" . addslashes($result) . "'"; - break; - - case is_array($result): - foreach ($result as &$value) { - $value = static::escapeFunction($value); - } - - $result = implode(', ', $result) ?: 'NULL'; - break; - - case $result instanceof Stringable: - $result = addslashes((string) $result); - break; - - case $result === null: - $result = 'NULL'; - break; - - case is_bool($result): - $result = $result ? '1' : '0'; - break; - } - - return $result; - } - - /** - * Return a query with the parameters replaced - * - * @param string $query - * @param array|Data $parameters - * - * @return string - */ - public function replaceQueryParameters($query, $parameters) - { - if ($parameters instanceof Data) { - $parameters = $parameters->getValue(true); - } - - $i = 0; - - if (! array_key_exists(0, $parameters) && array_key_exists(1, $parameters)) { - $i = 1; - } - - return preg_replace_callback( - '/\?|((?setUpSqlFormatter(true, true); - - if ($highlightOnly) { - return $this->sqlFormatter->highlight($sql); - } - - return sprintf( - '
%s
', - $this->sqlFormatter->format($sql), - ); - } - - public function prettifySql(string $sql): string - { - $this->setUpSqlFormatter(); - - return $this->sqlFormatter->highlight($sql); - } - - public function formatSql(string $sql, bool $highlight): string - { - $this->setUpSqlFormatter($highlight); - - return $this->sqlFormatter->format($sql); - } - - private function setUpSqlFormatter(bool $highlight = true, bool $legacy = false): void - { - $this->sqlFormatter = new SqlFormatter($highlight ? new HtmlHighlighter([ - HtmlHighlighter::HIGHLIGHT_PRE => 'class="highlight highlight-sql"', - HtmlHighlighter::HIGHLIGHT_QUOTE => 'class="string"', - HtmlHighlighter::HIGHLIGHT_BACKTICK_QUOTE => 'class="string"', - HtmlHighlighter::HIGHLIGHT_RESERVED => 'class="keyword"', - HtmlHighlighter::HIGHLIGHT_BOUNDARY => 'class="symbol"', - HtmlHighlighter::HIGHLIGHT_NUMBER => 'class="number"', - HtmlHighlighter::HIGHLIGHT_WORD => 'class="word"', - HtmlHighlighter::HIGHLIGHT_ERROR => 'class="error"', - HtmlHighlighter::HIGHLIGHT_COMMENT => 'class="comment"', - HtmlHighlighter::HIGHLIGHT_VARIABLE => 'class="variable"', - ], ! $legacy) : new NullHighlighter()); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/database.svg b/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/database.svg deleted file mode 100644 index 40a2b45..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/database.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/db.html.twig b/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/db.html.twig deleted file mode 100644 index 8663181..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/db.html.twig +++ /dev/null @@ -1,558 +0,0 @@ -{% extends request.isXmlHttpRequest ? '@WebProfiler/Profiler/ajax_layout.html.twig' : '@WebProfiler/Profiler/layout.html.twig' %} - -{% import _self as helper %} - -{% block toolbar %} - {% if collector.querycount > 0 or collector.invalidEntityCount > 0 %} - - {% set icon %} - {% set status = collector.invalidEntityCount > 0 ? 'red' : collector.querycount > 50 ? 'yellow' %} - - {% if profiler_markup_version >= 3 %} - {{ include('@Doctrine/Collector/database.svg') }} - {% else %} - {{ include('@Doctrine/Collector/icon.svg') }} - {% endif %} - - {% if collector.querycount == 0 and collector.invalidEntityCount > 0 %} - {{ collector.invalidEntityCount }} - errors - {% else %} - {{ collector.querycount }} - - in - {{ '%0.2f'|format(collector.time * 1000) }} - ms - - {% endif %} - {% endset %} - - {% set text %} -
- Database Queries - {{ collector.querycount }} -
-
- Different statements - {{ collector.groupedQueryCount }} -
-
- Query time - {{ '%0.2f'|format(collector.time * 1000) }} ms -
-
- Invalid entities - {{ collector.invalidEntityCount }} -
-
- Managed entities - {{ collector.managedEntityCount }} -
- {% if collector.cacheEnabled %} -
- Cache hits - {{ collector.cacheHitsCount }} -
-
- Cache misses - {{ collector.cacheMissesCount }} -
-
- Cache puts - {{ collector.cachePutsCount }} -
- {% else %} -
- Second Level Cache - disabled -
- {% endif %} - {% endset %} - - {{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: status|default('') }) }} - - {% endif %} -{% endblock %} - -{% block menu %} - - {{ include('@Doctrine/Collector/' ~ (profiler_markup_version < 3 ? 'icon' : 'database') ~ '.svg') }} - Doctrine - {% if collector.invalidEntityCount %} - - {{ collector.invalidEntityCount }} - - {% endif %} - -{% endblock %} - -{% block panel %} - {% if 'explain' == page %} - {{ render(controller('Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController::explainAction', { - token: token, - panel: 'db', - connectionName: request.query.get('connection'), - query: request.query.get('query') - })) }} - {% else %} - {{ block('queries') }} - {% endif %} -{% endblock %} - -{% block queries %} - - -

Query Metrics

- -
-
-
- {{ collector.querycount }} - Database Queries -
- -
- {{ collector.groupedQueryCount }} - Different statements -
- -
- {{ '%0.2f'|format(collector.time * 1000) }} ms - Query time -
- -
- {{ collector.invalidEntityCount }} - Invalid entities -
- -
- {{ collector.managedEntityCount }} - Managed entities -
-
- - {% if collector.cacheEnabled %} -
-
- {{ collector.cacheHitsCount }} - Cache hits -
-
- {{ collector.cacheMissesCount }} - Cache misses -
-
- {{ collector.cachePutsCount }} - Cache puts -
-
- {% endif %} -
- -
-
- {% set group_queries = request.query.getBoolean('group') %} -

- {% if group_queries %} - Grouped Statements - {% else %} - Queries - {% endif %} -

- -
- {% if not collector.queries %} -
-

No executed queries.

-
- {% else %} - {% if group_queries %} -

Show all queries

- {% else %} -

Group similar statements

- {% endif %} - - {% for connection, queries in collector.queries %} - {% if collector.connections|length > 1 %} -

{{ connection }} connection

- {% endif %} - - {% if queries is empty %} -
-

No database queries were performed.

-
- {% else %} - {% if group_queries %} - {% set queries = collector.groupedQueries[connection] %} - {% endif %} -
- - - {% if group_queries %} - - - {% else %} - - - {% endif %} - - - - - {% for i, query in queries %} - {% set i = group_queries ? query.index : i %} - - {% if group_queries %} - - - {% else %} - - - {% endif %} - - - {% endfor %} - -
TimeCount#TimeInfo
- - {{ '%0.2f'|format(query.executionMS * 1000) }} ms
({{ '%0.2f'|format(query.executionPercent) }}%)
-
{{ query.count }}{{ loop.index }}{{ '%0.2f'|format(query.executionMS * 1000) }} ms - {{ query.sql|doctrine_prettify_sql }} - -
- Parameters: {{ profiler_dump(query.params, 2) }} -
- -
- View formatted query - - {% if query.runnable %} -    - View runnable query - {% endif %} - - {% if query.explainable %} -    - Explain query - {% endif %} - - {% if query.backtrace is defined %} -    - View query backtrace - {% endif %} -
- - - - {% if query.runnable %} - - {% endif %} - - {% if query.explainable %} -
- {% endif %} - - {% if query.backtrace is defined %} - - {% endif %} -
- {% endif %} - {% endfor %} - {% endif %} - - - -
-

Database Connections

-
- {% if not collector.connections %} -
-

There are no configured database connections.

-
- {% else %} - {{ helper.render_simple_table('Name', 'Service', collector.connections) }} - {% endif %} -
-
- -
-

Entity Managers

-
- - {% if not collector.managers %} -
-

There are no configured entity managers.

-
- {% else %} - {{ helper.render_simple_table('Name', 'Service', collector.managers) }} - {% endif %} -
-
- -
-

Second Level Cache

-
- - {% if not collector.cacheEnabled %} -
-

Second Level Cache is not enabled.

-
- {% else %} - {% if not collector.cacheCounts %} -
-

Second level cache information is not available.

-
- {% else %} -
-
- {{ collector.cacheCounts.hits }} - Hits -
- -
- {{ collector.cacheCounts.misses }} - Misses -
- -
- {{ collector.cacheCounts.puts }} - Puts -
-
- - {% if collector.cacheRegions.hits %} -

Number of cache hits

- {{ helper.render_simple_table('Region', 'Hits', collector.cacheRegions.hits) }} - {% endif %} - - {% if collector.cacheRegions.misses %} -

Number of cache misses

- {{ helper.render_simple_table('Region', 'Misses', collector.cacheRegions.misses) }} - {% endif %} - - {% if collector.cacheRegions.puts %} -

Number of cache puts

- {{ helper.render_simple_table('Region', 'Puts', collector.cacheRegions.puts) }} - {% endif %} - {% endif %} - {% endif %} -
-
- -
-

Managed Entities

-
- {% if not collector.managedEntityCountByClass %} -
-

No managed entities.

-
- {% else %} - {% for manager, entityCounts in collector.managedEntityCountByClass %} -

{{ manager }} entity manager

- {{ helper.render_simple_table('Class', 'Amount of managed objects', entityCounts) }} - {% endfor %} - {% endif %} -
-
- -
-

Entities Mapping

-
- - {% if not collector.entities %} -
-

No mapped entities.

-
- {% else %} - {% for manager, classes in collector.entities %} - {% if collector.managers|length > 1 %} -

{{ manager }} entity manager

- {% endif %} - - {% if classes is empty %} -
-

No loaded entities.

-
- {% else %} - - - - - - - - - {% for class in classes %} - {% set contains_errors = collector.mappingErrors[manager] is defined and collector.mappingErrors[manager][class.class] is defined %} - - - - - {% endfor %} - -
ClassMapping errors
- {{ class. class}} - - {% if contains_errors %} -
    - {% for error in collector.mappingErrors[manager][class.class] %} -
  • {{ error }}
  • - {% endfor %} -
- {% else %} - No errors. - {% endif %} -
- {% endif %} - {% endfor %} - {% endif %} -
-
- - - -{% endblock %} - -{% macro render_simple_table(label1, label2, data) %} - - - - - - - - - {% for key, value in data %} - - - - - {% endfor %} - -
{{ label1 }}{{ label2 }}
{{ key }}{{ value }}
-{% endmacro %} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/explain.html.twig b/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/explain.html.twig deleted file mode 100644 index 3b2dd7f..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/explain.html.twig +++ /dev/null @@ -1,28 +0,0 @@ -{% if data[0]|length > 1 %} - {# The platform returns a table for the explanation (e.g. MySQL), display all columns #} - - - - {% for label in data[0]|keys %} - - {% endfor %} - - - - {% for row in data %} - - {% for key, item in row %} - - {% endfor %} - - {% endfor %} - -
{{ label }}
{{ item|replace({',': ', '}) }}
-{% else %} - {# The Platform returns a single column for a textual explanation (e.g. PostgreSQL), display all lines #} -
-        {%- for row in data -%}
-            {{ row|first }}{{ "\n" }}
-        {%- endfor -%}
-    
-{% endif %} diff --git a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/icon.svg b/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/icon.svg deleted file mode 100644 index 93998db..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-bundle/templates/Collector/icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/.symfony.bundle.yaml b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/.symfony.bundle.yaml deleted file mode 100644 index 72b9c53..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/.symfony.bundle.yaml +++ /dev/null @@ -1,4 +0,0 @@ -branches: ["3.0.x", "3.1.x", "3.2.x", "3.3.x", "3.4.x", "4.0.x"] -maintained_branches: ["3.4.x", "4.0.x"] -doc_dir: "docs/" -dev_branch: "3.4.x" diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/LICENSE b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/LICENSE deleted file mode 100644 index aa7a99a..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/README.markdown b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/README.markdown deleted file mode 100644 index bd0817a..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/README.markdown +++ /dev/null @@ -1,9 +0,0 @@ -DoctrineMigrationsBundle -======================== - -This bundle integrates the [Doctrine Migrations library](http://www.doctrine-project.org/projects/migrations.html) -into Symfony applications. Database migrations help you version the changes in -your database schema and apply them in a predictable way on every server running -the application. - -[Read the documentation of this bundle](https://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html). diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/UPGRADE.md b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/UPGRADE.md deleted file mode 100644 index 84ffed0..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/UPGRADE.md +++ /dev/null @@ -1,86 +0,0 @@ -# Upgrade - -## From 2.x to 3.0.0 - -- The configuration for the migration namespace and directory changed as follows: - -Before - -```yaml -doctrine_migrations: - dir_name: '%kernel.project_dir%/src/Migrations' - namespace: DoctrineMigrations -``` - -After - -```yaml -doctrine_migrations: - migrations_paths: - 'DoctrineMigrations': '%kernel.project_dir%/src/Migrations' -``` - -- The configuration for the metadata table definition changed as follows: - -Before - -```yaml -doctrine_migrations: - table_name: 'migration_versions' - column_name: 'version' - column_length: 14 - executed_at_column_name: 'executed_at' -``` - -After - -```yaml -doctrine_migrations: - storage: - table_storage: - table_name: 'migration_versions' - version_column_name: 'version' - version_column_length: 191 - executed_at_column_name: 'executed_at' -``` -If your project did not originally specify its own table definition configuration, you will need to configure the table name after the upgrade: - -```yaml -doctrine_migrations: - storage: - table_storage: - table_name: 'migration_versions' -``` -and then run the `doctrine:migrations:sync-metadata-storage` command. -- The migration name has been dropped: - -Before - -```yaml -doctrine_migrations: - name: 'Application Migrations' -``` - -After - -The parameter `name` has been dropped. - - -- The default for `table_name` changed from `migration_versions` to `doctrine_migration_versions`. If you did not -specify the `table_name` option, you now need to declare it explicitly to not lose migration data. - -```yaml -doctrine_migrations: - storage: - table_storage: - table_name: 'migration_versions' -``` - -### Underlying doctrine/migrations library - -Upgrading this bundle to `3.0` will also update the `doctrine/migrations` library to the version `3.0`. -Backward incompatible changes in `doctrine/migrations` 3.0 -are documented in the dedicated [UPGRADE](https://github.com/doctrine/migrations/blob/3.0.x/UPGRADE.md) document. - -- The container is not automatically injected anymore when a migration implements `ContainerAwareInterface`. Custom -migration factories should be used to inject additional dependencies into migrations. diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/composer.json b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/composer.json deleted file mode 100644 index 11786bd..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/composer.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "doctrine/doctrine-migrations-bundle", - "description": "Symfony DoctrineMigrationsBundle", - "license": "MIT", - "type": "symfony-bundle", - "keywords": [ - "DBAL", - "Migrations", - "Schema" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Doctrine Project", - "homepage": "https://www.doctrine-project.org" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "homepage": "https://www.doctrine-project.org", - "require": { - "php": "^7.2 || ^8.0", - "doctrine/doctrine-bundle": "^2.4", - "doctrine/migrations": "^3.2", - "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "composer/semver": "^3.0", - "doctrine/coding-standard": "^12", - "doctrine/orm": "^2.6 || ^3", - "phpstan/phpstan": "^1.4 || ^2", - "phpstan/phpstan-deprecation-rules": "^1 || ^2", - "phpstan/phpstan-phpunit": "^1 || ^2", - "phpstan/phpstan-strict-rules": "^1.1 || ^2", - "phpstan/phpstan-symfony": "^1.3 || ^2", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/phpunit-bridge": "^6.3 || ^7", - "symfony/var-exporter": "^5.4 || ^6 || ^7" - }, - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\MigrationsBundle\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Bundle\\MigrationsBundle\\Tests\\": "tests" - } - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/schema/doctrine_migrations-3.0.xsd b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/schema/doctrine_migrations-3.0.xsd deleted file mode 100644 index 0c5990c..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/schema/doctrine_migrations-3.0.xsd +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/services.xml b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/services.xml deleted file mode 100644 index 53ded47..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/config/services.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - doctrine:migrations:diff - - - - - - - - doctrine:migrations:sync-metadata-storage - - - - - - - - doctrine:migrations:versions - - - - - - - - doctrine:migrations:current - - - - - - - - doctrine:migrations:dump-schema - - - - - - - doctrine:migrations:execute - - - - - - - doctrine:migrations:generate - - - - - - - doctrine:migrations:latest - - - - - - - doctrine:migrations:migrate - - - - - - - doctrine:migrations:rollup - - - - - - - doctrine:migrations:status - - - - - - - doctrine:migrations:up-to-date - - - - - - - doctrine:migrations:version - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsCollector.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsCollector.php deleted file mode 100644 index 941df69..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsCollector.php +++ /dev/null @@ -1,95 +0,0 @@ -dependencyFactory = $dependencyFactory; - $this->flattener = $migrationsFlattener; - } - - /** @return void */ - public function collect(Request $request, Response $response, ?Throwable $exception = null) - { - if ($this->data !== []) { - return; - } - - $metadataStorage = $this->dependencyFactory->getMetadataStorage(); - $planCalculator = $this->dependencyFactory->getMigrationPlanCalculator(); - - try { - $executedMigrations = $metadataStorage->getExecutedMigrations(); - } catch (Exception $dbalException) { - $this->dependencyFactory->getLogger()->error( - 'error while trying to collect executed migrations', - ['exception' => $dbalException] - ); - - return; - } - - $availableMigrations = $planCalculator->getMigrations(); - - $this->data['available_migrations_count'] = count($availableMigrations); - $unavailableMigrations = $executedMigrations->unavailableSubset($availableMigrations); - $this->data['unavailable_migrations_count'] = count($unavailableMigrations); - - $newMigrations = $availableMigrations->newSubset($executedMigrations); - $this->data['new_migrations'] = $this->flattener->flattenAvailableMigrations($newMigrations); - $this->data['executed_migrations'] = $this->flattener->flattenExecutedMigrations($executedMigrations, $availableMigrations); - - $this->data['storage'] = get_class($metadataStorage); - $configuration = $this->dependencyFactory->getConfiguration(); - $storage = $configuration->getMetadataStorageConfiguration(); - if ($storage instanceof TableMetadataStorageConfiguration) { - $this->data['table'] = $storage->getTableName(); - $this->data['column'] = $storage->getVersionColumnName(); - } - - $connection = $this->dependencyFactory->getConnection(); - $this->data['driver'] = get_class($connection->getDriver()); - $this->data['name'] = $connection->getDatabase(); - - $this->data['namespaces'] = $configuration->getMigrationDirectories(); - } - - /** @return string */ - public function getName() - { - return 'doctrine_migrations'; - } - - /** @return array|Data */ - public function getData() - { - return $this->data; - } - - /** @return void */ - public function reset() - { - $this->data = []; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsFlattener.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsFlattener.php deleted file mode 100644 index f9310c9..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/Collector/MigrationsFlattener.php +++ /dev/null @@ -1,73 +0,0 @@ - (string) $migration->getVersion(), - 'is_new' => true, - 'is_unavailable' => false, - 'description' => $migration->getMigration()->getDescription(), - 'executed_at' => null, - 'execution_time' => null, - 'file' => (new ReflectionClass($migration->getMigration()))->getFileName(), - ]; - }, $migrationsList->getItems()); - } - - /** - * @return array{ - * version: string, - * is_new: false, - * is_unavailable: bool, - * description: string|null, - * executed_at: DateTimeImmutable|null, - * execution_time: float|null, - * file: string|false|null, - * }[] - */ - public function flattenExecutedMigrations(ExecutedMigrationsList $migrationsList, AvailableMigrationsList $availableMigrations): array - { - return array_map(static function (ExecutedMigration $migration) use ($availableMigrations) { - $availableMigration = $availableMigrations->hasMigration($migration->getVersion()) - ? $availableMigrations->getMigration($migration->getVersion())->getMigration() - : null; - - return [ - 'version' => (string) $migration->getVersion(), - 'is_new' => false, - 'is_unavailable' => $availableMigration === null, - 'description' => $availableMigration !== null ? $availableMigration->getDescription() : null, - 'executed_at' => $migration->getExecutedAt(), - 'execution_time' => $migration->getExecutionTime(), - 'file' => $availableMigration !== null ? (new ReflectionClass($availableMigration))->getFileName() : null, - ]; - }, $migrationsList->getItems()); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/CompilerPass/ConfigureDependencyFactoryPass.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/CompilerPass/ConfigureDependencyFactoryPass.php deleted file mode 100644 index 5dcdc6b..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/CompilerPass/ConfigureDependencyFactoryPass.php +++ /dev/null @@ -1,115 +0,0 @@ -has('doctrine')) { - throw new RuntimeException('DoctrineMigrationsBundle requires DoctrineBundle to be enabled.'); - } - - $diDefinition = $container->getDefinition('doctrine.migrations.dependency_factory'); - - $preferredConnection = $container->getParameter('doctrine.migrations.preferred_connection'); - assert(is_string($preferredConnection) || $preferredConnection === null); - // explicitly use configured connection - if ($preferredConnection !== null) { - $this->validatePreferredConnection($container, $preferredConnection); - - $loaderDefinition = $container->getDefinition('doctrine.migrations.connection_registry_loader'); - $loaderDefinition->setArgument(1, $preferredConnection); - - $diDefinition->setFactory([DependencyFactory::class, 'fromConnection']); - $diDefinition->setArgument(1, new Reference('doctrine.migrations.connection_registry_loader')); - - return; - } - - $preferredEm = $container->getParameter('doctrine.migrations.preferred_em'); - assert(is_string($preferredEm) || $preferredEm === null); - // explicitly use configured entity manager - if ($preferredEm !== null) { - $this->validatePreferredEm($container, $preferredEm); - - $loaderDefinition = $container->getDefinition('doctrine.migrations.entity_manager_registry_loader'); - $loaderDefinition->setArgument(1, $preferredEm); - - $diDefinition->setFactory([DependencyFactory::class, 'fromEntityManager']); - $diDefinition->setArgument(1, new Reference('doctrine.migrations.entity_manager_registry_loader')); - - return; - } - - // try to use any/default entity manager - if ( - $container->hasParameter('doctrine.entity_managers') - && is_array($container->getParameter('doctrine.entity_managers')) - && count($container->getParameter('doctrine.entity_managers')) > 0 - ) { - $diDefinition->setFactory([DependencyFactory::class, 'fromEntityManager']); - $diDefinition->setArgument(1, new Reference('doctrine.migrations.entity_manager_registry_loader')); - - return; - } - - // fallback on any/default connection - $diDefinition->setFactory([DependencyFactory::class, 'fromConnection']); - $diDefinition->setArgument(1, new Reference('doctrine.migrations.connection_registry_loader')); - } - - private function validatePreferredConnection(ContainerBuilder $container, string $preferredConnection): void - { - /** @var array $allowedConnections */ - $allowedConnections = $container->getParameter('doctrine.connections'); - if (! isset($allowedConnections[$preferredConnection])) { - throw new InvalidArgumentException(sprintf( - 'The "%s" connection is not defined. Did you mean one of the following: %s', - $preferredConnection, - implode(', ', array_keys($allowedConnections)) - )); - } - } - - private function validatePreferredEm(ContainerBuilder $container, string $preferredEm): void - { - if ( - ! $container->hasParameter('doctrine.entity_managers') - || ! is_array($container->getParameter('doctrine.entity_managers')) - || count($container->getParameter('doctrine.entity_managers')) === 0 - ) { - throw new InvalidArgumentException(sprintf( - 'The "%s" entity manager is not defined. It seems that you do not have configured any entity manager in the DoctrineBundle.', - $preferredEm - )); - } - - /** @var array $allowedEms */ - $allowedEms = $container->getParameter('doctrine.entity_managers'); - if (! isset($allowedEms[$preferredEm])) { - throw new InvalidArgumentException(sprintf( - 'The "%s" entity manager is not defined. Did you mean one of the following: %s', - $preferredEm, - implode(', ', array_keys($allowedEms)) - )); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/Configuration.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/Configuration.php deleted file mode 100644 index dd0c61b..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/Configuration.php +++ /dev/null @@ -1,172 +0,0 @@ -getRootNode(); - - $organizeMigrationModes = $this->getOrganizeMigrationsModes(); - - $rootNode - ->fixXmlConfig('migration', 'migrations') - ->fixXmlConfig('migrations_path', 'migrations_paths') - ->children() - ->arrayNode('migrations_paths') - ->info('A list of namespace/path pairs where to look for migrations.') - ->defaultValue([]) - ->useAttributeAsKey('namespace') - ->prototype('scalar')->end() - ->end() - - ->arrayNode('services') - ->info('A set of services to pass to the underlying doctrine/migrations library, allowing to change its behaviour.') - ->useAttributeAsKey('service') - ->defaultValue([]) - ->validate() - ->ifTrue(static function (array $v): bool { - return count(array_filter(array_keys($v), static function (string $doctrineService): bool { - return strpos($doctrineService, 'Doctrine\Migrations\\') !== 0; - })) !== 0; - }) - ->thenInvalid('Valid services for the DoctrineMigrationsBundle must be in the "Doctrine\Migrations" namespace.') - ->end() - ->prototype('scalar')->end() - ->end() - - ->arrayNode('factories') - ->info('A set of callables to pass to the underlying doctrine/migrations library as services, allowing to change its behaviour.') - ->useAttributeAsKey('factory') - ->defaultValue([]) - ->validate() - ->ifTrue(static function (array $v): bool { - return count(array_filter(array_keys($v), static function (string $doctrineService): bool { - return strpos($doctrineService, 'Doctrine\Migrations\\') !== 0; - })) !== 0; - }) - ->thenInvalid('Valid callables for the DoctrineMigrationsBundle must be in the "Doctrine\Migrations" namespace.') - ->end() - ->prototype('scalar')->end() - ->end() - - ->arrayNode('storage') - ->addDefaultsIfNotSet() - ->info('Storage to use for migration status metadata.') - ->children() - ->arrayNode('table_storage') - ->addDefaultsIfNotSet() - ->info('The default metadata storage, implemented as a table in the database.') - ->children() - ->scalarNode('table_name')->defaultValue(null)->cannotBeEmpty()->end() - ->scalarNode('version_column_name')->defaultValue(null)->end() - ->scalarNode('version_column_length')->defaultValue(null)->end() - ->scalarNode('executed_at_column_name')->defaultValue(null)->end() - ->scalarNode('execution_time_column_name')->defaultValue(null)->end() - ->end() - ->end() - ->end() - ->end() - - ->arrayNode('migrations') - ->info('A list of migrations to load in addition to the one discovered via "migrations_paths".') - ->prototype('scalar')->end() - ->defaultValue([]) - ->end() - ->scalarNode('connection') - ->info('Connection name to use for the migrations database.') - ->defaultValue(null) - ->end() - ->scalarNode('em') - ->info('Entity manager name to use for the migrations database (available when doctrine/orm is installed).') - ->defaultValue(null) - ->end() - ->scalarNode('all_or_nothing') - ->info('Run all migrations in a transaction.') - ->defaultValue(false) - ->end() - ->scalarNode('check_database_platform') - ->info('Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on.') - ->defaultValue(true) - ->end() - ->scalarNode('custom_template') - ->info('Custom template path for generated migration classes.') - ->defaultValue(null) - ->end() - ->scalarNode('organize_migrations') - ->defaultValue(false) - ->info('Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false') - ->validate() - ->ifTrue(static function ($v) use ($organizeMigrationModes): bool { - if ($v === false) { - return false; - } - - return ! is_string($v) || ! in_array(strtoupper($v), $organizeMigrationModes, true); - }) - ->thenInvalid('Invalid organize migrations mode value %s') - ->end() - ->validate() - ->ifString() - ->then(static function ($v) { - return constant('Doctrine\Migrations\Configuration\Configuration::VERSIONS_ORGANIZATION_' . strtoupper($v)); - }) - ->end() - ->end() - ->booleanNode('enable_profiler') - ->info('Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead.') - ->defaultFalse() - ->end() - ->booleanNode('transactional') - ->info('Whether or not to wrap migrations in a single transaction.') - ->defaultTrue() - ->end() - ->end(); - - return $treeBuilder; - } - - /** - * Find organize migrations modes for their names - * - * @return string[] - */ - private function getOrganizeMigrationsModes(): array - { - $constPrefix = 'VERSIONS_ORGANIZATION_'; - $prefixLen = strlen($constPrefix); - $refClass = new ReflectionClass('Doctrine\Migrations\Configuration\Configuration'); - $constsArray = array_keys($refClass->getConstants()); - $namesArray = []; - - foreach ($constsArray as $constant) { - if (strpos($constant, $constPrefix) !== 0) { - continue; - } - - $namesArray[] = substr($constant, $prefixLen); - } - - return $namesArray; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/DoctrineMigrationsExtension.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/DoctrineMigrationsExtension.php deleted file mode 100644 index 85a85a7..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DependencyInjection/DoctrineMigrationsExtension.php +++ /dev/null @@ -1,211 +0,0 @@ -processConfiguration($configuration, $configs); - - $locator = new FileLocator(__DIR__ . '/../../config/'); - $loader = new XmlFileLoader($container, $locator); - - $loader->load('services.xml'); - - $configurationDefinition = $container->getDefinition('doctrine.migrations.configuration'); - - foreach ($config['migrations_paths'] as $ns => $path) { - $path = $this->checkIfBundleRelativePath($path, $container); - $configurationDefinition->addMethodCall('addMigrationsDirectory', [$ns, $path]); - } - - foreach ($config['migrations'] as $migrationClass) { - $configurationDefinition->addMethodCall('addMigrationClass', [$migrationClass]); - } - - if ($config['organize_migrations'] !== false) { - $configurationDefinition->addMethodCall('setMigrationOrganization', [$config['organize_migrations']]); - } - - if ($config['custom_template'] !== null) { - $configurationDefinition->addMethodCall('setCustomTemplate', [$config['custom_template']]); - } - - $configurationDefinition->addMethodCall('setAllOrNothing', [$config['all_or_nothing']]); - $configurationDefinition->addMethodCall('setCheckDatabasePlatform', [$config['check_database_platform']]); - - if ($config['enable_profiler']) { - $this->registerCollector($container); - } - - $configurationDefinition->addMethodCall('setTransactional', [$config['transactional']]); - - $diDefinition = $container->getDefinition('doctrine.migrations.dependency_factory'); - - if (! isset($config['services'][MigrationFactory::class])) { - $config['services'][MigrationFactory::class] = 'doctrine.migrations.migrations_factory'; - } - - foreach ($config['services'] as $doctrineId => $symfonyId) { - $diDefinition->addMethodCall('setDefinition', [$doctrineId, new ServiceClosureArgument(new Reference($symfonyId))]); - } - - foreach ($config['factories'] as $doctrineId => $symfonyId) { - $diDefinition->addMethodCall('setDefinition', [$doctrineId, new Reference($symfonyId)]); - } - - if (isset($config['services'][MetadataStorage::class])) { - $container->removeDefinition('doctrine_migrations.schema_filter_listener'); - } else { - $filterDefinition = $container->getDefinition('doctrine_migrations.schema_filter_listener'); - $storageConfiguration = $config['storage']['table_storage']; - - $storageDefinition = new Definition(TableMetadataStorageConfiguration::class); - $container->setDefinition('doctrine.migrations.storage.table_storage', $storageDefinition); - $container->setAlias('doctrine.migrations.metadata_storage', 'doctrine.migrations.storage.table_storage'); - - if ($storageConfiguration['table_name'] === null) { - $filterDefinition->addArgument('doctrine_migration_versions'); - } else { - $storageDefinition->addMethodCall('setTableName', [$storageConfiguration['table_name']]); - $filterDefinition->addArgument($storageConfiguration['table_name']); - } - - if ($storageConfiguration['version_column_name'] !== null) { - $storageDefinition->addMethodCall('setVersionColumnName', [$storageConfiguration['version_column_name']]); - } - - if ($storageConfiguration['version_column_length'] !== null) { - $storageDefinition->addMethodCall('setVersionColumnLength', [$storageConfiguration['version_column_length']]); - } - - if ($storageConfiguration['executed_at_column_name'] !== null) { - $storageDefinition->addMethodCall('setExecutedAtColumnName', [$storageConfiguration['executed_at_column_name']]); - } - - if ($storageConfiguration['execution_time_column_name'] !== null) { - $storageDefinition->addMethodCall('setExecutionTimeColumnName', [$storageConfiguration['execution_time_column_name']]); - } - - $configurationDefinition->addMethodCall('setMetadataStorageConfiguration', [new Reference('doctrine.migrations.storage.table_storage')]); - - // Add tag to the filter for each Doctrine connection, so the table is ignored for multiple connections - if ($container->hasParameter('doctrine.connections')) { - /** @var array $connections */ - $connections = $container->getParameter('doctrine.connections'); - foreach (array_keys($connections) as $connection) { - $filterDefinition->addTag('doctrine.dbal.schema_filter', ['connection' => $connection]); - } - } - } - - if ($config['em'] !== null && $config['connection'] !== null) { - throw new InvalidArgumentException( - 'You cannot specify both "connection" and "em" in the DoctrineMigrationsBundle configurations.' - ); - } - - $container->setParameter('doctrine.migrations.preferred_em', $config['em']); - $container->setParameter('doctrine.migrations.preferred_connection', $config['connection']); - - if (interface_exists(ContainerAwareInterface::class)) { - return; - } - - $container->removeDefinition('doctrine.migrations.container_aware_migrations_factory'); - } - - private function checkIfBundleRelativePath(string $path, ContainerBuilder $container): string - { - if (isset($path[0]) && $path[0] === '@') { - $pathParts = explode('/', $path); - $bundleName = substr($pathParts[0], 1); - - $bundlePath = $this->getBundlePath($bundleName, $container); - - return $bundlePath . substr($path, strlen('@' . $bundleName)); - } - - return $path; - } - - private function getBundlePath(string $bundleName, ContainerBuilder $container): string - { - $bundleMetadata = $container->getParameter('kernel.bundles_metadata'); - assert(is_array($bundleMetadata)); - - if (! isset($bundleMetadata[$bundleName])) { - throw new RuntimeException(sprintf( - 'The bundle "%s" has not been registered, available bundles: %s', - $bundleName, - implode(', ', array_keys($bundleMetadata)) - )); - } - - return $bundleMetadata[$bundleName]['path']; - } - - private function registerCollector(ContainerBuilder $container): void - { - $flattenerDefinition = new Definition(MigrationsFlattener::class); - $container->setDefinition('doctrine_migrations.migrations_flattener', $flattenerDefinition); - - $collectorDefinition = new Definition(MigrationsCollector::class, [ - new Reference('doctrine.migrations.dependency_factory'), - new Reference('doctrine_migrations.migrations_flattener'), - ]); - $collectorDefinition - ->addTag('data_collector', [ - 'template' => '@DoctrineMigrations/Collector/migrations.html.twig', - 'id' => 'doctrine_migrations', - 'priority' => '249', - ]); - $container->setDefinition('doctrine_migrations.migrations_collector', $collectorDefinition); - } - - public function getXsdValidationBasePath(): string - { - return __DIR__ . '/../../config/schema'; - } - - public function getNamespace(): string - { - return 'http://symfony.com/schema/dic/doctrine/migrations/3.0'; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DoctrineMigrationsBundle.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DoctrineMigrationsBundle.php deleted file mode 100644 index 6b3f22f..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/DoctrineMigrationsBundle.php +++ /dev/null @@ -1,25 +0,0 @@ -addCompilerPass(new ConfigureDependencyFactoryPass()); - } - - public function getPath(): string - { - return dirname(__DIR__); - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/EventListener/SchemaFilterListener.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/EventListener/SchemaFilterListener.php deleted file mode 100644 index bba1622..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/EventListener/SchemaFilterListener.php +++ /dev/null @@ -1,54 +0,0 @@ -configurationTableName = $configurationTableName; - } - - /** @var bool */ - private $enabled = false; - - /** @param AbstractAsset|string $asset */ - public function __invoke($asset): bool - { - if (! $this->enabled) { - return true; - } - - if ($asset instanceof AbstractAsset) { - $asset = $asset->getName(); - } - - return $asset !== $this->configurationTableName; - } - - public function onConsoleCommand(ConsoleCommandEvent $event): void - { - $command = $event->getCommand(); - - if (! $command instanceof ValidateSchemaCommand && ! $command instanceof UpdateCommand) { - return; - } - - $this->enabled = true; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/MigrationsFactory/ContainerAwareMigrationFactory.php b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/MigrationsFactory/ContainerAwareMigrationFactory.php deleted file mode 100644 index 9513111..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/src/MigrationsFactory/ContainerAwareMigrationFactory.php +++ /dev/null @@ -1,41 +0,0 @@ -= 7 */ -class ContainerAwareMigrationFactory implements MigrationFactory -{ - /** @var ContainerInterface */ - private $container; - - /** @var MigrationFactory */ - private $migrationFactory; - - public function __construct(MigrationFactory $migrationFactory, ContainerInterface $container) - { - $this->container = $container; - $this->migrationFactory = $migrationFactory; - } - - public function createVersion(string $migrationClassName): AbstractMigration - { - $migration = $this->migrationFactory->createVersion($migrationClassName); - - if ($migration instanceof ContainerAwareInterface) { - trigger_deprecation('doctrine/doctrine-migrations-bundle', '3.3', 'Migration "%s" implements "%s" to gain access to the application\'s service container. This method is deprecated and won\'t work with Symfony 7.', $migrationClassName, ContainerAwareInterface::class); - - $migration->setContainer($this->container); - } - - return $migration; - } -} diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon-v3.svg b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon-v3.svg deleted file mode 100644 index 0897e4b..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon-v3.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon.svg b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon.svg deleted file mode 100644 index c291807..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/icon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/migrations.html.twig b/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/migrations.html.twig deleted file mode 100644 index a61934e..0000000 --- a/projects/priceservice/vendor/doctrine/doctrine-migrations-bundle/templates/Collector/migrations.html.twig +++ /dev/null @@ -1,252 +0,0 @@ -{% extends '@WebProfiler/Profiler/layout.html.twig' %} - -{% block toolbar %} - {% if collector.data.unavailable_migrations_count is defined %} - {% set unavailable_migrations = collector.data.unavailable_migrations_count %} - {% set new_migrations = collector.data.new_migrations|length %} - {% if unavailable_migrations > 0 or new_migrations > 0 %} - {% set executed_migrations = collector.data.executed_migrations|length %} - {% set available_migrations = collector.data.available_migrations_count %} - {% set status_color = unavailable_migrations > 0 ? 'yellow' : '' %} - {% set status_color = new_migrations > 0 ? 'red' : status_color %} - - {% set icon %} - {% if profiler_markup_version < 3 %} - {{ include('@DoctrineMigrations/Collector/icon.svg') }} - {% else %} - {{ include('@DoctrineMigrations/Collector/icon-v3.svg') }} - {% endif %} - - {{ new_migrations + unavailable_migrations }} - {% endset %} - - {% set text %} -
-
- Current Migration - {{ executed_migrations > 0 ? collector.data.executed_migrations|last.version|split('\\')|last : 'n/a' }} -
-
- -
-
- - Database Migrations - -
-
- Executed - {{ executed_migrations }} -
-
- Unavailable - {{ unavailable_migrations }} -
-
- Available - {{ available_migrations }} -
-
- New - {{ new_migrations }} -
-
- {% endset %} - - {{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: status_color }) }} - {% endif %} - {% endif %} -{% endblock %} - -{% block menu %} - {% if collector.data.unavailable_migrations_count is defined %} - {% set unavailable_migrations = collector.data.unavailable_migrations_count %} - {% set new_migrations = collector.data.new_migrations|length %} - {% set label = unavailable_migrations > 0 ? 'label-status-warning' : '' %} - {% set label = new_migrations > 0 ? 'label-status-error' : label %} - - - {% if profiler_markup_version < 3 %} - {{ include('@DoctrineMigrations/Collector/icon.svg') }} - {% else %} - {{ include('@DoctrineMigrations/Collector/icon-v3.svg') }} - {% endif %} - - - Migrations - {% if unavailable_migrations > 0 or new_migrations > 0 %} - - {{ new_migrations + unavailable_migrations }} - - {% endif %} - - {% endif %} -{% endblock %} - -{% block panel %} - {% set num_executed_migrations = collector.data.executed_migrations|length %} - {% set num_unavailable_migrations = collector.data.unavailable_migrations_count %} - {% set num_available_migrations = collector.data.available_migrations_count %} - {% set num_new_migrations = collector.data.new_migrations|length %} - -

Doctrine Migrations

-
-
- {{ num_executed_migrations }} - Executed -
- - {% if profiler_markup_version >= 3 %} -
- {% endif %} - -
- {{ num_unavailable_migrations }} - Unavailable -
-
- {{ num_available_migrations }} - Available -
-
- {{ num_new_migrations }} - New -
- - {% if profiler_markup_version >= 3 %} -
{# closes the
#} - {% endif %} -
- -
-
-

- Migrations - - {{ num_new_migrations > 0 ? num_new_migrations : num_unavailable_migrations > 0 ? num_unavailable_migrations : num_executed_migrations }} - -

- -
- {{ _self.render_migration_details(collector, profiler_markup_version) }} -
-
- -
-

Configuration

- -
- {{ _self.render_configuration_details(collector, profiler_markup_version) }} -
-
-
-{% endblock %} - -{% macro render_migration_details(collector) %} - - - - - - - - - - - {% for migration in collector.data.new_migrations %} - {{ _self.render_migration(migration) }} - {% endfor %} - - {% for migration in collector.data.executed_migrations|reverse %} - {{ _self.render_migration(migration) }} - {% endfor %} -
VersionDescriptionStatusExecuted atExecution time
-{% endmacro %} - -{% macro render_configuration_details(collector) %} - - - - - - - - - - - {% if collector.data.table is defined %} - - - - - {% endif %} - {% if collector.data.column is defined %} - - - - - {% endif %} -
Storage
Type{{ collector.data.storage }}
Table Name{{ collector.data.table }}
Column Name{{ collector.data.column }}
- - - - - - - - - - - - - - - -
Database
Driver{{ collector.data.driver }}
Name{{ collector.data.name }}
- - - - - - - - {% for namespace, directory in collector.data.namespaces %} - - - - - {% endfor %} -
Migration Namespaces
{{ namespace }}{{ directory }}
-{% endmacro %} - -{% macro render_migration(migration, profiler_markup_version) %} - - - {% if migration.file %} - {{ migration.version }} - {% else %} - {{ migration.version }} - {% endif %} - - {{ migration.description }} - - {% if migration.is_new %} - NOT EXECUTED - {% elseif migration.is_unavailable %} - UNAVAILABLE - {% else %} - EXECUTED - {% endif %} - - {{ migration.executed_at ? migration.executed_at|date('M j, Y H:i') : 'n/a' }} - - {% if migration.execution_time is null %} - n/a - {% elseif migration.execution_time < 1 %} - {{ (migration.execution_time * 1000)|number_format(0) }} ms - {% else %} - {{ migration.execution_time|number_format(2) }} seconds - {% endif %} - - -{% endmacro %} diff --git a/projects/priceservice/vendor/doctrine/event-manager/LICENSE b/projects/priceservice/vendor/doctrine/event-manager/LICENSE deleted file mode 100644 index 8c38cc1..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2015 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/event-manager/README.md b/projects/priceservice/vendor/doctrine/event-manager/README.md deleted file mode 100644 index 5b36f54..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Doctrine Event Manager - -[![Build Status](https://github.com/doctrine/event-manager/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/event-manager/actions) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/event-manager/badges/quality-score.png?b=1.2.x)](https://scrutinizer-ci.com/g/doctrine/event-manager/?branch=1.2.x) -[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/event-manager/badges/coverage.png?b=1.2.x)](https://scrutinizer-ci.com/g/doctrine/event-manager/?branch=1.2.x) - -The Doctrine Event Manager is a library that provides a simple event system. - -## More resources: - -* [Website](https://www.doctrine-project.org/) -* [Documentation](https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/) -* [Downloads](https://github.com/doctrine/event-manager/releases) diff --git a/projects/priceservice/vendor/doctrine/event-manager/UPGRADE.md b/projects/priceservice/vendor/doctrine/event-manager/UPGRADE.md deleted file mode 100644 index 25154ef..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/UPGRADE.md +++ /dev/null @@ -1,15 +0,0 @@ -# Upgrade to 2.0 - -## Made the `$event` parameter of `EventManager::getListeners()` mandatory - -When calling `EventManager::getListeners()` you need to specify the event that -you want to fetch the listeners for. Call `getAllListeners()` instead if you -want to access the listeners of all events. - -# Upgrade to 1.2 - -## Deprecated calling `EventManager::getListeners()` without an event name - -When calling `EventManager::getListeners()` without an event name, all -listeners were returned, keyed by event name. A new method `getAllListeners()` -has been added to provide this functionality. It should be used instead. diff --git a/projects/priceservice/vendor/doctrine/event-manager/composer.json b/projects/priceservice/vendor/doctrine/event-manager/composer.json deleted file mode 100644 index 4ea788b..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/composer.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "doctrine/event-manager", - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "license": "MIT", - "type": "library", - "keywords": [ - "events", - "event", - "event dispatcher", - "event manager", - "event system" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Tests\\Common\\": "tests" - } - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - }, - "sort-packages": true - } -} diff --git a/projects/priceservice/vendor/doctrine/event-manager/psalm-baseline.xml b/projects/priceservice/vendor/doctrine/event-manager/psalm-baseline.xml deleted file mode 100644 index bc48ad8..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/psalm-baseline.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - listeners[$event])]]> - - - diff --git a/projects/priceservice/vendor/doctrine/event-manager/src/EventArgs.php b/projects/priceservice/vendor/doctrine/event-manager/src/EventArgs.php deleted file mode 100644 index eea3d8a..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/src/EventArgs.php +++ /dev/null @@ -1,37 +0,0 @@ - => - * - * @var array - */ - private array $listeners = []; - - /** - * Dispatches an event to all registered listeners. - * - * @param string $eventName The name of the event to dispatch. The name of the event is - * the name of the method that is invoked on listeners. - * @param EventArgs|null $eventArgs The event arguments to pass to the event handlers/listeners. - * If not supplied, the single empty EventArgs instance is used. - */ - public function dispatchEvent(string $eventName, EventArgs|null $eventArgs = null): void - { - if (! isset($this->listeners[$eventName])) { - return; - } - - $eventArgs ??= EventArgs::getEmptyInstance(); - - foreach ($this->listeners[$eventName] as $listener) { - $listener->$eventName($eventArgs); - } - } - - /** - * Gets the listeners of a specific event. - * - * @param string $event The name of the event. - * - * @return object[] - */ - public function getListeners(string $event): array - { - return $this->listeners[$event] ?? []; - } - - /** - * Gets all listeners keyed by event name. - * - * @return array The event listeners for the specified event, or all event listeners. - */ - public function getAllListeners(): array - { - return $this->listeners; - } - - /** - * Checks whether an event has any registered listeners. - */ - public function hasListeners(string $event): bool - { - return ! empty($this->listeners[$event]); - } - - /** - * Adds an event listener that listens on the specified events. - * - * @param string|string[] $events The event(s) to listen on. - * @param object $listener The listener object. - */ - public function addEventListener(string|array $events, object $listener): void - { - // Picks the hash code related to that listener - $hash = spl_object_hash($listener); - - foreach ((array) $events as $event) { - // Overrides listener if a previous one was associated already - // Prevents duplicate listeners on same event (same instance only) - $this->listeners[$event][$hash] = $listener; - } - } - - /** - * Removes an event listener from the specified events. - * - * @param string|string[] $events - */ - public function removeEventListener(string|array $events, object $listener): void - { - // Picks the hash code related to that listener - $hash = spl_object_hash($listener); - - foreach ((array) $events as $event) { - unset($this->listeners[$event][$hash]); - } - } - - /** - * Adds an EventSubscriber. - * - * The subscriber is asked for all the events it is interested in and added - * as a listener for these events. - */ - public function addEventSubscriber(EventSubscriber $subscriber): void - { - $this->addEventListener($subscriber->getSubscribedEvents(), $subscriber); - } - - /** - * Removes an EventSubscriber. - * - * The subscriber is asked for all the events it is interested in and removed - * as a listener for these events. - */ - public function removeEventSubscriber(EventSubscriber $subscriber): void - { - $this->removeEventListener($subscriber->getSubscribedEvents(), $subscriber); - } -} diff --git a/projects/priceservice/vendor/doctrine/event-manager/src/EventSubscriber.php b/projects/priceservice/vendor/doctrine/event-manager/src/EventSubscriber.php deleted file mode 100644 index 89cef55..0000000 --- a/projects/priceservice/vendor/doctrine/event-manager/src/EventSubscriber.php +++ /dev/null @@ -1,21 +0,0 @@ -build(); - -By default it will create an English inflector. If you want to use another language, just pass the language -you want to create an inflector for to the ``createForLanguage()`` method: - -.. code-block:: php - - use Doctrine\Inflector\InflectorFactory; - use Doctrine\Inflector\Language; - - $inflector = InflectorFactory::createForLanguage(Language::SPANISH)->build(); - -The supported languages are as follows: - -- ``Language::ENGLISH`` -- ``Language::FRENCH`` -- ``Language::NORWEGIAN_BOKMAL`` -- ``Language::PORTUGUESE`` -- ``Language::SPANISH`` -- ``Language::TURKISH`` - -If you want to manually construct the inflector instead of using a factory, you can do so like this: - -.. code-block:: php - - use Doctrine\Inflector\CachedWordInflector; - use Doctrine\Inflector\RulesetInflector; - use Doctrine\Inflector\Rules\English; - - $inflector = new Inflector( - new CachedWordInflector(new RulesetInflector( - English\Rules::getSingularRuleset() - )), - new CachedWordInflector(new RulesetInflector( - English\Rules::getPluralRuleset() - )) - ); - -Adding Languages ----------------- - -If you are interested in adding support for your language, take a look at the other languages defined in the -``Doctrine\Inflector\Rules`` namespace and the tests located in ``Doctrine\Tests\Inflector\Rules``. You can copy -one of the languages and update the rules for your language. - -Once you have done this, send a pull request to the ``doctrine/inflector`` repository with the additions. - -Custom Setup -============ - -If you want to setup custom singular and plural rules, you can configure these in the factory: - -.. code-block:: php - - use Doctrine\Inflector\InflectorFactory; - use Doctrine\Inflector\Rules\Pattern; - use Doctrine\Inflector\Rules\Patterns; - use Doctrine\Inflector\Rules\Ruleset; - use Doctrine\Inflector\Rules\Substitution; - use Doctrine\Inflector\Rules\Substitutions; - use Doctrine\Inflector\Rules\Transformation; - use Doctrine\Inflector\Rules\Transformations; - use Doctrine\Inflector\Rules\Word; - - $inflector = InflectorFactory::create() - ->withSingularRules( - new Ruleset( - new Transformations( - new Transformation(new Pattern('/^(bil)er$/i'), '\1'), - new Transformation(new Pattern('/^(inflec|contribu)tors$/i'), '\1ta') - ), - new Patterns(new Pattern('singulars')), - new Substitutions(new Substitution(new Word('spins'), new Word('spinor'))) - ) - ) - ->withPluralRules( - new Ruleset( - new Transformations( - new Transformation(new Pattern('^(bil)er$'), '\1'), - new Transformation(new Pattern('^(inflec|contribu)tors$'), '\1ta') - ), - new Patterns(new Pattern('noflect'), new Pattern('abtuse')), - new Substitutions( - new Substitution(new Word('amaze'), new Word('amazable')), - new Substitution(new Word('phone'), new Word('phonezes')) - ) - ) - ) - ->build(); - -No operation inflector ----------------------- - -The ``Doctrine\Inflector\NoopWordInflector`` may be used to configure an inflector that doesn't perform any operation for -pluralization and/or singularization. If will simply return the input as output. - -This is an implementation of the `Null Object design pattern `_. - -.. code-block:: php - - use Doctrine\Inflector\Inflector; - use Doctrine\Inflector\NoopWordInflector; - - $inflector = new Inflector(new NoopWordInflector(), new NoopWordInflector()); - -Tableize -======== - -Converts ``ModelName`` to ``model_name``: - -.. code-block:: php - - echo $inflector->tableize('ModelName'); // model_name - -Classify -======== - -Converts ``model_name`` to ``ModelName``: - -.. code-block:: php - - echo $inflector->classify('model_name'); // ModelName - -Camelize -======== - -This method uses `Classify`_ and then converts the first character to lowercase: - -.. code-block:: php - - echo $inflector->camelize('model_name'); // modelName - -Capitalize -========== - -Takes a string and capitalizes all of the words, like PHP's built-in -``ucwords`` function. This extends that behavior, however, by allowing the -word delimiters to be configured, rather than only separating on -whitespace. - -Here is an example: - -.. code-block:: php - - $string = 'top-o-the-morning to all_of_you!'; - - echo $inflector->capitalize($string); // Top-O-The-Morning To All_of_you! - - echo $inflector->capitalize($string, '-_ '); // Top-O-The-Morning To All_Of_You! - -Pluralize -========= - -Returns a word in plural form. - -.. code-block:: php - - echo $inflector->pluralize('browser'); // browsers - -Singularize -=========== - -Returns a word in singular form. - -.. code-block:: php - - echo $inflector->singularize('browsers'); // browser - -Urlize -====== - -Generate a URL friendly string from a string of text: - -.. code-block:: php - - echo $inflector->urlize('My first blog post'); // my-first-blog-post - -Unaccent -======== - -You can unaccent a string of text using the ``unaccent()`` method: - -.. code-block:: php - - echo $inflector->unaccent('año'); // ano - -Legacy API -========== - -The API present in Inflector 1.x is still available, but will be deprecated in a future release and dropped for 3.0. -Support for languages other than English is available in the 2.0 API only. - -Acknowledgements -================ - -The language rules in this library have been adapted from several different sources, including but not limited to: - -- `Ruby On Rails Inflector `_ -- `ICanBoogie Inflector `_ -- `CakePHP Inflector `_ diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php deleted file mode 100644 index 2d52908..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php +++ /dev/null @@ -1,24 +0,0 @@ -wordInflector = $wordInflector; - } - - public function inflect(string $word): string - { - return $this->cache[$word] ?? $this->cache[$word] = $this->wordInflector->inflect($word); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php deleted file mode 100644 index 166061d..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php +++ /dev/null @@ -1,66 +0,0 @@ -singularRulesets[] = $this->getSingularRuleset(); - $this->pluralRulesets[] = $this->getPluralRuleset(); - } - - final public function build(): Inflector - { - return new Inflector( - new CachedWordInflector(new RulesetInflector( - ...$this->singularRulesets - )), - new CachedWordInflector(new RulesetInflector( - ...$this->pluralRulesets - )) - ); - } - - final public function withSingularRules(?Ruleset $singularRules, bool $reset = false): LanguageInflectorFactory - { - if ($reset) { - $this->singularRulesets = []; - } - - if ($singularRules instanceof Ruleset) { - array_unshift($this->singularRulesets, $singularRules); - } - - return $this; - } - - final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): LanguageInflectorFactory - { - if ($reset) { - $this->pluralRulesets = []; - } - - if ($pluralRules instanceof Ruleset) { - array_unshift($this->pluralRulesets, $pluralRules); - } - - return $this; - } - - abstract protected function getSingularRuleset(): Ruleset; - - abstract protected function getPluralRuleset(): Ruleset; -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php deleted file mode 100644 index 610a4cf..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php +++ /dev/null @@ -1,507 +0,0 @@ - 'A', - 'Á' => 'A', - 'Â' => 'A', - 'Ã' => 'A', - 'Ä' => 'Ae', - 'Æ' => 'Ae', - 'Å' => 'Aa', - 'æ' => 'a', - 'Ç' => 'C', - 'È' => 'E', - 'É' => 'E', - 'Ê' => 'E', - 'Ë' => 'E', - 'Ì' => 'I', - 'Í' => 'I', - 'Î' => 'I', - 'Ï' => 'I', - 'Ñ' => 'N', - 'Ò' => 'O', - 'Ó' => 'O', - 'Ô' => 'O', - 'Õ' => 'O', - 'Ö' => 'Oe', - 'Ù' => 'U', - 'Ú' => 'U', - 'Û' => 'U', - 'Ü' => 'Ue', - 'Ý' => 'Y', - 'ß' => 'ss', - 'à' => 'a', - 'á' => 'a', - 'â' => 'a', - 'ã' => 'a', - 'ä' => 'ae', - 'å' => 'aa', - 'ç' => 'c', - 'è' => 'e', - 'é' => 'e', - 'ê' => 'e', - 'ë' => 'e', - 'ì' => 'i', - 'í' => 'i', - 'î' => 'i', - 'ï' => 'i', - 'ñ' => 'n', - 'ò' => 'o', - 'ó' => 'o', - 'ô' => 'o', - 'õ' => 'o', - 'ö' => 'oe', - 'ù' => 'u', - 'ú' => 'u', - 'û' => 'u', - 'ü' => 'ue', - 'ý' => 'y', - 'ÿ' => 'y', - 'Ā' => 'A', - 'ā' => 'a', - 'Ă' => 'A', - 'ă' => 'a', - 'Ą' => 'A', - 'ą' => 'a', - 'Ć' => 'C', - 'ć' => 'c', - 'Ĉ' => 'C', - 'ĉ' => 'c', - 'Ċ' => 'C', - 'ċ' => 'c', - 'Č' => 'C', - 'č' => 'c', - 'Ď' => 'D', - 'ď' => 'd', - 'Đ' => 'D', - 'đ' => 'd', - 'Ē' => 'E', - 'ē' => 'e', - 'Ĕ' => 'E', - 'ĕ' => 'e', - 'Ė' => 'E', - 'ė' => 'e', - 'Ę' => 'E', - 'ę' => 'e', - 'Ě' => 'E', - 'ě' => 'e', - 'Ĝ' => 'G', - 'ĝ' => 'g', - 'Ğ' => 'G', - 'ğ' => 'g', - 'Ġ' => 'G', - 'ġ' => 'g', - 'Ģ' => 'G', - 'ģ' => 'g', - 'Ĥ' => 'H', - 'ĥ' => 'h', - 'Ħ' => 'H', - 'ħ' => 'h', - 'Ĩ' => 'I', - 'ĩ' => 'i', - 'Ī' => 'I', - 'ī' => 'i', - 'Ĭ' => 'I', - 'ĭ' => 'i', - 'Į' => 'I', - 'į' => 'i', - 'İ' => 'I', - 'ı' => 'i', - 'IJ' => 'IJ', - 'ij' => 'ij', - 'Ĵ' => 'J', - 'ĵ' => 'j', - 'Ķ' => 'K', - 'ķ' => 'k', - 'ĸ' => 'k', - 'Ĺ' => 'L', - 'ĺ' => 'l', - 'Ļ' => 'L', - 'ļ' => 'l', - 'Ľ' => 'L', - 'ľ' => 'l', - 'Ŀ' => 'L', - 'ŀ' => 'l', - 'Ł' => 'L', - 'ł' => 'l', - 'Ń' => 'N', - 'ń' => 'n', - 'Ņ' => 'N', - 'ņ' => 'n', - 'Ň' => 'N', - 'ň' => 'n', - 'ʼn' => 'N', - 'Ŋ' => 'n', - 'ŋ' => 'N', - 'Ō' => 'O', - 'ō' => 'o', - 'Ŏ' => 'O', - 'ŏ' => 'o', - 'Ő' => 'O', - 'ő' => 'o', - 'Œ' => 'OE', - 'œ' => 'oe', - 'Ø' => 'O', - 'ø' => 'o', - 'Ŕ' => 'R', - 'ŕ' => 'r', - 'Ŗ' => 'R', - 'ŗ' => 'r', - 'Ř' => 'R', - 'ř' => 'r', - 'Ś' => 'S', - 'ś' => 's', - 'Ŝ' => 'S', - 'ŝ' => 's', - 'Ş' => 'S', - 'ş' => 's', - 'Š' => 'S', - 'š' => 's', - 'Ţ' => 'T', - 'ţ' => 't', - 'Ť' => 'T', - 'ť' => 't', - 'Ŧ' => 'T', - 'ŧ' => 't', - 'Ũ' => 'U', - 'ũ' => 'u', - 'Ū' => 'U', - 'ū' => 'u', - 'Ŭ' => 'U', - 'ŭ' => 'u', - 'Ů' => 'U', - 'ů' => 'u', - 'Ű' => 'U', - 'ű' => 'u', - 'Ų' => 'U', - 'ų' => 'u', - 'Ŵ' => 'W', - 'ŵ' => 'w', - 'Ŷ' => 'Y', - 'ŷ' => 'y', - 'Ÿ' => 'Y', - 'Ź' => 'Z', - 'ź' => 'z', - 'Ż' => 'Z', - 'ż' => 'z', - 'Ž' => 'Z', - 'ž' => 'z', - 'ſ' => 's', - '€' => 'E', - '£' => '', - ]; - - /** @var WordInflector */ - private $singularizer; - - /** @var WordInflector */ - private $pluralizer; - - public function __construct(WordInflector $singularizer, WordInflector $pluralizer) - { - $this->singularizer = $singularizer; - $this->pluralizer = $pluralizer; - } - - /** - * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. - */ - public function tableize(string $word): string - { - $tableized = preg_replace('~(?<=\\w)([A-Z])~u', '_$1', $word); - - if ($tableized === null) { - throw new RuntimeException(sprintf( - 'preg_replace returned null for value "%s"', - $word - )); - } - - return mb_strtolower($tableized); - } - - /** - * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'. - */ - public function classify(string $word): string - { - return str_replace([' ', '_', '-'], '', ucwords($word, ' _-')); - } - - /** - * Camelizes a word. This uses the classify() method and turns the first character to lowercase. - */ - public function camelize(string $word): string - { - return lcfirst($this->classify($word)); - } - - /** - * Uppercases words with configurable delimiters between words. - * - * Takes a string and capitalizes all of the words, like PHP's built-in - * ucwords function. This extends that behavior, however, by allowing the - * word delimiters to be configured, rather than only separating on - * whitespace. - * - * Here is an example: - * - * capitalize($string); - * // Top-O-The-Morning To All_of_you! - * - * echo $inflector->capitalize($string, '-_ '); - * // Top-O-The-Morning To All_Of_You! - * ?> - * - * - * @param string $string The string to operate on. - * @param string $delimiters A list of word separators. - * - * @return string The string with all delimiter-separated words capitalized. - */ - public function capitalize(string $string, string $delimiters = " \n\t\r\0\x0B-"): string - { - return ucwords($string, $delimiters); - } - - /** - * Checks if the given string seems like it has utf8 characters in it. - * - * @param string $string The string to check for utf8 characters in. - */ - public function seemsUtf8(string $string): bool - { - for ($i = 0; $i < strlen($string); $i++) { - if (ord($string[$i]) < 0x80) { - continue; // 0bbbbbbb - } - - if ((ord($string[$i]) & 0xE0) === 0xC0) { - $n = 1; // 110bbbbb - } elseif ((ord($string[$i]) & 0xF0) === 0xE0) { - $n = 2; // 1110bbbb - } elseif ((ord($string[$i]) & 0xF8) === 0xF0) { - $n = 3; // 11110bbb - } elseif ((ord($string[$i]) & 0xFC) === 0xF8) { - $n = 4; // 111110bb - } elseif ((ord($string[$i]) & 0xFE) === 0xFC) { - $n = 5; // 1111110b - } else { - return false; // Does not match any model - } - - for ($j = 0; $j < $n; $j++) { // n bytes matching 10bbbbbb follow ? - if (++$i === strlen($string) || ((ord($string[$i]) & 0xC0) !== 0x80)) { - return false; - } - } - } - - return true; - } - - /** - * Remove any illegal characters, accents, etc. - * - * @param string $string String to unaccent - * - * @return string Unaccented string - */ - public function unaccent(string $string): string - { - if (preg_match('/[\x80-\xff]/', $string) === false) { - return $string; - } - - if ($this->seemsUtf8($string)) { - $string = strtr($string, self::ACCENTED_CHARACTERS); - } else { - $characters = []; - - // Assume ISO-8859-1 if not UTF-8 - $characters['in'] = - chr(128) - . chr(131) - . chr(138) - . chr(142) - . chr(154) - . chr(158) - . chr(159) - . chr(162) - . chr(165) - . chr(181) - . chr(192) - . chr(193) - . chr(194) - . chr(195) - . chr(196) - . chr(197) - . chr(199) - . chr(200) - . chr(201) - . chr(202) - . chr(203) - . chr(204) - . chr(205) - . chr(206) - . chr(207) - . chr(209) - . chr(210) - . chr(211) - . chr(212) - . chr(213) - . chr(214) - . chr(216) - . chr(217) - . chr(218) - . chr(219) - . chr(220) - . chr(221) - . chr(224) - . chr(225) - . chr(226) - . chr(227) - . chr(228) - . chr(229) - . chr(231) - . chr(232) - . chr(233) - . chr(234) - . chr(235) - . chr(236) - . chr(237) - . chr(238) - . chr(239) - . chr(241) - . chr(242) - . chr(243) - . chr(244) - . chr(245) - . chr(246) - . chr(248) - . chr(249) - . chr(250) - . chr(251) - . chr(252) - . chr(253) - . chr(255); - - $characters['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'; - - $string = strtr($string, $characters['in'], $characters['out']); - - $doubleChars = []; - - $doubleChars['in'] = [ - chr(140), - chr(156), - chr(198), - chr(208), - chr(222), - chr(223), - chr(230), - chr(240), - chr(254), - ]; - - $doubleChars['out'] = ['OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th']; - - $string = str_replace($doubleChars['in'], $doubleChars['out'], $string); - } - - return $string; - } - - /** - * Convert any passed string to a url friendly string. - * Converts 'My first blog post' to 'my-first-blog-post' - * - * @param string $string String to urlize. - * - * @return string Urlized string. - */ - public function urlize(string $string): string - { - // Remove all non url friendly characters with the unaccent function - $unaccented = $this->unaccent($string); - - if (function_exists('mb_strtolower')) { - $lowered = mb_strtolower($unaccented); - } else { - $lowered = strtolower($unaccented); - } - - $replacements = [ - '/\W/' => ' ', - '/([A-Z]+)([A-Z][a-z])/' => '\1_\2', - '/([a-z\d])([A-Z])/' => '\1_\2', - '/[^A-Z^a-z^0-9^\/]+/' => '-', - ]; - - $urlized = $lowered; - - foreach ($replacements as $pattern => $replacement) { - $replaced = preg_replace($pattern, $replacement, $urlized); - - if ($replaced === null) { - throw new RuntimeException(sprintf( - 'preg_replace returned null for value "%s"', - $urlized - )); - } - - $urlized = $replaced; - } - - return trim($urlized, '-'); - } - - /** - * Returns a word in singular form. - * - * @param string $word The word in plural form. - * - * @return string The word in singular form. - */ - public function singularize(string $word): string - { - return $this->singularizer->inflect($word); - } - - /** - * Returns a word in plural form. - * - * @param string $word The word in singular form. - * - * @return string The word in plural form. - */ - public function pluralize(string $word): string - { - return $this->pluralizer->inflect($word); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php deleted file mode 100644 index a0740a7..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php +++ /dev/null @@ -1,52 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php deleted file mode 100644 index 02257de..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php +++ /dev/null @@ -1,189 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php deleted file mode 100644 index 9747f91..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php +++ /dev/null @@ -1,28 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php deleted file mode 100644 index 5d8d3b3..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php +++ /dev/null @@ -1,30 +0,0 @@ -pattern = $pattern; - - if (isset($this->pattern[0]) && $this->pattern[0] === '/') { - $this->regex = $this->pattern; - } else { - $this->regex = '/' . $this->pattern . '/i'; - } - } - - public function getPattern(): string - { - return $this->pattern; - } - - public function getRegex(): string - { - return $this->regex; - } - - public function matches(string $word): bool - { - return preg_match($this->getRegex(), $word) === 1; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php deleted file mode 100644 index e8d45cb..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php +++ /dev/null @@ -1,34 +0,0 @@ -patterns = $patterns; - - $patterns = array_map(static function (Pattern $pattern): string { - return $pattern->getPattern(); - }, $this->patterns); - - $this->regex = '/^(?:' . implode('|', $patterns) . ')$/i'; - } - - public function matches(string $word): bool - { - return preg_match($this->regex, $word, $regs) === 1; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php deleted file mode 100644 index 0d41fe7..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php +++ /dev/null @@ -1,98 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php deleted file mode 100644 index b8e988f..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php +++ /dev/null @@ -1,32 +0,0 @@ -regular = $regular; - $this->uninflected = $uninflected; - $this->irregular = $irregular; - } - - public function getRegular(): Transformations - { - return $this->regular; - } - - public function getUninflected(): Patterns - { - return $this->uninflected; - } - - public function getIrregular(): Substitutions - { - return $this->irregular; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php deleted file mode 100644 index 9129460..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php +++ /dev/null @@ -1,47 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php deleted file mode 100644 index c26ebe9..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php +++ /dev/null @@ -1,30 +0,0 @@ -from = $from; - $this->to = $to; - } - - public function getFrom(): Word - { - return $this->from; - } - - public function getTo(): Word - { - return $this->to; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php deleted file mode 100644 index 17ee296..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php +++ /dev/null @@ -1,57 +0,0 @@ -substitutions[$substitution->getFrom()->getWord()] = $substitution; - } - } - - public function getFlippedSubstitutions(): Substitutions - { - $substitutions = []; - - foreach ($this->substitutions as $substitution) { - $substitutions[] = new Substitution( - $substitution->getTo(), - $substitution->getFrom() - ); - } - - return new Substitutions(...$substitutions); - } - - public function inflect(string $word): string - { - $lowerWord = strtolower($word); - - if (isset($this->substitutions[$lowerWord])) { - $firstLetterUppercase = $lowerWord[0] !== $word[0]; - - $toWord = $this->substitutions[$lowerWord]->getTo()->getWord(); - - if ($firstLetterUppercase) { - return strtoupper($toWord[0]) . substr($toWord, 1); - } - - return $toWord; - } - - return $word; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php deleted file mode 100644 index 30dcd59..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php +++ /dev/null @@ -1,39 +0,0 @@ -pattern = $pattern; - $this->replacement = $replacement; - } - - public function getPattern(): Pattern - { - return $this->pattern; - } - - public function getReplacement(): string - { - return $this->replacement; - } - - public function inflect(string $word): string - { - return (string) preg_replace($this->pattern->getRegex(), $this->replacement, $word); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php deleted file mode 100644 index b6a48fa..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php +++ /dev/null @@ -1,29 +0,0 @@ -transformations = $transformations; - } - - public function inflect(string $word): string - { - foreach ($this->transformations as $transformation) { - if ($transformation->getPattern()->matches($word)) { - return $transformation->inflect($word); - } - } - - return $word; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php deleted file mode 100644 index a2bda0d..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php +++ /dev/null @@ -1,34 +0,0 @@ -getFlippedSubstitutions() - ); - } - - public static function getPluralRuleset(): Ruleset - { - return new Ruleset( - new Transformations(...Inflectible::getPlural()), - new Patterns(...Uninflected::getPlural()), - new Substitutions(...Inflectible::getIrregular()) - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php deleted file mode 100644 index ec1c37d..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php +++ /dev/null @@ -1,30 +0,0 @@ -word = $word; - } - - public function getWord(): string - { - return $this->word; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php deleted file mode 100644 index 12b2ed5..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php +++ /dev/null @@ -1,56 +0,0 @@ -rulesets = array_merge([$ruleset], $rulesets); - } - - public function inflect(string $word): string - { - if ($word === '') { - return ''; - } - - foreach ($this->rulesets as $ruleset) { - if ($ruleset->getUninflected()->matches($word)) { - return $word; - } - - $inflected = $ruleset->getIrregular()->inflect($word); - - if ($inflected !== $word) { - return $inflected; - } - - $inflected = $ruleset->getRegular()->inflect($word); - - if ($inflected !== $word) { - return $inflected; - } - } - - return $word; - } -} diff --git a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php b/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php deleted file mode 100644 index b88b1d6..0000000 --- a/projects/priceservice/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php +++ /dev/null @@ -1,10 +0,0 @@ -instantiate(\My\ClassName\Here::class); -``` - -## Contributing - -Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out! - -## Credits - -This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which -has been donated to the doctrine organization, and which is now deprecated in favour of this package. diff --git a/projects/priceservice/vendor/doctrine/instantiator/composer.json b/projects/priceservice/vendor/doctrine/instantiator/composer.json deleted file mode 100644 index 179145e..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "doctrine/instantiator", - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "type": "library", - "license": "MIT", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "instantiate", - "constructor" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "require": { - "php": "^8.1" - }, - "require-dev": { - "ext-phar": "*", - "ext-pdo": "*", - "doctrine/coding-standard": "^11", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "autoload-dev": { - "psr-0": { - "DoctrineTest\\InstantiatorPerformance\\": "tests", - "DoctrineTest\\InstantiatorTest\\": "tests", - "DoctrineTest\\InstantiatorTestAsset\\": "tests" - } - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - } -} diff --git a/projects/priceservice/vendor/doctrine/instantiator/docs/en/index.rst b/projects/priceservice/vendor/doctrine/instantiator/docs/en/index.rst deleted file mode 100644 index 0c85da0..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/docs/en/index.rst +++ /dev/null @@ -1,68 +0,0 @@ -Introduction -============ - -This library provides a way of avoiding usage of constructors when instantiating PHP classes. - -Installation -============ - -The suggested installation method is via `composer`_: - -.. code-block:: console - - $ composer require doctrine/instantiator - -Usage -===== - -The instantiator is able to create new instances of any class without -using the constructor or any API of the class itself: - -.. code-block:: php - - instantiate(User::class); - -Contributing -============ - -- Follow the `Doctrine Coding Standard`_ -- The project will follow strict `object calisthenics`_ -- Any contribution must provide tests for additional introduced - conditions -- Any un-confirmed issue needs a failing test case before being - accepted -- Pull requests must be sent from a new hotfix/feature branch, not from - ``master``. - -Testing -======= - -The PHPUnit version to be used is the one installed as a dev- dependency -via composer: - -.. code-block:: console - - $ ./vendor/bin/phpunit - -Accepted coverage for new contributions is 80%. Any contribution not -satisfying this requirement won’t be merged. - -Credits -======= - -This library was migrated from `ocramius/instantiator`_, which has been -donated to the doctrine organization, and which is now deprecated in -favour of this package. - -.. _composer: https://getcomposer.org/ -.. _CONTRIBUTING.md: CONTRIBUTING.md -.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator -.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard -.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php diff --git a/projects/priceservice/vendor/doctrine/instantiator/docs/en/sidebar.rst b/projects/priceservice/vendor/doctrine/instantiator/docs/en/sidebar.rst deleted file mode 100644 index 0c36479..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/docs/en/sidebar.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. toctree:: - :depth: 3 - - index diff --git a/projects/priceservice/vendor/doctrine/instantiator/psalm.xml b/projects/priceservice/vendor/doctrine/instantiator/psalm.xml deleted file mode 100644 index e9b622b..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/psalm.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php deleted file mode 100644 index 1e59192..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php +++ /dev/null @@ -1,14 +0,0 @@ - $reflectionClass - * - * @template T of object - */ - public static function fromAbstractClass(ReflectionClass $reflectionClass): self - { - return new self(sprintf( - 'The provided class "%s" is abstract, and cannot be instantiated', - $reflectionClass->getName(), - )); - } - - public static function fromEnum(string $className): self - { - return new self(sprintf( - 'The provided class "%s" is an enum, and cannot be instantiated', - $className, - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php deleted file mode 100644 index 4f70ded..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php +++ /dev/null @@ -1,61 +0,0 @@ - $reflectionClass - * - * @template T of object - */ - public static function fromSerializationTriggeredException( - ReflectionClass $reflectionClass, - Exception $exception, - ): self { - return new self( - sprintf( - 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization', - $reflectionClass->getName(), - ), - 0, - $exception, - ); - } - - /** - * @phpstan-param ReflectionClass $reflectionClass - * - * @template T of object - */ - public static function fromUncleanUnSerialization( - ReflectionClass $reflectionClass, - string $errorString, - int $errorCode, - string $errorFile, - int $errorLine, - ): self { - return new self( - sprintf( - 'Could not produce an instance of "%s" via un-serialization, since an error was triggered ' - . 'in file "%s" at line "%d"', - $reflectionClass->getName(), - $errorFile, - $errorLine, - ), - 0, - new Exception($errorString, $errorCode), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php deleted file mode 100644 index f803f89..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php +++ /dev/null @@ -1,255 +0,0 @@ - $className - * - * @phpstan-return T - * - * @throws ExceptionInterface - * - * @template T of object - */ - public function instantiate(string $className): object - { - if (isset(self::$cachedCloneables[$className])) { - /** @phpstan-var T */ - $cachedCloneable = self::$cachedCloneables[$className]; - - return clone $cachedCloneable; - } - - if (isset(self::$cachedInstantiators[$className])) { - $factory = self::$cachedInstantiators[$className]; - - return $factory(); - } - - return $this->buildAndCacheFromFactory($className); - } - - /** - * Builds the requested object and caches it in static properties for performance - * - * @phpstan-param class-string $className - * - * @phpstan-return T - * - * @template T of object - */ - private function buildAndCacheFromFactory(string $className): object - { - $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className); - $instance = $factory(); - - if ($this->isSafeToClone(new ReflectionClass($instance))) { - self::$cachedCloneables[$className] = clone $instance; - } - - return $instance; - } - - /** - * Builds a callable capable of instantiating the given $className without - * invoking its constructor. - * - * @phpstan-param class-string $className - * - * @phpstan-return callable(): T - * - * @throws InvalidArgumentException - * @throws UnexpectedValueException - * @throws ReflectionException - * - * @template T of object - */ - private function buildFactory(string $className): callable - { - $reflectionClass = $this->getReflectionClass($className); - - if ($this->isInstantiableViaReflection($reflectionClass)) { - return [$reflectionClass, 'newInstanceWithoutConstructor']; - } - - $serializedString = sprintf( - '%s:%d:"%s":0:{}', - is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER, - strlen($className), - $className, - ); - - $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString); - - return static fn () => unserialize($serializedString); - } - - /** - * @phpstan-param class-string $className - * - * @phpstan-return ReflectionClass - * - * @throws InvalidArgumentException - * @throws ReflectionException - * - * @template T of object - */ - private function getReflectionClass(string $className): ReflectionClass - { - if (! class_exists($className)) { - throw InvalidArgumentException::fromNonExistingClass($className); - } - - if (enum_exists($className, false)) { - throw InvalidArgumentException::fromEnum($className); - } - - $reflection = new ReflectionClass($className); - - if ($reflection->isAbstract()) { - throw InvalidArgumentException::fromAbstractClass($reflection); - } - - return $reflection; - } - - /** - * @phpstan-param ReflectionClass $reflectionClass - * - * @throws UnexpectedValueException - * - * @template T of object - */ - private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString): void - { - set_error_handler(static function (int $code, string $message, string $file, int $line) use ($reflectionClass, &$error): bool { - $error = UnexpectedValueException::fromUncleanUnSerialization( - $reflectionClass, - $message, - $code, - $file, - $line, - ); - - return true; - }); - - try { - $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); - } finally { - restore_error_handler(); - } - - if ($error) { - throw $error; - } - } - - /** - * @phpstan-param ReflectionClass $reflectionClass - * - * @throws UnexpectedValueException - * - * @template T of object - */ - private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString): void - { - try { - unserialize($serializedString); - } catch (Exception $exception) { - throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception); - } - } - - /** - * @phpstan-param ReflectionClass $reflectionClass - * - * @template T of object - */ - private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool - { - return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal()); - } - - /** - * Verifies whether the given class is to be considered internal - * - * @phpstan-param ReflectionClass $reflectionClass - * - * @template T of object - */ - private function hasInternalAncestors(ReflectionClass $reflectionClass): bool - { - do { - if ($reflectionClass->isInternal()) { - return true; - } - - $reflectionClass = $reflectionClass->getParentClass(); - } while ($reflectionClass); - - return false; - } - - /** - * Checks if a class is cloneable - * - * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects. - * - * @phpstan-param ReflectionClass $reflectionClass - * - * @template T of object - */ - private function isSafeToClone(ReflectionClass $reflectionClass): bool - { - return $reflectionClass->isCloneable() - && ! $reflectionClass->hasMethod('__clone') - && ! $reflectionClass->isSubclassOf(ArrayIterator::class); - } -} diff --git a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php deleted file mode 100644 index c6ebe35..0000000 --- a/projects/priceservice/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - $className - * - * @phpstan-return T - * - * @throws ExceptionInterface - * - * @template T of object - */ - public function instantiate(string $className): object; -} diff --git a/projects/priceservice/vendor/doctrine/lexer/LICENSE b/projects/priceservice/vendor/doctrine/lexer/LICENSE deleted file mode 100644 index e8fdec4..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2018 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/lexer/README.md b/projects/priceservice/vendor/doctrine/lexer/README.md deleted file mode 100644 index 784f2a2..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Doctrine Lexer - -[![Build Status](https://github.com/doctrine/lexer/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/lexer/actions) - -Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. - -This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). - -https://www.doctrine-project.org/projects/lexer.html diff --git a/projects/priceservice/vendor/doctrine/lexer/UPGRADE.md b/projects/priceservice/vendor/doctrine/lexer/UPGRADE.md deleted file mode 100644 index 1933fcb..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/UPGRADE.md +++ /dev/null @@ -1,22 +0,0 @@ -Note about upgrading: Doctrine uses static and runtime mechanisms to raise -awareness about deprecated code. - -- Use of `@deprecated` docblock that is detected by IDEs (like PHPStorm) or - Static Analysis tools (like Psalm, phpstan) -- Use of our low-overhead runtime deprecation API, details: - https://github.com/doctrine/deprecations/ - -# Upgrade to 3.0.0 - -`Doctrine\Common\Lexer\Token` no longer implements `ArrayAccess`. -Parameter type declarations have been added to -`Doctrine\Common\Lexer\AbstractLexer` and `Doctrine\Common\Lexer\Token`. -You should add both parameter type declarations and return type declarations to -your lexers, based on the `@return` phpdoc. - -# Upgrade to 2.0.0 - -`AbstractLexer::glimpse()` and `AbstractLexer::peek()` now return -instances of `Doctrine\Common\Lexer\Token`, which is an array-like class -Using it as an array is deprecated in favor of using properties of that class. -Using `count()` on it is deprecated with no replacement. diff --git a/projects/priceservice/vendor/doctrine/lexer/composer.json b/projects/priceservice/vendor/doctrine/lexer/composer.json deleted file mode 100644 index 995dafa..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/composer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "doctrine/lexer", - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "license": "MIT", - "type": "library", - "keywords": [ - "php", - "parser", - "lexer", - "annotations", - "docblock" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.21" - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Tests\\Common\\Lexer\\": "tests" - } - }, - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "dealerdirect/phpcodesniffer-composer-installer": true - }, - "sort-packages": true - } -} diff --git a/projects/priceservice/vendor/doctrine/lexer/src/AbstractLexer.php b/projects/priceservice/vendor/doctrine/lexer/src/AbstractLexer.php deleted file mode 100644 index 2436885..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/src/AbstractLexer.php +++ /dev/null @@ -1,328 +0,0 @@ -> - */ - private array $tokens = []; - - /** - * Current lexer position in input string. - */ - private int $position = 0; - - /** - * Current peek of current lexer position. - */ - private int $peek = 0; - - /** - * The next token in the input. - * - * @var Token|null - */ - public Token|null $lookahead; - - /** - * The last matched/seen token. - * - * @var Token|null - */ - public Token|null $token; - - /** - * Composed regex for input parsing. - * - * @var non-empty-string|null - */ - private string|null $regex = null; - - /** - * Sets the input data to be tokenized. - * - * The Lexer is immediately reset and the new input tokenized. - * Any unprocessed tokens from any previous input are lost. - * - * @param string $input The input to be tokenized. - * - * @return void - */ - public function setInput(string $input) - { - $this->input = $input; - $this->tokens = []; - - $this->reset(); - $this->scan($input); - } - - /** - * Resets the lexer. - * - * @return void - */ - public function reset() - { - $this->lookahead = null; - $this->token = null; - $this->peek = 0; - $this->position = 0; - } - - /** - * Resets the peek pointer to 0. - * - * @return void - */ - public function resetPeek() - { - $this->peek = 0; - } - - /** - * Resets the lexer position on the input to the given position. - * - * @param int $position Position to place the lexical scanner. - * - * @return void - */ - public function resetPosition(int $position = 0) - { - $this->position = $position; - } - - /** - * Retrieve the original lexer's input until a given position. - * - * @return string - */ - public function getInputUntilPosition(int $position) - { - return substr($this->input, 0, $position); - } - - /** - * Checks whether a given token matches the current lookahead. - * - * @param T $type - * - * @return bool - * - * @psalm-assert-if-true !=null $this->lookahead - */ - public function isNextToken(int|string|UnitEnum $type) - { - return $this->lookahead !== null && $this->lookahead->isA($type); - } - - /** - * Checks whether any of the given tokens matches the current lookahead. - * - * @param list $types - * - * @return bool - * - * @psalm-assert-if-true !=null $this->lookahead - */ - public function isNextTokenAny(array $types) - { - return $this->lookahead !== null && $this->lookahead->isA(...$types); - } - - /** - * Moves to the next token in the input string. - * - * @return bool - * - * @psalm-assert-if-true !null $this->lookahead - */ - public function moveNext() - { - $this->peek = 0; - $this->token = $this->lookahead; - $this->lookahead = isset($this->tokens[$this->position]) - ? $this->tokens[$this->position++] : null; - - return $this->lookahead !== null; - } - - /** - * Tells the lexer to skip input tokens until it sees a token with the given value. - * - * @param T $type The token type to skip until. - * - * @return void - */ - public function skipUntil(int|string|UnitEnum $type) - { - while ($this->lookahead !== null && ! $this->lookahead->isA($type)) { - $this->moveNext(); - } - } - - /** - * Checks if given value is identical to the given token. - * - * @return bool - */ - public function isA(string $value, int|string|UnitEnum $token) - { - return $this->getType($value) === $token; - } - - /** - * Moves the lookahead token forward. - * - * @return Token|null The next token or NULL if there are no more tokens ahead. - */ - public function peek() - { - if (isset($this->tokens[$this->position + $this->peek])) { - return $this->tokens[$this->position + $this->peek++]; - } - - return null; - } - - /** - * Peeks at the next token, returns it and immediately resets the peek. - * - * @return Token|null The next token or NULL if there are no more tokens ahead. - */ - public function glimpse() - { - $peek = $this->peek(); - $this->peek = 0; - - return $peek; - } - - /** - * Scans the input string for tokens. - * - * @param string $input A query string. - * - * @return void - */ - protected function scan(string $input) - { - if (! isset($this->regex)) { - $this->regex = sprintf( - '/(%s)|%s/%s', - implode(')|(', $this->getCatchablePatterns()), - implode('|', $this->getNonCatchablePatterns()), - $this->getModifiers(), - ); - } - - $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; - $matches = preg_split($this->regex, $input, -1, $flags); - - if ($matches === false) { - // Work around https://bugs.php.net/78122 - $matches = [[$input, 0]]; - } - - foreach ($matches as $match) { - // Must remain before 'value' assignment since it can change content - $firstMatch = $match[0]; - $type = $this->getType($firstMatch); - - $this->tokens[] = new Token( - $firstMatch, - $type, - $match[1], - ); - } - } - - /** - * Gets the literal for a given token. - * - * @param T $token - * - * @return int|string - */ - public function getLiteral(int|string|UnitEnum $token) - { - if ($token instanceof UnitEnum) { - return $token::class . '::' . $token->name; - } - - $className = static::class; - - $reflClass = new ReflectionClass($className); - $constants = $reflClass->getConstants(); - - foreach ($constants as $name => $value) { - if ($value === $token) { - return $className . '::' . $name; - } - } - - return $token; - } - - /** - * Regex modifiers - * - * @return string - */ - protected function getModifiers() - { - return 'iu'; - } - - /** - * Lexical catchable patterns. - * - * @return string[] - */ - abstract protected function getCatchablePatterns(); - - /** - * Lexical non-catchable patterns. - * - * @return string[] - */ - abstract protected function getNonCatchablePatterns(); - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @return T|null - * - * @param-out V $value - */ - abstract protected function getType(string &$value); -} diff --git a/projects/priceservice/vendor/doctrine/lexer/src/Token.php b/projects/priceservice/vendor/doctrine/lexer/src/Token.php deleted file mode 100644 index b6df694..0000000 --- a/projects/priceservice/vendor/doctrine/lexer/src/Token.php +++ /dev/null @@ -1,56 +0,0 @@ -value = $value; - $this->type = $type; - $this->position = $position; - } - - /** @param T ...$types */ - public function isA(...$types): bool - { - return in_array($this->type, $types, true); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/LICENSE b/projects/priceservice/vendor/doctrine/migrations/LICENSE deleted file mode 100644 index e8fdec4..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2018 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/migrations/README.md b/projects/priceservice/vendor/doctrine/migrations/README.md deleted file mode 100644 index 91a9f65..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Doctrine Migrations - -[![Build Status](https://github.com/doctrine/migrations/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/migrations/actions) -[![Code Coverage](https://codecov.io/gh/doctrine/migrations/branch/3.1.x/graph/badge.svg)](https://codecov.io/gh/doctrine/migrations/branch/3.1.x) -[![Packagist Downloads](https://img.shields.io/packagist/dm/doctrine/migrations)](https://packagist.org/packages/doctrine/migrations) -[![Packagist Version](https://img.shields.io/packagist/v/doctrine/migrations)](https://packagist.org/packages/doctrine/migrations) -[![GitHub license](https://img.shields.io/github/license/doctrine/migrations)](LICENSE) - -## Documentation - -All available documentation can be found [here](https://www.doctrine-project.org/projects/migrations.html). diff --git a/projects/priceservice/vendor/doctrine/migrations/UPGRADE.md b/projects/priceservice/vendor/doctrine/migrations/UPGRADE.md deleted file mode 100644 index 728c607..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/UPGRADE.md +++ /dev/null @@ -1,302 +0,0 @@ -# Upgrade to 3.6 - -## Console -- The `--all-or-nothing` option for `migrations:migrate` does not accept a value anymore, and passing it a - value will generate a deprecation. Specifying `--all-or-nothing` will wrap all the migrations to be - executed into a single transaction, regardless of the specified configuration. - - - -# Upgrade to 3.1 - -- The "version" is the FQCN of the migration class (existing entries in the migrations table will be automatically updated). -- `MigrationsEventArgs` and `MigrationsVersionEventArgs` expose different API, -please refer to the [Code BC breaks](#code-bc-breaks) section. - -## Console -- Console output changed. The commands use a different output style. If you were relying on specific output, - please update your scripts. - Console output is not covered by the BC promise, so please try not to rely on specific a output. - Different levels of verbosity are available now (`-v`, `-vv` and `-vvv` ). -- The `--show-versions` option from `migrations:status` command has been removed, - use `migrations:list` instead. -- The `--write-sql` option for `migrations:migrate` and `migrations:execute` does not imply dry-run anymore, -use the `--dry-run` parameter instead. -- The `--db` option has been renamed to `--conn`. - -## Migrations table - -- The migrations table now has a new column named `execution_time`. -- Running the `migrations:migrate` or `migrations:execute` command will automatically upgrade the migration -table structure; a dedicated `migrations:sync-metadata-storage` command is available to sync manually the migrations table. - -## Migration template - -- The `` placeholder has been replaced by the `` placeholder. - -## Configuration files - -*migrations.php Before* -```php - 'My Project Migrations', - 'migrations_namespace' => 'MyProject\Migrations', - 'table_name' => 'doctrine_migration_versions', - 'column_name' => 'version', - 'column_length' => 14, - 'executed_at_column_name' => 'executed_at', - 'migrations_directory' => '/data/doctrine/migrations-docs-example/lib/MyProject/Migrations', - 'all_or_nothing' => true, - 'check_database_platform' => true, -]; -``` -*migrations.php After* - -```php - [ - 'table_name' => 'doctrine_migration_versions', - 'version_column_name' => 'version', - 'version_column_length' => 191, - 'executed_at_column_name' => 'executed_at', - 'execution_time_column_name' => 'execution_time', - ], - - 'migrations_paths' => [ - 'MyProject\Migrations' => '/data/doctrine/migrations/lib/MyProject/Migrations', - 'MyProject\Component\Migrations' => './Component/MyProject/Migrations', - ], - - 'all_or_nothing' => true, - 'check_database_platform' => true, -]; -``` - -Files in XML, YAML or JSON also changed in a similar way. Please refer to the official documentation for more details. - -Note: the `name` property has been removed. - -Note: the option in `table_storage` needs to be updated only if you have changed the metadata table settings -by using v2 options such as `table_name`, `column_name`, `column_length` or `executed_at_column_name`. If you did not change -those settings, it is recommended to not provide the options and let doctrine figure out the best settings. - -## Code BC breaks - -Most of the code is protected by the `@internal` declaration and in a very rare cases you might have dealt with the -internals of this library. - -The most important BC breaks are in the `Doctrine\Migrations\Configuration\Configuration` class and in the helper -system that now has been replaced by the `Doctrine\Migrations\DependencyFactory` functionalities. - -Here is a list of the most important changes: - -- Namespace `Doctrine\Migrations\Configuration\Configuration` - - CHANGED: Class `Doctrine\Migrations\Configuration\Configuration` became final - - REMOVED: Constant `Doctrine\Migrations\Configuration\Configuration::VERSION_FORMAT` was removed, there is not more limitation on the version format - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#__construct()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setName()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getName()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getConnection()` was removed, - use `Doctrine\Migrations\DependencyFactory#getConnection()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsTableName()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#setMetadataStorageConfiguration` with an instance of `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsTableName()` was removed, - use `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration#getMetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsColumnName()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#setMetadataStorageConfiguration` with an instance of `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsColumnName()` was removed, - use `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration#getMetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getQuotedMigrationsColumnName()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsColumnLength()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#setMetadataStorageConfiguration` with an instance of `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsColumnLength()` was removed, - use `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration#getMetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsExecutedAtColumnName()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#setMetadataStorageConfiguration` with an instance of `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsExecutedAtColumnName()` was removed, - use `Doctrine\Migrations\Metadata\Storage\MetadataStorageConfiguration#getMetadataStorageConfiguration` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getQuotedMigrationsExecutedAtColumnName()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsDirectory()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#addMigrationsDirectory()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsDirectory()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#getMigrationDirectories()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsNamespace()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#addMigrationsDirectory()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsNamespace()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#getMigrationDirectories()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setMigrationsFinder()` was removed, - use the dependency factory instead - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsFinder()` was removed, - use the dependency factory instead - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#hasVersionMigrated()` was removed, - use the dependency factory instead - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getVersionData()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#resolveVersionAlias()` was removed, - use `Doctrine\Migrations\Version\AliasResolver#resolveVersionAlias()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#isMigrationTableCreated()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#createMigrationTable()` was removed, - use `Doctrine\Migrations\Metadata\Storage\MetadataStorage#ensureInitialized()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getDateTime()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#generateVersionNumber()` was removed, - use `Doctrine\Migrations\Generator\ClassNameGenerator#generateClassName()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#connect()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#dispatchMigrationEvent()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#dispatchVersionEvent()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#dispatchEvent()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getNumberOfExecutedMigrations()` was removed, - use `Doctrine\Migrations\DependencyFactory#getMetadataStorage()->getExecutedMigrations()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getNumberOfAvailableMigrations()` was removed, - use `Doctrine\Migrations\DependencyFactory#getMigrationRepository()->getMigrations()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getLatestVersion()` was removed, - use `Doctrine\Migrations\Version\AliasResolver#resolveVersionAlias()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigratedVersions()` was removed, - use `Doctrine\Migrations\DependencyFactory#getMetadataStorage()->getExecutedMigrations()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getAvailableVersions()` was removed - use `Doctrine\Migrations\DependencyFactory#getMigrationRepository()->getMigrations()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getCurrentVersion()` was removed, - use `Doctrine\Migrations\Version\AliasResolver#resolveVersionAlias()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#registerMigrationsFromDirectory()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#addMigrationsDirectory()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#registerMigration()` was removed, - use `Doctrine\Migrations\Configuration\Configuration#addMigrationClass()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#registerMigrations()` was removed - use `Doctrine\Migrations\Configuration\Configuration#addMigrationClass()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrations()` was removed, - use `Doctrine\Migrations\DependencyFactory#getMigrationRepository()->getMigrations()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getVersion()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getMigrationsToExecute()` was removed, - use `Doctrine\Migrations\Version\MigrationPlanCalculator#getPlanUntilVersion()` to create a migration plan - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getPrevVersion()` was removed, - use `Doctrine\Migrations\Version\AliasResolver#resolveVersionAlias()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getNextVersion()` was removed, - use `Doctrine\Migrations\Version\AliasResolver#resolveVersionAlias()` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getRelativeVersion()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getDeltaVersion()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#setOutputWriter()` was removed, - set the `Psr\Log\LoggerInterface` service in `Doctrine\Migrations\DependencyFactory` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getOutputWriter()` was removed, - get the `Psr\Log\LoggerInterface` service from `Doctrine\Migrations\DependencyFactory` - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getQueryWriter()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#getDependencyFactory()` was removed - - REMOVED: Method `Doctrine\Migrations\Configuration\Configuration#validate()` was removed - - Namespace `Doctrine\Migrations\Configuration\Connection\Loader\Exception` - - REMOVED: Class `Doctrine\Migrations\Configuration\Connection\Loader\Exception\LoaderException` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Connection\Loader\Exception\InvalidConfiguration` has been deleted - - Namespace `Doctrine\Migrations\Configuration\Exception` - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\ParameterIncompatibleWithFinder` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\InvalidConfigurationKey` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\MigrationsNamespaceRequired` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\XmlNotValid` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\YamlNotAvailable` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\FileAlreadyLoaded` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\JsonNotValid` has been deleted - - REMOVED: Class `Doctrine\Migrations\Configuration\Exception\YamlNotValid` has been deleted - - CHANGED: The number of required arguments for `Doctrine\Migrations\Configuration\Exception\FileNotFound::new()` increased from 0 to 1 - - Namespace `Doctrine\Migrations\Event\MigrationsEventArgs` - - CHANGED: Class `Doctrine\Migrations\Event\MigrationsEventArgs` became final - - REMOVED: Method `Doctrine\Migrations\Event\MigrationsEventArgs#getConfiguration()` was removed - - REMOVED: Method `Doctrine\Migrations\Event\MigrationsEventArgs#getDirection()` was removed, - use `Doctrine\Migrations\Event\MigrationsEventArgs#getPlan()` - - REMOVED: Method `Doctrine\Migrations\Event\MigrationsEventArgs#isDryRun()` was removed, - use `Doctrine\Migrations\Event\MigrationsEventArgs#getMigratorConfiguration()` - - CHANGED: `Doctrine\Migrations\Event\MigrationsEventArgs#__construct()` arguments have been updated - - Namespace `Doctrine\Migrations\Event\MigrationsVersionEventArgs` - - CHANGED: Class `Doctrine\Migrations\Event\MigrationsVersionEventArgs` became final - - REMOVED: Method `Doctrine\Migrations\Event\MigrationsVersionEventArgs#getVersion()` was removed - use `Doctrine\Migrations\Event\MigrationsEventArgs#getPlan()` - - Namespace `Doctrine\Migrations\Finder` - - REMOVED: These ancestors of `Doctrine\Migrations\Finder\RecursiveRegexFinder` have been removed: ["Doctrine\\Migrations\\Finder\\MigrationDeepFinder"] - - REMOVED: Class `Doctrine\Migrations\Finder\MigrationDeepFinder` has been deleted - - Namespace `Doctrine\Migrations\Tools\Console\Command` - - CHANGED: All non abstract classes in `Doctrine\Migrations\Tools\Console\Command\*` became final - - REMOVED: Class `Doctrine\Migrations\Tools\Console\Command\AbstractCommand` has been renamed into `Doctrine\Migrations\Tools\Console\Command\DoctrineCommand` and has been marked as internal - - CHANGED: Method `Doctrine\Migrations\Tools\Console\Command\*Command#__construct()` changed signature into `(?Doctrine\Migrations\DependencyFactory $di, ?string $name)` - - CHANGED: Method `initialize()` of Class `Doctrine\Migrations\Tools\Console\Command\AbstractCommand` visibility reduced from `public` to `protected` - - CHANGED: Method `execute()` of Class `Doctrine\Migrations\Tools\Console\Command\*Command` visibility reduced from `public` to `protected` - - REMOVED: Method `Doctrine\Migrations\Tools\Console\Command\DiffCommand#createMigrationDiffGenerator()` was removed - - Namespace `Doctrine\Migrations\Tools\Console\Exception` - - CHANGED: The number of required arguments for `Doctrine\Migrations\Tools\Console\Exception\SchemaDumpRequiresNoMigrations::new()` increased from 0 to 1 - - REMOVED: Class `Doctrine\Migrations\Tools\Console\Exception\ConnectionNotSpecified` has been deleted - - Namespace `Migrations\Tools\Console\Helper` - - REMOVED: All classes and namespaces are marked as internal or have been removed, - use `Doctrine\Migrations\DependencyFactory` instead - - Namespace `Doctrine\Migrations\AbstractMigration` - - CHANGED: The method `Doctrine\Migrations\AbstractMigration#__construct()` changed signature into `(Doctrine\DBAL\Connection $conn, PSR\Log\LoggerInterface $logger)` - - CHANGED: The method `Doctrine\Migrations\AbstractMigration#down()` is not abstract anymore, the default implementation will abort the migration process - - REMOVED: Property `Doctrine\Migrations\AbstractMigration#$version` was removed - - Namespace `Doctrine\Migrations\Provider` - - REMOVED: Class `Doctrine\Migrations\Provider\SchemaProviderInterface` has been deleted - - REMOVED: These ancestors of `Doctrine\Migrations\Provider\StubSchemaProvider` have been removed: ["Doctrine\\Migrations\\Provider\\SchemaProviderInterface"] - - Namespace `Doctrine\Migrations\Exception` - - REMOVED: Class `Doctrine\Migrations\Exception\MigrationNotConvertibleToSql` has been deleted - - REMOVED: Class `Doctrine\Migrations\Exception\MigrationsDirectoryRequired` has been deleted - - REMOVED: Class `Doctrine\Migrations\Version\Factory` became the interface `Doctrine\Migrations\Version\MigrationFactory` - - REMOVED: Class `Doctrine\Migrations\OutputWriter` has been deleted, - use `Psr\Log\Loggerinterface` - - - - -# Upgrade to 2.0 - -## BC Break: Moved `Doctrine\DBAL\Migrations` to `Doctrine\Migrations` - -Your migration classes that previously used to extend `Doctrine\DBAL\Migrations\AbstractMigration` now need to extend -`Doctrine\Migrations\AbstractMigration` instead. The `Doctrine\DBAL\Migrations\AbstractMigration` class will be -deprecated in the `1.8.0` release to prepare for the BC break. - -## BC Break: Removed `Doctrine\DBAL\Migrations\MigrationsVersion` - -The `Doctrine\DBAL\Migrations\MigrationsVersion` class is no longer available: please refrain from checking the Migrations version at runtime. - -## BC Break: Moved `Doctrine\Migrations\Migration` to `Doctrine\Migrations\Migrator` - -To make the name more clear and to differentiate from the `AbstractMigration` class, `Migration` was renamed to `Migrator`. - -## BC Break: Moved exception classes from `Doctrine\Migrations\%name%Exception` to `Doctrine\Migrations\Exception\%name%` -doctrine/migrations#636 -Follows concept introduced in ORM (doctrine/orm#6743 + doctrine/orm#7210) and naming follows pattern accepted in Doctrine CS. - -# Upgrade from 1.0-alpha1 to 1.0.0-alpha3 - -## AbstractMigration - -### Before: - -The method `getName()` was defined and it's implementation would change the order in which the migration would be processed. -It would cause discrepancies between the file order in a file browser and the order of execution of the migrations. - -### After: - -The `getName()` method as been removed | set final and new `getDescription()` method has been added. -The goal of this method is to be able to provide context for the migration. -This context is shown for the last migrated migration when the status command is called. - -## --write-sql option from the migrate command - -### Before: - -The `--write-sql` option would only output sql contained in the migration and would not update the table containing the migrated migrations. - -### After: - -That option now also output the sql queries necessary to update the table containing the state of the migrations. -If you want to go back to the previous behavior just make a request on the bug tracker as for now the need for it is not very clear. - -## MigrationsVersion::VERSION - -### Before: - -`MigrationsVersion::VERSION` used to be a property. -The returned value was fanciful. - -### After: - -It is now a a function so that a different value can be automatically send back if it's a modified version that's used. -The returned value is now the git tag. -The tag is in lowercase as the other doctrine projects. diff --git a/projects/priceservice/vendor/doctrine/migrations/bin/doctrine-migrations b/projects/priceservice/vendor/doctrine/migrations/bin/doctrine-migrations deleted file mode 100755 index 68394e8..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/bin/doctrine-migrations +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env php -=4" - }, - "suggest": { - "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", - "symfony/yaml": "Allows the use of yaml for migration configuration files." - }, - "autoload": { - "psr-4": { - "Doctrine\\Migrations\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Migrations\\Tests\\": "tests" - } - }, - "bin": [ - "bin/doctrine-migrations" - ], - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "dealerdirect/phpcodesniffer-composer-installer": true - }, - "sort-packages": true - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/AbstractMigration.php b/projects/priceservice/vendor/doctrine/migrations/src/AbstractMigration.php deleted file mode 100644 index 14e6396..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/AbstractMigration.php +++ /dev/null @@ -1,179 +0,0 @@ - */ - protected $sm; - - /** @var AbstractPlatform */ - protected $platform; - - /** @var Query[] */ - private array $plannedSql = []; - - private bool $frozen = false; - - public function __construct(Connection $connection, private readonly LoggerInterface $logger) - { - $this->connection = $connection; - $this->sm = $this->connection->createSchemaManager(); - $this->platform = $this->connection->getDatabasePlatform(); - } - - /** - * Indicates the transactional mode of this migration. - * - * If this function returns true (default) the migration will be executed - * in one transaction, otherwise non-transactional state will be used to - * execute each of the migration SQLs. - * - * Extending class should override this function to alter the return value. - */ - public function isTransactional(): bool - { - return true; - } - - public function getDescription(): string - { - return ''; - } - - public function warnIf(bool $condition, string $message = 'Unknown Reason'): void - { - if (! $condition) { - return; - } - - $this->logger->warning($message, ['migration' => $this]); - } - - /** @throws AbortMigration */ - public function abortIf(bool $condition, string $message = 'Unknown Reason'): void - { - if ($condition) { - throw new AbortMigration($message); - } - } - - /** @throws SkipMigration */ - public function skipIf(bool $condition, string $message = 'Unknown Reason'): void - { - if ($condition) { - throw new SkipMigration($message); - } - } - - /** - * @throws MigrationException|DBALException - * - * @phpstan-ignore throws.unusedType,throws.unusedType - */ - public function preUp(Schema $schema): void - { - } - - /** - * @throws MigrationException|DBALException - * - * @phpstan-ignore throws.unusedType,throws.unusedType - */ - public function postUp(Schema $schema): void - { - } - - /** - * @throws MigrationException|DBALException - * - * @phpstan-ignore throws.unusedType,throws.unusedType - */ - public function preDown(Schema $schema): void - { - } - - /** - * @throws MigrationException|DBALException - * - * @phpstan-ignore throws.unusedType,throws.unusedType - */ - public function postDown(Schema $schema): void - { - } - - /** @throws MigrationException|DBALException */ - abstract public function up(Schema $schema): void; - - /** @throws MigrationException|DBALException */ - public function down(Schema $schema): void - { - $this->abortIf(true, sprintf('No down() migration implemented for "%s"', static::class)); - } - - /** - * @param mixed[] $params - * @param mixed[] $types - */ - protected function addSql( - string $sql, - array $params = [], - array $types = [], - ): void { - if ($this->frozen) { - throw FrozenMigration::new(); - } - - $this->plannedSql[] = new Query($sql, $params, $types); - } - - /** @return Query[] */ - public function getSql(): array - { - return $this->plannedSql; - } - - public function freeze(): void - { - $this->frozen = true; - } - - protected function write(string $message): void - { - $this->logger->notice($message, ['migration' => $this]); - } - - /** @throws IrreversibleMigration */ - protected function throwIrreversibleMigrationException(string|null $message = null): void - { - if ($message === null) { - $message = 'This migration is irreversible and cannot be reverted.'; - } - - throw new IrreversibleMigration($message); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Configuration.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Configuration.php deleted file mode 100644 index 9e1f1ce..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Configuration.php +++ /dev/null @@ -1,212 +0,0 @@ - */ - private array $migrationsDirectories = []; - - /** @var string[] */ - private array $migrationClasses = []; - - private bool $migrationsAreOrganizedByYear = false; - - private bool $migrationsAreOrganizedByYearAndMonth = false; - - private string|null $customTemplate = null; - - private bool $isDryRun = false; - - private bool $allOrNothing = false; - - private bool $transactional = true; - - private string|null $connectionName = null; - - private string|null $entityManagerName = null; - - private bool $checkDbPlatform = true; - - private MetadataStorageConfiguration|null $metadataStorageConfiguration = null; - - private bool $frozen = false; - - public function freeze(): void - { - $this->frozen = true; - } - - private function assertNotFrozen(): void - { - if ($this->frozen) { - throw FrozenConfiguration::new(); - } - } - - public function setMetadataStorageConfiguration(MetadataStorageConfiguration $metadataStorageConfiguration): void - { - $this->assertNotFrozen(); - $this->metadataStorageConfiguration = $metadataStorageConfiguration; - } - - /** @return string[] */ - public function getMigrationClasses(): array - { - return $this->migrationClasses; - } - - public function addMigrationClass(string $className): void - { - $this->assertNotFrozen(); - $this->migrationClasses[] = $className; - } - - public function getMetadataStorageConfiguration(): MetadataStorageConfiguration|null - { - return $this->metadataStorageConfiguration; - } - - public function addMigrationsDirectory(string $namespace, string $path): void - { - $this->assertNotFrozen(); - $this->migrationsDirectories[$namespace] = $path; - } - - /** @return array */ - public function getMigrationDirectories(): array - { - return $this->migrationsDirectories; - } - - public function getConnectionName(): string|null - { - return $this->connectionName; - } - - public function setConnectionName(string|null $connectionName): void - { - $this->assertNotFrozen(); - $this->connectionName = $connectionName; - } - - public function getEntityManagerName(): string|null - { - return $this->entityManagerName; - } - - public function setEntityManagerName(string|null $entityManagerName): void - { - $this->assertNotFrozen(); - $this->entityManagerName = $entityManagerName; - } - - public function setCustomTemplate(string|null $customTemplate): void - { - $this->assertNotFrozen(); - $this->customTemplate = $customTemplate; - } - - public function getCustomTemplate(): string|null - { - return $this->customTemplate; - } - - public function areMigrationsOrganizedByYear(): bool - { - return $this->migrationsAreOrganizedByYear; - } - - /** @throws MigrationException */ - public function setMigrationsAreOrganizedByYear( - bool $migrationsAreOrganizedByYear = true, - ): void { - $this->assertNotFrozen(); - $this->migrationsAreOrganizedByYear = $migrationsAreOrganizedByYear; - } - - /** @throws MigrationException */ - public function setMigrationsAreOrganizedByYearAndMonth( - bool $migrationsAreOrganizedByYearAndMonth = true, - ): void { - $this->assertNotFrozen(); - $this->migrationsAreOrganizedByYear = $migrationsAreOrganizedByYearAndMonth; - $this->migrationsAreOrganizedByYearAndMonth = $migrationsAreOrganizedByYearAndMonth; - } - - public function areMigrationsOrganizedByYearAndMonth(): bool - { - return $this->migrationsAreOrganizedByYearAndMonth; - } - - public function setIsDryRun(bool $isDryRun): void - { - $this->assertNotFrozen(); - $this->isDryRun = $isDryRun; - } - - public function isDryRun(): bool - { - return $this->isDryRun; - } - - public function setAllOrNothing(bool $allOrNothing): void - { - $this->assertNotFrozen(); - $this->allOrNothing = $allOrNothing; - } - - public function isAllOrNothing(): bool - { - return $this->allOrNothing; - } - - public function setTransactional(bool $transactional): void - { - $this->assertNotFrozen(); - $this->transactional = $transactional; - } - - public function isTransactional(): bool - { - return $this->transactional; - } - - public function setCheckDatabasePlatform(bool $checkDbPlatform): void - { - $this->checkDbPlatform = $checkDbPlatform; - } - - public function isDatabasePlatformChecked(): bool - { - return $this->checkDbPlatform; - } - - public function setMigrationOrganization(string $migrationOrganization): void - { - $this->assertNotFrozen(); - - match (strtolower($migrationOrganization)) { - self::VERSIONS_ORGANIZATION_NONE => $this->setMigrationsAreOrganizedByYearAndMonth(false), - self::VERSIONS_ORGANIZATION_BY_YEAR => $this->setMigrationsAreOrganizedByYear(), - self::VERSIONS_ORGANIZATION_BY_YEAR_AND_MONTH => $this->setMigrationsAreOrganizedByYearAndMonth(), - default => throw UnknownConfigurationValue::new('organize_migrations', $migrationOrganization), - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConfigurationFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConfigurationFile.php deleted file mode 100644 index a160216..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConfigurationFile.php +++ /dev/null @@ -1,51 +0,0 @@ -filename)) { - throw FileNotFound::new($this->filename); - } - - $params = include $this->filename; - - if ($params instanceof Connection) { - return $params; - } - - if ($params instanceof ConnectionLoader) { - return $params->getConnection(); - } - - if (is_array($params)) { - return DriverManager::getConnection($params); - } - - throw InvalidConfiguration::invalidArrayConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConnectionLoader.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConnectionLoader.php deleted file mode 100644 index bf9e3f2..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/ConnectionLoader.php +++ /dev/null @@ -1,23 +0,0 @@ -registry = $registry; - $that->defaultConnectionName = $connectionName; - - return $that; - } - - private function __construct() - { - } - - public function getConnection(string|null $name = null): Connection - { - $connection = $this->registry->getConnection($name ?? $this->defaultConnectionName); - if (! $connection instanceof Connection) { - throw InvalidConfiguration::invalidConnectionType($connection); - } - - return $connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/ConnectionNotSpecified.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/ConnectionNotSpecified.php deleted file mode 100644 index e3b9501..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Connection/Exception/ConnectionNotSpecified.php +++ /dev/null @@ -1,17 +0,0 @@ -connection; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ConfigurationFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ConfigurationFile.php deleted file mode 100644 index 9cf4025..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ConfigurationFile.php +++ /dev/null @@ -1,51 +0,0 @@ -filename)) { - throw FileNotFound::new($this->filename); - } - - $params = include $this->filename; - - if ($params instanceof EntityManagerInterface) { - return $params; - } - - if ($params instanceof EntityManagerLoader) { - return $params->getEntityManager(); - } - - throw InvalidConfiguration::invalidArrayConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/EntityManagerLoader.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/EntityManagerLoader.php deleted file mode 100644 index 2982c9a..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/EntityManagerLoader.php +++ /dev/null @@ -1,18 +0,0 @@ -entityManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ManagerRegistryEntityManager.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ManagerRegistryEntityManager.php deleted file mode 100644 index 3807894..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/EntityManager/ManagerRegistryEntityManager.php +++ /dev/null @@ -1,41 +0,0 @@ -registry = $registry; - $that->defaultManagerName = $managerName; - - return $that; - } - - private function __construct() - { - } - - public function getEntityManager(string|null $name = null): EntityManagerInterface - { - $managerName = $name ?? $this->defaultManagerName; - - $em = $this->registry->getManager($managerName); - if (! $em instanceof EntityManagerInterface) { - throw InvalidConfiguration::invalidManagerType($em); - } - - return $em; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/ConfigurationException.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/ConfigurationException.php deleted file mode 100644 index 8db929c..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Exception/ConfigurationException.php +++ /dev/null @@ -1,11 +0,0 @@ - $configurations */ - public function __construct(private readonly array $configurations) - { - } - - public function getConfiguration(): Configuration - { - $configMap = [ - 'migrations_paths' => static function ($paths, Configuration $configuration): void { - foreach ($paths as $namespace => $path) { - $configuration->addMigrationsDirectory($namespace, $path); - } - }, - 'migrations' => static function ($migrations, Configuration $configuration): void { - foreach ($migrations as $className) { - $configuration->addMigrationClass($className); - } - }, - - 'connection' => 'setConnectionName', - 'em' => 'setEntityManagerName', - - 'table_storage' => [ - 'table_name' => 'setTableName', - 'version_column_name' => 'setVersionColumnName', - 'version_column_length' => static function ($value, TableMetadataStorageConfiguration $configuration): void { - $configuration->setVersionColumnLength((int) $value); - }, - 'executed_at_column_name' => 'setExecutedAtColumnName', - 'execution_time_column_name' => 'setExecutionTimeColumnName', - ], - - 'organize_migrations' => 'setMigrationOrganization', - 'custom_template' => 'setCustomTemplate', - 'all_or_nothing' => static function ($value, Configuration $configuration): void { - $configuration->setAllOrNothing(is_bool($value) ? $value : BooleanStringFormatter::toBoolean($value, false)); - }, - 'transactional' => static function ($value, Configuration $configuration): void { - $configuration->setTransactional(is_bool($value) ? $value : BooleanStringFormatter::toBoolean($value, true)); - }, - 'check_database_platform' => static function ($value, Configuration $configuration): void { - $configuration->setCheckDatabasePlatform(is_bool($value) ? $value : BooleanStringFormatter::toBoolean($value, false)); - }, - ]; - - $object = new Configuration(); - self::applyConfigs($configMap, $object, $this->configurations); - - if ($object->getMetadataStorageConfiguration() === null) { - $object->setMetadataStorageConfiguration(new TableMetadataStorageConfiguration()); - } - - return $object; - } - - /** - * @param mixed[] $configMap - * @param array $data - */ - private static function applyConfigs(array $configMap, Configuration|TableMetadataStorageConfiguration $object, array $data): void - { - foreach ($data as $configurationKey => $configurationValue) { - if (! isset($configMap[$configurationKey])) { - throw InvalidConfigurationKey::new((string) $configurationKey); - } - - if (is_array($configMap[$configurationKey])) { - if ($configurationKey !== 'table_storage') { - throw InvalidConfigurationKey::new((string) $configurationKey); - } - - $storageConfig = new TableMetadataStorageConfiguration(); - assert($object instanceof Configuration); - $object->setMetadataStorageConfiguration($storageConfig); - self::applyConfigs($configMap[$configurationKey], $storageConfig, $configurationValue); - } else { - $callable = $configMap[$configurationKey] instanceof Closure - ? $configMap[$configurationKey] - : [$object, $configMap[$configurationKey]]; - assert(is_callable($callable)); - call_user_func( - $callable, - $configurationValue, - $object, - $data, - ); - } - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFile.php deleted file mode 100644 index 3ed3ad8..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFile.php +++ /dev/null @@ -1,35 +0,0 @@ -file = $file; - } - - /** - * @param array $directories - * - * @return array - */ - final protected function getDirectoriesRelativeToFile(array $directories, string $file): array - { - foreach ($directories as $ns => $dir) { - $path = realpath(dirname($file) . '/' . $dir); - - $directories[$ns] = $path !== false ? $path : $dir; - } - - return $directories; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFileWithFallback.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFileWithFallback.php deleted file mode 100644 index 62216c1..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationFileWithFallback.php +++ /dev/null @@ -1,61 +0,0 @@ -file !== null) { - return $this->loadConfiguration($this->file); - } - - /** - * If no config has been provided, look for default config file in the path. - */ - $defaultFiles = [ - 'migrations.xml', - 'migrations.yml', - 'migrations.yaml', - 'migrations.json', - 'migrations.php', - ]; - - foreach ($defaultFiles as $file) { - if ($this->configurationFileExists($file)) { - return $this->loadConfiguration($file); - } - } - - throw MissingConfigurationFile::new(); - } - - private function configurationFileExists(string $config): bool - { - return file_exists($config); - } - - /** @throws FileTypeNotSupported */ - private function loadConfiguration(string $file): Configuration - { - return (new FormattedFile($file))->getConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationLoader.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationLoader.php deleted file mode 100644 index cd84a43..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/ConfigurationLoader.php +++ /dev/null @@ -1,12 +0,0 @@ -configurations; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/FormattedFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/FormattedFile.php deleted file mode 100644 index 45851e8..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/FormattedFile.php +++ /dev/null @@ -1,45 +0,0 @@ -loaders = [ - 'json' => static fn ($file): ConfigurationLoader => new JsonFile($file), - 'php' => static fn ($file): ConfigurationLoader => new PhpFile($file), - 'xml' => static fn ($file): ConfigurationLoader => new XmlFile($file), - 'yaml' => static fn ($file): ConfigurationLoader => new YamlFile($file), - 'yml' => static fn ($file): ConfigurationLoader => new YamlFile($file), - ]; - } - - public function getConfiguration(): Configuration - { - if (count($this->loaders) === 0) { - $this->setDefaultLoaders(); - } - - $extension = pathinfo($this->file, PATHINFO_EXTENSION); - if (! isset($this->loaders[$extension])) { - throw InvalidConfigurationFormat::new($this->file); - } - - return $this->loaders[$extension]($this->file)->getConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/JsonFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/JsonFile.php deleted file mode 100644 index 13e1ca0..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/JsonFile.php +++ /dev/null @@ -1,46 +0,0 @@ -file)) { - throw FileNotFound::new($this->file); - } - - $contents = file_get_contents($this->file); - - assert($contents !== false); - - $config = json_decode($contents, true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw JsonNotValid::new(); - } - - if (isset($config['migrations_paths'])) { - $config['migrations_paths'] = $this->getDirectoriesRelativeToFile( - $config['migrations_paths'], - $this->file, - ); - } - - return (new ConfigurationArray($config))->getConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/PhpFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/PhpFile.php deleted file mode 100644 index d6f2888..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/PhpFile.php +++ /dev/null @@ -1,37 +0,0 @@ -file)) { - throw FileNotFound::new($this->file); - } - - $config = require $this->file; - if ($config instanceof Configuration) { - return $config; - } - - assert(is_array($config)); - if (isset($config['migrations_paths'])) { - $config['migrations_paths'] = $this->getDirectoriesRelativeToFile( - $config['migrations_paths'], - $this->file, - ); - } - - return (new ConfigurationArray($config))->getConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XML/configuration.xsd b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XML/configuration.xsd deleted file mode 100644 index c51d478..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XML/configuration.xsd +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XmlFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XmlFile.php deleted file mode 100644 index b2ee835..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/XmlFile.php +++ /dev/null @@ -1,129 +0,0 @@ -file)) { - throw FileNotFound::new($this->file); - } - - $this->validateXml($this->file); - - $rawXML = file_get_contents($this->file); - assert($rawXML !== false); - - $root = simplexml_load_string($rawXML, SimpleXMLElement::class, LIBXML_NOCDATA); - assert($root !== false); - - $config = $this->extractParameters($root, true); - - if (isset($config['all_or_nothing'])) { - $config['all_or_nothing'] = BooleanStringFormatter::toBoolean( - $config['all_or_nothing'], - false, - ); - } - - if (isset($config['transactional'])) { - $config['transactional'] = BooleanStringFormatter::toBoolean( - $config['transactional'], - true, - ); - } - - if (isset($config['migrations_paths'])) { - $config['migrations_paths'] = $this->getDirectoriesRelativeToFile( - $config['migrations_paths'], - $this->file, - ); - } - - return (new ConfigurationArray($config))->getConfiguration(); - } - - /** @return mixed[] */ - private function extractParameters(SimpleXMLElement $root, bool $loopOverNodes): array - { - $config = []; - - $itemsToCheck = $loopOverNodes ? $root->children() : $root->attributes(); - - if (! ($itemsToCheck instanceof SimpleXMLElement)) { - return $config; - } - - foreach ($itemsToCheck as $node) { - $nodeName = strtr($node->getName(), '-', '_'); - if ($nodeName === 'migrations_paths') { - $config['migrations_paths'] = []; - foreach ($node->path as $pathNode) { - $config['migrations_paths'][(string) $pathNode['namespace']] = (string) $pathNode; - } - } elseif ($nodeName === 'storage' && $node->{'table-storage'} instanceof SimpleXMLElement) { - $config['table_storage'] = $this->extractParameters($node->{'table-storage'}, false); - } elseif ($nodeName === 'migrations') { - $config['migrations'] = $this->extractMigrations($node); - } else { - $config[$nodeName] = (string) $node; - } - } - - return $config; - } - - /** @return list */ - private function extractMigrations(SimpleXMLElement $node): array - { - $migrations = []; - foreach ($node->migration as $pathNode) { - $migrations[] = (string) $pathNode; - } - - return $migrations; - } - - private function validateXml(string $file): void - { - try { - libxml_use_internal_errors(true); - - $xml = new DOMDocument(); - - if ($xml->load($file) === false) { - throw XmlNotValid::malformed(); - } - - $xsdPath = __DIR__ . DIRECTORY_SEPARATOR . 'XML' . DIRECTORY_SEPARATOR . 'configuration.xsd'; - - if ($xml->schemaValidate($xsdPath) === false) { - throw XmlNotValid::failedValidation(); - } - } finally { - libxml_clear_errors(); - libxml_use_internal_errors(false); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/YamlFile.php b/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/YamlFile.php deleted file mode 100644 index f502bbe..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Configuration/Migration/YamlFile.php +++ /dev/null @@ -1,55 +0,0 @@ -file)) { - throw FileNotFound::new($this->file); - } - - $content = file_get_contents($this->file); - - assert($content !== false); - - try { - $config = Yaml::parse($content); - } catch (ParseException) { - throw YamlNotValid::malformed(); - } - - if (! is_array($config)) { - throw YamlNotValid::invalid(); - } - - if (isset($config['migrations_paths'])) { - $config['migrations_paths'] = $this->getDirectoriesRelativeToFile( - $config['migrations_paths'], - $this->file, - ); - } - - return (new ConfigurationArray($config))->getConfiguration(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/DbalMigrator.php b/projects/priceservice/vendor/doctrine/migrations/src/DbalMigrator.php deleted file mode 100644 index ad8e09a..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/DbalMigrator.php +++ /dev/null @@ -1,140 +0,0 @@ - */ - private function executeMigrations( - MigrationPlanList $migrationsPlan, - MigratorConfiguration $migratorConfiguration, - ): array { - $allOrNothing = $migratorConfiguration->isAllOrNothing(); - - if ($allOrNothing) { - $this->assertAllMigrationsAreTransactional($migrationsPlan); - $this->connection->beginTransaction(); - } - - try { - $this->dispatcher->dispatchMigrationEvent(Events::onMigrationsMigrating, $migrationsPlan, $migratorConfiguration); - - $sql = $this->executePlan($migrationsPlan, $migratorConfiguration); - - $this->dispatcher->dispatchMigrationEvent(Events::onMigrationsMigrated, $migrationsPlan, $migratorConfiguration); - } catch (Throwable $e) { - if ($allOrNothing) { - TransactionHelper::rollbackIfInTransaction($this->connection); - } - - throw $e; - } - - if ($allOrNothing) { - TransactionHelper::commitIfInTransaction($this->connection); - } - - return $sql; - } - - private function assertAllMigrationsAreTransactional(MigrationPlanList $migrationsPlan): void - { - foreach ($migrationsPlan->getItems() as $plan) { - if (! $plan->getMigration()->isTransactional()) { - throw MigrationConfigurationConflict::migrationIsNotTransactional($plan->getMigration()); - } - } - } - - /** @return array */ - private function executePlan(MigrationPlanList $migrationsPlan, MigratorConfiguration $migratorConfiguration): array - { - $sql = []; - - foreach ($migrationsPlan->getItems() as $plan) { - $versionExecutionResult = $this->executor->execute($plan, $migratorConfiguration); - - // capture the to Schema for the migration so we have the ability to use - // it as the from Schema for the next migration when we are running a dry run - // $toSchema may be null in the case of skipped migrations - if (! $versionExecutionResult->isSkipped()) { - $migratorConfiguration->setFromSchema($versionExecutionResult->getToSchema()); - } - - $sql[(string) $plan->getVersion()] = $versionExecutionResult->getSql(); - } - - return $sql; - } - - /** @param array $sql */ - private function endMigrations( - StopwatchEvent $stopwatchEvent, - MigrationPlanList $migrationsPlan, - array $sql, - ): void { - $stopwatchEvent->stop(); - - $this->logger->notice( - 'finished in {duration}ms, used {memory} memory, {migrations_count} migrations executed, {queries_count} sql queries', - [ - 'duration' => $stopwatchEvent->getDuration(), - 'memory' => BytesFormatter::formatBytes($stopwatchEvent->getMemory()), - 'migrations_count' => count($migrationsPlan), - 'queries_count' => count($sql, COUNT_RECURSIVE) - count($sql), - ], - ); - } - - /** - * {@inheritDoc} - */ - public function migrate(MigrationPlanList $migrationsPlan, MigratorConfiguration $migratorConfiguration): array - { - if (count($migrationsPlan) === 0) { - $this->logger->notice('No migrations to execute.'); - - return []; - } - - $stopwatchEvent = $this->stopwatch->start('migrate'); - - $sql = $this->executeMigrations($migrationsPlan, $migratorConfiguration); - - $this->endMigrations($stopwatchEvent, $migrationsPlan, $sql); - - return $sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/DependencyFactory.php b/projects/priceservice/vendor/doctrine/migrations/src/DependencyFactory.php deleted file mode 100644 index fece1f5..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/DependencyFactory.php +++ /dev/null @@ -1,465 +0,0 @@ - */ - private array $inResolution = []; - - private Configuration|null $configuration = null; - - /** @var object[]|callable[] */ - private array $dependencies = []; - - private Connection|null $connection = null; - private EntityManagerInterface|null $em = null; - private EventManager|null $eventManager = null; - private bool $frozen = false; - private ConfigurationLoader $configurationLoader; - private ConnectionLoader $connectionLoader; - private EntityManagerLoader|null $emLoader = null; - - /** @var callable[] */ - private array $factories = []; - - public static function fromConnection( - ConfigurationLoader $configurationLoader, - ConnectionLoader $connectionLoader, - LoggerInterface|null $logger = null, - ): self { - $dependencyFactory = new self($logger); - $dependencyFactory->configurationLoader = $configurationLoader; - $dependencyFactory->connectionLoader = $connectionLoader; - - return $dependencyFactory; - } - - public static function fromEntityManager( - ConfigurationLoader $configurationLoader, - EntityManagerLoader $emLoader, - LoggerInterface|null $logger = null, - ): self { - $dependencyFactory = new self($logger); - $dependencyFactory->configurationLoader = $configurationLoader; - $dependencyFactory->emLoader = $emLoader; - - return $dependencyFactory; - } - - private function __construct(LoggerInterface|null $logger) - { - if ($logger === null) { - return; - } - - $this->setDefinition(LoggerInterface::class, static fn (): LoggerInterface => $logger); - } - - public function isFrozen(): bool - { - return $this->frozen; - } - - public function freeze(): void - { - $this->frozen = true; - } - - private function assertNotFrozen(): void - { - if ($this->frozen) { - throw FrozenDependencies::new(); - } - } - - public function hasEntityManager(): bool - { - return $this->emLoader !== null; - } - - public function setConfigurationLoader(ConfigurationLoader $configurationLoader): void - { - $this->assertNotFrozen(); - $this->configurationLoader = $configurationLoader; - } - - public function getConfiguration(): Configuration - { - if ($this->configuration === null) { - $this->configuration = $this->configurationLoader->getConfiguration(); - $this->frozen = true; - } - - return $this->configuration; - } - - public function getConnection(): Connection - { - if ($this->connection === null) { - $this->connection = $this->hasEntityManager() - ? $this->getEntityManager()->getConnection() - : $this->connectionLoader->getConnection($this->getConfiguration()->getConnectionName()); - $this->frozen = true; - } - - return $this->connection; - } - - public function getEntityManager(): EntityManagerInterface - { - if ($this->em === null) { - if ($this->emLoader === null) { - throw MissingDependency::noEntityManager(); - } - - $this->em = $this->emLoader->getEntityManager($this->getConfiguration()->getEntityManagerName()); - $this->frozen = true; - } - - return $this->em; - } - - public function getVersionComparator(): Comparator - { - return $this->getDependency(Comparator::class, static fn (): AlphabeticalComparator => new AlphabeticalComparator()); - } - - public function getLogger(): LoggerInterface - { - return $this->getDependency(LoggerInterface::class, static fn (): LoggerInterface => new NullLogger()); - } - - public function getEventDispatcher(): EventDispatcher - { - return $this->getDependency(EventDispatcher::class, fn (): EventDispatcher => new EventDispatcher( - $this->getConnection(), - $this->getEventManager(), - )); - } - - public function getClassNameGenerator(): ClassNameGenerator - { - return $this->getDependency(ClassNameGenerator::class, static fn (): ClassNameGenerator => new ClassNameGenerator()); - } - - public function getSchemaDumper(): SchemaDumper - { - return $this->getDependency(SchemaDumper::class, function (): SchemaDumper { - $excludedTables = []; - - $metadataConfig = $this->getConfiguration()->getMetadataStorageConfiguration(); - if ($metadataConfig instanceof TableMetadataStorageConfiguration) { - $excludedTables[] = sprintf('/^%s$/', preg_quote($metadataConfig->getTableName(), '/')); - } - - return new SchemaDumper( - $this->getConnection()->getDatabasePlatform(), - $this->getConnection()->createSchemaManager(), - $this->getMigrationGenerator(), - $this->getMigrationSqlGenerator(), - $excludedTables, - ); - }); - } - - private function getEmptySchemaProvider(): SchemaProvider - { - return $this->getDependency(EmptySchemaProvider::class, fn (): SchemaProvider => new EmptySchemaProvider($this->getConnection()->createSchemaManager())); - } - - public function hasSchemaProvider(): bool - { - try { - $this->getSchemaProvider(); - } catch (MissingDependency) { - return false; - } - - return true; - } - - public function getSchemaProvider(): SchemaProvider - { - return $this->getDependency(SchemaProvider::class, function (): SchemaProvider { - if ($this->hasEntityManager()) { - return new OrmSchemaProvider($this->getEntityManager()); - } - - throw MissingDependency::noSchemaProvider(); - }); - } - - public function getDiffGenerator(): DiffGenerator - { - return $this->getDependency(DiffGenerator::class, fn (): DiffGenerator => new DiffGenerator( - $this->getConnection()->getConfiguration(), - $this->getConnection()->createSchemaManager(), - $this->getSchemaProvider(), - $this->getConnection()->getDatabasePlatform(), - $this->getMigrationGenerator(), - $this->getMigrationSqlGenerator(), - $this->getEmptySchemaProvider(), - )); - } - - public function getSchemaDiffProvider(): SchemaDiffProvider - { - return $this->getDependency(SchemaDiffProvider::class, fn (): LazySchemaDiffProvider => new LazySchemaDiffProvider( - new DBALSchemaDiffProvider( - $this->getConnection()->createSchemaManager(), - $this->getConnection()->getDatabasePlatform(), - ), - )); - } - - private function getFileBuilder(): FileBuilder - { - return $this->getDependency(FileBuilder::class, static fn (): FileBuilder => new ConcatenationFileBuilder()); - } - - private function getParameterFormatter(): ParameterFormatter - { - return $this->getDependency(ParameterFormatter::class, fn (): ParameterFormatter => new InlineParameterFormatter($this->getConnection())); - } - - public function getMigrationsFinder(): MigrationFinder - { - return $this->getDependency(MigrationFinder::class, function (): MigrationFinder { - $configs = $this->getConfiguration(); - $needsRecursiveFinder = $configs->areMigrationsOrganizedByYear() || $configs->areMigrationsOrganizedByYearAndMonth(); - - return $needsRecursiveFinder ? new RecursiveRegexFinder() : new GlobFinder(); - }); - } - - public function getMigrationRepository(): MigrationsRepository - { - return $this->getDependency(MigrationsRepository::class, fn (): MigrationsRepository => new FilesystemMigrationsRepository( - $this->getConfiguration()->getMigrationClasses(), - $this->getConfiguration()->getMigrationDirectories(), - $this->getMigrationsFinder(), - $this->getMigrationFactory(), - )); - } - - public function getMigrationFactory(): MigrationFactory - { - return $this->getDependency(MigrationFactory::class, fn (): MigrationFactory => new DbalMigrationFactory($this->getConnection(), $this->getLogger())); - } - - public function setService(string $id, object|callable $service): void - { - $this->assertNotFrozen(); - $this->dependencies[$id] = $service; - } - - public function getMetadataStorage(): MetadataStorage - { - return $this->getDependency(MetadataStorage::class, fn (): MetadataStorage => new TableMetadataStorage( - $this->getConnection(), - $this->getVersionComparator(), - $this->getConfiguration()->getMetadataStorageConfiguration(), - $this->getMigrationRepository(), - )); - } - - private function getVersionExecutor(): Executor - { - return $this->getDependency(Executor::class, fn (): Executor => new DbalExecutor( - $this->getMetadataStorage(), - $this->getEventDispatcher(), - $this->getConnection(), - $this->getSchemaDiffProvider(), - $this->getLogger(), - $this->getParameterFormatter(), - $this->getStopwatch(), - )); - } - - public function getQueryWriter(): QueryWriter - { - return $this->getDependency(QueryWriter::class, fn (): QueryWriter => new FileQueryWriter( - $this->getFileBuilder(), - $this->getLogger(), - )); - } - - public function getVersionAliasResolver(): AliasResolver - { - return $this->getDependency(AliasResolver::class, fn (): AliasResolver => new DefaultAliasResolver( - $this->getMigrationPlanCalculator(), - $this->getMetadataStorage(), - $this->getMigrationStatusCalculator(), - )); - } - - public function getMigrationStatusCalculator(): MigrationStatusCalculator - { - return $this->getDependency(MigrationStatusCalculator::class, fn (): MigrationStatusCalculator => new CurrentMigrationStatusCalculator( - $this->getMigrationPlanCalculator(), - $this->getMetadataStorage(), - )); - } - - public function getMigrationPlanCalculator(): MigrationPlanCalculator - { - return $this->getDependency(MigrationPlanCalculator::class, fn (): MigrationPlanCalculator => new SortedMigrationPlanCalculator( - $this->getMigrationRepository(), - $this->getMetadataStorage(), - $this->getVersionComparator(), - )); - } - - public function getMigrationGenerator(): Generator - { - return $this->getDependency(Generator::class, fn (): Generator => new Generator($this->getConfiguration())); - } - - public function getMigrationSqlGenerator(): SqlGenerator - { - return $this->getDependency(SqlGenerator::class, fn (): SqlGenerator => new SqlGenerator( - $this->getConfiguration(), - $this->getConnection()->getDatabasePlatform(), - )); - } - - public function getConsoleInputMigratorConfigurationFactory(): MigratorConfigurationFactory - { - return $this->getDependency(MigratorConfigurationFactory::class, fn (): MigratorConfigurationFactory => new ConsoleInputMigratorConfigurationFactory( - $this->getConfiguration(), - )); - } - - public function getMigrationStatusInfosHelper(): MigrationStatusInfosHelper - { - return $this->getDependency(MigrationStatusInfosHelper::class, fn (): MigrationStatusInfosHelper => new MigrationStatusInfosHelper( - $this->getConfiguration(), - $this->getConnection(), - $this->getVersionAliasResolver(), - $this->getMigrationPlanCalculator(), - $this->getMigrationStatusCalculator(), - $this->getMetadataStorage(), - )); - } - - public function getMigrator(): Migrator - { - return $this->getDependency(Migrator::class, fn (): Migrator => new DbalMigrator( - $this->getConnection(), - $this->getEventDispatcher(), - $this->getVersionExecutor(), - $this->getLogger(), - $this->getStopwatch(), - )); - } - - public function getStopwatch(): Stopwatch - { - return $this->getDependency(Stopwatch::class, static fn (): Stopwatch => new Stopwatch(true)); - } - - public function getRollup(): Rollup - { - return $this->getDependency(Rollup::class, fn (): Rollup => new Rollup( - $this->getMetadataStorage(), - $this->getMigrationRepository(), - )); - } - - private function getDependency(string $id, callable $callback): mixed - { - if (! isset($this->inResolution[$id]) && array_key_exists($id, $this->factories) && ! array_key_exists($id, $this->dependencies)) { - $this->inResolution[$id] = true; - $this->dependencies[$id] = call_user_func($this->factories[$id], $this); - unset($this->inResolution); - } - - if (! array_key_exists($id, $this->dependencies)) { - $this->dependencies[$id] = $callback(); - } - - return $this->dependencies[$id]; - } - - public function setDefinition(string $id, callable $service): void - { - $this->assertNotFrozen(); - $this->factories[$id] = $service; - } - - private function getEventManager(): EventManager - { - if ($this->eventManager !== null) { - return $this->eventManager; - } - - if ($this->hasEntityManager()) { - return $this->eventManager = $this->getEntityManager()->getEventManager(); - } - - if (method_exists(Connection::class, 'getEventManager')) { - // DBAL < 4 - return $this->eventManager = $this->getConnection()->getEventManager(); - } - - return $this->eventManager = new EventManager(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Event/Listeners/AutoCommitListener.php b/projects/priceservice/vendor/doctrine/migrations/src/Event/Listeners/AutoCommitListener.php deleted file mode 100644 index a760acf..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Event/Listeners/AutoCommitListener.php +++ /dev/null @@ -1,37 +0,0 @@ -getConnection(); - $conf = $args->getMigratorConfiguration(); - - if ($conf->isDryRun() || $conn->isAutoCommit()) { - return; - } - - TransactionHelper::commitIfInTransaction($conn); - } - - /** {@inheritDoc} */ - public function getSubscribedEvents() - { - return [Events::onMigrationsMigrated]; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsEventArgs.php b/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsEventArgs.php deleted file mode 100644 index 9ef8dee..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsEventArgs.php +++ /dev/null @@ -1,38 +0,0 @@ -connection; - } - - public function getPlan(): MigrationPlanList - { - return $this->plan; - } - - public function getMigratorConfiguration(): MigratorConfiguration - { - return $this->migratorConfiguration; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsVersionEventArgs.php b/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsVersionEventArgs.php deleted file mode 100644 index f309240..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Event/MigrationsVersionEventArgs.php +++ /dev/null @@ -1,38 +0,0 @@ -connection; - } - - public function getPlan(): MigrationPlan - { - return $this->plan; - } - - public function getMigratorConfiguration(): MigratorConfiguration - { - return $this->migratorConfiguration; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/EventDispatcher.php b/projects/priceservice/vendor/doctrine/migrations/src/EventDispatcher.php deleted file mode 100644 index a71e0c7..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/EventDispatcher.php +++ /dev/null @@ -1,73 +0,0 @@ -createMigrationEventArgs($migrationsPlan, $migratorConfiguration); - - $this->dispatchEvent($eventName, $event); - } - - public function dispatchVersionEvent( - string $eventName, - MigrationPlan $plan, - MigratorConfiguration $migratorConfiguration, - ): void { - $event = $this->createMigrationsVersionEventArgs( - $plan, - $migratorConfiguration, - ); - - $this->dispatchEvent($eventName, $event); - } - - private function dispatchEvent(string $eventName, EventArgs|null $args = null): void - { - $this->eventManager->dispatchEvent($eventName, $args); - } - - private function createMigrationEventArgs( - MigrationPlanList $migrationsPlan, - MigratorConfiguration $migratorConfiguration, - ): MigrationsEventArgs { - return new MigrationsEventArgs($this->connection, $migrationsPlan, $migratorConfiguration); - } - - private function createMigrationsVersionEventArgs( - MigrationPlan $plan, - MigratorConfiguration $migratorConfiguration, - ): MigrationsVersionEventArgs { - return new MigrationsVersionEventArgs( - $this->connection, - $plan, - $migratorConfiguration, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Events.php b/projects/priceservice/vendor/doctrine/migrations/src/Events.php deleted file mode 100644 index 0d2feb9..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Events.php +++ /dev/null @@ -1,17 +0,0 @@ - $queriesByVersion */ - public function write( - string $path, - string $direction, - array $queriesByVersion, - DateTimeInterface|null $now = null, - ): bool { - $now ??= new DateTimeImmutable(); - - $string = $this->migrationFileBuilder - ->buildMigrationFile($queriesByVersion, $direction, $now); - - $path = $this->buildMigrationFilePath($path, $now); - - $this->logger->info('Writing migration file to "{path}"', ['path' => $path]); - - return file_put_contents($path, $string) !== false; - } - - private function buildMigrationFilePath(string $path, DateTimeInterface $now): string - { - if (is_dir($path)) { - $path = realpath($path); - $path .= '/doctrine_migration_' . $now->format('YmdHis') . '.sql'; - } - - return $path; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/FilesystemMigrationsRepository.php b/projects/priceservice/vendor/doctrine/migrations/src/FilesystemMigrationsRepository.php deleted file mode 100644 index 1d148fe..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/FilesystemMigrationsRepository.php +++ /dev/null @@ -1,139 +0,0 @@ - $migrationDirectories - */ - public function __construct( - array $classes, - private readonly array $migrationDirectories, - private readonly MigrationFinder $migrationFinder, - private readonly MigrationFactory $versionFactory, - ) { - $this->registerMigrations($classes); - } - - private function registerMigrationInstance(Version $version, AbstractMigration $migration): AvailableMigration - { - if (isset($this->migrations[(string) $version])) { - throw DuplicateMigrationVersion::new( - (string) $version, - (string) $version, - ); - } - - $this->migrations[(string) $version] = new AvailableMigration($version, $migration); - - return $this->migrations[(string) $version]; - } - - /** @throws MigrationException */ - public function registerMigration(string $migrationClassName): AvailableMigration - { - $this->ensureMigrationClassExists($migrationClassName); - - $version = new Version($migrationClassName); - $migration = $this->versionFactory->createVersion($migrationClassName); - - return $this->registerMigrationInstance($version, $migration); - } - - /** - * @param string[] $migrations - * - * @return AvailableMigration[] - */ - private function registerMigrations(array $migrations): array - { - $versions = []; - - foreach ($migrations as $class) { - $versions[] = $this->registerMigration($class); - } - - return $versions; - } - - public function hasMigration(string $version): bool - { - $this->loadMigrationsFromDirectories(); - - return isset($this->migrations[$version]); - } - - public function getMigration(Version $version): AvailableMigration - { - $this->loadMigrationsFromDirectories(); - - if (! isset($this->migrations[(string) $version])) { - throw MigrationClassNotFound::new((string) $version); - } - - return $this->migrations[(string) $version]; - } - - /** - * Returns a non-sorted set of migrations. - */ - public function getMigrations(): AvailableMigrationsSet - { - $this->loadMigrationsFromDirectories(); - - return new AvailableMigrationsSet($this->migrations); - } - - /** @throws MigrationException */ - private function ensureMigrationClassExists(string $class): void - { - if (! class_exists($class)) { - throw MigrationClassNotFound::new($class); - } - } - - private function loadMigrationsFromDirectories(): void - { - $migrationDirectories = $this->migrationDirectories; - - if ($this->migrationsLoaded) { - return; - } - - $this->migrationsLoaded = true; - - foreach ($migrationDirectories as $namespace => $path) { - $migrations = $this->migrationFinder->findMigrations( - $path, - $namespace, - ); - $this->registerMigrations($migrations); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/FinderException.php b/projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/FinderException.php deleted file mode 100644 index 15da805..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Finder/Exception/FinderException.php +++ /dev/null @@ -1,9 +0,0 @@ -loadMigrationClasses($includedFiles, $namespace); - $versions = []; - foreach ($classes as $class) { - $versions[] = $class->getName(); - } - - return $versions; - } - - /** - * Look up all declared classes and find those classes contained - * in the given `$files` array. - * - * @param string[] $files The set of files that were `required` - * @param string|null $namespace If not null only classes in this namespace will be returned - * - * @return ReflectionClass[] the classes in `$files` - */ - protected function loadMigrationClasses(array $files, string|null $namespace = null): array - { - $classes = []; - foreach (get_declared_classes() as $class) { - $reflectionClass = new ReflectionClass($class); - - if (! in_array($reflectionClass->getFileName(), $files, true)) { - continue; - } - - if ($namespace !== null && ! $this->isReflectionClassInNamespace($reflectionClass, $namespace)) { - continue; - } - - $classes[] = $reflectionClass; - } - - return $classes; - } - - /** @param ReflectionClass $reflectionClass */ - private function isReflectionClassInNamespace(ReflectionClass $reflectionClass, string $namespace): bool - { - return strncmp($reflectionClass->getName(), $namespace . '\\', strlen($namespace) + 1) === 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Finder/GlobFinder.php b/projects/priceservice/vendor/doctrine/migrations/src/Finder/GlobFinder.php deleted file mode 100644 index ba9780d..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Finder/GlobFinder.php +++ /dev/null @@ -1,29 +0,0 @@ -getRealPath($directory); - - $files = glob(rtrim($dir, '/') . '/Version*.php'); - if ($files === false) { - $files = []; - } - - return $this->loadMigrations($files, $namespace); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Finder/MigrationFinder.php b/projects/priceservice/vendor/doctrine/migrations/src/Finder/MigrationFinder.php deleted file mode 100644 index 0d13b39..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Finder/MigrationFinder.php +++ /dev/null @@ -1,19 +0,0 @@ -pattern = $pattern ?? sprintf( - '#^.+\\%s[^\\%s]+\\.php$#i', - DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR, - ); - } - - /** @return string[] */ - public function findMigrations(string $directory, string|null $namespace = null): array - { - $dir = $this->getRealPath($directory); - - return $this->loadMigrations( - $this->getMatches($this->createIterator($dir)), - $namespace, - ); - } - - /** @return RegexIterator> */ - private function createIterator(string $dir): RegexIterator - { - /** @phpstan-ignore return.type (https://github.com/phpstan/phpstan/issues/13325) */ - return new RegexIterator( - new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS | FilesystemIterator::FOLLOW_SYMLINKS), - RecursiveIteratorIterator::LEAVES_ONLY, - ), - $this->getPattern(), - RegexIterator::GET_MATCH, - ); - } - - private function getPattern(): string - { - return $this->pattern; - } - - /** - * @param RegexIterator> $iteratorFilesMatch - * - * @return string[] - */ - private function getMatches(RegexIterator $iteratorFilesMatch): array - { - $files = []; - foreach ($iteratorFilesMatch as $file) { - $files[] = $file[0]; - } - - return $files; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/ClassNameGenerator.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/ClassNameGenerator.php deleted file mode 100644 index 22b6f0d..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/ClassNameGenerator.php +++ /dev/null @@ -1,25 +0,0 @@ -generateVersionNumber(); - } - - private function generateVersionNumber(): string - { - $now = new DateTimeImmutable('now', new DateTimeZone('UTC')); - - return $now->format(self::VERSION_FORMAT); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/ConcatenationFileBuilder.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/ConcatenationFileBuilder.php deleted file mode 100644 index 10ebc19..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/ConcatenationFileBuilder.php +++ /dev/null @@ -1,39 +0,0 @@ - $queriesByVersion */ - public function buildMigrationFile( - array $queriesByVersion, - string $direction, - DateTimeInterface|null $now = null, - ): string { - $now ??= new DateTimeImmutable(); - $string = sprintf("-- Doctrine Migration File Generated on %s\n", $now->format('Y-m-d H:i:s')); - - foreach ($queriesByVersion as $version => $queries) { - $string .= "\n-- Version " . $version . "\n"; - - foreach ($queries as $query) { - $string .= $query->getStatement() . ";\n"; - } - } - - return $string; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/DiffGenerator.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/DiffGenerator.php deleted file mode 100644 index 3207844..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/DiffGenerator.php +++ /dev/null @@ -1,162 +0,0 @@ - $schemaManager */ - public function __construct( - private readonly DBALConfiguration $dbalConfiguration, - private readonly AbstractSchemaManager $schemaManager, - private readonly SchemaProvider $schemaProvider, - private readonly AbstractPlatform $platform, - private readonly Generator $migrationGenerator, - private readonly SqlGenerator $migrationSqlGenerator, - private readonly SchemaProvider $emptySchemaProvider, - ) { - } - - /** @throws NoChangesDetected */ - public function generate( - string $fqcn, - string|null $filterExpression, - bool $formatted = false, - bool|null $nowdocOutput = null, - int $lineLength = 120, - bool $checkDbPlatform = true, - bool $fromEmptySchema = false, - ): string { - if ($filterExpression !== null) { - $this->dbalConfiguration->setSchemaAssetsFilter( - static function ($assetName) use ($filterExpression) { - if ($assetName instanceof AbstractAsset) { - $assetName = $assetName->getName(); - } - - return preg_match($filterExpression, $assetName); - }, - ); - } - - $fromSchema = $fromEmptySchema - ? $this->createEmptySchema() - : $this->createFromSchema(); - - $toSchema = $this->createToSchema(); - - // prior to DBAL 4.0, the schema name was set to the first element in the search path, - // which is not necessarily the default schema name - if ( - ! method_exists($this->schemaManager, 'getSchemaSearchPaths') - && $this->platform->supportsSchemas() - ) { - $defaultNamespace = $toSchema->getName(); - if ($defaultNamespace !== '') { - $toSchema->createNamespace($defaultNamespace); - } - } - - if (class_exists(ComparatorConfig::class)) { - $comparator = $this->schemaManager->createComparator((new ComparatorConfig())->withReportModifiedIndexes(false)); - } else { - $comparator = $this->schemaManager->createComparator(); - } - - $upSql = $this->platform->getAlterSchemaSQL($comparator->compareSchemas($fromSchema, $toSchema)); - - $up = $this->migrationSqlGenerator->generate( - $upSql, - $formatted, - $nowdocOutput, - $lineLength, - $checkDbPlatform, - ); - - $downSql = $this->platform->getAlterSchemaSQL($comparator->compareSchemas($toSchema, $fromSchema)); - - $down = $this->migrationSqlGenerator->generate( - $downSql, - $formatted, - $nowdocOutput, - $lineLength, - $checkDbPlatform, - ); - - if ($up === '' && $down === '') { - throw NoChangesDetected::new(); - } - - return $this->migrationGenerator->generateMigration( - $fqcn, - $up, - $down, - ); - } - - private function createEmptySchema(): Schema - { - return $this->emptySchemaProvider->createSchema(); - } - - private function createFromSchema(): Schema - { - return $this->schemaManager->introspectSchema(); - } - - private function createToSchema(): Schema - { - $toSchema = $this->schemaProvider->createSchema(); - - $schemaAssetsFilter = $this->dbalConfiguration->getSchemaAssetsFilter(); - - if ($schemaAssetsFilter !== null) { - foreach ($toSchema->getTables() as $table) { - $tableName = $table->getName(); - - if ($schemaAssetsFilter($this->resolveTableName($tableName))) { - continue; - } - - $toSchema->dropTable($tableName); - } - } - - return $toSchema; - } - - /** - * Resolve a table name from its fully qualified name. The `$name` argument - * comes from Doctrine\DBAL\Schema\Table#getName which can sometimes return - * a namespaced name with the form `{namespace}.{tableName}`. This extracts - * the table name from that. - */ - private function resolveTableName(string $name): string - { - $pos = strpos($name, '.'); - - return $pos === false ? $name : substr($name, $pos + 1); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/GeneratorException.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/GeneratorException.php deleted file mode 100644 index 5e90fbc..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/Exception/GeneratorException.php +++ /dev/null @@ -1,11 +0,0 @@ - $queriesByVersion */ - public function buildMigrationFile(array $queriesByVersion, string $direction, DateTimeInterface|null $now = null): string; -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/Generator.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/Generator.php deleted file mode 100644 index 7eb5edc..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/Generator.php +++ /dev/null @@ -1,157 +0,0 @@ -; - -use Doctrine\DBAL\Schema\Schema; -use Doctrine\Migrations\AbstractMigration; - -/** - * Auto-generated Migration: Please modify to your needs! - */ -final class extends AbstractMigration -{ - public function getDescription(): string - { - return ''; - } - - public function up(Schema $schema): void - { - // this up() migration is auto-generated, please modify it to your needs - - } - - public function down(Schema $schema): void - { - // this down() migration is auto-generated, please modify it to your needs - - } -} - -TEMPLATE; - - private string|null $template = null; - - public function __construct(private readonly Configuration $configuration) - { - } - - public function generateMigration( - string $fqcn, - string|null $up = null, - string|null $down = null, - ): string { - $mch = []; - if (preg_match('~(.*)\\\\([^\\\\]+)~', $fqcn, $mch) !== 1) { - throw new InvalidArgumentException(sprintf('Invalid FQCN')); - } - - [$fqcn, $namespace, $className] = $mch; - - $dirs = $this->configuration->getMigrationDirectories(); - if (! isset($dirs[$namespace])) { - throw new InvalidArgumentException(sprintf('Path not defined for the namespace "%s"', $namespace)); - } - - $dir = $dirs[$namespace]; - - $replacements = [ - '' => $namespace, - '' => $className, - '' => $up !== null ? ' ' . implode("\n ", explode("\n", $up)) : null, - '' => $down !== null ? ' ' . implode("\n ", explode("\n", $down)) : null, - '' => $this->configuration->isTransactional() ? '' : <<<'METHOD' - - - public function isTransactional(): bool - { - return false; - } -METHOD - , - ]; - - $code = strtr($this->getTemplate(), $replacements); - $code = preg_replace('/^ +$/m', '', $code); - - $directoryHelper = new MigrationDirectoryHelper(); - $dir = $directoryHelper->getMigrationDirectory($this->configuration, $dir); - $path = $dir . '/' . $className . '.php'; - - file_put_contents($path, $code); - - return $path; - } - - private function getTemplate(): string - { - if ($this->template === null) { - $this->template = $this->loadCustomTemplate(); - - if ($this->template === null) { - $this->template = self::MIGRATION_TEMPLATE; - } - } - - return $this->template; - } - - /** @throws InvalidTemplateSpecified */ - private function loadCustomTemplate(): string|null - { - $customTemplate = $this->configuration->getCustomTemplate(); - - if ($customTemplate === null) { - return null; - } - - if (! is_file($customTemplate) || ! is_readable($customTemplate)) { - throw InvalidTemplateSpecified::notFoundOrNotReadable($customTemplate); - } - - $content = file_get_contents($customTemplate); - - if ($content === false) { - throw InvalidTemplateSpecified::notReadable($customTemplate); - } - - if (trim($content) === '') { - throw InvalidTemplateSpecified::empty($customTemplate); - } - - return $content; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Generator/SqlGenerator.php b/projects/priceservice/vendor/doctrine/migrations/src/Generator/SqlGenerator.php deleted file mode 100644 index 4fa2ca8..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Generator/SqlGenerator.php +++ /dev/null @@ -1,103 +0,0 @@ -configuration->getMetadataStorageConfiguration(); - $maxLength = $lineLength - 18 - 8; // max - php code length - indentation - foreach ($sql as $query) { - if ( - $storageConfiguration instanceof TableMetadataStorageConfiguration - && stripos($query, $storageConfiguration->getTableName()) !== false - ) { - continue; - } - - if ($formatted && strlen($query) > $maxLength) { - $query = $this->formatQuery($query); - } - - if ($nowdocOutput === true || ($nowdocOutput !== false && $formatted && strlen($query) > $maxLength )) { - $code[] = sprintf( - "\$this->addSql(<<<'SQL'\n%s\nSQL);", - preg_replace('/^/m', str_repeat(' ', 4), $query), - ); - } else { - $code[] = sprintf('$this->addSql(%s);', var_export($query, true)); - } - } - - if (count($code) !== 0 && $checkDbPlatform && $this->configuration->isDatabasePlatformChecked()) { - $currentPlatform = '\\' . get_class($this->platform); - - array_unshift( - $code, - sprintf( - <<<'PHP' -$this->abortIf( - !$this->connection->getDatabasePlatform() instanceof %s, - "Migration can only be executed safely on '%s'." -); -PHP - , - $currentPlatform, - $currentPlatform, - ), - '', - ); - } - - return implode("\n", $code); - } - - private function formatQuery(string $query): string - { - $this->formatter ??= new SqlFormatter(new NullHighlighter()); - - return $this->formatter->format($query); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/InlineParameterFormatter.php b/projects/priceservice/vendor/doctrine/migrations/src/InlineParameterFormatter.php deleted file mode 100644 index 741a5ca..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/InlineParameterFormatter.php +++ /dev/null @@ -1,83 +0,0 @@ - $value) { - $type = $types[$key] ?? 'string'; - - $formattedParameter = '[' . $this->formatParameter($value, $type) . ']'; - - $formattedParameters[] = is_string($key) - ? sprintf(':%s => %s', $key, $formattedParameter) - : $formattedParameter; - } - - return sprintf('with parameters (%s)', implode(', ', $formattedParameters)); - } - - private function formatParameter(mixed $value, mixed $type): string|int|bool|float|null - { - if (is_string($type) && Type::hasType($type)) { - return Type::getType($type)->convertToDatabaseValue( - $value, - $this->connection->getDatabasePlatform(), - ); - } - - return $this->parameterToString($value); - } - - /** @param int[]|bool[]|string[]|float[]|array|int|string|float|bool $value */ - private function parameterToString(array|int|string|float|bool $value): string - { - if (is_array($value)) { - return implode(', ', array_map($this->parameterToString(...), $value)); - } - - if (is_int($value) || is_string($value) || is_float($value)) { - return (string) $value; - } - - if (is_bool($value)) { - return $value === true ? 'true' : 'false'; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigration.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigration.php deleted file mode 100644 index 6e1dffa..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigration.php +++ /dev/null @@ -1,31 +0,0 @@ -version; - } - - public function getMigration(): AbstractMigration - { - return $this->migration; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsList.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsList.php deleted file mode 100644 index 94e5625..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsList.php +++ /dev/null @@ -1,86 +0,0 @@ -items = array_values($items); - } - - /** @return AvailableMigration[] */ - public function getItems(): array - { - return $this->items; - } - - public function getFirst(int $offset = 0): AvailableMigration - { - if (! isset($this->items[$offset])) { - throw NoMigrationsFoundWithCriteria::new('first' . ($offset > 0 ? '+' . $offset : '')); - } - - return $this->items[$offset]; - } - - public function getLast(int $offset = 0): AvailableMigration - { - $offset = count($this->items) - 1 - (-1 * $offset); - if (! isset($this->items[$offset])) { - throw NoMigrationsFoundWithCriteria::new('last' . ($offset > 0 ? '+' . $offset : '')); - } - - return $this->items[$offset]; - } - - public function count(): int - { - return count($this->items); - } - - public function hasMigration(Version $version): bool - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return true; - } - } - - return false; - } - - public function getMigration(Version $version): AvailableMigration - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return $migration; - } - } - - throw MigrationNotAvailable::forVersion($version); - } - - public function newSubset(ExecutedMigrationsList $executedMigrations): self - { - return new self(array_filter($this->getItems(), static fn (AvailableMigration $migration): bool => ! $executedMigrations->hasMigration($migration->getVersion()))); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsSet.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsSet.php deleted file mode 100644 index a166e1e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/AvailableMigrationsSet.php +++ /dev/null @@ -1,60 +0,0 @@ -items = array_values($items); - } - - /** @return AvailableMigration[] */ - public function getItems(): array - { - return $this->items; - } - - public function count(): int - { - return count($this->items); - } - - public function hasMigration(Version $version): bool - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return true; - } - } - - return false; - } - - public function getMigration(Version $version): AvailableMigration - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return $migration; - } - } - - throw MigrationNotAvailable::forVersion($version); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigration.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigration.php deleted file mode 100644 index 418a1b4..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigration.php +++ /dev/null @@ -1,37 +0,0 @@ -executionTime; - } - - public function getExecutedAt(): DateTimeImmutable|null - { - return $this->executedAt; - } - - public function getVersion(): Version - { - return $this->version; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigrationsList.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigrationsList.php deleted file mode 100644 index bfc32c6..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/ExecutedMigrationsList.php +++ /dev/null @@ -1,87 +0,0 @@ -items = array_values($items); - } - - /** @return ExecutedMigration[] */ - public function getItems(): array - { - return $this->items; - } - - public function getFirst(int $offset = 0): ExecutedMigration - { - if (! isset($this->items[$offset])) { - throw NoMigrationsFoundWithCriteria::new('first' . ($offset > 0 ? '+' . $offset : '')); - } - - return $this->items[$offset]; - } - - public function getLast(int $offset = 0): ExecutedMigration - { - $offset = count($this->items) - 1 - (-1 * $offset); - if (! isset($this->items[$offset])) { - throw NoMigrationsFoundWithCriteria::new('last' . ($offset > 0 ? '+' . $offset : '')); - } - - return $this->items[$offset]; - } - - public function count(): int - { - return count($this->items); - } - - public function hasMigration(Version $version): bool - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return true; - } - } - - return false; - } - - public function getMigration(Version $version): ExecutedMigration - { - foreach ($this->items as $migration) { - if ($migration->getVersion()->equals($version)) { - return $migration; - } - } - - throw MigrationNotExecuted::new((string) $version); - } - - public function unavailableSubset(AvailableMigrationsList $availableMigrations): self - { - return new self(array_filter($this->getItems(), static fn (ExecutedMigration $migration): bool => ! $availableMigrations->hasMigration($migration->getVersion()))); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlan.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlan.php deleted file mode 100644 index 75eb31e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlan.php +++ /dev/null @@ -1,54 +0,0 @@ -version; - } - - public function getResult(): ExecutionResult|null - { - return $this->result; - } - - public function markAsExecuted(ExecutionResult $result): void - { - if ($this->result !== null) { - throw PlanAlreadyExecuted::new(); - } - - $this->result = $result; - } - - public function getMigration(): AbstractMigration - { - return $this->migration; - } - - public function getDirection(): string - { - return $this->direction; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlanList.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlanList.php deleted file mode 100644 index e515eb1..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/MigrationPlanList.php +++ /dev/null @@ -1,59 +0,0 @@ -items); - } - - /** @return MigrationPlan[] */ - public function getItems(): array - { - return $this->items; - } - - public function getDirection(): string - { - return $this->direction; - } - - public function getFirst(): MigrationPlan - { - if (count($this->items) === 0) { - throw NoMigrationsFoundWithCriteria::new('first'); - } - - return reset($this->items); - } - - public function getLast(): MigrationPlan - { - if (count($this->items) === 0) { - throw NoMigrationsFoundWithCriteria::new('last'); - } - - return end($this->items); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorage.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorage.php deleted file mode 100644 index 79b1821..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorage.php +++ /dev/null @@ -1,21 +0,0 @@ - getSql(ExecutionResult $result); */ -interface MetadataStorage -{ - public function ensureInitialized(): void; - - public function getExecutedMigrations(): ExecutedMigrationsList; - - public function complete(ExecutionResult $result): void; - - public function reset(): void; -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorageConfiguration.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorageConfiguration.php deleted file mode 100644 index ffbf5e0..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/MetadataStorageConfiguration.php +++ /dev/null @@ -1,9 +0,0 @@ - */ - private readonly AbstractSchemaManager $schemaManager; - - private readonly AbstractPlatform $platform; - private readonly TableMetadataStorageConfiguration $configuration; - - public function __construct( - private readonly Connection $connection, - private readonly MigrationsComparator $comparator, - MetadataStorageConfiguration|null $configuration = null, - private readonly MigrationsRepository|null $migrationRepository = null, - ) { - $this->schemaManager = $connection->createSchemaManager(); - $this->platform = $connection->getDatabasePlatform(); - - if ($configuration !== null && ! ($configuration instanceof TableMetadataStorageConfiguration)) { - throw new InvalidArgumentException(sprintf( - '%s accepts only %s as configuration', - self::class, - TableMetadataStorageConfiguration::class, - )); - } - - $this->configuration = $configuration ?? new TableMetadataStorageConfiguration(); - } - - public function getExecutedMigrations(): ExecutedMigrationsList - { - if (! $this->isInitialized()) { - return new ExecutedMigrationsList([]); - } - - $this->checkInitialization(); - $rows = $this->connection->fetchAllAssociative(sprintf('SELECT * FROM %s', $this->configuration->getTableName())); - - $migrations = []; - foreach ($rows as $row) { - $row = array_change_key_case($row, CASE_LOWER); - - $version = new Version($row[strtolower($this->configuration->getVersionColumnName())]); - - $executedAt = $row[strtolower($this->configuration->getExecutedAtColumnName())] ?? ''; - $executedAt = $executedAt !== '' - ? DateTimeImmutable::createFromFormat($this->platform->getDateTimeFormatString(), $executedAt) - : null; - - $executionTime = isset($row[strtolower($this->configuration->getExecutionTimeColumnName())]) - ? floatval($row[strtolower($this->configuration->getExecutionTimeColumnName())] / 1000) - : null; - - $migration = new ExecutedMigration( - $version, - $executedAt instanceof DateTimeImmutable ? $executedAt : null, - $executionTime, - ); - - $migrations[(string) $version] = $migration; - } - - uasort($migrations, fn (ExecutedMigration $a, ExecutedMigration $b): int => $this->comparator->compare($a->getVersion(), $b->getVersion())); - - return new ExecutedMigrationsList($migrations); - } - - public function reset(): void - { - $this->checkInitialization(); - - $this->connection->executeStatement( - sprintf( - 'DELETE FROM %s WHERE 1 = 1', - $this->configuration->getTableName(), - ), - ); - } - - public function complete(ExecutionResult $result): void - { - $this->checkInitialization(); - - if ($result->getDirection() === Direction::DOWN) { - $this->connection->delete($this->configuration->getTableName(), [ - $this->configuration->getVersionColumnName() => (string) $result->getVersion(), - ]); - } else { - $this->connection->insert($this->configuration->getTableName(), [ - $this->configuration->getVersionColumnName() => (string) $result->getVersion(), - $this->configuration->getExecutedAtColumnName() => $result->getExecutedAt(), - $this->configuration->getExecutionTimeColumnName() => $result->getTime() === null ? null : (int) round($result->getTime() * 1000), - ], [ - Types::STRING, - Types::DATETIME_IMMUTABLE, - Types::INTEGER, - ]); - } - } - - /** @return iterable */ - public function getSql(ExecutionResult $result): iterable - { - yield new Query('-- Version ' . (string) $result->getVersion() . ' update table metadata'); - - if ($result->getDirection() === Direction::DOWN) { - yield new Query(sprintf( - 'DELETE FROM %s WHERE %s = %s', - $this->configuration->getTableName(), - $this->configuration->getVersionColumnName(), - $this->connection->quote((string) $result->getVersion()), - )); - - return; - } - - yield new Query(sprintf( - 'INSERT INTO %s (%s, %s, %s) VALUES (%s, %s, 0)', - $this->configuration->getTableName(), - $this->configuration->getVersionColumnName(), - $this->configuration->getExecutedAtColumnName(), - $this->configuration->getExecutionTimeColumnName(), - $this->connection->quote((string) $result->getVersion()), - $this->connection->quote(($result->getExecutedAt() ?? new DateTimeImmutable())->format('Y-m-d H:i:s')), - )); - } - - public function ensureInitialized(): void - { - if (! $this->isInitialized()) { - $expectedSchemaChangelog = $this->getExpectedTable(); - $this->schemaManager->createTable($expectedSchemaChangelog); - $this->schemaUpToDate = true; - $this->isInitialized = true; - - return; - } - - $this->isInitialized = true; - $expectedSchemaChangelog = $this->getExpectedTable(); - $diff = $this->needsUpdate($expectedSchemaChangelog); - if ($diff === null) { - $this->schemaUpToDate = true; - - return; - } - - $this->schemaUpToDate = true; - $this->schemaManager->alterTable($diff); - $this->updateMigratedVersionsFromV1orV2toV3(); - } - - private function needsUpdate(Table $expectedTable): TableDiff|null - { - if ($this->schemaUpToDate) { - return null; - } - - if (class_exists(ComparatorConfig::class)) { - $comparator = $this->schemaManager->createComparator((new ComparatorConfig())->withReportModifiedIndexes(false)); - } else { - $comparator = $this->schemaManager->createComparator(); - } - - $currentTable = $this->schemaManager->introspectTable($this->configuration->getTableName()); - $diff = $comparator->compareTables($currentTable, $expectedTable); - - return $diff->isEmpty() ? null : $diff; - } - - private function isInitialized(): bool - { - if ($this->isInitialized) { - return $this->isInitialized; - } - - if ($this->connection instanceof PrimaryReadReplicaConnection) { - $this->connection->ensureConnectedToPrimary(); - } - - return $this->schemaManager->tablesExist([$this->configuration->getTableName()]); - } - - private function checkInitialization(): void - { - if (! $this->isInitialized()) { - throw MetadataStorageError::notInitialized(); - } - - $expectedTable = $this->getExpectedTable(); - - if ($this->needsUpdate($expectedTable) !== null) { - throw MetadataStorageError::notUpToDate(); - } - } - - private function getExpectedTable(): Table - { - $schemaChangelog = new Table($this->configuration->getTableName()); - - $schemaChangelog->addColumn( - $this->configuration->getVersionColumnName(), - 'string', - ['notnull' => true, 'length' => $this->configuration->getVersionColumnLength()], - ); - $schemaChangelog->addColumn($this->configuration->getExecutedAtColumnName(), 'datetime', ['notnull' => false]); - $schemaChangelog->addColumn($this->configuration->getExecutionTimeColumnName(), 'integer', ['notnull' => false]); - - if (class_exists(PrimaryKeyConstraint::class)) { - $constraint = PrimaryKeyConstraint::editor() - ->setColumnNames(UnqualifiedName::unquoted($this->configuration->getVersionColumnName())) - ->create(); - - $schemaChangelog->addPrimaryKeyConstraint($constraint); - } else { - $schemaChangelog->setPrimaryKey([$this->configuration->getVersionColumnName()]); - } - - return $schemaChangelog; - } - - private function updateMigratedVersionsFromV1orV2toV3(): void - { - if ($this->migrationRepository === null) { - return; - } - - $availableMigrations = $this->migrationRepository->getMigrations()->getItems(); - $executedMigrations = $this->getExecutedMigrations()->getItems(); - - foreach ($availableMigrations as $availableMigration) { - foreach ($executedMigrations as $k => $executedMigration) { - if ($this->isAlreadyV3Format($availableMigration, $executedMigration)) { - continue; - } - - $this->connection->update( - $this->configuration->getTableName(), - [ - $this->configuration->getVersionColumnName() => (string) $availableMigration->getVersion(), - ], - [ - $this->configuration->getVersionColumnName() => (string) $executedMigration->getVersion(), - ], - ); - unset($executedMigrations[$k]); - } - } - } - - private function isAlreadyV3Format(AvailableMigration $availableMigration, ExecutedMigration $executedMigration): bool - { - return (string) $availableMigration->getVersion() === (string) $executedMigration->getVersion() - || strpos( - (string) $availableMigration->getVersion(), - (string) $executedMigration->getVersion(), - ) !== strlen((string) $availableMigration->getVersion()) - - strlen((string) $executedMigration->getVersion()); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/TableMetadataStorageConfiguration.php b/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/TableMetadataStorageConfiguration.php deleted file mode 100644 index 64a57d1..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Metadata/Storage/TableMetadataStorageConfiguration.php +++ /dev/null @@ -1,71 +0,0 @@ -tableName; - } - - public function setTableName(string $tableName): void - { - $this->tableName = $tableName; - } - - /** @return non-empty-string */ - public function getVersionColumnName(): string - { - return $this->versionColumnName; - } - - /** @param non-empty-string $versionColumnName */ - public function setVersionColumnName(string $versionColumnName): void - { - $this->versionColumnName = $versionColumnName; - } - - public function getVersionColumnLength(): int - { - return $this->versionColumnLength; - } - - public function setVersionColumnLength(int $versionColumnLength): void - { - $this->versionColumnLength = $versionColumnLength; - } - - public function getExecutedAtColumnName(): string - { - return $this->executedAtColumnName; - } - - public function setExecutedAtColumnName(string $executedAtColumnName): void - { - $this->executedAtColumnName = $executedAtColumnName; - } - - public function getExecutionTimeColumnName(): string - { - return $this->executionTimeColumnName; - } - - public function setExecutionTimeColumnName(string $executionTimeColumnName): void - { - $this->executionTimeColumnName = $executionTimeColumnName; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/MigrationsRepository.php b/projects/priceservice/vendor/doctrine/migrations/src/MigrationsRepository.php deleted file mode 100644 index 56663ae..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/MigrationsRepository.php +++ /dev/null @@ -1,18 +0,0 @@ - A list of SQL statements executed, grouped by migration version */ - public function migrate(MigrationPlanList $migrationsPlan, MigratorConfiguration $migratorConfiguration): array; -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/MigratorConfiguration.php b/projects/priceservice/vendor/doctrine/migrations/src/MigratorConfiguration.php deleted file mode 100644 index 01e7ee1..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/MigratorConfiguration.php +++ /dev/null @@ -1,88 +0,0 @@ -dryRun; - } - - public function setDryRun(bool $dryRun): self - { - $this->dryRun = $dryRun; - - return $this; - } - - public function getTimeAllQueries(): bool - { - return $this->timeAllQueries; - } - - public function setTimeAllQueries(bool $timeAllQueries): self - { - $this->timeAllQueries = $timeAllQueries; - - return $this; - } - - public function getNoMigrationException(): bool - { - return $this->noMigrationException; - } - - public function setNoMigrationException(bool $noMigrationException = false): self - { - $this->noMigrationException = $noMigrationException; - - return $this; - } - - public function isAllOrNothing(): bool - { - return $this->allOrNothing; - } - - public function setAllOrNothing(bool $allOrNothing): self - { - $this->allOrNothing = $allOrNothing; - - return $this; - } - - public function getFromSchema(): Schema|null - { - return $this->fromSchema; - } - - public function setFromSchema(Schema $fromSchema): self - { - $this->fromSchema = $fromSchema; - - return $this; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/ParameterFormatter.php b/projects/priceservice/vendor/doctrine/migrations/src/ParameterFormatter.php deleted file mode 100644 index c6a152a..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/ParameterFormatter.php +++ /dev/null @@ -1,22 +0,0 @@ - $schemaManager- */ - public function __construct( - private readonly AbstractSchemaManager $schemaManager, - private readonly AbstractPlatform $platform, - ) { - } - - public function createFromSchema(): Schema - { - return $this->schemaManager->introspectSchema(); - } - - public function createToSchema(Schema $fromSchema): Schema - { - return clone $fromSchema; - } - - /** @return string[] */ - public function getSqlDiffToMigrate(Schema $fromSchema, Schema $toSchema): array - { - if (class_exists(ComparatorConfig::class)) { - $comparator = $this->schemaManager->createComparator((new ComparatorConfig())->withReportModifiedIndexes(false)); - } else { - $comparator = $this->schemaManager->createComparator(); - } - - return $this->platform->getAlterSchemaSQL( - $comparator->compareSchemas($fromSchema, $toSchema), - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Provider/EmptySchemaProvider.php b/projects/priceservice/vendor/doctrine/migrations/src/Provider/EmptySchemaProvider.php deleted file mode 100644 index 3439124..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Provider/EmptySchemaProvider.php +++ /dev/null @@ -1,28 +0,0 @@ - $schemaManager */ - public function __construct(private readonly AbstractSchemaManager $schemaManager) - { - } - - public function createSchema(): Schema - { - return new Schema([], [], $this->schemaManager->createSchemaConfig()); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Provider/Exception/NoMappingFound.php b/projects/priceservice/vendor/doctrine/migrations/src/Provider/Exception/NoMappingFound.php deleted file mode 100644 index fd5fc51..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Provider/Exception/NoMappingFound.php +++ /dev/null @@ -1,15 +0,0 @@ -originalSchemaManipulator; - - if (PHP_VERSION_ID < 80400) { - return LazySchema::createLazyProxy(static fn () => $originalSchemaManipulator->createFromSchema()); - } - - $reflector = new ReflectionClass(Schema::class); - - return $reflector->newLazyProxy( - static fn () => $originalSchemaManipulator->createFromSchema(), - ); - } - - public function createToSchema(Schema $fromSchema): Schema - { - $originalSchemaManipulator = $this->originalSchemaManipulator; - - if ($fromSchema instanceof LazySchema && ! $fromSchema->isLazyObjectInitialized()) { - return LazySchema::createLazyProxy(static fn () => $originalSchemaManipulator->createToSchema($fromSchema)); - } - - if (PHP_VERSION_ID >= 80400) { - $reflector = new ReflectionClass(Schema::class); - - if ($reflector->isUninitializedLazyObject($fromSchema)) { - return $reflector->newLazyProxy( - static function () use ($originalSchemaManipulator, $fromSchema, $reflector) { - /* $this->originalSchemaManipulator may return a lazy - * object, for instance DBALSchemaDiffProvider just clones $fromSchema, - * which we know is lazy at this point of execution */ - return $reflector->initializeLazyObject( - $originalSchemaManipulator->createToSchema($fromSchema), - ); - }, - ); - } - } - - return $this->originalSchemaManipulator->createToSchema($fromSchema); - } - - /** @return string[] */ - public function getSqlDiffToMigrate(Schema $fromSchema, Schema $toSchema): array - { - if ( - $toSchema instanceof LazySchema - && ! $toSchema->isLazyObjectInitialized() - ) { - return []; - } - - if (PHP_VERSION_ID >= 80400) { - $reflector = new ReflectionClass(Schema::class); - - if ($reflector->isUninitializedLazyObject($toSchema)) { - return []; - } - } - - return $this->originalSchemaManipulator->getSqlDiffToMigrate($fromSchema, $toSchema); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Provider/OrmSchemaProvider.php b/projects/priceservice/vendor/doctrine/migrations/src/Provider/OrmSchemaProvider.php deleted file mode 100644 index 750589e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Provider/OrmSchemaProvider.php +++ /dev/null @@ -1,41 +0,0 @@ -entityManager = $em; - } - - public function createSchema(): Schema - { - /** @var array> $metadata */ - $metadata = $this->entityManager->getMetadataFactory()->getAllMetadata(); - - usort($metadata, static fn (ClassMetadata $a, ClassMetadata $b): int => $a->getTableName() <=> $b->getTableName()); - - $tool = new SchemaTool($this->entityManager); - - return $tool->getSchemaFromMetadata($metadata); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Provider/SchemaDiffProvider.php b/projects/priceservice/vendor/doctrine/migrations/src/Provider/SchemaDiffProvider.php deleted file mode 100644 index 3343719..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Provider/SchemaDiffProvider.php +++ /dev/null @@ -1,23 +0,0 @@ -toSchema = $schema; - } - - public function createSchema(): Schema - { - return $this->toSchema; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Query/Exception/InvalidArguments.php b/projects/priceservice/vendor/doctrine/migrations/src/Query/Exception/InvalidArguments.php deleted file mode 100644 index df73ab6..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Query/Exception/InvalidArguments.php +++ /dev/null @@ -1,23 +0,0 @@ - count($parameters)) { - throw InvalidArguments::wrongTypesArgumentCount($statement, count($parameters), count($types)); - } - } - - public function __toString(): string - { - return $this->statement; - } - - public function getStatement(): string - { - return $this->statement; - } - - /** @return mixed[] */ - public function getParameters(): array - { - return $this->parameters; - } - - /** @return mixed[] */ - public function getTypes(): array - { - return $this->types; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/QueryWriter.php b/projects/priceservice/vendor/doctrine/migrations/src/QueryWriter.php deleted file mode 100644 index 9868d7a..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/QueryWriter.php +++ /dev/null @@ -1,22 +0,0 @@ - $queriesByVersion */ - public function write( - string $path, - string $direction, - array $queriesByVersion, - ): bool; -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Rollup.php b/projects/priceservice/vendor/doctrine/migrations/src/Rollup.php deleted file mode 100644 index 662faaa..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Rollup.php +++ /dev/null @@ -1,48 +0,0 @@ -migrationRepository->getMigrations(); - - if (count($versions) === 0) { - throw RollupFailed::noMigrationsFound(); - } - - if (count($versions) > 1) { - throw RollupFailed::tooManyMigrations(); - } - - $this->metadataStorage->reset(); - - $result = new ExecutionResult($versions->getItems()[0]->getVersion()); - $this->metadataStorage->complete($result); - - return $result->getVersion(); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/SchemaDumper.php b/projects/priceservice/vendor/doctrine/migrations/src/SchemaDumper.php deleted file mode 100644 index a2c8f8c..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/SchemaDumper.php +++ /dev/null @@ -1,169 +0,0 @@ - $schemaManager - * @param string[] $excludedTablesRegexes - */ - public function __construct( - private readonly AbstractPlatform $platform, - private readonly AbstractSchemaManager $schemaManager, - private readonly Generator $migrationGenerator, - private readonly SqlGenerator $migrationSqlGenerator, - private readonly array $excludedTablesRegexes = [], - ) { - } - - /** - * @param string[] $excludedTablesRegexes - * - * @throws NoTablesFound - */ - public function dump( - string $fqcn, - array $excludedTablesRegexes = [], - bool $formatted = false, - bool $nowdocOutput = false, - int $lineLength = 120, - ): string { - $schema = $this->schemaManager->introspectSchema(); - - $up = []; - $down = []; - - foreach ($schema->getTables() as $table) { - if ($this->shouldSkipTable($table, $excludedTablesRegexes)) { - continue; - } - - $upSql = $this->platform->getCreateTableSQL($table); - - $upCode = $this->migrationSqlGenerator->generate( - $upSql, - $formatted, - $nowdocOutput, - $lineLength, - ); - - if ($upCode !== '') { - $up[] = $upCode; - } - - if (method_exists($table, 'getObjectName')) { - $tableName = $table->getObjectName()->toSQL($this->platform); - } else { - $tableName = $table->getQuotedName($this->platform); - } - - $downSql = [$this->platform->getDropTableSQL($tableName)]; - $downCode = $this->migrationSqlGenerator->generate( - $downSql, - $formatted, - $nowdocOutput, - $lineLength, - ); - - if ($downCode === '') { - continue; - } - - $down[] = $downCode; - } - - if (count($up) === 0) { - throw NoTablesFound::new(); - } - - $up = implode("\n", $up); - $down = implode("\n", $down); - - return $this->migrationGenerator->generateMigration( - $fqcn, - $up, - $down, - ); - } - - /** @param string[] $excludedTablesRegexes */ - private function shouldSkipTable(Table $table, array $excludedTablesRegexes): bool - { - foreach (array_merge($excludedTablesRegexes, $this->excludedTablesRegexes) as $regex) { - if (self::pregMatch($regex, $table->getName()) !== 0) { - return true; - } - } - - return false; - } - - /** - * A local wrapper for "preg_match" which will throw a InvalidArgumentException if there - * is an internal error in the PCRE engine. - * Copied from https://github.com/symfony/symfony/blob/62216ea67762b18982ca3db73c391b0748a49d49/src/Symfony/Component/Yaml/Parser.php#L1072-L1090 - * - * @internal - * - * @param mixed[] $matches - * @param int-mask-of $flags - * - * @phpstan-ignore parameterByRef.unusedType - */ - private static function pregMatch(string $pattern, string $subject, array|null &$matches = null, int $flags = 0, int $offset = 0): int - { - $errorMessages = []; - set_error_handler(static function (int $severity, string $message) use (&$errorMessages): bool { - $errorMessages[] = $message; - - return true; - }); - - try { - $ret = preg_match($pattern, $subject, $matches, $flags, $offset); - } finally { - restore_error_handler(); - } - - if ($ret === false) { - throw new InvalidArgumentException(match (preg_last_error()) { - PREG_INTERNAL_ERROR => sprintf('Internal PCRE error, please check your Regex. Reported errors: %s.', implode(', ', $errorMessages)), - default => preg_last_error_msg(), - }); - } - - return $ret; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/BooleanStringFormatter.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/BooleanStringFormatter.php deleted file mode 100644 index 187e903..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/BooleanStringFormatter.php +++ /dev/null @@ -1,27 +0,0 @@ - true, - 'false', '0' => false, - default => $default, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/BytesFormatter.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/BytesFormatter.php deleted file mode 100644 index d63062e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/BytesFormatter.php +++ /dev/null @@ -1,27 +0,0 @@ -setAliases(['current']) - ->setDescription('Outputs the current version'); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $aliasResolver = $this->getDependencyFactory()->getVersionAliasResolver(); - - $version = $aliasResolver->resolveVersionAlias('current'); - if ((string) $version === '0') { - $description = '(No migration executed yet)'; - } else { - try { - $availableMigration = $this->getDependencyFactory()->getMigrationRepository()->getMigration($version); - $description = $availableMigration->getMigration()->getDescription(); - } catch (MigrationClassNotFound) { - $description = '(Migration info not available)'; - } - } - - $this->io->text(sprintf( - "%s%s\n", - (string) $version, - $description !== '' ? ' - ' . $description : '', - )); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DiffCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DiffCommand.php deleted file mode 100644 index ec82d8c..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DiffCommand.php +++ /dev/null @@ -1,203 +0,0 @@ -setAliases(['diff']) - ->setDescription('Generate a migration by comparing your current database to your mapping information.') - ->setHelp(<<<'EOT' -The %command.name% command generates a migration by comparing your current database to your mapping information: - - %command.full_name% - -EOT) - ->addOption( - 'namespace', - null, - InputOption::VALUE_REQUIRED, - 'The namespace to use for the migration (must be in the list of configured namespaces)', - ) - ->addOption( - 'filter-expression', - null, - InputOption::VALUE_REQUIRED, - 'Tables which are filtered by Regular Expression.', - ) - ->addOption( - 'formatted', - null, - InputOption::VALUE_NONE, - 'Format the generated SQL.', - ) - ->addOption( - 'nowdoc', - null, - InputOption::VALUE_NEGATABLE, - 'Output the generated SQL as a nowdoc string (always active for formatted queries).', - ) - ->addOption( - 'line-length', - null, - InputOption::VALUE_REQUIRED, - 'Max line length of unformatted lines.', - '120', - ) - ->addOption( - 'check-database-platform', - null, - InputOption::VALUE_OPTIONAL, - 'Check Database Platform to the generated code.', - false, - ) - ->addOption( - 'allow-empty-diff', - null, - InputOption::VALUE_NONE, - 'Do not throw an exception when no changes are detected.', - ) - ->addOption( - 'from-empty-schema', - null, - InputOption::VALUE_NONE, - 'Generate a full migration as if the current database was empty.', - ); - } - - /** @throws InvalidOptionUsage */ - protected function execute( - InputInterface $input, - OutputInterface $output, - ): int { - $filterExpression = (string) $input->getOption('filter-expression'); - if ($filterExpression === '') { - $filterExpression = null; - } - - $formatted = filter_var($input->getOption('formatted'), FILTER_VALIDATE_BOOLEAN); - $nowdocOutput = filter_var($input->getOption('nowdoc'), FILTER_VALIDATE_BOOLEAN); - $lineLength = (int) $input->getOption('line-length'); - $allowEmptyDiff = $input->getOption('allow-empty-diff'); - $checkDbPlatform = filter_var($input->getOption('check-database-platform'), FILTER_VALIDATE_BOOLEAN); - $fromEmptySchema = $input->getOption('from-empty-schema'); - - if ($formatted) { - if (! class_exists(SqlFormatter::class)) { - throw InvalidOptionUsage::new( - 'The "--formatted" option can only be used if the sql formatter is installed. Please run "composer require doctrine/sql-formatter".', - ); - } - } - - $namespace = $this->getNamespace($input, $output); - - $statusCalculator = $this->getDependencyFactory()->getMigrationStatusCalculator(); - $executedUnavailableMigrations = $statusCalculator->getExecutedUnavailableMigrations(); - $newMigrations = $statusCalculator->getNewMigrations(); - - if (! $this->checkNewMigrationsOrExecutedUnavailable($newMigrations, $executedUnavailableMigrations, $input)) { - $this->io->error('Migration cancelled!'); - - return 3; - } - - $fqcn = $this->getDependencyFactory()->getClassNameGenerator()->generateClassName($namespace); - $diffGenerator = $this->getDependencyFactory()->getDiffGenerator(); - - try { - $path = $diffGenerator->generate( - $fqcn, - $filterExpression, - $formatted, - $nowdocOutput, - $lineLength, - $checkDbPlatform, - $fromEmptySchema, - ); - } catch (NoChangesDetected $exception) { - if ($allowEmptyDiff) { - $this->io->error($exception->getMessage()); - - return 0; - } - - throw $exception; - } - - $this->io->text([ - sprintf('Generated new migration class to "%s"', $path), - '', - sprintf( - 'To run just this migration for testing purposes, you can use migrations:execute --up "%s"', - addslashes($fqcn), - ), - '', - sprintf( - 'To revert the migration you can use migrations:execute --down "%s"', - addslashes($fqcn), - ), - '', - ]); - - return 0; - } - - private function checkNewMigrationsOrExecutedUnavailable( - AvailableMigrationsList $newMigrations, - ExecutedMigrationsList $executedUnavailableMigrations, - InputInterface $input, - ): bool { - if (count($newMigrations) === 0 && count($executedUnavailableMigrations) === 0) { - return true; - } - - if (count($newMigrations) !== 0) { - $this->io->warning(sprintf( - 'You have %d available migrations to execute.', - count($newMigrations), - )); - } - - if (count($executedUnavailableMigrations) !== 0) { - $this->io->warning(sprintf( - 'You have %d previously executed migrations in the database that are not registered migrations.', - count($executedUnavailableMigrations), - )); - } - - return $this->canExecute('Are you sure you wish to continue?', $input); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DoctrineCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DoctrineCommand.php deleted file mode 100644 index c1003bc..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DoctrineCommand.php +++ /dev/null @@ -1,189 +0,0 @@ -addOption( - 'configuration', - null, - InputOption::VALUE_REQUIRED, - 'The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]', - ); - - $this->addOption( - 'em', - null, - InputOption::VALUE_REQUIRED, - 'The name of the entity manager to use.', - ); - - $this->addOption( - 'conn', - null, - InputOption::VALUE_REQUIRED, - 'The name of the connection to use.', - ); - - if ($this->dependencyFactory !== null) { - return; - } - - $this->addOption( - 'db-configuration', - null, - InputOption::VALUE_REQUIRED, - 'The path to a database connection configuration file.', - 'migrations-db.php', - ); - } - - protected function initialize(InputInterface $input, OutputInterface $output): void - { - $this->io = new SymfonyStyle($input, $output); - - $configurationParameter = $input->getOption('configuration'); - if ($this->dependencyFactory === null) { - $configurationLoader = new ConfigurationFileWithFallback( - is_string($configurationParameter) - ? $configurationParameter - : null, - ); - $connectionLoader = new ConfigurationFile($input->getOption('db-configuration')); - $this->dependencyFactory = DependencyFactory::fromConnection($configurationLoader, $connectionLoader); - } elseif (is_string($configurationParameter)) { - $configurationLoader = new ConfigurationFileWithFallback($configurationParameter); - $this->dependencyFactory->setConfigurationLoader($configurationLoader); - } - - $dependencyFactory = $this->dependencyFactory; - - $this->setNamedEmOrConnection($input); - - if ($dependencyFactory->isFrozen()) { - return; - } - - $logger = new ConsoleLogger($output, [ - LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL, - LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL, - LogLevel::CRITICAL => OutputInterface::VERBOSITY_NORMAL, - LogLevel::ERROR => OutputInterface::VERBOSITY_NORMAL, - LogLevel::WARNING => OutputInterface::VERBOSITY_NORMAL, - LogLevel::NOTICE => OutputInterface::VERBOSITY_NORMAL, - LogLevel::INFO => OutputInterface::VERBOSITY_VERBOSE, - LogLevel::DEBUG => OutputInterface::VERBOSITY_VERY_VERBOSE, - ]); - $dependencyFactory->setService(LoggerInterface::class, $logger); - $dependencyFactory->freeze(); - } - - protected function getDependencyFactory(): DependencyFactory - { - if ($this->dependencyFactory === null) { - throw DependenciesNotSatisfied::new(); - } - - return $this->dependencyFactory; - } - - protected function canExecute(string $question, InputInterface $input): bool - { - return ! $input->isInteractive() || $this->io->confirm($question); - } - - private function setNamedEmOrConnection(InputInterface $input): void - { - assert($this->dependencyFactory !== null); - $emName = $input->getOption('em'); - $connName = $input->getOption('conn'); - if ($emName !== null && $connName !== null) { - throw new InvalidOptionUsage('You can specify only one of the --em and --conn options.'); - } - - if ($this->dependencyFactory->hasEntityManager() && $emName !== null) { - $this->dependencyFactory->getConfiguration()->setEntityManagerName($emName); - - return; - } - - if ($connName !== null) { - $this->dependencyFactory->getConfiguration()->setConnectionName($connName); - - return; - } - } - - final protected function getNamespace(InputInterface $input, OutputInterface $output): string - { - $configuration = $this->getDependencyFactory()->getConfiguration(); - - $namespace = $input->getOption('namespace'); - if ($namespace === '') { - $namespace = null; - } - - $dirs = $configuration->getMigrationDirectories(); - if ($namespace === null && count($dirs) === 1) { - $namespace = key($dirs); - } elseif ($namespace === null && count($dirs) > 1) { - $helper = $this->getHelper('question'); - $question = new ChoiceQuestion( - 'Please choose a namespace (defaults to the first one)', - array_keys($dirs), - 0, - ); - $namespace = $helper->ask($input, $output, $question); - $this->io->text(sprintf('You have selected the "%s" namespace', $namespace)); - } - - if (! isset($dirs[$namespace])) { - throw new Exception(sprintf('Path not defined for the namespace "%s"', $namespace)); - } - - assert(is_string($namespace)); - - return $namespace; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DumpSchemaCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DumpSchemaCommand.php deleted file mode 100644 index 43be069..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/DumpSchemaCommand.php +++ /dev/null @@ -1,144 +0,0 @@ -setAliases(['dump-schema']) - ->setDescription('Dump the schema for your database to a migration.') - ->setHelp(<<<'EOT' -The %command.name% command dumps the schema for your database to a migration: - - %command.full_name% - -After dumping your schema to a migration, you can rollup your migrations using the migrations:rollup command. -EOT) - ->addOption( - 'formatted', - null, - InputOption::VALUE_NONE, - 'Format the generated SQL.', - ) - ->addOption( - 'nowdoc', - null, - InputOption::VALUE_NONE, - 'Output the generated SQL as a nowdoc string (always active for formatted queries).', - ) - ->addOption( - 'namespace', - null, - InputOption::VALUE_REQUIRED, - 'Namespace to use for the generated migrations (defaults to the first namespace definition).', - ) - ->addOption( - 'filter-tables', - null, - InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, - 'Filter the tables to dump via Regex.', - ) - ->addOption( - 'line-length', - null, - InputOption::VALUE_REQUIRED, - 'Max line length of unformatted lines.', - '120', - ); - } - - /** @throws SchemaDumpRequiresNoMigrations */ - public function execute( - InputInterface $input, - OutputInterface $output, - ): int { - $formatted = filter_var($input->getOption('formatted'), FILTER_VALIDATE_BOOLEAN); - $nowdocOutput = filter_var($input->getOption('nowdoc'), FILTER_VALIDATE_BOOLEAN); - $lineLength = (int) $input->getOption('line-length'); - - $schemaDumper = $this->getDependencyFactory()->getSchemaDumper(); - - if ($formatted) { - if (! class_exists(SqlFormatter::class)) { - throw InvalidOptionUsage::new( - 'The "--formatted" option can only be used if the sql formatter is installed. Please run "composer require doctrine/sql-formatter".', - ); - } - } - - $namespace = $this->getNamespace($input, $output); - - $this->checkNoPreviousDumpExistsForNamespace($namespace); - - $fqcn = $this->getDependencyFactory()->getClassNameGenerator()->generateClassName($namespace); - - $path = $schemaDumper->dump( - $fqcn, - $input->getOption('filter-tables'), - $formatted, - $nowdocOutput, - $lineLength, - ); - - $this->io->text([ - sprintf('Dumped your schema to a new migration class at "%s"', $path), - '', - sprintf( - 'To run just this migration for testing purposes, you can use migrations:execute --up "%s"', - addslashes($fqcn), - ), - '', - sprintf( - 'To revert the migration you can use migrations:execute --down "%s"', - addslashes($fqcn), - ), - '', - 'To use this as a rollup migration you can use the migrations:rollup command.', - '', - ]); - - return 0; - } - - private function checkNoPreviousDumpExistsForNamespace(string $namespace): void - { - $migrations = $this->getDependencyFactory()->getMigrationRepository()->getMigrations(); - foreach ($migrations->getItems() as $migration) { - if (str_contains((string) $migration->getVersion(), $namespace)) { - throw SchemaDumpRequiresNoMigrations::new($namespace); - } - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ExecuteCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ExecuteCommand.php deleted file mode 100644 index 92d4101..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ExecuteCommand.php +++ /dev/null @@ -1,178 +0,0 @@ -setAliases(['execute']) - ->setDescription( - 'Execute one or more migration versions up or down manually.', - ) - ->addArgument( - 'versions', - InputArgument::REQUIRED | InputArgument::IS_ARRAY, - 'The versions to execute.', - null, - ) - ->addOption( - 'write-sql', - null, - InputOption::VALUE_OPTIONAL, - 'The path to output the migration SQL file. Defaults to current working directory.', - false, - ) - ->addOption( - 'dry-run', - null, - InputOption::VALUE_NONE, - 'Execute the migration as a dry run.', - ) - ->addOption( - 'up', - null, - InputOption::VALUE_NONE, - 'Execute the migration up.', - ) - ->addOption( - 'down', - null, - InputOption::VALUE_NONE, - 'Execute the migration down.', - ) - ->addOption( - 'query-time', - null, - InputOption::VALUE_NONE, - 'Time all the queries individually.', - ) - ->setHelp(<<<'EOT' -The %command.name% command executes migration versions up or down manually: - - %command.full_name% FQCN - -You can show more information about the process by increasing the verbosity level. To see the -executed queries, set the level to debug with -vv: - - %command.full_name% FQCN -vv - -If no --up or --down option is specified it defaults to up: - - %command.full_name% FQCN --down - -You can also execute the migration as a --dry-run: - - %command.full_name% FQCN --dry-run - -You can output the prepared SQL statements to a file with --write-sql: - - %command.full_name% FQCN --write-sql - -Or you can also execute the migration without a warning message which you need to interact with: - - %command.full_name% FQCN --no-interaction - -All the previous commands accept multiple migration versions, allowing you run execute more than -one migration at once: - - %command.full_name% FQCN-1 FQCN-2 ...FQCN-n - -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $migratorConfigurationFactory = $this->getDependencyFactory()->getConsoleInputMigratorConfigurationFactory(); - $migratorConfiguration = $migratorConfigurationFactory->getMigratorConfiguration($input); - - $databaseName = (string) $this->getDependencyFactory()->getConnection()->getDatabase(); - $question = sprintf( - 'WARNING! You are about to execute a migration in database "%s" that could result in schema changes and data loss. Are you sure you wish to continue?', - $databaseName === '' ? '' : $databaseName, - ); - if (! $migratorConfiguration->isDryRun() && ! $this->canExecute($question, $input)) { - $this->io->error('Migration cancelled!'); - - return 1; - } - - $this->getDependencyFactory()->getMetadataStorage()->ensureInitialized(); - - $versions = $input->getArgument('versions'); - $direction = $input->getOption('down') !== false - ? Direction::DOWN - : Direction::UP; - - $path = $input->getOption('write-sql') ?? getcwd(); - - if (is_string($path) && ! $this->isPathWritable($path)) { - $this->io->error(sprintf('The path "%s" not writeable!', $path)); - - return 1; - } - - $planCalculator = $this->getDependencyFactory()->getMigrationPlanCalculator(); - $plan = $planCalculator->getPlanForVersions(array_map(static fn (string $version): Version => new Version($version), $versions), $direction); - - $this->getDependencyFactory()->getLogger()->notice( - 'Executing' . ($migratorConfiguration->isDryRun() ? ' (dry-run)' : '') . ' {versions} {direction}', - [ - 'direction' => $plan->getDirection(), - 'versions' => implode(', ', $versions), - ], - ); - - $migrator = $this->getDependencyFactory()->getMigrator(); - $sql = $migrator->migrate($plan, $migratorConfiguration); - - if (is_string($path)) { - $writer = $this->getDependencyFactory()->getQueryWriter(); - $writer->write($path, $direction, $sql); - } - - $this->io->success(sprintf( - 'Successfully migrated version(s): %s: [%s]', - implode(', ', $versions), - strtoupper($plan->getDirection()), - )); - $this->io->newLine(); - - return 0; - } - - private function isPathWritable(string $path): bool - { - return is_writable($path) || is_dir($path) || is_writable(dirname($path)); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/GenerateCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/GenerateCommand.php deleted file mode 100644 index 043d648..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/GenerateCommand.php +++ /dev/null @@ -1,71 +0,0 @@ -setAliases(['generate']) - ->setDescription('Generate a blank migration class.') - ->addOption( - 'namespace', - null, - InputOption::VALUE_REQUIRED, - 'The namespace to use for the migration (must be in the list of configured namespaces)', - ) - ->setHelp(<<<'EOT' -The %command.name% command generates a blank migration class: - - %command.full_name% - -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $migrationGenerator = $this->getDependencyFactory()->getMigrationGenerator(); - - $namespace = $this->getNamespace($input, $output); - - $fqcn = $this->getDependencyFactory()->getClassNameGenerator()->generateClassName($namespace); - - $path = $migrationGenerator->generateMigration($fqcn); - - $this->io->text([ - sprintf('Generated new migration class to "%s"', $path), - '', - sprintf( - 'To run just this migration for testing purposes, you can use migrations:execute --up \'%s\'', - $fqcn, - ), - '', - sprintf( - 'To revert the migration you can use migrations:execute --down \'%s\'', - $fqcn, - ), - '', - ]); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/LatestCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/LatestCommand.php deleted file mode 100644 index 5ce6af0..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/LatestCommand.php +++ /dev/null @@ -1,53 +0,0 @@ -setAliases(['latest']) - ->setDescription('Outputs the latest version'); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $aliasResolver = $this->getDependencyFactory()->getVersionAliasResolver(); - - try { - $version = $aliasResolver->resolveVersionAlias('latest'); - $availableMigration = $this->getDependencyFactory()->getMigrationRepository()->getMigration($version); - $description = $availableMigration->getMigration()->getDescription(); - } catch (NoMigrationsToExecute) { - $version = '0'; - $description = ''; - } - - $this->io->text(sprintf( - "%s%s\n", - $version, - $description !== '' ? ' - ' . $description : '', - )); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ListCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ListCommand.php deleted file mode 100644 index 86aa661..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/ListCommand.php +++ /dev/null @@ -1,70 +0,0 @@ -setAliases(['list-migrations']) - ->setDescription('Display a list of all available migrations and their status.') - ->setHelp(<<<'EOT' -The %command.name% command outputs a list of all available migrations and their status: - - %command.full_name% -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $versions = $this->getSortedVersions( - $this->getDependencyFactory()->getMigrationPlanCalculator()->getMigrations(), // available migrations - $this->getDependencyFactory()->getMetadataStorage()->getExecutedMigrations(), // executed migrations - ); - - $this->getDependencyFactory()->getMigrationStatusInfosHelper()->listVersions($versions, $output); - - return 0; - } - - /** @return Version[] */ - private function getSortedVersions(AvailableMigrationsList $availableMigrations, ExecutedMigrationsList $executedMigrations): array - { - $availableVersions = array_map(static fn (AvailableMigration $availableMigration): Version => $availableMigration->getVersion(), $availableMigrations->getItems()); - - $executedVersions = array_map(static fn (ExecutedMigration $executedMigration): Version => $executedMigration->getVersion(), $executedMigrations->getItems()); - - $versions = array_unique(array_merge($availableVersions, $executedVersions)); - - $comparator = $this->getDependencyFactory()->getVersionComparator(); - uasort($versions, $comparator->compare(...)); - - return $versions; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php deleted file mode 100644 index 956a2fb..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php +++ /dev/null @@ -1,308 +0,0 @@ -setAliases(['migrate']) - ->setDescription( - 'Execute a migration to a specified version or the latest available version.', - ) - ->addArgument( - 'version', - InputArgument::OPTIONAL, - 'The version FQCN or alias (first, prev, next, latest) to migrate to.', - 'latest', - ) - ->addOption( - 'write-sql', - null, - InputOption::VALUE_OPTIONAL, - 'The path to output the migration SQL file. Defaults to current working directory.', - false, - ) - ->addOption( - 'dry-run', - null, - InputOption::VALUE_NONE, - 'Execute the migration as a dry run.', - ) - ->addOption( - 'query-time', - null, - InputOption::VALUE_NONE, - 'Time all the queries individually.', - ) - ->addOption( - 'allow-no-migration', - null, - InputOption::VALUE_NONE, - 'Do not throw an exception if no migration is available.', - ) - ->addOption( - 'all-or-nothing', - null, - InputOption::VALUE_OPTIONAL, - 'Wrap the entire migration in a transaction.', - ConsoleInputMigratorConfigurationFactory::ABSENT_CONFIG_VALUE, - ) - ->addOption( - 'no-all-or-nothing', - null, - InputOption::VALUE_NONE, - 'Disable wrapping the entire migration in a transaction.', - ) - ->setHelp(<<<'EOT' -The %command.name% command executes a migration to a specified version or the latest available version: - - %command.full_name% - -You can show more information about the process by increasing the verbosity level. To see the -executed queries, set the level to debug with -vv: - - %command.full_name% -vv - -You can optionally manually specify the version you wish to migrate to: - - %command.full_name% FQCN - -You can specify the version you wish to migrate to using an alias: - - %command.full_name% prev - These alias are defined: first, latest, prev, current and next - -You can specify the version you wish to migrate to using a number against the current version: - - %command.full_name% current+3 - -You can also execute the migration as a --dry-run: - - %command.full_name% FQCN --dry-run - -You can output the prepared SQL statements to a file with --write-sql: - - %command.full_name% FQCN --write-sql - -Or you can also execute the migration without a warning message which you need to interact with --no-interaction: - - %command.full_name% --no-interaction - -You can also time all the different queries if you want to know which one is taking so long with --query-time: - - %command.full_name% --query-time - -You can skip throwing an exception if no migration is available with --allow-no-migration: - - %command.full_name% --allow-no-migration - -You can wrap the entire migration in a transaction with --all-or-nothing: - - %command.full_name% --all-or-nothing - -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $migratorConfigurationFactory = $this->getDependencyFactory()->getConsoleInputMigratorConfigurationFactory(); - $migratorConfiguration = $migratorConfigurationFactory->getMigratorConfiguration($input); - - $databaseName = (string) $this->getDependencyFactory()->getConnection()->getDatabase(); - $question = sprintf( - 'WARNING! You are about to execute a migration in database "%s" that could result in schema changes and data loss. Are you sure you wish to continue?', - $databaseName === '' ? '' : $databaseName, - ); - if (! $migratorConfiguration->isDryRun() && ! $this->canExecute($question, $input)) { - $this->io->error('Migration cancelled!'); - - return 3; - } - - $this->getDependencyFactory()->getMetadataStorage()->ensureInitialized(); - - $allowNoMigration = $input->getOption('allow-no-migration'); - $versionAlias = $input->getArgument('version'); - - $path = $input->getOption('write-sql') ?? getcwd(); - - if (is_string($path) && ! $this->isPathWritable($path)) { - $this->io->error(sprintf('The path "%s" not writeable!', $path)); - - return 1; - } - - $migrationRepository = $this->getDependencyFactory()->getMigrationRepository(); - if (count($migrationRepository->getMigrations()) === 0) { - $message = sprintf( - 'The version "%s" couldn\'t be reached, there are no registered migrations.', - $versionAlias, - ); - - if ($allowNoMigration) { - $this->io->warning($message); - - return 0; - } - - $this->io->error($message); - - return 1; - } - - try { - $version = $this->getDependencyFactory()->getVersionAliasResolver()->resolveVersionAlias($versionAlias); - } catch (UnknownMigrationVersion) { - $this->io->error(sprintf( - 'Unknown version: %s', - OutputFormatter::escape($versionAlias), - )); - - return 1; - } catch (NoMigrationsToExecute | NoMigrationsFoundWithCriteria) { - return $this->exitForAlias($versionAlias); - } - - $planCalculator = $this->getDependencyFactory()->getMigrationPlanCalculator(); - $statusCalculator = $this->getDependencyFactory()->getMigrationStatusCalculator(); - $executedUnavailableMigrations = $statusCalculator->getExecutedUnavailableMigrations(); - - if ($this->checkExecutedUnavailableMigrations($executedUnavailableMigrations, $input) === false) { - return 3; - } - - $plan = $planCalculator->getPlanUntilVersion($version); - - if (count($plan) === 0) { - return $this->exitForAlias($versionAlias); - } - - $this->getDependencyFactory()->getLogger()->notice( - 'Migrating' . ($migratorConfiguration->isDryRun() ? ' (dry-run)' : '') . ' {direction} to {to}', - [ - 'direction' => $plan->getDirection(), - 'to' => (string) $version, - ], - ); - - $migrator = $this->getDependencyFactory()->getMigrator(); - $sql = $migrator->migrate($plan, $migratorConfiguration); - - if (is_string($path)) { - $writer = $this->getDependencyFactory()->getQueryWriter(); - $writer->write($path, $plan->getDirection(), $sql); - } - - $this->io->success(sprintf( - 'Successfully migrated to version: %s', - $version, - )); - $this->io->newLine(); - - return 0; - } - - private function checkExecutedUnavailableMigrations( - ExecutedMigrationsList $executedUnavailableMigrations, - InputInterface $input, - ): bool { - if (count($executedUnavailableMigrations) !== 0) { - $this->io->warning(sprintf( - 'You have %s previously executed migrations in the database that are not registered migrations.', - count($executedUnavailableMigrations), - )); - - foreach ($executedUnavailableMigrations->getItems() as $executedUnavailableMigration) { - $this->io->text(sprintf( - '>> %s (%s)', - $executedUnavailableMigration->getExecutedAt()?->format('Y-m-d H:i:s'), - $executedUnavailableMigration->getVersion(), - )); - } - - $question = 'Are you sure you wish to continue?'; - - if (! $this->canExecute($question, $input)) { - $this->io->error('Migration cancelled!'); - - return false; - } - } - - return true; - } - - private function exitForAlias(string $versionAlias): int - { - $version = $this->getDependencyFactory()->getVersionAliasResolver()->resolveVersionAlias('current'); - - // Allow meaningful message when latest version already reached. - if (in_array($versionAlias, ['current', 'latest', 'first'], true)) { - $message = sprintf( - 'Already at the %s version ("%s")', - $versionAlias, - (string) $version, - ); - - $this->io->success($message); - } elseif (in_array($versionAlias, ['next', 'prev'], true) || str_starts_with($versionAlias, 'current')) { - $message = sprintf( - 'The version "%s" couldn\'t be reached, you are at version "%s"', - $versionAlias, - (string) $version, - ); - - $this->io->error($message); - } else { - $message = sprintf( - 'You are already at version "%s"', - (string) $version, - ); - - $this->io->success($message); - } - - return 0; - } - - private function isPathWritable(string $path): bool - { - return is_writable($path) || is_dir($path) || is_writable(dirname($path)); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/RollupCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/RollupCommand.php deleted file mode 100644 index 1c97985..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/RollupCommand.php +++ /dev/null @@ -1,63 +0,0 @@ -setAliases(['rollup']) - ->setDescription('Rollup migrations by deleting all tracked versions and insert the one version that exists.') - ->setHelp(<<<'EOT' -The %command.name% command rolls up migrations by deleting all tracked versions and -inserts the one version that exists that was created with the migrations:dump-schema command. - - %command.full_name% - -To dump your schema to a migration version you can use the migrations:dump-schema command. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $question = sprintf( - 'WARNING! You are about to execute a migration in database "%s" that could result in schema changes and data loss. Are you sure you wish to continue?', - $this->getDependencyFactory()->getConnection()->getDatabase() ?? '', - ); - - if (! $this->canExecute($question, $input)) { - $this->io->error('Migration cancelled!'); - - return 3; - } - - $this->getDependencyFactory()->getMetadataStorage()->ensureInitialized(); - $version = $this->getDependencyFactory()->getRollup()->rollup(); - - $this->io->success(sprintf( - 'Rolled up migrations to version %s', - (string) $version, - )); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/StatusCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/StatusCommand.php deleted file mode 100644 index ce710dc..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/StatusCommand.php +++ /dev/null @@ -1,42 +0,0 @@ -setAliases(['status']) - ->setDescription('View the status of a set of migrations.') - ->setHelp(<<<'EOT' -The %command.name% command outputs the status of a set of migrations: - - %command.full_name% -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $infosHelper = $this->getDependencyFactory()->getMigrationStatusInfosHelper(); - $infosHelper->showMigrationsInfo($output); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/SyncMetadataCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/SyncMetadataCommand.php deleted file mode 100644 index 3bb68ed..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/SyncMetadataCommand.php +++ /dev/null @@ -1,44 +0,0 @@ -setAliases(['sync-metadata-storage']) - ->setDescription('Ensures that the metadata storage is at the latest version.') - ->setHelp(<<<'EOT' -The way metadata is stored in the database can change between releases. -The %command.name% command updates metadata storage to the latest version, -ensuring it is ready to receive migrations generated by the current version of Doctrine Migrations. - - - %command.full_name% -EOT); - } - - public function execute( - InputInterface $input, - OutputInterface $output, - ): int { - $this->getDependencyFactory()->getMetadataStorage()->ensureInitialized(); - - $this->io->success('Metadata storage synchronized'); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/UpToDateCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/UpToDateCommand.php deleted file mode 100644 index dfcf078..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/UpToDateCommand.php +++ /dev/null @@ -1,111 +0,0 @@ -setAliases(['up-to-date']) - ->setDescription('Tells you if your schema is up-to-date.') - ->addOption('fail-on-unregistered', 'u', InputOption::VALUE_NONE, 'Whether to fail when there are unregistered extra migrations found') - ->addOption('list-migrations', 'l', InputOption::VALUE_NONE, 'Show a list of missing or not migrated versions.') - ->setHelp(<<<'EOT' -The %command.name% command tells you if your schema is up-to-date: - - %command.full_name% -EOT); - - parent::configure(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $statusCalculator = $this->getDependencyFactory()->getMigrationStatusCalculator(); - - $executedUnavailableMigrations = $statusCalculator->getExecutedUnavailableMigrations(); - $newMigrations = $statusCalculator->getNewMigrations(); - $newMigrationsCount = count($newMigrations); - $executedUnavailableMigrationsCount = count($executedUnavailableMigrations); - - if ($newMigrationsCount === 0 && $executedUnavailableMigrationsCount === 0) { - $this->io->success('Up-to-date! No migrations to execute.'); - - return 0; - } - - $exitCode = 0; - if ($newMigrationsCount > 0) { - $this->io->error(sprintf( - 'Out-of-date! %u migration%s available to execute.', - $newMigrationsCount, - $newMigrationsCount > 1 ? 's are' : ' is', - )); - $exitCode = 1; - } - - if ($executedUnavailableMigrationsCount > 0) { - $this->io->error(sprintf( - 'You have %1$u previously executed migration%3$s in the database that %2$s registered migration%3$s.', - $executedUnavailableMigrationsCount, - $executedUnavailableMigrationsCount > 1 ? 'are not' : 'is not a', - $executedUnavailableMigrationsCount > 1 ? 's' : '', - )); - if ($input->getOption('fail-on-unregistered')) { - $exitCode = 2; - } - } - - if ($input->getOption('list-migrations')) { - $versions = $this->getSortedVersions($newMigrations, $executedUnavailableMigrations); - $this->getDependencyFactory()->getMigrationStatusInfosHelper()->listVersions($versions, $output); - - $this->io->newLine(); - } - - return $exitCode; - } - - /** @return Version[] */ - private function getSortedVersions(AvailableMigrationsList $newMigrations, ExecutedMigrationsList $executedUnavailableMigrations): array - { - $executedUnavailableVersion = array_map(static fn (ExecutedMigration $executedMigration): Version => $executedMigration->getVersion(), $executedUnavailableMigrations->getItems()); - - $newVersions = array_map(static fn (AvailableMigration $availableMigration): Version => $availableMigration->getVersion(), $newMigrations->getItems()); - - $versions = array_unique(array_merge($executedUnavailableVersion, $newVersions)); - - $comparator = $this->getDependencyFactory()->getVersionComparator(); - uasort($versions, $comparator->compare(...)); - - return $versions; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/VersionCommand.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/VersionCommand.php deleted file mode 100644 index 63bfea8..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Command/VersionCommand.php +++ /dev/null @@ -1,260 +0,0 @@ -setAliases(['version']) - ->setDescription('Manually add and delete migration versions from the version table.') - ->addArgument( - 'version', - InputArgument::OPTIONAL, - 'The version to add or delete.', - null, - ) - ->addOption( - 'add', - null, - InputOption::VALUE_NONE, - 'Add the specified version.', - ) - ->addOption( - 'delete', - null, - InputOption::VALUE_NONE, - 'Delete the specified version.', - ) - ->addOption( - 'all', - null, - InputOption::VALUE_NONE, - 'Apply to all the versions.', - ) - ->addOption( - 'range-from', - null, - InputOption::VALUE_REQUIRED, - 'Apply from specified version.', - ) - ->addOption( - 'range-to', - null, - InputOption::VALUE_REQUIRED, - 'Apply to specified version.', - ) - ->setHelp(<<<'EOT' -The %command.name% command allows you to manually add, delete or synchronize migration versions from the version table: - - %command.full_name% MIGRATION-FQCN --add - -If you want to delete a version you can use the --delete option: - - %command.full_name% MIGRATION-FQCN --delete - -If you want to synchronize by adding or deleting all migration versions available in the version table you can use the --all option: - - %command.full_name% --add --all - %command.full_name% --delete --all - -If you want to synchronize by adding or deleting some range of migration versions available in the version table you can use the --range-from/--range-to option: - - %command.full_name% --add --range-from=MIGRATION-FQCN --range-to=MIGRATION-FQCN - %command.full_name% --delete --range-from=MIGRATION-FQCN --range-to=MIGRATION-FQCN - -You can also execute this command without a warning message which you need to interact with: - - %command.full_name% --no-interaction -EOT); - - parent::configure(); - } - - /** @throws InvalidOptionUsage */ - protected function execute(InputInterface $input, OutputInterface $output): int - { - if ($input->getOption('add') === false && $input->getOption('delete') === false) { - throw InvalidOptionUsage::new('You must specify whether you want to --add or --delete the specified version.'); - } - - $this->markMigrated = $input->getOption('add'); - - if ($input->isInteractive()) { - $question = 'WARNING! You are about to add, delete or synchronize migration versions from the version table that could result in data lost. Are you sure you wish to continue?'; - - $confirmation = $this->io->confirm($question); - - if ($confirmation) { - $this->markVersions($input); - } else { - $this->io->error('Migration cancelled!'); - } - } else { - $this->markVersions($input); - } - - return 0; - } - - /** @throws InvalidOptionUsage */ - private function markVersions(InputInterface $input): void - { - $affectedVersion = $input->getArgument('version'); - $allOption = $input->getOption('all'); - $rangeFromOption = $input->getOption('range-from'); - $rangeToOption = $input->getOption('range-to'); - - if ($allOption === true && ($rangeFromOption !== null || $rangeToOption !== null)) { - throw InvalidOptionUsage::new( - 'Options --all and --range-to/--range-from both used. You should use only one of them.', - ); - } - - if ($rangeFromOption !== null xor $rangeToOption !== null) { - throw InvalidOptionUsage::new( - 'Options --range-to and --range-from should be used together.', - ); - } - - $executedMigrations = $this->getDependencyFactory()->getMetadataStorage()->getExecutedMigrations(); - $availableVersions = $this->getDependencyFactory()->getMigrationPlanCalculator()->getMigrations(); - if ($allOption === true) { - if ($input->getOption('delete') === true) { - foreach ($executedMigrations->getItems() as $availableMigration) { - $this->mark($input, $availableMigration->getVersion(), false, $executedMigrations); - } - } - - foreach ($availableVersions->getItems() as $availableMigration) { - $this->mark($input, $availableMigration->getVersion(), true, $executedMigrations); - } - } elseif ($affectedVersion !== null) { - $this->mark($input, new Version($affectedVersion), false, $executedMigrations); - } elseif ($rangeFromOption !== null && $rangeToOption !== null) { - $migrate = false; - foreach ($availableVersions->getItems() as $availableMigration) { - if ((string) $availableMigration->getVersion() === $rangeFromOption) { - $migrate = true; - } - - if ($migrate) { - $this->mark($input, $availableMigration->getVersion(), true, $executedMigrations); - } - - if ((string) $availableMigration->getVersion() === $rangeToOption) { - break; - } - } - } else { - throw InvalidOptionUsage::new('You must specify the version or use the --all argument.'); - } - } - - /** - * @throws VersionAlreadyExists - * @throws VersionDoesNotExist - * @throws UnknownMigrationVersion - */ - private function mark(InputInterface $input, Version $version, bool $all, ExecutedMigrationsList $executedMigrations): void - { - try { - $availableMigration = $this->getDependencyFactory()->getMigrationRepository()->getMigration($version); - } catch (MigrationClassNotFound) { - $availableMigration = null; - } - - $storage = $this->getDependencyFactory()->getMetadataStorage(); - if ($availableMigration === null) { - if ($input->getOption('delete') === false) { - throw UnknownMigrationVersion::new((string) $version); - } - - $question = - 'WARNING! You are about to delete a migration version from the version table that has no corresponding migration file.' . - 'Do you want to delete this migration from the migrations table?'; - - $confirmation = $this->io->confirm($question); - - if ($confirmation) { - $migrationResult = new ExecutionResult($version, Direction::DOWN); - $storage->complete($migrationResult); - $this->io->text(sprintf( - "%s deleted from the version table.\n", - (string) $version, - )); - - return; - } - } - - $marked = false; - - if ($this->markMigrated && $executedMigrations->hasMigration($version)) { - if (! $all) { - throw VersionAlreadyExists::new($version); - } - - $marked = true; - } - - if (! $this->markMigrated && ! $executedMigrations->hasMigration($version)) { - if (! $all) { - throw VersionDoesNotExist::new($version); - } - - $marked = true; - } - - if ($marked === true) { - return; - } - - if ($this->markMigrated) { - $migrationResult = new ExecutionResult($version, Direction::UP); - $storage->complete($migrationResult); - - $this->io->text(sprintf( - "%s added to the version table.\n", - (string) $version, - )); - } else { - $migrationResult = new ExecutionResult($version, Direction::DOWN); - $storage->complete($migrationResult); - - $this->io->text(sprintf( - "%s deleted from the version table.\n", - (string) $version, - )); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleInputMigratorConfigurationFactory.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleInputMigratorConfigurationFactory.php deleted file mode 100644 index a9be446..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleInputMigratorConfigurationFactory.php +++ /dev/null @@ -1,85 +0,0 @@ -hasOption('query-time') ? (bool) $input->getOption('query-time') : false; - $dryRun = $input->hasOption('dry-run') ? (bool) $input->getOption('dry-run') : false; - $allOrNothing = $this->determineAllOrNothingValueFrom($input) ?? $this->configuration->isAllOrNothing(); - - return (new MigratorConfiguration()) - ->setDryRun($dryRun) - ->setTimeAllQueries($timeAllQueries) - ->setAllOrNothing($allOrNothing); - } - - private function determineAllOrNothingValueFrom(InputInterface $input): bool|null - { - $enableAllOrNothingOption = self::ABSENT_CONFIG_VALUE; - $disableAllOrNothingOption = null; - - if ($input->hasOption('no-all-or-nothing')) { - $disableAllOrNothingOption = $input->getOption('no-all-or-nothing'); - } - - $wasOptionExplicitlyPassed = $input->hasOption('all-or-nothing'); - - if ($wasOptionExplicitlyPassed) { - /** - * Due to this option being able to receive optional values, its behavior is tricky: - * - when `--all-or-nothing` option is not provided, the default is set to self::ABSENT_CONFIG_VALUE - * - when `--all-or-nothing` option is provided without values, this will be `null` - * - when `--all-or-nothing` option is provided with a value, we get the provided value - */ - $enableAllOrNothingOption = $input->getOption('all-or-nothing'); - } - - $enableAllOrNothingDeprecation = match ($enableAllOrNothingOption) { - self::ABSENT_CONFIG_VALUE, null => false, - default => true, - }; - - if ($enableAllOrNothingOption !== self::ABSENT_CONFIG_VALUE && $disableAllOrNothingOption === true) { - throw InvalidAllOrNothingConfiguration::new(); - } - - if ($disableAllOrNothingOption === true) { - return false; - } - - if ($enableAllOrNothingDeprecation) { - Deprecation::trigger( - 'doctrine/migrations', - 'https://github.com/doctrine/migrations/issues/1304', - <<<'DEPRECATION' - Context: Passing values to option `--all-or-nothing` - Problem: Passing values is deprecated - Solution: If you need to disable the behavior, use --no-all-or-nothing, - otherwise, pass the option without a value - DEPRECATION, - ); - } - - return match ($enableAllOrNothingOption) { - self::ABSENT_CONFIG_VALUE => null, - null => true, - default => (bool) $enableAllOrNothingOption, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php deleted file mode 100644 index 51c784e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php +++ /dev/null @@ -1,154 +0,0 @@ -run(); - } - - /** @param DoctrineCommand[] $commands */ - public static function createApplication(array $commands = [], DependencyFactory|null $dependencyFactory = null): Application - { - $version = InstalledVersions::getVersion('doctrine/migrations'); - assert($version !== null); - $cli = new Application('Doctrine Migrations', $version); - $cli->setCatchExceptions(true); - self::addCommands($cli, $dependencyFactory); - $cli->addCommands($commands); - - return $cli; - } - - public static function addCommands(Application $cli, DependencyFactory|null $dependencyFactory = null): void - { - $cli->addCommands([ - new CurrentCommand($dependencyFactory), - new DumpSchemaCommand($dependencyFactory), - new ExecuteCommand($dependencyFactory), - new GenerateCommand($dependencyFactory), - new LatestCommand($dependencyFactory), - new MigrateCommand($dependencyFactory), - new RollupCommand($dependencyFactory), - new StatusCommand($dependencyFactory), - new VersionCommand($dependencyFactory), - new UpToDateCommand($dependencyFactory), - new SyncMetadataCommand($dependencyFactory), - new ListCommand($dependencyFactory), - ]); - - if ($dependencyFactory === null || ! $dependencyFactory->hasSchemaProvider()) { - return; - } - - $cli->add(new DiffCommand($dependencyFactory)); - } - - private static function checkLegacyConfiguration(mixed $dependencyFactory, string $configurationFile): mixed - { - if (! ($dependencyFactory instanceof HelperSet)) { - return $dependencyFactory; - } - - $configurations = new ConfigurationFileWithFallback(); - if ($dependencyFactory->has('em') && $dependencyFactory->get('em') instanceof EntityManagerHelper) { - return DependencyFactory::fromEntityManager( - $configurations, - new ExistingEntityManager($dependencyFactory->get('em')->getEntityManager()), - ); - } - - throw new RuntimeException(sprintf( - 'Configuration HelperSet returned by "%s" does not have a valid "em" or the "db" helper.', - $configurationFile, - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/ConsoleException.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/ConsoleException.php deleted file mode 100644 index 9ee7a93..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Exception/ConsoleException.php +++ /dev/null @@ -1,11 +0,0 @@ -areMigrationsOrganizedByYear()) { - $dir .= $this->appendDir(date('Y')); - } - - if ($configuration->areMigrationsOrganizedByYearAndMonth()) { - $dir .= $this->appendDir(date('m')); - } - - $this->createDirIfNotExists($dir); - - return $dir; - } - - private function appendDir(string $dir): string - { - return DIRECTORY_SEPARATOR . $dir; - } - - private function createDirIfNotExists(string $dir): void - { - if (file_exists($dir)) { - return; - } - - mkdir($dir, 0755, true); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/MigrationStatusInfosHelper.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/MigrationStatusInfosHelper.php deleted file mode 100644 index d07224d..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/Helper/MigrationStatusInfosHelper.php +++ /dev/null @@ -1,205 +0,0 @@ -setHeaders( - [ - [new TableCell('Migration Versions', ['colspan' => 4])], - ['Migration', 'Status', 'Migrated At', 'Execution Time', 'Description'], - ], - ); - $executedMigrations = $this->metadataStorage->getExecutedMigrations(); - $availableMigrations = $this->migrationPlanCalculator->getMigrations(); - - foreach ($versions as $version) { - $description = null; - $executedAt = null; - $executionTime = null; - - if ($executedMigrations->hasMigration($version)) { - $executedMigration = $executedMigrations->getMigration($version); - $executionTime = $executedMigration->getExecutionTime(); - $executedAt = $executedMigration->getExecutedAt() instanceof DateTimeInterface - ? $executedMigration->getExecutedAt()->format('Y-m-d H:i:s') - : null; - } - - if ($availableMigrations->hasMigration($version)) { - $description = $availableMigrations->getMigration($version)->getMigration()->getDescription(); - } - - if ($executedMigrations->hasMigration($version) && $availableMigrations->hasMigration($version)) { - $status = 'migrated'; - } elseif ($executedMigrations->hasMigration($version)) { - $status = 'migrated, not available'; - } else { - $status = 'not migrated'; - } - - $table->addRow([ - (string) $version, - $status, - (string) $executedAt, - $executionTime !== null ? $executionTime . 's' : '', - $description, - ]); - } - - $table->render(); - } - - public function showMigrationsInfo(OutputInterface $output): void - { - $executedMigrations = $this->metadataStorage->getExecutedMigrations(); - $availableMigrations = $this->migrationPlanCalculator->getMigrations(); - - $newMigrations = $this->statusCalculator->getNewMigrations(); - $executedUnavailableMigrations = $this->statusCalculator->getExecutedUnavailableMigrations(); - - $storage = $this->configuration->getMetadataStorageConfiguration(); - - $table = new Table($output); - $table->setHeaders( - [ - [new TableCell('Configuration', ['colspan' => 3])], - ], - ); - - $dataGroup = [ - 'Storage' => [ - 'Type' => $storage !== null ? $storage::class : null, - ], - 'Database' => [ - 'Driver' => get_class($this->connection->getDriver()), - 'Name' => $this->connection->getDatabase(), - ], - 'Versions' => [ - 'Previous' => $this->getFormattedVersionAlias('prev', $executedMigrations), - 'Current' => $this->getFormattedVersionAlias('current', $executedMigrations), - 'Next' => $this->getFormattedVersionAlias('next', $executedMigrations), - 'Latest' => $this->getFormattedVersionAlias('latest', $executedMigrations), - ], - - 'Migrations' => [ - 'Executed' => count($executedMigrations), - 'Executed Unavailable' => count($executedUnavailableMigrations) > 0 ? ('' . count($executedUnavailableMigrations) . '') : '0', - 'Available' => count($availableMigrations), - 'New' => count($newMigrations) > 0 ? ('' . count($newMigrations) . '') : '0', - ], - 'Migration Namespaces' => $this->configuration->getMigrationDirectories(), - - ]; - if ($storage instanceof TableMetadataStorageConfiguration) { - $dataGroup['Storage'] += [ - 'Table Name' => $storage->getTableName(), - 'Column Name' => $storage->getVersionColumnName(), - ]; - } - - $first = true; - foreach ($dataGroup as $group => $dataValues) { - $nsRows = []; - foreach ($dataValues as $k => $v) { - $nsRows[] = [ - $k, - $v, - ]; - } - - if (count($nsRows) <= 0) { - continue; - } - - if (! $first) { - $table->addRow([new TableSeparator(['colspan' => 3])]); - } - - $first = false; - array_unshift( - $nsRows[0], - new TableCell('' . $group . '', ['rowspan' => count($dataValues)]), - ); - $table->addRows($nsRows); - } - - $table->render(); - } - - private function getFormattedVersionAlias(string $alias, ExecutedMigrationsList $executedMigrations): string - { - try { - $version = $this->aliasResolver->resolveVersionAlias($alias); - } catch (Throwable) { - $version = null; - } - - // No version found - if ($version === null) { - if ($alias === 'next') { - return 'Already at latest version'; - } - - if ($alias === 'prev') { - return 'Already at first version'; - } - } - - // Before first version "virtual" version number - if ((string) $version === '0') { - return '0'; - } - - // Show normal version number - return sprintf( - '%s ', - (string) $version, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/InvalidAllOrNothingConfiguration.php b/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/InvalidAllOrNothingConfiguration.php deleted file mode 100644 index 742b6e4..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Tools/Console/InvalidAllOrNothingConfiguration.php +++ /dev/null @@ -1,16 +0,0 @@ -commit(); - } - - public static function rollbackIfInTransaction(Connection $connection): void - { - if (! self::inTransaction($connection)) { - Deprecation::trigger( - 'doctrine/migrations', - 'https://github.com/doctrine/migrations/issues/1169', - <<<'DEPRECATION' -Context: trying to rollback a transaction -Problem: the transaction is already rolled back, relying on silencing is deprecated. -Solution: override `AbstractMigration::isTransactional()` so that it returns false. -Automate that by setting `transactional` to false in the configuration. -More details at https://www.doctrine-project.org/projects/doctrine-migrations/en/stable/explanation/implicit-commits.html -DEPRECATION, - ); - - return; - } - - $connection->rollBack(); - } - - private static function inTransaction(Connection $connection): bool - { - $innermostConnection = self::getInnerConnection($connection); - - /* Attempt to commit or rollback while no transaction is running - results in an exception since PHP 8 + pdo_mysql combination */ - return ! $innermostConnection instanceof PDO || $innermostConnection->inTransaction(); - } - - /** @return object|resource|null */ - private static function getInnerConnection(Connection $connection) - { - try { - return $connection->getNativeConnection(); - } catch (LogicException) { - } - - $innermostConnection = $connection; - while (method_exists($innermostConnection, 'getWrappedConnection')) { - $innermostConnection = $innermostConnection->getWrappedConnection(); - } - - return $innermostConnection; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/AliasResolver.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/AliasResolver.php deleted file mode 100644 index 7905803..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/AliasResolver.php +++ /dev/null @@ -1,28 +0,0 @@ -metadataStorage->getExecutedMigrations(); - $availableMigration = $this->migrationPlanCalculator->getMigrations(); - - return $executedMigrations->unavailableSubset($availableMigration); - } - - public function getNewMigrations(): AvailableMigrationsList - { - $executedMigrations = $this->metadataStorage->getExecutedMigrations(); - $availableMigration = $this->migrationPlanCalculator->getMigrations(); - - return $availableMigration->newSubset($executedMigrations); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalExecutor.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalExecutor.php deleted file mode 100644 index 57712e4..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalExecutor.php +++ /dev/null @@ -1,324 +0,0 @@ -sql; - } - - public function addSql(Query $sqlQuery): void - { - $this->sql[] = $sqlQuery; - } - - public function execute( - MigrationPlan $plan, - MigratorConfiguration $configuration, - ): ExecutionResult { - $result = new ExecutionResult($plan->getVersion(), $plan->getDirection(), new DateTimeImmutable()); - - $this->startMigration($plan, $configuration); - - try { - $this->executeMigration( - $plan, - $result, - $configuration, - ); - - $result->setSql($this->sql); - } catch (SkipMigration $e) { - $result->setSkipped(true); - - $this->migrationEnd($e, $plan, $result, $configuration); - } catch (Throwable $e) { - $result->setError(true, $e); - - $this->migrationEnd($e, $plan, $result, $configuration); - - throw $e; - } - - return $result; - } - - private function startMigration( - MigrationPlan $plan, - MigratorConfiguration $configuration, - ): void { - $this->sql = []; - - $this->dispatcher->dispatchVersionEvent( - Events::onMigrationsVersionExecuting, - $plan, - $configuration, - ); - - if (! $plan->getMigration()->isTransactional()) { - return; - } - - // only start transaction if in transactional mode - $this->connection->beginTransaction(); - } - - private function executeMigration( - MigrationPlan $plan, - ExecutionResult $result, - MigratorConfiguration $configuration, - ): ExecutionResult { - $stopwatchEvent = $this->stopwatch->start('execute'); - - $migration = $plan->getMigration(); - $direction = $plan->getDirection(); - - $result->setState(State::PRE); - - $fromSchema = $this->getFromSchema($configuration); - - $migration->{'pre' . ucfirst($direction)}($fromSchema); - - $this->logger->info(...$this->getMigrationHeader($plan, $migration, $direction)); - - $result->setState(State::EXEC); - - $toSchema = $this->schemaProvider->createToSchema($fromSchema); - - $result->setToSchema($toSchema); - - $migration->$direction($toSchema); - - foreach ($migration->getSql() as $sqlQuery) { - $this->addSql($sqlQuery); - } - - foreach ($this->schemaProvider->getSqlDiffToMigrate($fromSchema, $toSchema) as $sql) { - $this->addSql(new Query($sql)); - } - - $migration->freeze(); - - if (count($this->sql) !== 0) { - if (! $configuration->isDryRun()) { - $this->executeResult($configuration); - } else { - foreach ($this->sql as $query) { - $this->outputSqlQuery($query, $configuration); - } - } - } else { - $this->logger->warning('Migration {version} was executed but did not result in any SQL statements.', [ - 'version' => (string) $plan->getVersion(), - ]); - } - - $result->setState(State::POST); - - $migration->{'post' . ucfirst($direction)}($toSchema); - - $stopwatchEvent->stop(); - $periods = $stopwatchEvent->getPeriods(); - $lastPeriod = $periods[count($periods) - 1]; - - $result->setTime((float) $lastPeriod->getDuration() / 1000); - $result->setMemory($lastPeriod->getMemory()); - - $params = [ - 'version' => (string) $plan->getVersion(), - 'time' => $lastPeriod->getDuration(), - 'memory' => BytesFormatter::formatBytes($lastPeriod->getMemory()), - 'direction' => $direction === Direction::UP ? 'migrated' : 'reverted', - ]; - - $this->logger->info('Migration {version} {direction} (took {time}ms, used {memory} memory)', $params); - - if (! $configuration->isDryRun()) { - $this->metadataStorage->complete($result); - } elseif (method_exists($this->metadataStorage, 'getSql')) { - foreach ($this->metadataStorage->getSql($result) as $sqlQuery) { - $this->addSql($sqlQuery); - } - } - - if ($migration->isTransactional()) { - TransactionHelper::commitIfInTransaction($this->connection); - } - - $plan->markAsExecuted($result); - $result->setState(State::NONE); - - $this->dispatcher->dispatchVersionEvent( - Events::onMigrationsVersionExecuted, - $plan, - $configuration, - ); - - return $result; - } - - /** @return mixed[] */ - private function getMigrationHeader(MigrationPlan $planItem, AbstractMigration $migration, string $direction): array - { - $versionInfo = (string) $planItem->getVersion(); - $description = $migration->getDescription(); - - if ($description !== '') { - $versionInfo .= ' (' . $description . ')'; - } - - $params = ['version_name' => $versionInfo]; - - if ($direction === Direction::UP) { - return ['++ migrating {version_name}', $params]; - } - - return ['++ reverting {version_name}', $params]; - } - - private function migrationEnd(Throwable $e, MigrationPlan $plan, ExecutionResult $result, MigratorConfiguration $configuration): void - { - $migration = $plan->getMigration(); - if ($migration->isTransactional()) { - //only rollback transaction if in transactional mode - TransactionHelper::rollbackIfInTransaction($this->connection); - } - - $plan->markAsExecuted($result); - $this->logResult($e, $result, $plan); - - $this->dispatcher->dispatchVersionEvent( - Events::onMigrationsVersionSkipped, - $plan, - $configuration, - ); - } - - private function logResult(Throwable $e, ExecutionResult $result, MigrationPlan $plan): void - { - if ($result->isSkipped()) { - $this->logger->notice( - 'Migration {version} skipped during {state}. Reason: "{reason}"', - [ - 'version' => (string) $plan->getVersion(), - 'reason' => $e->getMessage(), - 'state' => $this->getExecutionStateAsString($result->getState()), - ], - ); - } elseif ($result->hasError()) { - $this->logger->error( - 'Migration {version} failed during {state}. Error: "{error}"', - [ - 'version' => (string) $plan->getVersion(), - 'error' => $e->getMessage(), - 'state' => $this->getExecutionStateAsString($result->getState()), - ], - ); - } - } - - private function executeResult(MigratorConfiguration $configuration): void - { - foreach ($this->sql as $key => $query) { - $this->outputSqlQuery($query, $configuration); - - $stopwatchEvent = $this->stopwatch->start('query'); - // executeQuery() must be used here because $query might return a result set, for instance REPAIR does - $this->connection->executeQuery($query->getStatement(), $query->getParameters(), $query->getTypes()); - $stopwatchEvent->stop(); - - if (! $configuration->getTimeAllQueries()) { - continue; - } - - $this->logger->notice('Query took {duration}ms', [ - 'duration' => $stopwatchEvent->getDuration(), - ]); - } - } - - private function outputSqlQuery(Query $query, MigratorConfiguration $configuration): void - { - $params = $this->parameterFormatter->formatParameters( - $query->getParameters(), - $query->getTypes(), - ); - - $this->logger->log( - $configuration->getTimeAllQueries() ? LogLevel::NOTICE : LogLevel::DEBUG, - '{query} {params}', - [ - 'query' => $query->getStatement(), - 'params' => $params, - ], - ); - } - - private function getFromSchema(MigratorConfiguration $configuration): Schema - { - // if we're in a dry run, use the from Schema instead of reading the schema from the database - if ($configuration->isDryRun() && $configuration->getFromSchema() !== null) { - return $configuration->getFromSchema(); - } - - return $this->schemaProvider->createFromSchema(); - } - - private function getExecutionStateAsString(int $state): string - { - return match ($state) { - State::PRE => 'Pre-Checks', - State::POST => 'Post-Checks', - State::EXEC => 'Execution', - default => 'No State', - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalMigrationFactory.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalMigrationFactory.php deleted file mode 100644 index b1d1851..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/DbalMigrationFactory.php +++ /dev/null @@ -1,31 +0,0 @@ -connection, - $this->logger, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/DefaultAliasResolver.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/DefaultAliasResolver.php deleted file mode 100644 index 427227e..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/DefaultAliasResolver.php +++ /dev/null @@ -1,115 +0,0 @@ -migrationPlanCalculator->getMigrations(); - $executedMigrations = $this->metadataStorage->getExecutedMigrations(); - - switch ($alias) { - case self::ALIAS_FIRST: - case '0': - return new Version('0'); - - case self::ALIAS_CURRENT: - try { - return $executedMigrations->getLast()->getVersion(); - } catch (NoMigrationsFoundWithCriteria) { - return new Version('0'); - } - - // no break because of return - case self::ALIAS_PREV: - try { - return $executedMigrations->getLast(-1)->getVersion(); - } catch (NoMigrationsFoundWithCriteria) { - return new Version('0'); - } - - // no break because of return - case self::ALIAS_NEXT: - $newMigrations = $this->migrationStatusCalculator->getNewMigrations(); - - try { - return $newMigrations->getFirst()->getVersion(); - } catch (NoMigrationsFoundWithCriteria $e) { - throw NoMigrationsToExecute::new($e); - } - - // no break because of return - case self::ALIAS_LATEST: - try { - return $availableMigrations->getLast()->getVersion(); - } catch (NoMigrationsFoundWithCriteria) { - return $this->resolveVersionAlias(self::ALIAS_CURRENT); - } - - // no break because of return - default: - if ($availableMigrations->hasMigration(new Version($alias))) { - return $availableMigrations->getMigration(new Version($alias))->getVersion(); - } - - if (substr($alias, 0, 7) === self::ALIAS_CURRENT) { - $val = (int) substr($alias, 7); - $targetMigration = null; - if ($val > 0) { - $newMigrations = $this->migrationStatusCalculator->getNewMigrations(); - - return $newMigrations->getFirst($val - 1)->getVersion(); - } - - return $executedMigrations->getLast($val)->getVersion(); - } - } - - throw UnknownMigrationVersion::new($alias); - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/Direction.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/Direction.php deleted file mode 100644 index 6fd2dbd..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/Direction.php +++ /dev/null @@ -1,23 +0,0 @@ -direction; - } - - public function getExecutedAt(): DateTimeImmutable|null - { - return $this->executedAt; - } - - public function setExecutedAt(DateTimeImmutable $executedAt): void - { - $this->executedAt = $executedAt; - } - - public function getVersion(): Version - { - return $this->version; - } - - public function hasSql(): bool - { - return count($this->sql) !== 0; - } - - /** @return Query[] */ - public function getSql(): array - { - return $this->sql; - } - - /** @param Query[] $sql */ - public function setSql(array $sql): void - { - $this->sql = $sql; - } - - public function getTime(): float|null - { - return $this->time; - } - - public function setTime(float $time): void - { - $this->time = $time; - } - - public function getMemory(): float|null - { - return $this->memory; - } - - public function setMemory(float $memory): void - { - $this->memory = $memory; - } - - public function setSkipped(bool $skipped): void - { - $this->skipped = $skipped; - } - - public function isSkipped(): bool - { - return $this->skipped; - } - - public function setError(bool $error, Throwable|null $exception = null): void - { - $this->error = $error; - $this->exception = $exception; - } - - public function hasError(): bool - { - return $this->error; - } - - public function getException(): Throwable|null - { - return $this->exception; - } - - public function setToSchema(Schema $toSchema): void - { - $this->toSchema = $toSchema; - } - - public function getToSchema(): Schema - { - if ($this->toSchema === null) { - throw new RuntimeException('Cannot call getToSchema() when toSchema is null.'); - } - - return $this->toSchema; - } - - public function getState(): int - { - return $this->state; - } - - public function setState(int $state): void - { - $this->state = $state; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/Executor.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/Executor.php deleted file mode 100644 index 646eef1..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/Executor.php +++ /dev/null @@ -1,21 +0,0 @@ -arrangeMigrationsForDirection($direction, $this->getMigrations()); - $availableMigrations = array_filter( - $migrationsToCheck, - // in_array third parameter is intentionally false to force object to string casting - static fn (AvailableMigration $availableMigration): bool => in_array($availableMigration->getVersion(), $versions, false), - ); - - $planItems = array_map(static fn (AvailableMigration $availableMigration): MigrationPlan => new MigrationPlan($availableMigration->getVersion(), $availableMigration->getMigration(), $direction), $availableMigrations); - - if (count($planItems) !== count($versions)) { - $plannedVersions = array_map(static fn (MigrationPlan $migrationPlan): Version => $migrationPlan->getVersion(), $planItems); - $diff = array_diff($versions, $plannedVersions); - - throw MigrationClassNotFound::new((string) reset($diff)); - } - - return new MigrationPlanList($planItems, $direction); - } - - public function getPlanUntilVersion(Version $to): MigrationPlanList - { - if ((string) $to !== '0' && ! $this->migrationRepository->hasMigration((string) $to)) { - throw MigrationClassNotFound::new((string) $to); - } - - $availableMigrations = $this->getMigrations(); // migrations are sorted at this point - $executedMigrations = $this->metadataStorage->getExecutedMigrations(); - - $direction = $this->findDirection($to, $executedMigrations, $availableMigrations); - - $migrationsToCheck = $this->arrangeMigrationsForDirection($direction, $availableMigrations); - - $toExecute = $this->findMigrationsToExecute($to, $migrationsToCheck, $direction, $executedMigrations); - - return new MigrationPlanList(array_map(static fn (AvailableMigration $migration): MigrationPlan => new MigrationPlan($migration->getVersion(), $migration->getMigration(), $direction), $toExecute), $direction); - } - - public function getMigrations(): AvailableMigrationsList - { - $availableMigrations = $this->migrationRepository->getMigrations()->getItems(); - uasort($availableMigrations, fn (AvailableMigration $a, AvailableMigration $b): int => $this->sorter->compare($a->getVersion(), $b->getVersion())); - - return new AvailableMigrationsList($availableMigrations); - } - - private function findDirection(Version $to, ExecutedMigrationsList $executedMigrations, AvailableMigrationsList $availableMigrations): string - { - if ((string) $to === '0') { - return Direction::DOWN; - } - - foreach ($availableMigrations->getItems() as $availableMigration) { - if ($availableMigration->getVersion()->equals($to)) { - break; - } - - if (! $executedMigrations->hasMigration($availableMigration->getVersion())) { - return Direction::UP; - } - } - - if ($executedMigrations->hasMigration($to) && ! $executedMigrations->getLast()->getVersion()->equals($to)) { - return Direction::DOWN; - } - - return Direction::UP; - } - - /** @return AvailableMigration[] */ - private function arrangeMigrationsForDirection(string $direction, Metadata\AvailableMigrationsList $availableMigrations): array - { - return $direction === Direction::UP ? $availableMigrations->getItems() : array_reverse($availableMigrations->getItems()); - } - - /** - * @param AvailableMigration[] $migrationsToCheck - * - * @return AvailableMigration[] - */ - private function findMigrationsToExecute(Version $to, array $migrationsToCheck, string $direction, ExecutedMigrationsList $executedMigrations): array - { - $toExecute = []; - foreach ($migrationsToCheck as $availableMigration) { - if ($direction === Direction::DOWN && $availableMigration->getVersion()->equals($to)) { - break; - } - - if ($direction === Direction::UP && ! $executedMigrations->hasMigration($availableMigration->getVersion())) { - $toExecute[] = $availableMigration; - } elseif ($direction === Direction::DOWN && $executedMigrations->hasMigration($availableMigration->getVersion())) { - $toExecute[] = $availableMigration; - } - - if ($direction === Direction::UP && $availableMigration->getVersion()->equals($to)) { - break; - } - } - - return $toExecute; - } -} diff --git a/projects/priceservice/vendor/doctrine/migrations/src/Version/State.php b/projects/priceservice/vendor/doctrine/migrations/src/Version/State.php deleted file mode 100644 index 4adfa0d..0000000 --- a/projects/priceservice/vendor/doctrine/migrations/src/Version/State.php +++ /dev/null @@ -1,35 +0,0 @@ -version; - } - - public function equals(mixed $object): bool - { - return $object instanceof self && $object->version === $this->version; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/LICENSE b/projects/priceservice/vendor/doctrine/orm/LICENSE deleted file mode 100644 index f988839..0000000 --- a/projects/priceservice/vendor/doctrine/orm/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/orm/README.md b/projects/priceservice/vendor/doctrine/orm/README.md deleted file mode 100644 index f333466..0000000 --- a/projects/priceservice/vendor/doctrine/orm/README.md +++ /dev/null @@ -1,38 +0,0 @@ -| [4.0.x][4.0] | [3.5.x][3.5] | [3.4.x][3.4] | [2.21.x][2.21] | [2.20.x][2.20] | -|:------------------------------------------------------:|:------------------------------------------------------:|:------------------------------------------------------:|:--------------------------------------------------------:|:--------------------------------------------------------:| -| [![Build status][4.0 image]][4.0] | [![Build status][3.5 image]][3.5] | [![Build status][3.4 image]][3.4] | [![Build status][2.21 image]][2.21] | [![Build status][2.20 image]][2.20] | -| [![Coverage Status][4.0 coverage image]][4.0 coverage] | [![Coverage Status][3.5 coverage image]][3.5 coverage] | [![Coverage Status][3.4 coverage image]][3.4 coverage] | [![Coverage Status][2.21 coverage image]][2.21 coverage] | [![Coverage Status][2.20 coverage image]][2.20 coverage] | - -Doctrine ORM is an object-relational mapper for PHP 8.1+ that provides transparent persistence -for PHP objects. It sits on top of a powerful database abstraction layer (DBAL). One of its key features -is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), -inspired by Hibernate's HQL. This provides developers with a powerful alternative to SQL that maintains flexibility -without requiring unnecessary code duplication. - - -## More resources: - -* [Website](http://www.doctrine-project.org) -* [Documentation](https://www.doctrine-project.org/projects/doctrine-orm/en/stable/index.html) - - - [4.0 image]: https://github.com/doctrine/orm/actions/workflows/continuous-integration.yml/badge.svg?branch=4.0.x - [4.0]: https://github.com/doctrine/orm/tree/4.0.x - [4.0 coverage image]: https://codecov.io/gh/doctrine/orm/branch/4.0.x/graph/badge.svg - [4.0 coverage]: https://codecov.io/gh/doctrine/orm/branch/4.0.x - [3.5 image]: https://github.com/doctrine/orm/actions/workflows/continuous-integration.yml/badge.svg?branch=3.5.x - [3.5]: https://github.com/doctrine/orm/tree/3.5.x - [3.5 coverage image]: https://codecov.io/gh/doctrine/orm/branch/3.5.x/graph/badge.svg - [3.5 coverage]: https://codecov.io/gh/doctrine/orm/branch/3.5.x - [3.4 image]: https://github.com/doctrine/orm/actions/workflows/continuous-integration.yml/badge.svg?branch=3.4.x - [3.4]: https://github.com/doctrine/orm/tree/3.4.x - [3.4 coverage image]: https://codecov.io/gh/doctrine/orm/branch/3.4.x/graph/badge.svg - [3.4 coverage]: https://codecov.io/gh/doctrine/orm/branch/3.4.x - [2.21 image]: https://github.com/doctrine/orm/actions/workflows/continuous-integration.yml/badge.svg?branch=2.21.x - [2.21]: https://github.com/doctrine/orm/tree/2.21.x - [2.21 coverage image]: https://codecov.io/gh/doctrine/orm/branch/2.21.x/graph/badge.svg - [2.21 coverage]: https://codecov.io/gh/doctrine/orm/branch/2.21.x - [2.20 image]: https://github.com/doctrine/orm/actions/workflows/continuous-integration.yml/badge.svg?branch=2.20.x - [2.20]: https://github.com/doctrine/orm/tree/2.20.x - [2.20 coverage image]: https://codecov.io/gh/doctrine/orm/branch/2.20.x/graph/badge.svg - [2.20 coverage]: https://codecov.io/gh/doctrine/orm/branch/2.20.x diff --git a/projects/priceservice/vendor/doctrine/orm/SECURITY.md b/projects/priceservice/vendor/doctrine/orm/SECURITY.md deleted file mode 100644 index b0e7293..0000000 --- a/projects/priceservice/vendor/doctrine/orm/SECURITY.md +++ /dev/null @@ -1,17 +0,0 @@ -Security -======== - -The Doctrine library is operating very close to your database and as such needs -to handle and make assumptions about SQL injection vulnerabilities. - -It is vital that you understand how Doctrine approaches security, because -we cannot protect you from SQL injection. - -Please read the documentation chapter on Security in Doctrine DBAL and ORM to -understand the assumptions we make. - -- [DBAL Security Page](https://www.doctrine-project.org/projects/doctrine-dbal/en/stable/reference/security.html) -- [ORM Security Page](https://www.doctrine-project.org/projects/doctrine-orm/en/stable/reference/security.html) - -If you find a Security bug in Doctrine, please follow our -[Security reporting guidelines](https://www.doctrine-project.org/policies/security.html#reporting). diff --git a/projects/priceservice/vendor/doctrine/orm/UPGRADE.md b/projects/priceservice/vendor/doctrine/orm/UPGRADE.md deleted file mode 100644 index ce38afa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/UPGRADE.md +++ /dev/null @@ -1,2458 +0,0 @@ -# Upgrade to 3.5 - -## Deprecate not using native lazy objects on PHP 8.4+ - -Having native lazy objects disabled on PHP 8.4+ is deprecated and will not be -possible in 4.0. - -You can enable them through configuration: - -```php -$config->enableNativeLazyObjects(true); -``` - -As a consequence, methods, parameters and commands related to userland lazy -objects have been deprecated on PHP 8.4+: - -- `Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand` -- `Doctrine\ORM\Configuration::getAutoGenerateProxyClasses()` -- `Doctrine\ORM\Configuration::getProxyDir()` -- `Doctrine\ORM\Configuration::getProxyNamespace()` -- `Doctrine\ORM\Configuration::setAutoGenerateProxyClasses()` -- `Doctrine\ORM\Configuration::setProxyDir()` -- `Doctrine\ORM\Configuration::setProxyNamespace()` -- Passing more than one argument to `Doctrine\ORM\Proxy\ProxyFactory::__construct()` - -Additionally, some methods of ORMSetup have been deprecated in favor of a new -counterpart. - -- `Doctrine\ORM\ORMSetup::createAttributeMetadataConfiguration()` is deprecated in favor of - `Doctrine\ORM\ORMSetup::createAttributeMetadataConfig()` -- `Doctrine\ORM\ORMSetup::createXMLMetadataConfiguration()` is deprecated in favor of - `Doctrine\ORM\ORMSetup::createXMLMetadataConfig()` -- `Doctrine\ORM\ORMSetup::createConfiguration()` is deprecated in favor of - `Doctrine\ORM\ORMSetup::createConfig()` - -## Deprecate methods for configuring no longer configurable features - -Since 3.0, lazy ghosts are enabled unconditionally, and so is rejecting ID -collisions in the identity map. - -As a consequence, the following methods are deprecated and will be removed in 4.0: -* `Doctrine\ORM\Configuration::setLazyGhostObjectEnabled()` -* `Doctrine\ORM\Configuration::isLazyGhostObjectEnabled()` -* `Doctrine\ORM\Configuration::setRejectIdCollisionInIdentityMap()` -* `Doctrine\ORM\Configuration::isRejectIdCollisionInIdentityMapEnabled()` - -# Upgrade to 3.4.1 - -## BC BREAK: You can no longer use the `.*` notation to get all fields of an entity in a DTO - -This feature was introduced in 3.4.0, and introduces several issues, so we -decide to remove it before it is used too widely. - -# Upgrade to 3.4 - -## Discriminator Map class duplicates - -Using the same class several times in a discriminator map is deprecated. -In 4.0, this will be an error. - -## `Doctrine\ORM\Mapping\ClassMetadata::$reflFields` deprecated - -To better support property hooks and lazy proxies in the future, `$reflFields` had to -be deprecated because we cannot use the PHP internal reflection API directly anymore. - -The property was changed from an array to an object of type `LegacyReflectionFields` -that implements `ArrayAccess`. - -Use the new `Doctrine\ORM\Mapping\PropertyAccessors\PropertyAccessor` API and access -through `Doctrine\ORM\Mapping\ClassMetadata::$propertyAccessors` instead. - -# Upgrade to 3.3 - -## Deprecate `DatabaseDriver` - -The class `Doctrine\ORM\Mapping\Driver\DatabaseDriver` is deprecated without replacement. - -## Add `Doctrine\ORM\Query\OutputWalker` interface, deprecate `Doctrine\ORM\Query\SqlWalker::getExecutor()` - -Output walkers should implement the new `\Doctrine\ORM\Query\OutputWalker` interface and create -`Doctrine\ORM\Query\Exec\SqlFinalizer` instances instead of `Doctrine\ORM\Query\Exec\AbstractSqlExecutor`s. -The output walker must not base its workings on the query `firstResult`/`maxResult` values, so that the -`SqlFinalizer` can be kept in the query cache and used regardless of the actual `firstResult`/`maxResult` values. -Any operation dependent on `firstResult`/`maxResult` should take place within the `SqlFinalizer::createExecutor()` -method. Details can be found at https://github.com/doctrine/orm/pull/11188. - - -# Upgrade to 3.2 - -## Deprecate the `NotSupported` exception - -The class `Doctrine\ORM\Exception\NotSupported` is deprecated without replacement. - -## Deprecate remaining `Serializable` implementation - -Relying on `SequenceGenerator` implementing the `Serializable` is deprecated -because that interface won't be implemented in ORM 4 anymore. - -The following methods are deprecated: - -* `SequenceGenerator::serialize()` -* `SequenceGenerator::unserialize()` - -## `orm:schema-tool:update` option `--complete` is deprecated - -That option behaves as a no-op, and is deprecated. It will be removed in 4.0. - -## Deprecate properties `$indexes` and `$uniqueConstraints` of `Doctrine\ORM\Mapping\Table` - -The properties `$indexes` and `$uniqueConstraints` have been deprecated since they had no effect at all. -The preferred way of defining indices and unique constraints is by -using the `\Doctrine\ORM\Mapping\UniqueConstraint` and `\Doctrine\ORM\Mapping\Index` attributes. - -# Upgrade to 3.1 - -## Deprecate `Doctrine\ORM\Mapping\ReflectionEnumProperty` - -This class is deprecated and will be removed in 4.0. -Instead, use `Doctrine\Persistence\Reflection\EnumReflectionProperty` from -`doctrine/persistence`. - -## Deprecate passing null to `ClassMetadata::fullyQualifiedClassName()` - -Passing `null` to `Doctrine\ORM\ClassMetadata::fullyQualifiedClassName()` is -deprecated and will no longer be possible in 4.0. - -## Deprecate array access - -Using array access on instances of the following classes is deprecated: - -- `Doctrine\ORM\Mapping\DiscriminatorColumnMapping` -- `Doctrine\ORM\Mapping\EmbedClassMapping` -- `Doctrine\ORM\Mapping\FieldMapping` -- `Doctrine\ORM\Mapping\JoinColumnMapping` -- `Doctrine\ORM\Mapping\JoinTableMapping` - -# Upgrade to 3.0 - -## BC BREAK: Calling `ClassMetadata::getAssociationMappedByTargetField()` with the owning side of an association now throws an exception - -Previously, calling -`Doctrine\ORM\Mapping\ClassMetadata::getAssociationMappedByTargetField()` with -the owning side of an association returned `null`, which was undocumented, and -wrong according to the phpdoc of the parent method. - -If you do not know whether you are on the owning or inverse side of an association, -you can use `Doctrine\ORM\Mapping\ClassMetadata::isAssociationInverseSide()` -to find out. - -## BC BREAK: `Doctrine\ORM\Proxy\Autoloader` no longer extends `Doctrine\Common\Proxy\Autoloader` - -Make sure to use the former when writing a type declaration or an `instanceof` check. - -## Minor BC BREAK: Changed order of arguments passed to `OneToOne`, `ManyToOne` and `Index` mapping PHP attributes - -To keep PHP mapping attributes consistent, order of arguments passed to above attributes has been changed -so `$targetEntity` is a first argument now. This change affects only non-named arguments usage. - -## BC BREAK: AUTO keyword for identity generation defaults to IDENTITY for PostgreSQL when using `doctrine/dbal` 4 - -When using the `AUTO` strategy to let Doctrine determine the identity generation mechanism for -an entity, and when using `doctrine/dbal` 4, PostgreSQL now uses `IDENTITY` -instead of `SEQUENCE` or `SERIAL`. -* If you want to upgrade your existing tables to identity columns, you will need to follow [migration to identity columns on PostgreSQL](https://www.doctrine-project.org/projects/doctrine-dbal/en/4.0/how-to/postgresql-identity-migration.html) -* If you want to keep using SQL sequences, you need to configure the ORM this way: -```php -use Doctrine\DBAL\Platforms\PostgreSQLPlatform; -use Doctrine\ORM\Configuration; -use Doctrine\ORM\Mapping\ClassMetadata; - -assert($configuration instanceof Configuration); -$configuration->setIdentityGenerationPreferences([ - PostgreSQLPlatform::CLASS => ClassMetadata::GENERATOR_TYPE_SEQUENCE, -]); -``` - -## BC BREAK: Throw exceptions when using illegal attributes on Embeddable - -There are only a few attributes allowed on an embeddable such as `#[Column]` or -`#[Embedded]`. Previously all others that target entity classes where ignored, -now they throw an exception. - -## BC BREAK: Partial objects are removed - -WARNING: This was relaxed in ORM 3.2 when partial was re-allowed for array-hydration. - -- The `PARTIAL` keyword in DQL no longer exists (reintroduced in ORM 3.2) -- `Doctrine\ORM\Query\AST\PartialObjectExpression` is removed. (reintroduced in ORM 3.2) -- `Doctrine\ORM\Query\SqlWalker::HINT_PARTIAL` (reintroduced in ORM 3.2) and - `Doctrine\ORM\Query::HINT_FORCE_PARTIAL_LOAD` are removed. -- `Doctrine\ORM\EntityManager*::getPartialReference()` is removed. - -## BC BREAK: Enforce ArrayCollection Type on `\Doctrine\ORM\QueryBuilder::setParameters(ArrayCollection $parameters)` - -The argument $parameters can no longer be a key=>value array. Only ArrayCollection types are allowed. - -### Before - -```php -$qb = $em->createQueryBuilder() - ->select('u') - ->from('User', 'u') - ->where('u.id = :user_id1 OR u.id = :user_id2') - ->setParameters(array( - 'user_id1' => 1, - 'user_id2' => 2 - )); -``` - -### After - -```php -$qb = $em->createQueryBuilder() - ->select('u') - ->from('User', 'u') - ->where('u.id = :user_id1 OR u.id = :user_id2') - ->setParameters(new ArrayCollection(array( - new Parameter('user_id1', 1), - new Parameter('user_id2', 2) - ))); -``` - -## BC BREAK: `Doctrine\ORM\Persister\Entity\EntityPersister::executeInserts()` return type changed to `void` - -Implementors should adapt to the new signature, and should call -`UnitOfWork::assignPostInsertId()` for each entry in the previously returned -array. - -## BC BREAK: `Doctrine\ORM\Proxy\ProxyFactory` no longer extends abstract factory from `doctrine/common` - -It is no longer possible to call methods, constants or properties inherited -from that class on a `ProxyFactory` instance. - -`Doctrine\ORM\Proxy\ProxyFactory::createProxyDefinition()` and -`Doctrine\ORM\Proxy\ProxyFactory::resetUninitializedProxy()` are removed as well. - -## BC BREAK: lazy ghosts are enabled unconditionally - -`Doctrine\ORM\Configuration::setLazyGhostObjectEnabled()` and -`Doctrine\ORM\Configuration::isLazyGhostObjectEnabled()` are now no-ops and -will be deprecated in 3.1.0 - -## BC BREAK: collisions in identity map are unconditionally rejected - -`Doctrine\ORM\Configuration::setRejectIdCollisionInIdentityMap()` and -`Doctrine\ORM\Configuration::isRejectIdCollisionInIdentityMapEnabled()` are now -no-ops and will be deprecated in 3.1.0. - -## BC BREAK: Lifecycle callback mapping on embedded classes is now explicitly forbidden - -Lifecycle callback mapping on embedded classes produced no effect, and is now -explicitly forbidden to point out mistakes. - -## BC BREAK: The `NOTIFY` change tracking policy is removed - -You should use `DEFERRED_EXPLICIT` instead. - -## BC BREAK: `Mapping\Driver\XmlDriver::__construct()` third argument is now enabled by default - -The third argument to -`Doctrine\ORM\Mapping\Driver\XmlDriver::__construct()` was introduced to -let users opt-in to XML validation, that is now always enabled by default. - -As a consequence, the same goes for -`Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver`, and for -`Doctrine\ORM\ORMSetup::createXMLMetadataConfiguration()`. - -## BC BREAK: `Mapping\Driver\AttributeDriver::__construct()` second argument is now a no-op - -The second argument to -`Doctrine\ORM\Mapping\Driver\AttributeDriver::__construct()` was introduced to -let users opt-in to a new behavior, that is now always enforced, regardless of -the value of that argument. - -## BC BREAK: `Query::setDQL()` and `Query::setFirstResult()` no longer accept `null` - -The `$dqlQuery` argument of `Doctrine\ORM\Query::setDQL()` must always be a -string. - -The `$firstResult` argument of `Doctrine\ORM\Query::setFirstResult()` must -always be an integer. - -## BC BREAK: `orm:schema-tool:update` option `--complete` is now a no-op - -`orm:schema-tool:update` now behaves as if `--complete` was provided, -regardless of whether it is provided or not. - -## BC BREAK: Removed `Doctrine\ORM\Proxy\Proxy` interface. - -Use `Doctrine\Persistence\Proxy` instead to check whether proxies are initialized. - -## BC BREAK: Overriding fields or associations declared in other than mapped superclasses - -As stated in the documentation, fields and associations may only be overridden when being inherited -from mapped superclasses. Overriding them for parent entity classes now throws a `MappingException`. - -## BC BREAK: Undeclared entity inheritance now throws a `MappingException` - -As soon as an entity class inherits from another entity class, inheritance has to -be declared by adding the appropriate configuration for the root entity. - -## Removed `getEntityManager()` in `Doctrine\ORM\Event\OnClearEventArgs` and `Doctrine\ORM\Event\*FlushEventArgs` - -Use `getObjectManager()` instead. - -## BC BREAK: Removed `Doctrine\ORM\Mapping\ClassMetadataInfo` class - -Use `Doctrine\ORM\Mapping\ClassMetadata` instead. - -## BC BREAK: Removed `Doctrine\ORM\Event\LifecycleEventArgs` class. - -Use one of the dedicated event classes instead: - -* `Doctrine\ORM\Event\PrePersistEventArgs` -* `Doctrine\ORM\Event\PreUpdateEventArgs` -* `Doctrine\ORM\Event\PreRemoveEventArgs` -* `Doctrine\ORM\Event\PostPersistEventArgs` -* `Doctrine\ORM\Event\PostUpdateEventArgs` -* `Doctrine\ORM\Event\PostRemoveEventArgs` -* `Doctrine\ORM\Event\PostLoadEventArgs` - -## BC BREAK: Removed `AttributeDriver::$entityAnnotationClasses` and `AttributeDriver::getReader()` - -* If you need to change the behavior of `AttributeDriver::isTransient()`, - override that method instead. -* The attribute reader is internal to the driver and should not be accessed from outside. - -## BC BREAK: Removed `Doctrine\ORM\Query\AST\InExpression` - -The AST parser will create a `InListExpression` or a `InSubselectExpression` when -encountering an `IN ()` DQL expression instead of a generic `InExpression`. - -As a consequence, `SqlWalker::walkInExpression()` has been replaced by -`SqlWalker::walkInListExpression()` and `SqlWalker::walkInSubselectExpression()`. - -## BC BREAK: Changed `EntityManagerInterface#refresh($entity)`, `EntityManagerDecorator#refresh($entity)` and `UnitOfWork#refresh($entity)` signatures - -The new signatures of these methods add an optional `LockMode|int|null $lockMode` -param with default `null` value (no lock). - -## BC Break: Removed AnnotationDriver - -The annotation driver and anything related to annotation has been removed. -Please migrate to another mapping driver. - -The `Doctrine\ORM\Mapping\Annotation` maker interface has been removed in favor of the new -`Doctrine\ORM\Mapping\MappingAttribute` interface. - -## BC BREAK: Removed `EntityManager::create()` - -The constructor of `EntityManager` is now public and must be used instead of the `create()` method. -However, the constructor expects a `Connection` while `create()` accepted an array with connection parameters. -You can pass that array to DBAL's `Doctrine\DBAL\DriverManager::getConnection()` method to bootstrap the -connection. - -## BC BREAK: Removed `QueryBuilder` methods and constants. - -The following `QueryBuilder` constants and methods have been removed: - -1. `SELECT`, -2. `DELETE`, -3. `UPDATE`, -4. `STATE_DIRTY`, -5. `STATE_CLEAN`, -6. `getState()`, -7. `getType()`. - -## BC BREAK: Omitting only the alias argument for `QueryBuilder::update` and `QueryBuilder::delete` is not supported anymore - -When building an UPDATE or DELETE query and when passing a class/type to the function, the alias argument must not be omitted. - -### Before - -```php -$qb = $em->createQueryBuilder() - ->delete('User u') - ->where('u.id = :user_id') - ->setParameter('user_id', 1); -``` - -### After - -```php -$qb = $em->createQueryBuilder() - ->delete('User', 'u') - ->where('u.id = :user_id') - ->setParameter('user_id', 1); -``` - -## BC BREAK: Split output walkers and tree walkers - -`SqlWalker` and its child classes don't implement the `TreeWalker` interface -anymore. - -The following methods have been removed from the `TreeWalker` interface and -from the `TreeWalkerAdapter` and `TreeWalkerChain` classes: - -* `setQueryComponent()` -* `walkSelectClause()` -* `walkFromClause()` -* `walkFunction()` -* `walkOrderByClause()` -* `walkOrderByItem()` -* `walkHavingClause()` -* `walkJoin()` -* `walkSelectExpression()` -* `walkQuantifiedExpression()` -* `walkSubselect()` -* `walkSubselectFromClause()` -* `walkSimpleSelectClause()` -* `walkSimpleSelectExpression()` -* `walkAggregateExpression()` -* `walkGroupByClause()` -* `walkGroupByItem()` -* `walkDeleteClause()` -* `walkUpdateClause()` -* `walkUpdateItem()` -* `walkWhereClause()` -* `walkConditionalExpression()` -* `walkConditionalTerm()` -* `walkConditionalFactor()` -* `walkConditionalPrimary()` -* `walkExistsExpression()` -* `walkCollectionMemberExpression()` -* `walkEmptyCollectionComparisonExpression()` -* `walkNullComparisonExpression()` -* `walkInExpression()` -* `walkInstanceOfExpression()` -* `walkLiteral()` -* `walkBetweenExpression()` -* `walkLikeExpression()` -* `walkStateFieldPathExpression()` -* `walkComparisonExpression()` -* `walkInputParameter()` -* `walkArithmeticExpression()` -* `walkArithmeticTerm()` -* `walkStringPrimary()` -* `walkArithmeticFactor()` -* `walkSimpleArithmeticExpression()` -* `walkPathExpression()` -* `walkResultVariable()` -* `getExecutor()` - -The following changes have been made to the abstract `TreeWalkerAdapter` class: - -* The method `setQueryComponent()` is now protected. -* The method `_getQueryComponents()` has been removed in favor of - `getQueryComponents()`. - -## BC BREAK: Removed identity columns emulation through sequences - -If the platform you are using does not support identity columns, you should -switch to the `SEQUENCE` strategy. - -## BC BREAK: Made setters parameters mandatory - -The following methods require an argument when being called. Pass `null` -instead of omitting the argument. - -* `Doctrine\ORM\Event\OnClassMetadataNotFoundEventArgs::setFoundMetadata()` -* `Doctrine\ORM\AbstractQuery::setHydrationCacheProfile()` -* `Doctrine\ORM\AbstractQuery::setResultCache()` -* `Doctrine\ORM\AbstractQuery::setResultCacheProfile()` - -## BC BREAK: New argument to `NamingStrategy::joinColumnName()` - -### Before - -```php - `Exception\MissingMappingDriverImplementation::create()` - * `unrecognizedField()` => `Persisters\Exception\UnrecognizedField::byName()` - * `unexpectedAssociationValue()` => `Exception\UnexpectedAssociationValue::create()` - * `invalidOrientation()` => `Persisters\Exception\InvalidOrientation::fromClassNameAndField()` - * `entityManagerClosed()` => `Exception\EntityManagerClosed::create()` - * `invalidHydrationMode()` => `Exception\InvalidHydrationMode::fromMode()` - * `mismatchedEventManager()` => `Exception\MismatchedEventManager::create()` - * `findByRequiresParameter()` => `Repository\Exception\InvalidMagicMethodCall::onMissingParameter()` - * `invalidMagicCall()` => `Repository\Exception\InvalidMagicMethodCall::becauseFieldNotFoundIn()` - * `invalidFindByInverseAssociation()` => `Repository\Exception\InvalidFindByCall::fromInverseSideUsage()` - * `invalidResultCacheDriver()` => `Cache\Exception\InvalidResultCacheDriver::create()` - * `notSupported()` => `Exception\NotSupported::create()` - * `queryCacheNotConfigured()` => `QueryCacheNotConfigured::create()` - * `metadataCacheNotConfigured()` => `Cache\Exception\MetadataCacheNotConfigured::create()` - * `queryCacheUsesNonPersistentCache()` => `Cache\Exception\QueryCacheUsesNonPersistentCache::fromDriver()` - * `metadataCacheUsesNonPersistentCache()` => `Cache\Exception\MetadataCacheUsesNonPersistentCache::fromDriver()` - * `proxyClassesAlwaysRegenerating()` => `Exception\ProxyClassesAlwaysRegenerating::create()` - * `invalidEntityRepository()` => `Exception\InvalidEntityRepository::fromClassName()` - * `missingIdentifierField()` => `Exception\MissingIdentifierField::fromFieldAndClass()` - * `unrecognizedIdentifierFields()` => `Exception\UnrecognizedIdentifierFields::fromClassAndFieldNames()` - * `cantUseInOperatorOnCompositeKeys()` => `Persisters\Exception\CantUseInOperatorOnCompositeKeys::create()` - -## BC Break: `CacheException` is no longer a class, but an interface - -All methods in `Doctrine\ORM\Cache\CacheException` have been extracted to dedicated exceptions. - - * `updateReadOnlyCollection()` => `Cache\Exception\CannotUpdateReadOnlyCollection::fromEntityAndField()` - * `updateReadOnlyEntity()` => `Cache\Exception\CannotUpdateReadOnlyEntity::fromEntity()` - * `nonCacheableEntity()` => `Cache\Exception\NonCacheableEntity::fromEntity()` - * `nonCacheableEntityAssociation()` => `Cache\Exception\NonCacheableEntityAssociation::fromEntityAndField()` - - -## BC Break: Missing type declaration added for identifier generators - -Although undocumented, it was possible to configure a custom repository -class that implements `ObjectRepository` but does not extend the -`EntityRepository` base class. Repository classes have to extend -`EntityRepository` now. - -## BC BREAK: Removed support for entity namespace alias - -- `EntityManager::getRepository()` no longer accepts the entity namespace alias - notation. -- `Configuration::addEntityNamespace()` and - `Configuration::getEntityNamespace()` have been removed. - -## BC BREAK: Remove helper methods from `AbstractCollectionPersister` - -The following protected methods of -`Doctrine\ORM\Cache\Persister\Collection\AbstractCollectionPersister` -have been removed. - -* `evictCollectionCache()` -* `evictElementCache()` - -## BC BREAK: `Doctrine\ORM\Query\TreeWalkerChainIterator` - -This class has been removed without replacement. - -## BC BREAK: Remove quoting methods from `ClassMetadata` - -The following methods have been removed from the class metadata because -quoting is handled by implementations of `Doctrine\ORM\Mapping\QuoteStrategy`: - -* `getQuotedIdentifierColumnNames()` -* `getQuotedColumnName()` -* `getQuotedTableName()` -* `getQuotedJoinTableName()` - -## BC BREAK: Remove ability to merge detached entities - -Merge semantics was a poor fit for the PHP "share-nothing" architecture. -In addition to that, merging caused multiple issues with data integrity -in the managed entity graph, which was constantly spawning more edge-case -bugs/scenarios. - -The method `UnitOfWork::merge()` has been removed. The method -`EntityManager::merge()` will throw an exception on each call. - -## BC BREAK: Removed ability to partially flush/commit entity manager and unit of work - -The following methods don't accept a single entity or an array of entities anymore: - -* `Doctrine\ORM\EntityManager::flush()` -* `Doctrine\ORM\Decorator\EntityManagerDecorator::flush()` -* `Doctrine\ORM\UnitOfWork::commit()` - -The semantics of `flush()` and `commit()` will remain the same, but the change -tracking will be performed on all entities managed by the unit of work, and not -just on the provided entities, as the parameter is now completely ignored. - -## BC BREAK: Removed ability to partially clear entity manager and unit of work - -* Passing an argument other than `null` to `EntityManager::clear()` will raise - an exception. -* The unit of work cannot be cleared partially anymore. Passing an argument to - `UnitOfWork::clear()` does not have any effect anymore; the unit of work is - cleared completely. -* The method `EntityRepository::clear()` has been removed. -* The methods `getEntityClass()` and `clearsAllEntities()` have been removed - from `OnClearEventArgs`. - -## BC BREAK: Remove support for Doctrine Cache - -The Doctrine Cache library is not supported anymore. The following methods -have been removed from `Doctrine\ORM\Configuration`: - -* `getQueryCacheImpl()` -* `setQueryCacheImpl()` -* `getHydrationCacheImpl()` -* `setHydrationCacheImpl()` -* `getMetadataCacheImpl()` -* `setMetadataCacheImpl()` - -The methods have been replaced by PSR-6 compatible counterparts -(just strip the `Impl` suffix from the old name to get the new one). - -## BC BREAK: Remove `Doctrine\ORM\Configuration::newDefaultAnnotationDriver` - -This functionality has been moved to the new `ORMSetup` class. Call -`Doctrine\ORM\ORMSetup::createDefaultAnnotationDriver()` to create -a new annotation driver. - -## BC BREAK: Remove `Doctrine\ORM\Tools\Setup` - -In our effort to migrate from Doctrine Cache to PSR-6, the `Setup` class which -accepted a Doctrine Cache instance in each method has been removed. - -The replacement is `Doctrine\ORM\ORMSetup` which accepts a PSR-6 -cache instead. - -## BC BREAK: Removed named queries - -All APIs related to named queries have been removed. - -## BC BREAK: Remove old cache accessors and mutators from query classes - -The following methods have been removed from `AbstractQuery`: - -* `setResultCacheDriver()` -* `getResultCacheDriver()` -* `useResultCache()` -* `getResultCacheLifetime()` -* `getResultCacheId()` - -The following methods have been removed from `Query`: - -* `setQueryCacheDriver()` -* `getQueryCacheDriver()` - -## BC BREAK: Remove `Doctrine\ORM\Cache\MultiGetRegion` - -The interface has been merged into `Doctrine\ORM\Cache\Region`. - -## BC BREAK: Rename `AbstractIdGenerator::generate()` to `generateId()` - -* Implementations of `AbstractIdGenerator` have to implement the method - `generateId()`. -* The method `generate()` has been removed from `AbstractIdGenerator`. - -## BC BREAK: Remove cache settings inspection - -Doctrine does not provide its own cache implementation anymore and relies on -the PSR-6 standard instead. As a consequence, we cannot determine anymore -whether a given cache adapter is suitable for a production environment. -Because of that, functionality that aims to do so has been removed: - -* `Configuration::ensureProductionSettings()` -* the `orm:ensure-production-settings` console command - -## BC BREAK: PSR-6-based second level cache - -The second level cache has been reworked to consume a PSR-6 cache. Using a -Doctrine Cache instance is not supported anymore. - -* `DefaultCacheFactory`: The constructor expects a PSR-6 cache item pool as - second argument now. -* `DefaultMultiGetRegion`: This class has been removed. -* `DefaultRegion`: - * The constructor expects a PSR-6 cache item pool as second argument now. - * The protected `$cache` property is removed. - * The properties `$name` and `$lifetime` as well as the constant - `REGION_KEY_SEPARATOR` and the method `getCacheEntryKey()` are - `private` now. - * The method `getCache()` has been removed. - - -## BC Break: Remove `Doctrine\ORM\Mapping\Driver\PHPDriver` - -Use `StaticPHPDriver` instead when you want to programmatically configure -entity metadata. - -## BC BREAK: Remove `Doctrine\ORM\EntityManagerInterface#transactional()` - -This method has been replaced by `Doctrine\ORM\EntityManagerInterface#wrapInTransaction()`. - -## BC BREAK: Removed support for schema emulation. - -The ORM no longer attempts to emulate schemas on SQLite. - -## BC BREAK: Remove `Setup::registerAutoloadDirectory()` - -Use Composer's autoloader instead. - -## BC BREAK: Remove YAML mapping drivers. - -If your code relies on `YamlDriver` or `SimpleYamlDriver`, you **MUST** migrate to -attribute, annotation or XML drivers instead. - -You can use the `orm:convert-mapping` command to convert your metadata mapping to XML -_before_ upgrading to 3.0: - -```sh -php doctrine orm:convert-mapping xml /path/to/mapping-path-converted-to-xml -``` - -## BC BREAK: Remove code generators and related console commands - -These console commands have been removed: - -* `orm:convert-d1-schema` -* `orm:convert-mapping` -* `orm:generate:entities` -* `orm:generate-repositories` - -These classes have been deprecated: - -* `Doctrine\ORM\Tools\ConvertDoctrine1Schema` -* `Doctrine\ORM\Tools\EntityGenerator` -* `Doctrine\ORM\Tools\EntityRepositoryGenerator` - -The entire `Doctrine\ORM\Tools\Export` namespace has been removed as well. - -## BC BREAK: Removed `Doctrine\ORM\Version` - -Use Composer's runtime API if you _really_ need to check the version of the ORM package at runtime. - -## BC BREAK: EntityRepository::count() signature change - -The argument `$criteria` of `Doctrine\ORM\EntityRepository::count()` is now -optional. Overrides in child classes should be made compatible. - -## BC BREAK: changes in exception hierarchy - -- `Doctrine\ORM\ORMException` has been removed -- `Doctrine\ORM\Exception\ORMException` is now an interface - -## Variadic methods now use native variadics -The following methods were using `func_get_args()` to simulate a variadic argument: -- `Doctrine\ORM\Query\Expr#andX()` -- `Doctrine\ORM\Query\Expr#orX()` -- `Doctrine\ORM\QueryBuilder#select()` -- `Doctrine\ORM\QueryBuilder#addSelect()` -- `Doctrine\ORM\QueryBuilder#where()` -- `Doctrine\ORM\QueryBuilder#andWhere()` -- `Doctrine\ORM\QueryBuilder#orWhere()` -- `Doctrine\ORM\QueryBuilder#groupBy()` -- `Doctrine\ORM\QueryBuilder#andGroupBy()` -- `Doctrine\ORM\QueryBuilder#having()` -- `Doctrine\ORM\QueryBuilder#andHaving()` -- `Doctrine\ORM\QueryBuilder#orHaving()` -A variadic argument is now actually used in their signatures signature (`...$x`). -Signatures of overridden methods should be changed accordingly - -## Minor BC BREAK: removed `Doctrine\ORM\EntityManagerInterface#copy()` - -Method `Doctrine\ORM\EntityManagerInterface#copy()` never got its implementation and is removed in 3.0. - -## BC BREAK: Removed classes related to UUID and TABLE generator strategies - -The following classes have been removed: -- `Doctrine\ORM\Id\TableGenerator` -- `Doctrine\ORM\Id\UuidGenerator` - -Using the `UUID` strategy for generating identifiers is not supported anymore. - -## BC BREAK: Removed `Query::iterate()` - -The deprecated method `Query::iterate()` has been removed along with the -following classes and methods: - -- `AbstractHydrator::iterate()` -- `AbstractHydrator::hydrateRow()` -- `IterableResult` - -Use `toIterable()` instead. - -# Upgrade to 2.20 - -## Add `Doctrine\ORM\Query\OutputWalker` interface, deprecate `Doctrine\ORM\Query\SqlWalker::getExecutor()` - -Output walkers should implement the new `\Doctrine\ORM\Query\OutputWalker` interface and create -`Doctrine\ORM\Query\Exec\SqlFinalizer` instances instead of `Doctrine\ORM\Query\Exec\AbstractSqlExecutor`s. -The output walker must not base its workings on the query `firstResult`/`maxResult` values, so that the -`SqlFinalizer` can be kept in the query cache and used regardless of the actual `firstResult`/`maxResult` values. -Any operation dependent on `firstResult`/`maxResult` should take place within the `SqlFinalizer::createExecutor()` -method. Details can be found at https://github.com/doctrine/orm/pull/11188. - -## Explictly forbid property hooks - -Property hooks are not supported yet by Doctrine ORM. Until support is added, -they are explicitly forbidden because the support would result in a breaking -change in behavior. - -Progress on this is tracked at https://github.com/doctrine/orm/issues/11624 . - -## PARTIAL DQL syntax is undeprecated - -Use of the PARTIAL keyword is not deprecated anymore in DQL, because we will be -able to support PARTIAL objects with PHP 8.4 Lazy Objects and -Symfony/VarExporter in a better way. When we decided to remove this feature -these two abstractions did not exist yet. - -WARNING: If you want to upgrade to 3.x and still use PARTIAL keyword in DQL -with array or object hydrators, then you have to directly migrate to ORM 3.3.x or higher. -PARTIAL keyword in DQL is not available in 3.0, 3.1 and 3.2 of ORM. - -## Deprecate `\Doctrine\ORM\Query\Parser::setCustomOutputTreeWalker()` - -Use the `\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER` query hint to set the output walker -class instead of setting it through the `\Doctrine\ORM\Query\Parser::setCustomOutputTreeWalker()` method -on the parser instance. - -# Upgrade to 2.19 - -## Deprecate calling `ClassMetadata::getAssociationMappedByTargetField()` with the owning side of an association - -Calling -`Doctrine\ORM\Mapping\ClassMetadata::getAssociationMappedByTargetField()` with -the owning side of an association returns `null`, which is undocumented, and -wrong according to the phpdoc of the parent method. - -If you do not know whether you are on the owning or inverse side of an association, -you can use `Doctrine\ORM\Mapping\ClassMetadata::isAssociationInverseSide()` -to find out. - -## Deprecate `Doctrine\ORM\Query\Lexer::T_*` constants - -Use `Doctrine\ORM\Query\TokenType::T_*` instead. - -# Upgrade to 2.17 - -## Deprecate annotations classes for named queries - -The following classes have been deprecated: - -* `Doctrine\ORM\Mapping\NamedNativeQueries` -* `Doctrine\ORM\Mapping\NamedNativeQuery` -* `Doctrine\ORM\Mapping\NamedQueries` -* `Doctrine\ORM\Mapping\NamedQuery` - -## Deprecate `Doctrine\ORM\Query\Exec\AbstractSqlExecutor::_sqlStatements` - -Use `Doctrine\ORM\Query\Exec\AbstractSqlExecutor::sqlStatements` instead. - -## Undeprecate `Doctrine\ORM\Proxy\Autoloader` - -It will be a full-fledged class, no longer extending -`Doctrine\Common\Proxy\Autoloader` in 3.0.x. - -## Deprecated: reliance on the non-optimal defaults that come with the `AUTO` identifier generation strategy - -When the `AUTO` identifier generation strategy was introduced, the best -strategy at the time was selected for each database platform. -A lot of time has passed since then, and with ORM 3.0.0 and DBAL 4.0.0, support -for better strategies will be added. - -Because of that, it is now deprecated to rely on the historical defaults when -they differ from what we will be recommended in the future. - -Instead, you should pick a strategy for each database platform you use, and it -will be used when using `AUTO`. As of now, only PostgreSQL is affected by this. - -It is recommended that PostgreSQL users configure their existing and new -applications to use `SEQUENCE` until `doctrine/dbal` 4.0.0 is released: - -```php -use Doctrine\DBAL\Platforms\PostgreSQLPlatform; -use Doctrine\ORM\Configuration; - -assert($configuration instanceof Configuration); -$configuration->setIdentityGenerationPreferences([ - PostgreSQLPlatform::CLASS => ClassMetadata::GENERATOR_TYPE_SEQUENCE, -]); -``` - -When DBAL 4 is released, `AUTO` will result in `IDENTITY`, and the above -configuration should be removed to migrate to it. - -## Deprecate `EntityManagerInterface::getPartialReference()` - -This method does not have a replacement and will be removed in 3.0. - -## Deprecate not-enabling lazy-ghosts - -Not enabling lazy ghost objects is deprecated. In ORM 3.0, they will be always enabled. -Ensure `Doctrine\ORM\Configuration::setLazyGhostObjectEnabled(true)` is called to enable them. - -# Upgrade to 2.16 - -## Deprecated accepting duplicate IDs in the identity map - -For any given entity class and ID value, there should be only one object instance -representing the entity. - -In https://github.com/doctrine/orm/pull/10785, a check was added that will guard this -in the identity map. The most probable cause for violations of this rule are collisions -of application-provided IDs. - -In ORM 2.16.0, the check was added by throwing an exception. In ORM 2.16.1, this will be -changed to a deprecation notice. ORM 3.0 will make it an exception again. Use -`\Doctrine\ORM\Configuration::setRejectIdCollisionInIdentityMap()` if you want to opt-in -to the new mode. - -## Potential changes to the order in which `INSERT`s are executed - -In https://github.com/doctrine/orm/pull/10547, the commit order computation was improved -to fix a series of bugs where a correct (working) commit order was previously not found. -Also, the new computation may get away with fewer queries being executed: By inserting -referred-to entities first and using their ID values for foreign key fields in subsequent -`INSERT` statements, additional `UPDATE` statements that were previously necessary can be -avoided. - -When using database-provided, auto-incrementing IDs, this may lead to IDs being assigned -to entities in a different order than it was previously the case. - -## Deprecated returning post insert IDs from `EntityPersister::executeInserts()` - -Persisters implementing `\Doctrine\ORM\Persisters\Entity\EntityPersister` should no longer -return an array of post insert IDs from their `::executeInserts()` method. Make the -persister call `Doctrine\ORM\UnitOfWork::assignPostInsertId()` instead. - -## Changing the way how reflection-based mapping drivers report fields, deprecated the "old" mode - -In ORM 3.0, a change will be made regarding how the `AttributeDriver` reports field mappings. -This change is necessary to be able to detect (and reject) some invalid mapping configurations. - -To avoid surprises during 2.x upgrades, the new mode is opt-in. It can be activated on the -`AttributeDriver` and `AnnotationDriver` by setting the `$reportFieldsWhereDeclared` -constructor parameter to `true`. It will cause `MappingException`s to be thrown when invalid -configurations are detected. - -Not enabling the new mode will cause a deprecation notice to be raised. In ORM 3.0, -only the new mode will be available. - -# Upgrade to 2.15 - -## Deprecated configuring `JoinColumn` on the inverse side of one-to-one associations - -For one-to-one associations, the side using the `mappedBy` attribute is the inverse side. -The owning side is the entity with the table containing the foreign key. Using `JoinColumn` -configuration on the _inverse_ side now triggers a deprecation notice and will be an error -in 3.0. - -## Deprecated overriding fields or associations not declared in mapped superclasses - -As stated in the documentation, fields and associations may only be overridden when being inherited -from mapped superclasses. Overriding them for parent entity classes now triggers a deprecation notice -and will be an error in 3.0. - -## Deprecated undeclared entity inheritance - -As soon as an entity class inherits from another entity class, inheritance has to -be declared by adding the appropriate configuration for the root entity. - -## Deprecated stubs for "concrete table inheritance" - -This third way of mapping class inheritance was never implemented. Code stubs are -now deprecated and will be removed in 3.0. - -* `\Doctrine\ORM\Mapping\ClassMetadataInfo::INHERITANCE_TYPE_TABLE_PER_CLASS` constant -* `\Doctrine\ORM\Mapping\ClassMetadataInfo::isInheritanceTypeTablePerClass()` method -* Using `TABLE_PER_CLASS` as the value for the `InheritanceType` attribute or annotation - or in XML configuration files. - -# Upgrade to 2.14 - -## Deprecated `Doctrine\ORM\Persisters\Exception\UnrecognizedField::byName($field)` method. - -Use `Doctrine\ORM\Persisters\Exception\UnrecognizedField::byFullyQualifiedName($className, $field)` instead. - -## Deprecated constants of `Doctrine\ORM\Internal\CommitOrderCalculator` - -The following public constants have been deprecated: - -* `CommitOrderCalculator::NOT_VISITED` -* `CommitOrderCalculator::IN_PROGRESS` -* `CommitOrderCalculator::VISITED` - -These constants were used for internal purposes. Relying on them is discouraged. - -## Deprecated `Doctrine\ORM\Query\AST\InExpression` - -The AST parser will create a `InListExpression` or a `InSubselectExpression` when -encountering an `IN ()` DQL expression instead of a generic `InExpression`. - -As a consequence, `SqlWalker::walkInExpression()` has been deprecated in favor of -`SqlWalker::walkInListExpression()` and `SqlWalker::walkInSubselectExpression()`. - -## Deprecated constructing a `CacheKey` without `$hash` - -The `Doctrine\ORM\Cache\CacheKey` class has an explicit constructor now with -an optional parameter `$hash`. That parameter will become mandatory in 3.0. - -## Deprecated `AttributeDriver::$entityAnnotationClasses` - -If you need to change the behavior of `AttributeDriver::isTransient()`, -override that method instead. - -## Deprecated incomplete schema updates - -Using `orm:schema-tool:update` without passing the `--complete` flag is -deprecated. Use schema asset filtering if you need to preserve assets not -managed by DBAL. - -Likewise, calling `SchemaTool::updateSchema()` or -`SchemaTool::getUpdateSchemaSql()` with a second argument is deprecated. - -## Deprecated annotation mapping driver. - -Please switch to one of the other mapping drivers. Native attributes which PHP -supports since version 8.0 are probably your best option. - -As a consequence, the following methods are deprecated: -- `ORMSetup::createAnnotationMetadataConfiguration` -- `ORMSetup::createDefaultAnnotationDriver` - -The marker interface `Doctrine\ORM\Mapping\Annotation` is deprecated as well. -All annotation/attribute classes implement -`Doctrine\ORM\Mapping\MappingAttribute` now. - -## Deprecated `Doctrine\ORM\Proxy\Proxy` interface. - -Use `Doctrine\Persistence\Proxy` instead to check whether proxies are initialized. - -## Deprecated `Doctrine\ORM\Event\LifecycleEventArgs` class. - -It will be removed in 3.0. Use one of the dedicated event classes instead: - -* `Doctrine\ORM\Event\PrePersistEventArgs` -* `Doctrine\ORM\Event\PreUpdateEventArgs` -* `Doctrine\ORM\Event\PreRemoveEventArgs` -* `Doctrine\ORM\Event\PostPersistEventArgs` -* `Doctrine\ORM\Event\PostUpdateEventArgs` -* `Doctrine\ORM\Event\PostRemoveEventArgs` -* `Doctrine\ORM\Event\PostLoadEventArgs` - -# Upgrade to 2.13 - -## Deprecated `EntityManager::create()` - -The constructor of `EntityManager` is now public and should be used instead of the `create()` method. -However, the constructor expects a `Connection` while `create()` accepted an array with connection parameters. -You can pass that array to DBAL's `Doctrine\DBAL\DriverManager::getConnection()` method to bootstrap the -connection. - -## Deprecated `QueryBuilder` methods and constants. - -1. The `QueryBuilder::getState()` method has been deprecated as the builder state is an internal concern. -2. Relying on the type of the query being built by using `QueryBuilder::getType()` has been deprecated. - If necessary, track the type of the query being built outside of the builder. - -The following `QueryBuilder` constants related to the above methods have been deprecated: - -1. `SELECT`, -2. `DELETE`, -3. `UPDATE`, -4. `STATE_DIRTY`, -5. `STATE_CLEAN`. - -## Deprecated omitting only the alias argument for `QueryBuilder::update` and `QueryBuilder::delete` - -When building an UPDATE or DELETE query and when passing a class/type to the function, the alias argument must not be omitted. - -### Before - -```php -$qb = $em->createQueryBuilder() - ->delete('User u') - ->where('u.id = :user_id') - ->setParameter('user_id', 1); -``` - -### After - -```php -$qb = $em->createQueryBuilder() - ->delete('User', 'u') - ->where('u.id = :user_id') - ->setParameter('user_id', 1); -``` - -## Deprecated using the `IDENTITY` identifier strategy on platform that do not support identity columns - -If identity columns are emulated with sequences on the platform you are using, -you should switch to the `SEQUENCE` strategy. - -## Deprecated passing `null` to `Doctrine\ORM\Query::setFirstResult()` - -`$query->setFirstResult(null);` is equivalent to `$query->setFirstResult(0)`. - -## Deprecated calling setters without arguments - -The following methods will require an argument in 3.0. Pass `null` instead of -omitting the argument. - -* `Doctrine\ORM\Event\OnClassMetadataNotFoundEventArgs::setFoundMetadata()` -* `Doctrine\ORM\AbstractQuery::setHydrationCacheProfile()` -* `Doctrine\ORM\AbstractQuery::setResultCache()` -* `Doctrine\ORM\AbstractQuery::setResultCacheProfile()` - -## Deprecated passing invalid fetch modes to `AbstractQuery::setFetchMode()` - -Calling `AbstractQuery::setFetchMode()` with anything else than -`Doctrine\ORM\Mapping::FETCH_EAGER` results in -`Doctrine\ORM\Mapping::FETCH_LAZY` being used. Relying on that behavior is -deprecated and will result in an exception in 3.0. - -## Deprecated `getEntityManager()` in `Doctrine\ORM\Event\OnClearEventArgs` and `Doctrine\ORM\Event\*FlushEventArgs` - -This method has been deprecated in: - -* `Doctrine\ORM\Event\OnClearEventArgs` -* `Doctrine\ORM\Event\OnFlushEventArgs` -* `Doctrine\ORM\Event\PostFlushEventArgs` -* `Doctrine\ORM\Event\PreFlushEventArgs` - -It will be removed in 3.0. Use `getObjectManager()` instead. - -## Prepare split of output walkers and tree walkers - -In 3.0, `SqlWalker` and its child classes won't implement the `TreeWalker` -interface anymore. Relying on that inheritance is deprecated. - -The following methods of the `TreeWalker` interface have been deprecated: - -* `setQueryComponent()` -* `walkSelectClause()` -* `walkFromClause()` -* `walkFunction()` -* `walkOrderByClause()` -* `walkOrderByItem()` -* `walkHavingClause()` -* `walkJoin()` -* `walkSelectExpression()` -* `walkQuantifiedExpression()` -* `walkSubselect()` -* `walkSubselectFromClause()` -* `walkSimpleSelectClause()` -* `walkSimpleSelectExpression()` -* `walkAggregateExpression()` -* `walkGroupByClause()` -* `walkGroupByItem()` -* `walkDeleteClause()` -* `walkUpdateClause()` -* `walkUpdateItem()` -* `walkWhereClause()` -* `walkConditionalExpression()` -* `walkConditionalTerm()` -* `walkConditionalFactor()` -* `walkConditionalPrimary()` -* `walkExistsExpression()` -* `walkCollectionMemberExpression()` -* `walkEmptyCollectionComparisonExpression()` -* `walkNullComparisonExpression()` -* `walkInExpression()` -* `walkInstanceOfExpression()` -* `walkLiteral()` -* `walkBetweenExpression()` -* `walkLikeExpression()` -* `walkStateFieldPathExpression()` -* `walkComparisonExpression()` -* `walkInputParameter()` -* `walkArithmeticExpression()` -* `walkArithmeticTerm()` -* `walkStringPrimary()` -* `walkArithmeticFactor()` -* `walkSimpleArithmeticExpression()` -* `walkPathExpression()` -* `walkResultVariable()` -* `getExecutor()` - -The following changes have been made to the abstract `TreeWalkerAdapter` class: - -* All implementations of now-deprecated `TreeWalker` methods have been - deprecated as well. -* The method `setQueryComponent()` will become protected in 3.0. Calling it - publicly is deprecated. -* The method `_getQueryComponents()` is deprecated, call `getQueryComponents()` - instead. - -On the `TreeWalkerChain` class, all implementations of now-deprecated -`TreeWalker` methods have been deprecated as well. However, `SqlWalker` is -unaffected by those deprecations and will continue to implement all of those -methods. - -## Deprecated passing `null` to `Doctrine\ORM\Query::setDQL()` - -Doing `$query->setDQL(null);` achieves nothing. - -## Deprecated omitting second argument to `NamingStrategy::joinColumnName` - -When implementing `NamingStrategy`, it is deprecated to implement -`joinColumnName()` with only one argument. - -### Before - -```php -getConfiguration(); --$config->addEntityNamespace('CMS', 'My\App\Cms'); -+use My\App\Cms\CmsUser; - --$entityManager->getRepository('CMS:CmsUser'); -+$entityManager->getRepository(CmsUser::class); -``` - -## Deprecate `AttributeDriver::getReader()` and `AnnotationDriver::getReader()` - -That method was inherited from the abstract `AnnotationDriver` class of -`doctrine/persistence`, and does not seem to serve any purpose. - -## Un-deprecate `Doctrine\ORM\Proxy\Proxy` - -Because no forward-compatible new proxy solution had been implemented yet, the -current proxy mechanism is not considered deprecated anymore for the time -being. This applies to the following interfaces/classes: - -* `Doctrine\ORM\Proxy\Proxy` -* `Doctrine\ORM\Proxy\ProxyFactory` - -These methods have been un-deprecated: - -* `Doctrine\ORM\Configuration::getAutoGenerateProxyClasses()` -* `Doctrine\ORM\Configuration::getProxyDir()` -* `Doctrine\ORM\Configuration::getProxyNamespace()` - -Note that the `Doctrine\ORM\Proxy\Autoloader` remains deprecated and will be removed in 3.0. - -## Deprecate helper methods from `AbstractCollectionPersister` - -The following protected methods of -`Doctrine\ORM\Cache\Persister\Collection\AbstractCollectionPersister` -are not in use anymore and will be removed. - -* `evictCollectionCache()` -* `evictElementCache()` - -## Deprecate `Doctrine\ORM\Query\TreeWalkerChainIterator` - -This class won't have a replacement. - -## Deprecate `OnClearEventArgs::getEntityClass()` and `OnClearEventArgs::clearsAllEntities()` - -These methods will be removed in 3.0 along with the ability to partially clear -the entity manager. - -## Deprecate `Doctrine\ORM\Configuration::newDefaultAnnotationDriver` - -This functionality has been moved to the new `ORMSetup` class. Call -`Doctrine\ORM\ORMSetup::createDefaultAnnotationDriver()` to create -a new annotation driver. - -## Deprecate `Doctrine\ORM\Tools\Setup` - -In our effort to migrate from Doctrine Cache to PSR-6, the `Setup` class which -accepted a Doctrine Cache instance in each method has been deprecated. - -The replacement is `Doctrine\ORM\ORMSetup` which accepts a PSR-6 -cache instead. - -## Deprecate `Doctrine\ORM\Cache\MultiGetRegion` - -The interface will be merged with `Doctrine\ORM\Cache\Region` in 3.0. - -# Upgrade to 2.11 - -## Rename `AbstractIdGenerator::generate()` to `generateId()` - -Implementations of `AbstractIdGenerator` have to override the method -`generateId()` without calling the parent implementation. Not doing so is -deprecated. Calling `generate()` on any `AbstractIdGenerator` implementation -is deprecated. - -## PSR-6-based second level cache - -The second level cache has been reworked to consume a PSR-6 cache. Using a -Doctrine Cache instance is deprecated. - -* `DefaultCacheFactory`: The constructor expects a PSR-6 cache item pool as - second argument now. -* `DefaultMultiGetRegion`: This class is deprecated in favor of `DefaultRegion`. -* `DefaultRegion`: - * The constructor expects a PSR-6 cache item pool as second argument now. - * The protected `$cache` property is deprecated. - * The properties `$name` and `$lifetime` as well as the constant - `REGION_KEY_SEPARATOR` and the method `getCacheEntryKey()` are flagged as - `@internal` now. They all will become `private` in 3.0. - * The method `getCache()` is deprecated without replacement. - -## Deprecated: `Doctrine\ORM\Mapping\Driver\PHPDriver` - -Use `StaticPHPDriver` instead when you want to programmatically configure -entity metadata. - -You can convert mappings with the `orm:convert-mapping` command or more simply -in this case, `include` the metadata file from the `loadMetadata` static method -used by the `StaticPHPDriver`. - -## Deprecated: `Setup::registerAutoloadDirectory()` - -Use Composer's autoloader instead. - -## Deprecated: `AbstractHydrator::hydrateRow()` - -Following the deprecation of the method `AbstractHydrator::iterate()`, the -method `hydrateRow()` has been deprecated as well. - -## Deprecate cache settings inspection - -Doctrine does not provide its own cache implementation anymore and relies on -the PSR-6 standard instead. As a consequence, we cannot determine anymore -whether a given cache adapter is suitable for a production environment. -Because of that, functionality that aims to do so has been deprecated: - -* `Configuration::ensureProductionSettings()` -* the `orm:ensure-production-settings` console command - -# Upgrade to 2.10 - -## BC Break: `UnitOfWork` now relies on SPL object IDs, not hashes - -When calling the following methods, you are now supposed to use the result of -`spl_object_id()`, and not `spl_object_hash()`: -- `UnitOfWork::clearEntityChangeSet()` -- `UnitOfWork::setOriginalEntityProperty()` - -## BC Break: Removed `TABLE` id generator strategy - -The implementation was unfinished for 14 years. -It is now deprecated to rely on: -- `Doctrine\ORM\Id\TableGenerator`; -- `Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_TABLE`; -- `Doctrine\ORM\Mapping\ClassMetadata::$tableGeneratorDefinition`; -- or `Doctrine\ORM\Mapping\ClassMetadata::isIdGeneratorTable()`. - -## New method `Doctrine\ORM\EntityManagerInterface#wrapInTransaction($func)` - -Works the same as `Doctrine\ORM\EntityManagerInterface#transactional()` but returns any value returned from `$func` closure rather than just _non-empty value returned from the closure or true_. - -Because of BC policy, the method does not exist on the interface yet. This is the example of safe usage: - -```php -function foo(EntityManagerInterface $entityManager, callable $func) { - if (method_exists($entityManager, 'wrapInTransaction')) { - return $entityManager->wrapInTransaction($func); - } - - return $entityManager->transactional($func); -} -``` - -`Doctrine\ORM\EntityManagerInterface#transactional()` has been deprecated. - -## Minor BC BREAK: some exception methods have been removed - -The following methods were not in use and are very unlikely to be used by -downstream packages or applications, and were consequently removed: - -- `ORMException::entityMissingForeignAssignedId` -- `ORMException::entityMissingAssignedIdForField` -- `ORMException::invalidFlushMode` - -## Deprecated: database-side UUID generation - -[DB-generated UUIDs are deprecated as of `doctrine/dbal` 2.8][DBAL deprecation]. -As a consequence, using the `UUID` strategy for generating identifiers is deprecated as well. -Furthermore, relying on the following classes and methods is deprecated: - -- `Doctrine\ORM\Id\UuidGenerator` -- `Doctrine\ORM\Mapping\ClassMetadataInfo::isIdentifierUuid()` - -[DBAL deprecation]: https://github.com/doctrine/dbal/pull/3212 - -## Minor BC BREAK: Custom hydrators and `toIterable()` - -The type declaration of the `$stmt` parameter of `AbstractHydrator::toIterable()` has been removed. This change might -break custom hydrator implementations that override this very method. - -Overriding this method is not recommended, which is why the method is documented as `@final` now. - -```diff -- public function toIterable(ResultStatement $stmt, ResultSetMapping $resultSetMapping, array $hints = []): iterable -+ public function toIterable($stmt, ResultSetMapping $resultSetMapping, array $hints = []): iterable -``` - -## Deprecated: Entity Namespace Aliases - -Entity namespace aliases are deprecated, use the magic ::class constant to abbreviate full class names -in EntityManager, EntityRepository and DQL. - -```diff -- $entityManager->find('MyBundle:User', $id); -+ $entityManager->find(User::class, $id); -``` - -# Upgrade to 2.9 - -## Minor BC BREAK: Setup tool needs cache implementation - -With the deprecation of doctrine/cache, the setup tool might no longer work as expected without a different cache -implementation. To work around this: -* Install symfony/cache: `composer require symfony/cache`. This will keep previous behaviour without any changes -* Instantiate caches yourself: to use a different cache implementation, pass a cache instance when calling any - configuration factory in the setup tool: - ```diff - - $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode, $proxyDir); - + $cache = \Doctrine\Common\Cache\Psr6\DoctrineProvider::wrap($anyPsr6Implementation); - + $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode, $proxyDir, $cache); - ``` -* As a quick workaround, you can lock the doctrine/cache dependency to work around this: `composer require doctrine/cache ^1.11`. - Note that this is only recommended as a bandaid fix, as future versions of ORM will no longer work with doctrine/cache - 1.11. - -## Deprecated: doctrine/cache for metadata caching - -The `Doctrine\ORM\Configuration#setMetadataCacheImpl()` method is deprecated and should no longer be used. Please use -`Doctrine\ORM\Configuration#setMetadataCache()` with any PSR-6 cache adapter instead. - -## Removed: flushing metadata cache - -To support PSR-6 caches, the `--flush` option for the `orm:clear-cache:metadata` command is ignored. Metadata cache is -now always cleared regardless of the cache adapter being used. - -# Upgrade to 2.8 - -## Minor BC BREAK: Failed commit now throw OptimisticLockException - -Method `Doctrine\ORM\UnitOfWork#commit()` can throw an OptimisticLockException when a commit silently fails and returns false -since `Doctrine\DBAL\Connection#commit()` signature changed from returning void to boolean - -## Deprecated: `Doctrine\ORM\AbstractQuery#iterate()` - -The method `Doctrine\ORM\AbstractQuery#iterate()` is deprecated in favor of `Doctrine\ORM\AbstractQuery#toIterable()`. -Note that `toIterable()` yields results of the query, unlike `iterate()` which yielded each result wrapped into an array. - -# Upgrade to 2.7 - -## Added `Doctrine\ORM\AbstractQuery#enableResultCache()` and `Doctrine\ORM\AbstractQuery#disableResultCache()` methods - -Method `Doctrine\ORM\AbstractQuery#useResultCache()` which could be used for both enabling and disabling the cache -(depending on passed flag) was split into two. - -## Minor BC BREAK: paginator output walkers aren't be called anymore on sub-queries for queries without max results - -To optimize DB interaction, `Doctrine\ORM\Tools\Pagination\Paginator` no longer fetches identifiers to be able to -perform the pagination with join collections when max results isn't set in the query. - -## Minor BC BREAK: tables filtered with `schema_filter` are no longer created - -When generating schema diffs, if a source table is filtered out by a `schema_filter` expression, then a `CREATE TABLE` was -always generated, even if the table already existed. This has been changed in this release and the table will no longer -be created. - -## Deprecated number unaware `Doctrine\ORM\Mapping\UnderscoreNamingStrategy` - -In the last patch of the `v2.6.x` series, we fixed a bug that was not converting names properly when they had numbers -(e.g.: `base64Encoded` was wrongly converted to `base64encoded` instead of `base64_encoded`). - -In order to not break BC we've introduced a way to enable the fixed behavior using a boolean constructor argument. This -argument will be removed in 3.0 and the default behavior will be the fixed one. - -## Deprecated: `Doctrine\ORM\AbstractQuery#useResultCache()` - -Method `Doctrine\ORM\AbstractQuery#useResultCache()` is deprecated because it is split into `enableResultCache()` -and `disableResultCache()`. It will be removed in 3.0. - -## Deprecated code generators and related console commands - -These console commands have been deprecated: - - * `orm:convert-mapping` - * `orm:generate:entities` - * `orm:generate-repositories` - -These classes have been deprecated: - - * `Doctrine\ORM\Tools\EntityGenerator` - * `Doctrine\ORM\Tools\EntityRepositoryGenerator` - -Whole Doctrine\ORM\Tools\Export namespace with all its members have been deprecated as well. - -## Deprecated `Doctrine\ORM\Proxy\Proxy` marker interface - -Proxy objects in Doctrine ORM 3.0 will no longer implement `Doctrine\ORM\Proxy\Proxy` nor -`Doctrine\Persistence\Proxy`: instead, they implement -`ProxyManager\Proxy\GhostObjectInterface`. - -These related classes have been deprecated: - - * `Doctrine\ORM\Proxy\ProxyFactory` - * `Doctrine\ORM\Proxy\Autoloader` - we suggest using the composer autoloader instead - -These methods have been deprecated: - - * `Doctrine\ORM\Configuration#getAutoGenerateProxyClasses()` - * `Doctrine\ORM\Configuration#getProxyDir()` - * `Doctrine\ORM\Configuration#getProxyNamespace()` - -## Deprecated `Doctrine\ORM\Version` - -The `Doctrine\ORM\Version` class is now deprecated and will be removed in Doctrine ORM 3.0: -please refrain from checking the ORM version at runtime or use Composer's [runtime API](https://getcomposer.org/doc/07-runtime.md#knowing-whether-package-x-is-installed-in-version-y). - -## Deprecated `EntityManager#merge()` method - -Merge semantics was a poor fit for the PHP "share-nothing" architecture. -In addition to that, merging caused multiple issues with data integrity -in the managed entity graph, which was constantly spawning more edge-case bugs/scenarios. - -The following API methods were therefore deprecated: - -* `EntityManager#merge()` -* `UnitOfWork#merge()` - -An alternative to `EntityManager#merge()` will not be provided by ORM 3.0, since the merging -semantics should be part of the business domain rather than the persistence domain of an -application. If your application relies heavily on CRUD-alike interactions and/or `PATCH` -restful operations, you should look at alternatives such as [JMSSerializer](https://github.com/schmittjoh/serializer). - -## Extending `EntityManager` is deprecated - -Final keyword will be added to the `EntityManager::class` in Doctrine ORM 3.0 in order to ensure that EntityManager - is not used as valid extension point. Valid extension point should be EntityManagerInterface. - -## Deprecated `EntityManager#clear($entityName)` - -If your code relies on clearing a single entity type via `EntityManager#clear($entityName)`, -the signature has been changed to `EntityManager#clear()`. - -The main reason is that partial clears caused multiple issues with data integrity -in the managed entity graph, which was constantly spawning more edge-case bugs/scenarios. - -## Deprecated `EntityManager#flush($entity)` and `EntityManager#flush($entities)` - -If your code relies on single entity flushing optimisations via -`EntityManager#flush($entity)`, the signature has been changed to -`EntityManager#flush()`. - -Said API was affected by multiple data integrity bugs due to the fact -that change tracking was being restricted upon a subset of the managed -entities. The ORM cannot support committing subsets of the managed -entities while also guaranteeing data integrity, therefore this -utility was removed. - -The `flush()` semantics will remain the same, but the change tracking will be performed -on all entities managed by the unit of work, and not just on the provided -`$entity` or `$entities`, as the parameter is now completely ignored. - -The same applies to `UnitOfWork#commit($entity)`, which will simply be -`UnitOfWork#commit()`. - -If you would still like to perform batching operations over small `UnitOfWork` -instances, it is suggested to follow these paths instead: - - * eagerly use `EntityManager#clear()` in conjunction with a specific second level - cache configuration (see http://docs.doctrine-project.org/projects/doctrine-orm/en/stable/reference/second-level-cache.html) - * use an explicit change tracking policy (see http://docs.doctrine-project.org/projects/doctrine-orm/en/stable/reference/change-tracking-policies.html) - -## Deprecated `YAML` mapping drivers. - -If your code relies on `YamlDriver` or `SimpleYamlDriver`, you **MUST** change to -annotation or XML drivers instead. - -## Deprecated: `Doctrine\ORM\EntityManagerInterface#copy()` - -Method `Doctrine\ORM\EntityManagerInterface#copy()` never got its implementation and is deprecated. -It will be removed in 3.0. - -# Upgrade to 2.6 - -## Added `Doctrine\ORM\EntityRepository::count()` method - -`Doctrine\ORM\EntityRepository::count()` has been added. This new method has different -signature than `Countable::count()` (required parameter) and therefore are not compatible. -If your repository implemented the `Countable` interface, you will have to use -`$repository->count([])` instead and not implement `Countable` interface anymore. - -## Minor BC BREAK: `Doctrine\ORM\Tools\Console\ConsoleRunner` is now final - -Since it's just an utilitarian class and should not be inherited. - -## Minor BC BREAK: removed `Doctrine\ORM\Query\QueryException::associationPathInverseSideNotSupported()` - -Method `Doctrine\ORM\Query\QueryException::associationPathInverseSideNotSupported()` -now has a required parameter `$pathExpr`. - -## Minor BC BREAK: removed `Doctrine\ORM\Query\Parser#isInternalFunction()` - -Method `Doctrine\ORM\Query\Parser#isInternalFunction()` was removed because -the distinction between internal function and user defined DQL was removed. -[#6500](https://github.com/doctrine/orm/pull/6500) - -## Minor BC BREAK: removed `Doctrine\ORM\ORMException#overwriteInternalDQLFunctionNotAllowed()` - -Method `Doctrine\ORM\Query\Parser#overwriteInternalDQLFunctionNotAllowed()` was -removed because of the choice to allow users to overwrite internal functions, ie -`AVG`, `SUM`, `COUNT`, `MIN` and `MAX`. [#6500](https://github.com/doctrine/orm/pull/6500) - -## PHP 7.1 is now required - -Doctrine 2.6 now requires PHP 7.1 or newer. - -As a consequence, automatic cache setup in Doctrine\ORM\Tools\Setup::create*Configuration() was changed: -- APCu extension (ext-apcu) will now be used instead of abandoned APC (ext-apc). -- Memcached extension (ext-memcached) will be used instead of obsolete Memcache (ext-memcache). -- XCache support was dropped as it doesn't work with PHP 7. - -# Upgrade to 2.5 - -## Minor BC BREAK: removed `Doctrine\ORM\Query\SqlWalker#walkCaseExpression()` - -Method `Doctrine\ORM\Query\SqlWalker#walkCaseExpression()` was unused and part -of the internal API of the ORM, so it was removed. [#5600](https://github.com/doctrine/orm/pull/5600). - -## Minor BC BREAK: removed $className parameter on `AbstractEntityInheritancePersister#getSelectJoinColumnSQL()` - -As `$className` parameter was not used in the method, it was safely removed. - -## Minor BC BREAK: query cache key time is now a float - -As of 2.5.5, the `QueryCacheEntry#time` property will contain a float value -instead of an integer in order to have more precision and also to be consistent -with the `TimestampCacheEntry#time`. - -## Minor BC BREAK: discriminator map must now include all non-transient classes - -It is now required that you declare the root of an inheritance in the -discriminator map. - -When declaring an inheritance map, it was previously possible to skip the root -of the inheritance in the discriminator map. This was actually a validation -mistake by Doctrine2 and led to problems when trying to persist instances of -that class. - -If you don't plan to persist instances some classes in your inheritance, then -either: - - - make those classes `abstract` - - map those classes as `MappedSuperclass` - -## Minor BC BREAK: ``EntityManagerInterface`` instead of ``EntityManager`` in type-hints - -As of 2.5, classes requiring the ``EntityManager`` in any method signature will now require -an ``EntityManagerInterface`` instead. -If you are extending any of the following classes, then you need to check following -signatures: - -- ``Doctrine\ORM\Tools\DebugUnitOfWorkListener#dumpIdentityMap(EntityManagerInterface $em)`` -- ``Doctrine\ORM\Mapping\ClassMetadataFactory#setEntityManager(EntityManagerInterface $em)`` - -## Minor BC BREAK: Custom Hydrators API change - -As of 2.5, `AbstractHydrator` does not enforce the usage of cache as part of -API, and now provides you a clean API for column information through the method -`hydrateColumnInfo($column)`. -Cache variable being passed around by reference is no longer needed since -Hydrators are per query instantiated since Doctrine 2.4. - -## Minor BC BREAK: Entity based ``EntityManager#clear()`` calls follow cascade detach - -Whenever ``EntityManager#clear()`` method gets called with a given entity class -name, until 2.4, it was only detaching the specific requested entity. -As of 2.5, ``EntityManager`` will follow configured cascades, providing a better -memory management since associations will be garbage collected, optimizing -resources consumption on long running jobs. - -## BC BREAK: NamingStrategy interface changes - -1. A new method ``embeddedFieldToColumnName($propertyName, $embeddedColumnName)`` - -This method generates the column name for fields of embedded objects. If you implement your custom NamingStrategy, you -now also need to implement this new method. - -2. A change to method ``joinColumnName()`` to include the $className - -## Updates on entities scheduled for deletion are no longer processed - -In Doctrine 2.4, if you modified properties of an entity scheduled for deletion, UnitOfWork would -produce an UPDATE statement to be executed right before the DELETE statement. The entity in question -was therefore present in ``UnitOfWork#entityUpdates``, which means that ``preUpdate`` and ``postUpdate`` -listeners were (quite pointlessly) called. In ``preFlush`` listeners, it used to be possible to undo -the scheduled deletion for updated entities (by calling ``persist()`` if the entity was found in both -``entityUpdates`` and ``entityDeletions``). This does not work any longer, because the entire changeset -calculation logic is optimized away. - -## Minor BC BREAK: Default lock mode changed from LockMode::NONE to null in method signatures - -A misconception concerning default lock mode values in method signatures lead to unexpected behaviour -in SQL statements on SQL Server. With a default lock mode of ``LockMode::NONE`` throughout the -method signatures in ORM, the table lock hint ``WITH (NOLOCK)`` was appended to all locking related -queries by default. This could result in unpredictable results because an explicit ``WITH (NOLOCK)`` -table hint tells SQL Server to run a specific query in transaction isolation level READ UNCOMMITTED -instead of the default READ COMMITTED transaction isolation level. -Therefore there now is a distinction between ``LockMode::NONE`` and ``null`` to be able to tell -Doctrine whether to add table lock hints to queries by intention or not. To achieve this, the following -method signatures have been changed to declare ``$lockMode = null`` instead of ``$lockMode = LockMode::NONE``: - -- ``Doctrine\ORM\Cache\Persister\AbstractEntityPersister#getSelectSQL()`` -- ``Doctrine\ORM\Cache\Persister\AbstractEntityPersister#load()`` -- ``Doctrine\ORM\Cache\Persister\AbstractEntityPersister#refresh()`` -- ``Doctrine\ORM\Decorator\EntityManagerDecorator#find()`` -- ``Doctrine\ORM\EntityManager#find()`` -- ``Doctrine\ORM\EntityRepository#find()`` -- ``Doctrine\ORM\Persisters\BasicEntityPersister#getSelectSQL()`` -- ``Doctrine\ORM\Persisters\BasicEntityPersister#load()`` -- ``Doctrine\ORM\Persisters\BasicEntityPersister#refresh()`` -- ``Doctrine\ORM\Persisters\EntityPersister#getSelectSQL()`` -- ``Doctrine\ORM\Persisters\EntityPersister#load()`` -- ``Doctrine\ORM\Persisters\EntityPersister#refresh()`` -- ``Doctrine\ORM\Persisters\JoinedSubclassPersister#getSelectSQL()`` - -You should update signatures for these methods if you have subclassed one of the above classes. -Please also check the calling code of these methods in your application and update if necessary. - -**Note:** -This in fact is really a minor BC BREAK and should not have any affect on database vendors -other than SQL Server because it is the only one that supports and therefore cares about -``LockMode::NONE``. It's really just a FIX for SQL Server environments using ORM. - -## Minor BC BREAK: `__clone` method not called anymore when entities are instantiated via metadata API - -As of PHP 5.6, instantiation of new entities is deferred to the -[`doctrine/instantiator`](https://github.com/doctrine/instantiator) library, which will avoid calling `__clone` -or any public API on instantiated objects. - -## BC BREAK: `Doctrine\ORM\Repository\DefaultRepositoryFactory` is now `final` - -Please implement the `Doctrine\ORM\Repository\RepositoryFactory` interface instead of extending -the `Doctrine\ORM\Repository\DefaultRepositoryFactory`. - -## BC BREAK: New object expression DQL queries now respects user provided aliasing and not return consumed fields - -When executing DQL queries with new object expressions, instead of returning DTOs numerically indexes, it will now respect user provided aliases. Consider the following query: - - SELECT new UserDTO(u.id,u.name) as user,new AddressDTO(a.street,a.postalCode) as address, a.id as addressId FROM User u INNER JOIN u.addresses a WITH a.isPrimary = true - -Previously, your result would be similar to this: - - array( - 0=>array( - 0=>{UserDTO object}, - 1=>{AddressDTO object}, - 2=>{u.id scalar}, - 3=>{u.name scalar}, - 4=>{a.street scalar}, - 5=>{a.postalCode scalar}, - 'addressId'=>{a.id scalar}, - ), - ... - ) - -From now on, the resultset will look like this: - - array( - 0=>array( - 'user'=>{UserDTO object}, - 'address'=>{AddressDTO object}, - 'addressId'=>{a.id scalar} - ), - ... - ) - -## Minor BC BREAK: added second parameter $indexBy in EntityRepository#createQueryBuilder method signature - -Added way to access the underlying QueryBuilder#from() method's 'indexBy' parameter when using EntityRepository#createQueryBuilder() - -# Upgrade to 2.4 - -## BC BREAK: Compatibility Bugfix in PersistentCollection#matching() - -In Doctrine 2.3 it was possible to use the new ``matching($criteria)`` -functionality by adding constraints for assocations based on ID: - - Criteria::expr()->eq('association', $assocation->getId()); - -This functionality does not work on InMemory collections however, because -in memory criteria compares object values based on reference. -As of 2.4 the above code will throw an exception. You need to change -offending code to pass the ``$assocation`` reference directly: - - Criteria::expr()->eq('association', $assocation); - -## Composer is now the default autoloader - -The test suite now runs with composer autoloading. Support for PEAR, and tarball autoloading is deprecated. -Support for GIT submodules is removed. - -## OnFlush and PostFlush event always called - -Before 2.4 the postFlush and onFlush events were only called when there were -actually entities that changed. Now these events are called no matter if there -are entities in the UoW or changes are found. - -## Parenthesis are now considered in arithmetic expression - -Before 2.4 parenthesis are not considered in arithmetic primary expression. -That's conceptually wrong, since it might result in wrong values. For example: - -The DQL: - - SELECT 100 / ( 2 * 2 ) FROM MyEntity - -Before 2.4 it generates the SQL: - - SELECT 100 / 2 * 2 FROM my_entity - -Now parenthesis are considered, the previous DQL will generate: - - SELECT 100 / (2 * 2) FROM my_entity - -# Upgrade to 2.3 - -## Auto Discriminator Map breaks userland implementations with Listener - -The new feature to detect discriminator maps automatically when none -are provided breaks userland implementations doing this with a -listener in ``loadClassMetadata`` event. - -## EntityManager#find() not calls EntityRepository#find() anymore - -Previous to 2.3, calling ``EntityManager#find()`` would be delegated to -``EntityRepository#find()``. This has lead to some unexpected behavior in the -core of Doctrine when people have overwritten the find method in their -repositories. That is why this behavior has been reversed in 2.3, and -``EntityRepository#find()`` calls ``EntityManager#find()`` instead. - -## EntityGenerator add*() method generation - -When generating an add*() method for a collection the EntityGenerator will now not -use the Type-Hint to get the singular for the collection name, but use the field-name -and strip a trailing "s" character if there is one. - -## Merge copies non persisted properties too - -When merging an entity in UoW not only mapped properties are copied, but also others. - -## Query, QueryBuilder and NativeQuery parameters *BC break* - -From now on, parameters in queries is an ArrayCollection instead of a simple array. -This affects heavily the usage of setParameters(), because it will not append anymore -parameters to query, but will actually override the already defined ones. -Whenever you are retrieving a parameter (ie. $query->getParameter(1)), you will -receive an instance of Query\Parameter, which contains the methods "getName", -"getValue" and "getType". Parameters are also only converted to when necessary, and -not when they are set. - -Also, related functions were affected: - -* execute($parameters, $hydrationMode) the argument $parameters can be either an key=>value array or an ArrayCollection instance -* iterate($parameters, $hydrationMode) the argument $parameters can be either an key=>value array or an ArrayCollection instance -* setParameters($parameters) the argument $parameters can be either an key=>value array or an ArrayCollection instance -* getParameters() now returns ArrayCollection instead of array -* getParameter($key) now returns Parameter instance instead of parameter value - -## Query TreeWalker method renamed - -Internal changes were made to DQL and SQL generation. If you have implemented your own TreeWalker, -you probably need to update it. The method walkJoinVariableDeclaration is now named walkJoin. - -## New methods in TreeWalker interface *BC break* - -Two methods getQueryComponents() and setQueryComponent() were added to the TreeWalker interface and all its implementations -including TreeWalkerAdapter, TreeWalkerChain and SqlWalker. If you have your own implementation not inheriting from one of the -above you must implement these new methods. - -## Metadata Drivers - -Metadata drivers have been rewritten to reuse code from `Doctrine\Persistence`. Anyone who is using the -`Doctrine\ORM\Mapping\Driver\Driver` interface should instead refer to -`Doctrine\Persistence\Mapping\Driver\MappingDriver`. Same applies to -`Doctrine\ORM\Mapping\Driver\AbstractFileDriver`: you should now refer to -`Doctrine\Persistence\Mapping\Driver\FileDriver`. - -Also, following mapping drivers have been deprecated, please use their replacements in Doctrine\Common as listed: - - * `Doctrine\ORM\Mapping\Driver\DriverChain` => `Doctrine\Persistence\Mapping\Driver\MappingDriverChain` - * `Doctrine\ORM\Mapping\Driver\PHPDriver` => `Doctrine\Persistence\Mapping\Driver\PHPDriver` - * `Doctrine\ORM\Mapping\Driver\StaticPHPDriver` => `Doctrine\Persistence\Mapping\Driver\StaticPHPDriver` - -# Upgrade to 2.2 - -## ResultCache implementation rewritten - -The result cache is completely rewritten and now works on the database result level, not inside the ORM AbstractQuery -anymore. This means that for result cached queries the hydration will now always be performed again, regardless of -the hydration mode. Affected areas are: - -1. Fixes the problem that entities coming from the result cache were not registered in the UnitOfWork - leading to problems during EntityManager#flush. Calls to EntityManager#merge are not necessary anymore. -2. Affects the array hydrator which now includes the overhead of hydration compared to caching the final result. - -The API is backwards compatible however most of the getter methods on the `AbstractQuery` object are now -deprecated in favor of calling AbstractQuery#getQueryCacheProfile(). This method returns a `Doctrine\DBAL\Cache\QueryCacheProfile` -instance with access to result cache driver, lifetime and cache key. - - -## EntityManager#getPartialReference() creates read-only entity - -Entities returned from EntityManager#getPartialReference() are now marked as read-only if they -haven't been in the identity map before. This means objects of this kind never lead to changes -in the UnitOfWork. - - -## Fields omitted in a partial DQL query or a native query are never updated - -Fields of an entity that are not returned from a partial DQL Query or native SQL query -will never be updated through an UPDATE statement. - - -## Removed support for onUpdate in @JoinColumn - -The onUpdate foreign key handling makes absolutely no sense in an ORM. Additionally Oracle doesn't even support it. Support for it is removed. - - -## Changes in Annotation Handling - -There have been some changes to the annotation handling in Common 2.2 again, that affect how people with old configurations -from 2.0 have to configure the annotation driver if they don't use `Configuration::newDefaultAnnotationDriver()`: - - // Register the ORM Annotations in the AnnotationRegistry - AnnotationRegistry::registerFile('path/to/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php'); - - $reader = new \Doctrine\Common\Annotations\SimpleAnnotationReader(); - $reader->addNamespace('Doctrine\ORM\Mapping'); - $reader = new \Doctrine\Common\Annotations\CachedReader($reader, new ArrayCache()); - - $driver = new AnnotationDriver($reader, (array)$paths); - - $config->setMetadataDriverImpl($driver); - - -## Scalar mappings can now be omitted from DQL result - -You are now allowed to mark scalar SELECT expressions as HIDDEN an they are not hydrated anymore. -Example: - -SELECT u, SUM(a.id) AS HIDDEN numArticles FROM User u LEFT JOIN u.Articles a ORDER BY numArticles DESC HAVING numArticles > 10 - -Your result will be a collection of Users, and not an array with key 0 as User object instance and "numArticles" as the number of articles per user - - -## Map entities as scalars in DQL result - -When hydrating to array or even a mixed result in object hydrator, previously you had the 0 index holding you entity instance. -You are now allowed to alias this, providing more flexibility for you code. -Example: - -SELECT u AS user FROM User u - -Will now return a collection of arrays with index "user" pointing to the User object instance. - - -## Performance optimizations - -Thousands of lines were completely reviewed and optimized for best performance. -Removed redundancy and improved code readability made now internal Doctrine code easier to understand. -Also, Doctrine 2.2 now is around 10-15% faster than 2.1. - -## EntityManager#find(null) - -Previously EntityManager#find(null) returned null. It now throws an exception. - -# Upgrade to 2.1 - -## Interface for EntityRepository - -The EntityRepository now has an interface Doctrine\Persistence\ObjectRepository. This means that your classes that override EntityRepository and extend find(), findOneBy() or findBy() must be adjusted to follow this interface. - -## AnnotationReader changes - -The annotation reader was heavily refactored between 2.0 and 2.1-RC1. In theory the operation of the new reader should be backwards compatible, but it has to be setup differently to work that way: - - // new call to the AnnotationRegistry - \Doctrine\Common\Annotations\AnnotationRegistry::registerFile('/doctrine-src/src/Mapping/Driver/DoctrineAnnotations.php'); - - $reader = new \Doctrine\Common\Annotations\AnnotationReader(); - $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\'); - // new code necessary starting here - $reader->setIgnoreNotImportedAnnotations(true); - $reader->setEnableParsePhpImports(false); - $reader = new \Doctrine\Common\Annotations\CachedReader( - new \Doctrine\Common\Annotations\IndexedReader($reader), new ArrayCache() - ); - -This is already done inside the ``$config->newDefaultAnnotationDriver``, so everything should automatically work if you are using this method. You can verify if everything still works by executing a console command such as schema-validate that loads all metadata into memory. - -# Update from 2.0-BETA3 to 2.0-BETA4 - -## XML Driver element demoted to attribute - -We changed how the XML Driver allows to define the change-tracking-policy. The working case is now: - - - -# Update from 2.0-BETA2 to 2.0-BETA3 - -## Serialization of Uninitialized Proxies - -As of Beta3 you can now serialize uninitialized proxies, an exception will only be thrown when -trying to access methods on the unserialized proxy as long as it has not been re-attached to the -EntityManager using `EntityManager#merge()`. See this example: - - $proxy = $em->getReference('User', 1); - - $serializedProxy = serialize($proxy); - $detachedProxy = unserialized($serializedProxy); - - echo $em->contains($detachedProxy); // FALSE - - try { - $detachedProxy->getId(); // uninitialized detached proxy - } catch(Exception $e) { - - } - $attachedProxy = $em->merge($detachedProxy); - echo $attackedProxy->getId(); // works! - -## Changed SQL implementation of Postgres and Oracle DateTime types - -The DBAL Type "datetime" included the Timezone Offset in both Postgres and Oracle. As of this version they are now -generated without Timezone (TIMESTAMP WITHOUT TIME ZONE instead of TIMESTAMP WITH TIME ZONE). -See [this comment to Ticket DBAL-22](http://www.doctrine-project.org/jira/browse/DBAL-22?focusedCommentId=13396&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_13396) -for more details as well as migration issues for PostgreSQL and Oracle. - -Both Postgres and Oracle will throw Exceptions during hydration of Objects with "DateTime" fields unless migration steps are taken! - -## Removed multi-dot/deep-path expressions in DQL - -The support for implicit joins in DQL through the multi-dot/Deep Path Expressions -was dropped. For example: - - SELECT u FROM User u WHERE u.group.name = ?1 - -See the "u.group.id" here is using multi dots (deep expression) to walk -through the graph of objects and properties. Internally the DQL parser -would rewrite these queries to: - - SELECT u FROM User u JOIN u.group g WHERE g.name = ?1 - -This explicit notation will be the only supported notation as of now. The internal -handling of multi-dots in the DQL Parser was very complex, error prone in edge cases -and required special treatment for several features we added. Additionally -it had edge cases that could not be solved without making the DQL Parser -even much more complex. For this reason we will drop the support for the -deep path expressions to increase maintainability and overall performance -of the DQL parsing process. This will benefit any DQL query being parsed, -even those not using deep path expressions. - -Note that the generated SQL of both notations is exactly the same! You -don't loose anything through this. - -## Default Allocation Size for Sequences - -The default allocation size for sequences has been changed from 10 to 1. This step was made -to not cause confusion with users and also because it is partly some kind of premature optimization. - -# Update from 2.0-BETA1 to 2.0-BETA2 - -There are no backwards incompatible changes in this release. - -# Upgrade from 2.0-ALPHA4 to 2.0-BETA1 - -## EntityRepository deprecates access to protected variables - -Instead of accessing protected variables for the EntityManager in -a custom EntityRepository it is now required to use the getter methods -for all the three instance variables: - -* `$this->_em` now accessible through `$this->getEntityManager()` -* `$this->_class` now accessible through `$this->getClassMetadata()` -* `$this->_entityName` now accessible through `$this->getEntityName()` - -Important: For Beta 2 the protected visibility of these three properties will be -changed to private! - -## Console migrated to Symfony Console - -The Doctrine CLI has been replaced by Symfony Console Configuration - -Instead of having to specify: - - [php] - $cliConfig = new CliConfiguration(); - $cliConfig->setAttribute('em', $entityManager); - -You now have to configure the script like: - - [php] - $helperSet = new \Symfony\Components\Console\Helper\HelperSet(array( - 'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()), - 'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em) - )); - -## Console: No need for Mapping Paths anymore - -In previous versions you had to specify the --from and --from-path options -to show where your mapping paths are from the console. However this information -is already known from the Mapping Driver configuration, so the requirement -for this options were dropped. - -Instead for each console command all the entities are loaded and to -restrict the operation to one or more sub-groups you can use the --filter flag. - -## AnnotationDriver is not a default mapping driver anymore - -In conjunction with the recent changes to Console we realized that the -annotations driver being a default metadata driver lead to lots of glue -code in the console components to detect where entities lie and how to load -them for batch updates like SchemaTool and other commands. However the -annotations driver being a default driver does not really help that much -anyways. - -Therefore we decided to break backwards compatibility in this issue and drop -the support for Annotations as Default Driver and require our users to -specify the driver explicitly (which allows us to ask for the path to all -entities). - -If you are using the annotations metadata driver as default driver, you -have to add the following lines to your bootstrap code: - - $driverImpl = $config->newDefaultAnnotationDriver(array(__DIR__."/Entities")); - $config->setMetadataDriverImpl($driverImpl); - -You have to specify the path to your entities as either string of a single -path or array of multiple paths -to your entities. This information will be used by all console commands to -access all entities. - -Xml and Yaml Drivers work as before! - - -## New inversedBy attribute - -It is now *mandatory* that the owning side of a bidirectional association specifies the -'inversedBy' attribute that points to the name of the field on the inverse side that completes -the association. Example: - - [php] - // BEFORE (ALPHA4 AND EARLIER) - class User - { - //... - /** @OneToOne(targetEntity="Address", mappedBy="user") */ - private $address; - //... - } - class Address - { - //... - /** @OneToOne(targetEntity="User") */ - private $user; - //... - } - - // SINCE BETA1 - // User class DOES NOT CHANGE - class Address - { - //... - /** @OneToOne(targetEntity="User", inversedBy="address") */ - private $user; - //... - } - -Thus, the inversedBy attribute is the counterpart to the mappedBy attribute. This change -was necessary to enable some simplifications and further performance improvements. We -apologize for the inconvenience. - -## Default Property for Field Mappings - -The "default" option for database column defaults has been removed. If desired, database column defaults can -be implemented by using the columnDefinition attribute of the @Column annotation (or the appropriate XML and YAML equivalents). -Prefer PHP default values, if possible. - -## Selecting Partial Objects - -Querying for partial objects now has a new syntax. The old syntax to query for partial objects -now has a different meaning. This is best illustrated by an example. If you previously -had a DQL query like this: - - [sql] - SELECT u.id, u.name FROM User u - -Since BETA1, simple state field path expressions in the select clause are used to select -object fields as plain scalar values (something that was not possible before). -To achieve the same result as previously (that is, a partial object with only id and name populated) -you need to use the following, explicit syntax: - - [sql] - SELECT PARTIAL u.{id,name} FROM User u - -## XML Mapping Driver - -The 'inheritance-type' attribute changed to take last bit of ClassMetadata constant names, i.e. -NONE, SINGLE_TABLE, INHERITANCE_TYPE_JOINED - -## YAML Mapping Driver - -The way to specify lifecycle callbacks in YAML Mapping driver was changed to allow for multiple callbacks -per event. The Old syntax ways: - - [yaml] - lifecycleCallbacks: - doStuffOnPrePersist: prePersist - doStuffOnPostPersist: postPersist - -The new syntax is: - - [yaml] - lifecycleCallbacks: - prePersist: [ doStuffOnPrePersist, doOtherStuffOnPrePersistToo ] - postPersist: [ doStuffOnPostPersist ] - -## PreUpdate Event Listeners - -Event Listeners listening to the 'preUpdate' event can only affect the primitive values of entity changesets -by using the API on the `PreUpdateEventArgs` instance passed to the preUpdate listener method. Any changes -to the state of the entitys properties won't affect the database UPDATE statement anymore. This gives drastic -performance benefits for the preUpdate event. - -## Collection API - -The Collection interface in the Common package has been updated with some missing methods -that were present only on the default implementation, ArrayCollection. Custom collection -implementations need to be updated to adhere to the updated interface. - -# Upgrade from 2.0-ALPHA3 to 2.0-ALPHA4 - -## CLI Controller changes - -CLI main object changed its name and namespace. Renamed from Doctrine\ORM\Tools\Cli to Doctrine\Common\Cli\CliController. -Doctrine\Common\Cli\CliController now only deals with namespaces. Ready to go, Core, Dbal and Orm are available and you can subscribe new tasks by retrieving the namespace and including new task. Example: - - [php] - $cli->getNamespace('Core')->addTask('my-example', '\MyProject\Tools\Cli\Tasks\MyExampleTask'); - - -## CLI Tasks documentation - -Tasks have implemented a new way to build documentation. Although it is still possible to define the help manually by extending the basicHelp and extendedHelp, they are now optional. -With new required method AbstractTask::buildDocumentation, its implementation defines the TaskDocumentation instance (accessible through AbstractTask::getDocumentation()), basicHelp and extendedHelp are now not necessary to be implemented. - -## Changes in Method Signatures - - * A bunch of Methods on both Doctrine\DBAL\Platforms\AbstractPlatform and Doctrine\DBAL\Schema\AbstractSchemaManager - have changed quite significantly by adopting the new Schema instance objects. - -## Renamed Methods - - * Doctrine\ORM\AbstractQuery::setExpireResultCache() -> expireResultCache() - * Doctrine\ORM\Query::setExpireQueryCache() -> expireQueryCache() - -## SchemaTool Changes - - * "doctrine schema-tool --drop" now always drops the complete database instead of - only those tables defined by the current database model. The previous method had - problems when foreign keys of orphaned tables pointed to tables that were scheduled - for deletion. - * Use "doctrine schema-tool --update" to get a save incremental update for your - database schema without deleting any unused tables, sequences or foreign keys. - * Use "doctrine schema-tool --complete-update" to do a full incremental update of - your schema. -# Upgrade from 2.0-ALPHA2 to 2.0-ALPHA3 - -This section details the changes made to Doctrine 2.0-ALPHA3 to make it easier for you -to upgrade your projects to use this version. - -## CLI Changes - -The $args variable used in the cli-config.php for configuring the Doctrine CLI has been renamed to $globalArguments. - -## Proxy class changes - -You are now required to make supply some minimalist configuration with regards to proxy objects. That involves 2 new configuration options. First, the directory where generated proxy classes should be placed needs to be specified. Secondly, you need to configure the namespace used for proxy classes. The following snippet shows an example: - - [php] - // step 1: configure directory for proxy classes - // $config instanceof Doctrine\ORM\Configuration - $config->setProxyDir('/path/to/myproject/lib/MyProject/Generated/Proxies'); - $config->setProxyNamespace('MyProject\Generated\Proxies'); - -Note that proxy classes behave exactly like any other classes when it comes to class loading. Therefore you need to make sure the proxy classes can be loaded by some class loader. If you place the generated proxy classes in a namespace and directory under your projects class files, like in the example above, it would be sufficient to register the MyProject namespace on a class loader. Since the proxy classes are contained in that namespace and adhere to the standards for class loading, no additional work is required. -Generating the proxy classes into a namespace within your class library is the recommended setup. - -Entities with initialized proxy objects can now be serialized and unserialized properly from within the same application. - -For more details refer to the Configuration section of the manual. - -## Removed allowPartialObjects configuration option - -The allowPartialObjects configuration option together with the `Configuration#getAllowPartialObjects` and `Configuration#setAllowPartialObjects` methods have been removed. -The new behavior is as if the option were set to FALSE all the time, basically disallowing partial objects globally. However, you can still use the `Query::HINT_FORCE_PARTIAL_LOAD` query hint to force a query to return partial objects for optimization purposes. - -## Renamed Methods - -* Doctrine\ORM\Configuration#getCacheDir() to getProxyDir() -* Doctrine\ORM\Configuration#setCacheDir($dir) to setProxyDir($dir) diff --git a/projects/priceservice/vendor/doctrine/orm/composer.json b/projects/priceservice/vendor/doctrine/orm/composer.json deleted file mode 100644 index 6616ae8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/composer.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "doctrine/orm", - "type": "library", - "description": "Object-Relational-Mapper for PHP", - "keywords": ["orm", "database"], - "homepage": "https://www.doctrine-project.org/projects/orm.html", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}, - {"name": "Marco Pivetta", "email": "ocramius@gmail.com"} - ], - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "dealerdirect/phpcodesniffer-composer-installer": true, - "phpstan/extension-installer": true - }, - "sort-packages": true - }, - "require": { - "php": "^8.1", - "composer-runtime-api": "^2", - "ext-ctype": "*", - "doctrine/collections": "^2.2", - "doctrine/dbal": "^3.8.2 || ^4", - "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2", - "doctrine/inflector": "^1.4 || ^2.0", - "doctrine/instantiator": "^1.3 || ^2", - "doctrine/lexer": "^3", - "doctrine/persistence": "^3.3.1 || ^4", - "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/var-exporter": "^6.3.9 || ^7.0" - }, - "require-dev": { - "doctrine/coding-standard": "^13.0", - "phpbench/phpbench": "^1.0", - "phpdocumentor/guides-cli": "^1.4", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "2.0.3", - "phpstan/phpstan-deprecation-rules": "^2", - "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": { - "ext-dom": "Provides support for XSD validation for XML mapping files", - "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0" - }, - "autoload": { - "psr-4": { "Doctrine\\ORM\\": "src" } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Tests\\": "tests/Tests", - "Doctrine\\StaticAnalysis\\": "tests/StaticAnalysis", - "Doctrine\\Performance\\": "tests/Performance" - } - }, - "archive": { - "exclude": ["!vendor", "tests", "*phpunit.xml", "build.xml", "build.properties", "composer.phar", "vendor/satooshi", "lib/vendor", "*.swp"] - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/doctrine-mapping.xsd b/projects/priceservice/vendor/doctrine/orm/doctrine-mapping.xsd deleted file mode 100644 index 117dc47..0000000 --- a/projects/priceservice/vendor/doctrine/orm/doctrine-mapping.xsd +++ /dev/null @@ -1,590 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/doctrine/orm/phpstan-dbal3.neon b/projects/priceservice/vendor/doctrine/orm/phpstan-dbal3.neon deleted file mode 100644 index d53e035..0000000 --- a/projects/priceservice/vendor/doctrine/orm/phpstan-dbal3.neon +++ /dev/null @@ -1,89 +0,0 @@ -includes: - - phpstan-baseline.neon - - phpstan-params.neon - -parameters: - reportUnmatchedIgnoredErrors: false # Some errors in the baseline only apply to DBAL 4 - ignoreErrors: - # Symfony cache supports passing a key prefix to the clear method. - - '/^Method Psr\\Cache\\CacheItemPoolInterface\:\:clear\(\) invoked with 1 parameter, 0 required\.$/' - - # We can be certain that those values are not matched. - - - message: '~^Match expression does not handle remaining values:~' - path: src/Persisters/Entity/BasicEntityPersister.php - - # DBAL 4 compatibility - - - message: '~^Method Doctrine\\ORM\\Query\\AST\\Functions\\TrimFunction::getTrimMode\(\) never returns .* so it can be removed from the return type\.$~' - path: src/Query/AST/Functions/TrimFunction.php - - - - message: '~.*getTrimExpression.*expects int.*~' - path: src/Query/AST/Functions/TrimFunction.php - - - - message: '~^Call to static method unquoted\(\) on an unknown class Doctrine\\DBAL\\Schema\\Name\\Identifier\.$~' - path: src/Tools/SchemaTool.php - - - - message: '~^Instantiated class Doctrine\\DBAL\\Schema\\Name\\UnqualifiedName not found\.$~' - path: src/Tools/SchemaTool.php - - - - message: '~^Call to an undefined method Doctrine\\DBAL\\Schema\\Table::addPrimaryKeyConstraint\(\)\.$~' - path: src/Tools/SchemaTool.php - - - '~^Class Doctrine\\DBAL\\Platforms\\SQLitePlatform not found\.$~' - - # To be removed in 4.0 - - - message: '#Negated boolean expression is always false\.#' - paths: - - src/Mapping/Driver/AttributeDriver.php - - - - message: '~^Call to deprecated method getEventManager\(\) of class Doctrine\\DBAL\\Connection\.$~' - path: src/EntityManager.php - - - message: '~deprecated class Doctrine\\DBAL\\Tools\\Console\\Command\\ReservedWordsCommand\:~' - path: src/Tools/Console/ConsoleRunner.php - - # Compatibility with Persistence 3 - - - message: '#Expression on left side of \?\? is not nullable.#' - path: src/Mapping/Driver/AttributeDriver.php - - - - message: '~^Method Doctrine\\ORM\\Persisters\\Entity\\BasicEntityPersister\:\:getArrayBindingType\(\) never returns .* so it can be removed from the return type\.$~' - path: src/Persisters/Entity/BasicEntityPersister.php - - - - message: '~getTypes.*should return~' - path: src/Persisters/Entity/BasicEntityPersister.php - - - - message: '~.*appendLockHint.*expects.*LockMode given~' - paths: - - src/Persisters/Entity/BasicEntityPersister.php - - src/Persisters/Entity/JoinedSubclassPersister.php - - - - message: '~.*executeStatement.*expects~' - path: src/Query/Exec/MultiTableUpdateExecutor.php - - - - message: '~method_exists.*getEventManager~' - path: src/EntityManager.php - - - - message: '~method_exists.*getIdentitySequence~' - path: src/Mapping/ClassMetadataFactory.php - - - - message: '~expand(Criteria)?Parameters.*should return array~' - path: src/Persisters/Entity/BasicEntityPersister.php - - - - message: '~inferType.*never returns~' - path: src/Query/ParameterTypeInferer.php diff --git a/projects/priceservice/vendor/doctrine/orm/src/AbstractQuery.php b/projects/priceservice/vendor/doctrine/orm/src/AbstractQuery.php deleted file mode 100644 index 5b2c360..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/AbstractQuery.php +++ /dev/null @@ -1,1116 +0,0 @@ - - */ - protected ArrayCollection $parameters; - - /** - * The user-specified ResultSetMapping to use. - */ - protected ResultSetMapping|null $resultSetMapping = null; - - /** - * The map of query hints. - * - * @phpstan-var array - */ - protected array $hints = []; - - /** - * The hydration mode. - * - * @phpstan-var string|AbstractQuery::HYDRATE_* - */ - protected string|int $hydrationMode = self::HYDRATE_OBJECT; - - protected QueryCacheProfile|null $queryCacheProfile = null; - - /** - * Whether or not expire the result cache. - */ - protected bool $expireResultCache = false; - - protected QueryCacheProfile|null $hydrationCacheProfile = null; - - /** - * Whether to use second level cache, if available. - */ - protected bool $cacheable = false; - - protected bool $hasCache = false; - - /** - * Second level cache region name. - */ - protected string|null $cacheRegion = null; - - /** - * Second level query cache mode. - * - * @phpstan-var Cache::MODE_*|null - */ - protected int|null $cacheMode = null; - - protected CacheLogger|null $cacheLogger = null; - - protected int $lifetime = 0; - - /** - * Initializes a new instance of a class derived from AbstractQuery. - */ - public function __construct( - /** - * The entity manager used by this query object. - */ - protected EntityManagerInterface $em, - ) { - $this->parameters = new ArrayCollection(); - $this->hints = $em->getConfiguration()->getDefaultQueryHints(); - $this->hasCache = $this->em->getConfiguration()->isSecondLevelCacheEnabled(); - - if ($this->hasCache) { - $this->cacheLogger = $em->getConfiguration() - ->getSecondLevelCacheConfiguration() - ->getCacheLogger(); - } - } - - /** - * Enable/disable second level query (result) caching for this query. - * - * @return $this - */ - public function setCacheable(bool $cacheable): static - { - $this->cacheable = $cacheable; - - return $this; - } - - /** @return bool TRUE if the query results are enabled for second level cache, FALSE otherwise. */ - public function isCacheable(): bool - { - return $this->cacheable; - } - - /** @return $this */ - public function setCacheRegion(string $cacheRegion): static - { - $this->cacheRegion = $cacheRegion; - - return $this; - } - - /** - * Obtain the name of the second level query cache region in which query results will be stored - * - * @return string|null The cache region name; NULL indicates the default region. - */ - public function getCacheRegion(): string|null - { - return $this->cacheRegion; - } - - /** @return bool TRUE if the query cache and second level cache are enabled, FALSE otherwise. */ - protected function isCacheEnabled(): bool - { - return $this->cacheable && $this->hasCache; - } - - public function getLifetime(): int - { - return $this->lifetime; - } - - /** - * Sets the life-time for this query into second level cache. - * - * @return $this - */ - public function setLifetime(int $lifetime): static - { - $this->lifetime = $lifetime; - - return $this; - } - - /** @phpstan-return Cache::MODE_*|null */ - public function getCacheMode(): int|null - { - return $this->cacheMode; - } - - /** - * @phpstan-param Cache::MODE_* $cacheMode - * - * @return $this - */ - public function setCacheMode(int $cacheMode): static - { - $this->cacheMode = $cacheMode; - - return $this; - } - - /** - * Gets the SQL query that corresponds to this query object. - * The returned SQL syntax depends on the connection driver that is used - * by this query object at the time of this method call. - * - * @return list|string SQL query - */ - abstract public function getSQL(): string|array; - - /** - * Retrieves the associated EntityManager of this Query instance. - */ - public function getEntityManager(): EntityManagerInterface - { - return $this->em; - } - - /** - * Frees the resources used by the query object. - * - * Resets Parameters, Parameter Types and Query Hints. - */ - public function free(): void - { - $this->parameters = new ArrayCollection(); - - $this->hints = $this->em->getConfiguration()->getDefaultQueryHints(); - } - - /** - * Get all defined parameters. - * - * @phpstan-return ArrayCollection - */ - public function getParameters(): ArrayCollection - { - return $this->parameters; - } - - /** - * Gets a query parameter. - * - * @param int|string $key The key (index or name) of the bound parameter. - * - * @return Parameter|null The value of the bound parameter, or NULL if not available. - */ - public function getParameter(int|string $key): Parameter|null - { - $key = Parameter::normalizeName($key); - - $filteredParameters = $this->parameters->filter( - static fn (Parameter $parameter): bool => $parameter->getName() === $key, - ); - - return ! $filteredParameters->isEmpty() ? $filteredParameters->first() : null; - } - - /** - * Sets a collection of query parameters. - * - * @param ArrayCollection|mixed[] $parameters - * @phpstan-param ArrayCollection|mixed[] $parameters - * - * @return $this - */ - public function setParameters(ArrayCollection|array $parameters): static - { - if (is_array($parameters)) { - /** @phpstan-var ArrayCollection $parameterCollection */ - $parameterCollection = new ArrayCollection(); - - foreach ($parameters as $key => $value) { - $parameterCollection->add(new Parameter($key, $value)); - } - - $parameters = $parameterCollection; - } - - $this->parameters = $parameters; - - return $this; - } - - /** - * Sets a query parameter. - * - * @param string|int $key The parameter position or name. - * @param mixed $value The parameter value. - * @param ParameterType|ArrayParameterType|string|int|null $type The parameter type. If specified, the given value - * will be run through the type conversion of this - * type. This is usually not needed for strings and - * numeric types. - * - * @return $this - */ - public function setParameter(string|int $key, mixed $value, ParameterType|ArrayParameterType|string|int|null $type = null): static - { - $existingParameter = $this->getParameter($key); - - if ($existingParameter !== null) { - $existingParameter->setValue($value, $type); - - return $this; - } - - $this->parameters->add(new Parameter($key, $value, $type)); - - return $this; - } - - /** - * Processes an individual parameter value. - * - * @throws ORMInvalidArgumentException - */ - public function processParameterValue(mixed $value): mixed - { - if (is_scalar($value)) { - return $value; - } - - if ($value instanceof Collection) { - $value = iterator_to_array($value); - } - - if (is_array($value)) { - $value = $this->processArrayParameterValue($value); - - return $value; - } - - if ($value instanceof ClassMetadata) { - return $value->name; - } - - if ($value instanceof BackedEnum) { - return $value->value; - } - - if (! is_object($value)) { - return $value; - } - - try { - $class = DefaultProxyClassNameResolver::getClass($value); - $value = $this->em->getUnitOfWork()->getSingleIdentifierValue($value); - - if ($value === null) { - throw ORMInvalidArgumentException::invalidIdentifierBindingEntity($class); - } - } catch (MappingException | ORMMappingException) { - /* Silence any mapping exceptions. These can occur if the object in - question is not a mapped entity, in which case we just don't do - any preparation on the value. - Depending on MappingDriver, either MappingException or - ORMMappingException is thrown. */ - - $value = $this->potentiallyProcessIterable($value); - } - - return $value; - } - - /** - * If no mapping is detected, trying to resolve the value as a Traversable - */ - private function potentiallyProcessIterable(mixed $value): mixed - { - if ($value instanceof Traversable) { - $value = iterator_to_array($value); - $value = $this->processArrayParameterValue($value); - } - - return $value; - } - - /** - * Process a parameter value which was previously identified as an array - * - * @param mixed[] $value - * - * @return mixed[] - */ - private function processArrayParameterValue(array $value): array - { - foreach ($value as $key => $paramValue) { - $paramValue = $this->processParameterValue($paramValue); - $value[$key] = is_array($paramValue) ? reset($paramValue) : $paramValue; - } - - return $value; - } - - /** - * Sets the ResultSetMapping that should be used for hydration. - * - * @return $this - */ - public function setResultSetMapping(ResultSetMapping $rsm): static - { - $this->translateNamespaces($rsm); - $this->resultSetMapping = $rsm; - - return $this; - } - - /** - * Gets the ResultSetMapping used for hydration. - */ - protected function getResultSetMapping(): ResultSetMapping|null - { - return $this->resultSetMapping; - } - - /** - * Allows to translate entity namespaces to full qualified names. - */ - private function translateNamespaces(ResultSetMapping $rsm): void - { - $translate = fn ($alias): string => $this->em->getClassMetadata($alias)->getName(); - - $rsm->aliasMap = array_map($translate, $rsm->aliasMap); - $rsm->declaringClasses = array_map($translate, $rsm->declaringClasses); - } - - /** - * Set a cache profile for hydration caching. - * - * If no result cache driver is set in the QueryCacheProfile, the default - * result cache driver is used from the configuration. - * - * Important: Hydration caching does NOT register entities in the - * UnitOfWork when retrieved from the cache. Never use result cached - * entities for requests that also flush the EntityManager. If you want - * some form of caching with UnitOfWork registration you should use - * {@see AbstractQuery::setResultCacheProfile()}. - * - * @return $this - * - * @example - * $lifetime = 100; - * $resultKey = "abc"; - * $query->setHydrationCacheProfile(new QueryCacheProfile()); - * $query->setHydrationCacheProfile(new QueryCacheProfile($lifetime, $resultKey)); - */ - public function setHydrationCacheProfile(QueryCacheProfile|null $profile): static - { - if ($profile === null) { - $this->hydrationCacheProfile = null; - - return $this; - } - - if (! $profile->getResultCache()) { - $defaultHydrationCacheImpl = $this->em->getConfiguration()->getHydrationCache(); - if ($defaultHydrationCacheImpl) { - $profile = $profile->setResultCache($defaultHydrationCacheImpl); - } - } - - $this->hydrationCacheProfile = $profile; - - return $this; - } - - public function getHydrationCacheProfile(): QueryCacheProfile|null - { - return $this->hydrationCacheProfile; - } - - /** - * Set a cache profile for the result cache. - * - * If no result cache driver is set in the QueryCacheProfile, the default - * result cache driver is used from the configuration. - * - * @return $this - */ - public function setResultCacheProfile(QueryCacheProfile|null $profile): static - { - if ($profile === null) { - $this->queryCacheProfile = null; - - return $this; - } - - if (! $profile->getResultCache()) { - $defaultResultCache = $this->em->getConfiguration()->getResultCache(); - if ($defaultResultCache) { - $profile = $profile->setResultCache($defaultResultCache); - } - } - - $this->queryCacheProfile = $profile; - - return $this; - } - - /** - * Defines a cache driver to be used for caching result sets and implicitly enables caching. - */ - public function setResultCache(CacheItemPoolInterface|null $resultCache): static - { - if ($resultCache === null) { - if ($this->queryCacheProfile) { - $this->queryCacheProfile = new QueryCacheProfile($this->queryCacheProfile->getLifetime(), $this->queryCacheProfile->getCacheKey()); - } - - return $this; - } - - $this->queryCacheProfile = $this->queryCacheProfile - ? $this->queryCacheProfile->setResultCache($resultCache) - : new QueryCacheProfile(0, null, $resultCache); - - return $this; - } - - /** - * Enables caching of the results of this query, for given or default amount of seconds - * and optionally specifies which ID to use for the cache entry. - * - * @param int|null $lifetime How long the cache entry is valid, in seconds. - * @param string|null $resultCacheId ID to use for the cache entry. - * - * @return $this - */ - public function enableResultCache(int|null $lifetime = null, string|null $resultCacheId = null): static - { - $this->setResultCacheLifetime($lifetime); - $this->setResultCacheId($resultCacheId); - - return $this; - } - - /** - * Disables caching of the results of this query. - * - * @return $this - */ - public function disableResultCache(): static - { - $this->queryCacheProfile = null; - - return $this; - } - - /** - * Defines how long the result cache will be active before expire. - * - * @param int|null $lifetime How long the cache entry is valid, in seconds. - * - * @return $this - */ - public function setResultCacheLifetime(int|null $lifetime): static - { - $lifetime = (int) $lifetime; - - if ($this->queryCacheProfile) { - $this->queryCacheProfile = $this->queryCacheProfile->setLifetime($lifetime); - - return $this; - } - - $this->queryCacheProfile = new QueryCacheProfile($lifetime); - - $cache = $this->em->getConfiguration()->getResultCache(); - if (! $cache) { - return $this; - } - - $this->queryCacheProfile = $this->queryCacheProfile->setResultCache($cache); - - return $this; - } - - /** - * Defines if the result cache is active or not. - * - * @param bool $expire Whether or not to force resultset cache expiration. - * - * @return $this - */ - public function expireResultCache(bool $expire = true): static - { - $this->expireResultCache = $expire; - - return $this; - } - - /** - * Retrieves if the resultset cache is active or not. - */ - public function getExpireResultCache(): bool - { - return $this->expireResultCache; - } - - public function getQueryCacheProfile(): QueryCacheProfile|null - { - return $this->queryCacheProfile; - } - - /** - * Change the default fetch mode of an association for this query. - * - * @param class-string $class - * @phpstan-param Mapping\ClassMetadata::FETCH_EAGER|Mapping\ClassMetadata::FETCH_LAZY $fetchMode - */ - public function setFetchMode(string $class, string $assocName, int $fetchMode): static - { - $this->hints['fetchMode'][$class][$assocName] = $fetchMode; - - return $this; - } - - /** - * Defines the processing mode to be used during hydration / result set transformation. - * - * @param string|int $hydrationMode Doctrine processing mode to be used during hydration process. - * One of the Query::HYDRATE_* constants. - * @phpstan-param string|AbstractQuery::HYDRATE_* $hydrationMode - * - * @return $this - */ - public function setHydrationMode(string|int $hydrationMode): static - { - $this->hydrationMode = $hydrationMode; - - return $this; - } - - /** - * Gets the hydration mode currently used by the query. - * - * @phpstan-return string|AbstractQuery::HYDRATE_* - */ - public function getHydrationMode(): string|int - { - return $this->hydrationMode; - } - - /** - * Gets the list of results for the query. - * - * Alias for execute(null, $hydrationMode = HYDRATE_OBJECT). - * - * @phpstan-param string|AbstractQuery::HYDRATE_* $hydrationMode - */ - public function getResult(string|int $hydrationMode = self::HYDRATE_OBJECT): mixed - { - return $this->execute(null, $hydrationMode); - } - - /** - * Gets the array of results for the query. - * - * Alias for execute(null, HYDRATE_ARRAY). - * - * @return mixed[] - */ - public function getArrayResult(): array - { - return $this->execute(null, self::HYDRATE_ARRAY); - } - - /** - * Gets one-dimensional array of results for the query. - * - * Alias for execute(null, HYDRATE_SCALAR_COLUMN). - * - * @return mixed[] - */ - public function getSingleColumnResult(): array - { - return $this->execute(null, self::HYDRATE_SCALAR_COLUMN); - } - - /** - * Gets the scalar results for the query. - * - * Alias for execute(null, HYDRATE_SCALAR). - * - * @return mixed[] - */ - public function getScalarResult(): array - { - return $this->execute(null, self::HYDRATE_SCALAR); - } - - /** - * Get exactly one result or null. - * - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - * - * @throws NonUniqueResultException - */ - public function getOneOrNullResult(string|int|null $hydrationMode = null): mixed - { - try { - $result = $this->execute(null, $hydrationMode); - } catch (NoResultException) { - return null; - } - - if ($this->hydrationMode !== self::HYDRATE_SINGLE_SCALAR && ! $result) { - return null; - } - - if (! is_array($result)) { - return $result; - } - - if (count($result) > 1) { - throw new NonUniqueResultException(); - } - - return array_shift($result); - } - - /** - * Gets the single result of the query. - * - * Enforces the presence as well as the uniqueness of the result. - * - * If the result is not unique, a NonUniqueResultException is thrown. - * If there is no result, a NoResultException is thrown. - * - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - * - * @throws NonUniqueResultException If the query result is not unique. - * @throws NoResultException If the query returned no result. - */ - public function getSingleResult(string|int|null $hydrationMode = null): mixed - { - $result = $this->execute(null, $hydrationMode); - - if ($this->hydrationMode !== self::HYDRATE_SINGLE_SCALAR && ! $result) { - throw new NoResultException(); - } - - if (! is_array($result)) { - return $result; - } - - if (count($result) > 1) { - throw new NonUniqueResultException(); - } - - return array_shift($result); - } - - /** - * Gets the single scalar result of the query. - * - * Alias for getSingleResult(HYDRATE_SINGLE_SCALAR). - * - * @return bool|float|int|string|null The scalar result. - * - * @throws NoResultException If the query returned no result. - * @throws NonUniqueResultException If the query result is not unique. - */ - public function getSingleScalarResult(): mixed - { - return $this->getSingleResult(self::HYDRATE_SINGLE_SCALAR); - } - - /** - * Sets a query hint. If the hint name is not recognized, it is silently ignored. - * - * @return $this - */ - public function setHint(string $name, mixed $value): static - { - $this->hints[$name] = $value; - - return $this; - } - - /** - * Gets the value of a query hint. If the hint name is not recognized, FALSE is returned. - * - * @return mixed The value of the hint or FALSE, if the hint name is not recognized. - */ - public function getHint(string $name): mixed - { - return $this->hints[$name] ?? false; - } - - public function hasHint(string $name): bool - { - return isset($this->hints[$name]); - } - - /** - * Return the key value map of query hints that are currently set. - * - * @return array - */ - public function getHints(): array - { - return $this->hints; - } - - /** - * Executes the query and returns an iterable that can be used to incrementally - * iterate over the result. - * - * @phpstan-param ArrayCollection|mixed[] $parameters - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - * - * @return iterable - */ - public function toIterable( - ArrayCollection|array $parameters = [], - string|int|null $hydrationMode = null, - ): iterable { - if ($hydrationMode !== null) { - $this->setHydrationMode($hydrationMode); - } - - if (count($parameters) !== 0) { - $this->setParameters($parameters); - } - - $rsm = $this->getResultSetMapping(); - if ($rsm === null) { - throw new LogicException('Uninitialized result set mapping.'); - } - - if ($rsm->isMixed && count($rsm->scalarMappings) > 0) { - throw QueryException::iterateWithMixedResultNotAllowed(); - } - - $stmt = $this->_doExecute(); - - return $this->em->newHydrator($this->hydrationMode)->toIterable($stmt, $rsm, $this->hints); - } - - /** - * Executes the query. - * - * @phpstan-param ArrayCollection|mixed[]|null $parameters - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - */ - public function execute( - ArrayCollection|array|null $parameters = null, - string|int|null $hydrationMode = null, - ): mixed { - if ($this->cacheable && $this->isCacheEnabled()) { - return $this->executeUsingQueryCache($parameters, $hydrationMode); - } - - return $this->executeIgnoreQueryCache($parameters, $hydrationMode); - } - - /** - * Execute query ignoring second level cache. - * - * @phpstan-param ArrayCollection|mixed[]|null $parameters - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - */ - private function executeIgnoreQueryCache( - ArrayCollection|array|null $parameters = null, - string|int|null $hydrationMode = null, - ): mixed { - if ($hydrationMode !== null) { - $this->setHydrationMode($hydrationMode); - } - - if (! empty($parameters)) { - $this->setParameters($parameters); - } - - $setCacheEntry = static function ($data): void { - }; - - if ($this->hydrationCacheProfile !== null) { - [$cacheKey, $realCacheKey] = $this->getHydrationCacheId(); - - $cache = $this->getHydrationCache(); - $cacheItem = $cache->getItem($cacheKey); - $result = $cacheItem->isHit() ? $cacheItem->get() : []; - - if (isset($result[$realCacheKey])) { - return $result[$realCacheKey]; - } - - if (! $result) { - $result = []; - } - - $setCacheEntry = static function ($data) use ($cache, $result, $cacheItem, $realCacheKey): void { - $cache->save($cacheItem->set($result + [$realCacheKey => $data])); - }; - } - - $stmt = $this->_doExecute(); - - if (is_numeric($stmt)) { - $setCacheEntry($stmt); - - return $stmt; - } - - $rsm = $this->getResultSetMapping(); - if ($rsm === null) { - throw new LogicException('Uninitialized result set mapping.'); - } - - $data = $this->em->newHydrator($this->hydrationMode)->hydrateAll($stmt, $rsm, $this->hints); - - $setCacheEntry($data); - - return $data; - } - - private function getHydrationCache(): CacheItemPoolInterface - { - assert($this->hydrationCacheProfile !== null); - - $cache = $this->hydrationCacheProfile->getResultCache(); - assert($cache !== null); - - return $cache; - } - - /** - * Load from second level cache or executes the query and put into cache. - * - * @phpstan-param ArrayCollection|mixed[]|null $parameters - * @phpstan-param string|AbstractQuery::HYDRATE_*|null $hydrationMode - */ - private function executeUsingQueryCache( - ArrayCollection|array|null $parameters = null, - string|int|null $hydrationMode = null, - ): mixed { - $rsm = $this->getResultSetMapping(); - if ($rsm === null) { - throw new LogicException('Uninitialized result set mapping.'); - } - - $queryCache = $this->em->getCache()->getQueryCache($this->cacheRegion); - $queryKey = new QueryCacheKey( - $this->getHash(), - $this->lifetime, - $this->cacheMode ?: Cache::MODE_NORMAL, - $this->getTimestampKey(), - ); - - $result = $queryCache->get($queryKey, $rsm, $this->hints); - - if ($result !== null) { - if ($this->cacheLogger) { - $this->cacheLogger->queryCacheHit($queryCache->getRegion()->getName(), $queryKey); - } - - return $result; - } - - $result = $this->executeIgnoreQueryCache($parameters, $hydrationMode); - $cached = $queryCache->put($queryKey, $rsm, $result, $this->hints); - - if ($this->cacheLogger) { - $this->cacheLogger->queryCacheMiss($queryCache->getRegion()->getName(), $queryKey); - - if ($cached) { - $this->cacheLogger->queryCachePut($queryCache->getRegion()->getName(), $queryKey); - } - } - - return $result; - } - - private function getTimestampKey(): TimestampCacheKey|null - { - assert($this->resultSetMapping !== null); - $entityName = reset($this->resultSetMapping->aliasMap); - - if (empty($entityName)) { - return null; - } - - $metadata = $this->em->getClassMetadata($entityName); - - return new TimestampCacheKey($metadata->rootEntityName); - } - - /** - * Get the result cache id to use to store the result set cache entry. - * Will return the configured id if it exists otherwise a hash will be - * automatically generated for you. - * - * @return string[] ($key, $hash) - * @phpstan-return array{string, string} ($key, $hash) - */ - protected function getHydrationCacheId(): array - { - $parameters = []; - $types = []; - - foreach ($this->getParameters() as $parameter) { - $parameters[$parameter->getName()] = $this->processParameterValue($parameter->getValue()); - $types[$parameter->getName()] = $parameter->getType(); - } - - $sql = $this->getSQL(); - assert(is_string($sql)); - $queryCacheProfile = $this->getHydrationCacheProfile(); - $hints = $this->getHints(); - $hints['hydrationMode'] = $this->getHydrationMode(); - - ksort($hints); - assert($queryCacheProfile !== null); - - return $queryCacheProfile->generateCacheKeys($sql, $parameters, $types, $hints); - } - - /** - * Set the result cache id to use to store the result set cache entry. - * If this is not explicitly set by the developer then a hash is automatically - * generated for you. - */ - public function setResultCacheId(string|null $id): static - { - if (! $this->queryCacheProfile) { - return $this->setResultCacheProfile(new QueryCacheProfile(0, $id)); - } - - $this->queryCacheProfile = $this->queryCacheProfile->setCacheKey($id); - - return $this; - } - - /** - * Executes the query and returns a the resulting Statement object. - * - * @return Result|int The executed database statement that holds - * the results, or an integer indicating how - * many rows were affected. - */ - abstract protected function _doExecute(): Result|int; - - /** - * Cleanup Query resource when clone is called. - */ - public function __clone() - { - $this->parameters = new ArrayCollection(); - - $this->hints = []; - $this->hints = $this->em->getConfiguration()->getDefaultQueryHints(); - } - - /** - * Generates a string of currently query to use for the cache second level cache. - */ - protected function getHash(): string - { - $query = $this->getSQL(); - assert(is_string($query)); - $hints = $this->getHints(); - $params = array_map(function (Parameter $parameter) { - $value = $parameter->getValue(); - - // Small optimization - // Does not invoke processParameterValue for scalar value - if (is_scalar($value)) { - return $value; - } - - return $this->processParameterValue($value); - }, $this->parameters->getValues()); - - ksort($hints); - - return sha1($query . '-' . serialize($params) . '-' . serialize($hints)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache.php b/projects/priceservice/vendor/doctrine/orm/src/Cache.php deleted file mode 100644 index 8020b27..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache.php +++ /dev/null @@ -1,106 +0,0 @@ - $identifier The entity identifier. - * @param class-string $class The entity class name - */ - public function __construct( - public readonly string $class, - public readonly array $identifier, - ) { - } - - /** - * Creates a new AssociationCacheEntry - * - * This method allow Doctrine\Common\Cache\PhpFileCache compatibility - * - * @param array $values array containing property values - */ - public static function __set_state(array $values): self - { - return new self($values['class'], $values['identifier']); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheConfiguration.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheConfiguration.php deleted file mode 100644 index 0f8dea7..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheConfiguration.php +++ /dev/null @@ -1,60 +0,0 @@ -cacheFactory; - } - - public function setCacheFactory(CacheFactory $factory): void - { - $this->cacheFactory = $factory; - } - - public function getCacheLogger(): CacheLogger|null - { - return $this->cacheLogger; - } - - public function setCacheLogger(CacheLogger $logger): void - { - $this->cacheLogger = $logger; - } - - public function getRegionsConfiguration(): RegionsConfiguration - { - return $this->regionsConfig ??= new RegionsConfiguration(); - } - - public function setRegionsConfiguration(RegionsConfiguration $regionsConfig): void - { - $this->regionsConfig = $regionsConfig; - } - - public function getQueryValidator(): QueryCacheValidator - { - return $this->queryValidator ??= new TimestampQueryCacheValidator( - $this->cacheFactory->getTimestampRegion(), - ); - } - - public function setQueryValidator(QueryCacheValidator $validator): void - { - $this->queryValidator = $validator; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheEntry.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheEntry.php deleted file mode 100644 index 6e12de1..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheEntry.php +++ /dev/null @@ -1,16 +0,0 @@ -IMPORTANT NOTE: - * - * Fields of classes that implement CacheEntry are public for performance reason. - */ -interface CacheEntry -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheException.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheException.php deleted file mode 100644 index b422095..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheException.php +++ /dev/null @@ -1,26 +0,0 @@ - $cache The cache configuration. - */ - public function getRegion(array $cache): Region; - - /** - * Build timestamp cache region - */ - public function getTimestampRegion(): TimestampRegion; - - /** - * Build \Doctrine\ORM\Cache - */ - public function createCache(EntityManagerInterface $entityManager): Cache; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheKey.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheKey.php deleted file mode 100644 index 970702c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CacheKey.php +++ /dev/null @@ -1,16 +0,0 @@ - $values array containing property values - */ - public static function __set_state(array $values): CollectionCacheEntry - { - return new self($values['identifiers']); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionCacheKey.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionCacheKey.php deleted file mode 100644 index c7f96df..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionCacheKey.php +++ /dev/null @@ -1,42 +0,0 @@ - - */ - public readonly array $ownerIdentifier; - - /** - * @param class-string $entityClass The owner entity class. - * @param array $ownerIdentifier The identifier of the owning entity. - */ - public function __construct( - public readonly string $entityClass, - public readonly string $association, - array $ownerIdentifier, - string $filterHash = '', - ) { - ksort($ownerIdentifier); - - $this->ownerIdentifier = $ownerIdentifier; - - $filterHash = $filterHash === '' ? '' : '_' . $filterHash; - - parent::__construct(str_replace('\\', '.', strtolower($entityClass)) . '_' . implode(' ', $ownerIdentifier) . '__' . $association . $filterHash); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionHydrator.php deleted file mode 100644 index 16a6572..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/CollectionHydrator.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ - private array $queryCaches = []; - - private QueryCache|null $defaultQueryCache = null; - - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->uow = $em->getUnitOfWork(); - $this->cacheFactory = $em->getConfiguration() - ->getSecondLevelCacheConfiguration() - ->getCacheFactory(); - } - - public function getEntityCacheRegion(string $className): Region|null - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getEntityPersister($metadata->rootEntityName); - - if (! ($persister instanceof CachedPersister)) { - return null; - } - - return $persister->getCacheRegion(); - } - - public function getCollectionCacheRegion(string $className, string $association): Region|null - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association)); - - if (! ($persister instanceof CachedPersister)) { - return null; - } - - return $persister->getCacheRegion(); - } - - public function containsEntity(string $className, mixed $identifier): bool - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getEntityPersister($metadata->rootEntityName); - - if (! ($persister instanceof CachedPersister)) { - return false; - } - - return $persister->getCacheRegion()->contains($this->buildEntityCacheKey($metadata, $identifier)); - } - - public function evictEntity(string $className, mixed $identifier): void - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getEntityPersister($metadata->rootEntityName); - - if (! ($persister instanceof CachedPersister)) { - return; - } - - $persister->getCacheRegion()->evict($this->buildEntityCacheKey($metadata, $identifier)); - } - - public function evictEntityRegion(string $className): void - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getEntityPersister($metadata->rootEntityName); - - if (! ($persister instanceof CachedPersister)) { - return; - } - - $persister->getCacheRegion()->evictAll(); - } - - public function evictEntityRegions(): void - { - $metadatas = $this->em->getMetadataFactory()->getAllMetadata(); - - foreach ($metadatas as $metadata) { - $persister = $this->uow->getEntityPersister($metadata->rootEntityName); - - if (! ($persister instanceof CachedPersister)) { - continue; - } - - $persister->getCacheRegion()->evictAll(); - } - } - - public function containsCollection(string $className, string $association, mixed $ownerIdentifier): bool - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association)); - - if (! ($persister instanceof CachedPersister)) { - return false; - } - - return $persister->getCacheRegion()->contains($this->buildCollectionCacheKey($metadata, $association, $ownerIdentifier)); - } - - public function evictCollection(string $className, string $association, mixed $ownerIdentifier): void - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association)); - - if (! ($persister instanceof CachedPersister)) { - return; - } - - $persister->getCacheRegion()->evict($this->buildCollectionCacheKey($metadata, $association, $ownerIdentifier)); - } - - public function evictCollectionRegion(string $className, string $association): void - { - $metadata = $this->em->getClassMetadata($className); - $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association)); - - if (! ($persister instanceof CachedPersister)) { - return; - } - - $persister->getCacheRegion()->evictAll(); - } - - public function evictCollectionRegions(): void - { - $metadatas = $this->em->getMetadataFactory()->getAllMetadata(); - - foreach ($metadatas as $metadata) { - foreach ($metadata->associationMappings as $association) { - if (! $association->isToMany()) { - continue; - } - - $persister = $this->uow->getCollectionPersister($association); - - if (! ($persister instanceof CachedPersister)) { - continue; - } - - $persister->getCacheRegion()->evictAll(); - } - } - } - - public function containsQuery(string $regionName): bool - { - return isset($this->queryCaches[$regionName]); - } - - public function evictQueryRegion(string|null $regionName = null): void - { - if ($regionName === null && $this->defaultQueryCache !== null) { - $this->defaultQueryCache->clear(); - - return; - } - - if (isset($this->queryCaches[$regionName])) { - $this->queryCaches[$regionName]->clear(); - } - } - - public function evictQueryRegions(): void - { - $this->getQueryCache()->clear(); - - foreach ($this->queryCaches as $queryCache) { - $queryCache->clear(); - } - } - - public function getQueryCache(string|null $regionName = null): QueryCache - { - if ($regionName === null) { - return $this->defaultQueryCache ??= $this->cacheFactory->buildQueryCache($this->em); - } - - return $this->queryCaches[$regionName] ??= $this->cacheFactory->buildQueryCache($this->em, $regionName); - } - - private function buildEntityCacheKey(ClassMetadata $metadata, mixed $identifier): EntityCacheKey - { - if (! is_array($identifier)) { - $identifier = $this->toIdentifierArray($metadata, $identifier); - } - - return new EntityCacheKey($metadata->rootEntityName, $identifier); - } - - private function buildCollectionCacheKey( - ClassMetadata $metadata, - string $association, - mixed $ownerIdentifier, - ): CollectionCacheKey { - if (! is_array($ownerIdentifier)) { - $ownerIdentifier = $this->toIdentifierArray($metadata, $ownerIdentifier); - } - - return new CollectionCacheKey($metadata->rootEntityName, $association, $ownerIdentifier); - } - - /** @return array */ - private function toIdentifierArray(ClassMetadata $metadata, mixed $identifier): array - { - if (is_object($identifier)) { - $class = DefaultProxyClassNameResolver::getClass($identifier); - if ($this->em->getMetadataFactory()->hasMetadataFor($class)) { - $identifier = $this->uow->getSingleIdentifierValue($identifier) - ?? throw ORMInvalidArgumentException::invalidIdentifierBindingEntity($class); - } - } - - return [$metadata->identifier[0] => $identifier]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCacheFactory.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCacheFactory.php deleted file mode 100644 index 84ea490..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCacheFactory.php +++ /dev/null @@ -1,189 +0,0 @@ -fileLockRegionDirectory = $fileLockRegionDirectory; - } - - public function getFileLockRegionDirectory(): string|null - { - return $this->fileLockRegionDirectory; - } - - public function setRegion(Region $region): void - { - $this->regions[$region->getName()] = $region; - } - - public function setTimestampRegion(TimestampRegion $region): void - { - $this->timestampRegion = $region; - } - - public function buildCachedEntityPersister(EntityManagerInterface $em, EntityPersister $persister, ClassMetadata $metadata): CachedEntityPersister - { - assert($metadata->cache !== null); - $region = $this->getRegion($metadata->cache); - $usage = $metadata->cache['usage']; - - if ($usage === ClassMetadata::CACHE_USAGE_READ_ONLY) { - return new ReadOnlyCachedEntityPersister($persister, $region, $em, $metadata); - } - - if ($usage === ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE) { - return new NonStrictReadWriteCachedEntityPersister($persister, $region, $em, $metadata); - } - - if ($usage === ClassMetadata::CACHE_USAGE_READ_WRITE) { - if (! $region instanceof ConcurrentRegion) { - throw new InvalidArgumentException(sprintf('Unable to use access strategy type of [%s] without a ConcurrentRegion', $usage)); - } - - return new ReadWriteCachedEntityPersister($persister, $region, $em, $metadata); - } - - throw new InvalidArgumentException(sprintf('Unrecognized access strategy type [%s]', $usage)); - } - - public function buildCachedCollectionPersister( - EntityManagerInterface $em, - CollectionPersister $persister, - AssociationMapping $mapping, - ): CachedCollectionPersister { - assert(isset($mapping->cache)); - $usage = $mapping->cache['usage']; - $region = $this->getRegion($mapping->cache); - - if ($usage === ClassMetadata::CACHE_USAGE_READ_ONLY) { - return new ReadOnlyCachedCollectionPersister($persister, $region, $em, $mapping); - } - - if ($usage === ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE) { - return new NonStrictReadWriteCachedCollectionPersister($persister, $region, $em, $mapping); - } - - if ($usage === ClassMetadata::CACHE_USAGE_READ_WRITE) { - if (! $region instanceof ConcurrentRegion) { - throw new InvalidArgumentException(sprintf('Unable to use access strategy type of [%s] without a ConcurrentRegion', $usage)); - } - - return new ReadWriteCachedCollectionPersister($persister, $region, $em, $mapping); - } - - throw new InvalidArgumentException(sprintf('Unrecognized access strategy type [%s]', $usage)); - } - - public function buildQueryCache(EntityManagerInterface $em, string|null $regionName = null): QueryCache - { - return new DefaultQueryCache( - $em, - $this->getRegion( - [ - 'region' => $regionName ?: Cache::DEFAULT_QUERY_REGION_NAME, - 'usage' => ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE, - ], - ), - ); - } - - public function buildCollectionHydrator(EntityManagerInterface $em, AssociationMapping $mapping): CollectionHydrator - { - return new DefaultCollectionHydrator($em); - } - - public function buildEntityHydrator(EntityManagerInterface $em, ClassMetadata $metadata): EntityHydrator - { - return new DefaultEntityHydrator($em); - } - - /** - * {@inheritDoc} - */ - public function getRegion(array $cache): Region - { - if (isset($this->regions[$cache['region']])) { - return $this->regions[$cache['region']]; - } - - $name = $cache['region']; - $lifetime = $this->regionsConfig->getLifetime($cache['region']); - $region = new DefaultRegion($name, $this->cacheItemPool, $lifetime); - - if ($cache['usage'] === ClassMetadata::CACHE_USAGE_READ_WRITE) { - if ( - $this->fileLockRegionDirectory === '' || - $this->fileLockRegionDirectory === null - ) { - throw new LogicException( - 'If you want to use a "READ_WRITE" cache an implementation of "Doctrine\ORM\Cache\ConcurrentRegion" is required, ' . - 'The default implementation provided by doctrine is "Doctrine\ORM\Cache\Region\FileLockRegion" if you want to use it please provide a valid directory, DefaultCacheFactory#setFileLockRegionDirectory(). ', - ); - } - - $directory = $this->fileLockRegionDirectory . DIRECTORY_SEPARATOR . $cache['region']; - $region = new FileLockRegion($region, $directory, (string) $this->regionsConfig->getLockLifetime($cache['region'])); - } - - return $this->regions[$cache['region']] = $region; - } - - public function getTimestampRegion(): TimestampRegion - { - if ($this->timestampRegion === null) { - $name = Cache::DEFAULT_TIMESTAMP_REGION_NAME; - $lifetime = $this->regionsConfig->getLifetime($name); - - $this->timestampRegion = new UpdateTimestampCache($name, $this->cacheItemPool, $lifetime); - } - - return $this->timestampRegion; - } - - public function createCache(EntityManagerInterface $entityManager): Cache - { - return new DefaultCache($entityManager); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCollectionHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCollectionHydrator.php deleted file mode 100644 index 249d48f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultCollectionHydrator.php +++ /dev/null @@ -1,75 +0,0 @@ - */ - private static array $hints = [Query::HINT_CACHE_ENABLED => true]; - - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->uow = $em->getUnitOfWork(); - } - - public function buildCacheEntry(ClassMetadata $metadata, CollectionCacheKey $key, array|Collection $collection): CollectionCacheEntry - { - $data = []; - - foreach ($collection as $index => $entity) { - $data[$index] = new EntityCacheKey($metadata->rootEntityName, $this->uow->getEntityIdentifier($entity)); - } - - return new CollectionCacheEntry($data); - } - - public function loadCacheEntry(ClassMetadata $metadata, CollectionCacheKey $key, CollectionCacheEntry $entry, PersistentCollection $collection): array|null - { - $assoc = $metadata->associationMappings[$key->association]; - $targetPersister = $this->uow->getEntityPersister($assoc->targetEntity); - assert($targetPersister instanceof CachedPersister); - $targetRegion = $targetPersister->getCacheRegion(); - $list = []; - - /** @var EntityCacheEntry[]|null $entityEntries */ - $entityEntries = $targetRegion->getMultiple($entry); - - if ($entityEntries === null) { - return null; - } - - foreach ($entityEntries as $index => $entityEntry) { - $entity = $this->uow->createEntity( - $entityEntry->class, - $entityEntry->resolveAssociationEntries($this->em), - self::$hints, - ); - - $collection->hydrateSet($index, $entity); - - $list[$index] = $entity; - } - - $this->uow->hydrationComplete(); - - return $list; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultEntityHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultEntityHydrator.php deleted file mode 100644 index 6bd1524..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultEntityHydrator.php +++ /dev/null @@ -1,176 +0,0 @@ - */ - private static array $hints = [Query::HINT_CACHE_ENABLED => true]; - - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->uow = $em->getUnitOfWork(); - $this->identifierFlattener = new IdentifierFlattener($em->getUnitOfWork(), $em->getMetadataFactory()); - } - - public function buildCacheEntry(ClassMetadata $metadata, EntityCacheKey $key, object $entity): EntityCacheEntry - { - $data = $this->uow->getOriginalEntityData($entity); - $data = [...$data, ...$metadata->getIdentifierValues($entity)]; // why update has no identifier values ? - - if ($metadata->requiresFetchAfterChange) { - if ($metadata->isVersioned) { - assert($metadata->versionField !== null); - $data[$metadata->versionField] = $metadata->getFieldValue($entity, $metadata->versionField); - } - - foreach ($metadata->fieldMappings as $name => $fieldMapping) { - if (isset($fieldMapping->generated)) { - $data[$name] = $metadata->getFieldValue($entity, $name); - } - } - } - - foreach ($metadata->associationMappings as $name => $assoc) { - if (! isset($data[$name])) { - continue; - } - - if (! $assoc->isToOne()) { - unset($data[$name]); - - continue; - } - - if (! isset($assoc->cache)) { - $targetClassMetadata = $this->em->getClassMetadata($assoc->targetEntity); - $owningAssociation = $this->em->getMetadataFactory()->getOwningSide($assoc); - $associationIds = $this->identifierFlattener->flattenIdentifier( - $targetClassMetadata, - $targetClassMetadata->getIdentifierValues($data[$name]), - ); - - unset($data[$name]); - - foreach ($associationIds as $fieldName => $fieldValue) { - if (isset($targetClassMetadata->fieldMappings[$fieldName])) { - assert($owningAssociation->isToOneOwningSide()); - $fieldMapping = $targetClassMetadata->fieldMappings[$fieldName]; - - $data[$owningAssociation->targetToSourceKeyColumns[$fieldMapping->columnName]] = $fieldValue; - - continue; - } - - $targetAssoc = $targetClassMetadata->associationMappings[$fieldName]; - - assert($assoc->isToOneOwningSide()); - foreach ($assoc->targetToSourceKeyColumns as $referencedColumn => $localColumn) { - if (isset($targetAssoc->sourceToTargetKeyColumns[$referencedColumn])) { - $data[$localColumn] = $fieldValue; - } - } - } - - continue; - } - - if (! isset($assoc->id)) { - $targetClass = DefaultProxyClassNameResolver::getClass($data[$name]); - $targetId = $this->uow->getEntityIdentifier($data[$name]); - $data[$name] = new AssociationCacheEntry($targetClass, $targetId); - - continue; - } - - // handle association identifier - $targetId = is_object($data[$name]) && $this->uow->isInIdentityMap($data[$name]) - ? $this->uow->getEntityIdentifier($data[$name]) - : $data[$name]; - - // @TODO - fix it ! - // handle UnitOfWork#createEntity hash generation - if (! is_array($targetId)) { - assert($assoc->isToOneOwningSide()); - $data[reset($assoc->joinColumnFieldNames)] = $targetId; - - $targetEntity = $this->em->getClassMetadata($assoc->targetEntity); - $targetId = [$targetEntity->identifier[0] => $targetId]; - } - - $data[$name] = new AssociationCacheEntry($assoc->targetEntity, $targetId); - } - - return new EntityCacheEntry($metadata->name, $data); - } - - public function loadCacheEntry(ClassMetadata $metadata, EntityCacheKey $key, EntityCacheEntry $entry, object|null $entity = null): object|null - { - $data = $entry->data; - $hints = self::$hints; - - if ($entity !== null) { - $hints[Query::HINT_REFRESH] = true; - $hints[Query::HINT_REFRESH_ENTITY] = $entity; - } - - foreach ($metadata->associationMappings as $name => $assoc) { - if (! isset($assoc->cache) || ! isset($data[$name])) { - continue; - } - - $assocClass = $data[$name]->class; - $assocId = $data[$name]->identifier; - $isEagerLoad = ($assoc->fetch === ClassMetadata::FETCH_EAGER || ($assoc->isOneToOne() && ! $assoc->isOwningSide())); - - if (! $isEagerLoad) { - $data[$name] = $this->em->getReference($assocClass, $assocId); - - continue; - } - - $assocMetadata = $this->em->getClassMetadata($assoc->targetEntity); - $assocKey = new EntityCacheKey($assocMetadata->rootEntityName, $assocId); - $assocPersister = $this->uow->getEntityPersister($assoc->targetEntity); - $assocRegion = $assocPersister->getCacheRegion(); - $assocEntry = $assocRegion->get($assocKey); - - if ($assocEntry === null) { - return null; - } - - $data[$name] = $this->uow->createEntity($assocEntry->class, $assocEntry->resolveAssociationEntries($this->em), $hints); - } - - if ($entity !== null) { - $this->uow->registerManaged($entity, $key->identifier, $data); - } - - $result = $this->uow->createEntity($entry->class, $data, $hints); - - $this->uow->hydrationComplete(); - - return $result; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultQueryCache.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultQueryCache.php deleted file mode 100644 index 5f28075..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/DefaultQueryCache.php +++ /dev/null @@ -1,418 +0,0 @@ - */ - private static array $hints = [Query::HINT_CACHE_ENABLED => true]; - - public function __construct( - private readonly EntityManagerInterface $em, - private readonly Region $region, - ) { - $cacheConfig = $em->getConfiguration()->getSecondLevelCacheConfiguration(); - - $this->uow = $em->getUnitOfWork(); - $this->cacheLogger = $cacheConfig->getCacheLogger(); - $this->validator = $cacheConfig->getQueryValidator(); - } - - /** - * {@inheritDoc} - */ - public function get(QueryCacheKey $key, ResultSetMapping $rsm, array $hints = []): array|null - { - if (! ($key->cacheMode & Cache::MODE_GET)) { - return null; - } - - $cacheEntry = $this->region->get($key); - - if (! $cacheEntry instanceof QueryCacheEntry) { - return null; - } - - if (! $this->validator->isValid($key, $cacheEntry)) { - $this->region->evict($key); - - return null; - } - - $result = []; - $entityName = reset($rsm->aliasMap); - $hasRelation = ! empty($rsm->relationMap); - $persister = $this->uow->getEntityPersister($entityName); - assert($persister instanceof CachedEntityPersister); - - $region = $persister->getCacheRegion(); - $regionName = $region->getName(); - - $cm = $this->em->getClassMetadata($entityName); - - $generateKeys = static fn (array $entry): EntityCacheKey => new EntityCacheKey($cm->rootEntityName, $entry['identifier']); - - $cacheKeys = new CollectionCacheEntry(array_map($generateKeys, $cacheEntry->result)); - $entries = $region->getMultiple($cacheKeys) ?? []; - - // @TODO - move to cache hydration component - foreach ($cacheEntry->result as $index => $entry) { - $entityEntry = $entries[$index] ?? null; - - if (! $entityEntry instanceof EntityCacheEntry) { - $this->cacheLogger?->entityCacheMiss($regionName, $cacheKeys->identifiers[$index]); - - return null; - } - - $this->cacheLogger?->entityCacheHit($regionName, $cacheKeys->identifiers[$index]); - - if (! $hasRelation) { - $result[$index] = $this->uow->createEntity($entityEntry->class, $entityEntry->resolveAssociationEntries($this->em), self::$hints); - - continue; - } - - $data = $entityEntry->data; - - foreach ($entry['associations'] as $name => $assoc) { - $assocPersister = $this->uow->getEntityPersister($assoc['targetEntity']); - assert($assocPersister instanceof CachedEntityPersister); - - $assocRegion = $assocPersister->getCacheRegion(); - $assocMetadata = $this->em->getClassMetadata($assoc['targetEntity']); - - if ($assoc['type'] & ClassMetadata::TO_ONE) { - $assocKey = new EntityCacheKey($assocMetadata->rootEntityName, $assoc['identifier']); - $assocEntry = $assocRegion->get($assocKey); - - if ($assocEntry === null) { - $this->cacheLogger?->entityCacheMiss($assocRegion->getName(), $assocKey); - - $this->uow->hydrationComplete(); - - return null; - } - - $data[$name] = $this->uow->createEntity($assocEntry->class, $assocEntry->resolveAssociationEntries($this->em), self::$hints); - - $this->cacheLogger?->entityCacheHit($assocRegion->getName(), $assocKey); - - continue; - } - - if (! isset($assoc['list']) || empty($assoc['list'])) { - continue; - } - - $generateKeys = static fn (array $id): EntityCacheKey => new EntityCacheKey($assocMetadata->rootEntityName, $id); - - $collection = new PersistentCollection($this->em, $assocMetadata, new ArrayCollection()); - $assocKeys = new CollectionCacheEntry(array_map($generateKeys, $assoc['list'])); - $assocEntries = $assocRegion->getMultiple($assocKeys); - - foreach ($assoc['list'] as $assocIndex => $assocId) { - $assocEntry = is_array($assocEntries) ? ($assocEntries[$assocIndex] ?? null) : null; - - if ($assocEntry === null) { - $this->cacheLogger?->entityCacheMiss($assocRegion->getName(), $assocKeys->identifiers[$assocIndex]); - - $this->uow->hydrationComplete(); - - return null; - } - - $element = $this->uow->createEntity($assocEntry->class, $assocEntry->resolveAssociationEntries($this->em), self::$hints); - - $collection->hydrateSet($assocIndex, $element); - - $this->cacheLogger?->entityCacheHit($assocRegion->getName(), $assocKeys->identifiers[$assocIndex]); - } - - $data[$name] = $collection; - - $collection->setInitialized(true); - } - - foreach ($data as $fieldName => $unCachedAssociationData) { - // In some scenarios, such as EAGER+ASSOCIATION+ID+CACHE, the - // cache key information in `$cacheEntry` will not contain details - // for fields that are associations. - // - // This means that `$data` keys for some associations that may - // actually not be cached will not be converted to actual association - // data, yet they contain L2 cache AssociationCacheEntry objects. - // - // We need to unwrap those associations into proxy references, - // since we don't have actual data for them except for identifiers. - if ($unCachedAssociationData instanceof AssociationCacheEntry) { - $data[$fieldName] = $this->em->getReference( - $unCachedAssociationData->class, - $unCachedAssociationData->identifier, - ); - } - } - - $result[$index] = $this->uow->createEntity($entityEntry->class, $data, self::$hints); - } - - $this->uow->hydrationComplete(); - - return $result; - } - - /** - * {@inheritDoc} - */ - public function put(QueryCacheKey $key, ResultSetMapping $rsm, mixed $result, array $hints = []): bool - { - if ($rsm->scalarMappings) { - throw FeatureNotImplemented::scalarResults(); - } - - if (count($rsm->entityMappings) > 1) { - throw FeatureNotImplemented::multipleRootEntities(); - } - - if (! $rsm->isSelect) { - throw FeatureNotImplemented::nonSelectStatements(); - } - - if (($hints[SqlWalker::HINT_PARTIAL] ?? false) === true || ($hints[Query::HINT_FORCE_PARTIAL_LOAD] ?? false) === true) { - throw FeatureNotImplemented::partialEntities(); - } - - if (! ($key->cacheMode & Cache::MODE_PUT)) { - return false; - } - - $data = []; - $entityName = reset($rsm->aliasMap); - $rootAlias = key($rsm->aliasMap); - $persister = $this->uow->getEntityPersister($entityName); - - if (! $persister instanceof CachedEntityPersister) { - throw NonCacheableEntity::fromEntity($entityName); - } - - $region = $persister->getCacheRegion(); - - $cm = $this->em->getClassMetadata($entityName); - - foreach ($result as $index => $entity) { - $identifier = $this->uow->getEntityIdentifier($entity); - $entityKey = new EntityCacheKey($cm->rootEntityName, $identifier); - - if (($key->cacheMode & Cache::MODE_REFRESH) || ! $region->contains($entityKey)) { - // Cancel put result if entity put fail - if (! $persister->storeEntityCache($entity, $entityKey)) { - return false; - } - } - - $data[$index]['identifier'] = $identifier; - $data[$index]['associations'] = []; - - // @TODO - move to cache hydration components - foreach ($rsm->relationMap as $alias => $name) { - $parentAlias = $rsm->parentAliasMap[$alias]; - $parentClass = $rsm->aliasMap[$parentAlias]; - $metadata = $this->em->getClassMetadata($parentClass); - $assoc = $metadata->associationMappings[$name]; - $assocValue = $this->getAssociationValue($rsm, $alias, $entity); - - if ($assocValue === null) { - continue; - } - - // root entity association - if ($rootAlias === $parentAlias) { - // Cancel put result if association put fail - $assocInfo = $this->storeAssociationCache($key, $assoc, $assocValue); - if ($assocInfo === null) { - return false; - } - - $data[$index]['associations'][$name] = $assocInfo; - - continue; - } - - // store single nested association - if (! is_array($assocValue)) { - // Cancel put result if association put fail - if ($this->storeAssociationCache($key, $assoc, $assocValue) === null) { - return false; - } - - continue; - } - - // store array of nested association - foreach ($assocValue as $aVal) { - // Cancel put result if association put fail - if ($this->storeAssociationCache($key, $assoc, $aVal) === null) { - return false; - } - } - } - } - - return $this->region->put($key, new QueryCacheEntry($data)); - } - - /** - * @return mixed[]|null - * @phpstan-return array{targetEntity: class-string, type: mixed, list?: array[], identifier?: array}|null - */ - private function storeAssociationCache(QueryCacheKey $key, AssociationMapping $assoc, mixed $assocValue): array|null - { - $assocPersister = $this->uow->getEntityPersister($assoc->targetEntity); - $assocMetadata = $assocPersister->getClassMetadata(); - $assocRegion = $assocPersister->getCacheRegion(); - - // Handle *-to-one associations - if ($assoc->isToOne()) { - $assocIdentifier = $this->uow->getEntityIdentifier($assocValue); - $entityKey = new EntityCacheKey($assocMetadata->rootEntityName, $assocIdentifier); - - if (! $this->uow->isUninitializedObject($assocValue) && ($key->cacheMode & Cache::MODE_REFRESH) || ! $assocRegion->contains($entityKey)) { - // Entity put fail - if (! $assocPersister->storeEntityCache($assocValue, $entityKey)) { - return null; - } - } - - return [ - 'targetEntity' => $assocMetadata->rootEntityName, - 'identifier' => $assocIdentifier, - 'type' => $assoc->type(), - ]; - } - - // Handle *-to-many associations - $list = []; - - foreach ($assocValue as $assocItemIndex => $assocItem) { - $assocIdentifier = $this->uow->getEntityIdentifier($assocItem); - $entityKey = new EntityCacheKey($assocMetadata->rootEntityName, $assocIdentifier); - - if (($key->cacheMode & Cache::MODE_REFRESH) || ! $assocRegion->contains($entityKey)) { - // Entity put fail - if (! $assocPersister->storeEntityCache($assocItem, $entityKey)) { - return null; - } - } - - $list[$assocItemIndex] = $assocIdentifier; - } - - return [ - 'targetEntity' => $assocMetadata->rootEntityName, - 'type' => $assoc->type(), - 'list' => $list, - ]; - } - - /** @phpstan-return list|object|null */ - private function getAssociationValue( - ResultSetMapping $rsm, - string $assocAlias, - object $entity, - ): array|object|null { - $path = []; - $alias = $assocAlias; - - while (isset($rsm->parentAliasMap[$alias])) { - $parent = $rsm->parentAliasMap[$alias]; - $field = $rsm->relationMap[$alias]; - $class = $rsm->aliasMap[$parent]; - - array_unshift($path, [ - 'field' => $field, - 'class' => $class, - ]); - - $alias = $parent; - } - - return $this->getAssociationPathValue($entity, $path); - } - - /** - * @phpstan-param array $path - * - * @phpstan-return list|object|null - */ - private function getAssociationPathValue(mixed $value, array $path): array|object|null - { - $mapping = array_shift($path); - $metadata = $this->em->getClassMetadata($mapping['class']); - $assoc = $metadata->associationMappings[$mapping['field']]; - $value = $metadata->getFieldValue($value, $mapping['field']); - - if ($value === null) { - return null; - } - - if ($path === []) { - return $value; - } - - // Handle *-to-one associations - if ($assoc->isToOne()) { - return $this->getAssociationPathValue($value, $path); - } - - $values = []; - - foreach ($value as $item) { - $values[] = $this->getAssociationPathValue($item, $path); - } - - return $values; - } - - public function clear(): bool - { - return $this->region->evictAll(); - } - - public function getRegion(): Region - { - return $this->region; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheEntry.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheEntry.php deleted file mode 100644 index c66a183..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheEntry.php +++ /dev/null @@ -1,50 +0,0 @@ - $data The entity map data - */ - public function __construct( - public readonly string $class, - public readonly array $data, - ) { - } - - /** - * Creates a new EntityCacheEntry - * - * This method allows Doctrine\Common\Cache\PhpFileCache compatibility - * - * @param array $values array containing property values - */ - public static function __set_state(array $values): self - { - return new self($values['class'], $values['data']); - } - - /** - * Retrieves the entity data resolving cache entries - * - * @return array - */ - public function resolveAssociationEntries(EntityManagerInterface $em): array - { - return array_map(static function ($value) use ($em) { - if (! ($value instanceof AssociationCacheEntry)) { - return $value; - } - - return $em->getReference($value->class, $value->identifier); - }, $this->data); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheKey.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheKey.php deleted file mode 100644 index 095ddaa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityCacheKey.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ - public readonly array $identifier; - - /** - * @param class-string $entityClass The entity class name. In a inheritance hierarchy it should always be the root entity class. - * @param array $identifier The entity identifier - */ - public function __construct( - public readonly string $entityClass, - array $identifier, - ) { - ksort($identifier); - - $this->identifier = $identifier; - - parent::__construct(str_replace('\\', '.', strtolower($entityClass) . '_' . implode(' ', $identifier))); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityHydrator.php deleted file mode 100644 index 13cd21f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/EntityHydrator.php +++ /dev/null @@ -1,28 +0,0 @@ -time = $time ?? time(); - } - - public static function createLockRead(): Lock - { - return new self(uniqid((string) time(), true)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/LockException.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/LockException.php deleted file mode 100644 index bb2d4ec..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/LockException.php +++ /dev/null @@ -1,14 +0,0 @@ - */ - private array $loggers = []; - - public function setLogger(string $name, CacheLogger $logger): void - { - $this->loggers[$name] = $logger; - } - - public function getLogger(string $name): CacheLogger|null - { - return $this->loggers[$name] ?? null; - } - - /** @return array */ - public function getLoggers(): array - { - return $this->loggers; - } - - public function collectionCacheHit(string $regionName, CollectionCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->collectionCacheHit($regionName, $key); - } - } - - public function collectionCacheMiss(string $regionName, CollectionCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->collectionCacheMiss($regionName, $key); - } - } - - public function collectionCachePut(string $regionName, CollectionCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->collectionCachePut($regionName, $key); - } - } - - public function entityCacheHit(string $regionName, EntityCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->entityCacheHit($regionName, $key); - } - } - - public function entityCacheMiss(string $regionName, EntityCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->entityCacheMiss($regionName, $key); - } - } - - public function entityCachePut(string $regionName, EntityCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->entityCachePut($regionName, $key); - } - } - - public function queryCacheHit(string $regionName, QueryCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->queryCacheHit($regionName, $key); - } - } - - public function queryCacheMiss(string $regionName, QueryCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->queryCacheMiss($regionName, $key); - } - } - - public function queryCachePut(string $regionName, QueryCacheKey $key): void - { - foreach ($this->loggers as $logger) { - $logger->queryCachePut($regionName, $key); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/StatisticsCacheLogger.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/StatisticsCacheLogger.php deleted file mode 100644 index 092104e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Logging/StatisticsCacheLogger.php +++ /dev/null @@ -1,174 +0,0 @@ - */ - private array $cacheMissCountMap = []; - - /** @var array */ - private array $cacheHitCountMap = []; - - /** @var array */ - private array $cachePutCountMap = []; - - public function collectionCacheMiss(string $regionName, CollectionCacheKey $key): void - { - $this->cacheMissCountMap[$regionName] - = ($this->cacheMissCountMap[$regionName] ?? 0) + 1; - } - - public function collectionCacheHit(string $regionName, CollectionCacheKey $key): void - { - $this->cacheHitCountMap[$regionName] - = ($this->cacheHitCountMap[$regionName] ?? 0) + 1; - } - - public function collectionCachePut(string $regionName, CollectionCacheKey $key): void - { - $this->cachePutCountMap[$regionName] - = ($this->cachePutCountMap[$regionName] ?? 0) + 1; - } - - public function entityCacheMiss(string $regionName, EntityCacheKey $key): void - { - $this->cacheMissCountMap[$regionName] - = ($this->cacheMissCountMap[$regionName] ?? 0) + 1; - } - - public function entityCacheHit(string $regionName, EntityCacheKey $key): void - { - $this->cacheHitCountMap[$regionName] - = ($this->cacheHitCountMap[$regionName] ?? 0) + 1; - } - - public function entityCachePut(string $regionName, EntityCacheKey $key): void - { - $this->cachePutCountMap[$regionName] - = ($this->cachePutCountMap[$regionName] ?? 0) + 1; - } - - public function queryCacheHit(string $regionName, QueryCacheKey $key): void - { - $this->cacheHitCountMap[$regionName] - = ($this->cacheHitCountMap[$regionName] ?? 0) + 1; - } - - public function queryCacheMiss(string $regionName, QueryCacheKey $key): void - { - $this->cacheMissCountMap[$regionName] - = ($this->cacheMissCountMap[$regionName] ?? 0) + 1; - } - - public function queryCachePut(string $regionName, QueryCacheKey $key): void - { - $this->cachePutCountMap[$regionName] - = ($this->cachePutCountMap[$regionName] ?? 0) + 1; - } - - /** - * Get the number of entries successfully retrieved from cache. - * - * @param string $regionName The name of the cache region. - */ - public function getRegionHitCount(string $regionName): int - { - return $this->cacheHitCountMap[$regionName] ?? 0; - } - - /** - * Get the number of cached entries *not* found in cache. - * - * @param string $regionName The name of the cache region. - */ - public function getRegionMissCount(string $regionName): int - { - return $this->cacheMissCountMap[$regionName] ?? 0; - } - - /** - * Get the number of cacheable entries put in cache. - * - * @param string $regionName The name of the cache region. - */ - public function getRegionPutCount(string $regionName): int - { - return $this->cachePutCountMap[$regionName] ?? 0; - } - - /** @return array */ - public function getRegionsMiss(): array - { - return $this->cacheMissCountMap; - } - - /** @return array */ - public function getRegionsHit(): array - { - return $this->cacheHitCountMap; - } - - /** @return array */ - public function getRegionsPut(): array - { - return $this->cachePutCountMap; - } - - /** - * Clear region statistics - * - * @param string $regionName The name of the cache region. - */ - public function clearRegionStats(string $regionName): void - { - $this->cachePutCountMap[$regionName] = 0; - $this->cacheHitCountMap[$regionName] = 0; - $this->cacheMissCountMap[$regionName] = 0; - } - - /** - * Clear all statistics - */ - public function clearStats(): void - { - $this->cachePutCountMap = []; - $this->cacheHitCountMap = []; - $this->cacheMissCountMap = []; - } - - /** - * Get the total number of put in cache. - */ - public function getPutCount(): int - { - return array_sum($this->cachePutCountMap); - } - - /** - * Get the total number of entries successfully retrieved from cache. - */ - public function getHitCount(): int - { - return array_sum($this->cacheHitCountMap); - } - - /** - * Get the total number of cached entries *not* found in cache. - */ - public function getMissCount(): int - { - return array_sum($this->cacheMissCountMap); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/CachedPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/CachedPersister.php deleted file mode 100644 index 223692c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/CachedPersister.php +++ /dev/null @@ -1,25 +0,0 @@ -getConfiguration(); - $cacheConfig = $configuration->getSecondLevelCacheConfiguration(); - $cacheFactory = $cacheConfig->getCacheFactory(); - - $this->region = $region; - $this->persister = $persister; - $this->association = $association; - $this->filters = $em->getFilters(); - $this->regionName = $region->getName(); - $this->uow = $em->getUnitOfWork(); - $this->metadataFactory = $em->getMetadataFactory(); - $this->cacheLogger = $cacheConfig->getCacheLogger(); - $this->hydrator = $cacheFactory->buildCollectionHydrator($em, $association); - $this->sourceEntity = $em->getClassMetadata($association->sourceEntity); - $this->targetEntity = $em->getClassMetadata($association->targetEntity); - } - - public function getCacheRegion(): Region - { - return $this->region; - } - - public function getSourceEntityMetadata(): ClassMetadata - { - return $this->sourceEntity; - } - - public function getTargetEntityMetadata(): ClassMetadata - { - return $this->targetEntity; - } - - public function loadCollectionCache(PersistentCollection $collection, CollectionCacheKey $key): array|null - { - $cache = $this->region->get($key); - - if ($cache === null) { - return null; - } - - return $this->hydrator->loadCacheEntry($this->sourceEntity, $key, $cache, $collection); - } - - public function storeCollectionCache(CollectionCacheKey $key, Collection|array $elements): void - { - $associationMapping = $this->sourceEntity->associationMappings[$key->association]; - $targetPersister = $this->uow->getEntityPersister($this->targetEntity->rootEntityName); - assert($targetPersister instanceof CachedEntityPersister); - $targetRegion = $targetPersister->getCacheRegion(); - $targetHydrator = $targetPersister->getEntityHydrator(); - - // Only preserve ordering if association configured it - if (! $associationMapping->isIndexed()) { - // Elements may be an array or a Collection - $elements = array_values($elements instanceof Collection ? $elements->getValues() : $elements); - } - - $entry = $this->hydrator->buildCacheEntry($this->targetEntity, $key, $elements); - - foreach ($entry->identifiers as $index => $entityKey) { - if ($targetRegion->contains($entityKey)) { - continue; - } - - $class = $this->targetEntity; - $className = DefaultProxyClassNameResolver::getClass($elements[$index]); - - if ($className !== $this->targetEntity->name) { - $class = $this->metadataFactory->getMetadataFor($className); - } - - $entity = $elements[$index]; - $entityEntry = $targetHydrator->buildCacheEntry($class, $entityKey, $entity); - - $targetRegion->put($entityKey, $entityEntry); - } - - if ($this->region->put($key, $entry)) { - $this->cacheLogger?->collectionCachePut($this->regionName, $key); - } - } - - public function contains(PersistentCollection $collection, object $element): bool - { - return $this->persister->contains($collection, $element); - } - - public function containsKey(PersistentCollection $collection, mixed $key): bool - { - return $this->persister->containsKey($collection, $key); - } - - public function count(PersistentCollection $collection): int - { - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = new CollectionCacheKey($this->sourceEntity->rootEntityName, $this->association->fieldName, $ownerId, $this->filters->getHash()); - $entry = $this->region->get($key); - - if ($entry !== null) { - return count($entry->identifiers); - } - - return $this->persister->count($collection); - } - - public function get(PersistentCollection $collection, mixed $index): mixed - { - return $this->persister->get($collection, $index); - } - - /** - * {@inheritDoc} - */ - public function slice(PersistentCollection $collection, int $offset, int|null $length = null): array - { - return $this->persister->slice($collection, $offset, $length); - } - - /** - * {@inheritDoc} - */ - public function loadCriteria(PersistentCollection $collection, Criteria $criteria): array - { - return $this->persister->loadCriteria($collection, $criteria); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/CachedCollectionPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/CachedCollectionPersister.php deleted file mode 100644 index 6b10c80..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/CachedCollectionPersister.php +++ /dev/null @@ -1,36 +0,0 @@ -queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $item) { - $this->storeCollectionCache($item['key'], $item['list']); - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $key) { - $this->region->evict($key); - } - } - - $this->queuedCache = []; - } - - public function afterTransactionRolledBack(): void - { - $this->queuedCache = []; - } - - public function delete(PersistentCollection $collection): void - { - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = new CollectionCacheKey($this->sourceEntity->rootEntityName, $this->association->fieldName, $ownerId, $this->filters->getHash()); - - $this->persister->delete($collection); - - $this->queuedCache['delete'][spl_object_id($collection)] = $key; - } - - public function update(PersistentCollection $collection): void - { - $isInitialized = $collection->isInitialized(); - $isDirty = $collection->isDirty(); - - if (! $isInitialized && ! $isDirty) { - return; - } - - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = new CollectionCacheKey($this->sourceEntity->rootEntityName, $this->association->fieldName, $ownerId, $this->filters->getHash()); - - // Invalidate non initialized collections OR ordered collection - if ($isDirty && ! $isInitialized || $this->association->isOrdered()) { - $this->persister->update($collection); - - $this->queuedCache['delete'][spl_object_id($collection)] = $key; - - return; - } - - $this->persister->update($collection); - - $this->queuedCache['update'][spl_object_id($collection)] = [ - 'key' => $key, - 'list' => $collection, - ]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadOnlyCachedCollectionPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadOnlyCachedCollectionPersister.php deleted file mode 100644 index 96e0a4b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadOnlyCachedCollectionPersister.php +++ /dev/null @@ -1,24 +0,0 @@ -isDirty() && $collection->getSnapshot()) { - throw CannotUpdateReadOnlyCollection::fromEntityAndField( - DefaultProxyClassNameResolver::getClass($collection->getOwner()), - $this->association->fieldName, - ); - } - - parent::update($collection); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadWriteCachedCollectionPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadWriteCachedCollectionPersister.php deleted file mode 100644 index 6ecf34b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Collection/ReadWriteCachedCollectionPersister.php +++ /dev/null @@ -1,103 +0,0 @@ -queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $item) { - $this->region->evict($item['key']); - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $item) { - $this->region->evict($item['key']); - } - } - - $this->queuedCache = []; - } - - public function afterTransactionRolledBack(): void - { - if (isset($this->queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $item) { - $this->region->evict($item['key']); - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $item) { - $this->region->evict($item['key']); - } - } - - $this->queuedCache = []; - } - - public function delete(PersistentCollection $collection): void - { - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = new CollectionCacheKey($this->sourceEntity->rootEntityName, $this->association->fieldName, $ownerId, $this->filters->getHash()); - $lock = $this->region->lock($key); - - $this->persister->delete($collection); - - if ($lock === null) { - return; - } - - $this->queuedCache['delete'][spl_object_id($collection)] = [ - 'key' => $key, - 'lock' => $lock, - ]; - } - - public function update(PersistentCollection $collection): void - { - $isInitialized = $collection->isInitialized(); - $isDirty = $collection->isDirty(); - - if (! $isInitialized && ! $isDirty) { - return; - } - - $this->persister->update($collection); - - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = new CollectionCacheKey($this->sourceEntity->rootEntityName, $this->association->fieldName, $ownerId, $this->filters->getHash()); - $lock = $this->region->lock($key); - - if ($lock === null) { - return; - } - - $this->queuedCache['update'][spl_object_id($collection)] = [ - 'key' => $key, - 'lock' => $lock, - ]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/AbstractEntityPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/AbstractEntityPersister.php deleted file mode 100644 index 945ad5b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/AbstractEntityPersister.php +++ /dev/null @@ -1,564 +0,0 @@ -|null - */ - protected array|null $joinedAssociations = null; - - public function __construct( - protected EntityPersister $persister, - protected Region $region, - EntityManagerInterface $em, - protected ClassMetadata $class, - ) { - $configuration = $em->getConfiguration(); - $cacheConfig = $configuration->getSecondLevelCacheConfiguration(); - $cacheFactory = $cacheConfig->getCacheFactory(); - - $this->cache = $em->getCache(); - $this->filters = $em->getFilters(); - $this->regionName = $region->getName(); - $this->uow = $em->getUnitOfWork(); - $this->metadataFactory = $em->getMetadataFactory(); - $this->cacheLogger = $cacheConfig->getCacheLogger(); - $this->timestampRegion = $cacheFactory->getTimestampRegion(); - $this->hydrator = $cacheFactory->buildEntityHydrator($em, $class); - $this->timestampKey = new TimestampCacheKey($this->class->rootEntityName); - } - - public function addInsert(object $entity): void - { - $this->persister->addInsert($entity); - } - - /** - * {@inheritDoc} - */ - public function getInserts(): array - { - return $this->persister->getInserts(); - } - - public function getSelectSQL( - array|Criteria $criteria, - AssociationMapping|null $assoc = null, - LockMode|int|null $lockMode = null, - int|null $limit = null, - int|null $offset = null, - array|null $orderBy = null, - ): string { - return $this->persister->getSelectSQL($criteria, $assoc, $lockMode, $limit, $offset, $orderBy); - } - - public function getCountSQL(array|Criteria $criteria = []): string - { - return $this->persister->getCountSQL($criteria); - } - - public function getInsertSQL(): string - { - return $this->persister->getInsertSQL(); - } - - public function getResultSetMapping(): ResultSetMapping - { - return $this->persister->getResultSetMapping(); - } - - public function getSelectConditionStatementSQL( - string $field, - mixed $value, - AssociationMapping|null $assoc = null, - string|null $comparison = null, - ): string { - return $this->persister->getSelectConditionStatementSQL($field, $value, $assoc, $comparison); - } - - public function exists(object $entity, Criteria|null $extraConditions = null): bool - { - if ($extraConditions === null) { - $key = new EntityCacheKey($this->class->rootEntityName, $this->class->getIdentifierValues($entity)); - - if ($this->region->contains($key)) { - return true; - } - } - - return $this->persister->exists($entity, $extraConditions); - } - - public function getCacheRegion(): Region - { - return $this->region; - } - - public function getEntityHydrator(): EntityHydrator - { - return $this->hydrator; - } - - public function storeEntityCache(object $entity, EntityCacheKey $key): bool - { - $class = $this->class; - $className = DefaultProxyClassNameResolver::getClass($entity); - - if ($className !== $this->class->name) { - $class = $this->metadataFactory->getMetadataFor($className); - } - - $entry = $this->hydrator->buildCacheEntry($class, $key, $entity); - $cached = $this->region->put($key, $entry); - - if ($cached) { - $this->cacheLogger?->entityCachePut($this->regionName, $key); - } - - return $cached; - } - - private function storeJoinedAssociations(object $entity): void - { - if ($this->joinedAssociations === null) { - $associations = []; - - foreach ($this->class->associationMappings as $name => $assoc) { - if ( - isset($assoc->cache) && - ($assoc->isToOne()) && - ($assoc->fetch === ClassMetadata::FETCH_EAGER || ! $assoc->isOwningSide()) - ) { - $associations[] = $name; - } - } - - $this->joinedAssociations = $associations; - } - - foreach ($this->joinedAssociations as $name) { - $assoc = $this->class->associationMappings[$name]; - $assocEntity = $this->class->getFieldValue($entity, $name); - - if ($assocEntity === null) { - continue; - } - - $assocId = $this->uow->getEntityIdentifier($assocEntity); - $assocMetadata = $this->metadataFactory->getMetadataFor($assoc->targetEntity); - $assocKey = new EntityCacheKey($assocMetadata->rootEntityName, $assocId); - $assocPersister = $this->uow->getEntityPersister($assoc->targetEntity); - - $assocPersister->storeEntityCache($assocEntity, $assocKey); - } - } - - /** - * Generates a string of currently query - * - * @param string[]|Criteria $criteria - * @param array|null $orderBy - */ - protected function getHash( - string $query, - array|Criteria $criteria, - array|null $orderBy = null, - int|null $limit = null, - int|null $offset = null, - ): string { - [$params] = $criteria instanceof Criteria - ? $this->persister->expandCriteriaParameters($criteria) - : $this->persister->expandParameters($criteria); - - return sha1($query . serialize($params) . serialize($orderBy) . $limit . $offset . $this->filters->getHash()); - } - - /** - * {@inheritDoc} - */ - public function expandParameters(array $criteria): array - { - return $this->persister->expandParameters($criteria); - } - - /** - * {@inheritDoc} - */ - public function expandCriteriaParameters(Criteria $criteria): array - { - return $this->persister->expandCriteriaParameters($criteria); - } - - public function getClassMetadata(): ClassMetadata - { - return $this->persister->getClassMetadata(); - } - - /** - * {@inheritDoc} - */ - public function getManyToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array { - return $this->persister->getManyToManyCollection($assoc, $sourceEntity, $offset, $limit); - } - - /** - * {@inheritDoc} - */ - public function getOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array { - return $this->persister->getOneToManyCollection($assoc, $sourceEntity, $offset, $limit); - } - - public function getOwningTable(string $fieldName): string - { - return $this->persister->getOwningTable($fieldName); - } - - public function executeInserts(): void - { - // The commit order/foreign key relationships may make it necessary that multiple calls to executeInsert() - // are performed, so collect all the new entities. - $newInserts = $this->persister->getInserts(); - - if ($newInserts) { - $this->queuedCache['insert'] = array_merge($this->queuedCache['insert'] ?? [], $newInserts); - } - - $this->persister->executeInserts(); - } - - /** - * {@inheritDoc} - */ - public function load( - array $criteria, - object|null $entity = null, - AssociationMapping|null $assoc = null, - array $hints = [], - LockMode|int|null $lockMode = null, - int|null $limit = null, - array|null $orderBy = null, - ): object|null { - if ($entity !== null || $assoc !== null || $hints !== [] || $lockMode !== null) { - return $this->persister->load($criteria, $entity, $assoc, $hints, $lockMode, $limit, $orderBy); - } - - //handle only EntityRepository#findOneBy - $query = $this->persister->getSelectSQL($criteria, null, null, $limit, null, $orderBy); - $hash = $this->getHash($query, $criteria); - $rsm = $this->getResultSetMapping(); - $queryKey = new QueryCacheKey($hash, 0, Cache::MODE_NORMAL, $this->timestampKey); - $queryCache = $this->cache->getQueryCache($this->regionName); - $result = $queryCache->get($queryKey, $rsm); - - if ($result !== null) { - $this->cacheLogger?->queryCacheHit($this->regionName, $queryKey); - - return $result[0]; - } - - $result = $this->persister->load($criteria, $entity, $assoc, $hints, $lockMode, $limit, $orderBy); - - if ($result === null) { - return null; - } - - $cached = $queryCache->put($queryKey, $rsm, [$result]); - - $this->cacheLogger?->queryCacheMiss($this->regionName, $queryKey); - - if ($cached) { - $this->cacheLogger?->queryCachePut($this->regionName, $queryKey); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - public function loadAll( - array $criteria = [], - array|null $orderBy = null, - int|null $limit = null, - int|null $offset = null, - ): array { - $query = $this->persister->getSelectSQL($criteria, null, null, $limit, $offset, $orderBy); - $hash = $this->getHash($query, $criteria); - $rsm = $this->getResultSetMapping(); - $queryKey = new QueryCacheKey($hash, 0, Cache::MODE_NORMAL, $this->timestampKey); - $queryCache = $this->cache->getQueryCache($this->regionName); - $result = $queryCache->get($queryKey, $rsm); - - if ($result !== null) { - $this->cacheLogger?->queryCacheHit($this->regionName, $queryKey); - - return $result; - } - - $result = $this->persister->loadAll($criteria, $orderBy, $limit, $offset); - $cached = $queryCache->put($queryKey, $rsm, $result); - - if ($result) { - $this->cacheLogger?->queryCacheMiss($this->regionName, $queryKey); - } - - if ($cached) { - $this->cacheLogger?->queryCachePut($this->regionName, $queryKey); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - public function loadById(array $identifier, object|null $entity = null): object|null - { - $cacheKey = new EntityCacheKey($this->class->rootEntityName, $identifier); - $cacheEntry = $this->region->get($cacheKey); - $class = $this->class; - - if ($cacheEntry !== null) { - if ($cacheEntry->class !== $this->class->name) { - $class = $this->metadataFactory->getMetadataFor($cacheEntry->class); - } - - $cachedEntity = $this->hydrator->loadCacheEntry($class, $cacheKey, $cacheEntry, $entity); - - if ($cachedEntity !== null) { - $this->cacheLogger?->entityCacheHit($this->regionName, $cacheKey); - - return $cachedEntity; - } - } - - $entity = $this->persister->loadById($identifier, $entity); - - if ($entity === null) { - return null; - } - - $class = $this->class; - $className = DefaultProxyClassNameResolver::getClass($entity); - - if ($className !== $this->class->name) { - $class = $this->metadataFactory->getMetadataFor($className); - } - - $cacheEntry = $this->hydrator->buildCacheEntry($class, $cacheKey, $entity); - $cached = $this->region->put($cacheKey, $cacheEntry); - - if ($cached && ($this->joinedAssociations === null || $this->joinedAssociations)) { - $this->storeJoinedAssociations($entity); - } - - if ($cached) { - $this->cacheLogger?->entityCachePut($this->regionName, $cacheKey); - } - - $this->cacheLogger?->entityCacheMiss($this->regionName, $cacheKey); - - return $entity; - } - - public function count(array|Criteria $criteria = []): int - { - return $this->persister->count($criteria); - } - - /** - * {@inheritDoc} - */ - public function loadCriteria(Criteria $criteria): array - { - $orderBy = $criteria->orderings(); - $limit = $criteria->getMaxResults(); - $offset = $criteria->getFirstResult(); - $query = $this->persister->getSelectSQL($criteria); - $hash = $this->getHash($query, $criteria, $orderBy, $limit, $offset); - $rsm = $this->getResultSetMapping(); - $queryKey = new QueryCacheKey($hash, 0, Cache::MODE_NORMAL, $this->timestampKey); - $queryCache = $this->cache->getQueryCache($this->regionName); - $cacheResult = $queryCache->get($queryKey, $rsm); - - if ($cacheResult !== null) { - $this->cacheLogger?->queryCacheHit($this->regionName, $queryKey); - - return $cacheResult; - } - - $result = $this->persister->loadCriteria($criteria); - $cached = $queryCache->put($queryKey, $rsm, $result); - - if ($result) { - $this->cacheLogger?->queryCacheMiss($this->regionName, $queryKey); - } - - if ($cached) { - $this->cacheLogger?->queryCachePut($this->regionName, $queryKey); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - public function loadManyToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - PersistentCollection $collection, - ): array { - $persister = $this->uow->getCollectionPersister($assoc); - $hasCache = ($persister instanceof CachedPersister); - - if (! $hasCache) { - return $this->persister->loadManyToManyCollection($assoc, $sourceEntity, $collection); - } - - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = $this->buildCollectionCacheKey($assoc, $ownerId, $this->filters->getHash()); - $list = $persister->loadCollectionCache($collection, $key); - - if ($list !== null) { - $this->cacheLogger?->collectionCacheHit($persister->getCacheRegion()->getName(), $key); - - return $list; - } - - $list = $this->persister->loadManyToManyCollection($assoc, $sourceEntity, $collection); - - $persister->storeCollectionCache($key, $list); - - $this->cacheLogger?->collectionCacheMiss($persister->getCacheRegion()->getName(), $key); - - return $list; - } - - public function loadOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - PersistentCollection $collection, - ): mixed { - $persister = $this->uow->getCollectionPersister($assoc); - $hasCache = ($persister instanceof CachedPersister); - - if (! $hasCache) { - return $this->persister->loadOneToManyCollection($assoc, $sourceEntity, $collection); - } - - $ownerId = $this->uow->getEntityIdentifier($collection->getOwner()); - $key = $this->buildCollectionCacheKey($assoc, $ownerId, $this->filters->getHash()); - $list = $persister->loadCollectionCache($collection, $key); - - if ($list !== null) { - $this->cacheLogger?->collectionCacheHit($persister->getCacheRegion()->getName(), $key); - - return $list; - } - - $list = $this->persister->loadOneToManyCollection($assoc, $sourceEntity, $collection); - - $persister->storeCollectionCache($key, $list); - - $this->cacheLogger?->collectionCacheMiss($persister->getCacheRegion()->getName(), $key); - - return $list; - } - - /** - * {@inheritDoc} - */ - public function loadOneToOneEntity(AssociationMapping $assoc, object $sourceEntity, array $identifier = []): object|null - { - return $this->persister->loadOneToOneEntity($assoc, $sourceEntity, $identifier); - } - - /** - * {@inheritDoc} - */ - public function lock(array $criteria, LockMode|int $lockMode): void - { - $this->persister->lock($criteria, $lockMode); - } - - /** - * {@inheritDoc} - */ - public function refresh(array $id, object $entity, LockMode|int|null $lockMode = null): void - { - $this->persister->refresh($id, $entity, $lockMode); - } - - /** @param array $ownerId */ - protected function buildCollectionCacheKey(AssociationMapping $association, array $ownerId, /* string $filterHash */): CollectionCacheKey - { - $filterHash = (string) (func_get_args()[2] ?? ''); // todo: move to argument in next major release - - return new CollectionCacheKey( - $this->metadataFactory->getMetadataFor($association->sourceEntity)->rootEntityName, - $association->fieldName, - $ownerId, - $filterHash, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/CachedEntityPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/CachedEntityPersister.php deleted file mode 100644 index 5fba56f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/CachedEntityPersister.php +++ /dev/null @@ -1,20 +0,0 @@ -queuedCache['insert'])) { - foreach ($this->queuedCache['insert'] as $entity) { - $isChanged = $this->updateCache($entity, $isChanged); - } - } - - if (isset($this->queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $entity) { - $isChanged = $this->updateCache($entity, $isChanged); - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $key) { - $this->region->evict($key); - - $isChanged = true; - } - } - - if ($isChanged) { - $this->timestampRegion->update($this->timestampKey); - } - - $this->queuedCache = []; - } - - public function afterTransactionRolledBack(): void - { - $this->queuedCache = []; - } - - public function delete(object $entity): bool - { - $key = new EntityCacheKey($this->class->rootEntityName, $this->uow->getEntityIdentifier($entity)); - $deleted = $this->persister->delete($entity); - - if ($deleted) { - $this->region->evict($key); - } - - $this->queuedCache['delete'][] = $key; - - return $deleted; - } - - public function update(object $entity): void - { - $this->persister->update($entity); - - $this->queuedCache['update'][] = $entity; - } - - private function updateCache(object $entity, bool $isChanged): bool - { - $class = $this->metadataFactory->getMetadataFor($entity::class); - $key = new EntityCacheKey($class->rootEntityName, $this->uow->getEntityIdentifier($entity)); - $entry = $this->hydrator->buildCacheEntry($class, $key, $entity); - $cached = $this->region->put($key, $entry); - $isChanged = $isChanged || $cached; - - if ($cached) { - $this->cacheLogger?->entityCachePut($this->regionName, $key); - } - - return $isChanged; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/ReadOnlyCachedEntityPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/ReadOnlyCachedEntityPersister.php deleted file mode 100644 index 4cd1784..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Persister/Entity/ReadOnlyCachedEntityPersister.php +++ /dev/null @@ -1,19 +0,0 @@ -queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $item) { - $this->region->evict($item['key']); - - $isChanged = true; - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $item) { - $this->region->evict($item['key']); - - $isChanged = true; - } - } - - if ($isChanged) { - $this->timestampRegion->update($this->timestampKey); - } - - $this->queuedCache = []; - } - - public function afterTransactionRolledBack(): void - { - if (isset($this->queuedCache['update'])) { - foreach ($this->queuedCache['update'] as $item) { - $this->region->evict($item['key']); - } - } - - if (isset($this->queuedCache['delete'])) { - foreach ($this->queuedCache['delete'] as $item) { - $this->region->evict($item['key']); - } - } - - $this->queuedCache = []; - } - - public function delete(object $entity): bool - { - $key = new EntityCacheKey($this->class->rootEntityName, $this->uow->getEntityIdentifier($entity)); - $lock = $this->region->lock($key); - $deleted = $this->persister->delete($entity); - - if ($deleted) { - $this->region->evict($key); - } - - if ($lock === null) { - return $deleted; - } - - $this->queuedCache['delete'][] = [ - 'lock' => $lock, - 'key' => $key, - ]; - - return $deleted; - } - - public function update(object $entity): void - { - $key = new EntityCacheKey($this->class->rootEntityName, $this->uow->getEntityIdentifier($entity)); - $lock = $this->region->lock($key); - - $this->persister->update($entity); - - if ($lock === null) { - return; - } - - $this->queuedCache['update'][] = [ - 'lock' => $lock, - 'key' => $key, - ]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCache.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCache.php deleted file mode 100644 index e697680..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCache.php +++ /dev/null @@ -1,28 +0,0 @@ - $result List of entity identifiers */ - public function __construct( - public readonly array $result, - float|null $time = null, - ) { - $this->time = $time ?: microtime(true); - } - - /** @param array $values */ - public static function __set_state(array $values): self - { - return new self($values['result'], $values['time']); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheKey.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheKey.php deleted file mode 100644 index 2372e5a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/QueryCacheKey.php +++ /dev/null @@ -1,23 +0,0 @@ -name; - } - - public function contains(CacheKey $key): bool - { - return $this->cacheItemPool->hasItem($this->getCacheEntryKey($key)); - } - - public function get(CacheKey $key): CacheEntry|null - { - $item = $this->cacheItemPool->getItem($this->getCacheEntryKey($key)); - $entry = $item->isHit() ? $item->get() : null; - - if (! $entry instanceof CacheEntry) { - return null; - } - - return $entry; - } - - public function getMultiple(CollectionCacheEntry $collection): array|null - { - $keys = array_map( - $this->getCacheEntryKey(...), - $collection->identifiers, - ); - /** @var iterable $items */ - $items = $this->cacheItemPool->getItems($keys); - if ($items instanceof Traversable) { - $items = iterator_to_array($items); - } - - $result = []; - foreach ($keys as $arrayKey => $cacheKey) { - if (! isset($items[$cacheKey]) || ! $items[$cacheKey]->isHit()) { - return null; - } - - $entry = $items[$cacheKey]->get(); - if (! $entry instanceof CacheEntry) { - return null; - } - - $result[$arrayKey] = $entry; - } - - return $result; - } - - public function put(CacheKey $key, CacheEntry $entry, Lock|null $lock = null): bool - { - $item = $this->cacheItemPool - ->getItem($this->getCacheEntryKey($key)) - ->set($entry); - - if ($this->lifetime > 0) { - $item->expiresAfter($this->lifetime); - } - - return $this->cacheItemPool->save($item); - } - - public function evict(CacheKey $key): bool - { - return $this->cacheItemPool->deleteItem($this->getCacheEntryKey($key)); - } - - public function evictAll(): bool - { - return $this->cacheItemPool->clear(self::REGION_PREFIX . $this->name); - } - - private function getCacheEntryKey(CacheKey $key): string - { - return self::REGION_PREFIX . $this->name . self::REGION_KEY_SEPARATOR . strtr($key->hash, '{}()/\@:', '________'); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/FileLockRegion.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/FileLockRegion.php deleted file mode 100644 index bedd6a6..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/FileLockRegion.php +++ /dev/null @@ -1,194 +0,0 @@ -getLockFileName($key); - - if (! is_file($filename)) { - return false; - } - - $time = $this->getLockTime($filename); - $content = $this->getLockContent($filename); - - if ($content === false || $time === false) { - @unlink($filename); - - return false; - } - - if ($lock && $content === $lock->value) { - return false; - } - - // outdated lock - if ($time + $this->lockLifetime <= time()) { - @unlink($filename); - - return false; - } - - return true; - } - - private function getLockFileName(CacheKey $key): string - { - return $this->directory . DIRECTORY_SEPARATOR . $key->hash . '.' . self::LOCK_EXTENSION; - } - - private function getLockContent(string $filename): string|false - { - return @file_get_contents($filename); - } - - private function getLockTime(string $filename): int|false - { - return @fileatime($filename); - } - - public function getName(): string - { - return $this->region->getName(); - } - - public function contains(CacheKey $key): bool - { - if ($this->isLocked($key)) { - return false; - } - - return $this->region->contains($key); - } - - public function get(CacheKey $key): CacheEntry|null - { - if ($this->isLocked($key)) { - return null; - } - - return $this->region->get($key); - } - - public function getMultiple(CollectionCacheEntry $collection): array|null - { - if (array_filter(array_map($this->isLocked(...), $collection->identifiers))) { - return null; - } - - return $this->region->getMultiple($collection); - } - - public function put(CacheKey $key, CacheEntry $entry, Lock|null $lock = null): bool - { - if ($this->isLocked($key, $lock)) { - return false; - } - - return $this->region->put($key, $entry); - } - - public function evict(CacheKey $key): bool - { - if ($this->isLocked($key)) { - @unlink($this->getLockFileName($key)); - } - - return $this->region->evict($key); - } - - public function evictAll(): bool - { - // The check below is necessary because on some platforms glob returns false - // when nothing matched (even though no errors occurred) - $filenames = glob(sprintf('%s/*.%s', $this->directory, self::LOCK_EXTENSION)) ?: []; - - foreach ($filenames as $filename) { - @unlink($filename); - } - - return $this->region->evictAll(); - } - - public function lock(CacheKey $key): Lock|null - { - if ($this->isLocked($key)) { - return null; - } - - $lock = Lock::createLockRead(); - $filename = $this->getLockFileName($key); - - if (@file_put_contents($filename, $lock->value, LOCK_EX) === false) { - return null; - } - - chmod($filename, 0664); - - return $lock; - } - - public function unlock(CacheKey $key, Lock $lock): bool - { - if ($this->isLocked($key, $lock)) { - return false; - } - - return @unlink($this->getLockFileName($key)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/UpdateTimestampCache.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/UpdateTimestampCache.php deleted file mode 100644 index aa75a90..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/Region/UpdateTimestampCache.php +++ /dev/null @@ -1,20 +0,0 @@ -put($key, new TimestampCacheEntry()); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/RegionsConfiguration.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/RegionsConfiguration.php deleted file mode 100644 index a852831..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/RegionsConfiguration.php +++ /dev/null @@ -1,63 +0,0 @@ - */ - private array $lifetimes = []; - - /** @var array */ - private array $lockLifetimes = []; - - public function __construct( - private int $defaultLifetime = 3600, - private int $defaultLockLifetime = 60, - ) { - } - - public function getDefaultLifetime(): int - { - return $this->defaultLifetime; - } - - public function setDefaultLifetime(int $defaultLifetime): void - { - $this->defaultLifetime = $defaultLifetime; - } - - public function getDefaultLockLifetime(): int - { - return $this->defaultLockLifetime; - } - - public function setDefaultLockLifetime(int $defaultLockLifetime): void - { - $this->defaultLockLifetime = $defaultLockLifetime; - } - - public function getLifetime(string $regionName): int - { - return $this->lifetimes[$regionName] ?? $this->defaultLifetime; - } - - public function setLifetime(string $name, int $lifetime): void - { - $this->lifetimes[$name] = $lifetime; - } - - public function getLockLifetime(string $regionName): int - { - return $this->lockLifetimes[$regionName] ?? $this->defaultLockLifetime; - } - - public function setLockLifetime(string $name, int $lifetime): void - { - $this->lockLifetimes[$name] = $lifetime; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheEntry.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheEntry.php deleted file mode 100644 index 60c9175..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheEntry.php +++ /dev/null @@ -1,29 +0,0 @@ -time = $time ?? microtime(true); - } - - /** - * Creates a new TimestampCacheEntry - * - * This method allow Doctrine\Common\Cache\PhpFileCache compatibility - * - * @param array $values array containing property values - */ - public static function __set_state(array $values): TimestampCacheEntry - { - return new self($values['time']); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheKey.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheKey.php deleted file mode 100644 index 5aef4c5..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampCacheKey.php +++ /dev/null @@ -1,17 +0,0 @@ -regionUpdated($key, $entry)) { - return false; - } - - if ($key->lifetime === 0) { - return true; - } - - return $entry->time + $key->lifetime > microtime(true); - } - - private function regionUpdated(QueryCacheKey $key, QueryCacheEntry $entry): bool - { - if ($key->timestampKey === null) { - return false; - } - - $timestamp = $this->timestampRegion->get($key->timestampKey); - - return $timestamp && $timestamp->time > $entry->time; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampRegion.php b/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampRegion.php deleted file mode 100644 index b74fa8d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Cache/TimestampRegion.php +++ /dev/null @@ -1,18 +0,0 @@ -, ClassMetadata::GENERATOR_TYPE_*> */ - private $identityGenerationPreferences = []; - - /** @phpstan-param array, ClassMetadata::GENERATOR_TYPE_*> $value */ - public function setIdentityGenerationPreferences(array $value): void - { - $this->identityGenerationPreferences = $value; - } - - /** @phpstan-return array, ClassMetadata::GENERATOR_TYPE_*> $value */ - public function getIdentityGenerationPreferences(): array - { - return $this->identityGenerationPreferences; - } - - /** - * Sets the directory where Doctrine generates any necessary proxy class files. - */ - public function setProxyDir(string $dir): void - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - $this->attributes['proxyDir'] = $dir; - } - - /** - * Gets the directory where Doctrine generates any necessary proxy class files. - */ - public function getProxyDir(): string|null - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - return $this->attributes['proxyDir'] ?? null; - } - - /** - * Gets the strategy for automatically generating proxy classes. - * - * @return ProxyFactory::AUTOGENERATE_* - */ - public function getAutoGenerateProxyClasses(): int - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - return $this->attributes['autoGenerateProxyClasses'] ?? ProxyFactory::AUTOGENERATE_ALWAYS; - } - - /** - * Sets the strategy for automatically generating proxy classes. - * - * @param bool|ProxyFactory::AUTOGENERATE_* $autoGenerate True is converted to AUTOGENERATE_ALWAYS, false to AUTOGENERATE_NEVER. - */ - public function setAutoGenerateProxyClasses(bool|int $autoGenerate): void - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - $this->attributes['autoGenerateProxyClasses'] = (int) $autoGenerate; - } - - /** - * Gets the namespace where proxy classes reside. - */ - public function getProxyNamespace(): string|null - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - return $this->attributes['proxyNamespace'] ?? null; - } - - /** - * Sets the namespace where proxy classes reside. - */ - public function setProxyNamespace(string $ns): void - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Calling %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - $this->attributes['proxyNamespace'] = $ns; - } - - /** - * Sets the cache driver implementation that is used for metadata caching. - * - * @todo Force parameter to be a Closure to ensure lazy evaluation - * (as soon as a metadata cache is in effect, the driver never needs to initialize). - */ - public function setMetadataDriverImpl(MappingDriver $driverImpl): void - { - $this->attributes['metadataDriverImpl'] = $driverImpl; - } - - /** - * Sets the entity alias map. - * - * @phpstan-param array $entityNamespaces - */ - public function setEntityNamespaces(array $entityNamespaces): void - { - $this->attributes['entityNamespaces'] = $entityNamespaces; - } - - /** - * Retrieves the list of registered entity namespace aliases. - * - * @phpstan-return array - */ - public function getEntityNamespaces(): array - { - return $this->attributes['entityNamespaces']; - } - - /** - * Gets the cache driver implementation that is used for the mapping metadata. - */ - public function getMetadataDriverImpl(): MappingDriver|null - { - return $this->attributes['metadataDriverImpl'] ?? null; - } - - /** - * Gets the cache driver implementation that is used for the query cache (SQL cache). - */ - public function getQueryCache(): CacheItemPoolInterface|null - { - return $this->attributes['queryCache'] ?? null; - } - - /** - * Sets the cache driver implementation that is used for the query cache (SQL cache). - */ - public function setQueryCache(CacheItemPoolInterface $cache): void - { - $this->attributes['queryCache'] = $cache; - } - - public function getHydrationCache(): CacheItemPoolInterface|null - { - return $this->attributes['hydrationCache'] ?? null; - } - - public function setHydrationCache(CacheItemPoolInterface $cache): void - { - $this->attributes['hydrationCache'] = $cache; - } - - public function getMetadataCache(): CacheItemPoolInterface|null - { - return $this->attributes['metadataCache'] ?? null; - } - - public function setMetadataCache(CacheItemPoolInterface $cache): void - { - $this->attributes['metadataCache'] = $cache; - } - - /** - * Registers a custom DQL function that produces a string value. - * Such a function can then be used in any DQL statement in any place where string - * functions are allowed. - * - * DQL function names are case-insensitive. - * - * @param class-string|callable $className Class name or a callable that returns the function. - * @phpstan-param class-string|callable(string):FunctionNode $className - */ - public function addCustomStringFunction(string $name, string|callable $className): void - { - $this->attributes['customStringFunctions'][strtolower($name)] = $className; - } - - /** - * Gets the implementation class name of a registered custom string DQL function. - * - * @phpstan-return class-string|callable(string):FunctionNode|null - */ - public function getCustomStringFunction(string $name): string|callable|null - { - $name = strtolower($name); - - return $this->attributes['customStringFunctions'][$name] ?? null; - } - - /** - * Sets a map of custom DQL string functions. - * - * Keys must be function names and values the FQCN of the implementing class. - * The function names will be case-insensitive in DQL. - * - * Any previously added string functions are discarded. - * - * @phpstan-param array|callable(string):FunctionNode> $functions The map of custom - * DQL string functions. - */ - public function setCustomStringFunctions(array $functions): void - { - foreach ($functions as $name => $className) { - $this->addCustomStringFunction($name, $className); - } - } - - /** - * Registers a custom DQL function that produces a numeric value. - * Such a function can then be used in any DQL statement in any place where numeric - * functions are allowed. - * - * DQL function names are case-insensitive. - * - * @param class-string|callable $className Class name or a callable that returns the function. - * @phpstan-param class-string|callable(string):FunctionNode $className - */ - public function addCustomNumericFunction(string $name, string|callable $className): void - { - $this->attributes['customNumericFunctions'][strtolower($name)] = $className; - } - - /** - * Gets the implementation class name of a registered custom numeric DQL function. - * - * @phpstan-return class-string|callable(string):FunctionNode|null - */ - public function getCustomNumericFunction(string $name): string|callable|null - { - $name = strtolower($name); - - return $this->attributes['customNumericFunctions'][$name] ?? null; - } - - /** - * Sets a map of custom DQL numeric functions. - * - * Keys must be function names and values the FQCN of the implementing class. - * The function names will be case-insensitive in DQL. - * - * Any previously added numeric functions are discarded. - * - * @param array $functions The map of custom - * DQL numeric functions. - */ - public function setCustomNumericFunctions(array $functions): void - { - foreach ($functions as $name => $className) { - $this->addCustomNumericFunction($name, $className); - } - } - - /** - * Registers a custom DQL function that produces a date/time value. - * Such a function can then be used in any DQL statement in any place where date/time - * functions are allowed. - * - * DQL function names are case-insensitive. - * - * @param string|callable $className Class name or a callable that returns the function. - * @phpstan-param class-string|callable(string):FunctionNode $className - */ - public function addCustomDatetimeFunction(string $name, string|callable $className): void - { - $this->attributes['customDatetimeFunctions'][strtolower($name)] = $className; - } - - /** - * Gets the implementation class name of a registered custom date/time DQL function. - * - * @return class-string|callable|null - */ - public function getCustomDatetimeFunction(string $name): string|callable|null - { - $name = strtolower($name); - - return $this->attributes['customDatetimeFunctions'][$name] ?? null; - } - - /** - * Sets a map of custom DQL date/time functions. - * - * Keys must be function names and values the FQCN of the implementing class. - * The function names will be case-insensitive in DQL. - * - * Any previously added date/time functions are discarded. - * - * @param array $functions The map of custom DQL date/time functions. - * @phpstan-param array|callable(string):FunctionNode> $functions - */ - public function setCustomDatetimeFunctions(array $functions): void - { - foreach ($functions as $name => $className) { - $this->addCustomDatetimeFunction($name, $className); - } - } - - /** - * Sets a TypedFieldMapper for php typed fields to DBAL types auto-completion. - */ - public function setTypedFieldMapper(TypedFieldMapper|null $typedFieldMapper): void - { - $this->attributes['typedFieldMapper'] = $typedFieldMapper; - } - - /** - * Gets a TypedFieldMapper for php typed fields to DBAL types auto-completion. - */ - public function getTypedFieldMapper(): TypedFieldMapper|null - { - return $this->attributes['typedFieldMapper'] ?? null; - } - - /** - * Sets the custom hydrator modes in one pass. - * - * @param array> $modes An array of ($modeName => $hydrator). - */ - public function setCustomHydrationModes(array $modes): void - { - $this->attributes['customHydrationModes'] = []; - - foreach ($modes as $modeName => $hydrator) { - $this->addCustomHydrationMode($modeName, $hydrator); - } - } - - /** - * Gets the hydrator class for the given hydration mode name. - * - * @return class-string|null - */ - public function getCustomHydrationMode(string $modeName): string|null - { - return $this->attributes['customHydrationModes'][$modeName] ?? null; - } - - /** - * Adds a custom hydration mode. - * - * @param class-string $hydrator - */ - public function addCustomHydrationMode(string $modeName, string $hydrator): void - { - $this->attributes['customHydrationModes'][$modeName] = $hydrator; - } - - /** - * Sets a class metadata factory. - * - * @param class-string $cmfName - */ - public function setClassMetadataFactoryName(string $cmfName): void - { - $this->attributes['classMetadataFactoryName'] = $cmfName; - } - - /** @return class-string */ - public function getClassMetadataFactoryName(): string - { - if (! isset($this->attributes['classMetadataFactoryName'])) { - $this->attributes['classMetadataFactoryName'] = ClassMetadataFactory::class; - } - - return $this->attributes['classMetadataFactoryName']; - } - - /** - * Adds a filter to the list of possible filters. - * - * @param class-string $className The class name of the filter. - */ - public function addFilter(string $name, string $className): void - { - $this->attributes['filters'][$name] = $className; - } - - /** - * Gets the class name for a given filter name. - * - * @return class-string|null The class name of the filter, - * or null if it is not defined. - */ - public function getFilterClassName(string $name): string|null - { - return $this->attributes['filters'][$name] ?? null; - } - - /** - * Sets default repository class. - * - * @param class-string $className - * - * @throws InvalidEntityRepository If $classname is not an ObjectRepository. - */ - public function setDefaultRepositoryClassName(string $className): void - { - if (! class_exists($className) || ! is_a($className, EntityRepository::class, true)) { - throw InvalidEntityRepository::fromClassName($className); - } - - $this->attributes['defaultRepositoryClassName'] = $className; - } - - /** - * Get default repository class. - * - * @return class-string - */ - public function getDefaultRepositoryClassName(): string - { - return $this->attributes['defaultRepositoryClassName'] ?? EntityRepository::class; - } - - /** - * Sets naming strategy. - */ - public function setNamingStrategy(NamingStrategy $namingStrategy): void - { - $this->attributes['namingStrategy'] = $namingStrategy; - } - - /** - * Gets naming strategy.. - */ - public function getNamingStrategy(): NamingStrategy - { - if (! isset($this->attributes['namingStrategy'])) { - $this->attributes['namingStrategy'] = new DefaultNamingStrategy(); - } - - return $this->attributes['namingStrategy']; - } - - /** - * Sets quote strategy. - */ - public function setQuoteStrategy(QuoteStrategy $quoteStrategy): void - { - $this->attributes['quoteStrategy'] = $quoteStrategy; - } - - /** - * Gets quote strategy. - */ - public function getQuoteStrategy(): QuoteStrategy - { - if (! isset($this->attributes['quoteStrategy'])) { - $this->attributes['quoteStrategy'] = new DefaultQuoteStrategy(); - } - - return $this->attributes['quoteStrategy']; - } - - /** - * Set the entity listener resolver. - */ - public function setEntityListenerResolver(EntityListenerResolver $resolver): void - { - $this->attributes['entityListenerResolver'] = $resolver; - } - - /** - * Get the entity listener resolver. - */ - public function getEntityListenerResolver(): EntityListenerResolver - { - if (! isset($this->attributes['entityListenerResolver'])) { - $this->attributes['entityListenerResolver'] = new DefaultEntityListenerResolver(); - } - - return $this->attributes['entityListenerResolver']; - } - - /** - * Set the entity repository factory. - */ - public function setRepositoryFactory(RepositoryFactory $repositoryFactory): void - { - $this->attributes['repositoryFactory'] = $repositoryFactory; - } - - /** - * Get the entity repository factory. - */ - public function getRepositoryFactory(): RepositoryFactory - { - return $this->attributes['repositoryFactory'] ?? new DefaultRepositoryFactory(); - } - - public function isSecondLevelCacheEnabled(): bool - { - return $this->attributes['isSecondLevelCacheEnabled'] ?? false; - } - - public function setSecondLevelCacheEnabled(bool $flag = true): void - { - $this->attributes['isSecondLevelCacheEnabled'] = $flag; - } - - public function setSecondLevelCacheConfiguration(CacheConfiguration $cacheConfig): void - { - $this->attributes['secondLevelCacheConfiguration'] = $cacheConfig; - } - - public function getSecondLevelCacheConfiguration(): CacheConfiguration|null - { - if (! isset($this->attributes['secondLevelCacheConfiguration']) && $this->isSecondLevelCacheEnabled()) { - $this->attributes['secondLevelCacheConfiguration'] = new CacheConfiguration(); - } - - return $this->attributes['secondLevelCacheConfiguration'] ?? null; - } - - /** - * Returns query hints, which will be applied to every query in application - * - * @phpstan-return array - */ - public function getDefaultQueryHints(): array - { - return $this->attributes['defaultQueryHints'] ?? []; - } - - /** - * Sets array of query hints, which will be applied to every query in application - * - * @phpstan-param array $defaultQueryHints - */ - public function setDefaultQueryHints(array $defaultQueryHints): void - { - $this->attributes['defaultQueryHints'] = $defaultQueryHints; - } - - /** - * Gets the value of a default query hint. If the hint name is not recognized, FALSE is returned. - * - * @return mixed The value of the hint or FALSE, if the hint name is not recognized. - */ - public function getDefaultQueryHint(string $name): mixed - { - return $this->attributes['defaultQueryHints'][$name] ?? false; - } - - /** - * Sets a default query hint. If the hint name is not recognized, it is silently ignored. - */ - public function setDefaultQueryHint(string $name, mixed $value): void - { - $this->attributes['defaultQueryHints'][$name] = $value; - } - - /** - * Gets a list of entity class names to be ignored by the SchemaTool - * - * @return list - */ - public function getSchemaIgnoreClasses(): array - { - return $this->attributes['schemaIgnoreClasses'] ?? []; - } - - /** - * Sets a list of entity class names to be ignored by the SchemaTool - * - * @param list $schemaIgnoreClasses List of entity class names - */ - public function setSchemaIgnoreClasses(array $schemaIgnoreClasses): void - { - $this->attributes['schemaIgnoreClasses'] = $schemaIgnoreClasses; - } - - public function isNativeLazyObjectsEnabled(): bool - { - $nativeLazyObjects = $this->attributes['nativeLazyObjects'] ?? false; - - if (! $nativeLazyObjects && PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Not enabling native lazy objects is deprecated and will be impossible in Doctrine ORM 4.0.', - ); - } - - return $nativeLazyObjects; - } - - public function enableNativeLazyObjects(bool $nativeLazyObjects): void - { - if (PHP_VERSION_ID >= 80400 && ! $nativeLazyObjects) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Disabling native lazy objects is deprecated and will be impossible in Doctrine ORM 4.0.', - ); - } - - if (PHP_VERSION_ID < 80400 && $nativeLazyObjects) { - throw new LogicException('Lazy loading proxies require PHP 8.4 or higher.'); - } - - $this->attributes['nativeLazyObjects'] = $nativeLazyObjects; - } - - /** - * @deprecated lazy ghost objects are always enabled - * - * @return true - */ - public function isLazyGhostObjectEnabled(): bool - { - return true; - } - - /** @deprecated lazy ghost objects cannot be disabled */ - public function setLazyGhostObjectEnabled(bool $flag): void - { - if (! $flag) { - throw new LogicException(<<<'EXCEPTION' - The lazy ghost object feature cannot be disabled anymore. - Please remove the call to setLazyGhostObjectEnabled(false). - EXCEPTION); - } - } - - /** @deprecated rejecting ID collisions in the identity map cannot be disabled */ - public function setRejectIdCollisionInIdentityMap(bool $flag): void - { - if (! $flag) { - throw new LogicException(<<<'EXCEPTION' - Rejecting ID collisions in the identity map cannot be disabled anymore. - Please remove the call to setRejectIdCollisionInIdentityMap(false). - EXCEPTION); - } - } - - /** - * @deprecated rejecting ID collisions in the identity map is always enabled - * - * @return true - */ - public function isRejectIdCollisionInIdentityMapEnabled(): bool - { - return true; - } - - public function setEagerFetchBatchSize(int $batchSize = 100): void - { - $this->attributes['fetchModeSubselectBatchSize'] = $batchSize; - } - - public function getEagerFetchBatchSize(): int - { - return $this->attributes['fetchModeSubselectBatchSize'] ?? 100; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php b/projects/priceservice/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php deleted file mode 100644 index 6f1b041..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Decorator/EntityManagerDecorator.php +++ /dev/null @@ -1,174 +0,0 @@ - - */ -abstract class EntityManagerDecorator extends ObjectManagerDecorator implements EntityManagerInterface -{ - public function __construct(EntityManagerInterface $wrapped) - { - $this->wrapped = $wrapped; - } - - public function getRepository(string $className): EntityRepository - { - return $this->wrapped->getRepository($className); - } - - public function getMetadataFactory(): ClassMetadataFactory - { - return $this->wrapped->getMetadataFactory(); - } - - public function getClassMetadata(string $className): ClassMetadata - { - return $this->wrapped->getClassMetadata($className); - } - - public function getConnection(): Connection - { - return $this->wrapped->getConnection(); - } - - public function getExpressionBuilder(): Expr - { - return $this->wrapped->getExpressionBuilder(); - } - - public function beginTransaction(): void - { - $this->wrapped->beginTransaction(); - } - - public function wrapInTransaction(callable $func): mixed - { - return $this->wrapped->wrapInTransaction($func); - } - - public function commit(): void - { - $this->wrapped->commit(); - } - - public function rollback(): void - { - $this->wrapped->rollback(); - } - - public function createQuery(string $dql = ''): Query - { - return $this->wrapped->createQuery($dql); - } - - public function createNativeQuery(string $sql, ResultSetMapping $rsm): NativeQuery - { - return $this->wrapped->createNativeQuery($sql, $rsm); - } - - public function createQueryBuilder(): QueryBuilder - { - return $this->wrapped->createQueryBuilder(); - } - - public function getReference(string $entityName, mixed $id): object|null - { - return $this->wrapped->getReference($entityName, $id); - } - - public function close(): void - { - $this->wrapped->close(); - } - - public function lock(object $entity, LockMode|int $lockMode, DateTimeInterface|int|null $lockVersion = null): void - { - $this->wrapped->lock($entity, $lockMode, $lockVersion); - } - - public function find(string $className, mixed $id, LockMode|int|null $lockMode = null, int|null $lockVersion = null): object|null - { - return $this->wrapped->find($className, $id, $lockMode, $lockVersion); - } - - public function refresh(object $object, LockMode|int|null $lockMode = null): void - { - $this->wrapped->refresh($object, $lockMode); - } - - public function getEventManager(): EventManager - { - return $this->wrapped->getEventManager(); - } - - public function getConfiguration(): Configuration - { - return $this->wrapped->getConfiguration(); - } - - public function isOpen(): bool - { - return $this->wrapped->isOpen(); - } - - public function getUnitOfWork(): UnitOfWork - { - return $this->wrapped->getUnitOfWork(); - } - - public function newHydrator(string|int $hydrationMode): AbstractHydrator - { - return $this->wrapped->newHydrator($hydrationMode); - } - - public function getProxyFactory(): ProxyFactory - { - return $this->wrapped->getProxyFactory(); - } - - public function getFilters(): FilterCollection - { - return $this->wrapped->getFilters(); - } - - public function isFiltersStateClean(): bool - { - return $this->wrapped->isFiltersStateClean(); - } - - public function hasFilters(): bool - { - return $this->wrapped->hasFilters(); - } - - public function getCache(): Cache|null - { - return $this->wrapped->getCache(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/EntityManager.php b/projects/priceservice/vendor/doctrine/orm/src/EntityManager.php deleted file mode 100644 index 2e16039..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/EntityManager.php +++ /dev/null @@ -1,635 +0,0 @@ - 'pdo_sqlite', 'memory' => true], $config); - * $entityManager = new EntityManager($connection, $config); - * - * For more information see - * {@link http://docs.doctrine-project.org/projects/doctrine-orm/en/stable/reference/configuration.html} - * - * You should never attempt to inherit from the EntityManager: Inheritance - * is not a valid extension point for the EntityManager. Instead you - * should take a look at the {@see \Doctrine\ORM\Decorator\EntityManagerDecorator} - * and wrap your entity manager in a decorator. - * - * @final - */ -class EntityManager implements EntityManagerInterface -{ - /** - * The metadata factory, used to retrieve the ORM metadata of entity classes. - */ - private ClassMetadataFactory $metadataFactory; - - /** - * The UnitOfWork used to coordinate object-level transactions. - */ - private UnitOfWork $unitOfWork; - - /** - * The event manager that is the central point of the event system. - */ - private EventManager $eventManager; - - /** - * The proxy factory used to create dynamic proxies. - */ - private ProxyFactory $proxyFactory; - - /** - * The repository factory used to create dynamic repositories. - */ - private RepositoryFactory $repositoryFactory; - - /** - * The expression builder instance used to generate query expressions. - */ - private Expr|null $expressionBuilder = null; - - /** - * Whether the EntityManager is closed or not. - */ - private bool $closed = false; - - /** - * Collection of query filters. - */ - private FilterCollection|null $filterCollection = null; - - /** - * The second level cache regions API. - */ - private Cache|null $cache = null; - - /** - * Creates a new EntityManager that operates on the given database connection - * and uses the given Configuration and EventManager implementations. - * - * @param Connection $conn The database connection used by the EntityManager. - */ - public function __construct( - private Connection $conn, - private Configuration $config, - EventManager|null $eventManager = null, - ) { - if (! $config->getMetadataDriverImpl()) { - throw MissingMappingDriverImplementation::create(); - } - - $this->eventManager = $eventManager - ?? (method_exists($conn, 'getEventManager') - ? $conn->getEventManager() - : new EventManager() - ); - - $metadataFactoryClassName = $config->getClassMetadataFactoryName(); - - $this->metadataFactory = new $metadataFactoryClassName(); - $this->metadataFactory->setEntityManager($this); - - $this->configureMetadataCache(); - - $this->repositoryFactory = $config->getRepositoryFactory(); - $this->unitOfWork = new UnitOfWork($this); - if ($config->isNativeLazyObjectsEnabled()) { - $this->proxyFactory = new ProxyFactory($this); - } else { - $this->proxyFactory = new ProxyFactory( - $this, - $config->getProxyDir(), - $config->getProxyNamespace(), - $config->getAutoGenerateProxyClasses(), - ); - } - - if ($config->isSecondLevelCacheEnabled()) { - $cacheConfig = $config->getSecondLevelCacheConfiguration(); - $cacheFactory = $cacheConfig->getCacheFactory(); - $this->cache = $cacheFactory->createCache($this); - } - } - - public function getConnection(): Connection - { - return $this->conn; - } - - public function getMetadataFactory(): ClassMetadataFactory - { - return $this->metadataFactory; - } - - public function getExpressionBuilder(): Expr - { - return $this->expressionBuilder ??= new Expr(); - } - - public function beginTransaction(): void - { - $this->conn->beginTransaction(); - } - - public function getCache(): Cache|null - { - return $this->cache; - } - - public function wrapInTransaction(callable $func): mixed - { - $this->conn->beginTransaction(); - - $successful = false; - - try { - $return = $func($this); - - $this->flush(); - $this->conn->commit(); - - $successful = true; - - return $return; - } finally { - if (! $successful) { - $this->close(); - if ($this->conn->isTransactionActive()) { - $this->conn->rollBack(); - } - } - } - } - - public function commit(): void - { - $this->conn->commit(); - } - - public function rollback(): void - { - $this->conn->rollBack(); - } - - /** - * Returns the ORM metadata descriptor for a class. - * - * Internal note: Performance-sensitive method. - * - * {@inheritDoc} - */ - public function getClassMetadata(string $className): Mapping\ClassMetadata - { - return $this->metadataFactory->getMetadataFor($className); - } - - public function createQuery(string $dql = ''): Query - { - $query = new Query($this); - - if (! empty($dql)) { - $query->setDQL($dql); - } - - return $query; - } - - public function createNativeQuery(string $sql, ResultSetMapping $rsm): NativeQuery - { - $query = new NativeQuery($this); - - $query->setSQL($sql); - $query->setResultSetMapping($rsm); - - return $query; - } - - public function createQueryBuilder(): QueryBuilder - { - return new QueryBuilder($this); - } - - /** - * Flushes all changes to objects that have been queued up to now to the database. - * This effectively synchronizes the in-memory state of managed objects with the - * database. - * - * If an entity is explicitly passed to this method only this entity and - * the cascade-persist semantics + scheduled inserts/removals are synchronized. - * - * @throws OptimisticLockException If a version check on an entity that - * makes use of optimistic locking fails. - * @throws ORMException - */ - public function flush(): void - { - $this->errorIfClosed(); - $this->unitOfWork->commit(); - } - - /** - * {@inheritDoc} - */ - public function find($className, mixed $id, LockMode|int|null $lockMode = null, int|null $lockVersion = null): object|null - { - $class = $this->metadataFactory->getMetadataFor(ltrim($className, '\\')); - - if ($lockMode !== null) { - $this->checkLockRequirements($lockMode, $class); - } - - if (! is_array($id)) { - if ($class->isIdentifierComposite) { - throw ORMInvalidArgumentException::invalidCompositeIdentifier(); - } - - $id = [$class->identifier[0] => $id]; - } - - foreach ($id as $i => $value) { - if (is_object($value)) { - $className = DefaultProxyClassNameResolver::getClass($value); - if ($this->metadataFactory->hasMetadataFor($className)) { - $id[$i] = $this->unitOfWork->getSingleIdentifierValue($value); - - if ($id[$i] === null) { - throw ORMInvalidArgumentException::invalidIdentifierBindingEntity($className); - } - } - } - } - - $sortedId = []; - - foreach ($class->identifier as $identifier) { - if (! isset($id[$identifier])) { - throw MissingIdentifierField::fromFieldAndClass($identifier, $class->name); - } - - if ($id[$identifier] instanceof BackedEnum) { - $sortedId[$identifier] = $id[$identifier]->value; - } else { - $sortedId[$identifier] = $id[$identifier]; - } - - unset($id[$identifier]); - } - - if ($id) { - throw UnrecognizedIdentifierFields::fromClassAndFieldNames($class->name, array_keys($id)); - } - - $unitOfWork = $this->getUnitOfWork(); - - $entity = $unitOfWork->tryGetById($sortedId, $class->rootEntityName); - - // Check identity map first - if ($entity !== false) { - if (! ($entity instanceof $class->name)) { - return null; - } - - switch (true) { - case $lockMode === LockMode::OPTIMISTIC: - $this->lock($entity, $lockMode, $lockVersion); - break; - - case $lockMode === LockMode::NONE: - case $lockMode === LockMode::PESSIMISTIC_READ: - case $lockMode === LockMode::PESSIMISTIC_WRITE: - $persister = $unitOfWork->getEntityPersister($class->name); - $persister->refresh($sortedId, $entity, $lockMode); - break; - } - - return $entity; // Hit! - } - - $persister = $unitOfWork->getEntityPersister($class->name); - - switch (true) { - case $lockMode === LockMode::OPTIMISTIC: - $entity = $persister->load($sortedId); - - if ($entity !== null) { - $unitOfWork->lock($entity, $lockMode, $lockVersion); - } - - return $entity; - - case $lockMode === LockMode::PESSIMISTIC_READ: - case $lockMode === LockMode::PESSIMISTIC_WRITE: - return $persister->load($sortedId, null, null, [], $lockMode); - - default: - return $persister->loadById($sortedId); - } - } - - public function getReference(string $entityName, mixed $id): object|null - { - $class = $this->metadataFactory->getMetadataFor(ltrim($entityName, '\\')); - - if (! is_array($id)) { - $id = [$class->identifier[0] => $id]; - } - - $sortedId = []; - - foreach ($class->identifier as $identifier) { - if (! isset($id[$identifier])) { - throw MissingIdentifierField::fromFieldAndClass($identifier, $class->name); - } - - $sortedId[$identifier] = $id[$identifier]; - unset($id[$identifier]); - } - - if ($id) { - throw UnrecognizedIdentifierFields::fromClassAndFieldNames($class->name, array_keys($id)); - } - - $entity = $this->unitOfWork->tryGetById($sortedId, $class->rootEntityName); - - // Check identity map first, if its already in there just return it. - if ($entity !== false) { - return $entity instanceof $class->name ? $entity : null; - } - - if ($class->subClasses) { - return $this->find($entityName, $sortedId); - } - - $entity = $this->proxyFactory->getProxy($class->name, $sortedId); - - $this->unitOfWork->registerManaged($entity, $sortedId, []); - - return $entity; - } - - /** - * Clears the EntityManager. All entities that are currently managed - * by this EntityManager become detached. - */ - public function clear(): void - { - $this->unitOfWork->clear(); - } - - public function close(): void - { - $this->clear(); - - $this->closed = true; - } - - /** - * Tells the EntityManager to make an instance managed and persistent. - * - * The entity will be entered into the database at or before transaction - * commit or as a result of the flush operation. - * - * NOTE: The persist operation always considers entities that are not yet known to - * this EntityManager as NEW. Do not pass detached entities to the persist operation. - * - * @throws ORMInvalidArgumentException - * @throws ORMException - */ - public function persist(object $object): void - { - $this->errorIfClosed(); - - $this->unitOfWork->persist($object); - } - - /** - * Removes an entity instance. - * - * A removed entity will be removed from the database at or before transaction commit - * or as a result of the flush operation. - * - * @throws ORMInvalidArgumentException - * @throws ORMException - */ - public function remove(object $object): void - { - $this->errorIfClosed(); - - $this->unitOfWork->remove($object); - } - - public function refresh(object $object, LockMode|int|null $lockMode = null): void - { - $this->errorIfClosed(); - - $this->unitOfWork->refresh($object, $lockMode); - } - - /** - * Detaches an entity from the EntityManager, causing a managed entity to - * become detached. Unflushed changes made to the entity if any - * (including removal of the entity), will not be synchronized to the database. - * Entities which previously referenced the detached entity will continue to - * reference it. - * - * @throws ORMInvalidArgumentException - */ - public function detach(object $object): void - { - $this->unitOfWork->detach($object); - } - - public function lock(object $entity, LockMode|int $lockMode, DateTimeInterface|int|null $lockVersion = null): void - { - $this->unitOfWork->lock($entity, $lockMode, $lockVersion); - } - - /** - * Gets the repository for an entity class. - * - * @param class-string $className The name of the entity. - * - * @return EntityRepository The repository class. - * - * @template T of object - */ - public function getRepository(string $className): EntityRepository - { - return $this->repositoryFactory->getRepository($this, $className); - } - - /** - * Determines whether an entity instance is managed in this EntityManager. - * - * @return bool TRUE if this EntityManager currently manages the given entity, FALSE otherwise. - */ - public function contains(object $object): bool - { - return $this->unitOfWork->isScheduledForInsert($object) - || $this->unitOfWork->isInIdentityMap($object) - && ! $this->unitOfWork->isScheduledForDelete($object); - } - - public function getEventManager(): EventManager - { - return $this->eventManager; - } - - public function getConfiguration(): Configuration - { - return $this->config; - } - - /** - * Throws an exception if the EntityManager is closed or currently not active. - * - * @throws EntityManagerClosed If the EntityManager is closed. - */ - private function errorIfClosed(): void - { - if ($this->closed) { - throw EntityManagerClosed::create(); - } - } - - public function isOpen(): bool - { - return ! $this->closed; - } - - public function getUnitOfWork(): UnitOfWork - { - return $this->unitOfWork; - } - - public function newHydrator(string|int $hydrationMode): AbstractHydrator - { - return match ($hydrationMode) { - Query::HYDRATE_OBJECT => new Internal\Hydration\ObjectHydrator($this), - Query::HYDRATE_ARRAY => new Internal\Hydration\ArrayHydrator($this), - Query::HYDRATE_SCALAR => new Internal\Hydration\ScalarHydrator($this), - Query::HYDRATE_SINGLE_SCALAR => new Internal\Hydration\SingleScalarHydrator($this), - Query::HYDRATE_SIMPLEOBJECT => new Internal\Hydration\SimpleObjectHydrator($this), - Query::HYDRATE_SCALAR_COLUMN => new Internal\Hydration\ScalarColumnHydrator($this), - default => $this->createCustomHydrator((string) $hydrationMode), - }; - } - - public function getProxyFactory(): ProxyFactory - { - return $this->proxyFactory; - } - - public function initializeObject(object $obj): void - { - $this->unitOfWork->initializeObject($obj); - } - - /** - * {@inheritDoc} - */ - public function isUninitializedObject($value): bool - { - return $this->unitOfWork->isUninitializedObject($value); - } - - public function getFilters(): FilterCollection - { - return $this->filterCollection ??= new FilterCollection($this); - } - - public function isFiltersStateClean(): bool - { - return $this->filterCollection === null || $this->filterCollection->isClean(); - } - - public function hasFilters(): bool - { - return $this->filterCollection !== null; - } - - /** - * @phpstan-param LockMode::* $lockMode - * - * @throws OptimisticLockException - * @throws TransactionRequiredException - */ - private function checkLockRequirements(LockMode|int $lockMode, ClassMetadata $class): void - { - switch ($lockMode) { - case LockMode::OPTIMISTIC: - if (! $class->isVersioned) { - throw OptimisticLockException::notVersioned($class->name); - } - - break; - case LockMode::PESSIMISTIC_READ: - case LockMode::PESSIMISTIC_WRITE: - if (! $this->getConnection()->isTransactionActive()) { - throw TransactionRequiredException::transactionRequired(); - } - } - } - - private function configureMetadataCache(): void - { - $metadataCache = $this->config->getMetadataCache(); - if (! $metadataCache) { - return; - } - - $this->metadataFactory->setCache($metadataCache); - } - - private function createCustomHydrator(string $hydrationMode): AbstractHydrator - { - $class = $this->config->getCustomHydrationMode($hydrationMode); - - if ($class !== null) { - return new $class($this); - } - - throw InvalidHydrationMode::fromMode($hydrationMode); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/EntityManagerInterface.php b/projects/priceservice/vendor/doctrine/orm/src/EntityManagerInterface.php deleted file mode 100644 index 03dbdbb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/EntityManagerInterface.php +++ /dev/null @@ -1,241 +0,0 @@ - $className - * - * @return EntityRepository - * - * @template T of object - */ - public function getRepository(string $className): EntityRepository; - - /** - * Returns the cache API for managing the second level cache regions or NULL if the cache is not enabled. - */ - public function getCache(): Cache|null; - - /** - * Gets the database connection object used by the EntityManager. - */ - public function getConnection(): Connection; - - public function getMetadataFactory(): ClassMetadataFactory; - - /** - * Gets an ExpressionBuilder used for object-oriented construction of query expressions. - * - * Example: - * - * - * $qb = $em->createQueryBuilder(); - * $expr = $em->getExpressionBuilder(); - * $qb->select('u')->from('User', 'u') - * ->where($expr->orX($expr->eq('u.id', 1), $expr->eq('u.id', 2))); - * - */ - public function getExpressionBuilder(): Expr; - - /** - * Starts a transaction on the underlying database connection. - */ - public function beginTransaction(): void; - - /** - * Executes a function in a transaction. - * - * The function gets passed this EntityManager instance as an (optional) parameter. - * - * {@link flush} is invoked prior to transaction commit. - * - * If an exception occurs during execution of the function or flushing or transaction commit, - * the transaction is rolled back, the EntityManager closed and the exception re-thrown. - * - * @phpstan-param callable(self): T $func The function to execute transactionally. - * - * @return mixed The value returned from the closure. - * @phpstan-return T - * - * @template T - */ - public function wrapInTransaction(callable $func): mixed; - - /** - * Commits a transaction on the underlying database connection. - */ - public function commit(): void; - - /** - * Performs a rollback on the underlying database connection. - */ - public function rollback(): void; - - /** - * Creates a new Query object. - * - * @param string $dql The DQL string. - */ - public function createQuery(string $dql = ''): Query; - - /** - * Creates a native SQL query. - */ - public function createNativeQuery(string $sql, ResultSetMapping $rsm): NativeQuery; - - /** - * Create a QueryBuilder instance - */ - public function createQueryBuilder(): QueryBuilder; - - /** - * Finds an Entity by its identifier. - * - * @param string $className The class name of the entity to find. - * @param mixed $id The identity of the entity to find. - * @param LockMode|int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants - * or NULL if no specific lock mode should be used - * during the search. - * @param int|null $lockVersion The version of the entity to find when using - * optimistic locking. - * @phpstan-param class-string $className - * @phpstan-param LockMode::*|null $lockMode - * - * @return object|null The entity instance or NULL if the entity can not be found. - * @phpstan-return T|null - * - * @throws OptimisticLockException - * @throws ORMInvalidArgumentException - * @throws TransactionRequiredException - * @throws ORMException - * - * @template T of object - */ - public function find(string $className, mixed $id, LockMode|int|null $lockMode = null, int|null $lockVersion = null): object|null; - - /** - * Refreshes the persistent state of an object from the database, - * overriding any local changes that have not yet been persisted. - * - * @param LockMode|int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants - * or NULL if no specific lock mode should be used - * during the search. - * @phpstan-param LockMode::*|null $lockMode - * - * @throws ORMInvalidArgumentException - * @throws ORMException - * @throws TransactionRequiredException - */ - public function refresh(object $object, LockMode|int|null $lockMode = null): void; - - /** - * Gets a reference to the entity identified by the given type and identifier - * without actually loading it, if the entity is not yet loaded. - * - * @param class-string $entityName The name of the entity type. - * @param mixed $id The entity identifier. - * - * @return T|null The entity reference. - * - * @throws ORMException - * - * @template T of object - */ - public function getReference(string $entityName, mixed $id): object|null; - - /** - * Closes the EntityManager. All entities that are currently managed - * by this EntityManager become detached. The EntityManager may no longer - * be used after it is closed. - */ - public function close(): void; - - /** - * Acquire a lock on the given entity. - * - * @phpstan-param LockMode::* $lockMode - * - * @throws OptimisticLockException - * @throws PessimisticLockException - */ - public function lock(object $entity, LockMode|int $lockMode, DateTimeInterface|int|null $lockVersion = null): void; - - /** - * Gets the EventManager used by the EntityManager. - */ - public function getEventManager(): EventManager; - - /** - * Gets the Configuration used by the EntityManager. - */ - public function getConfiguration(): Configuration; - - /** - * Check if the Entity manager is open or closed. - */ - public function isOpen(): bool; - - /** - * Gets the UnitOfWork used by the EntityManager to coordinate operations. - */ - public function getUnitOfWork(): UnitOfWork; - - /** - * Create a new instance for the given hydration mode. - * - * @phpstan-param string|AbstractQuery::HYDRATE_* $hydrationMode - * - * @throws ORMException - */ - public function newHydrator(string|int $hydrationMode): AbstractHydrator; - - /** - * Gets the proxy factory used by the EntityManager to create entity proxies. - */ - public function getProxyFactory(): ProxyFactory; - - /** - * Gets the enabled filters. - */ - public function getFilters(): FilterCollection; - - /** - * Checks whether the state of the filter collection is clean. - */ - public function isFiltersStateClean(): bool; - - /** - * Checks whether the Entity Manager has filters. - */ - public function hasFilters(): bool; - - /** - * {@inheritDoc} - * - * @param string|class-string $className - * - * @phpstan-return ($className is class-string ? Mapping\ClassMetadata : Mapping\ClassMetadata) - * - * @phpstan-template T of object - */ - public function getClassMetadata(string $className): Mapping\ClassMetadata; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/EntityNotFoundException.php b/projects/priceservice/vendor/doctrine/orm/src/EntityNotFoundException.php deleted file mode 100644 index 142dc8a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/EntityNotFoundException.php +++ /dev/null @@ -1,46 +0,0 @@ - $value) { - $ids[] = $key . '(' . $value . ')'; - } - - return new self( - 'Entity of type \'' . $className . '\'' . ($ids ? ' for IDs ' . implode(', ', $ids) : '') . ' was not found', - ); - } - - /** - * Instance for which no identifier can be found - */ - public static function noIdentifierFound(string $className): self - { - return new self(sprintf( - 'Unable to find "%s" entity identifier associated with the UnitOfWork', - $className, - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/EntityRepository.php b/projects/priceservice/vendor/doctrine/orm/src/EntityRepository.php deleted file mode 100644 index fb1315b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/EntityRepository.php +++ /dev/null @@ -1,237 +0,0 @@ - - * @template-implements ObjectRepository - */ -class EntityRepository implements ObjectRepository, Selectable -{ - /** @var class-string */ - private readonly string $entityName; - private static Inflector|null $inflector = null; - - /** @param ClassMetadata $class */ - public function __construct( - private readonly EntityManagerInterface $em, - private readonly ClassMetadata $class, - ) { - $this->entityName = $class->name; - } - - /** - * Creates a new QueryBuilder instance that is prepopulated for this entity name. - */ - public function createQueryBuilder(string $alias, string|null $indexBy = null): QueryBuilder - { - return $this->em->createQueryBuilder() - ->select($alias) - ->from($this->entityName, $alias, $indexBy); - } - - /** - * Creates a new result set mapping builder for this entity. - * - * The column naming strategy is "INCREMENT". - */ - public function createResultSetMappingBuilder(string $alias): ResultSetMappingBuilder - { - $rsm = new ResultSetMappingBuilder($this->em, ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT); - $rsm->addRootEntityFromClassMetadata($this->entityName, $alias); - - return $rsm; - } - - /** - * Finds an entity by its primary key / identifier. - * - * @param LockMode|int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants - * or NULL if no specific lock mode should be used - * during the search. - * @phpstan-param LockMode::*|null $lockMode - * - * @return object|null The entity instance or NULL if the entity can not be found. - * @phpstan-return ?T - */ - public function find(mixed $id, LockMode|int|null $lockMode = null, int|null $lockVersion = null): object|null - { - return $this->em->find($this->entityName, $id, $lockMode, $lockVersion); - } - - /** - * Finds all entities in the repository. - * - * @phpstan-return list The entities. - */ - public function findAll(): array - { - return $this->findBy([]); - } - - /** - * Finds entities by a set of criteria. - * - * {@inheritDoc} - * - * @phpstan-return list - */ - public function findBy(array $criteria, array|null $orderBy = null, int|null $limit = null, int|null $offset = null): array - { - $persister = $this->em->getUnitOfWork()->getEntityPersister($this->entityName); - - return $persister->loadAll($criteria, $orderBy, $limit, $offset); - } - - /** - * Finds a single entity by a set of criteria. - * - * @phpstan-param array $criteria - * @phpstan-param array|null $orderBy - * - * @phpstan-return T|null - */ - public function findOneBy(array $criteria, array|null $orderBy = null): object|null - { - $persister = $this->em->getUnitOfWork()->getEntityPersister($this->entityName); - - return $persister->load($criteria, null, null, [], null, 1, $orderBy); - } - - /** - * Counts entities by a set of criteria. - * - * @phpstan-param array $criteria - * - * @return int The cardinality of the objects that match the given criteria. - * @phpstan-return 0|positive-int - * - * @todo Add this method to `ObjectRepository` interface in the next major release - */ - public function count(array $criteria = []): int - { - return $this->em->getUnitOfWork()->getEntityPersister($this->entityName)->count($criteria); - } - - /** - * Adds support for magic method calls. - * - * @param mixed[] $arguments - * @phpstan-param list $arguments - * - * @throws BadMethodCallException If the method called is invalid. - */ - public function __call(string $method, array $arguments): mixed - { - if (str_starts_with($method, 'findBy')) { - return $this->resolveMagicCall('findBy', substr($method, 6), $arguments); - } - - if (str_starts_with($method, 'findOneBy')) { - return $this->resolveMagicCall('findOneBy', substr($method, 9), $arguments); - } - - if (str_starts_with($method, 'countBy')) { - return $this->resolveMagicCall('count', substr($method, 7), $arguments); - } - - throw new BadMethodCallException(sprintf( - 'Undefined method "%s". The method name must start with ' . - 'either findBy, findOneBy or countBy!', - $method, - )); - } - - /** @return class-string */ - protected function getEntityName(): string - { - return $this->entityName; - } - - public function getClassName(): string - { - return $this->getEntityName(); - } - - protected function getEntityManager(): EntityManagerInterface - { - return $this->em; - } - - /** @phpstan-return ClassMetadata */ - protected function getClassMetadata(): ClassMetadata - { - return $this->class; - } - - /** - * Select all elements from a selectable that match the expression and - * return a new collection containing these elements. - * - * @phpstan-return AbstractLazyCollection&Selectable - */ - public function matching(Criteria $criteria): AbstractLazyCollection&Selectable - { - $persister = $this->em->getUnitOfWork()->getEntityPersister($this->entityName); - - return new LazyCriteriaCollection($persister, $criteria); - } - - /** - * Resolves a magic method call to the proper existent method at `EntityRepository`. - * - * @param string $method The method to call - * @param string $by The property name used as condition - * @phpstan-param list $arguments The arguments to pass at method call - * - * @throws InvalidMagicMethodCall If the method called is invalid or the - * requested field/association does not exist. - */ - private function resolveMagicCall(string $method, string $by, array $arguments): mixed - { - if (! $arguments) { - throw InvalidMagicMethodCall::onMissingParameter($method . $by); - } - - self::$inflector ??= InflectorFactory::create()->build(); - - $fieldName = lcfirst(self::$inflector->classify($by)); - - if (! ($this->class->hasField($fieldName) || $this->class->hasAssociation($fieldName))) { - throw InvalidMagicMethodCall::becauseFieldNotFoundIn( - $this->entityName, - $fieldName, - $method . $by, - ); - } - - return $this->$method([$fieldName => $arguments[0]], ...array_slice($arguments, 1)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/ListenersInvoker.php b/projects/priceservice/vendor/doctrine/orm/src/Event/ListenersInvoker.php deleted file mode 100644 index b7e0691..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/ListenersInvoker.php +++ /dev/null @@ -1,98 +0,0 @@ -eventManager = $em->getEventManager(); - $this->resolver = $em->getConfiguration()->getEntityListenerResolver(); - } - - /** - * Get the subscribed event systems - * - * @param ClassMetadata $metadata The entity metadata. - * @param string $eventName The entity lifecycle event. - * - * @phpstan-return int-mask-of Bitmask of subscribed event systems. - */ - public function getSubscribedSystems(ClassMetadata $metadata, string $eventName): int - { - $invoke = self::INVOKE_NONE; - - if (isset($metadata->lifecycleCallbacks[$eventName])) { - $invoke |= self::INVOKE_CALLBACKS; - } - - if (isset($metadata->entityListeners[$eventName])) { - $invoke |= self::INVOKE_LISTENERS; - } - - if ($this->eventManager->hasListeners($eventName)) { - $invoke |= self::INVOKE_MANAGER; - } - - return $invoke; - } - - /** - * Dispatches the lifecycle event of the given entity. - * - * @param ClassMetadata $metadata The entity metadata. - * @param string $eventName The entity lifecycle event. - * @param object $entity The Entity on which the event occurred. - * @param EventArgs $event The Event args. - * @phpstan-param int-mask-of $invoke Bitmask to invoke listeners. - */ - public function invoke( - ClassMetadata $metadata, - string $eventName, - object $entity, - EventArgs $event, - int $invoke, - ): void { - if ($invoke & self::INVOKE_CALLBACKS) { - foreach ($metadata->lifecycleCallbacks[$eventName] as $callback) { - $entity->$callback($event); - } - } - - if ($invoke & self::INVOKE_LISTENERS) { - foreach ($metadata->entityListeners[$eventName] as $listener) { - $class = $listener['class']; - $method = $listener['method']; - $instance = $this->resolver->resolve($class); - - $instance->$method($entity, $event); - } - } - - if ($invoke & self::INVOKE_MANAGER) { - $this->eventManager->dispatchEvent($eventName, $event); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/LoadClassMetadataEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/LoadClassMetadataEventArgs.php deleted file mode 100644 index b450616..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/LoadClassMetadataEventArgs.php +++ /dev/null @@ -1,25 +0,0 @@ -, EntityManagerInterface> - */ -class LoadClassMetadataEventArgs extends BaseLoadClassMetadataEventArgs -{ - /** - * Retrieve associated EntityManager. - */ - public function getEntityManager(): EntityManagerInterface - { - return $this->getObjectManager(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/OnClassMetadataNotFoundEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/OnClassMetadataNotFoundEventArgs.php deleted file mode 100644 index 762c083..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/OnClassMetadataNotFoundEventArgs.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ -class OnClassMetadataNotFoundEventArgs extends ManagerEventArgs -{ - private ClassMetadata|null $foundMetadata = null; - - /** @param EntityManagerInterface $objectManager */ - public function __construct( - private readonly string $className, - ObjectManager $objectManager, - ) { - parent::__construct($objectManager); - } - - public function setFoundMetadata(ClassMetadata|null $classMetadata): void - { - $this->foundMetadata = $classMetadata; - } - - public function getFoundMetadata(): ClassMetadata|null - { - return $this->foundMetadata; - } - - /** - * Retrieve class name for which a failed metadata fetch attempt was executed - */ - public function getClassName(): string - { - return $this->className; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/OnClearEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/OnClearEventArgs.php deleted file mode 100644 index 29a42f2..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/OnClearEventArgs.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class OnClearEventArgs extends BaseOnClearEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/OnFlushEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/OnFlushEventArgs.php deleted file mode 100644 index b0594ca..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/OnFlushEventArgs.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class OnFlushEventArgs extends ManagerEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PostFlushEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PostFlushEventArgs.php deleted file mode 100644 index ca41ba8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PostFlushEventArgs.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class PostFlushEventArgs extends ManagerEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PostLoadEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PostLoadEventArgs.php deleted file mode 100644 index 8344e68..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PostLoadEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PostLoadEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PostPersistEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PostPersistEventArgs.php deleted file mode 100644 index 926ac1c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PostPersistEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PostPersistEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PostRemoveEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PostRemoveEventArgs.php deleted file mode 100644 index 8bf857e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PostRemoveEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PostRemoveEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PostUpdateEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PostUpdateEventArgs.php deleted file mode 100644 index c9ff004..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PostUpdateEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PostUpdateEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PreFlushEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PreFlushEventArgs.php deleted file mode 100644 index 671535c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PreFlushEventArgs.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class PreFlushEventArgs extends ManagerEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PrePersistEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PrePersistEventArgs.php deleted file mode 100644 index e70c3cf..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PrePersistEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PrePersistEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PreRemoveEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PreRemoveEventArgs.php deleted file mode 100644 index 3af0d02..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PreRemoveEventArgs.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class PreRemoveEventArgs extends LifecycleEventArgs -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Event/PreUpdateEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Event/PreUpdateEventArgs.php deleted file mode 100644 index d500334..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Event/PreUpdateEventArgs.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -class PreUpdateEventArgs extends LifecycleEventArgs -{ - /** @var array */ - private array $entityChangeSet; - - /** - * @param mixed[][] $changeSet - * @phpstan-param array $changeSet - */ - public function __construct(object $entity, EntityManagerInterface $em, array &$changeSet) - { - parent::__construct($entity, $em); - - $this->entityChangeSet = &$changeSet; - } - - /** - * Retrieves entity changeset. - * - * @return mixed[][] - * @phpstan-return array - */ - public function getEntityChangeSet(): array - { - return $this->entityChangeSet; - } - - /** - * Checks if field has a changeset. - */ - public function hasChangedField(string $field): bool - { - return isset($this->entityChangeSet[$field]); - } - - /** - * Gets the old value of the changeset of the changed field. - */ - public function getOldValue(string $field): mixed - { - $this->assertValidField($field); - - return $this->entityChangeSet[$field][0]; - } - - /** - * Gets the new value of the changeset of the changed field. - */ - public function getNewValue(string $field): mixed - { - $this->assertValidField($field); - - return $this->entityChangeSet[$field][1]; - } - - /** - * Sets the new value of this field. - */ - public function setNewValue(string $field, mixed $value): void - { - $this->assertValidField($field); - - $this->entityChangeSet[$field][1] = $value; - } - - /** - * Asserts the field exists in changeset. - * - * @throws InvalidArgumentException - */ - private function assertValidField(string $field): void - { - if (! isset($this->entityChangeSet[$field])) { - throw new InvalidArgumentException(sprintf( - 'Field "%s" is not a valid field of the entity "%s" in PreUpdateEventArgs.', - $field, - get_debug_type($this->getObject()), - )); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Events.php b/projects/priceservice/vendor/doctrine/orm/src/Events.php deleted file mode 100644 index 740290b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Events.php +++ /dev/null @@ -1,123 +0,0 @@ -getClassMetadata($entity::class); - $idFields = $class->getIdentifierFieldNames(); - $identifier = []; - - foreach ($idFields as $idField) { - $value = $class->getFieldValue($entity, $idField); - - if (! isset($value)) { - throw EntityMissingAssignedId::forField($entity, $idField); - } - - if (isset($class->associationMappings[$idField])) { - // NOTE: Single Columns as associated identifiers only allowed - this constraint it is enforced. - $value = $em->getUnitOfWork()->getSingleIdentifierValue($value); - } - - $identifier[$idField] = $value; - } - - return $identifier; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Id/BigIntegerIdentityGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Id/BigIntegerIdentityGenerator.php deleted file mode 100644 index 762a7cb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Id/BigIntegerIdentityGenerator.php +++ /dev/null @@ -1,25 +0,0 @@ -getConnection()->lastInsertId(); - } - - public function isPostInsertGenerator(): bool - { - return true; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Id/IdentityGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Id/IdentityGenerator.php deleted file mode 100644 index 4610f66..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Id/IdentityGenerator.php +++ /dev/null @@ -1,25 +0,0 @@ -getConnection()->lastInsertId(); - } - - public function isPostInsertGenerator(): bool - { - return true; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Id/SequenceGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Id/SequenceGenerator.php deleted file mode 100644 index 659bb58..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Id/SequenceGenerator.php +++ /dev/null @@ -1,112 +0,0 @@ -maxValue === null || $this->nextValue === $this->maxValue) { - // Allocate new values - $connection = $em->getConnection(); - $sql = $connection->getDatabasePlatform()->getSequenceNextValSQL($this->sequenceName); - - if ($connection instanceof PrimaryReadReplicaConnection) { - $connection->ensureConnectedToPrimary(); - } - - $this->nextValue = (int) $connection->fetchOne($sql); - $this->maxValue = $this->nextValue + $this->allocationSize; - } - - return $this->nextValue++; - } - - /** - * Gets the maximum value of the currently allocated bag of values. - */ - public function getCurrentMaxValue(): int|null - { - return $this->maxValue; - } - - /** - * Gets the next value that will be returned by generate(). - */ - public function getNextValue(): int - { - return $this->nextValue; - } - - /** @deprecated without replacement. */ - final public function serialize(): string - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11468', - '%s() is deprecated, use __serialize() instead. %s won\'t implement the Serializable interface anymore in ORM 4.', - __METHOD__, - self::class, - ); - - return serialize($this->__serialize()); - } - - /** @return array */ - public function __serialize(): array - { - return [ - 'allocationSize' => $this->allocationSize, - 'sequenceName' => $this->sequenceName, - ]; - } - - /** @deprecated without replacement. */ - final public function unserialize(string $serialized): void - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11468', - '%s() is deprecated, use __unserialize() instead. %s won\'t implement the Serializable interface anymore in ORM 4.', - __METHOD__, - self::class, - ); - - $this->__unserialize(unserialize($serialized)); - } - - /** @param array $data */ - public function __unserialize(array $data): void - { - $this->sequenceName = $data['sequenceName']; - $this->allocationSize = $data['allocationSize']; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php deleted file mode 100644 index 6b4124a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php +++ /dev/null @@ -1,605 +0,0 @@ -> - */ - protected array $metadataCache = []; - - /** - * The cache used during row-by-row hydration. - * - * @var array - */ - protected array $cache = []; - - /** - * The statement that provides the data to hydrate. - */ - protected Result|null $stmt = null; - - /** - * The query hints. - * - * @var array - */ - protected array $hints = []; - - /** - * Initializes a new instance of a class derived from AbstractHydrator. - */ - public function __construct(protected EntityManagerInterface $em) - { - $this->platform = $em->getConnection()->getDatabasePlatform(); - $this->uow = $em->getUnitOfWork(); - } - - /** - * Initiates a row-by-row hydration. - * - * @phpstan-param array $hints - * - * @return Generator - * - * @final - */ - final public function toIterable(Result $stmt, ResultSetMapping $resultSetMapping, array $hints = []): Generator - { - $this->stmt = $stmt; - $this->rsm = $resultSetMapping; - $this->hints = $hints; - - $evm = $this->em->getEventManager(); - - $evm->addEventListener([Events::onClear], $this); - - $this->prepare(); - - try { - while (true) { - $row = $this->statement()->fetchAssociative(); - - if ($row === false) { - break; - } - - $result = []; - - $this->hydrateRowData($row, $result); - - $this->cleanupAfterRowIteration(); - if (count($result) === 1) { - if (count($resultSetMapping->indexByMap) === 0) { - yield end($result); - } else { - yield from $result; - } - } else { - yield $result; - } - } - } finally { - $this->cleanup(); - } - } - - final protected function statement(): Result - { - if ($this->stmt === null) { - throw new LogicException('Uninitialized _stmt property'); - } - - return $this->stmt; - } - - final protected function resultSetMapping(): ResultSetMapping - { - if ($this->rsm === null) { - throw new LogicException('Uninitialized _rsm property'); - } - - return $this->rsm; - } - - /** - * Hydrates all rows returned by the passed statement instance at once. - * - * @phpstan-param array $hints - */ - public function hydrateAll(Result $stmt, ResultSetMapping $resultSetMapping, array $hints = []): mixed - { - $this->stmt = $stmt; - $this->rsm = $resultSetMapping; - $this->hints = $hints; - - $this->em->getEventManager()->addEventListener([Events::onClear], $this); - $this->prepare(); - - try { - $result = $this->hydrateAllData(); - } finally { - $this->cleanup(); - } - - return $result; - } - - /** - * When executed in a hydrate() loop we have to clear internal state to - * decrease memory consumption. - */ - public function onClear(mixed $eventArgs): void - { - } - - /** - * Executes one-time preparation tasks, once each time hydration is started - * through {@link hydrateAll} or {@link toIterable()}. - */ - protected function prepare(): void - { - } - - /** - * Executes one-time cleanup tasks at the end of a hydration that was initiated - * through {@link hydrateAll} or {@link toIterable()}. - */ - protected function cleanup(): void - { - $this->statement()->free(); - - $this->stmt = null; - $this->rsm = null; - $this->cache = []; - $this->metadataCache = []; - - $this - ->em - ->getEventManager() - ->removeEventListener([Events::onClear], $this); - } - - protected function cleanupAfterRowIteration(): void - { - } - - /** - * Hydrates a single row from the current statement instance. - * - * Template method. - * - * @param mixed[] $row The row data. - * @param mixed[] $result The result to fill. - * - * @throws HydrationException - */ - protected function hydrateRowData(array $row, array &$result): void - { - throw new HydrationException('hydrateRowData() not implemented by this hydrator.'); - } - - /** - * Hydrates all rows from the current statement instance at once. - */ - abstract protected function hydrateAllData(): mixed; - - /** - * Processes a row of the result set. - * - * Used for identity-based hydration (HYDRATE_OBJECT and HYDRATE_ARRAY). - * Puts the elements of a result row into a new array, grouped by the dql alias - * they belong to. The column names in the result set are mapped to their - * field names during this procedure as well as any necessary conversions on - * the values applied. Scalar values are kept in a specific key 'scalars'. - * - * @param mixed[] $data SQL Result Row. - * @phpstan-param array $id Dql-Alias => ID-Hash. - * @phpstan-param array $nonemptyComponents Does this DQL-Alias has at least one non NULL value? - * - * @return array> An array with all the fields - * (name => value) of the data - * row, grouped by their - * component alias. - * @phpstan-return array{ - * data: array, - * newObjects?: array, - * scalars?: array - * } - */ - protected function gatherRowData(array $data, array &$id, array &$nonemptyComponents): array - { - $rowData = ['data' => [], 'newObjects' => []]; - - foreach ($this->rsm->newObjectMappings as $mapping) { - if (! array_key_exists($mapping['objIndex'], $this->rsm->newObject)) { - $this->rsm->newObject[$mapping['objIndex']] = $mapping['className']; - } - } - - foreach ($this->rsm->newObject as $objIndex => $newObject) { - $rowData['newObjects'][$objIndex]['class'] = new ReflectionClass($newObject); - $rowData['newObjects'][$objIndex]['args'] = []; - } - - foreach ($data as $key => $value) { - $cacheKeyInfo = $this->hydrateColumnInfo($key); - if ($cacheKeyInfo === null) { - continue; - } - - $fieldName = $cacheKeyInfo['fieldName']; - - switch (true) { - case isset($cacheKeyInfo['isNewObjectParameter']): - $argIndex = $cacheKeyInfo['argIndex']; - $objIndex = $cacheKeyInfo['objIndex']; - $type = $cacheKeyInfo['type']; - $value = $type->convertToPHPValue($value, $this->platform); - - if ($value !== null && isset($cacheKeyInfo['enumType'])) { - $value = $this->buildEnum($value, $cacheKeyInfo['enumType']); - } - - $rowData['newObjects'][$objIndex]['args'][$argIndex] = $value; - break; - - case isset($cacheKeyInfo['isScalar']): - $type = $cacheKeyInfo['type']; - $value = $type->convertToPHPValue($value, $this->platform); - - if ($value !== null && isset($cacheKeyInfo['enumType'])) { - $value = $this->buildEnum($value, $cacheKeyInfo['enumType']); - } - - $rowData['scalars'][$fieldName] = $value; - - break; - - //case (isset($cacheKeyInfo['isMetaColumn'])): - default: - $dqlAlias = $cacheKeyInfo['dqlAlias']; - $type = $cacheKeyInfo['type']; - - // If there are field name collisions in the child class, then we need - // to only hydrate if we are looking at the correct discriminator value - if ( - isset($cacheKeyInfo['discriminatorColumn'], $data[$cacheKeyInfo['discriminatorColumn']]) - && ! in_array((string) $data[$cacheKeyInfo['discriminatorColumn']], $cacheKeyInfo['discriminatorValues'], true) - ) { - break; - } - - // in an inheritance hierarchy the same field could be defined several times. - // We overwrite this value so long we don't have a non-null value, that value we keep. - // Per definition it cannot be that a field is defined several times and has several values. - if (isset($rowData['data'][$dqlAlias][$fieldName])) { - break; - } - - $rowData['data'][$dqlAlias][$fieldName] = $type - ? $type->convertToPHPValue($value, $this->platform) - : $value; - - if ($rowData['data'][$dqlAlias][$fieldName] !== null && isset($cacheKeyInfo['enumType'])) { - $rowData['data'][$dqlAlias][$fieldName] = $this->buildEnum($rowData['data'][$dqlAlias][$fieldName], $cacheKeyInfo['enumType']); - } - - if ($cacheKeyInfo['isIdentifier'] && $value !== null) { - $id[$dqlAlias] .= '|' . $value; - $nonemptyComponents[$dqlAlias] = true; - } - - break; - } - } - - $nestedEntities = []; - /**@var string $argAlias */ - foreach ($this->resultSetMapping()->nestedNewObjectArguments as ['ownerIndex' => $ownerIndex, 'argIndex' => $argIndex, 'argAlias' => $argAlias]) { - if (array_key_exists($argAlias, $rowData['newObjects'])) { - ksort($rowData['newObjects'][$argAlias]['args']); - $rowData['newObjects'][$ownerIndex]['args'][$argIndex] = $rowData['newObjects'][$argAlias]['class']->newInstanceArgs($rowData['newObjects'][$argAlias]['args']); - unset($rowData['newObjects'][$argAlias]); - } elseif (array_key_exists($argAlias, $rowData['data'])) { - if (! array_key_exists($argAlias, $nestedEntities)) { - $nestedEntities[$argAlias] = ''; - $rowData['data'][$argAlias] = $this->hydrateNestedEntity($rowData['data'][$argAlias], $argAlias); - } - - $rowData['newObjects'][$ownerIndex]['args'][$argIndex] = $rowData['data'][$argAlias]; - } else { - throw new LogicException($argAlias . ' does not exist'); - } - } - - foreach (array_keys($nestedEntities) as $entity) { - unset($rowData['data'][$entity]); - } - - foreach ($rowData['newObjects'] as $objIndex => $newObject) { - ksort($rowData['newObjects'][$objIndex]['args']); - $obj = $rowData['newObjects'][$objIndex]['class']->newInstanceArgs($rowData['newObjects'][$objIndex]['args']); - - $rowData['newObjects'][$objIndex]['obj'] = $obj; - } - - return $rowData; - } - - /** @param mixed[] $data pre-hydrated SQL Result Row. */ - protected function hydrateNestedEntity(array $data, string $dqlAlias): mixed - { - return $data; - } - - /** - * Processes a row of the result set. - * - * Used for HYDRATE_SCALAR. This is a variant of _gatherRowData() that - * simply converts column names to field names and properly converts the - * values according to their types. The resulting row has the same number - * of elements as before. - * - * @param mixed[] $data - * @phpstan-param array $data - * - * @return mixed[] The processed row. - * @phpstan-return array - */ - protected function gatherScalarRowData(array &$data): array - { - $rowData = []; - - foreach ($data as $key => $value) { - $cacheKeyInfo = $this->hydrateColumnInfo($key); - if ($cacheKeyInfo === null) { - continue; - } - - $fieldName = $cacheKeyInfo['fieldName']; - - // WARNING: BC break! We know this is the desired behavior to type convert values, but this - // erroneous behavior exists since 2.0 and we're forced to keep compatibility. - if (! isset($cacheKeyInfo['isScalar'])) { - $type = $cacheKeyInfo['type']; - $value = $type ? $type->convertToPHPValue($value, $this->platform) : $value; - - $fieldName = $cacheKeyInfo['dqlAlias'] . '_' . $fieldName; - } - - $rowData[$fieldName] = $value; - } - - return $rowData; - } - - /** - * Retrieve column information from ResultSetMapping. - * - * @param string $key Column name - * - * @return mixed[]|null - * @phpstan-return array|null - */ - protected function hydrateColumnInfo(string $key): array|null - { - if (isset($this->cache[$key])) { - return $this->cache[$key]; - } - - switch (true) { - // NOTE: Most of the times it's a field mapping, so keep it first!!! - case isset($this->rsm->fieldMappings[$key]): - $classMetadata = $this->getClassMetadata($this->rsm->declaringClasses[$key]); - $fieldName = $this->rsm->fieldMappings[$key]; - $fieldMapping = $classMetadata->fieldMappings[$fieldName]; - $ownerMap = $this->rsm->columnOwnerMap[$key]; - $columnInfo = [ - 'isIdentifier' => in_array($fieldName, $classMetadata->identifier, true), - 'fieldName' => $fieldName, - 'type' => Type::getType($fieldMapping->type), - 'dqlAlias' => $ownerMap, - 'enumType' => $this->rsm->enumMappings[$key] ?? null, - ]; - - // the current discriminator value must be saved in order to disambiguate fields hydration, - // should there be field name collisions - if ($classMetadata->parentClasses && isset($this->rsm->discriminatorColumns[$ownerMap])) { - return $this->cache[$key] = array_merge( - $columnInfo, - [ - 'discriminatorColumn' => $this->rsm->discriminatorColumns[$ownerMap], - 'discriminatorValue' => $classMetadata->discriminatorValue, - 'discriminatorValues' => $this->getDiscriminatorValues($classMetadata), - ], - ); - } - - return $this->cache[$key] = $columnInfo; - - case isset($this->rsm->newObjectMappings[$key]): - // WARNING: A NEW object is also a scalar, so it must be declared before! - $mapping = $this->rsm->newObjectMappings[$key]; - - return $this->cache[$key] = [ - 'isScalar' => true, - 'isNewObjectParameter' => true, - 'fieldName' => $this->rsm->scalarMappings[$key], - 'type' => Type::getType($this->rsm->typeMappings[$key]), - 'argIndex' => $mapping['argIndex'], - 'objIndex' => $mapping['objIndex'], - 'enumType' => $this->rsm->enumMappings[$key] ?? null, - ]; - - case isset($this->rsm->scalarMappings[$key], $this->hints[LimitSubqueryWalker::FORCE_DBAL_TYPE_CONVERSION]): - return $this->cache[$key] = [ - 'fieldName' => $this->rsm->scalarMappings[$key], - 'type' => Type::getType($this->rsm->typeMappings[$key]), - 'dqlAlias' => '', - 'enumType' => $this->rsm->enumMappings[$key] ?? null, - ]; - - case isset($this->rsm->scalarMappings[$key]): - return $this->cache[$key] = [ - 'isScalar' => true, - 'fieldName' => $this->rsm->scalarMappings[$key], - 'type' => Type::getType($this->rsm->typeMappings[$key]), - 'enumType' => $this->rsm->enumMappings[$key] ?? null, - ]; - - case isset($this->rsm->metaMappings[$key]): - // Meta column (has meaning in relational schema only, i.e. foreign keys or discriminator columns). - $fieldName = $this->rsm->metaMappings[$key]; - $dqlAlias = $this->rsm->columnOwnerMap[$key]; - $type = isset($this->rsm->typeMappings[$key]) - ? Type::getType($this->rsm->typeMappings[$key]) - : null; - - // Cache metadata fetch - $this->getClassMetadata($this->rsm->aliasMap[$dqlAlias]); - - return $this->cache[$key] = [ - 'isIdentifier' => isset($this->rsm->isIdentifierColumn[$dqlAlias][$key]), - 'isMetaColumn' => true, - 'fieldName' => $fieldName, - 'type' => $type, - 'dqlAlias' => $dqlAlias, - 'enumType' => $this->rsm->enumMappings[$key] ?? null, - ]; - } - - // this column is a left over, maybe from a LIMIT query hack for example in Oracle or DB2 - // maybe from an additional column that has not been defined in a NativeQuery ResultSetMapping. - return null; - } - - /** - * @return string[] - * @phpstan-return non-empty-list - */ - private function getDiscriminatorValues(ClassMetadata $classMetadata): array - { - $values = array_map( - fn (string $subClass): string => (string) $this->getClassMetadata($subClass)->discriminatorValue, - $classMetadata->subClasses, - ); - - $values[] = (string) $classMetadata->discriminatorValue; - - return $values; - } - - /** - * Retrieve ClassMetadata associated to entity class name. - */ - protected function getClassMetadata(string $className): ClassMetadata - { - if (! isset($this->metadataCache[$className])) { - $this->metadataCache[$className] = $this->em->getClassMetadata($className); - } - - return $this->metadataCache[$className]; - } - - /** - * Register entity as managed in UnitOfWork. - * - * @param mixed[] $data - * - * @todo The "$id" generation is the same of UnitOfWork#createEntity. Remove this duplication somehow - */ - protected function registerManaged(ClassMetadata $class, object $entity, array $data): void - { - if ($class->isIdentifierComposite) { - $id = []; - - foreach ($class->identifier as $fieldName) { - $id[$fieldName] = isset($class->associationMappings[$fieldName]) && $class->associationMappings[$fieldName]->isToOneOwningSide() - ? $data[$class->associationMappings[$fieldName]->joinColumns[0]->name] - : $data[$fieldName]; - } - } else { - $fieldName = $class->identifier[0]; - $id = [ - $fieldName => isset($class->associationMappings[$fieldName]) && $class->associationMappings[$fieldName]->isToOneOwningSide() - ? $data[$class->associationMappings[$fieldName]->joinColumns[0]->name] - : $data[$fieldName], - ]; - } - - $this->em->getUnitOfWork()->registerManaged($entity, $id, $data); - } - - /** - * @param class-string $enumType - * - * @return BackedEnum|array - */ - final protected function buildEnum(mixed $value, string $enumType): BackedEnum|array - { - if (is_array($value)) { - return array_map( - static fn ($value) => $enumType::from($value), - $value, - ); - } - - return $enumType::from($value); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ArrayHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ArrayHydrator.php deleted file mode 100644 index 576b891..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ArrayHydrator.php +++ /dev/null @@ -1,269 +0,0 @@ - */ - private array $rootAliases = []; - - private bool $isSimpleQuery = false; - - /** @var mixed[] */ - private array $identifierMap = []; - - /** @var mixed[] */ - private array $resultPointers = []; - - /** @var array */ - private array $idTemplate = []; - - private int $resultCounter = 0; - - protected function prepare(): void - { - $this->isSimpleQuery = count($this->resultSetMapping()->aliasMap) <= 1; - - foreach ($this->resultSetMapping()->aliasMap as $dqlAlias => $className) { - $this->identifierMap[$dqlAlias] = []; - $this->resultPointers[$dqlAlias] = []; - $this->idTemplate[$dqlAlias] = ''; - } - } - - /** - * {@inheritDoc} - */ - protected function hydrateAllData(): array - { - $result = []; - - while ($data = $this->statement()->fetchAssociative()) { - $this->hydrateRowData($data, $result); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - protected function hydrateRowData(array $row, array &$result): void - { - // 1) Initialize - $id = $this->idTemplate; // initialize the id-memory - $nonemptyComponents = []; - $rowData = $this->gatherRowData($row, $id, $nonemptyComponents); - - // 2) Now hydrate the data found in the current row. - foreach ($rowData['data'] as $dqlAlias => $data) { - $index = false; - - if (isset($this->resultSetMapping()->parentAliasMap[$dqlAlias])) { - // It's a joined result - - $parent = $this->resultSetMapping()->parentAliasMap[$dqlAlias]; - $path = $parent . '.' . $dqlAlias; - - // missing parent data, skipping as RIGHT JOIN hydration is not supported. - if (! isset($nonemptyComponents[$parent])) { - continue; - } - - // Get a reference to the right element in the result tree. - // This element will get the associated element attached. - if ($this->resultSetMapping()->isMixed && isset($this->rootAliases[$parent])) { - $first = reset($this->resultPointers); - // TODO: Exception if $key === null ? - $baseElement =& $this->resultPointers[$parent][key($first)]; - } elseif (isset($this->resultPointers[$parent])) { - $baseElement =& $this->resultPointers[$parent]; - } else { - unset($this->resultPointers[$dqlAlias]); // Ticket #1228 - - continue; - } - - $relationAlias = $this->resultSetMapping()->relationMap[$dqlAlias]; - $parentClass = $this->metadataCache[$this->resultSetMapping()->aliasMap[$parent]]; - $relation = $parentClass->associationMappings[$relationAlias]; - - // Check the type of the relation (many or single-valued) - if (! $relation->isToOne()) { - $oneToOne = false; - - if (! isset($baseElement[$relationAlias])) { - $baseElement[$relationAlias] = []; - } - - if (isset($nonemptyComponents[$dqlAlias])) { - $indexExists = isset($this->identifierMap[$path][$id[$parent]][$id[$dqlAlias]]); - $index = $indexExists ? $this->identifierMap[$path][$id[$parent]][$id[$dqlAlias]] : false; - $indexIsValid = $index !== false ? isset($baseElement[$relationAlias][$index]) : false; - - if (! $indexExists || ! $indexIsValid) { - $element = $data; - - if (isset($this->resultSetMapping()->indexByMap[$dqlAlias])) { - $baseElement[$relationAlias][$row[$this->resultSetMapping()->indexByMap[$dqlAlias]]] = $element; - } else { - $baseElement[$relationAlias][] = $element; - } - - $this->identifierMap[$path][$id[$parent]][$id[$dqlAlias]] = array_key_last($baseElement[$relationAlias]); - } - } - } else { - $oneToOne = true; - - if ( - ! isset($nonemptyComponents[$dqlAlias]) && - ( ! isset($baseElement[$relationAlias])) - ) { - $baseElement[$relationAlias] = null; - } elseif (! isset($baseElement[$relationAlias])) { - $baseElement[$relationAlias] = $data; - } - } - - $coll =& $baseElement[$relationAlias]; - - if (is_array($coll)) { - $this->updateResultPointer($coll, $index, $dqlAlias, $oneToOne); - } - } else { - // It's a root result element - - $this->rootAliases[$dqlAlias] = true; // Mark as root - $entityKey = $this->resultSetMapping()->entityMappings[$dqlAlias] ?: 0; - - // if this row has a NULL value for the root result id then make it a null result. - if (! isset($nonemptyComponents[$dqlAlias])) { - $result[] = $this->resultSetMapping()->isMixed - ? [$entityKey => null] - : null; - - $resultKey = $this->resultCounter; - ++$this->resultCounter; - - continue; - } - - // Check for an existing element - if ($this->isSimpleQuery || ! isset($this->identifierMap[$dqlAlias][$id[$dqlAlias]])) { - $element = $this->resultSetMapping()->isMixed - ? [$entityKey => $data] - : $data; - - if (isset($this->resultSetMapping()->indexByMap[$dqlAlias])) { - $resultKey = $row[$this->resultSetMapping()->indexByMap[$dqlAlias]]; - $result[$resultKey] = $element; - } else { - $resultKey = $this->resultCounter; - $result[] = $element; - - ++$this->resultCounter; - } - - $this->identifierMap[$dqlAlias][$id[$dqlAlias]] = $resultKey; - } else { - $index = $this->identifierMap[$dqlAlias][$id[$dqlAlias]]; - $resultKey = $index; - } - - $this->updateResultPointer($result, $index, $dqlAlias, false); - } - } - - if (! isset($resultKey)) { - $this->resultCounter++; - } - - // Append scalar values to mixed result sets - if (isset($rowData['scalars'])) { - if (! isset($resultKey)) { - // this only ever happens when no object is fetched (scalar result only) - $resultKey = isset($this->resultSetMapping()->indexByMap['scalars']) - ? $row[$this->resultSetMapping()->indexByMap['scalars']] - : $this->resultCounter - 1; - } - - foreach ($rowData['scalars'] as $name => $value) { - $result[$resultKey][$name] = $value; - } - } - - // Append new object to mixed result sets - if (isset($rowData['newObjects'])) { - if (! isset($resultKey)) { - $resultKey = $this->resultCounter - 1; - } - - $scalarCount = (isset($rowData['scalars']) ? count($rowData['scalars']) : 0); - - foreach ($rowData['newObjects'] as $objIndex => $newObject) { - $args = $newObject['args']; - $obj = $newObject['obj']; - - if (count($args) === $scalarCount || ($scalarCount === 0 && count($rowData['newObjects']) === 1)) { - $result[$resultKey] = $obj; - - continue; - } - - $result[$resultKey][$objIndex] = $obj; - } - } - } - - /** - * Updates the result pointer for an Entity. The result pointers point to the - * last seen instance of each Entity type. This is used for graph construction. - * - * @param mixed[]|null $coll The element. - * @param string|int|false $index Index of the element in the collection. - * @param bool $oneToOne Whether it is a single-valued association or not. - */ - private function updateResultPointer( - array|null &$coll, - string|int|false $index, - string $dqlAlias, - bool $oneToOne, - ): void { - if ($coll === null) { - unset($this->resultPointers[$dqlAlias]); // Ticket #1228 - - return; - } - - if ($oneToOne) { - $this->resultPointers[$dqlAlias] =& $coll; - - return; - } - - if ($index !== false) { - $this->resultPointers[$dqlAlias] =& $coll[$index]; - - return; - } - - if (! $coll) { - return; - } - - $this->resultPointers[$dqlAlias] =& $coll[array_key_last($coll)]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/HydrationException.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/HydrationException.php deleted file mode 100644 index a596443..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/HydrationException.php +++ /dev/null @@ -1,72 +0,0 @@ - $discrValues */ - public static function invalidDiscriminatorValue(string $discrValue, array $discrValues): self - { - return new self(sprintf( - 'The discriminator value "%s" is invalid. It must be one of "%s".', - $discrValue, - implode('", "', $discrValues), - )); - } - - public static function partialObjectHydrationDisallowed(): self - { - return new self('Hydration of entity objects is not allowed when DQL PARTIAL keyword is used.'); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ObjectHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ObjectHydrator.php deleted file mode 100644 index e65b14d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ObjectHydrator.php +++ /dev/null @@ -1,598 +0,0 @@ - */ - private array $uninitializedCollections = []; - - /** @var mixed[] */ - private array $existingCollections = []; - - protected function prepare(): void - { - if (! isset($this->hints[UnitOfWork::HINT_DEFEREAGERLOAD])) { - $this->hints[UnitOfWork::HINT_DEFEREAGERLOAD] = true; - } - - foreach ($this->resultSetMapping()->aliasMap as $dqlAlias => $className) { - $this->identifierMap[$dqlAlias] = []; - $this->idTemplate[$dqlAlias] = ''; - - // Remember which associations are "fetch joined", so that we know where to inject - // collection stubs or proxies and where not. - if (! isset($this->resultSetMapping()->relationMap[$dqlAlias])) { - continue; - } - - $parent = $this->resultSetMapping()->parentAliasMap[$dqlAlias]; - - if (! isset($this->resultSetMapping()->aliasMap[$parent])) { - if (isset($this->resultSetMapping()->nestedEntities[$dqlAlias])) { - continue; - } - - throw HydrationException::parentObjectOfRelationNotFound($dqlAlias, $parent); - } - - $sourceClassName = $this->resultSetMapping()->aliasMap[$parent]; - $sourceClass = $this->getClassMetadata($sourceClassName); - $assoc = $sourceClass->associationMappings[$this->resultSetMapping()->relationMap[$dqlAlias]]; - - $this->hints['fetched'][$parent][$assoc->fieldName] = true; - - if ($assoc->isManyToMany()) { - continue; - } - - // Mark any non-collection opposite sides as fetched, too. - if (! $assoc->isOwningSide()) { - $this->hints['fetched'][$dqlAlias][$assoc->mappedBy] = true; - - continue; - } - - // handle fetch-joined owning side bi-directional one-to-one associations - if ($assoc->inversedBy !== null) { - $class = $this->getClassMetadata($className); - $inverseAssoc = $class->associationMappings[$assoc->inversedBy]; - - if (! $inverseAssoc->isToOne()) { - continue; - } - - $this->hints['fetched'][$dqlAlias][$inverseAssoc->fieldName] = true; - } - } - } - - protected function cleanup(): void - { - $eagerLoad = isset($this->hints[UnitOfWork::HINT_DEFEREAGERLOAD]) && $this->hints[UnitOfWork::HINT_DEFEREAGERLOAD] === true; - - parent::cleanup(); - - $this->identifierMap = - $this->initializedCollections = - $this->uninitializedCollections = - $this->existingCollections = - $this->resultPointers = []; - - if ($eagerLoad) { - $this->uow->triggerEagerLoads(); - } - - $this->uow->hydrationComplete(); - } - - protected function cleanupAfterRowIteration(): void - { - $this->identifierMap = - $this->initializedCollections = - $this->uninitializedCollections = - $this->existingCollections = - $this->resultPointers = []; - } - - /** - * {@inheritDoc} - */ - protected function hydrateAllData(): array - { - $result = []; - - while ($row = $this->statement()->fetchAssociative()) { - $this->hydrateRowData($row, $result); - } - - // Take snapshots from all newly initialized collections - foreach ($this->initializedCollections as $coll) { - $coll->takeSnapshot(); - } - - foreach ($this->uninitializedCollections as $coll) { - if (! $coll->isInitialized()) { - $coll->setInitialized(true); - } - } - - return $result; - } - - /** - * Initializes a related collection. - * - * @param string $fieldName The name of the field on the entity that holds the collection. - * @param string $parentDqlAlias Alias of the parent fetch joining this collection. - */ - private function initRelatedCollection( - object $entity, - ClassMetadata $class, - string $fieldName, - string $parentDqlAlias, - ): PersistentCollection { - $oid = spl_object_id($entity); - $relation = $class->associationMappings[$fieldName]; - $value = $class->propertyAccessors[$fieldName]->getValue($entity); - - if ($value === null || is_array($value)) { - $value = new ArrayCollection((array) $value); - } - - if (! $value instanceof PersistentCollection) { - assert($relation->isToMany()); - $value = new PersistentCollection( - $this->em, - $this->metadataCache[$relation->targetEntity], - $value, - ); - $value->setOwner($entity, $relation); - - $class->propertyAccessors[$fieldName]->setValue($entity, $value); - $this->uow->setOriginalEntityProperty($oid, $fieldName, $value); - - $this->initializedCollections[$oid . $fieldName] = $value; - } elseif ( - isset($this->hints[Query::HINT_REFRESH]) || - isset($this->hints['fetched'][$parentDqlAlias][$fieldName]) && - ! $value->isInitialized() - ) { - // Is already PersistentCollection, but either REFRESH or FETCH-JOIN and UNINITIALIZED! - $value->setDirty(false); - $value->setInitialized(true); - $value->unwrap()->clear(); - - $this->initializedCollections[$oid . $fieldName] = $value; - } else { - // Is already PersistentCollection, and DON'T REFRESH or FETCH-JOIN! - $this->existingCollections[$oid . $fieldName] = $value; - } - - return $value; - } - - /** - * Gets an entity instance. - * - * @param string $dqlAlias The DQL alias of the entity's class. - * @phpstan-param array $data The instance data. - * - * @throws HydrationException - */ - private function getEntity(array $data, string $dqlAlias): object - { - $className = $this->resultSetMapping()->aliasMap[$dqlAlias]; - - if (isset($this->resultSetMapping()->discriminatorColumns[$dqlAlias])) { - $fieldName = $this->resultSetMapping()->discriminatorColumns[$dqlAlias]; - - if (! isset($this->resultSetMapping()->metaMappings[$fieldName])) { - throw HydrationException::missingDiscriminatorMetaMappingColumn($className, $fieldName, $dqlAlias); - } - - $discrColumn = $this->resultSetMapping()->metaMappings[$fieldName]; - - if (! isset($data[$discrColumn])) { - throw HydrationException::missingDiscriminatorColumn($className, $discrColumn, $dqlAlias); - } - - if ($data[$discrColumn] === '') { - throw HydrationException::emptyDiscriminatorValue($dqlAlias); - } - - $discrMap = $this->metadataCache[$className]->discriminatorMap; - $discriminatorValue = $data[$discrColumn]; - if ($discriminatorValue instanceof BackedEnum) { - $discriminatorValue = $discriminatorValue->value; - } - - $discriminatorValue = (string) $discriminatorValue; - - if (! isset($discrMap[$discriminatorValue])) { - throw HydrationException::invalidDiscriminatorValue($discriminatorValue, array_keys($discrMap)); - } - - $className = $discrMap[$discriminatorValue]; - - unset($data[$discrColumn]); - } - - if (isset($this->hints[Query::HINT_REFRESH_ENTITY], $this->rootAliases[$dqlAlias])) { - $this->registerManaged($this->metadataCache[$className], $this->hints[Query::HINT_REFRESH_ENTITY], $data); - } - - $this->hints['fetchAlias'] = $dqlAlias; - - return $this->uow->createEntity($className, $data, $this->hints); - } - - /** - * @param class-string $className - * @phpstan-param array $data - */ - private function getEntityFromIdentityMap(string $className, array $data): object|bool - { - // TODO: Abstract this code and UnitOfWork::createEntity() equivalent? - $class = $this->metadataCache[$className]; - - if ($class->isIdentifierComposite) { - $idHash = UnitOfWork::getIdHashByIdentifier( - array_map( - /** @return mixed */ - static fn (string $fieldName) => isset($class->associationMappings[$fieldName]) && assert($class->associationMappings[$fieldName]->isToOneOwningSide()) - ? $data[$class->associationMappings[$fieldName]->joinColumns[0]->name] - : $data[$fieldName], - $class->identifier, - ), - ); - - return $this->uow->tryGetByIdHash(ltrim($idHash), $class->rootEntityName); - } elseif (isset($class->associationMappings[$class->identifier[0]])) { - $association = $class->associationMappings[$class->identifier[0]]; - assert($association->isToOneOwningSide()); - - return $this->uow->tryGetByIdHash($data[$association->joinColumns[0]->name], $class->rootEntityName); - } - - return $this->uow->tryGetByIdHash($data[$class->identifier[0]], $class->rootEntityName); - } - - /** - * Hydrates a single row in an SQL result set. - * - * @internal - * First, the data of the row is split into chunks where each chunk contains data - * that belongs to a particular component/class. Afterwards, all these chunks - * are processed, one after the other. For each chunk of class data only one of the - * following code paths is executed: - * Path A: The data chunk belongs to a joined/associated object and the association - * is collection-valued. - * Path B: The data chunk belongs to a joined/associated object and the association - * is single-valued. - * Path C: The data chunk belongs to a root result element/object that appears in the topmost - * level of the hydrated result. A typical example are the objects of the type - * specified by the FROM clause in a DQL query. - * - * @param mixed[] $row The data of the row to process. - * @param mixed[] $result The result array to fill. - */ - protected function hydrateRowData(array $row, array &$result): void - { - // Initialize - $id = $this->idTemplate; // initialize the id-memory - $nonemptyComponents = []; - // Split the row data into chunks of class data. - $rowData = $this->gatherRowData($row, $id, $nonemptyComponents); - - // reset result pointers for each data row - $this->resultPointers = []; - - // Hydrate the data chunks - foreach ($rowData['data'] as $dqlAlias => $data) { - $entityName = $this->resultSetMapping()->aliasMap[$dqlAlias]; - - if (isset($this->resultSetMapping()->parentAliasMap[$dqlAlias])) { - // It's a joined result - - $parentAlias = $this->resultSetMapping()->parentAliasMap[$dqlAlias]; - // we need the $path to save into the identifier map which entities were already - // seen for this parent-child relationship - $path = $parentAlias . '.' . $dqlAlias; - - // We have a RIGHT JOIN result here. Doctrine cannot hydrate RIGHT JOIN Object-Graphs - if (! isset($nonemptyComponents[$parentAlias])) { - // TODO: Add special case code where we hydrate the right join objects into identity map at least - continue; - } - - $parentClass = $this->metadataCache[$this->resultSetMapping()->aliasMap[$parentAlias]]; - $relationField = $this->resultSetMapping()->relationMap[$dqlAlias]; - $relation = $parentClass->associationMappings[$relationField]; - $reflField = $parentClass->propertyAccessors[$relationField]; - - // Get a reference to the parent object to which the joined element belongs. - if ($this->resultSetMapping()->isMixed && isset($this->rootAliases[$parentAlias])) { - $objectClass = $this->resultPointers[$parentAlias]; - $parentObject = $objectClass[key($objectClass)]; - } elseif (isset($this->resultPointers[$parentAlias])) { - $parentObject = $this->resultPointers[$parentAlias]; - } else { - // Parent object of relation not found, mark as not-fetched again - if (isset($nonemptyComponents[$dqlAlias])) { - $element = $this->getEntity($data, $dqlAlias); - - // Update result pointer and provide initial fetch data for parent - $this->resultPointers[$dqlAlias] = $element; - $rowData['data'][$parentAlias][$relationField] = $element; - } else { - $element = null; - } - - // Mark as not-fetched again - unset($this->hints['fetched'][$parentAlias][$relationField]); - continue; - } - - $oid = spl_object_id($parentObject); - - // Check the type of the relation (many or single-valued) - if (! $relation->isToOne()) { - // PATH A: Collection-valued association - $reflFieldValue = $reflField->getValue($parentObject); - - if (isset($nonemptyComponents[$dqlAlias])) { - $collKey = $oid . $relationField; - if (isset($this->initializedCollections[$collKey])) { - $reflFieldValue = $this->initializedCollections[$collKey]; - } elseif (! isset($this->existingCollections[$collKey])) { - $reflFieldValue = $this->initRelatedCollection($parentObject, $parentClass, $relationField, $parentAlias); - } - - $indexExists = isset($this->identifierMap[$path][$id[$parentAlias]][$id[$dqlAlias]]); - $index = $indexExists ? $this->identifierMap[$path][$id[$parentAlias]][$id[$dqlAlias]] : false; - $indexIsValid = $index !== false ? isset($reflFieldValue[$index]) : false; - - if (! $indexExists || ! $indexIsValid) { - if (isset($this->existingCollections[$collKey])) { - // Collection exists, only look for the element in the identity map. - $element = $this->getEntityFromIdentityMap($entityName, $data); - if ($element) { - $this->resultPointers[$dqlAlias] = $element; - } else { - unset($this->resultPointers[$dqlAlias]); - } - } else { - $element = $this->getEntity($data, $dqlAlias); - - if (isset($this->resultSetMapping()->indexByMap[$dqlAlias])) { - $indexValue = $row[$this->resultSetMapping()->indexByMap[$dqlAlias]]; - $reflFieldValue->hydrateSet($indexValue, $element); - $this->identifierMap[$path][$id[$parentAlias]][$id[$dqlAlias]] = $indexValue; - } else { - if (! $reflFieldValue->contains($element)) { - $reflFieldValue->hydrateAdd($element); - $reflFieldValue->last(); - } - - $this->identifierMap[$path][$id[$parentAlias]][$id[$dqlAlias]] = $reflFieldValue->key(); - } - - // Update result pointer - $this->resultPointers[$dqlAlias] = $element; - } - } else { - // Update result pointer - $this->resultPointers[$dqlAlias] = $reflFieldValue[$index]; - } - } elseif (! $reflFieldValue) { - $this->initRelatedCollection($parentObject, $parentClass, $relationField, $parentAlias); - } elseif ($reflFieldValue instanceof PersistentCollection && $reflFieldValue->isInitialized() === false && ! isset($this->uninitializedCollections[$oid . $relationField])) { - $this->uninitializedCollections[$oid . $relationField] = $reflFieldValue; - } - } else { - // PATH B: Single-valued association - $reflFieldValue = $reflField->getValue($parentObject); - - if (! $reflFieldValue || isset($this->hints[Query::HINT_REFRESH]) || $this->uow->isUninitializedObject($reflFieldValue)) { - // we only need to take action if this value is null, - // we refresh the entity or its an uninitialized proxy. - if (isset($nonemptyComponents[$dqlAlias])) { - $element = $this->getEntity($data, $dqlAlias); - $reflField->setValue($parentObject, $element); - $this->uow->setOriginalEntityProperty($oid, $relationField, $element); - $targetClass = $this->metadataCache[$relation->targetEntity]; - - if ($relation->isOwningSide()) { - // TODO: Just check hints['fetched'] here? - // If there is an inverse mapping on the target class its bidirectional - if ($relation->inversedBy !== null) { - $inverseAssoc = $targetClass->associationMappings[$relation->inversedBy]; - if ($inverseAssoc->isToOne()) { - $targetClass->propertyAccessors[$inverseAssoc->fieldName]->setValue($element, $parentObject); - $this->uow->setOriginalEntityProperty(spl_object_id($element), $inverseAssoc->fieldName, $parentObject); - } - } - } else { - // For sure bidirectional, as there is no inverse side in unidirectional mappings - $targetClass->propertyAccessors[$relation->mappedBy]->setValue($element, $parentObject); - $this->uow->setOriginalEntityProperty(spl_object_id($element), $relation->mappedBy, $parentObject); - } - - // Update result pointer - $this->resultPointers[$dqlAlias] = $element; - } else { - $this->uow->setOriginalEntityProperty($oid, $relationField, null); - $reflField->setValue($parentObject, null); - } - // else leave $reflFieldValue null for single-valued associations - } else { - // Update result pointer - $this->resultPointers[$dqlAlias] = $reflFieldValue; - } - } - } else { - // PATH C: Its a root result element - $this->rootAliases[$dqlAlias] = true; // Mark as root alias - $entityKey = $this->resultSetMapping()->entityMappings[$dqlAlias] ?: 0; - - // if this row has a NULL value for the root result id then make it a null result. - if (! isset($nonemptyComponents[$dqlAlias])) { - if ($this->resultSetMapping()->isMixed) { - $result[] = [$entityKey => null]; - } else { - $result[] = null; - } - - $resultKey = $this->resultCounter; - ++$this->resultCounter; - continue; - } - - // check for existing result from the iterations before - if (! isset($this->identifierMap[$dqlAlias][$id[$dqlAlias]])) { - $element = $this->getEntity($data, $dqlAlias); - - if ($this->resultSetMapping()->isMixed) { - $element = [$entityKey => $element]; - } - - if (isset($this->resultSetMapping()->indexByMap[$dqlAlias])) { - $resultKey = $row[$this->resultSetMapping()->indexByMap[$dqlAlias]]; - - if (isset($this->hints['collection'])) { - $this->hints['collection']->hydrateSet($resultKey, $element); - } - - $result[$resultKey] = $element; - } else { - $resultKey = $this->resultCounter; - ++$this->resultCounter; - - if (isset($this->hints['collection'])) { - $this->hints['collection']->hydrateAdd($element); - } - - $result[] = $element; - } - - $this->identifierMap[$dqlAlias][$id[$dqlAlias]] = $resultKey; - - // Update result pointer - $this->resultPointers[$dqlAlias] = $element; - } else { - // Update result pointer - $index = $this->identifierMap[$dqlAlias][$id[$dqlAlias]]; - $this->resultPointers[$dqlAlias] = $result[$index]; - $resultKey = $index; - } - } - - if (isset($this->hints[Query::HINT_INTERNAL_ITERATION]) && $this->hints[Query::HINT_INTERNAL_ITERATION]) { - $this->uow->hydrationComplete(); - } - } - - if (! isset($resultKey)) { - $this->resultCounter++; - } - - // Append scalar values to mixed result sets - if (isset($rowData['scalars'])) { - if (! isset($resultKey)) { - $resultKey = isset($this->resultSetMapping()->indexByMap['scalars']) - ? $row[$this->resultSetMapping()->indexByMap['scalars']] - : $this->resultCounter - 1; - } - - foreach ($rowData['scalars'] as $name => $value) { - $result[$resultKey][$name] = $value; - } - } - - // Append new object to mixed result sets - if (isset($rowData['newObjects'])) { - if (! isset($resultKey)) { - $resultKey = $this->resultCounter - 1; - } - - $scalarCount = (isset($rowData['scalars']) ? count($rowData['scalars']) : 0); - - foreach ($rowData['newObjects'] as $objIndex => $newObject) { - $obj = $newObject['obj']; - - if ($scalarCount === 0 && count($rowData['newObjects']) === 1) { - $result[$resultKey] = $obj; - - continue; - } - - $result[$resultKey][$objIndex] = $obj; - } - } - } - - /** @param mixed[] $data pre-hydrated SQL Result Row. */ - protected function hydrateNestedEntity(array $data, string $dqlAlias): mixed - { - if (isset($this->resultSetMapping()->nestedEntities[$dqlAlias])) { - return $this->getEntity($data, $dqlAlias); - } - - return $data; - } - - /** - * When executed in a hydrate() loop we may have to clear internal state to - * decrease memory consumption. - */ - public function onClear(mixed $eventArgs): void - { - parent::onClear($eventArgs); - - $aliases = array_keys($this->identifierMap); - - $this->identifierMap = array_fill_keys($aliases, []); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarColumnHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarColumnHydrator.php deleted file mode 100644 index 0f10fb4..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarColumnHydrator.php +++ /dev/null @@ -1,34 +0,0 @@ -resultSetMapping()->fieldMappings) > 1) { - throw MultipleSelectorsFoundException::create($this->resultSetMapping()->fieldMappings); - } - - $result = $this->statement()->fetchAllNumeric(); - - return array_column($result, 0); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarHydrator.php deleted file mode 100644 index 15f3e7e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/ScalarHydrator.php +++ /dev/null @@ -1,35 +0,0 @@ -statement()->fetchAssociative()) { - $this->hydrateRowData($data, $result); - } - - return $result; - } - - /** - * {@inheritDoc} - */ - protected function hydrateRowData(array $row, array &$result): void - { - $result[] = $this->gatherScalarRowData($row); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php deleted file mode 100644 index 6f808f8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php +++ /dev/null @@ -1,184 +0,0 @@ -resultSetMapping()->aliasMap) !== 1) { - throw new RuntimeException('Cannot use SimpleObjectHydrator with a ResultSetMapping that contains more than one object result.'); - } - - if ($this->resultSetMapping()->scalarMappings) { - throw new RuntimeException('Cannot use SimpleObjectHydrator with a ResultSetMapping that contains scalar mappings.'); - } - - $this->class = $this->getClassMetadata(reset($this->resultSetMapping()->aliasMap)); - } - - protected function cleanup(): void - { - parent::cleanup(); - - $this->uow->triggerEagerLoads(); - $this->uow->hydrationComplete(); - } - - /** - * {@inheritDoc} - */ - protected function hydrateAllData(): array - { - $result = []; - - while ($row = $this->statement()->fetchAssociative()) { - $this->hydrateRowData($row, $result); - } - - $this->em->getUnitOfWork()->triggerEagerLoads(); - - return $result; - } - - /** - * {@inheritDoc} - */ - protected function hydrateRowData(array $row, array &$result): void - { - assert($this->class !== null); - $entityName = $this->class->name; - $data = []; - $discrColumnValue = null; - - // We need to find the correct entity class name if we have inheritance in resultset - if ($this->class->inheritanceType !== ClassMetadata::INHERITANCE_TYPE_NONE) { - $discrColumn = $this->class->getDiscriminatorColumn(); - $discrColumnName = $this->getSQLResultCasing($this->platform, $discrColumn->name); - - // Find mapped discriminator column from the result set. - $metaMappingDiscrColumnName = array_search($discrColumnName, $this->resultSetMapping()->metaMappings, true); - if ($metaMappingDiscrColumnName) { - $discrColumnName = $metaMappingDiscrColumnName; - } - - if (! isset($row[$discrColumnName])) { - throw HydrationException::missingDiscriminatorColumn( - $entityName, - $discrColumnName, - key($this->resultSetMapping()->aliasMap), - ); - } - - if ($row[$discrColumnName] === '') { - throw HydrationException::emptyDiscriminatorValue(key( - $this->resultSetMapping()->aliasMap, - )); - } - - $discrMap = $this->class->discriminatorMap; - - if (! isset($discrMap[$row[$discrColumnName]])) { - throw HydrationException::invalidDiscriminatorValue($row[$discrColumnName], array_keys($discrMap)); - } - - $entityName = $discrMap[$row[$discrColumnName]]; - $discrColumnValue = $row[$discrColumnName]; - - unset($row[$discrColumnName]); - } - - foreach ($row as $column => $value) { - // An ObjectHydrator should be used instead of SimpleObjectHydrator - if (isset($this->resultSetMapping()->relationMap[$column])) { - throw new Exception(sprintf('Unable to retrieve association information for column "%s"', $column)); - } - - $cacheKeyInfo = $this->hydrateColumnInfo($column); - - if (! $cacheKeyInfo) { - continue; - } - - // If we have inheritance in resultset, make sure the field belongs to the correct class - if (isset($cacheKeyInfo['discriminatorValues']) && ! in_array((string) $discrColumnValue, $cacheKeyInfo['discriminatorValues'], true)) { - continue; - } - - // Check if value is null before conversion (because some types convert null to something else) - $valueIsNull = $value === null; - - // Convert field to a valid PHP value - if (isset($cacheKeyInfo['type'])) { - $type = $cacheKeyInfo['type']; - $value = $type->convertToPHPValue($value, $this->platform); - } - - if ($value !== null && isset($cacheKeyInfo['enumType'])) { - $originalValue = $currentValue = $value; - try { - if (! is_array($originalValue)) { - $value = $this->buildEnum($originalValue, $cacheKeyInfo['enumType']); - } else { - $value = []; - foreach ($originalValue as $i => $currentValue) { - $value[$i] = $this->buildEnum($currentValue, $cacheKeyInfo['enumType']); - } - } - } catch (ValueError $e) { - throw MappingException::invalidEnumValue( - $entityName, - $cacheKeyInfo['fieldName'], - (string) $currentValue, - $cacheKeyInfo['enumType'], - $e, - ); - } - } - - $fieldName = $cacheKeyInfo['fieldName']; - - // Prevent overwrite in case of inherit classes using same property name (See AbstractHydrator) - if (! isset($data[$fieldName]) || ! $valueIsNull) { - $data[$fieldName] = $value; - } - } - - if (isset($this->hints[Query::HINT_REFRESH_ENTITY])) { - $this->registerManaged($this->class, $this->hints[Query::HINT_REFRESH_ENTITY], $data); - } - - $uow = $this->em->getUnitOfWork(); - $entity = $uow->createEntity($entityName, $data, $this->hints); - - $result[] = $entity; - - if (isset($this->hints[Query::HINT_INTERNAL_ITERATION]) && $this->hints[Query::HINT_INTERNAL_ITERATION]) { - $this->uow->hydrationComplete(); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SingleScalarHydrator.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SingleScalarHydrator.php deleted file mode 100644 index 2787bbc..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/Hydration/SingleScalarHydrator.php +++ /dev/null @@ -1,40 +0,0 @@ -statement()->fetchAllAssociative(); - $numRows = count($data); - - if ($numRows === 0) { - throw new NoResultException(); - } - - if ($numRows > 1) { - throw new NonUniqueResultException('The query returned multiple rows. Change the query or use a different result function like getScalarResult().'); - } - - $result = $this->gatherScalarRowData($data[key($data)]); - - if (count($result) > 1) { - throw new NonUniqueResultException('The query returned a row containing multiple columns. Change the query or use a different result function like getScalarResult().'); - } - - return array_shift($result); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/HydrationCompleteHandler.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/HydrationCompleteHandler.php deleted file mode 100644 index e0fe342..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/HydrationCompleteHandler.php +++ /dev/null @@ -1,64 +0,0 @@ -listenersInvoker->getSubscribedSystems($class, Events::postLoad); - - if ($invoke === ListenersInvoker::INVOKE_NONE) { - return; - } - - $this->deferredPostLoadInvocations[] = [$class, $invoke, $entity]; - } - - /** - * This method should be called after any hydration cycle completed. - * - * Method fires all deferred invocations of postLoad events - */ - public function hydrationComplete(): void - { - $toInvoke = $this->deferredPostLoadInvocations; - $this->deferredPostLoadInvocations = []; - - foreach ($toInvoke as $classAndEntity) { - [$class, $invoke, $entity] = $classAndEntity; - - $this->listenersInvoker->invoke( - $class, - Events::postLoad, - $entity, - new PostLoadEventArgs($entity, $this->em), - $invoke, - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/NoUnknownNamedArguments.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/NoUnknownNamedArguments.php deleted file mode 100644 index a384330..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/NoUnknownNamedArguments.php +++ /dev/null @@ -1,55 +0,0 @@ - $parameter - */ - private static function validateVariadicParameter(array $parameter): void - { - if (array_is_list($parameter)) { - return; - } - - [, $trace] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - assert(isset($trace['class'])); - - $additionalArguments = array_values(array_filter( - array_keys($parameter), - is_string(...), - )); - - throw new BadMethodCallException(sprintf( - 'Invalid call to %s::%s(), unknown named arguments: %s', - $trace['class'], - $trace['function'], - implode(', ', $additionalArguments), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/SQLResultCasing.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/SQLResultCasing.php deleted file mode 100644 index 53b412e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/SQLResultCasing.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ - private array $nodes = []; - - /** - * DFS state for the different nodes, indexed by node object id and using one of - * this class' constants as value. - * - * @var array - */ - private array $states = []; - - /** - * Edges between the nodes. The first-level key is the object id of the outgoing - * node; the second array maps the destination node by object id as key. - * - * @var array> - */ - private array $edges = []; - - /** - * DFS numbers, by object ID - * - * @var array - */ - private array $dfs = []; - - /** - * lowlink numbers, by object ID - * - * @var array - */ - private array $lowlink = []; - - private int $maxdfs = 0; - - /** - * Nodes representing the SCC another node is in, indexed by lookup-node object ID - * - * @var array - */ - private array $representingNodes = []; - - /** - * Stack with OIDs of nodes visited in the current state of the DFS - * - * @var list - */ - private array $stack = []; - - public function addNode(object $node): void - { - $id = spl_object_id($node); - $this->nodes[$id] = $node; - $this->states[$id] = self::NOT_VISITED; - $this->edges[$id] = []; - } - - public function hasNode(object $node): bool - { - return isset($this->nodes[spl_object_id($node)]); - } - - /** - * Adds a new edge between two nodes to the graph - */ - public function addEdge(object $from, object $to): void - { - $fromId = spl_object_id($from); - $toId = spl_object_id($to); - - $this->edges[$fromId][$toId] = true; - } - - public function findStronglyConnectedComponents(): void - { - foreach (array_keys($this->nodes) as $oid) { - if ($this->states[$oid] === self::NOT_VISITED) { - $this->tarjan($oid); - } - } - } - - private function tarjan(int $oid): void - { - $this->dfs[$oid] = $this->lowlink[$oid] = $this->maxdfs++; - $this->states[$oid] = self::IN_PROGRESS; - array_push($this->stack, $oid); - - foreach ($this->edges[$oid] as $adjacentId => $ignored) { - if ($this->states[$adjacentId] === self::NOT_VISITED) { - $this->tarjan($adjacentId); - $this->lowlink[$oid] = min($this->lowlink[$oid], $this->lowlink[$adjacentId]); - } elseif ($this->states[$adjacentId] === self::IN_PROGRESS) { - $this->lowlink[$oid] = min($this->lowlink[$oid], $this->dfs[$adjacentId]); - } - } - - $lowlink = $this->lowlink[$oid]; - if ($lowlink === $this->dfs[$oid]) { - $representingNode = null; - do { - $unwindOid = array_pop($this->stack); - - if (! $representingNode) { - $representingNode = $this->nodes[$unwindOid]; - } - - $this->representingNodes[$unwindOid] = $representingNode; - $this->states[$unwindOid] = self::VISITED; - } while ($unwindOid !== $oid); - } - } - - public function getNodeRepresentingStronglyConnectedComponent(object $node): object - { - $oid = spl_object_id($node); - - if (! isset($this->representingNodes[$oid])) { - throw new InvalidArgumentException('unknown node'); - } - - return $this->representingNodes[$oid]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort.php deleted file mode 100644 index 808bc0f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort.php +++ /dev/null @@ -1,155 +0,0 @@ - - */ - private array $nodes = []; - - /** - * DFS state for the different nodes, indexed by node object id and using one of - * this class' constants as value. - * - * @var array - */ - private array $states = []; - - /** - * Edges between the nodes. The first-level key is the object id of the outgoing - * node; the second array maps the destination node by object id as key. The final - * boolean value indicates whether the edge is optional or not. - * - * @var array> - */ - private array $edges = []; - - /** - * Builds up the result during the DFS. - * - * @var list - */ - private array $sortResult = []; - - public function addNode(object $node): void - { - $id = spl_object_id($node); - $this->nodes[$id] = $node; - $this->states[$id] = self::NOT_VISITED; - $this->edges[$id] = []; - } - - public function hasNode(object $node): bool - { - return isset($this->nodes[spl_object_id($node)]); - } - - /** - * Adds a new edge between two nodes to the graph - * - * @param bool $optional This indicates whether the edge may be ignored during the topological sort if it is necessary to break cycles. - */ - public function addEdge(object $from, object $to, bool $optional): void - { - $fromId = spl_object_id($from); - $toId = spl_object_id($to); - - if (isset($this->edges[$fromId][$toId]) && $this->edges[$fromId][$toId] === false) { - return; // we already know about this dependency, and it is not optional - } - - $this->edges[$fromId][$toId] = $optional; - } - - /** - * Returns a topological sort of all nodes. When we have an edge A->B between two nodes - * A and B, then B will be listed before A in the result. Visually speaking, when ordering - * the nodes in the result order from left to right, all edges point to the left. - * - * @return list - */ - public function sort(): array - { - foreach (array_keys($this->nodes) as $oid) { - if ($this->states[$oid] === self::NOT_VISITED) { - $this->visit($oid); - } - } - - return $this->sortResult; - } - - private function visit(int $oid): void - { - if ($this->states[$oid] === self::IN_PROGRESS) { - // This node is already on the current DFS stack. We've found a cycle! - throw new CycleDetectedException($this->nodes[$oid]); - } - - if ($this->states[$oid] === self::VISITED) { - // We've reached a node that we've already seen, including all - // other nodes that are reachable from here. We're done here, return. - return; - } - - $this->states[$oid] = self::IN_PROGRESS; - - // Continue the DFS downwards the edge list - foreach ($this->edges[$oid] as $adjacentId => $optional) { - try { - $this->visit($adjacentId); - } catch (CycleDetectedException $exception) { - if ($exception->isCycleCollected()) { - // There is a complete cycle downstream of the current node. We cannot - // do anything about that anymore. - throw $exception; - } - - if ($optional) { - // The current edge is part of a cycle, but it is optional and the closest - // such edge while backtracking. Break the cycle here by skipping the edge - // and continuing with the next one. - continue; - } - - // We have found a cycle and cannot break it at $edge. Best we can do - // is to backtrack from the current vertex, hoping that somewhere up the - // stack this can be salvaged. - $this->states[$oid] = self::NOT_VISITED; - $exception->addToCycle($this->nodes[$oid]); - - throw $exception; - } - } - - // We have traversed all edges and visited all other nodes reachable from here. - // So we're done with this vertex as well. - - $this->states[$oid] = self::VISITED; - $this->sortResult[] = $this->nodes[$oid]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort/CycleDetectedException.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort/CycleDetectedException.php deleted file mode 100644 index 3af5329..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/TopologicalSort/CycleDetectedException.php +++ /dev/null @@ -1,47 +0,0 @@ - */ - private array $cycle; - - /** - * Do we have the complete cycle collected? - */ - private bool $cycleCollected = false; - - public function __construct(private readonly object $startNode) - { - parent::__construct('A cycle has been detected, so a topological sort is not possible. The getCycle() method provides the list of nodes that form the cycle.'); - - $this->cycle = [$startNode]; - } - - /** @return list */ - public function getCycle(): array - { - return $this->cycle; - } - - public function addToCycle(object $node): void - { - array_unshift($this->cycle, $node); - - if ($node === $this->startNode) { - $this->cycleCollected = true; - } - } - - public function isCycleCollected(): bool - { - return $this->cycleCollected; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Internal/UnitOfWork/InsertBatch.php b/projects/priceservice/vendor/doctrine/orm/src/Internal/UnitOfWork/InsertBatch.php deleted file mode 100644 index c16cf8b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Internal/UnitOfWork/InsertBatch.php +++ /dev/null @@ -1,79 +0,0 @@ - $class - * @param non-empty-list $entities - */ - public function __construct( - public readonly ClassMetadata $class, - public array $entities, - ) { - } - - /** - * Note: Code in here is procedural/ugly due to it being in a hot path of the {@see UnitOfWork} - * - * This method will batch the given entity set by type, preserving their order. For example, - * given an input [A1, A2, A3, B1, B2, A4, A5], it will create an [[A1, A2, A3], [B1, B2], [A4, A5]] batch. - * - * Entities for which the identifier needs to be generated or fetched by a sequence are put as single - * items in a batch of their own, since it is unsafe to batch-insert them. - * - * @param list $entities - * - * @return list> - * - * @template TEntities of object - */ - public static function batchByEntityType( - EntityManagerInterface $entityManager, - array $entities, - ): array { - $currentClass = null; - $batches = []; - $batchIndex = -1; - - foreach ($entities as $entity) { - $entityClass = $entityManager->getClassMetadata($entity::class); - - if ( - $currentClass?->name !== $entityClass->name - || ! $entityClass->idGenerator instanceof AssignedGenerator - ) { - $currentClass = $entityClass; - $batches[] = new InsertBatch($entityClass, [$entity]); - $batchIndex += 1; - - continue; - } - - $batches[$batchIndex]->entities[] = $entity; - } - - return $batches; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/LazyCriteriaCollection.php b/projects/priceservice/vendor/doctrine/orm/src/LazyCriteriaCollection.php deleted file mode 100644 index ca67914..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/LazyCriteriaCollection.php +++ /dev/null @@ -1,96 +0,0 @@ - - * @implements Selectable - */ -class LazyCriteriaCollection extends AbstractLazyCollection implements Selectable -{ - private int|null $count = null; - - public function __construct( - protected EntityPersister $entityPersister, - protected Criteria $criteria, - ) { - } - - /** - * Do an efficient count on the collection - */ - public function count(): int - { - if ($this->isInitialized()) { - return $this->collection->count(); - } - - // Return cached result in case count query was already executed - if ($this->count !== null) { - return $this->count; - } - - return $this->count = $this->entityPersister->count($this->criteria); - } - - /** - * check if collection is empty without loading it - */ - public function isEmpty(): bool - { - if ($this->isInitialized()) { - return $this->collection->isEmpty(); - } - - return ! $this->count(); - } - - /** - * Do an optimized search of an element - * - * @param mixed $element The element to search for. - * - * @return bool TRUE if the collection contains $element, FALSE otherwise. - */ - public function contains(mixed $element): bool - { - if ($this->isInitialized()) { - return $this->collection->contains($element); - } - - return $this->entityPersister->exists($element, $this->criteria); - } - - /** @return ReadableCollection&Selectable */ - public function matching(Criteria $criteria): ReadableCollection&Selectable - { - $this->initialize(); - assert($this->collection instanceof Selectable); - - return $this->collection->matching($criteria); - } - - protected function doInitialize(): void - { - $elements = $this->entityPersister->loadCriteria($this->criteria); - $this->collection = new ArrayCollection($elements); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AnsiQuoteStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/AnsiQuoteStrategy.php deleted file mode 100644 index 872d4d6..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AnsiQuoteStrategy.php +++ /dev/null @@ -1,76 +0,0 @@ -fieldMappings[$fieldName]->columnName; - } - - public function getTableName(ClassMetadata $class, AbstractPlatform $platform): string - { - return $class->table['name']; - } - - /** - * {@inheritDoc} - */ - public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform): string - { - return $definition['sequenceName']; - } - - public function getJoinColumnName(JoinColumnMapping $joinColumn, ClassMetadata $class, AbstractPlatform $platform): string - { - return $joinColumn->name; - } - - public function getReferencedJoinColumnName( - JoinColumnMapping $joinColumn, - ClassMetadata $class, - AbstractPlatform $platform, - ): string { - return $joinColumn->referencedColumnName; - } - - public function getJoinTableName( - ManyToManyOwningSideMapping $association, - ClassMetadata $class, - AbstractPlatform $platform, - ): string { - return $association->joinTable->name; - } - - /** - * {@inheritDoc} - */ - public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array - { - return $class->identifier; - } - - public function getColumnAlias( - string $columnName, - int $counter, - AbstractPlatform $platform, - ClassMetadata|null $class = null, - ): string { - return $this->getSQLResultCasing($platform, $columnName . '_' . $counter); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ArrayAccessImplementation.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ArrayAccessImplementation.php deleted file mode 100644 index 3fd0988..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ArrayAccessImplementation.php +++ /dev/null @@ -1,70 +0,0 @@ -$offset); - } - - /** @param string $offset */ - public function offsetGet(mixed $offset): mixed - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11211', - 'Using ArrayAccess on %s is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead.', - static::class, - ); - - if (! property_exists($this, $offset)) { - throw new InvalidArgumentException('Undefined property: ' . $offset); - } - - return $this->$offset; - } - - /** @param string $offset */ - public function offsetSet(mixed $offset, mixed $value): void - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11211', - 'Using ArrayAccess on %s is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead.', - static::class, - ); - - $this->$offset = $value; - } - - /** @param string $offset */ - public function offsetUnset(mixed $offset): void - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11211', - 'Using ArrayAccess on %s is deprecated and will not be possible in Doctrine ORM 4.0. Use the corresponding property instead.', - static::class, - ); - - $this->$offset = null; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationMapping.php deleted file mode 100644 index e5ef0ff..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationMapping.php +++ /dev/null @@ -1,365 +0,0 @@ - */ -abstract class AssociationMapping implements ArrayAccess -{ - /** - * The names of persistence operations to cascade on the association. - * - * @var list<'persist'|'remove'|'detach'|'refresh'|'all'> - */ - public array $cascade = []; - - /** - * The fetching strategy to use for the association, usually defaults to FETCH_LAZY. - * - * @var ClassMetadata::FETCH_*|null - */ - public int|null $fetch = null; - - /** - * This is set when the association is inherited by this class from another - * (inheritance) parent entity class. The value is the FQCN of the - * topmost entity class that contains this association. (If there are - * transient classes in the class hierarchy, these are ignored, so the - * class property may in fact come from a class further up in the PHP class - * hierarchy.) To-many associations initially declared in mapped - * superclasses are not considered 'inherited' in the nearest - * entity subclasses. - * - * @var class-string|null - */ - public string|null $inherited = null; - - /** - * This is set when the association does not appear in the current class - * for the first time, but is initially declared in another parent - * entity or mapped superclass. The value is the FQCN of the - * topmost non-transient class that contains association information for - * this relationship. - * - * @var class-string|null - */ - public string|null $declared = null; - - public array|null $cache = null; - - public bool|null $id = null; - - public bool|null $isOnDeleteCascade = null; - - /** @var class-string|null */ - public string|null $originalClass = null; - - public string|null $originalField = null; - - public bool $orphanRemoval = false; - - public bool|null $unique = null; - - /** - * @param string $fieldName The name of the field in the entity - * the association is mapped to. - * @param class-string $sourceEntity The class name of the source entity. - * In the case of to-many associations - * initially present in mapped - * superclasses, the nearest - * entity subclasses will be - * considered the respective source - * entities. - * @param class-string $targetEntity The class name of the target entity. - * If it is fully-qualified it is used as - * is. If it is a simple, unqualified - * class name the namespace is assumed to - * be the same as the namespace of the - * source entity. - */ - final public function __construct( - public readonly string $fieldName, - public string $sourceEntity, - public readonly string $targetEntity, - ) { - } - - /** - * @param mixed[] $mappingArray - * @phpstan-param array{ - * fieldName: string, - * sourceEntity: class-string, - * targetEntity: class-string, - * cascade?: list<'persist'|'remove'|'detach'|'refresh'|'all'>, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): static - { - unset($mappingArray['isOwningSide'], $mappingArray['type']); - $mapping = new static( - $mappingArray['fieldName'], - $mappingArray['sourceEntity'], - $mappingArray['targetEntity'], - ); - unset($mappingArray['fieldName'], $mappingArray['sourceEntity'], $mappingArray['targetEntity']); - - foreach ($mappingArray as $key => $value) { - if ($key === 'joinTable') { - assert($mapping instanceof ManyToManyAssociationMapping); - - if ($value === [] || $value === null) { - continue; - } - - if (! $mapping instanceof ManyToManyOwningSideMapping) { - throw new MappingException( - "Mapping error on field '" . - $mapping->fieldName . "' in " . $mapping->sourceEntity . - " : 'joinTable' can only be set on many-to-many owning side.", - ); - } - - $mapping->joinTable = JoinTableMapping::fromMappingArray($value); - - continue; - } - - if (property_exists($mapping, $key)) { - $mapping->$key = $value; - } else { - throw new OutOfRangeException('Unknown property ' . $key . ' on class ' . static::class); - } - } - - return $mapping; - } - - /** - * @phpstan-assert-if-true OwningSideMapping $this - * @phpstan-assert-if-false InverseSideMapping $this - */ - final public function isOwningSide(): bool - { - return $this instanceof OwningSideMapping; - } - - /** @phpstan-assert-if-true ToOneAssociationMapping $this */ - final public function isToOne(): bool - { - return $this instanceof ToOneAssociationMapping; - } - - /** @phpstan-assert-if-true ToManyAssociationMapping $this */ - final public function isToMany(): bool - { - return $this instanceof ToManyAssociationMapping; - } - - /** @phpstan-assert-if-true OneToOneOwningSideMapping $this */ - final public function isOneToOneOwningSide(): bool - { - return $this->isOneToOne() && $this->isOwningSide(); - } - - /** @phpstan-assert-if-true OneToOneOwningSideMapping|ManyToOneAssociationMapping $this */ - final public function isToOneOwningSide(): bool - { - return $this->isToOne() && $this->isOwningSide(); - } - - /** @phpstan-assert-if-true ManyToManyOwningSideMapping $this */ - final public function isManyToManyOwningSide(): bool - { - return $this instanceof ManyToManyOwningSideMapping; - } - - /** @phpstan-assert-if-true OneToOneAssociationMapping $this */ - final public function isOneToOne(): bool - { - return $this instanceof OneToOneAssociationMapping; - } - - /** @phpstan-assert-if-true OneToManyAssociationMapping $this */ - final public function isOneToMany(): bool - { - return $this instanceof OneToManyAssociationMapping; - } - - /** @phpstan-assert-if-true ManyToOneAssociationMapping $this */ - final public function isManyToOne(): bool - { - return $this instanceof ManyToOneAssociationMapping; - } - - /** @phpstan-assert-if-true ManyToManyAssociationMapping $this */ - final public function isManyToMany(): bool - { - return $this instanceof ManyToManyAssociationMapping; - } - - /** @phpstan-assert-if-true ToManyAssociationMapping $this */ - final public function isOrdered(): bool - { - return $this->isToMany() && $this->orderBy() !== []; - } - - /** @phpstan-assert-if-true ToManyAssociationMapping $this */ - public function isIndexed(): bool - { - return false; - } - - final public function type(): int - { - return match (true) { - $this instanceof OneToOneAssociationMapping => ClassMetadata::ONE_TO_ONE, - $this instanceof OneToManyAssociationMapping => ClassMetadata::ONE_TO_MANY, - $this instanceof ManyToOneAssociationMapping => ClassMetadata::MANY_TO_ONE, - $this instanceof ManyToManyAssociationMapping => ClassMetadata::MANY_TO_MANY, - default => throw new Exception('Cannot determine type for ' . static::class), - }; - } - - /** @param string $offset */ - public function offsetExists(mixed $offset): bool - { - return isset($this->$offset) || in_array($offset, ['isOwningSide', 'type'], true); - } - - final public function offsetGet(mixed $offset): mixed - { - return match ($offset) { - 'isOwningSide' => $this->isOwningSide(), - 'type' => $this->type(), - 'isCascadeRemove' => $this->isCascadeRemove(), - 'isCascadePersist' => $this->isCascadePersist(), - 'isCascadeRefresh' => $this->isCascadeRefresh(), - 'isCascadeDetach' => $this->isCascadeDetach(), - default => property_exists($this, $offset) ? $this->$offset : throw new OutOfRangeException(sprintf( - 'Unknown property "%s" on class %s', - $offset, - static::class, - )), - }; - } - - public function offsetSet(mixed $offset, mixed $value): void - { - assert($offset !== null); - if (! property_exists($this, $offset)) { - throw new OutOfRangeException(sprintf( - 'Unknown property "%s" on class %s', - $offset, - static::class, - )); - } - - if ($offset === 'joinTable') { - $value = JoinTableMapping::fromMappingArray($value); - } - - $this->$offset = $value; - } - - /** @param string $offset */ - public function offsetUnset(mixed $offset): void - { - if (! property_exists($this, $offset)) { - throw new OutOfRangeException(sprintf( - 'Unknown property "%s" on class %s', - $offset, - static::class, - )); - } - - $this->$offset = null; - } - - final public function isCascadeRemove(): bool - { - return in_array('remove', $this->cascade, true); - } - - final public function isCascadePersist(): bool - { - return in_array('persist', $this->cascade, true); - } - - final public function isCascadeRefresh(): bool - { - return in_array('refresh', $this->cascade, true); - } - - final public function isCascadeDetach(): bool - { - return in_array('detach', $this->cascade, true); - } - - /** @return array */ - public function toArray(): array - { - $array = (array) $this; - - $array['isOwningSide'] = $this->isOwningSide(); - $array['type'] = $this->type(); - - return $array; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = ['fieldName', 'sourceEntity', 'targetEntity']; - - if (count($this->cascade) > 0) { - $serialized[] = 'cascade'; - } - - foreach ( - [ - 'fetch', - 'inherited', - 'declared', - 'cache', - 'originalClass', - 'originalField', - ] as $stringOrArrayProperty - ) { - if ($this->$stringOrArrayProperty !== null) { - $serialized[] = $stringOrArrayProperty; - } - } - - foreach (['id', 'orphanRemoval', 'isOnDeleteCascade', 'unique'] as $boolProperty) { - if ($this->$boolProperty) { - $serialized[] = $boolProperty; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverride.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverride.php deleted file mode 100644 index a10372d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverride.php +++ /dev/null @@ -1,51 +0,0 @@ -|null - */ - public readonly array|null $joinColumns; - - /** - * The join column that is being mapped to the persistent attribute. - * - * @var array|null - */ - public readonly array|null $inverseJoinColumns; - - /** - * @param string $name The name of the relationship property whose mapping is being overridden. - * @param JoinColumn|array $joinColumns - * @param JoinColumn|array $inverseJoinColumns - * @param JoinTable|null $joinTable The join table that maps the relationship. - * @param string|null $inversedBy The name of the association-field on the inverse-side. - * @phpstan-param 'LAZY'|'EAGER'|'EXTRA_LAZY'|null $fetch - */ - public function __construct( - public readonly string $name, - array|JoinColumn|null $joinColumns = null, - array|JoinColumn|null $inverseJoinColumns = null, - public readonly JoinTable|null $joinTable = null, - public readonly string|null $inversedBy = null, - public readonly string|null $fetch = null, - ) { - if ($joinColumns instanceof JoinColumn) { - $joinColumns = [$joinColumns]; - } - - if ($inverseJoinColumns instanceof JoinColumn) { - $inverseJoinColumns = [$inverseJoinColumns]; - } - - $this->joinColumns = $joinColumns; - $this->inverseJoinColumns = $inverseJoinColumns; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverrides.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverrides.php deleted file mode 100644 index 9fc6807..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AssociationOverrides.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ - public readonly array $overrides; - - /** @param array|AssociationOverride $overrides */ - public function __construct(array|AssociationOverride $overrides) - { - if (! is_array($overrides)) { - $overrides = [$overrides]; - } - - foreach ($overrides as $override) { - if (! ($override instanceof AssociationOverride)) { - throw MappingException::invalidOverrideType('AssociationOverride', $override); - } - } - - $this->overrides = array_values($overrides); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AttributeOverride.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/AttributeOverride.php deleted file mode 100644 index 8f0e70c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/AttributeOverride.php +++ /dev/null @@ -1,15 +0,0 @@ - - */ - public readonly array $overrides; - - /** @param array|AttributeOverride $overrides */ - public function __construct(array|AttributeOverride $overrides) - { - if (! is_array($overrides)) { - $overrides = [$overrides]; - } - - foreach ($overrides as $override) { - if (! ($override instanceof AttributeOverride)) { - throw MappingException::invalidOverrideType('AttributeOverride', $override); - } - } - - $this->overrides = array_values($overrides); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/AssociationBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/AssociationBuilder.php deleted file mode 100644 index ea9e13c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/AssociationBuilder.php +++ /dev/null @@ -1,171 +0,0 @@ -mapping['mappedBy'] = $fieldName; - - return $this; - } - - /** @return $this */ - public function inversedBy(string $fieldName): static - { - $this->mapping['inversedBy'] = $fieldName; - - return $this; - } - - /** @return $this */ - public function cascadeAll(): static - { - $this->mapping['cascade'] = ['ALL']; - - return $this; - } - - /** @return $this */ - public function cascadePersist(): static - { - $this->mapping['cascade'][] = 'persist'; - - return $this; - } - - /** @return $this */ - public function cascadeRemove(): static - { - $this->mapping['cascade'][] = 'remove'; - - return $this; - } - - /** @return $this */ - public function cascadeDetach(): static - { - $this->mapping['cascade'][] = 'detach'; - - return $this; - } - - /** @return $this */ - public function cascadeRefresh(): static - { - $this->mapping['cascade'][] = 'refresh'; - - return $this; - } - - /** @return $this */ - public function fetchExtraLazy(): static - { - $this->mapping['fetch'] = ClassMetadata::FETCH_EXTRA_LAZY; - - return $this; - } - - /** @return $this */ - public function fetchEager(): static - { - $this->mapping['fetch'] = ClassMetadata::FETCH_EAGER; - - return $this; - } - - /** @return $this */ - public function fetchLazy(): static - { - $this->mapping['fetch'] = ClassMetadata::FETCH_LAZY; - - return $this; - } - - /** - * Add Join Columns. - * - * @return $this - */ - public function addJoinColumn( - string $columnName, - string $referencedColumnName, - bool $nullable = true, - bool $unique = false, - string|null $onDelete = null, - string|null $columnDef = null, - ): static { - $this->joinColumns[] = [ - 'name' => $columnName, - 'referencedColumnName' => $referencedColumnName, - 'nullable' => $nullable, - 'unique' => $unique, - 'onDelete' => $onDelete, - 'columnDefinition' => $columnDef, - ]; - - return $this; - } - - /** - * Sets field as primary key. - * - * @return $this - */ - public function makePrimaryKey(): static - { - $this->mapping['id'] = true; - - return $this; - } - - /** - * Removes orphan entities when detached from their parent. - * - * @return $this - */ - public function orphanRemoval(): static - { - $this->mapping['orphanRemoval'] = true; - - return $this; - } - - /** @throws InvalidArgumentException */ - public function build(): ClassMetadataBuilder - { - $mapping = $this->mapping; - if ($this->joinColumns) { - $mapping['joinColumns'] = $this->joinColumns; - } - - $cm = $this->builder->getClassMetadata(); - if ($this->type === ClassMetadata::MANY_TO_ONE) { - $cm->mapManyToOne($mapping); - } elseif ($this->type === ClassMetadata::ONE_TO_ONE) { - $cm->mapOneToOne($mapping); - } else { - throw new InvalidArgumentException('Type should be a ToOne Association here'); - } - - return $this->builder; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ClassMetadataBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ClassMetadataBuilder.php deleted file mode 100644 index 2e9fca1..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ClassMetadataBuilder.php +++ /dev/null @@ -1,426 +0,0 @@ -cm; - } - - /** - * Marks the class as mapped superclass. - * - * @return $this - */ - public function setMappedSuperClass(): static - { - $this->cm->isMappedSuperclass = true; - $this->cm->isEmbeddedClass = false; - - return $this; - } - - /** - * Marks the class as embeddable. - * - * @return $this - */ - public function setEmbeddable(): static - { - $this->cm->isEmbeddedClass = true; - $this->cm->isMappedSuperclass = false; - - return $this; - } - - /** - * Adds and embedded class - * - * @param class-string $class - * - * @return $this - */ - public function addEmbedded(string $fieldName, string $class, string|false|null $columnPrefix = null): static - { - $this->cm->mapEmbedded( - [ - 'fieldName' => $fieldName, - 'class' => $class, - 'columnPrefix' => $columnPrefix, - ], - ); - - return $this; - } - - /** - * Sets custom Repository class name. - * - * @return $this - */ - public function setCustomRepositoryClass(string $repositoryClassName): static - { - $this->cm->setCustomRepositoryClass($repositoryClassName); - - return $this; - } - - /** - * Marks class read only. - * - * @return $this - */ - public function setReadOnly(): static - { - $this->cm->markReadOnly(); - - return $this; - } - - /** - * Sets the table name. - * - * @return $this - */ - public function setTable(string $name): static - { - $this->cm->setPrimaryTable(['name' => $name]); - - return $this; - } - - /** - * Adds Index. - * - * @phpstan-param list $columns - * - * @return $this - */ - public function addIndex(array $columns, string $name): static - { - if (! isset($this->cm->table['indexes'])) { - $this->cm->table['indexes'] = []; - } - - $this->cm->table['indexes'][$name] = ['columns' => $columns]; - - return $this; - } - - /** - * Adds Unique Constraint. - * - * @phpstan-param list $columns - * - * @return $this - */ - public function addUniqueConstraint(array $columns, string $name): static - { - if (! isset($this->cm->table['uniqueConstraints'])) { - $this->cm->table['uniqueConstraints'] = []; - } - - $this->cm->table['uniqueConstraints'][$name] = ['columns' => $columns]; - - return $this; - } - - /** - * Sets class as root of a joined table inheritance hierarchy. - * - * @return $this - */ - public function setJoinedTableInheritance(): static - { - $this->cm->setInheritanceType(ClassMetadata::INHERITANCE_TYPE_JOINED); - - return $this; - } - - /** - * Sets class as root of a single table inheritance hierarchy. - * - * @return $this - */ - public function setSingleTableInheritance(): static - { - $this->cm->setInheritanceType(ClassMetadata::INHERITANCE_TYPE_SINGLE_TABLE); - - return $this; - } - - /** - * Sets the discriminator column details. - * - * @param class-string|null $enumType - * @param array $options - * - * @return $this - */ - public function setDiscriminatorColumn( - string $name, - string $type = 'string', - int $length = 255, - string|null $columnDefinition = null, - string|null $enumType = null, - array $options = [], - ): static { - $this->cm->setDiscriminatorColumn( - [ - 'name' => $name, - 'type' => $type, - 'length' => $length, - 'columnDefinition' => $columnDefinition, - 'enumType' => $enumType, - 'options' => $options, - ], - ); - - return $this; - } - - /** - * Adds a subclass to this inheritance hierarchy. - * - * @return $this - */ - public function addDiscriminatorMapClass(string $name, string $class): static - { - $this->cm->addDiscriminatorMapClass($name, $class); - - return $this; - } - - /** - * Sets deferred explicit change tracking policy. - * - * @return $this - */ - public function setChangeTrackingPolicyDeferredExplicit(): static - { - $this->cm->setChangeTrackingPolicy(ClassMetadata::CHANGETRACKING_DEFERRED_EXPLICIT); - - return $this; - } - - /** - * Adds lifecycle event. - * - * @return $this - */ - public function addLifecycleEvent(string $methodName, string $event): static - { - $this->cm->addLifecycleCallback($methodName, $event); - - return $this; - } - - /** - * Adds Field. - * - * @phpstan-param array $mapping - * - * @return $this - */ - public function addField(string $name, string $type, array $mapping = []): static - { - $mapping['fieldName'] = $name; - $mapping['type'] = $type; - - $this->cm->mapField($mapping); - - return $this; - } - - /** - * Creates a field builder. - */ - public function createField(string $name, string $type): FieldBuilder - { - return new FieldBuilder( - $this, - [ - 'fieldName' => $name, - 'type' => $type, - ], - ); - } - - /** - * Creates an embedded builder. - */ - public function createEmbedded(string $fieldName, string $class): EmbeddedBuilder - { - return new EmbeddedBuilder( - $this, - [ - 'fieldName' => $fieldName, - 'class' => $class, - 'columnPrefix' => null, - ], - ); - } - - /** - * Adds a simple many to one association, optionally with the inversed by field. - */ - public function addManyToOne( - string $name, - string $targetEntity, - string|null $inversedBy = null, - ): ClassMetadataBuilder { - $builder = $this->createManyToOne($name, $targetEntity); - - if ($inversedBy !== null) { - $builder->inversedBy($inversedBy); - } - - return $builder->build(); - } - - /** - * Creates a ManyToOne Association Builder. - * - * Note: This method does not add the association, you have to call build() on the AssociationBuilder. - */ - public function createManyToOne(string $name, string $targetEntity): AssociationBuilder - { - return new AssociationBuilder( - $this, - [ - 'fieldName' => $name, - 'targetEntity' => $targetEntity, - ], - ClassMetadata::MANY_TO_ONE, - ); - } - - /** - * Creates a OneToOne Association Builder. - */ - public function createOneToOne(string $name, string $targetEntity): AssociationBuilder - { - return new AssociationBuilder( - $this, - [ - 'fieldName' => $name, - 'targetEntity' => $targetEntity, - ], - ClassMetadata::ONE_TO_ONE, - ); - } - - /** - * Adds simple inverse one-to-one association. - */ - public function addInverseOneToOne(string $name, string $targetEntity, string $mappedBy): ClassMetadataBuilder - { - $builder = $this->createOneToOne($name, $targetEntity); - $builder->mappedBy($mappedBy); - - return $builder->build(); - } - - /** - * Adds simple owning one-to-one association. - */ - public function addOwningOneToOne( - string $name, - string $targetEntity, - string|null $inversedBy = null, - ): ClassMetadataBuilder { - $builder = $this->createOneToOne($name, $targetEntity); - - if ($inversedBy !== null) { - $builder->inversedBy($inversedBy); - } - - return $builder->build(); - } - - /** - * Creates a ManyToMany Association Builder. - */ - public function createManyToMany(string $name, string $targetEntity): ManyToManyAssociationBuilder - { - return new ManyToManyAssociationBuilder( - $this, - [ - 'fieldName' => $name, - 'targetEntity' => $targetEntity, - ], - ClassMetadata::MANY_TO_MANY, - ); - } - - /** - * Adds a simple owning many to many association. - */ - public function addOwningManyToMany( - string $name, - string $targetEntity, - string|null $inversedBy = null, - ): ClassMetadataBuilder { - $builder = $this->createManyToMany($name, $targetEntity); - - if ($inversedBy !== null) { - $builder->inversedBy($inversedBy); - } - - return $builder->build(); - } - - /** - * Adds a simple inverse many to many association. - */ - public function addInverseManyToMany(string $name, string $targetEntity, string $mappedBy): ClassMetadataBuilder - { - $builder = $this->createManyToMany($name, $targetEntity); - $builder->mappedBy($mappedBy); - - return $builder->build(); - } - - /** - * Creates a one to many association builder. - */ - public function createOneToMany(string $name, string $targetEntity): OneToManyAssociationBuilder - { - return new OneToManyAssociationBuilder( - $this, - [ - 'fieldName' => $name, - 'targetEntity' => $targetEntity, - ], - ClassMetadata::ONE_TO_MANY, - ); - } - - /** - * Adds simple OneToMany association. - */ - public function addOneToMany(string $name, string $targetEntity, string $mappedBy): ClassMetadataBuilder - { - $builder = $this->createOneToMany($name, $targetEntity); - $builder->mappedBy($mappedBy); - - return $builder->build(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EmbeddedBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EmbeddedBuilder.php deleted file mode 100644 index b9d2127..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EmbeddedBuilder.php +++ /dev/null @@ -1,46 +0,0 @@ -mapping['columnPrefix'] = $columnPrefix; - - return $this; - } - - /** - * Finalizes this embeddable and attach it to the ClassMetadata. - * - * Without this call an EmbeddedBuilder has no effect on the ClassMetadata. - */ - public function build(): ClassMetadataBuilder - { - $cm = $this->builder->getClassMetadata(); - - $cm->mapEmbedded($this->mapping); - - return $this->builder; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EntityListenerBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EntityListenerBuilder.php deleted file mode 100644 index a0b14b9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/EntityListenerBuilder.php +++ /dev/null @@ -1,55 +0,0 @@ - true, - Events::postRemove => true, - Events::prePersist => true, - Events::postPersist => true, - Events::preUpdate => true, - Events::postUpdate => true, - Events::postLoad => true, - Events::preFlush => true, - ]; - - /** - * Lookup the entity class to find methods that match to event lifecycle names - * - * @param ClassMetadata $metadata The entity metadata. - * @param string $className The listener class name. - * - * @throws MappingException When the listener class not found. - */ - public static function bindEntityListener(ClassMetadata $metadata, string $className): void - { - $class = $metadata->fullyQualifiedClassName($className); - - if (! class_exists($class)) { - throw MappingException::entityListenerClassNotFound($class, $className); - } - - foreach (get_class_methods($class) as $method) { - if (! isset(self::EVENTS[$method])) { - continue; - } - - $metadata->addEntityListener($method, $class, $method); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/FieldBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/FieldBuilder.php deleted file mode 100644 index c1ba8e1..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/FieldBuilder.php +++ /dev/null @@ -1,255 +0,0 @@ -mapping['length'] = $length; - - return $this; - } - - /** - * Sets nullable. - * - * @return $this - */ - public function nullable(bool $flag = true): static - { - $this->mapping['nullable'] = $flag; - - return $this; - } - - /** - * Sets Unique. - * - * @return $this - */ - public function unique(bool $flag = true): static - { - $this->mapping['unique'] = $flag; - - return $this; - } - - /** - * Sets indexed. - * - * @return $this - */ - public function index(bool $flag = true): static - { - $this->mapping['index'] = $flag; - - return $this; - } - - /** - * Sets column name. - * - * @return $this - */ - public function columnName(string $name): static - { - $this->mapping['columnName'] = $name; - - return $this; - } - - /** - * Sets Precision. - * - * @return $this - */ - public function precision(int $p): static - { - $this->mapping['precision'] = $p; - - return $this; - } - - /** - * Sets insertable. - * - * @return $this - */ - public function insertable(bool $flag = true): self - { - if (! $flag) { - $this->mapping['notInsertable'] = true; - } - - return $this; - } - - /** - * Sets updatable. - * - * @return $this - */ - public function updatable(bool $flag = true): self - { - if (! $flag) { - $this->mapping['notUpdatable'] = true; - } - - return $this; - } - - /** - * Sets scale. - * - * @return $this - */ - public function scale(int $s): static - { - $this->mapping['scale'] = $s; - - return $this; - } - - /** - * Sets field as primary key. - * - * @return $this - */ - public function makePrimaryKey(): static - { - $this->mapping['id'] = true; - - return $this; - } - - /** - * Sets an option. - * - * @return $this - */ - public function option(string $name, mixed $value): static - { - $this->mapping['options'][$name] = $value; - - return $this; - } - - /** @return $this */ - public function generatedValue(string $strategy = 'AUTO'): static - { - $this->generatedValue = $strategy; - - return $this; - } - - /** - * Sets field versioned. - * - * @return $this - */ - public function isVersionField(): static - { - $this->version = true; - - return $this; - } - - /** - * Sets Sequence Generator. - * - * @return $this - */ - public function setSequenceGenerator(string $sequenceName, int $allocationSize = 1, int $initialValue = 1): static - { - $this->sequenceDef = [ - 'sequenceName' => $sequenceName, - 'allocationSize' => $allocationSize, - 'initialValue' => $initialValue, - ]; - - return $this; - } - - /** - * Sets column definition. - * - * @return $this - */ - public function columnDefinition(string $def): static - { - $this->mapping['columnDefinition'] = $def; - - return $this; - } - - /** - * Set the FQCN of the custom ID generator. - * This class must extend \Doctrine\ORM\Id\AbstractIdGenerator. - * - * @return $this - */ - public function setCustomIdGenerator(string $customIdGenerator): static - { - $this->customIdGenerator = $customIdGenerator; - - return $this; - } - - /** - * Finalizes this field and attach it to the ClassMetadata. - * - * Without this call a FieldBuilder has no effect on the ClassMetadata. - */ - public function build(): ClassMetadataBuilder - { - $cm = $this->builder->getClassMetadata(); - if ($this->generatedValue) { - $cm->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_' . $this->generatedValue)); - } - - if ($this->version) { - $cm->setVersionMapping($this->mapping); - } - - $cm->mapField($this->mapping); - if ($this->sequenceDef) { - $cm->setSequenceGeneratorDefinition($this->sequenceDef); - } - - if ($this->customIdGenerator) { - $cm->setCustomGeneratorDefinition(['class' => $this->customIdGenerator]); - } - - return $this->builder; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ManyToManyAssociationBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ManyToManyAssociationBuilder.php deleted file mode 100644 index b83a8ba..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/ManyToManyAssociationBuilder.php +++ /dev/null @@ -1,73 +0,0 @@ -joinTableName = $name; - - return $this; - } - - /** - * Adds Inverse Join Columns. - * - * @return $this - */ - public function addInverseJoinColumn( - string $columnName, - string $referencedColumnName, - bool $nullable = true, - bool $unique = false, - string|null $onDelete = null, - string|null $columnDef = null, - ): static { - $this->inverseJoinColumns[] = [ - 'name' => $columnName, - 'referencedColumnName' => $referencedColumnName, - 'nullable' => $nullable, - 'unique' => $unique, - 'onDelete' => $onDelete, - 'columnDefinition' => $columnDef, - ]; - - return $this; - } - - public function build(): ClassMetadataBuilder - { - $mapping = $this->mapping; - $mapping['joinTable'] = []; - if ($this->joinColumns) { - $mapping['joinTable']['joinColumns'] = $this->joinColumns; - } - - if ($this->inverseJoinColumns) { - $mapping['joinTable']['inverseJoinColumns'] = $this->inverseJoinColumns; - } - - if ($this->joinTableName) { - $mapping['joinTable']['name'] = $this->joinTableName; - } - - $cm = $this->builder->getClassMetadata(); - $cm->mapManyToMany($mapping); - - return $this->builder; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/OneToManyAssociationBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/OneToManyAssociationBuilder.php deleted file mode 100644 index 0b0e1aa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Builder/OneToManyAssociationBuilder.php +++ /dev/null @@ -1,46 +0,0 @@ - $fieldNames - * - * @return $this - */ - public function setOrderBy(array $fieldNames): static - { - $this->mapping['orderBy'] = $fieldNames; - - return $this; - } - - /** @return $this */ - public function setIndexBy(string $fieldName): static - { - $this->mapping['indexBy'] = $fieldName; - - return $this; - } - - public function build(): ClassMetadataBuilder - { - $mapping = $this->mapping; - if ($this->joinColumns) { - $mapping['joinColumns'] = $this->joinColumns; - } - - $cm = $this->builder->getClassMetadata(); - $cm->mapOneToMany($mapping); - - return $this->builder; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Cache.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Cache.php deleted file mode 100644 index 5eda277..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Cache.php +++ /dev/null @@ -1,19 +0,0 @@ - $typedFieldMappers */ - private readonly array $typedFieldMappers; - - public function __construct(TypedFieldMapper ...$typedFieldMappers) - { - self::validateVariadicParameter($typedFieldMappers); - - $this->typedFieldMappers = $typedFieldMappers; - } - - /** - * {@inheritDoc} - */ - public function validateAndComplete(array $mapping, ReflectionProperty $field): array - { - foreach ($this->typedFieldMappers as $typedFieldMapper) { - $mapping = $typedFieldMapper->validateAndComplete($mapping, $field); - } - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ChangeTrackingPolicy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ChangeTrackingPolicy.php deleted file mode 100644 index f72fa5c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ChangeTrackingPolicy.php +++ /dev/null @@ -1,17 +0,0 @@ -ClassMetadata instance holds all the object-relational mapping metadata - * of an entity and its associations. - * - * Once populated, ClassMetadata instances are usually cached in a serialized form. - * - * IMPORTANT NOTE: - * - * The fields of this class are only public for 2 reasons: - * 1) To allow fast READ access. - * 2) To drastically reduce the size of a serialized instance (private/protected members - * get the whole class name, namespace inclusive, prepended to every property in - * the serialized representation). - * - * @phpstan-type ConcreteAssociationMapping = OneToOneOwningSideMapping|OneToOneInverseSideMapping|ManyToOneAssociationMapping|OneToManyAssociationMapping|ManyToManyOwningSideMapping|ManyToManyInverseSideMapping - * @template-covariant T of object - * @template-implements PersistenceClassMetadata - */ -class ClassMetadata implements PersistenceClassMetadata, Stringable -{ - use GetReflectionClassImplementation; - - /* The inheritance mapping types */ - /** - * NONE means the class does not participate in an inheritance hierarchy - * and therefore does not need an inheritance mapping type. - */ - public const INHERITANCE_TYPE_NONE = 1; - - /** - * JOINED means the class will be persisted according to the rules of - * Class Table Inheritance. - */ - public const INHERITANCE_TYPE_JOINED = 2; - - /** - * SINGLE_TABLE means the class will be persisted according to the rules of - * Single Table Inheritance. - */ - public const INHERITANCE_TYPE_SINGLE_TABLE = 3; - - /* The Id generator types. */ - /** - * AUTO means the generator type will depend on what the used platform prefers. - * Offers full portability. - */ - public const GENERATOR_TYPE_AUTO = 1; - - /** - * SEQUENCE means a separate sequence object will be used. Platforms that do - * not have native sequence support may emulate it. Full portability is currently - * not guaranteed. - */ - public const GENERATOR_TYPE_SEQUENCE = 2; - - /** - * IDENTITY means an identity column is used for id generation. The database - * will fill in the id column on insertion. Platforms that do not support - * native identity columns may emulate them. Full portability is currently - * not guaranteed. - */ - public const GENERATOR_TYPE_IDENTITY = 4; - - /** - * NONE means the class does not have a generated id. That means the class - * must have a natural, manually assigned id. - */ - public const GENERATOR_TYPE_NONE = 5; - - /** - * CUSTOM means that customer will use own ID generator that supposedly work - */ - public const GENERATOR_TYPE_CUSTOM = 7; - - /** - * DEFERRED_IMPLICIT means that changes of entities are calculated at commit-time - * by doing a property-by-property comparison with the original data. This will - * be done for all entities that are in MANAGED state at commit-time. - * - * This is the default change tracking policy. - */ - public const CHANGETRACKING_DEFERRED_IMPLICIT = 1; - - /** - * DEFERRED_EXPLICIT means that changes of entities are calculated at commit-time - * by doing a property-by-property comparison with the original data. This will - * be done only for entities that were explicitly saved (through persist() or a cascade). - */ - public const CHANGETRACKING_DEFERRED_EXPLICIT = 2; - - /** - * Specifies that an association is to be fetched when it is first accessed. - */ - public const FETCH_LAZY = 2; - - /** - * Specifies that an association is to be fetched when the owner of the - * association is fetched. - */ - public const FETCH_EAGER = 3; - - /** - * Specifies that an association is to be fetched lazy (on first access) and that - * commands such as Collection#count, Collection#slice are issued directly against - * the database if the collection is not yet initialized. - */ - public const FETCH_EXTRA_LAZY = 4; - - /** - * Identifies a one-to-one association. - */ - public const ONE_TO_ONE = 1; - - /** - * Identifies a many-to-one association. - */ - public const MANY_TO_ONE = 2; - - /** - * Identifies a one-to-many association. - */ - public const ONE_TO_MANY = 4; - - /** - * Identifies a many-to-many association. - */ - public const MANY_TO_MANY = 8; - - /** - * Combined bitmask for to-one (single-valued) associations. - */ - public const TO_ONE = 3; - - /** - * Combined bitmask for to-many (collection-valued) associations. - */ - public const TO_MANY = 12; - - /** - * ReadOnly cache can do reads, inserts and deletes, cannot perform updates or employ any locks, - */ - public const CACHE_USAGE_READ_ONLY = 1; - - /** - * Nonstrict Read Write Cache doesn’t employ any locks but can do inserts, update and deletes. - */ - public const CACHE_USAGE_NONSTRICT_READ_WRITE = 2; - - /** - * Read Write Attempts to lock the entity before update/delete. - */ - public const CACHE_USAGE_READ_WRITE = 3; - - /** - * The value of this column is never generated by the database. - */ - public const GENERATED_NEVER = 0; - - /** - * The value of this column is generated by the database on INSERT, but not on UPDATE. - */ - public const GENERATED_INSERT = 1; - - /** - * The value of this column is generated by the database on both INSERT and UDPATE statements. - */ - public const GENERATED_ALWAYS = 2; - - /** - * READ-ONLY: The namespace the entity class is contained in. - * - * @todo Not really needed. Usage could be localized. - */ - public string|null $namespace = null; - - /** - * READ-ONLY: The name of the entity class that is at the root of the mapped entity inheritance - * hierarchy. If the entity is not part of a mapped inheritance hierarchy this is the same - * as {@link $name}. - * - * @phpstan-var class-string - */ - public string $rootEntityName; - - /** - * READ-ONLY: The definition of custom generator. Only used for CUSTOM - * generator type - * - * The definition has the following structure: - * - * array( - * 'class' => 'ClassName', - * ) - * - * - * @todo Merge with tableGeneratorDefinition into generic generatorDefinition - * @var array|null - */ - public array|null $customGeneratorDefinition = null; - - /** - * The name of the custom repository class used for the entity class. - * (Optional). - * - * @phpstan-var ?class-string - */ - public string|null $customRepositoryClassName = null; - - /** - * READ-ONLY: Whether this class describes the mapping of a mapped superclass. - */ - public bool $isMappedSuperclass = false; - - /** - * READ-ONLY: Whether this class describes the mapping of an embeddable class. - */ - public bool $isEmbeddedClass = false; - - /** - * READ-ONLY: The names of the parent entity classes (ancestors), starting with the - * nearest one and ending with the root entity class. - * - * @phpstan-var list - */ - public array $parentClasses = []; - - /** - * READ-ONLY: For classes in inheritance mapping hierarchies, this field contains the names of all - * entity subclasses of this class. These may also be abstract classes. - * - * This list is used, for example, to enumerate all necessary tables in JTI when querying for root - * or subclass entities, or to gather all fields comprised in an entity inheritance tree. - * - * For classes that do not use STI/JTI, this list is empty. - * - * Implementation note: - * - * In PHP, there is no general way to discover all subclasses of a given class at runtime. For that - * reason, the list of classes given in the discriminator map at the root entity is considered - * authoritative. The discriminator map must contain all concrete classes that can - * appear in the particular inheritance hierarchy tree. Since there can be no instances of abstract - * entity classes, users are not required to list such classes with a discriminator value. - * - * The possibly remaining "gaps" for abstract entity classes are filled after the class metadata for the - * root entity has been loaded. - * - * For subclasses of such root entities, the list can be reused/passed downwards, it only needs to - * be filtered accordingly (only keep remaining subclasses) - * - * @phpstan-var list - */ - public array $subClasses = []; - - /** - * READ-ONLY: The names of all embedded classes based on properties. - * - * @phpstan-var array - */ - public array $embeddedClasses = []; - - /** - * READ-ONLY: The field names of all fields that are part of the identifier/primary key - * of the mapped entity class. - * - * @phpstan-var list - */ - public array $identifier = []; - - /** - * READ-ONLY: The inheritance mapping type used by the class. - * - * @phpstan-var self::INHERITANCE_TYPE_* - */ - public int $inheritanceType = self::INHERITANCE_TYPE_NONE; - - /** - * READ-ONLY: The Id generator type used by the class. - * - * @phpstan-var self::GENERATOR_TYPE_* - */ - public int $generatorType = self::GENERATOR_TYPE_NONE; - - /** - * READ-ONLY: The field mappings of the class. - * Keys are field names and values are FieldMapping instances - * - * @var array - */ - public array $fieldMappings = []; - - /** - * READ-ONLY: An array of field names. Used to look up field names from column names. - * Keys are column names and values are field names. - * - * @phpstan-var array - */ - public array $fieldNames = []; - - /** - * READ-ONLY: A map of field names to column names. Keys are field names and values column names. - * Used to look up column names from field names. - * This is the reverse lookup map of $_fieldNames. - * - * @deprecated 3.0 Remove this. - * - * @var mixed[] - */ - public array $columnNames = []; - - /** - * READ-ONLY: The discriminator value of this class. - * - * This does only apply to the JOINED and SINGLE_TABLE inheritance mapping strategies - * where a discriminator column is used. - * - * @see discriminatorColumn - */ - public mixed $discriminatorValue = null; - - /** - * READ-ONLY: The discriminator map of all mapped classes in the hierarchy. - * - * This does only apply to the JOINED and SINGLE_TABLE inheritance mapping strategies - * where a discriminator column is used. - * - * @see discriminatorColumn - * - * @var array - * - * @phpstan-var array - */ - public array $discriminatorMap = []; - - /** - * READ-ONLY: The definition of the discriminator column used in JOINED and SINGLE_TABLE - * inheritance mappings. - */ - public DiscriminatorColumnMapping|null $discriminatorColumn = null; - - /** - * READ-ONLY: The primary table definition. The definition is an array with the - * following entries: - * - * name => - * schema => - * indexes => array - * uniqueConstraints => array - * - * @var mixed[] - * @phpstan-var array{ - * name: string, - * schema?: string, - * indexes?: array, - * uniqueConstraints?: array, - * options?: array, - * quoted?: bool - * } - */ - public array $table; - - /** - * READ-ONLY: The registered lifecycle callbacks for entities of this class. - * - * @phpstan-var array> - */ - public array $lifecycleCallbacks = []; - - /** - * READ-ONLY: The registered entity listeners. - * - * @phpstan-var array> - */ - public array $entityListeners = []; - - /** - * READ-ONLY: The association mappings of this class. - * - * A join table definition has the following structure: - *
-     * array(
-     *     'name' => ,
-     *      'joinColumns' => array(),
-     *      'inverseJoinColumns' => array()
-     * )
-     * 
- * - * @phpstan-var array - */ - public array $associationMappings = []; - - /** - * READ-ONLY: Flag indicating whether the identifier/primary key of the class is composite. - */ - public bool $isIdentifierComposite = false; - - /** - * READ-ONLY: Flag indicating whether the identifier/primary key contains at least one foreign key association. - * - * This flag is necessary because some code blocks require special treatment of this cases. - */ - public bool $containsForeignIdentifier = false; - - /** - * READ-ONLY: Flag indicating whether the identifier/primary key contains at least one ENUM type. - * - * This flag is necessary because some code blocks require special treatment of this cases. - */ - public bool $containsEnumIdentifier = false; - - /** - * READ-ONLY: The ID generator used for generating IDs for this class. - * - * @todo Remove! - */ - public AbstractIdGenerator $idGenerator; - - /** - * READ-ONLY: The definition of the sequence generator of this class. Only used for the - * SEQUENCE generation strategy. - * - * The definition has the following structure: - * - * array( - * 'sequenceName' => 'name', - * 'allocationSize' => '20', - * 'initialValue' => '1' - * ) - * - * - * @var array|null - * @phpstan-var array{sequenceName: string, allocationSize: string, initialValue: string, quoted?: mixed}|null - * @todo Merge with tableGeneratorDefinition into generic generatorDefinition - */ - public array|null $sequenceGeneratorDefinition = null; - - /** - * READ-ONLY: The policy used for change-tracking on entities of this class. - */ - public int $changeTrackingPolicy = self::CHANGETRACKING_DEFERRED_IMPLICIT; - - /** - * READ-ONLY: A Flag indicating whether one or more columns of this class - * have to be reloaded after insert / update operations. - */ - public bool $requiresFetchAfterChange = false; - - /** - * READ-ONLY: A flag for whether or not instances of this class are to be versioned - * with optimistic locking. - */ - public bool $isVersioned = false; - - /** - * READ-ONLY: The name of the field which is used for versioning in optimistic locking (if any). - */ - public string|null $versionField = null; - - /** @var mixed[]|null */ - public array|null $cache = null; - - /** - * The ReflectionClass instance of the mapped class. - * - * @var ReflectionClass|null - */ - public ReflectionClass|null $reflClass = null; - - /** - * Is this entity marked as "read-only"? - * - * That means it is never considered for change-tracking in the UnitOfWork. It is a very helpful performance - * optimization for entities that are immutable, either in your domain or through the relation database - * (coming from a view, or a history table for example). - */ - public bool $isReadOnly = false; - - /** - * NamingStrategy determining the default column and table names. - */ - protected NamingStrategy $namingStrategy; - - /** - * The ReflectionProperty instances of the mapped class. - * - * @var LegacyReflectionFields|array - */ - public LegacyReflectionFields|array $reflFields = []; - - /** @var array */ - public array $propertyAccessors = []; - - private InstantiatorInterface|null $instantiator = null; - - private readonly TypedFieldMapper $typedFieldMapper; - - /** - * Initializes a new ClassMetadata instance that will hold the object-relational mapping - * metadata of the class with the given name. - * - * @param string $name The name of the entity class the new instance is used for. - * @phpstan-param class-string $name - */ - public function __construct(public string $name, NamingStrategy|null $namingStrategy = null, TypedFieldMapper|null $typedFieldMapper = null) - { - $this->rootEntityName = $name; - $this->namingStrategy = $namingStrategy ?? new DefaultNamingStrategy(); - $this->instantiator = new Instantiator(); - $this->typedFieldMapper = $typedFieldMapper ?? new DefaultTypedFieldMapper(); - } - - /** - * Gets the ReflectionProperties of the mapped class. - * - * @return LegacyReflectionFields|ReflectionProperty[] An array of ReflectionProperty instances. - * @phpstan-return LegacyReflectionFields|array - */ - public function getReflectionProperties(): array|LegacyReflectionFields - { - return $this->reflFields; - } - - /** - * Gets the ReflectionProperties of the mapped class. - * - * @return PropertyAccessor[] An array of PropertyAccessor instances. - */ - public function getPropertyAccessors(): array - { - return $this->propertyAccessors; - } - - /** - * Gets a ReflectionProperty for a specific field of the mapped class. - */ - public function getReflectionProperty(string $name): ReflectionProperty|null - { - return $this->reflFields[$name]; - } - - public function getPropertyAccessor(string $name): PropertyAccessor|null - { - return $this->propertyAccessors[$name] ?? null; - } - - /** @throws BadMethodCallException If the class has a composite identifier. */ - public function getSingleIdReflectionProperty(): ReflectionProperty|null - { - if ($this->isIdentifierComposite) { - throw new BadMethodCallException('Class ' . $this->name . ' has a composite identifier.'); - } - - return $this->reflFields[$this->identifier[0]]; - } - - /** @throws BadMethodCallException If the class has a composite identifier. */ - public function getSingleIdPropertyAccessor(): PropertyAccessor|null - { - if ($this->isIdentifierComposite) { - throw new BadMethodCallException('Class ' . $this->name . ' has a composite identifier.'); - } - - return $this->propertyAccessors[$this->identifier[0]]; - } - - /** - * Extracts the identifier values of an entity of this class. - * - * For composite identifiers, the identifier values are returned as an array - * with the same order as the field order in {@link identifier}. - * - * @return array - */ - public function getIdentifierValues(object $entity): array - { - if ($this->isIdentifierComposite) { - $id = []; - - foreach ($this->identifier as $idField) { - $value = $this->propertyAccessors[$idField]->getValue($entity); - - if ($value !== null) { - $id[$idField] = $value; - } - } - - return $id; - } - - $id = $this->identifier[0]; - $value = $this->propertyAccessors[$id]->getValue($entity); - - if ($value === null) { - return []; - } - - return [$id => $value]; - } - - /** - * Populates the entity identifier of an entity. - * - * @phpstan-param array $id - * - * @todo Rename to assignIdentifier() - */ - public function setIdentifierValues(object $entity, array $id): void - { - foreach ($id as $idField => $idValue) { - $this->propertyAccessors[$idField]->setValue($entity, $idValue); - } - } - - /** - * Sets the specified field to the specified value on the given entity. - */ - public function setFieldValue(object $entity, string $field, mixed $value): void - { - $this->propertyAccessors[$field]->setValue($entity, $value); - } - - /** - * Gets the specified field's value off the given entity. - */ - public function getFieldValue(object $entity, string $field): mixed - { - return $this->propertyAccessors[$field]->getValue($entity); - } - - /** - * Creates a string representation of this instance. - * - * @return string The string representation of this instance. - * - * @todo Construct meaningful string representation. - */ - public function __toString(): string - { - return self::class . '@' . spl_object_id($this); - } - - /** - * Determines which fields get serialized. - * - * It is only serialized what is necessary for best unserialization performance. - * That means any metadata properties that are not set or empty or simply have - * their default value are NOT serialized. - * - * Parts that are also NOT serialized because they can not be properly unserialized: - * - reflClass (ReflectionClass) - * - reflFields (ReflectionProperty array) - * - * @return string[] The names of all the fields that should be serialized. - */ - public function __sleep(): array - { - // This metadata is always serialized/cached. - $serialized = [ - 'associationMappings', - 'columnNames', //TODO: 3.0 Remove this. Can use fieldMappings[$fieldName]['columnName'] - 'fieldMappings', - 'fieldNames', - 'embeddedClasses', - 'identifier', - 'isIdentifierComposite', // TODO: REMOVE - 'name', - 'namespace', // TODO: REMOVE - 'table', - 'rootEntityName', - 'idGenerator', //TODO: Does not really need to be serialized. Could be moved to runtime. - ]; - - // The rest of the metadata is only serialized if necessary. - if ($this->changeTrackingPolicy !== self::CHANGETRACKING_DEFERRED_IMPLICIT) { - $serialized[] = 'changeTrackingPolicy'; - } - - if ($this->customRepositoryClassName) { - $serialized[] = 'customRepositoryClassName'; - } - - if ($this->inheritanceType !== self::INHERITANCE_TYPE_NONE) { - $serialized[] = 'inheritanceType'; - $serialized[] = 'discriminatorColumn'; - $serialized[] = 'discriminatorValue'; - $serialized[] = 'discriminatorMap'; - $serialized[] = 'parentClasses'; - $serialized[] = 'subClasses'; - } - - if ($this->generatorType !== self::GENERATOR_TYPE_NONE) { - $serialized[] = 'generatorType'; - if ($this->generatorType === self::GENERATOR_TYPE_SEQUENCE) { - $serialized[] = 'sequenceGeneratorDefinition'; - } - } - - if ($this->isMappedSuperclass) { - $serialized[] = 'isMappedSuperclass'; - } - - if ($this->isEmbeddedClass) { - $serialized[] = 'isEmbeddedClass'; - } - - if ($this->containsForeignIdentifier) { - $serialized[] = 'containsForeignIdentifier'; - } - - if ($this->containsEnumIdentifier) { - $serialized[] = 'containsEnumIdentifier'; - } - - if ($this->isVersioned) { - $serialized[] = 'isVersioned'; - $serialized[] = 'versionField'; - } - - if ($this->lifecycleCallbacks) { - $serialized[] = 'lifecycleCallbacks'; - } - - if ($this->entityListeners) { - $serialized[] = 'entityListeners'; - } - - if ($this->isReadOnly) { - $serialized[] = 'isReadOnly'; - } - - if ($this->customGeneratorDefinition) { - $serialized[] = 'customGeneratorDefinition'; - } - - if ($this->cache) { - $serialized[] = 'cache'; - } - - if ($this->requiresFetchAfterChange) { - $serialized[] = 'requiresFetchAfterChange'; - } - - return $serialized; - } - - /** - * Creates a new instance of the mapped class, without invoking the constructor. - */ - public function newInstance(): object - { - return $this->instantiator->instantiate($this->name); - } - - /** - * Restores some state that can not be serialized/unserialized. - */ - public function wakeupReflection(ReflectionService $reflService): void - { - // Restore ReflectionClass and properties - $this->reflClass = $reflService->getClass($this->name); - $this->reflFields = new LegacyReflectionFields($this, $reflService); - $this->instantiator = $this->instantiator ?: new Instantiator(); - - $parentAccessors = []; - - foreach ($this->embeddedClasses as $property => $embeddedClass) { - if (isset($embeddedClass->declaredField)) { - assert($embeddedClass->originalField !== null); - $childAccessor = PropertyAccessorFactory::createPropertyAccessor( - $this->embeddedClasses[$embeddedClass->declaredField]->class, - $embeddedClass->originalField, - ); - - $parentAccessors[$property] = new EmbeddablePropertyAccessor( - $parentAccessors[$embeddedClass->declaredField], - $childAccessor, - $this->embeddedClasses[$embeddedClass->declaredField]->class, - ); - - continue; - } - - $accessor = PropertyAccessorFactory::createPropertyAccessor( - $embeddedClass->declared ?? $this->name, - $property, - ); - - $parentAccessors[$property] = $accessor; - $this->propertyAccessors[$property] = $accessor; - } - - foreach ($this->fieldMappings as $field => $mapping) { - if (isset($mapping->declaredField) && isset($parentAccessors[$mapping->declaredField])) { - assert($mapping->originalField !== null); - assert($mapping->originalClass !== null); - $accessor = PropertyAccessorFactory::createPropertyAccessor($mapping->originalClass, $mapping->originalField); - - if ($mapping->enumType !== null) { - $accessor = new EnumPropertyAccessor( - $accessor, - $mapping->enumType, - ); - } - - $this->propertyAccessors[$field] = new EmbeddablePropertyAccessor( - $parentAccessors[$mapping->declaredField], - $accessor, - $mapping->originalClass, - ); - continue; - } - - $this->propertyAccessors[$field] = isset($mapping->declared) - ? PropertyAccessorFactory::createPropertyAccessor($mapping->declared, $field) - : PropertyAccessorFactory::createPropertyAccessor($this->name, $field); - - if ($mapping->enumType !== null) { - $this->propertyAccessors[$field] = new EnumPropertyAccessor( - $this->propertyAccessors[$field], - $mapping->enumType, - ); - } - } - - foreach ($this->associationMappings as $field => $mapping) { - $this->propertyAccessors[$field] = isset($mapping->declared) - ? PropertyAccessorFactory::createPropertyAccessor($mapping->declared, $field) - : PropertyAccessorFactory::createPropertyAccessor($this->name, $field); - } - } - - /** - * Initializes a new ClassMetadata instance that will hold the object-relational mapping - * metadata of the class with the given name. - * - * @param ReflectionService $reflService The reflection service. - */ - public function initializeReflection(ReflectionService $reflService): void - { - $this->reflClass = $reflService->getClass($this->name); - $this->namespace = $reflService->getClassNamespace($this->name); - - if ($this->reflClass) { - $this->name = $this->rootEntityName = $this->reflClass->name; - } - - $this->table['name'] = $this->namingStrategy->classToTableName($this->name); - } - - /** - * Validates Identifier. - * - * @throws MappingException - */ - public function validateIdentifier(): void - { - if ($this->isMappedSuperclass || $this->isEmbeddedClass) { - return; - } - - // Verify & complete identifier mapping - if (! $this->identifier) { - throw MappingException::identifierRequired($this->name); - } - - if ($this->usesIdGenerator() && $this->isIdentifierComposite) { - throw MappingException::compositeKeyAssignedIdGeneratorRequired($this->name); - } - } - - /** - * Validates association targets actually exist. - * - * @throws MappingException - */ - public function validateAssociations(): void - { - foreach ($this->associationMappings as $mapping) { - if ( - ! class_exists($mapping->targetEntity) - && ! interface_exists($mapping->targetEntity) - && ! trait_exists($mapping->targetEntity) - ) { - throw MappingException::invalidTargetEntityClass($mapping->targetEntity, $this->name, $mapping->fieldName); - } - } - } - - /** - * Validates lifecycle callbacks. - * - * @throws MappingException - */ - public function validateLifecycleCallbacks(ReflectionService $reflService): void - { - foreach ($this->lifecycleCallbacks as $callbacks) { - foreach ($callbacks as $callbackFuncName) { - if (! $reflService->hasPublicMethod($this->name, $callbackFuncName)) { - throw MappingException::lifecycleCallbackMethodNotFound($this->name, $callbackFuncName); - } - } - } - } - - /** @phpstan-param array{usage?: mixed, region?: mixed} $cache */ - public function enableCache(array $cache): void - { - if (! isset($cache['usage'])) { - $cache['usage'] = self::CACHE_USAGE_READ_ONLY; - } - - if (! isset($cache['region'])) { - $cache['region'] = strtolower(str_replace('\\', '_', $this->rootEntityName)); - } - - $this->cache = $cache; - } - - /** @phpstan-param array{usage?: int, region?: string} $cache */ - public function enableAssociationCache(string $fieldName, array $cache): void - { - $this->associationMappings[$fieldName]->cache = $this->getAssociationCacheDefaults($fieldName, $cache); - } - - /** - * @phpstan-param array{usage?: int, region?: string|null} $cache - * - * @return int[]|string[] - * @phpstan-return array{usage: int, region: string|null} - */ - public function getAssociationCacheDefaults(string $fieldName, array $cache): array - { - if (! isset($cache['usage'])) { - $cache['usage'] = $this->cache['usage'] ?? self::CACHE_USAGE_READ_ONLY; - } - - if (! isset($cache['region'])) { - $cache['region'] = strtolower(str_replace('\\', '_', $this->rootEntityName)) . '__' . $fieldName; - } - - return $cache; - } - - /** - * Sets the change tracking policy used by this class. - */ - public function setChangeTrackingPolicy(int $policy): void - { - $this->changeTrackingPolicy = $policy; - } - - /** - * Whether the change tracking policy of this class is "deferred explicit". - */ - public function isChangeTrackingDeferredExplicit(): bool - { - return $this->changeTrackingPolicy === self::CHANGETRACKING_DEFERRED_EXPLICIT; - } - - /** - * Whether the change tracking policy of this class is "deferred implicit". - */ - public function isChangeTrackingDeferredImplicit(): bool - { - return $this->changeTrackingPolicy === self::CHANGETRACKING_DEFERRED_IMPLICIT; - } - - /** - * Checks whether a field is part of the identifier/primary key field(s). - */ - public function isIdentifier(string $fieldName): bool - { - if (! $this->identifier) { - return false; - } - - if (! $this->isIdentifierComposite) { - return $fieldName === $this->identifier[0]; - } - - return in_array($fieldName, $this->identifier, true); - } - - public function isUniqueField(string $fieldName): bool - { - $mapping = $this->getFieldMapping($fieldName); - - return $mapping !== false && isset($mapping->unique) && $mapping->unique; - } - - public function isNullable(string $fieldName): bool - { - $mapping = $this->getFieldMapping($fieldName); - - return $mapping !== false && isset($mapping->nullable) && $mapping->nullable; - } - - public function isIndexed(string $fieldName): bool - { - $mapping = $this->getFieldMapping($fieldName); - - return isset($mapping->index) && $mapping->index; - } - - /** - * Gets a column name for a field name. - * If the column name for the field cannot be found, the given field name - * is returned. - */ - public function getColumnName(string $fieldName): string - { - // @phpstan-ignore property.deprecated - return $this->columnNames[$fieldName] ?? $fieldName; - } - - /** - * Gets the mapping of a (regular) field that holds some data but not a - * reference to another object. - * - * @throws MappingException - */ - public function getFieldMapping(string $fieldName): FieldMapping - { - if (! isset($this->fieldMappings[$fieldName])) { - throw MappingException::mappingNotFound($this->name, $fieldName); - } - - return $this->fieldMappings[$fieldName]; - } - - /** - * Gets the mapping of an association. - * - * @see ClassMetadata::$associationMappings - * - * @param string $fieldName The field name that represents the association in - * the object model. - * - * @throws MappingException - */ - public function getAssociationMapping(string $fieldName): AssociationMapping - { - if (! isset($this->associationMappings[$fieldName])) { - throw MappingException::mappingNotFound($this->name, $fieldName); - } - - return $this->associationMappings[$fieldName]; - } - - /** - * Gets all association mappings of the class. - * - * @phpstan-return array - */ - public function getAssociationMappings(): array - { - return $this->associationMappings; - } - - /** - * Gets the field name for a column name. - * If no field name can be found the column name is returned. - * - * @return string The column alias. - */ - public function getFieldName(string $columnName): string - { - return $this->fieldNames[$columnName] ?? $columnName; - } - - /** - * Checks whether given property has type - */ - private function isTypedProperty(string $name): bool - { - return isset($this->reflClass) - && $this->reflClass->hasProperty($name) - && $this->reflClass->getProperty($name)->hasType(); - } - - /** - * Validates & completes the given field mapping based on typed property. - * - * @param array{fieldName: string, type?: string} $mapping The field mapping to validate & complete. - * - * @return array{fieldName: string, enumType?: class-string, type?: string} The updated mapping. - */ - private function validateAndCompleteTypedFieldMapping(array $mapping): array - { - $field = $this->reflClass->getProperty($mapping['fieldName']); - - return $this->typedFieldMapper->validateAndComplete($mapping, $field); - } - - /** - * Validates & completes the basic mapping information based on typed property. - * - * @param array{type: self::ONE_TO_ONE|self::MANY_TO_ONE|self::ONE_TO_MANY|self::MANY_TO_MANY, fieldName: string, targetEntity?: class-string} $mapping The mapping. - * - * @return mixed[] The updated mapping. - */ - private function validateAndCompleteTypedAssociationMapping(array $mapping): array - { - $type = $this->reflClass->getProperty($mapping['fieldName'])->getType(); - - if ($type === null || ($mapping['type'] & self::TO_ONE) === 0) { - return $mapping; - } - - if (! isset($mapping['targetEntity']) && $type instanceof ReflectionNamedType) { - $mapping['targetEntity'] = $type->getName(); - } - - return $mapping; - } - - /** - * Validates & completes the given field mapping. - * - * @phpstan-param array{ - * fieldName?: string, - * columnName?: string, - * id?: bool, - * generated?: self::GENERATED_*, - * enumType?: class-string, - * } $mapping The field mapping to validate & complete. - * - * @return FieldMapping The updated mapping. - * - * @throws MappingException - */ - protected function validateAndCompleteFieldMapping(array $mapping): FieldMapping - { - // Check mandatory fields - if (! isset($mapping['fieldName']) || ! $mapping['fieldName']) { - throw MappingException::missingFieldName($this->name); - } - - if ($this->isTypedProperty($mapping['fieldName'])) { - $mapping = $this->validateAndCompleteTypedFieldMapping($mapping); - } - - if (! isset($mapping['type'])) { - // Default to string - $mapping['type'] = 'string'; - } - - // Complete fieldName and columnName mapping - if (! isset($mapping['columnName'])) { - $mapping['columnName'] = $this->namingStrategy->propertyToColumnName($mapping['fieldName'], $this->name); - } - - $mapping = FieldMapping::fromMappingArray($mapping); - - if ($mapping->columnName[0] === '`') { - $mapping->columnName = trim($mapping->columnName, '`'); - $mapping->quoted = true; - } - - // @phpstan-ignore property.deprecated - $this->columnNames[$mapping->fieldName] = $mapping->columnName; - - if (isset($this->fieldNames[$mapping->columnName]) || ($this->discriminatorColumn && $this->discriminatorColumn->name === $mapping->columnName)) { - throw MappingException::duplicateColumnName($this->name, $mapping->columnName); - } - - $this->fieldNames[$mapping->columnName] = $mapping->fieldName; - - // Complete id mapping - if (isset($mapping->id) && $mapping->id === true) { - if ($this->versionField === $mapping->fieldName) { - throw MappingException::cannotVersionIdField($this->name, $mapping->fieldName); - } - - if (! in_array($mapping->fieldName, $this->identifier, true)) { - $this->identifier[] = $mapping->fieldName; - } - - // Check for composite key - if (! $this->isIdentifierComposite && count($this->identifier) > 1) { - $this->isIdentifierComposite = true; - } - } - - if (isset($mapping->generated)) { - if (! in_array($mapping->generated, [self::GENERATED_NEVER, self::GENERATED_INSERT, self::GENERATED_ALWAYS])) { - throw MappingException::invalidGeneratedMode($mapping->generated); - } - - if ($mapping->generated === self::GENERATED_NEVER) { - unset($mapping->generated); - } - } - - if (isset($mapping->enumType)) { - if (! enum_exists($mapping->enumType)) { - throw MappingException::nonEnumTypeMapped($this->name, $mapping->fieldName, $mapping->enumType); - } - - if (! empty($mapping->id)) { - $this->containsEnumIdentifier = true; - } - - if ( - defined('Doctrine\DBAL\Types\Types::ENUM') - && $mapping->type === Types::ENUM - && ! isset($mapping->options['values']) - ) { - $mapping->options['values'] = array_column($mapping->enumType::cases(), 'value'); - } - } - - return $mapping; - } - - /** - * Validates & completes the basic mapping information that is common to all - * association mappings (one-to-one, many-ot-one, one-to-many, many-to-many). - * - * @phpstan-param array $mapping The mapping. - * - * @return ConcreteAssociationMapping - * - * @throws MappingException If something is wrong with the mapping. - */ - protected function _validateAndCompleteAssociationMapping(array $mapping): AssociationMapping - { - if (array_key_exists('mappedBy', $mapping) && $mapping['mappedBy'] === null) { - unset($mapping['mappedBy']); - } - - if (array_key_exists('inversedBy', $mapping) && $mapping['inversedBy'] === null) { - unset($mapping['inversedBy']); - } - - if (array_key_exists('joinColumns', $mapping) && in_array($mapping['joinColumns'], [null, []], true)) { - unset($mapping['joinColumns']); - } - - $mapping['isOwningSide'] = true; // assume owning side until we hit mappedBy - - if (empty($mapping['indexBy'])) { - unset($mapping['indexBy']); - } - - // If targetEntity is unqualified, assume it is in the same namespace as - // the sourceEntity. - $mapping['sourceEntity'] = $this->name; - - if ($this->isTypedProperty($mapping['fieldName'])) { - $mapping = $this->validateAndCompleteTypedAssociationMapping($mapping); - } - - if (isset($mapping['targetEntity'])) { - $mapping['targetEntity'] = $this->fullyQualifiedClassName($mapping['targetEntity']); - $mapping['targetEntity'] = ltrim($mapping['targetEntity'], '\\'); - } - - if (($mapping['type'] & self::MANY_TO_ONE) > 0 && isset($mapping['orphanRemoval']) && $mapping['orphanRemoval']) { - throw MappingException::illegalOrphanRemoval($this->name, $mapping['fieldName']); - } - - // Complete id mapping - if (isset($mapping['id']) && $mapping['id'] === true) { - if (isset($mapping['orphanRemoval']) && $mapping['orphanRemoval']) { - throw MappingException::illegalOrphanRemovalOnIdentifierAssociation($this->name, $mapping['fieldName']); - } - - if (! in_array($mapping['fieldName'], $this->identifier, true)) { - if (isset($mapping['joinColumns']) && count($mapping['joinColumns']) >= 2) { - throw MappingException::cannotMapCompositePrimaryKeyEntitiesAsForeignId( - $mapping['targetEntity'], - $this->name, - $mapping['fieldName'], - ); - } - - assert(is_string($mapping['fieldName'])); - $this->identifier[] = $mapping['fieldName']; - $this->containsForeignIdentifier = true; - } - - // Check for composite key - if (! $this->isIdentifierComposite && count($this->identifier) > 1) { - $this->isIdentifierComposite = true; - } - - if ($this->cache && ! isset($mapping['cache'])) { - throw NonCacheableEntityAssociation::fromEntityAndField( - $this->name, - $mapping['fieldName'], - ); - } - } - - // Mandatory attributes for both sides - // Mandatory: fieldName, targetEntity - if (! isset($mapping['fieldName']) || ! $mapping['fieldName']) { - throw MappingException::missingFieldName($this->name); - } - - if (! isset($mapping['targetEntity'])) { - throw MappingException::missingTargetEntity($mapping['fieldName']); - } - - // Mandatory and optional attributes for either side - if (! isset($mapping['mappedBy'])) { - if (isset($mapping['joinTable'])) { - if (isset($mapping['joinTable']['name']) && $mapping['joinTable']['name'][0] === '`') { - $mapping['joinTable']['name'] = trim($mapping['joinTable']['name'], '`'); - $mapping['joinTable']['quoted'] = true; - } - } - } else { - $mapping['isOwningSide'] = false; - } - - if (isset($mapping['id']) && $mapping['id'] === true && $mapping['type'] & self::TO_MANY) { - throw MappingException::illegalToManyIdentifierAssociation($this->name, $mapping['fieldName']); - } - - // Fetch mode. Default fetch mode to LAZY, if not set. - if (! isset($mapping['fetch'])) { - $mapping['fetch'] = self::FETCH_LAZY; - } - - // Cascades - $cascades = isset($mapping['cascade']) ? array_map('strtolower', $mapping['cascade']) : []; - - $allCascades = ['remove', 'persist', 'refresh', 'detach']; - if (in_array('all', $cascades, true)) { - $cascades = $allCascades; - } elseif (count($cascades) !== count(array_intersect($cascades, $allCascades))) { - throw MappingException::invalidCascadeOption( - array_diff($cascades, $allCascades), - $this->name, - $mapping['fieldName'], - ); - } - - $mapping['cascade'] = $cascades; - - switch ($mapping['type']) { - case self::ONE_TO_ONE: - if (isset($mapping['joinColumns']) && $mapping['joinColumns'] && ! $mapping['isOwningSide']) { - throw MappingException::joinColumnNotAllowedOnOneToOneInverseSide( - $this->name, - $mapping['fieldName'], - ); - } - - return $mapping['isOwningSide'] ? - OneToOneOwningSideMapping::fromMappingArrayAndName( - $mapping, - $this->namingStrategy, - $this->name, - $this->table ?? null, - $this->isInheritanceTypeSingleTable(), - ) : - OneToOneInverseSideMapping::fromMappingArrayAndName($mapping, $this->name); - - case self::MANY_TO_ONE: - return ManyToOneAssociationMapping::fromMappingArrayAndName( - $mapping, - $this->namingStrategy, - $this->name, - $this->table ?? null, - $this->isInheritanceTypeSingleTable(), - ); - - case self::ONE_TO_MANY: - return OneToManyAssociationMapping::fromMappingArrayAndName($mapping, $this->name); - - case self::MANY_TO_MANY: - if (isset($mapping['joinColumns'])) { - unset($mapping['joinColumns']); - } - - return $mapping['isOwningSide'] ? - ManyToManyOwningSideMapping::fromMappingArrayAndNamingStrategy($mapping, $this->namingStrategy) : - ManyToManyInverseSideMapping::fromMappingArray($mapping); - - default: - throw MappingException::invalidAssociationType( - $this->name, - $mapping['fieldName'], - $mapping['type'], - ); - } - } - - /** - * {@inheritDoc} - */ - public function getIdentifierFieldNames(): array - { - return $this->identifier; - } - - /** - * Gets the name of the single id field. Note that this only works on - * entity classes that have a single-field pk. - * - * @throws MappingException If the class doesn't have an identifier or it has a composite primary key. - */ - public function getSingleIdentifierFieldName(): string - { - if ($this->isIdentifierComposite) { - throw MappingException::singleIdNotAllowedOnCompositePrimaryKey($this->name); - } - - if (! isset($this->identifier[0])) { - throw MappingException::noIdDefined($this->name); - } - - return $this->identifier[0]; - } - - /** - * Gets the column name of the single id column. Note that this only works on - * entity classes that have a single-field pk. - * - * @throws MappingException If the class doesn't have an identifier or it has a composite primary key. - */ - public function getSingleIdentifierColumnName(): string - { - return $this->getColumnName($this->getSingleIdentifierFieldName()); - } - - /** - * INTERNAL: - * Sets the mapped identifier/primary key fields of this class. - * Mainly used by the ClassMetadataFactory to assign inherited identifiers. - * - * @phpstan-param list $identifier - */ - public function setIdentifier(array $identifier): void - { - $this->identifier = $identifier; - $this->isIdentifierComposite = (count($this->identifier) > 1); - } - - /** - * {@inheritDoc} - */ - public function getIdentifier(): array - { - return $this->identifier; - } - - public function hasField(string $fieldName): bool - { - return isset($this->fieldMappings[$fieldName]) || isset($this->embeddedClasses[$fieldName]); - } - - /** - * Gets an array containing all the column names. - * - * @phpstan-param list|null $fieldNames - * - * @return mixed[] - * @phpstan-return list - */ - public function getColumnNames(array|null $fieldNames = null): array - { - if ($fieldNames === null) { - return array_keys($this->fieldNames); - } - - return array_values(array_map($this->getColumnName(...), $fieldNames)); - } - - /** - * Returns an array with all the identifier column names. - * - * @phpstan-return list - */ - public function getIdentifierColumnNames(): array - { - $columnNames = []; - - foreach ($this->identifier as $idProperty) { - if (isset($this->fieldMappings[$idProperty])) { - $columnNames[] = $this->fieldMappings[$idProperty]->columnName; - - continue; - } - - // Association defined as Id field - assert($this->associationMappings[$idProperty]->isToOneOwningSide()); - $joinColumns = $this->associationMappings[$idProperty]->joinColumns; - $assocColumnNames = array_map(static fn (JoinColumnMapping $joinColumn): string => $joinColumn->name, $joinColumns); - - $columnNames = array_merge($columnNames, $assocColumnNames); - } - - return $columnNames; - } - - /** - * Sets the type of Id generator to use for the mapped class. - * - * @phpstan-param self::GENERATOR_TYPE_* $generatorType - */ - public function setIdGeneratorType(int $generatorType): void - { - $this->generatorType = $generatorType; - } - - /** - * Checks whether the mapped class uses an Id generator. - */ - public function usesIdGenerator(): bool - { - return $this->generatorType !== self::GENERATOR_TYPE_NONE; - } - - public function isInheritanceTypeNone(): bool - { - return $this->inheritanceType === self::INHERITANCE_TYPE_NONE; - } - - /** - * Checks whether the mapped class uses the JOINED inheritance mapping strategy. - * - * @return bool TRUE if the class participates in a JOINED inheritance mapping, - * FALSE otherwise. - */ - public function isInheritanceTypeJoined(): bool - { - return $this->inheritanceType === self::INHERITANCE_TYPE_JOINED; - } - - /** - * Checks whether the mapped class uses the SINGLE_TABLE inheritance mapping strategy. - * - * @return bool TRUE if the class participates in a SINGLE_TABLE inheritance mapping, - * FALSE otherwise. - */ - public function isInheritanceTypeSingleTable(): bool - { - return $this->inheritanceType === self::INHERITANCE_TYPE_SINGLE_TABLE; - } - - /** - * Checks whether the class uses an identity column for the Id generation. - */ - public function isIdGeneratorIdentity(): bool - { - return $this->generatorType === self::GENERATOR_TYPE_IDENTITY; - } - - /** - * Checks whether the class uses a sequence for id generation. - * - * @phpstan-assert-if-true !null $this->sequenceGeneratorDefinition - */ - public function isIdGeneratorSequence(): bool - { - return $this->generatorType === self::GENERATOR_TYPE_SEQUENCE; - } - - /** - * Checks whether the class has a natural identifier/pk (which means it does - * not use any Id generator. - */ - public function isIdentifierNatural(): bool - { - return $this->generatorType === self::GENERATOR_TYPE_NONE; - } - - /** - * Gets the type of a field. - * - * @todo 3.0 Remove this. PersisterHelper should fix it somehow - */ - public function getTypeOfField(string $fieldName): string|null - { - return isset($this->fieldMappings[$fieldName]) - ? $this->fieldMappings[$fieldName]->type - : null; - } - - /** - * Gets the name of the primary table. - */ - public function getTableName(): string - { - return $this->table['name']; - } - - /** - * Gets primary table's schema name. - */ - public function getSchemaName(): string|null - { - return $this->table['schema'] ?? null; - } - - /** - * Gets the table name to use for temporary identifier tables of this class. - */ - public function getTemporaryIdTableName(): string - { - // replace dots with underscores because PostgreSQL creates temporary tables in a special schema - return str_replace('.', '_', $this->getTableName() . '_id_tmp'); - } - - /** - * Sets the mapped subclasses of this class. - * - * @phpstan-param list $subclasses The names of all mapped subclasses. - */ - public function setSubclasses(array $subclasses): void - { - foreach ($subclasses as $subclass) { - $this->subClasses[] = $this->fullyQualifiedClassName($subclass); - } - } - - /** - * Sets the parent class names. Only entity classes may be given. - * - * Assumes that the class names in the passed array are in the order: - * directParent -> directParentParent -> directParentParentParent ... -> root. - * - * @phpstan-param list $classNames - */ - public function setParentClasses(array $classNames): void - { - $this->parentClasses = $classNames; - - if (count($classNames) > 0) { - $this->rootEntityName = array_pop($classNames); - } - } - - /** - * Sets the inheritance type used by the class and its subclasses. - * - * @phpstan-param self::INHERITANCE_TYPE_* $type - * - * @throws MappingException - */ - public function setInheritanceType(int $type): void - { - if (! $this->isInheritanceType($type)) { - throw MappingException::invalidInheritanceType($this->name, $type); - } - - $this->inheritanceType = $type; - } - - /** - * Sets the association to override association mapping of property for an entity relationship. - * - * @phpstan-param array{joinColumns?: array, inversedBy?: ?string, joinTable?: array, fetch?: ?string, cascade?: string[]} $overrideMapping - * - * @throws MappingException - */ - public function setAssociationOverride(string $fieldName, array $overrideMapping): void - { - if (! isset($this->associationMappings[$fieldName])) { - throw MappingException::invalidOverrideFieldName($this->name, $fieldName); - } - - $mapping = $this->associationMappings[$fieldName]->toArray(); - - if (isset($mapping['inherited'])) { - throw MappingException::illegalOverrideOfInheritedProperty( - $this->name, - $fieldName, - $mapping['inherited'], - ); - } - - if (isset($overrideMapping['joinColumns'])) { - $mapping['joinColumns'] = $overrideMapping['joinColumns']; - } - - if (isset($overrideMapping['inversedBy'])) { - $mapping['inversedBy'] = $overrideMapping['inversedBy']; - } - - if (isset($overrideMapping['joinTable'])) { - $mapping['joinTable'] = $overrideMapping['joinTable']; - } - - if (isset($overrideMapping['fetch'])) { - $mapping['fetch'] = $overrideMapping['fetch']; - } - - if (isset($overrideMapping['cascade'])) { - $mapping['cascade'] = $overrideMapping['cascade']; - } - - switch ($mapping['type']) { - case self::ONE_TO_ONE: - case self::MANY_TO_ONE: - $mapping['joinColumnFieldNames'] = []; - $mapping['sourceToTargetKeyColumns'] = []; - break; - case self::MANY_TO_MANY: - $mapping['relationToSourceKeyColumns'] = []; - $mapping['relationToTargetKeyColumns'] = []; - break; - } - - $this->associationMappings[$fieldName] = $this->_validateAndCompleteAssociationMapping($mapping); - } - - /** - * Sets the override for a mapped field. - * - * @phpstan-param array $overrideMapping - * - * @throws MappingException - */ - public function setAttributeOverride(string $fieldName, array $overrideMapping): void - { - if (! isset($this->fieldMappings[$fieldName])) { - throw MappingException::invalidOverrideFieldName($this->name, $fieldName); - } - - $mapping = $this->fieldMappings[$fieldName]; - - if (isset($mapping->inherited)) { - throw MappingException::illegalOverrideOfInheritedProperty($this->name, $fieldName, $mapping->inherited); - } - - if (isset($mapping->id)) { - $overrideMapping['id'] = $mapping->id; - } - - if (isset($mapping->declared)) { - $overrideMapping['declared'] = $mapping->declared; - } - - if (! isset($overrideMapping['type'])) { - $overrideMapping['type'] = $mapping->type; - } - - if (! isset($overrideMapping['fieldName'])) { - $overrideMapping['fieldName'] = $mapping->fieldName; - } - - if ($overrideMapping['type'] !== $mapping->type) { - throw MappingException::invalidOverrideFieldType($this->name, $fieldName); - } - - unset($this->fieldMappings[$fieldName]); - unset($this->fieldNames[$mapping->columnName]); - // @phpstan-ignore property.deprecated - unset($this->columnNames[$mapping->fieldName]); - - $overrideMapping = $this->validateAndCompleteFieldMapping($overrideMapping); - - $this->fieldMappings[$fieldName] = $overrideMapping; - } - - /** - * Checks whether a mapped field is inherited from an entity superclass. - */ - public function isInheritedField(string $fieldName): bool - { - return isset($this->fieldMappings[$fieldName]->inherited); - } - - /** - * Checks if this entity is the root in any entity-inheritance-hierarchy. - */ - public function isRootEntity(): bool - { - return $this->name === $this->rootEntityName; - } - - /** - * Checks whether a mapped association field is inherited from a superclass. - */ - public function isInheritedAssociation(string $fieldName): bool - { - return isset($this->associationMappings[$fieldName]->inherited); - } - - public function isInheritedEmbeddedClass(string $fieldName): bool - { - return isset($this->embeddedClasses[$fieldName]->inherited); - } - - /** - * Sets the name of the primary table the class is mapped to. - * - * @deprecated Use {@link setPrimaryTable}. - */ - public function setTableName(string $tableName): void - { - $this->table['name'] = $tableName; - } - - /** - * Sets the primary table definition. The provided array supports the - * following structure: - * - * name => (optional, defaults to class name) - * indexes => array of indexes (optional) - * uniqueConstraints => array of constraints (optional) - * - * If a key is omitted, the current value is kept. - * - * @phpstan-param array $table The table description. - */ - public function setPrimaryTable(array $table): void - { - if (isset($table['name'])) { - // Split schema and table name from a table name like "myschema.mytable" - if (str_contains($table['name'], '.')) { - [$this->table['schema'], $table['name']] = explode('.', $table['name'], 2); - } - - if ($table['name'][0] === '`') { - $table['name'] = trim($table['name'], '`'); - $this->table['quoted'] = true; - } - - $this->table['name'] = $table['name']; - } - - if (isset($table['quoted'])) { - $this->table['quoted'] = $table['quoted']; - } - - if (isset($table['schema'])) { - $this->table['schema'] = $table['schema']; - } - - if (isset($table['indexes'])) { - $this->table['indexes'] = $table['indexes']; - } - - if (isset($table['uniqueConstraints'])) { - $this->table['uniqueConstraints'] = $table['uniqueConstraints']; - } - - if (isset($table['options'])) { - $this->table['options'] = $table['options']; - } - } - - /** - * Checks whether the given type identifies an inheritance type. - */ - private function isInheritanceType(int $type): bool - { - return $type === self::INHERITANCE_TYPE_NONE || - $type === self::INHERITANCE_TYPE_SINGLE_TABLE || - $type === self::INHERITANCE_TYPE_JOINED; - } - - /** - * Adds a mapped field to the class. - * - * @phpstan-param array $mapping The field mapping. - * - * @throws MappingException - */ - public function mapField(array $mapping): void - { - $mapping = $this->validateAndCompleteFieldMapping($mapping); - $this->assertFieldNotMapped($mapping->fieldName); - - if (isset($mapping->generated)) { - $this->requiresFetchAfterChange = true; - } - - $this->fieldMappings[$mapping->fieldName] = $mapping; - } - - /** - * INTERNAL: - * Adds an association mapping without completing/validating it. - * This is mainly used to add inherited association mappings to derived classes. - * - * @param ConcreteAssociationMapping $mapping - * - * @throws MappingException - */ - public function addInheritedAssociationMapping(AssociationMapping $mapping/*, $owningClassName = null*/): void - { - if (isset($this->associationMappings[$mapping->fieldName])) { - throw MappingException::duplicateAssociationMapping($this->name, $mapping->fieldName); - } - - $this->associationMappings[$mapping->fieldName] = $mapping; - } - - /** - * INTERNAL: - * Adds a field mapping without completing/validating it. - * This is mainly used to add inherited field mappings to derived classes. - */ - public function addInheritedFieldMapping(FieldMapping $fieldMapping): void - { - $this->fieldMappings[$fieldMapping->fieldName] = $fieldMapping; - // @phpstan-ignore property.deprecated - $this->columnNames[$fieldMapping->fieldName] = $fieldMapping->columnName; - $this->fieldNames[$fieldMapping->columnName] = $fieldMapping->fieldName; - - if (isset($fieldMapping->generated)) { - $this->requiresFetchAfterChange = true; - } - } - - /** - * Adds a one-to-one mapping. - * - * @param array $mapping The mapping. - */ - public function mapOneToOne(array $mapping): void - { - $mapping['type'] = self::ONE_TO_ONE; - - $mapping = $this->_validateAndCompleteAssociationMapping($mapping); - - $this->_storeAssociationMapping($mapping); - } - - /** - * Adds a one-to-many mapping. - * - * @phpstan-param array $mapping The mapping. - */ - public function mapOneToMany(array $mapping): void - { - $mapping['type'] = self::ONE_TO_MANY; - - $mapping = $this->_validateAndCompleteAssociationMapping($mapping); - - $this->_storeAssociationMapping($mapping); - } - - /** - * Adds a many-to-one mapping. - * - * @phpstan-param array $mapping The mapping. - */ - public function mapManyToOne(array $mapping): void - { - $mapping['type'] = self::MANY_TO_ONE; - - $mapping = $this->_validateAndCompleteAssociationMapping($mapping); - - $this->_storeAssociationMapping($mapping); - } - - /** - * Adds a many-to-many mapping. - * - * @phpstan-param array $mapping The mapping. - */ - public function mapManyToMany(array $mapping): void - { - $mapping['type'] = self::MANY_TO_MANY; - - $mapping = $this->_validateAndCompleteAssociationMapping($mapping); - - $this->_storeAssociationMapping($mapping); - } - - /** - * Stores the association mapping. - * - * @param ConcreteAssociationMapping $assocMapping - * - * @throws MappingException - */ - protected function _storeAssociationMapping(AssociationMapping $assocMapping): void - { - $sourceFieldName = $assocMapping->fieldName; - - $this->assertFieldNotMapped($sourceFieldName); - - $this->associationMappings[$sourceFieldName] = $assocMapping; - } - - /** - * Registers a custom repository class for the entity class. - * - * @param string|null $repositoryClassName The class name of the custom mapper. - * @phpstan-param class-string|null $repositoryClassName - */ - public function setCustomRepositoryClass(string|null $repositoryClassName): void - { - if ($repositoryClassName === null) { - $this->customRepositoryClassName = null; - - return; - } - - $this->customRepositoryClassName = $this->fullyQualifiedClassName($repositoryClassName); - } - - /** - * Dispatches the lifecycle event of the given entity to the registered - * lifecycle callbacks and lifecycle listeners. - * - * @deprecated Deprecated since version 2.4 in favor of \Doctrine\ORM\Event\ListenersInvoker - * - * @param string $lifecycleEvent The lifecycle event. - */ - public function invokeLifecycleCallbacks(string $lifecycleEvent, object $entity): void - { - foreach ($this->lifecycleCallbacks[$lifecycleEvent] as $callback) { - $entity->$callback(); - } - } - - /** - * Whether the class has any attached lifecycle listeners or callbacks for a lifecycle event. - */ - public function hasLifecycleCallbacks(string $lifecycleEvent): bool - { - return isset($this->lifecycleCallbacks[$lifecycleEvent]); - } - - /** - * Gets the registered lifecycle callbacks for an event. - * - * @return string[] - * @phpstan-return list - */ - public function getLifecycleCallbacks(string $event): array - { - return $this->lifecycleCallbacks[$event] ?? []; - } - - /** - * Adds a lifecycle callback for entities of this class. - */ - public function addLifecycleCallback(string $callback, string $event): void - { - if ($this->isEmbeddedClass) { - throw MappingException::illegalLifecycleCallbackOnEmbeddedClass($callback, $this->name); - } - - if (isset($this->lifecycleCallbacks[$event]) && in_array($callback, $this->lifecycleCallbacks[$event], true)) { - return; - } - - $this->lifecycleCallbacks[$event][] = $callback; - } - - /** - * Sets the lifecycle callbacks for entities of this class. - * Any previously registered callbacks are overwritten. - * - * @phpstan-param array> $callbacks - */ - public function setLifecycleCallbacks(array $callbacks): void - { - $this->lifecycleCallbacks = $callbacks; - } - - /** - * Adds a entity listener for entities of this class. - * - * @param string $eventName The entity lifecycle event. - * @param string $class The listener class. - * @param string $method The listener callback method. - * - * @throws MappingException - */ - public function addEntityListener(string $eventName, string $class, string $method): void - { - $class = $this->fullyQualifiedClassName($class); - - $listener = [ - 'class' => $class, - 'method' => $method, - ]; - - if (! class_exists($class)) { - throw MappingException::entityListenerClassNotFound($class, $this->name); - } - - if (! method_exists($class, $method)) { - throw MappingException::entityListenerMethodNotFound($class, $method, $this->name); - } - - if (isset($this->entityListeners[$eventName]) && in_array($listener, $this->entityListeners[$eventName], true)) { - throw MappingException::duplicateEntityListener($class, $method, $this->name); - } - - $this->entityListeners[$eventName][] = $listener; - } - - /** - * Sets the discriminator column definition. - * - * @see getDiscriminatorColumn() - * - * @param DiscriminatorColumnMapping|mixed[]|null $columnDef - * @phpstan-param DiscriminatorColumnMapping|array{ - * name: string|null, - * fieldName?: string|null, - * type?: string|null, - * length?: int|null, - * columnDefinition?: string|null, - * enumType?: class-string|null, - * options?: array|null - * }|null $columnDef - * - * @throws MappingException - */ - public function setDiscriminatorColumn(DiscriminatorColumnMapping|array|null $columnDef): void - { - if ($columnDef instanceof DiscriminatorColumnMapping) { - $this->discriminatorColumn = $columnDef; - - return; - } - - if ($columnDef !== null) { - if (! isset($columnDef['name'])) { - throw MappingException::nameIsMandatoryForDiscriminatorColumns($this->name); - } - - if (isset($this->fieldNames[$columnDef['name']])) { - throw MappingException::duplicateColumnName($this->name, $columnDef['name']); - } - - $columnDef['fieldName'] ??= $columnDef['name']; - $columnDef['type'] ??= 'string'; - $columnDef['options'] ??= []; - - if (in_array($columnDef['type'], ['boolean', 'array', 'object', 'datetime', 'time', 'date'], true)) { - throw MappingException::invalidDiscriminatorColumnType($this->name, $columnDef['type']); - } - - $this->discriminatorColumn = DiscriminatorColumnMapping::fromMappingArray($columnDef); - } - } - - final public function getDiscriminatorColumn(): DiscriminatorColumnMapping - { - if ($this->discriminatorColumn === null) { - throw new LogicException('The discriminator column was not set.'); - } - - return $this->discriminatorColumn; - } - - /** - * Sets the discriminator values used by this class. - * Used for JOINED and SINGLE_TABLE inheritance mapping strategies. - * - * @param array $map - */ - public function setDiscriminatorMap(array $map): void - { - if (count(array_flip($map)) !== count($map)) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/issues/3519', - <<<'DEPRECATION' - Mapping a class to multiple discriminator values is deprecated, - and the discriminator mapping of %s contains duplicate values - for the following discriminator values: %s. - DEPRECATION, - $this->name, - implode(', ', array_keys(array_filter(array_count_values($map), static function (int $value): bool { - return $value > 1; - }))), - ); - } - - foreach ($map as $value => $className) { - $this->addDiscriminatorMapClass($value, $className); - } - } - - /** - * Adds one entry of the discriminator map with a new class and corresponding name. - * - * @throws MappingException - */ - public function addDiscriminatorMapClass(int|string $name, string $className): void - { - $className = $this->fullyQualifiedClassName($className); - $className = ltrim($className, '\\'); - - $this->discriminatorMap[$name] = $className; - - if ($this->name === $className) { - $this->discriminatorValue = $name; - - return; - } - - if (! (class_exists($className) || interface_exists($className))) { - throw MappingException::invalidClassInDiscriminatorMap($className, $this->name); - } - - $this->addSubClass($className); - } - - /** @param array $classes */ - public function addSubClasses(array $classes): void - { - foreach ($classes as $className) { - $this->addSubClass($className); - } - } - - public function addSubClass(string $className): void - { - // By ignoring classes that are not subclasses of the current class, we simplify inheriting - // the subclass list from a parent class at the beginning of \Doctrine\ORM\Mapping\ClassMetadataFactory::doLoadMetadata. - - if (is_subclass_of($className, $this->name) && ! in_array($className, $this->subClasses, true)) { - $this->subClasses[] = $className; - } - } - - public function hasAssociation(string $fieldName): bool - { - return isset($this->associationMappings[$fieldName]); - } - - public function isSingleValuedAssociation(string $fieldName): bool - { - return isset($this->associationMappings[$fieldName]) - && ($this->associationMappings[$fieldName]->isToOne()); - } - - public function isCollectionValuedAssociation(string $fieldName): bool - { - return isset($this->associationMappings[$fieldName]) - && ! $this->associationMappings[$fieldName]->isToOne(); - } - - /** - * Is this an association that only has a single join column? - */ - public function isAssociationWithSingleJoinColumn(string $fieldName): bool - { - return isset($this->associationMappings[$fieldName]) - && isset($this->associationMappings[$fieldName]->joinColumns[0]) - && ! isset($this->associationMappings[$fieldName]->joinColumns[1]); - } - - /** - * Returns the single association join column (if any). - * - * @throws MappingException - */ - public function getSingleAssociationJoinColumnName(string $fieldName): string - { - if (! $this->isAssociationWithSingleJoinColumn($fieldName)) { - throw MappingException::noSingleAssociationJoinColumnFound($this->name, $fieldName); - } - - $assoc = $this->associationMappings[$fieldName]; - - assert($assoc->isToOneOwningSide()); - - return $assoc->joinColumns[0]->name; - } - - /** - * Returns the single association referenced join column name (if any). - * - * @throws MappingException - */ - public function getSingleAssociationReferencedJoinColumnName(string $fieldName): string - { - if (! $this->isAssociationWithSingleJoinColumn($fieldName)) { - throw MappingException::noSingleAssociationJoinColumnFound($this->name, $fieldName); - } - - $assoc = $this->associationMappings[$fieldName]; - - assert($assoc->isToOneOwningSide()); - - return $assoc->joinColumns[0]->referencedColumnName; - } - - /** - * Used to retrieve a fieldname for either field or association from a given column. - * - * This method is used in foreign-key as primary-key contexts. - * - * @throws MappingException - */ - public function getFieldForColumn(string $columnName): string - { - if (isset($this->fieldNames[$columnName])) { - return $this->fieldNames[$columnName]; - } - - foreach ($this->associationMappings as $assocName => $mapping) { - if ( - $this->isAssociationWithSingleJoinColumn($assocName) && - assert($this->associationMappings[$assocName]->isToOneOwningSide()) && - $this->associationMappings[$assocName]->joinColumns[0]->name === $columnName - ) { - return $assocName; - } - } - - throw MappingException::noFieldNameFoundForColumn($this->name, $columnName); - } - - /** - * Sets the ID generator used to generate IDs for instances of this class. - */ - public function setIdGenerator(AbstractIdGenerator $generator): void - { - $this->idGenerator = $generator; - } - - /** - * Sets definition. - * - * @phpstan-param array $definition - */ - public function setCustomGeneratorDefinition(array $definition): void - { - $this->customGeneratorDefinition = $definition; - } - - /** - * Sets the definition of the sequence ID generator for this class. - * - * The definition must have the following structure: - * - * array( - * 'sequenceName' => 'name', - * 'allocationSize' => 20, - * 'initialValue' => 1 - * 'quoted' => 1 - * ) - * - * - * @phpstan-param array{sequenceName?: string, allocationSize?: int|string, initialValue?: int|string, quoted?: mixed} $definition - * - * @throws MappingException - */ - public function setSequenceGeneratorDefinition(array $definition): void - { - if (! isset($definition['sequenceName']) || trim($definition['sequenceName']) === '') { - throw MappingException::missingSequenceName($this->name); - } - - if ($definition['sequenceName'][0] === '`') { - $definition['sequenceName'] = trim($definition['sequenceName'], '`'); - $definition['quoted'] = true; - } - - if (! isset($definition['allocationSize']) || trim((string) $definition['allocationSize']) === '') { - $definition['allocationSize'] = '1'; - } - - if (! isset($definition['initialValue']) || trim((string) $definition['initialValue']) === '') { - $definition['initialValue'] = '1'; - } - - $definition['allocationSize'] = (string) $definition['allocationSize']; - $definition['initialValue'] = (string) $definition['initialValue']; - - $this->sequenceGeneratorDefinition = $definition; - } - - /** - * Sets the version field mapping used for versioning. Sets the default - * value to use depending on the column type. - * - * @phpstan-param array $mapping The version field mapping array. - * - * @throws MappingException - */ - public function setVersionMapping(array &$mapping): void - { - $this->isVersioned = true; - $this->versionField = $mapping['fieldName']; - $this->requiresFetchAfterChange = true; - - if (! isset($mapping['default'])) { - if (in_array($mapping['type'], ['integer', 'bigint', 'smallint'], true)) { - $mapping['default'] = 1; - } elseif ($mapping['type'] === 'datetime') { - $mapping['default'] = 'CURRENT_TIMESTAMP'; - } else { - throw MappingException::unsupportedOptimisticLockingType($this->name, $mapping['fieldName'], $mapping['type']); - } - } - } - - /** - * Sets whether this class is to be versioned for optimistic locking. - */ - public function setVersioned(bool $bool): void - { - $this->isVersioned = $bool; - - if ($bool) { - $this->requiresFetchAfterChange = true; - } - } - - /** - * Sets the name of the field that is to be used for versioning if this class is - * versioned for optimistic locking. - */ - public function setVersionField(string|null $versionField): void - { - $this->versionField = $versionField; - } - - /** - * Marks this class as read only, no change tracking is applied to it. - */ - public function markReadOnly(): void - { - $this->isReadOnly = true; - } - - /** - * {@inheritDoc} - */ - public function getFieldNames(): array - { - return array_keys($this->fieldMappings); - } - - /** - * {@inheritDoc} - */ - public function getAssociationNames(): array - { - return array_keys($this->associationMappings); - } - - /** - * {@inheritDoc} - * - * @phpstan-return class-string - * - * @throws InvalidArgumentException - */ - public function getAssociationTargetClass(string $assocName): string - { - return $this->associationMappings[$assocName]->targetEntity - ?? throw new InvalidArgumentException("Association name expected, '" . $assocName . "' is not an association."); - } - - public function getName(): string - { - return $this->name; - } - - public function isAssociationInverseSide(string $assocName): bool - { - return isset($this->associationMappings[$assocName]) - && ! $this->associationMappings[$assocName]->isOwningSide(); - } - - public function getAssociationMappedByTargetField(string $assocName): string - { - $assoc = $this->getAssociationMapping($assocName); - - if (! $assoc instanceof InverseSideMapping) { - throw new LogicException(sprintf( - <<<'EXCEPTION' - Context: Calling %s() with "%s", which is the owning side of an association. - Problem: The owning side of an association has no "mappedBy" field. - Solution: Call %s::isAssociationInverseSide() to check first. - EXCEPTION, - __METHOD__, - $assocName, - self::class, - )); - } - - return $assoc->mappedBy; - } - - /** - * @param C $className - * - * @return string|null null if and only if the input value is null - * @phpstan-return (C is class-string ? class-string : (C is string ? string : null)) - * - * @template C of string|null - */ - public function fullyQualifiedClassName(string|null $className): string|null - { - if ($className === null) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11294', - 'Passing null to %s is deprecated and will not be supported in Doctrine ORM 4.0', - __METHOD__, - ); - - return null; - } - - if (! str_contains($className, '\\') && $this->namespace) { - return $this->namespace . '\\' . $className; - } - - return $className; - } - - public function getMetadataValue(string $name): mixed - { - return $this->$name ?? null; - } - - /** - * Map Embedded Class - * - * @phpstan-param array{ - * fieldName: string, - * class?: class-string, - * declaredField?: string, - * columnPrefix?: string|false|null, - * originalField?: string - * } $mapping - * - * @throws MappingException - */ - public function mapEmbedded(array $mapping): void - { - $this->assertFieldNotMapped($mapping['fieldName']); - - if (! isset($mapping['class']) && $this->isTypedProperty($mapping['fieldName'])) { - $type = $this->reflClass->getProperty($mapping['fieldName'])->getType(); - if ($type instanceof ReflectionNamedType) { - $mapping['class'] = $type->getName(); - } - } - - if (! (isset($mapping['class']) && $mapping['class'])) { - throw MappingException::missingEmbeddedClass($mapping['fieldName']); - } - - $this->embeddedClasses[$mapping['fieldName']] = EmbeddedClassMapping::fromMappingArray([ - 'class' => $this->fullyQualifiedClassName($mapping['class']), - 'columnPrefix' => $mapping['columnPrefix'] ?? null, - 'declaredField' => $mapping['declaredField'] ?? null, - 'originalField' => $mapping['originalField'] ?? null, - ]); - } - - /** - * Inline the embeddable class - */ - public function inlineEmbeddable(string $property, ClassMetadata $embeddable): void - { - foreach ($embeddable->fieldMappings as $originalFieldMapping) { - $fieldMapping = (array) $originalFieldMapping; - $fieldMapping['originalClass'] ??= $embeddable->name; - $fieldMapping['declaredField'] = isset($fieldMapping['declaredField']) - ? $property . '.' . $fieldMapping['declaredField'] - : $property; - $fieldMapping['originalField'] ??= $fieldMapping['fieldName']; - $fieldMapping['fieldName'] = $property . '.' . $fieldMapping['fieldName']; - - if (! empty($this->embeddedClasses[$property]->columnPrefix)) { - $fieldMapping['columnName'] = $this->embeddedClasses[$property]->columnPrefix . $fieldMapping['columnName']; - } elseif ($this->embeddedClasses[$property]->columnPrefix !== false) { - assert($this->reflClass !== null); - assert($embeddable->reflClass !== null); - $fieldMapping['columnName'] = $this->namingStrategy - ->embeddedFieldToColumnName( - $property, - $fieldMapping['columnName'], - $this->reflClass->name, - $embeddable->reflClass->name, - ); - } - - $this->mapField($fieldMapping); - } - } - - /** @throws MappingException */ - private function assertFieldNotMapped(string $fieldName): void - { - if ( - isset($this->fieldMappings[$fieldName]) || - isset($this->associationMappings[$fieldName]) || - isset($this->embeddedClasses[$fieldName]) - ) { - throw MappingException::duplicateFieldMapping($this->name, $fieldName); - } - } - - /** - * Gets the sequence name based on class metadata. - * - * @todo Sequence names should be computed in DBAL depending on the platform - */ - public function getSequenceName(AbstractPlatform $platform): string - { - $sequencePrefix = $this->getSequencePrefix($platform); - $columnName = $this->getSingleIdentifierColumnName(); - - return $sequencePrefix . '_' . $columnName . '_seq'; - } - - /** - * Gets the sequence name prefix based on class metadata. - * - * @todo Sequence names should be computed in DBAL depending on the platform - */ - public function getSequencePrefix(AbstractPlatform $platform): string - { - $tableName = $this->getTableName(); - $sequencePrefix = $tableName; - - // Prepend the schema name to the table name if there is one - $schemaName = $this->getSchemaName(); - if ($schemaName) { - $sequencePrefix = $schemaName . '.' . $tableName; - } - - return $sequencePrefix; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ClassMetadataFactory.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ClassMetadataFactory.php deleted file mode 100644 index b21d555..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ClassMetadataFactory.php +++ /dev/null @@ -1,745 +0,0 @@ - - */ -class ClassMetadataFactory extends AbstractClassMetadataFactory -{ - private EntityManagerInterface|null $em = null; - private AbstractPlatform|null $targetPlatform = null; - private MappingDriver|null $driver = null; - private EventManager|null $evm = null; - - /** @var mixed[] */ - private array $embeddablesActiveNesting = []; - - private const NON_IDENTITY_DEFAULT_STRATEGY = [ - Platforms\OraclePlatform::class => ClassMetadata::GENERATOR_TYPE_SEQUENCE, - ]; - - public function setEntityManager(EntityManagerInterface $em): void - { - if (! $em->getConfiguration()->isNativeLazyObjectsEnabled()) { - parent::setProxyClassNameResolver(new DefaultProxyClassNameResolver()); - } - - $this->em = $em; - } - - /** - * @param A $maybeOwningSide - * - * @return (A is ManyToManyAssociationMapping ? ManyToManyOwningSideMapping : ( - * A is OneToOneAssociationMapping ? OneToOneOwningSideMapping : ( - * A is OneToManyAssociationMapping ? ManyToOneAssociationMapping : ( - * A is ManyToOneAssociationMapping ? ManyToOneAssociationMapping : - * ManyToManyOwningSideMapping|OneToOneOwningSideMapping|ManyToOneAssociationMapping - * )))) - * - * @template A of AssociationMapping - */ - final public function getOwningSide(AssociationMapping $maybeOwningSide): OwningSideMapping - { - if ($maybeOwningSide instanceof OwningSideMapping) { - assert($maybeOwningSide instanceof ManyToManyOwningSideMapping || - $maybeOwningSide instanceof OneToOneOwningSideMapping || - $maybeOwningSide instanceof ManyToOneAssociationMapping); - - return $maybeOwningSide; - } - - assert($maybeOwningSide instanceof InverseSideMapping); - - $owningSide = $this->getMetadataFor($maybeOwningSide->targetEntity) - ->associationMappings[$maybeOwningSide->mappedBy]; - - assert($owningSide instanceof ManyToManyOwningSideMapping || - $owningSide instanceof OneToOneOwningSideMapping || - $owningSide instanceof ManyToOneAssociationMapping); - - return $owningSide; - } - - protected function initialize(): void - { - $this->driver = $this->em->getConfiguration()->getMetadataDriverImpl(); - $this->evm = $this->em->getEventManager(); - $this->initialized = true; - } - - protected function onNotFoundMetadata(string $className): ClassMetadata|null - { - if (! $this->evm->hasListeners(Events::onClassMetadataNotFound)) { - return null; - } - - $eventArgs = new OnClassMetadataNotFoundEventArgs($className, $this->em); - - $this->evm->dispatchEvent(Events::onClassMetadataNotFound, $eventArgs); - $classMetadata = $eventArgs->getFoundMetadata(); - assert($classMetadata instanceof ClassMetadata || $classMetadata === null); - - return $classMetadata; - } - - /** - * {@inheritDoc} - */ - protected function doLoadMetadata( - ClassMetadataInterface $class, - ClassMetadataInterface|null $parent, - bool $rootEntityFound, - array $nonSuperclassParents, - ): void { - if ($parent) { - $class->setInheritanceType($parent->inheritanceType); - $class->setDiscriminatorColumn($parent->discriminatorColumn === null ? null : clone $parent->discriminatorColumn); - $class->setIdGeneratorType($parent->generatorType); - $this->addInheritedFields($class, $parent); - $this->addInheritedRelations($class, $parent); - $this->addInheritedEmbeddedClasses($class, $parent); - $class->setIdentifier($parent->identifier); - $class->setVersioned($parent->isVersioned); - $class->setVersionField($parent->versionField); - $class->setDiscriminatorMap($parent->discriminatorMap); - $class->addSubClasses($parent->subClasses); - $class->setLifecycleCallbacks($parent->lifecycleCallbacks); - $class->setChangeTrackingPolicy($parent->changeTrackingPolicy); - - if (! empty($parent->customGeneratorDefinition)) { - $class->setCustomGeneratorDefinition($parent->customGeneratorDefinition); - } - - if ($parent->isMappedSuperclass) { - $class->setCustomRepositoryClass($parent->customRepositoryClassName); - } - } - - // Invoke driver - try { - $this->driver->loadMetadataForClass($class->getName(), $class); - } catch (ReflectionException $e) { - throw MappingException::reflectionFailure($class->getName(), $e); - } - - // If this class has a parent the id generator strategy is inherited. - // However this is only true if the hierarchy of parents contains the root entity, - // if it consists of mapped superclasses these don't necessarily include the id field. - if ($parent && $rootEntityFound) { - $this->inheritIdGeneratorMapping($class, $parent); - } else { - $this->completeIdGeneratorMapping($class); - } - - if (! $class->isMappedSuperclass) { - if ($rootEntityFound && $class->isInheritanceTypeNone()) { - throw MappingException::missingInheritanceTypeDeclaration(end($nonSuperclassParents), $class->name); - } - - foreach ($class->embeddedClasses as $property => $embeddableClass) { - if (isset($embeddableClass->inherited)) { - continue; - } - - if (isset($this->embeddablesActiveNesting[$embeddableClass->class])) { - throw MappingException::infiniteEmbeddableNesting($class->name, $property); - } - - $this->embeddablesActiveNesting[$class->name] = true; - - $embeddableMetadata = $this->getMetadataFor($embeddableClass->class); - - if ($embeddableMetadata->isEmbeddedClass) { - $this->addNestedEmbeddedClasses($embeddableMetadata, $class, $property); - } - - $identifier = $embeddableMetadata->getIdentifier(); - - if (! empty($identifier)) { - $this->inheritIdGeneratorMapping($class, $embeddableMetadata); - } - - $class->inlineEmbeddable($property, $embeddableMetadata); - - unset($this->embeddablesActiveNesting[$class->name]); - } - } - - if ($parent) { - if ($parent->isInheritanceTypeSingleTable()) { - $class->setPrimaryTable($parent->table); - } - - $this->addInheritedIndexes($class, $parent); - - if ($parent->cache) { - $class->cache = $parent->cache; - } - - if ($parent->containsForeignIdentifier) { - $class->containsForeignIdentifier = true; - } - - if ($parent->containsEnumIdentifier) { - $class->containsEnumIdentifier = true; - } - - if (! empty($parent->entityListeners) && empty($class->entityListeners)) { - $class->entityListeners = $parent->entityListeners; - } - } - - $class->setParentClasses($nonSuperclassParents); - - if ($class->isRootEntity() && ! $class->isInheritanceTypeNone() && ! $class->discriminatorMap) { - $this->addDefaultDiscriminatorMap($class); - } - - // During the following event, there may also be updates to the discriminator map as per GH-1257/GH-8402. - // So, we must not discover the missing subclasses before that. - - if ($this->evm->hasListeners(Events::loadClassMetadata)) { - $eventArgs = new LoadClassMetadataEventArgs($class, $this->em); - $this->evm->dispatchEvent(Events::loadClassMetadata, $eventArgs); - } - - $this->findAbstractEntityClassesNotListedInDiscriminatorMap($class); - - $this->validateRuntimeMetadata($class, $parent); - } - - /** - * Validate runtime metadata is correctly defined. - * - * @throws MappingException - */ - protected function validateRuntimeMetadata(ClassMetadata $class, ClassMetadataInterface|null $parent): void - { - if (! $class->reflClass) { - // only validate if there is a reflection class instance - return; - } - - $class->validateIdentifier(); - $class->validateAssociations(); - $class->validateLifecycleCallbacks($this->getReflectionService()); - - // verify inheritance - if (! $class->isMappedSuperclass && ! $class->isInheritanceTypeNone()) { - if (! $parent) { - if (count($class->discriminatorMap) === 0) { - throw MappingException::missingDiscriminatorMap($class->name); - } - - if (! $class->discriminatorColumn) { - throw MappingException::missingDiscriminatorColumn($class->name); - } - - foreach ($class->subClasses as $subClass) { - if ((new ReflectionClass($subClass))->name !== $subClass) { - throw MappingException::invalidClassInDiscriminatorMap($subClass, $class->name); - } - } - } else { - assert($parent instanceof ClassMetadata); // https://github.com/doctrine/orm/issues/8746 - if ( - ! $class->reflClass->isAbstract() - && ! in_array($class->name, $class->discriminatorMap, true) - ) { - throw MappingException::mappedClassNotPartOfDiscriminatorMap($class->name, $class->rootEntityName); - } - } - } elseif ($class->isMappedSuperclass && $class->name === $class->rootEntityName && (count($class->discriminatorMap) || $class->discriminatorColumn)) { - // second condition is necessary for mapped superclasses in the middle of an inheritance hierarchy - throw MappingException::noInheritanceOnMappedSuperClass($class->name); - } - } - - protected function newClassMetadataInstance(string $className): ClassMetadata - { - return new ClassMetadata( - $className, - $this->em->getConfiguration()->getNamingStrategy(), - $this->em->getConfiguration()->getTypedFieldMapper(), - ); - } - - /** - * Adds a default discriminator map if no one is given - * - * If an entity is of any inheritance type and does not contain a - * discriminator map, then the map is generated automatically. This process - * is expensive computation wise. - * - * The automatically generated discriminator map contains the lowercase short name of - * each class as key. - * - * @throws MappingException - */ - private function addDefaultDiscriminatorMap(ClassMetadata $class): void - { - $allClasses = $this->driver->getAllClassNames(); - $fqcn = $class->getName(); - $map = [$this->getShortName($class->name) => $fqcn]; - - $duplicates = []; - foreach ($allClasses as $subClassCandidate) { - if (is_subclass_of($subClassCandidate, $fqcn)) { - $shortName = $this->getShortName($subClassCandidate); - - if (isset($map[$shortName])) { - $duplicates[] = $shortName; - } - - $map[$shortName] = $subClassCandidate; - } - } - - if ($duplicates) { - throw MappingException::duplicateDiscriminatorEntry($class->name, $duplicates, $map); - } - - $class->setDiscriminatorMap($map); - } - - private function findAbstractEntityClassesNotListedInDiscriminatorMap(ClassMetadata $rootEntityClass): void - { - // Only root classes in inheritance hierarchies need contain a discriminator map, - // so skip for other classes. - if (! $rootEntityClass->isRootEntity() || $rootEntityClass->isInheritanceTypeNone()) { - return; - } - - $processedClasses = [$rootEntityClass->name => true]; - foreach ($rootEntityClass->subClasses as $knownSubClass) { - $processedClasses[$knownSubClass] = true; - } - - foreach ($rootEntityClass->discriminatorMap as $declaredClassName) { - // This fetches non-transient parent classes only - $parentClasses = $this->getParentClasses($declaredClassName); - - foreach ($parentClasses as $parentClass) { - if (isset($processedClasses[$parentClass])) { - continue; - } - - $processedClasses[$parentClass] = true; - - // All non-abstract entity classes must be listed in the discriminator map, and - // this will be validated/enforced at runtime (possibly at a later time, when the - // subclass is loaded, but anyways). Also, subclasses is about entity classes only. - // That means we can ignore non-abstract classes here. The (expensive) driver - // check for mapped superclasses need only be run for abstract candidate classes. - if (! (new ReflectionClass($parentClass))->isAbstract() || $this->peekIfIsMappedSuperclass($parentClass)) { - continue; - } - - // We have found a non-transient, non-mapped-superclass = an entity class (possibly abstract, but that does not matter) - $rootEntityClass->addSubClass($parentClass); - } - } - } - - /** @param class-string $className */ - private function peekIfIsMappedSuperclass(string $className): bool - { - $reflService = $this->getReflectionService(); - $class = $this->newClassMetadataInstance($className); - $this->initializeReflection($class, $reflService); - - $this->getDriver()->loadMetadataForClass($className, $class); - - return $class->isMappedSuperclass; - } - - /** - * Gets the lower-case short name of a class. - * - * @param class-string $className - */ - private function getShortName(string $className): string - { - if (! str_contains($className, '\\')) { - return strtolower($className); - } - - $parts = explode('\\', $className); - - return strtolower(end($parts)); - } - - /** - * Puts the `inherited` and `declared` values into mapping information for fields, associations - * and embedded classes. - */ - private function addMappingInheritanceInformation( - AssociationMapping|EmbeddedClassMapping|FieldMapping $mapping, - ClassMetadata $parentClass, - ): void { - if (! isset($mapping->inherited) && ! $parentClass->isMappedSuperclass) { - $mapping->inherited = $parentClass->name; - } - - if (! isset($mapping->declared)) { - $mapping->declared = $parentClass->name; - } - } - - /** - * Adds inherited fields to the subclass mapping. - */ - private function addInheritedFields(ClassMetadata $subClass, ClassMetadata $parentClass): void - { - foreach ($parentClass->fieldMappings as $mapping) { - $subClassMapping = clone $mapping; - $this->addMappingInheritanceInformation($subClassMapping, $parentClass); - $subClass->addInheritedFieldMapping($subClassMapping); - } - - foreach ($parentClass->propertyAccessors as $name => $field) { - $subClass->propertyAccessors[$name] = $field; - } - } - - /** - * Adds inherited association mappings to the subclass mapping. - * - * @throws MappingException - */ - private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass): void - { - foreach ($parentClass->associationMappings as $field => $mapping) { - $subClassMapping = clone $mapping; - $this->addMappingInheritanceInformation($subClassMapping, $parentClass); - // When the class inheriting the relation ($subClass) is the first entity class since the - // relation has been defined in a mapped superclass (or in a chain - // of mapped superclasses) above, then declare this current entity class as the source of - // the relationship. - // According to the definitions given in https://github.com/doctrine/orm/pull/10396/, - // this is the case <=> ! isset($mapping['inherited']). - if (! isset($subClassMapping->inherited)) { - $subClassMapping->sourceEntity = $subClass->name; - } - - $subClass->addInheritedAssociationMapping($subClassMapping); - } - } - - private function addInheritedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass): void - { - foreach ($parentClass->embeddedClasses as $field => $embeddedClass) { - $subClassMapping = clone $embeddedClass; - $this->addMappingInheritanceInformation($subClassMapping, $parentClass); - $subClass->embeddedClasses[$field] = $subClassMapping; - } - } - - /** - * Adds nested embedded classes metadata to a parent class. - * - * @param ClassMetadata $subClass Sub embedded class metadata to add nested embedded classes metadata from. - * @param ClassMetadata $parentClass Parent class to add nested embedded classes metadata to. - * @param string $prefix Embedded classes' prefix to use for nested embedded classes field names. - */ - private function addNestedEmbeddedClasses( - ClassMetadata $subClass, - ClassMetadata $parentClass, - string $prefix, - ): void { - foreach ($subClass->embeddedClasses as $property => $embeddableClass) { - if (isset($embeddableClass->inherited)) { - continue; - } - - $embeddableMetadata = $this->getMetadataFor($embeddableClass->class); - - $parentClass->mapEmbedded( - [ - 'fieldName' => $prefix . '.' . $property, - 'class' => $embeddableMetadata->name, - 'columnPrefix' => $embeddableClass->columnPrefix, - 'declaredField' => $embeddableClass->declaredField - ? $prefix . '.' . $embeddableClass->declaredField - : $prefix, - 'originalField' => $embeddableClass->originalField ?: $property, - ], - ); - } - } - - /** - * Copy the table indices from the parent class superclass to the child class - */ - private function addInheritedIndexes(ClassMetadata $subClass, ClassMetadata $parentClass): void - { - if (! $parentClass->isMappedSuperclass) { - return; - } - - foreach (['uniqueConstraints', 'indexes'] as $indexType) { - if (isset($parentClass->table[$indexType])) { - foreach ($parentClass->table[$indexType] as $indexName => $index) { - if (isset($subClass->table[$indexType][$indexName])) { - continue; // Let the inheriting table override indices - } - - $subClass->table[$indexType][$indexName] = $index; - } - } - } - } - - /** - * Completes the ID generator mapping. If "auto" is specified we choose the generator - * most appropriate for the targeted database platform. - * - * @throws ORMException - */ - private function completeIdGeneratorMapping(ClassMetadata $class): void - { - $idGenType = $class->generatorType; - if ($idGenType === ClassMetadata::GENERATOR_TYPE_AUTO) { - $class->setIdGeneratorType($this->determineIdGeneratorStrategy($this->getTargetPlatform())); - } - - // Create & assign an appropriate ID generator instance - switch ($class->generatorType) { - case ClassMetadata::GENERATOR_TYPE_IDENTITY: - $sequenceName = null; - $fieldName = $class->identifier ? $class->getSingleIdentifierFieldName() : null; - $platform = $this->getTargetPlatform(); - - $generator = $fieldName && $class->fieldMappings[$fieldName]->type === 'bigint' - ? new BigIntegerIdentityGenerator() - : new IdentityGenerator(); - - $class->setIdGenerator($generator); - - break; - - case ClassMetadata::GENERATOR_TYPE_SEQUENCE: - // If there is no sequence definition yet, create a default definition - $definition = $class->sequenceGeneratorDefinition; - - if (! $definition) { - $fieldName = $class->getSingleIdentifierFieldName(); - $sequenceName = $class->getSequenceName($this->getTargetPlatform()); - $quoted = isset($class->fieldMappings[$fieldName]->quoted) || isset($class->table['quoted']); - - $definition = [ - 'sequenceName' => $this->truncateSequenceName($sequenceName), - 'allocationSize' => 1, - 'initialValue' => 1, - ]; - - if ($quoted) { - $definition['quoted'] = true; - } - - $class->setSequenceGeneratorDefinition($definition); - } - - $sequenceGenerator = new SequenceGenerator( - $this->em->getConfiguration()->getQuoteStrategy()->getSequenceName($definition, $class, $this->getTargetPlatform()), - (int) $definition['allocationSize'], - ); - $class->setIdGenerator($sequenceGenerator); - break; - - case ClassMetadata::GENERATOR_TYPE_NONE: - $class->setIdGenerator(new AssignedGenerator()); - break; - - case ClassMetadata::GENERATOR_TYPE_CUSTOM: - $definition = $class->customGeneratorDefinition; - if ($definition === null) { - throw InvalidCustomGenerator::onClassNotConfigured(); - } - - if (! class_exists($definition['class'])) { - throw InvalidCustomGenerator::onMissingClass($definition); - } - - $class->setIdGenerator(new $definition['class']()); - break; - - default: - throw UnknownGeneratorType::create($class->generatorType); - } - } - - /** @phpstan-return ClassMetadata::GENERATOR_TYPE_* */ - private function determineIdGeneratorStrategy(AbstractPlatform $platform): int - { - assert($this->em !== null); - foreach ($this->em->getConfiguration()->getIdentityGenerationPreferences() as $platformFamily => $strategy) { - if (is_a($platform, $platformFamily)) { - return $strategy; - } - } - - $nonIdentityDefaultStrategy = self::NON_IDENTITY_DEFAULT_STRATEGY; - - // DBAL 3 - if (method_exists($platform, 'getIdentitySequenceName')) { - $nonIdentityDefaultStrategy[Platforms\PostgreSQLPlatform::class] = ClassMetadata::GENERATOR_TYPE_SEQUENCE; - } - - foreach ($nonIdentityDefaultStrategy as $platformFamily => $strategy) { - if (is_a($platform, $platformFamily)) { - if ($platform instanceof Platforms\PostgreSQLPlatform) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/issues/8893', - <<<'DEPRECATION' - Relying on non-optimal defaults for ID generation is deprecated, and IDENTITY - results in SERIAL, which is not recommended. - Instead, configure identifier generation strategies explicitly through - configuration. - We currently recommend "SEQUENCE" for "%s", when using DBAL 3, - and "IDENTITY" when using DBAL 4, - so you should probably use the following configuration before upgrading to DBAL 4, - and remove it after deploying that upgrade: - - $configuration->setIdentityGenerationPreferences([ - "%s" => ClassMetadata::GENERATOR_TYPE_SEQUENCE, - ]); - - DEPRECATION, - $platformFamily, - $platformFamily, - ); - } - - return $strategy; - } - } - - return ClassMetadata::GENERATOR_TYPE_IDENTITY; - } - - private function truncateSequenceName(string $schemaElementName): string - { - $platform = $this->getTargetPlatform(); - if (! $platform instanceof Platforms\OraclePlatform) { - return $schemaElementName; - } - - $maxIdentifierLength = $platform->getMaxIdentifierLength(); - - if (strlen($schemaElementName) > $maxIdentifierLength) { - return substr($schemaElementName, 0, $maxIdentifierLength); - } - - return $schemaElementName; - } - - /** - * Inherits the ID generator mapping from a parent class. - */ - private function inheritIdGeneratorMapping(ClassMetadata $class, ClassMetadata $parent): void - { - if ($parent->isIdGeneratorSequence()) { - $class->setSequenceGeneratorDefinition($parent->sequenceGeneratorDefinition); - } - - if ($parent->generatorType) { - $class->setIdGeneratorType($parent->generatorType); - } - - if ($parent->idGenerator ?? null) { - $class->setIdGenerator($parent->idGenerator); - } - } - - protected function wakeupReflection(ClassMetadataInterface $class, ReflectionService $reflService): void - { - $class->wakeupReflection($reflService); - - if (PHP_VERSION_ID < 80400) { - return; - } - - foreach ($class->propertyAccessors as $propertyAccessor) { - $property = $propertyAccessor->getUnderlyingReflector(); - - if ($property->isVirtual()) { - throw MappingException::mappingVirtualPropertyNotAllowed($class->name, $property->getName()); - } - } - } - - protected function initializeReflection(ClassMetadataInterface $class, ReflectionService $reflService): void - { - $class->initializeReflection($reflService); - } - - protected function getDriver(): MappingDriver - { - assert($this->driver !== null); - - return $this->driver; - } - - protected function isEntity(ClassMetadataInterface $class): bool - { - return ! $class->isMappedSuperclass; - } - - private function getTargetPlatform(): Platforms\AbstractPlatform - { - if (! $this->targetPlatform) { - $this->targetPlatform = $this->em->getConnection()->getDatabasePlatform(); - } - - return $this->targetPlatform; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Column.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Column.php deleted file mode 100644 index 0c7291f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Column.php +++ /dev/null @@ -1,37 +0,0 @@ -|null $enumType - * @param array $options - * @phpstan-param 'NEVER'|'INSERT'|'ALWAYS'|null $generated - */ - public function __construct( - public readonly string|null $name = null, - public readonly string|null $type = null, - public readonly int|null $length = null, - public readonly int|null $precision = null, - public readonly int|null $scale = null, - public readonly bool $unique = false, - public readonly bool $nullable = false, - public readonly bool $insertable = true, - public readonly bool $updatable = true, - public readonly string|null $enumType = null, - public readonly array $options = [], - public readonly string|null $columnDefinition = null, - public readonly string|null $generated = null, - public readonly bool $index = false, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/CustomIdGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/CustomIdGenerator.php deleted file mode 100644 index 7b31dc3..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/CustomIdGenerator.php +++ /dev/null @@ -1,16 +0,0 @@ - Map to store entity listener instances. */ - private array $instances = []; - - public function clear(string|null $className = null): void - { - if ($className === null) { - $this->instances = []; - - return; - } - - $className = trim($className, '\\'); - unset($this->instances[$className]); - } - - public function register(object $object): void - { - $this->instances[$object::class] = $object; - } - - public function resolve(string $className): object - { - $className = trim($className, '\\'); - - return $this->instances[$className] ??= new $className(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultNamingStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultNamingStrategy.php deleted file mode 100644 index 15218f9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultNamingStrategy.php +++ /dev/null @@ -1,68 +0,0 @@ -referenceColumnName(); - } - - public function joinTableName( - string $sourceEntity, - string $targetEntity, - string $propertyName, - ): string { - return strtolower($this->classToTableName($sourceEntity) . '_' . - $this->classToTableName($targetEntity)); - } - - public function joinKeyColumnName( - string $entityName, - string|null $referencedColumnName, - ): string { - return strtolower($this->classToTableName($entityName) . '_' . - ($referencedColumnName ?: $this->referenceColumnName())); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultQuoteStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultQuoteStrategy.php deleted file mode 100644 index b42de4e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultQuoteStrategy.php +++ /dev/null @@ -1,145 +0,0 @@ -fieldMappings[$fieldName]->quoted) - ? $platform->quoteSingleIdentifier($class->fieldMappings[$fieldName]->columnName) - : $class->fieldMappings[$fieldName]->columnName; - } - - /** - * {@inheritDoc} - * - * @todo Table names should be computed in DBAL depending on the platform - */ - public function getTableName(ClassMetadata $class, AbstractPlatform $platform): string - { - $tableName = $class->table['name']; - - if (! empty($class->table['schema'])) { - $tableName = $class->table['schema'] . '.' . $class->table['name']; - } - - return isset($class->table['quoted']) - ? $platform->quoteSingleIdentifier($tableName) - : $tableName; - } - - /** - * {@inheritDoc} - */ - public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform): string - { - return isset($definition['quoted']) - ? $platform->quoteSingleIdentifier($definition['sequenceName']) - : $definition['sequenceName']; - } - - public function getJoinColumnName(JoinColumnMapping $joinColumn, ClassMetadata $class, AbstractPlatform $platform): string - { - return isset($joinColumn->quoted) - ? $platform->quoteSingleIdentifier($joinColumn->name) - : $joinColumn->name; - } - - public function getReferencedJoinColumnName( - JoinColumnMapping $joinColumn, - ClassMetadata $class, - AbstractPlatform $platform, - ): string { - return isset($joinColumn->quoted) - ? $platform->quoteSingleIdentifier($joinColumn->referencedColumnName) - : $joinColumn->referencedColumnName; - } - - public function getJoinTableName( - ManyToManyOwningSideMapping $association, - ClassMetadata $class, - AbstractPlatform $platform, - ): string { - $schema = ''; - - if (isset($association->joinTable->schema)) { - $schema = $association->joinTable->schema . '.'; - } - - $tableName = $association->joinTable->name; - - if (isset($association->joinTable->quoted)) { - $tableName = $platform->quoteSingleIdentifier($tableName); - } - - return $schema . $tableName; - } - - /** - * {@inheritDoc} - */ - public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array - { - $quotedColumnNames = []; - - foreach ($class->identifier as $fieldName) { - if (isset($class->fieldMappings[$fieldName])) { - $quotedColumnNames[] = $this->getColumnName($fieldName, $class, $platform); - - continue; - } - - // Association defined as Id field - $assoc = $class->associationMappings[$fieldName]; - assert($assoc->isToOneOwningSide()); - $joinColumns = $assoc->joinColumns; - $assocQuotedColumnNames = array_map( - static fn (JoinColumnMapping $joinColumn) => isset($joinColumn->quoted) - ? $platform->quoteSingleIdentifier($joinColumn->name) - : $joinColumn->name, - $joinColumns, - ); - - $quotedColumnNames = array_merge($quotedColumnNames, $assocQuotedColumnNames); - } - - return $quotedColumnNames; - } - - public function getColumnAlias( - string $columnName, - int $counter, - AbstractPlatform $platform, - ClassMetadata|null $class = null, - ): string { - // 1 ) Concatenate column name and counter - // 2 ) Trim the column alias to the maximum identifier length of the platform. - // If the alias is to long, characters are cut off from the beginning. - // 3 ) Strip non alphanumeric characters - // 4 ) Prefix with "_" if the result its numeric - $columnName .= '_' . $counter; - $columnName = substr($columnName, -$platform->getMaxIdentifierLength()); - $columnName = preg_replace('/[^A-Za-z0-9_]/', '', $columnName); - $columnName = is_numeric($columnName) ? '_' . $columnName : $columnName; - - return $this->getSQLResultCasing($platform, $columnName); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultTypedFieldMapper.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultTypedFieldMapper.php deleted file mode 100644 index 61894e9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DefaultTypedFieldMapper.php +++ /dev/null @@ -1,95 +0,0 @@ -|string> $typedFieldMappings */ - private array $typedFieldMappings; - - private const DEFAULT_TYPED_FIELD_MAPPINGS = [ - DateInterval::class => Types::DATEINTERVAL, - DateTime::class => Types::DATETIME_MUTABLE, - DateTimeImmutable::class => Types::DATETIME_IMMUTABLE, - 'array' => Types::JSON, - 'bool' => Types::BOOLEAN, - 'float' => Types::FLOAT, - 'int' => Types::INTEGER, - 'string' => Types::STRING, - ]; - - /** @param array|string> $typedFieldMappings */ - public function __construct(array $typedFieldMappings = []) - { - $defaultMappings = self::DEFAULT_TYPED_FIELD_MAPPINGS; - if (defined(Types::class . '::NUMBER')) { // DBAL 4.3+ - $defaultMappings[Number::class] = Types::NUMBER; - } - - $this->typedFieldMappings = array_merge($defaultMappings, $typedFieldMappings); - } - - /** - * {@inheritDoc} - */ - public function validateAndComplete(array $mapping, ReflectionProperty $field): array - { - $type = $field->getType(); - - if (! $type instanceof ReflectionNamedType) { - return $mapping; - } - - if ( - ! $type->isBuiltin() - && enum_exists($type->getName()) - && (! isset($mapping['type']) || ( - defined('Doctrine\DBAL\Types\Types::ENUM') - && $mapping['type'] === Types::ENUM - )) - ) { - $reflection = new ReflectionEnum($type->getName()); - if (! $reflection->isBacked()) { - throw MappingException::backedEnumTypeRequired( - $field->class, - $mapping['fieldName'], - $type->getName(), - ); - } - - assert(is_a($type->getName(), BackedEnum::class, true)); - $mapping['enumType'] = $type->getName(); - $type = $reflection->getBackingType(); - } - - if (isset($mapping['type'])) { - return $mapping; - } - - if (isset($this->typedFieldMappings[$type->getName()])) { - $mapping['type'] = $this->typedFieldMappings[$type->getName()]; - } - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumn.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumn.php deleted file mode 100644 index fb9c7d3..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumn.php +++ /dev/null @@ -1,24 +0,0 @@ -|null */ - public readonly string|null $enumType = null, - /** @var array */ - public readonly array $options = [], - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumnMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumnMapping.php deleted file mode 100644 index a96d22d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorColumnMapping.php +++ /dev/null @@ -1,83 +0,0 @@ - */ -final class DiscriminatorColumnMapping implements ArrayAccess -{ - use ArrayAccessImplementation; - - /** The database length of the column. Optional. Default value taken from the type. */ - public int|null $length = null; - - public string|null $columnDefinition = null; - - /** @var class-string|null */ - public string|null $enumType = null; - - /** @var array */ - public array $options = []; - - public function __construct( - public string $type, - public string $fieldName, - public string $name, - ) { - } - - /** - * @phpstan-param array{ - * type: string, - * fieldName: string, - * name: string, - * length?: int|null, - * columnDefinition?: string|null, - * enumType?: class-string|null, - * options?: array|null, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): self - { - $mapping = new self( - $mappingArray['type'], - $mappingArray['fieldName'], - $mappingArray['name'], - ); - foreach ($mappingArray as $key => $value) { - if (in_array($key, ['type', 'fieldName', 'name'])) { - continue; - } - - if (property_exists($mapping, $key)) { - $mapping->$key = $value ?? $mapping->$key; - } else { - throw new Exception('Unknown property ' . $key . ' on class ' . static::class); - } - } - - return $mapping; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = ['type', 'fieldName', 'name']; - - foreach (['length', 'columnDefinition', 'enumType', 'options'] as $stringOrArrayKey) { - if ($this->$stringOrArrayKey !== null) { - $serialized[] = $stringOrArrayKey; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorMap.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorMap.php deleted file mode 100644 index 2b204a9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/DiscriminatorMap.php +++ /dev/null @@ -1,17 +0,0 @@ - $value */ - public function __construct( - public readonly array $value, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeDriver.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeDriver.php deleted file mode 100644 index 4445ea6..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeDriver.php +++ /dev/null @@ -1,764 +0,0 @@ - 1, - Mapping\MappedSuperclass::class => 2, - ]; - - private readonly AttributeReader $reader; - - /** - * @param array $paths - * @param true $reportFieldsWhereDeclared no-op, to be removed in 4.0 - */ - public function __construct(array $paths, bool $reportFieldsWhereDeclared = true) - { - if (! $reportFieldsWhereDeclared) { - throw new InvalidArgumentException(sprintf( - 'The $reportFieldsWhereDeclared argument is no longer supported, make sure to omit it when calling %s.', - __METHOD__, - )); - } - - $this->reader = new AttributeReader(); - $this->addPaths($paths); - } - - public function isTransient(string $className): bool - { - $classAttributes = $this->reader->getClassAttributes(new ReflectionClass($className)); - - foreach ($classAttributes as $a) { - $attr = $a instanceof RepeatableAttributeCollection ? $a[0] : $a; - if (isset(self::ENTITY_ATTRIBUTE_CLASSES[$attr::class])) { - return false; - } - } - - return true; - } - - /** - * {@inheritDoc} - * - * @param class-string $className - * @param ClassMetadata $metadata - * - * @template T of object - */ - public function loadMetadataForClass(string $className, PersistenceClassMetadata $metadata): void - { - $reflectionClass = $metadata->getReflectionClass() - // this happens when running attribute driver in combination with - // static reflection services. This is not the nicest fix - ?? new ReflectionClass($metadata->name); - - $classAttributes = $this->reader->getClassAttributes($reflectionClass); - - // Evaluate Entity attribute - if (isset($classAttributes[Mapping\Entity::class])) { - $entityAttribute = $classAttributes[Mapping\Entity::class]; - if ($entityAttribute->repositoryClass !== null) { - $metadata->setCustomRepositoryClass($entityAttribute->repositoryClass); - } - - if ($entityAttribute->readOnly) { - $metadata->markReadOnly(); - } - } elseif (isset($classAttributes[Mapping\MappedSuperclass::class])) { - $mappedSuperclassAttribute = $classAttributes[Mapping\MappedSuperclass::class]; - - $metadata->setCustomRepositoryClass($mappedSuperclassAttribute->repositoryClass); - $metadata->isMappedSuperclass = true; - } elseif (isset($classAttributes[Mapping\Embeddable::class])) { - $metadata->isEmbeddedClass = true; - } else { - throw MappingException::classIsNotAValidEntityOrMappedSuperClass($className); - } - - $primaryTable = []; - - if (isset($classAttributes[Mapping\Table::class])) { - $tableAnnot = $classAttributes[Mapping\Table::class]; - $primaryTable['name'] = $tableAnnot->name; - $primaryTable['schema'] = $tableAnnot->schema; - - if ($tableAnnot->options) { - $primaryTable['options'] = $tableAnnot->options; - } - } - - if (isset($classAttributes[Mapping\Index::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\Index::class); - } - - foreach ($classAttributes[Mapping\Index::class] as $idx => $indexAnnot) { - $index = []; - - if (! empty($indexAnnot->columns)) { - $index['columns'] = $indexAnnot->columns; - } - - if (! empty($indexAnnot->fields)) { - $index['fields'] = $indexAnnot->fields; - } - - if ( - isset($index['columns'], $index['fields']) - || ( - ! isset($index['columns']) - && ! isset($index['fields']) - ) - ) { - throw MappingException::invalidIndexConfiguration( - $className, - (string) ($indexAnnot->name ?? $idx), - ); - } - - if (! empty($indexAnnot->flags)) { - $index['flags'] = $indexAnnot->flags; - } - - if (! empty($indexAnnot->options)) { - $index['options'] = $indexAnnot->options; - } - - if (! empty($indexAnnot->name)) { - $primaryTable['indexes'][$indexAnnot->name] = $index; - } else { - $primaryTable['indexes'][] = $index; - } - } - } - - if (isset($classAttributes[Mapping\UniqueConstraint::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\UniqueConstraint::class); - } - - foreach ($classAttributes[Mapping\UniqueConstraint::class] as $idx => $uniqueConstraintAnnot) { - $uniqueConstraint = []; - - if (! empty($uniqueConstraintAnnot->columns)) { - $uniqueConstraint['columns'] = $uniqueConstraintAnnot->columns; - } - - if (! empty($uniqueConstraintAnnot->fields)) { - $uniqueConstraint['fields'] = $uniqueConstraintAnnot->fields; - } - - if ( - isset($uniqueConstraint['columns'], $uniqueConstraint['fields']) - || ( - ! isset($uniqueConstraint['columns']) - && ! isset($uniqueConstraint['fields']) - ) - ) { - throw MappingException::invalidUniqueConstraintConfiguration( - $className, - (string) ($uniqueConstraintAnnot->name ?? $idx), - ); - } - - if (! empty($uniqueConstraintAnnot->options)) { - $uniqueConstraint['options'] = $uniqueConstraintAnnot->options; - } - - if (! empty($uniqueConstraintAnnot->name)) { - $primaryTable['uniqueConstraints'][$uniqueConstraintAnnot->name] = $uniqueConstraint; - } else { - $primaryTable['uniqueConstraints'][] = $uniqueConstraint; - } - } - } - - $metadata->setPrimaryTable($primaryTable); - - // Evaluate #[Cache] attribute - if (isset($classAttributes[Mapping\Cache::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\Cache::class); - } - - $cacheAttribute = $classAttributes[Mapping\Cache::class]; - $cacheMap = [ - 'region' => $cacheAttribute->region, - 'usage' => constant('Doctrine\ORM\Mapping\ClassMetadata::CACHE_USAGE_' . $cacheAttribute->usage), - ]; - - $metadata->enableCache($cacheMap); - } - - // Evaluate InheritanceType attribute - if (isset($classAttributes[Mapping\InheritanceType::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\InheritanceType::class); - } - - $inheritanceTypeAttribute = $classAttributes[Mapping\InheritanceType::class]; - - $metadata->setInheritanceType( - constant('Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_' . $inheritanceTypeAttribute->value), - ); - - if ($metadata->inheritanceType !== ClassMetadata::INHERITANCE_TYPE_NONE) { - // Evaluate DiscriminatorColumn attribute - if (isset($classAttributes[Mapping\DiscriminatorColumn::class])) { - $discrColumnAttribute = $classAttributes[Mapping\DiscriminatorColumn::class]; - assert($discrColumnAttribute instanceof Mapping\DiscriminatorColumn); - - $columnDef = [ - 'name' => $discrColumnAttribute->name, - 'type' => $discrColumnAttribute->type ?? 'string', - 'length' => $discrColumnAttribute->length ?? 255, - 'columnDefinition' => $discrColumnAttribute->columnDefinition, - 'enumType' => $discrColumnAttribute->enumType, - ]; - - if ($discrColumnAttribute->options) { - $columnDef['options'] = $discrColumnAttribute->options; - } - - $metadata->setDiscriminatorColumn($columnDef); - } else { - $metadata->setDiscriminatorColumn(['name' => 'dtype', 'type' => 'string', 'length' => 255]); - } - - // Evaluate DiscriminatorMap attribute - if (isset($classAttributes[Mapping\DiscriminatorMap::class])) { - $discrMapAttribute = $classAttributes[Mapping\DiscriminatorMap::class]; - $metadata->setDiscriminatorMap($discrMapAttribute->value); - } - } - } - - // Evaluate DoctrineChangeTrackingPolicy attribute - if (isset($classAttributes[Mapping\ChangeTrackingPolicy::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\ChangeTrackingPolicy::class); - } - - $changeTrackingAttribute = $classAttributes[Mapping\ChangeTrackingPolicy::class]; - $metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_' . $changeTrackingAttribute->value)); - } - - foreach ($reflectionClass->getProperties() as $property) { - if ($this->isRepeatedPropertyDeclaration($property, $metadata)) { - continue; - } - - $mapping = []; - $mapping['fieldName'] = $property->name; - - // Evaluate #[Cache] attribute - $cacheAttribute = $this->reader->getPropertyAttribute($property, Mapping\Cache::class); - if ($cacheAttribute !== null) { - $mapping['cache'] = $metadata->getAssociationCacheDefaults( - $mapping['fieldName'], - [ - 'usage' => (int) constant('Doctrine\ORM\Mapping\ClassMetadata::CACHE_USAGE_' . $cacheAttribute->usage), - 'region' => $cacheAttribute->region, - ], - ); - } - - // Check for JoinColumn/JoinColumns attributes - $joinColumns = []; - - $joinColumnAttributes = $this->reader->getPropertyAttributeCollection($property, Mapping\JoinColumn::class); - - foreach ($joinColumnAttributes as $joinColumnAttribute) { - $joinColumns[] = $this->joinColumnToArray($joinColumnAttribute); - } - - // Field can only be attributed with one of: - // Column, OneToOne, OneToMany, ManyToOne, ManyToMany, Embedded - $columnAttribute = $this->reader->getPropertyAttribute($property, Mapping\Column::class); - $oneToOneAttribute = $this->reader->getPropertyAttribute($property, Mapping\OneToOne::class); - $oneToManyAttribute = $this->reader->getPropertyAttribute($property, Mapping\OneToMany::class); - $manyToOneAttribute = $this->reader->getPropertyAttribute($property, Mapping\ManyToOne::class); - $manyToManyAttribute = $this->reader->getPropertyAttribute($property, Mapping\ManyToMany::class); - $embeddedAttribute = $this->reader->getPropertyAttribute($property, Mapping\Embedded::class); - - if ($columnAttribute !== null) { - $mapping = $this->columnToArray($property->name, $columnAttribute); - - if ($this->reader->getPropertyAttribute($property, Mapping\Id::class)) { - $mapping['id'] = true; - } - - $generatedValueAttribute = $this->reader->getPropertyAttribute($property, Mapping\GeneratedValue::class); - - if ($generatedValueAttribute !== null) { - $metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_' . $generatedValueAttribute->strategy)); - } - - if ($this->reader->getPropertyAttribute($property, Mapping\Version::class)) { - $metadata->setVersionMapping($mapping); - } - - $metadata->mapField($mapping); - - // Check for SequenceGenerator/TableGenerator definition - $seqGeneratorAttribute = $this->reader->getPropertyAttribute($property, Mapping\SequenceGenerator::class); - $customGeneratorAttribute = $this->reader->getPropertyAttribute($property, Mapping\CustomIdGenerator::class); - - if ($seqGeneratorAttribute !== null) { - $metadata->setSequenceGeneratorDefinition( - [ - 'sequenceName' => $seqGeneratorAttribute->sequenceName, - 'allocationSize' => $seqGeneratorAttribute->allocationSize, - 'initialValue' => $seqGeneratorAttribute->initialValue, - ], - ); - } elseif ($customGeneratorAttribute !== null) { - $metadata->setCustomGeneratorDefinition( - [ - 'class' => $customGeneratorAttribute->class, - ], - ); - } - } elseif ($oneToOneAttribute !== null) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\OneToOne::class); - } - - if ($this->reader->getPropertyAttribute($property, Mapping\Id::class)) { - $mapping['id'] = true; - } - - $mapping['targetEntity'] = $oneToOneAttribute->targetEntity; - $mapping['joinColumns'] = $joinColumns; - $mapping['mappedBy'] = $oneToOneAttribute->mappedBy; - $mapping['inversedBy'] = $oneToOneAttribute->inversedBy; - $mapping['cascade'] = $oneToOneAttribute->cascade; - $mapping['orphanRemoval'] = $oneToOneAttribute->orphanRemoval; - $mapping['fetch'] = $this->getFetchMode($className, $oneToOneAttribute->fetch); - $metadata->mapOneToOne($mapping); - } elseif ($oneToManyAttribute !== null) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\OneToMany::class); - } - - $mapping['mappedBy'] = $oneToManyAttribute->mappedBy; - $mapping['targetEntity'] = $oneToManyAttribute->targetEntity; - $mapping['cascade'] = $oneToManyAttribute->cascade; - $mapping['indexBy'] = $oneToManyAttribute->indexBy; - $mapping['orphanRemoval'] = $oneToManyAttribute->orphanRemoval; - $mapping['fetch'] = $this->getFetchMode($className, $oneToManyAttribute->fetch); - - $orderByAttribute = $this->reader->getPropertyAttribute($property, Mapping\OrderBy::class); - - if ($orderByAttribute !== null) { - $mapping['orderBy'] = $orderByAttribute->value; - } - - $metadata->mapOneToMany($mapping); - } elseif ($manyToOneAttribute !== null) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\ManyToOne::class); - } - - $idAttribute = $this->reader->getPropertyAttribute($property, Mapping\Id::class); - - if ($idAttribute !== null) { - $mapping['id'] = true; - } - - $mapping['joinColumns'] = $joinColumns; - $mapping['cascade'] = $manyToOneAttribute->cascade; - $mapping['inversedBy'] = $manyToOneAttribute->inversedBy; - $mapping['targetEntity'] = $manyToOneAttribute->targetEntity; - $mapping['fetch'] = $this->getFetchMode($className, $manyToOneAttribute->fetch); - $metadata->mapManyToOne($mapping); - } elseif ($manyToManyAttribute !== null) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\ManyToMany::class); - } - - $joinTable = []; - $joinTableAttribute = $this->reader->getPropertyAttribute($property, Mapping\JoinTable::class); - - if ($joinTableAttribute !== null) { - $joinTable = [ - 'name' => $joinTableAttribute->name, - 'schema' => $joinTableAttribute->schema, - ]; - - if ($joinTableAttribute->options) { - $joinTable['options'] = $joinTableAttribute->options; - } - - foreach ($joinTableAttribute->joinColumns as $joinColumn) { - $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumn); - } - - foreach ($joinTableAttribute->inverseJoinColumns as $joinColumn) { - $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumn); - } - } - - foreach ($this->reader->getPropertyAttributeCollection($property, Mapping\JoinColumn::class) as $joinColumn) { - $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumn); - } - - foreach ($this->reader->getPropertyAttributeCollection($property, Mapping\InverseJoinColumn::class) as $joinColumn) { - $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumn); - } - - $mapping['joinTable'] = $joinTable; - $mapping['targetEntity'] = $manyToManyAttribute->targetEntity; - $mapping['mappedBy'] = $manyToManyAttribute->mappedBy; - $mapping['inversedBy'] = $manyToManyAttribute->inversedBy; - $mapping['cascade'] = $manyToManyAttribute->cascade; - $mapping['indexBy'] = $manyToManyAttribute->indexBy; - $mapping['orphanRemoval'] = $manyToManyAttribute->orphanRemoval; - $mapping['fetch'] = $this->getFetchMode($className, $manyToManyAttribute->fetch); - - $orderByAttribute = $this->reader->getPropertyAttribute($property, Mapping\OrderBy::class); - - if ($orderByAttribute !== null) { - $mapping['orderBy'] = $orderByAttribute->value; - } - - $metadata->mapManyToMany($mapping); - } elseif ($embeddedAttribute !== null) { - $mapping['class'] = $embeddedAttribute->class; - $mapping['columnPrefix'] = $embeddedAttribute->columnPrefix; - - $metadata->mapEmbedded($mapping); - } - } - - // Evaluate AssociationOverrides attribute - if (isset($classAttributes[Mapping\AssociationOverrides::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\AssociationOverride::class); - } - - $associationOverride = $classAttributes[Mapping\AssociationOverrides::class]; - - foreach ($associationOverride->overrides as $associationOverride) { - $override = []; - $fieldName = $associationOverride->name; - - // Check for JoinColumn/JoinColumns attributes - if ($associationOverride->joinColumns) { - $joinColumns = []; - - foreach ($associationOverride->joinColumns as $joinColumn) { - $joinColumns[] = $this->joinColumnToArray($joinColumn); - } - - $override['joinColumns'] = $joinColumns; - } - - if ($associationOverride->inverseJoinColumns) { - $joinColumns = []; - - foreach ($associationOverride->inverseJoinColumns as $joinColumn) { - $joinColumns[] = $this->joinColumnToArray($joinColumn); - } - - $override['inverseJoinColumns'] = $joinColumns; - } - - // Check for JoinTable attributes - if ($associationOverride->joinTable) { - $joinTableAnnot = $associationOverride->joinTable; - $joinTable = [ - 'name' => $joinTableAnnot->name, - 'schema' => $joinTableAnnot->schema, - 'joinColumns' => $override['joinColumns'] ?? [], - 'inverseJoinColumns' => $override['inverseJoinColumns'] ?? [], - ]; - - unset($override['joinColumns'], $override['inverseJoinColumns']); - - $override['joinTable'] = $joinTable; - } - - // Check for inversedBy - if ($associationOverride->inversedBy) { - $override['inversedBy'] = $associationOverride->inversedBy; - } - - // Check for `fetch` - if ($associationOverride->fetch) { - $override['fetch'] = constant(ClassMetadata::class . '::FETCH_' . $associationOverride->fetch); - } - - $metadata->setAssociationOverride($fieldName, $override); - } - } - - // Evaluate AttributeOverrides attribute - if (isset($classAttributes[Mapping\AttributeOverrides::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\AttributeOverrides::class); - } - - $attributeOverridesAnnot = $classAttributes[Mapping\AttributeOverrides::class]; - - foreach ($attributeOverridesAnnot->overrides as $attributeOverride) { - $mapping = $this->columnToArray($attributeOverride->name, $attributeOverride->column); - - $metadata->setAttributeOverride($attributeOverride->name, $mapping); - } - } - - // Evaluate EntityListeners attribute - if (isset($classAttributes[Mapping\EntityListeners::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\EntityListeners::class); - } - - $entityListenersAttribute = $classAttributes[Mapping\EntityListeners::class]; - - foreach ($entityListenersAttribute->value as $item) { - $listenerClassName = $metadata->fullyQualifiedClassName($item); - - if (! class_exists($listenerClassName)) { - throw MappingException::entityListenerClassNotFound($listenerClassName, $className); - } - - $hasMapping = false; - $listenerClass = new ReflectionClass($listenerClassName); - - foreach ($listenerClass->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { - // find method callbacks. - $callbacks = $this->getMethodCallbacks($method); - $hasMapping = $hasMapping ?: ! empty($callbacks); - - foreach ($callbacks as $value) { - $metadata->addEntityListener($value[1], $listenerClassName, $value[0]); - } - } - - // Evaluate the listener using naming convention. - if (! $hasMapping) { - EntityListenerBuilder::bindEntityListener($metadata, $listenerClassName); - } - } - } - - // Evaluate #[HasLifecycleCallbacks] attribute - if (isset($classAttributes[Mapping\HasLifecycleCallbacks::class])) { - if ($metadata->isEmbeddedClass) { - throw MappingException::invalidAttributeOnEmbeddable($metadata->name, Mapping\HasLifecycleCallbacks::class); - } - - foreach ($reflectionClass->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { - foreach ($this->getMethodCallbacks($method) as $value) { - $metadata->addLifecycleCallback($value[0], $value[1]); - } - } - } - } - - /** - * Attempts to resolve the fetch mode. - * - * @param class-string $className The class name. - * @param string $fetchMode The fetch mode. - * - * @return ClassMetadata::FETCH_* The fetch mode as defined in ClassMetadata. - * - * @throws MappingException If the fetch mode is not valid. - */ - private function getFetchMode(string $className, string $fetchMode): int - { - if (! defined('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode)) { - throw MappingException::invalidFetchMode($className, $fetchMode); - } - - return constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode); - } - - /** - * Attempts to resolve the generated mode. - * - * @throws MappingException If the fetch mode is not valid. - */ - private function getGeneratedMode(string $generatedMode): int - { - if (! defined('Doctrine\ORM\Mapping\ClassMetadata::GENERATED_' . $generatedMode)) { - throw MappingException::invalidGeneratedMode($generatedMode); - } - - return constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATED_' . $generatedMode); - } - - /** - * Parses the given method. - * - * @return list - * @phpstan-return list - */ - private function getMethodCallbacks(ReflectionMethod $method): array - { - $callbacks = []; - $attributes = $this->reader->getMethodAttributes($method); - - foreach ($attributes as $attribute) { - if ($attribute instanceof Mapping\PrePersist) { - $callbacks[] = [$method->name, Events::prePersist]; - } - - if ($attribute instanceof Mapping\PostPersist) { - $callbacks[] = [$method->name, Events::postPersist]; - } - - if ($attribute instanceof Mapping\PreUpdate) { - $callbacks[] = [$method->name, Events::preUpdate]; - } - - if ($attribute instanceof Mapping\PostUpdate) { - $callbacks[] = [$method->name, Events::postUpdate]; - } - - if ($attribute instanceof Mapping\PreRemove) { - $callbacks[] = [$method->name, Events::preRemove]; - } - - if ($attribute instanceof Mapping\PostRemove) { - $callbacks[] = [$method->name, Events::postRemove]; - } - - if ($attribute instanceof Mapping\PostLoad) { - $callbacks[] = [$method->name, Events::postLoad]; - } - - if ($attribute instanceof Mapping\PreFlush) { - $callbacks[] = [$method->name, Events::preFlush]; - } - } - - return $callbacks; - } - - /** - * Parse the given JoinColumn as array - * - * @return mixed[] - * @phpstan-return array{ - * name: string|null, - * unique: bool, - * nullable: bool, - * onDelete: mixed, - * columnDefinition: string|null, - * referencedColumnName: string, - * options?: array - * } - */ - private function joinColumnToArray(Mapping\JoinColumn|Mapping\InverseJoinColumn $joinColumn): array - { - $mapping = [ - 'name' => $joinColumn->name, - 'deferrable' => $joinColumn->deferrable, - 'unique' => $joinColumn->unique, - 'nullable' => $joinColumn->nullable, - 'onDelete' => $joinColumn->onDelete, - 'columnDefinition' => $joinColumn->columnDefinition, - 'referencedColumnName' => $joinColumn->referencedColumnName, - ]; - - if ($joinColumn->options) { - $mapping['options'] = $joinColumn->options; - } - - return $mapping; - } - - /** - * Parse the given Column as array - * - * @return mixed[] - * @phpstan-return array{ - * fieldName: string, - * type: mixed, - * scale: int, - * length: int, - * unique: bool, - * nullable: bool, - * index: bool, - * precision: int, - * enumType?: class-string, - * options?: mixed[], - * columnName?: string, - * columnDefinition?: string - * } - */ - private function columnToArray(string $fieldName, Mapping\Column $column): array - { - $mapping = [ - 'fieldName' => $fieldName, - 'type' => $column->type, - 'scale' => $column->scale, - 'length' => $column->length, - 'unique' => $column->unique, - 'nullable' => $column->nullable, - 'index' => $column->index, - 'precision' => $column->precision, - ]; - - if ($column->options) { - $mapping['options'] = $column->options; - } - - if (isset($column->name)) { - $mapping['columnName'] = $column->name; - } - - if (isset($column->columnDefinition)) { - $mapping['columnDefinition'] = $column->columnDefinition; - } - - if ($column->updatable === false) { - $mapping['notUpdatable'] = true; - } - - if ($column->insertable === false) { - $mapping['notInsertable'] = true; - } - - if ($column->generated !== null) { - $mapping['generated'] = $this->getGeneratedMode($column->generated); - } - - if ($column->enumType) { - $mapping['enumType'] = $column->enumType; - } - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeReader.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeReader.php deleted file mode 100644 index fb8a400..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/AttributeReader.php +++ /dev/null @@ -1,146 +0,0 @@ -, bool> */ - private array $isRepeatableAttribute = []; - - /** - * @phpstan-return class-string-map> - * - * @template T of MappingAttribute - */ - public function getClassAttributes(ReflectionClass $class): array - { - return $this->convertToAttributeInstances($class->getAttributes()); - } - - /** - * @return class-string-map> - * - * @template T of MappingAttribute - */ - public function getMethodAttributes(ReflectionMethod $method): array - { - return $this->convertToAttributeInstances($method->getAttributes()); - } - - /** - * @return class-string-map> - * - * @template T of MappingAttribute - */ - public function getPropertyAttributes(ReflectionProperty $property): array - { - return $this->convertToAttributeInstances($property->getAttributes()); - } - - /** - * @param class-string $attributeName The name of the annotation. - * - * @return T|null - * - * @template T of MappingAttribute - */ - public function getPropertyAttribute(ReflectionProperty $property, string $attributeName) - { - if ($this->isRepeatable($attributeName)) { - throw new LogicException(sprintf( - 'The attribute "%s" is repeatable. Call getPropertyAttributeCollection() instead.', - $attributeName, - )); - } - - return $this->getPropertyAttributes($property)[$attributeName] ?? null; - } - - /** - * @param class-string $attributeName The name of the annotation. - * - * @return RepeatableAttributeCollection - * - * @template T of MappingAttribute - */ - public function getPropertyAttributeCollection( - ReflectionProperty $property, - string $attributeName, - ): RepeatableAttributeCollection { - if (! $this->isRepeatable($attributeName)) { - throw new LogicException(sprintf( - 'The attribute "%s" is not repeatable. Call getPropertyAttribute() instead.', - $attributeName, - )); - } - - return $this->getPropertyAttributes($property)[$attributeName] ?? new RepeatableAttributeCollection(); - } - - /** - * @param array $attributes - * - * @return class-string-map> - * - * @template T of MappingAttribute - */ - private function convertToAttributeInstances(array $attributes): array - { - $instances = []; - - foreach ($attributes as $attribute) { - $attributeName = $attribute->getName(); - assert(is_string($attributeName)); - // Make sure we only get Doctrine Attributes - if (! is_subclass_of($attributeName, MappingAttribute::class)) { - continue; - } - - $instance = $attribute->newInstance(); - assert($instance instanceof MappingAttribute); - - if ($this->isRepeatable($attributeName)) { - if (! isset($instances[$attributeName])) { - $instances[$attributeName] = new RepeatableAttributeCollection(); - } - - $collection = $instances[$attributeName]; - assert($collection instanceof RepeatableAttributeCollection); - $collection[] = $instance; - } else { - $instances[$attributeName] = $instance; - } - } - - return $instances; - } - - /** @param class-string $attributeClassName */ - private function isRepeatable(string $attributeClassName): bool - { - if (isset($this->isRepeatableAttribute[$attributeClassName])) { - return $this->isRepeatableAttribute[$attributeClassName]; - } - - $reflectionClass = new ReflectionClass($attributeClassName); - $attribute = $reflectionClass->getAttributes()[0]->newInstance(); - - return $this->isRepeatableAttribute[$attributeClassName] = ($attribute->flags & Attribute::IS_REPEATABLE) > 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/DatabaseDriver.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/DatabaseDriver.php deleted file mode 100644 index 69f875d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/DatabaseDriver.php +++ /dev/null @@ -1,622 +0,0 @@ -|null */ - private array|null $tables = null; - - /** @var array */ - private array $classToTableNames = []; - - /** @phpstan-var array */ - private array $manyToManyTables = []; - - /** @var mixed[] */ - private array $classNamesForTables = []; - - /** @var mixed[] */ - private array $fieldNamesForColumns = []; - - /** - * The namespace for the generated entities. - */ - private string|null $namespace = null; - - private Inflector $inflector; - - public function __construct(private readonly AbstractSchemaManager $sm) - { - $this->inflector = InflectorFactory::create()->build(); - } - - /** - * Set the namespace for the generated entities. - */ - public function setNamespace(string $namespace): void - { - $this->namespace = $namespace; - } - - public function isTransient(string $className): bool - { - return true; - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames(): array - { - $this->reverseEngineerMappingFromDatabase(); - - return array_keys($this->classToTableNames); - } - - /** - * Sets class name for a table. - */ - public function setClassNameForTable(string $tableName, string $className): void - { - $this->classNamesForTables[$tableName] = $className; - } - - /** - * Sets field name for a column on a specific table. - */ - public function setFieldNameForColumn(string $tableName, string $columnName, string $fieldName): void - { - $this->fieldNamesForColumns[$tableName][$columnName] = $fieldName; - } - - /** - * Sets tables manually instead of relying on the reverse engineering capabilities of SchemaManager. - * - * @param Table[] $entityTables - * @param Table[] $manyToManyTables - * @phpstan-param list $entityTables - * @phpstan-param list
$manyToManyTables - */ - public function setTables(array $entityTables, array $manyToManyTables): void - { - $this->tables = $this->manyToManyTables = $this->classToTableNames = []; - - foreach ($entityTables as $table) { - $className = $this->getClassNameForTable($table->getName()); - - $this->classToTableNames[$className] = $table->getName(); - $this->tables[$table->getName()] = $table; - } - - foreach ($manyToManyTables as $table) { - $this->manyToManyTables[$table->getName()] = $table; - } - } - - public function setInflector(Inflector $inflector): void - { - $this->inflector = $inflector; - } - - /** - * {@inheritDoc} - * - * @param class-string $className - * @param ClassMetadata $metadata - * - * @template T of object - */ - public function loadMetadataForClass(string $className, PersistenceClassMetadata $metadata): void - { - if (! $metadata instanceof ClassMetadata) { - throw new TypeError(sprintf( - 'Argument #2 passed to %s() must be an instance of %s, %s given.', - __METHOD__, - ClassMetadata::class, - get_debug_type($metadata), - )); - } - - $this->reverseEngineerMappingFromDatabase(); - - if (! isset($this->classToTableNames[$className])) { - throw new InvalidArgumentException('Unknown class ' . $className); - } - - $tableName = $this->classToTableNames[$className]; - - $metadata->name = $className; - $metadata->table['name'] = $tableName; - - $this->buildIndexes($metadata); - $this->buildFieldMappings($metadata); - $this->buildToOneAssociationMappings($metadata); - - foreach ($this->manyToManyTables as $manyTable) { - foreach ($manyTable->getForeignKeys() as $foreignKey) { - // foreign key maps to the table of the current entity, many to many association probably exists - if (! (strtolower($tableName) === strtolower(self::getReferencedTableName($foreignKey)))) { - continue; - } - - $myFk = $foreignKey; - $otherFk = null; - - foreach ($manyTable->getForeignKeys() as $foreignKey) { - if ($foreignKey !== $myFk) { - $otherFk = $foreignKey; - break; - } - } - - if (! $otherFk) { - // the definition of this many to many table does not contain - // enough foreign key information to continue reverse engineering. - continue; - } - - $localColumn = current(self::getReferencingColumnNames($myFk)); - - $associationMapping = []; - $associationMapping['fieldName'] = $this->getFieldNameForColumn($manyTable->getName(), current(self::getReferencingColumnNames($otherFk)), true); - $associationMapping['targetEntity'] = $this->getClassNameForTable(self::getReferencedTableName($otherFk)); - - if (current($manyTable->getColumns())->getName() === $localColumn) { - $associationMapping['inversedBy'] = $this->getFieldNameForColumn($manyTable->getName(), current(self::getReferencingColumnNames($myFk)), true); - $associationMapping['joinTable'] = [ - 'name' => strtolower($manyTable->getName()), - 'joinColumns' => [], - 'inverseJoinColumns' => [], - ]; - - $fkCols = self::getReferencedColumnNames($myFk); - $cols = self::getReferencingColumnNames($myFk); - - for ($i = 0, $colsCount = count($cols); $i < $colsCount; $i++) { - $associationMapping['joinTable']['joinColumns'][] = [ - 'name' => $cols[$i], - 'referencedColumnName' => $fkCols[$i], - ]; - } - - $fkCols = self::getReferencedColumnNames($otherFk); - $cols = self::getReferencingColumnNames($otherFk); - - for ($i = 0, $colsCount = count($cols); $i < $colsCount; $i++) { - $associationMapping['joinTable']['inverseJoinColumns'][] = [ - 'name' => $cols[$i], - 'referencedColumnName' => $fkCols[$i], - ]; - } - } else { - $associationMapping['mappedBy'] = $this->getFieldNameForColumn($manyTable->getName(), current(self::getReferencingColumnNames($myFk)), true); - } - - $metadata->mapManyToMany($associationMapping); - - break; - } - } - } - - /** @throws MappingException */ - private function reverseEngineerMappingFromDatabase(): void - { - if ($this->tables !== null) { - return; - } - - $this->tables = $this->manyToManyTables = $this->classToTableNames = []; - - foreach ($this->sm->listTables() as $table) { - $tableName = $table->getName(); - $foreignKeys = $table->getForeignKeys(); - - $allForeignKeyColumns = []; - - foreach ($foreignKeys as $foreignKey) { - $allForeignKeyColumns = array_merge($allForeignKeyColumns, self::getReferencingColumnNames($foreignKey)); - } - - if (method_exists($table, 'getPrimaryKeyConstraint')) { - $primaryKey = $table->getPrimaryKeyConstraint(); - } else { - $primaryKey = $table->getPrimaryKey(); - } - - if ($primaryKey === null) { - throw new MappingException( - 'Table ' . $tableName . ' has no primary key. Doctrine does not ' . - "support reverse engineering from tables that don't have a primary key.", - ); - } - - if ($primaryKey instanceof PrimaryKeyConstraint) { - $pkColumns = array_map(static fn (UnqualifiedName $name) => $name->toString(), $primaryKey->getColumnNames()); - } else { - $pkColumns = self::getIndexedColumns($primaryKey); - } - - sort($pkColumns); - sort($allForeignKeyColumns); - - if ($pkColumns === $allForeignKeyColumns && count($foreignKeys) === 2) { - $this->manyToManyTables[$tableName] = $table; - } else { - // lower-casing is necessary because of Oracle Uppercase Tablenames, - // assumption is lower-case + underscore separated. - $className = $this->getClassNameForTable($tableName); - - $this->tables[$tableName] = $table; - $this->classToTableNames[$className] = $tableName; - } - } - } - - /** - * Build indexes from a class metadata. - */ - private function buildIndexes(ClassMetadata $metadata): void - { - $tableName = $metadata->table['name']; - $table = $this->tables[$tableName]; - $primaryKey = self::getPrimaryKey($table); - $indexes = $table->getIndexes(); - - foreach ($indexes as $index) { - if ($index === $primaryKey) { - continue; - } - - if (enum_exists(IndexType::class) && method_exists($index, 'getType')) { - $isUnique = $index->getType() === IndexType::UNIQUE; - } else { - $isUnique = $index->isUnique(); - } - - $indexName = $index->getName(); - $indexColumns = self::getIndexedColumns($index); - $constraintType = $isUnique - ? 'uniqueConstraints' - : 'indexes'; - - $metadata->table[$constraintType][$indexName]['columns'] = $indexColumns; - } - } - - /** - * Build field mapping from class metadata. - */ - private function buildFieldMappings(ClassMetadata $metadata): void - { - $tableName = $metadata->table['name']; - $columns = $this->tables[$tableName]->getColumns(); - $primaryKeys = $this->getTablePrimaryKeys($this->tables[$tableName]); - $foreignKeys = $this->tables[$tableName]->getForeignKeys(); - $allForeignKeys = []; - - foreach ($foreignKeys as $foreignKey) { - $allForeignKeys = array_merge($allForeignKeys, self::getReferencingColumnNames($foreignKey)); - } - - $ids = []; - $fieldMappings = []; - - foreach ($columns as $column) { - if (in_array($column->getName(), $allForeignKeys, true)) { - continue; - } - - $fieldMapping = $this->buildFieldMapping($tableName, $column); - - if ($primaryKeys && in_array($column->getName(), $primaryKeys, true)) { - $fieldMapping['id'] = true; - $ids[] = $fieldMapping; - } - - $fieldMappings[] = $fieldMapping; - } - - // We need to check for the columns here, because we might have associations as id as well. - if ($ids && count($primaryKeys) === 1) { - $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_AUTO); - } - - foreach ($fieldMappings as $fieldMapping) { - $metadata->mapField($fieldMapping); - } - } - - /** - * Build field mapping from a schema column definition - * - * @return mixed[] - * @phpstan-return array{ - * fieldName: string, - * columnName: string, - * type: string, - * nullable: bool, - * options: array{ - * unsigned?: bool, - * fixed?: bool, - * comment: string|null, - * default?: mixed - * }, - * precision?: int, - * scale?: int, - * length?: int|null - * } - */ - private function buildFieldMapping(string $tableName, Column $column): array - { - $fieldMapping = [ - 'fieldName' => $this->getFieldNameForColumn($tableName, $column->getName(), false), - 'columnName' => $column->getName(), - 'type' => Type::getTypeRegistry()->lookupName($column->getType()), - 'nullable' => ! $column->getNotnull(), - 'options' => [ - 'comment' => $column->getComment(), - ], - ]; - - // Type specific elements - switch ($fieldMapping['type']) { - case self::ARRAY: - case Types::BLOB: - case Types::GUID: - case self::OBJECT: - case Types::SIMPLE_ARRAY: - case Types::STRING: - case Types::TEXT: - $fieldMapping['length'] = $column->getLength(); - $fieldMapping['options']['fixed'] = $column->getFixed(); - break; - - case Types::DECIMAL: - case Types::FLOAT: - $fieldMapping['precision'] = $column->getPrecision(); - $fieldMapping['scale'] = $column->getScale(); - break; - - case Types::INTEGER: - case Types::BIGINT: - case Types::SMALLINT: - $fieldMapping['options']['unsigned'] = $column->getUnsigned(); - break; - } - - // Default - $default = $column->getDefault(); - if ($default !== null) { - $fieldMapping['options']['default'] = $default; - } - - return $fieldMapping; - } - - /** - * Build to one (one to one, many to one) association mapping from class metadata. - */ - private function buildToOneAssociationMappings(ClassMetadata $metadata): void - { - assert($this->tables !== null); - - $tableName = $metadata->table['name']; - $primaryKeys = $this->getTablePrimaryKeys($this->tables[$tableName]); - $foreignKeys = $this->tables[$tableName]->getForeignKeys(); - - foreach ($foreignKeys as $foreignKey) { - $foreignTableName = self::getReferencedTableName($foreignKey); - $fkColumns = self::getReferencingColumnNames($foreignKey); - $fkForeignColumns = self::getReferencedColumnNames($foreignKey); - $localColumn = current($fkColumns); - $associationMapping = [ - 'fieldName' => $this->getFieldNameForColumn($tableName, $localColumn, true), - 'targetEntity' => $this->getClassNameForTable($foreignTableName), - ]; - - if (isset($metadata->fieldMappings[$associationMapping['fieldName']])) { - $associationMapping['fieldName'] .= '2'; // "foo" => "foo2" - } - - if ($primaryKeys && in_array($localColumn, $primaryKeys, true)) { - $associationMapping['id'] = true; - } - - for ($i = 0, $fkColumnsCount = count($fkColumns); $i < $fkColumnsCount; $i++) { - $associationMapping['joinColumns'][] = [ - 'name' => $fkColumns[$i], - 'referencedColumnName' => $fkForeignColumns[$i], - ]; - } - - // Here we need to check if $fkColumns are the same as $primaryKeys - if (! array_diff($fkColumns, $primaryKeys)) { - $metadata->mapOneToOne($associationMapping); - } else { - $metadata->mapManyToOne($associationMapping); - } - } - } - - /** - * Retrieve schema table definition primary keys. - * - * @return string[] - */ - private function getTablePrimaryKeys(Table $table): array - { - try { - if (method_exists($table, 'getPrimaryKeyConstraint')) { - return array_map(static fn (UnqualifiedName $name) => $name->toString(), $table->getPrimaryKeyConstraint()->getColumnNames()); - } - - return self::getIndexedColumns($table->getPrimaryKey()); - } catch (SchemaException) { - // Do nothing - } - - return []; - } - - /** - * Returns the mapped class name for a table if it exists. Otherwise return "classified" version. - * - * @return class-string - */ - private function getClassNameForTable(string $tableName): string - { - if (isset($this->classNamesForTables[$tableName])) { - return $this->namespace . $this->classNamesForTables[$tableName]; - } - - return $this->namespace . $this->inflector->classify(strtolower($tableName)); - } - - /** - * Return the mapped field name for a column, if it exists. Otherwise return camelized version. - * - * @param bool $fk Whether the column is a foreignkey or not. - */ - private function getFieldNameForColumn( - string $tableName, - string $columnName, - bool $fk = false, - ): string { - if (isset($this->fieldNamesForColumns[$tableName], $this->fieldNamesForColumns[$tableName][$columnName])) { - return $this->fieldNamesForColumns[$tableName][$columnName]; - } - - $columnName = strtolower($columnName); - - // Replace _id if it is a foreignkey column - if ($fk) { - $columnName = preg_replace('/_id$/', '', $columnName); - } - - return $this->inflector->camelize($columnName); - } - - private static function getReferencedTableName(ForeignKeyConstraint $foreignKey): string - { - if (method_exists(ForeignKeyConstraint::class, 'getReferencedTableName')) { - return $foreignKey->getReferencedTableName()->toString(); - } - - return $foreignKey->getForeignTableName(); - } - - /** @return string[] */ - private static function getReferencingColumnNames(ForeignKeyConstraint $foreignKey): array - { - if (method_exists(ForeignKeyConstraint::class, 'getReferencingColumnNames')) { - return array_map(static fn (UnqualifiedName $name) => $name->toString(), $foreignKey->getReferencingColumnNames()); - } - - return $foreignKey->getLocalColumns(); - } - - /** @return string[] */ - private static function getReferencedColumnNames(ForeignKeyConstraint $foreignKey): array - { - if (method_exists(ForeignKeyConstraint::class, 'getReferencedColumnNames')) { - return array_map(static fn (UnqualifiedName $name) => $name->toString(), $foreignKey->getReferencedColumnNames()); - } - - return $foreignKey->getForeignColumns(); - } - - /** @return string[] */ - private static function getIndexedColumns(Index $index): array - { - if (method_exists(Index::class, 'getIndexedColumns')) { - return array_map(static fn (IndexedColumn $indexedColumn) => $indexedColumn->getColumnName()->toString(), $index->getIndexedColumns()); - } - - return $index->getColumns(); - } - - private static function getPrimaryKey(Table $table): Index|null - { - $primaryKeyConstraint = null; - - if (method_exists(Table::class, 'getPrimaryKeyConstraint')) { - $primaryKeyConstraint = $table->getPrimaryKeyConstraint(); - } - - foreach ($table->getIndexes() as $index) { - if ($primaryKeyConstraint !== null) { - $primaryKeyConstraintColumns = array_map(static fn (UnqualifiedName $name) => $name->toString(), $primaryKeyConstraint->getColumnNames()); - - if ($primaryKeyConstraintColumns === self::getIndexedColumns($index)) { - return $index; - } - } elseif ($index->isPrimary()) { - return $index; - } - } - - return null; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/LoadMappingFileImplementation.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/LoadMappingFileImplementation.php deleted file mode 100644 index df35188..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/LoadMappingFileImplementation.php +++ /dev/null @@ -1,35 +0,0 @@ -doLoadMappingFile($file); - } - } -} else { - /** @internal */ - trait LoadMappingFileImplementation - { - /** - * {@inheritDoc} - */ - protected function loadMappingFile($file) - { - return $this->doLoadMappingFile($file); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php deleted file mode 100644 index 2425d61..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php +++ /dev/null @@ -1,49 +0,0 @@ -class; - - if ($this->isTransient($declaringClass)) { - return isset($metadata->fieldMappings[$property->name]); - } - - if ( - isset($metadata->fieldMappings[$property->name]->declared) - && $metadata->fieldMappings[$property->name]->declared === $declaringClass - ) { - return true; - } - - if ( - isset($metadata->associationMappings[$property->name]->declared) - && $metadata->associationMappings[$property->name]->declared === $declaringClass - ) { - return true; - } - - return isset($metadata->embeddedClasses[$property->name]->declared) - && $metadata->embeddedClasses[$property->name]->declared === $declaringClass; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/RepeatableAttributeCollection.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/RepeatableAttributeCollection.php deleted file mode 100644 index 2f6ae93..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/RepeatableAttributeCollection.php +++ /dev/null @@ -1,16 +0,0 @@ - - * @template T of MappingAttribute - */ -final class RepeatableAttributeCollection extends ArrayObject -{ -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/SimplifiedXmlDriver.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/SimplifiedXmlDriver.php deleted file mode 100644 index 486185f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Driver/SimplifiedXmlDriver.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class XmlDriver extends FileDriver -{ - use LoadMappingFileImplementation; - - public const DEFAULT_FILE_EXTENSION = '.dcm.xml'; - - /** - * {@inheritDoc} - */ - public function __construct( - string|array|FileLocator $locator, - string $fileExtension = self::DEFAULT_FILE_EXTENSION, - private readonly bool $isXsdValidationEnabled = true, - ) { - if (! extension_loaded('simplexml')) { - throw new LogicException( - 'The XML metadata driver cannot be enabled because the SimpleXML PHP extension is missing.' - . ' Please configure PHP with SimpleXML or choose a different metadata driver.', - ); - } - - if ($isXsdValidationEnabled && ! extension_loaded('dom')) { - throw new LogicException( - 'XSD validation cannot be enabled because the DOM extension is missing.', - ); - } - - parent::__construct($locator, $fileExtension); - } - - /** - * {@inheritDoc} - * - * @param class-string $className - * @param ClassMetadata $metadata - * - * @template T of object - */ - public function loadMetadataForClass($className, PersistenceClassMetadata $metadata): void - { - $xmlRoot = $this->getElement($className); - - if ($xmlRoot->getName() === 'entity') { - if (isset($xmlRoot['repository-class'])) { - $metadata->setCustomRepositoryClass((string) $xmlRoot['repository-class']); - } - - if (isset($xmlRoot['read-only']) && $this->evaluateBoolean($xmlRoot['read-only'])) { - $metadata->markReadOnly(); - } - } elseif ($xmlRoot->getName() === 'mapped-superclass') { - $metadata->setCustomRepositoryClass( - isset($xmlRoot['repository-class']) ? (string) $xmlRoot['repository-class'] : null, - ); - $metadata->isMappedSuperclass = true; - } elseif ($xmlRoot->getName() === 'embeddable') { - $metadata->isEmbeddedClass = true; - } else { - throw MappingException::classIsNotAValidEntityOrMappedSuperClass($className); - } - - // Evaluate attributes - $primaryTable = []; - - if (isset($xmlRoot['table'])) { - $primaryTable['name'] = (string) $xmlRoot['table']; - } - - if (isset($xmlRoot['schema'])) { - $primaryTable['schema'] = (string) $xmlRoot['schema']; - } - - $metadata->setPrimaryTable($primaryTable); - - // Evaluate second level cache - if (isset($xmlRoot->cache)) { - $metadata->enableCache($this->cacheToArray($xmlRoot->cache)); - } - - if (isset($xmlRoot['inheritance-type'])) { - $inheritanceType = (string) $xmlRoot['inheritance-type']; - $metadata->setInheritanceType(constant('Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_' . $inheritanceType)); - - if ($metadata->inheritanceType !== ClassMetadata::INHERITANCE_TYPE_NONE) { - // Evaluate - if (isset($xmlRoot->{'discriminator-column'})) { - $discrColumn = $xmlRoot->{'discriminator-column'}; - $columnDef = [ - 'name' => isset($discrColumn['name']) ? (string) $discrColumn['name'] : null, - 'type' => isset($discrColumn['type']) ? (string) $discrColumn['type'] : 'string', - 'length' => isset($discrColumn['length']) ? (int) $discrColumn['length'] : 255, - 'columnDefinition' => isset($discrColumn['column-definition']) ? (string) $discrColumn['column-definition'] : null, - 'enumType' => isset($discrColumn['enum-type']) ? (string) $discrColumn['enum-type'] : null, - ]; - - if (isset($discrColumn['options'])) { - assert($discrColumn['options'] instanceof SimpleXMLElement); - $columnDef['options'] = $this->parseOptions($discrColumn['options']->children()); - } - - $metadata->setDiscriminatorColumn($columnDef); - } else { - $metadata->setDiscriminatorColumn(['name' => 'dtype', 'type' => 'string', 'length' => 255]); - } - - // Evaluate - if (isset($xmlRoot->{'discriminator-map'})) { - $map = []; - assert($xmlRoot->{'discriminator-map'}->{'discriminator-mapping'} instanceof SimpleXMLElement); - foreach ($xmlRoot->{'discriminator-map'}->{'discriminator-mapping'} as $discrMapElement) { - $map[(string) $discrMapElement['value']] = (string) $discrMapElement['class']; - } - - $metadata->setDiscriminatorMap($map); - } - } - } - - // Evaluate - if (isset($xmlRoot['change-tracking-policy'])) { - $metadata->setChangeTrackingPolicy(constant('Doctrine\ORM\Mapping\ClassMetadata::CHANGETRACKING_' - . strtoupper((string) $xmlRoot['change-tracking-policy']))); - } - - // Evaluate - if (isset($xmlRoot->indexes)) { - $metadata->table['indexes'] = []; - foreach ($xmlRoot->indexes->index ?? [] as $indexXml) { - $index = []; - - if (isset($indexXml['columns']) && ! empty($indexXml['columns'])) { - $index['columns'] = explode(',', (string) $indexXml['columns']); - } - - if (isset($indexXml['fields'])) { - $index['fields'] = explode(',', (string) $indexXml['fields']); - } - - if ( - isset($index['columns'], $index['fields']) - || ( - ! isset($index['columns']) - && ! isset($index['fields']) - ) - ) { - throw MappingException::invalidIndexConfiguration( - $className, - (string) ($indexXml['name'] ?? count($metadata->table['indexes'])), - ); - } - - if (isset($indexXml['flags'])) { - $index['flags'] = explode(',', (string) $indexXml['flags']); - } - - if (isset($indexXml->options)) { - $index['options'] = $this->parseOptions($indexXml->options->children()); - } - - if (isset($indexXml['name'])) { - $metadata->table['indexes'][(string) $indexXml['name']] = $index; - } else { - $metadata->table['indexes'][] = $index; - } - } - } - - // Evaluate - if (isset($xmlRoot->{'unique-constraints'})) { - $metadata->table['uniqueConstraints'] = []; - foreach ($xmlRoot->{'unique-constraints'}->{'unique-constraint'} ?? [] as $uniqueXml) { - $unique = []; - - if (isset($uniqueXml['columns']) && ! empty($uniqueXml['columns'])) { - $unique['columns'] = explode(',', (string) $uniqueXml['columns']); - } - - if (isset($uniqueXml['fields'])) { - $unique['fields'] = explode(',', (string) $uniqueXml['fields']); - } - - if ( - isset($unique['columns'], $unique['fields']) - || ( - ! isset($unique['columns']) - && ! isset($unique['fields']) - ) - ) { - throw MappingException::invalidUniqueConstraintConfiguration( - $className, - (string) ($uniqueXml['name'] ?? count($metadata->table['uniqueConstraints'])), - ); - } - - if (isset($uniqueXml->options)) { - $unique['options'] = $this->parseOptions($uniqueXml->options->children()); - } - - if (isset($uniqueXml['name'])) { - $metadata->table['uniqueConstraints'][(string) $uniqueXml['name']] = $unique; - } else { - $metadata->table['uniqueConstraints'][] = $unique; - } - } - } - - if (isset($xmlRoot->options)) { - $metadata->table['options'] = $this->parseOptions($xmlRoot->options->children()); - } - - // The mapping assignment is done in 2 times as a bug might occurs on some php/xml lib versions - // The internal SimpleXmlIterator get resetted, to this generate a duplicate field exception - // Evaluate mappings - if (isset($xmlRoot->field)) { - foreach ($xmlRoot->field as $fieldMapping) { - $mapping = $this->columnToArray($fieldMapping); - - if (isset($mapping['version'])) { - $metadata->setVersionMapping($mapping); - unset($mapping['version']); - } - - $metadata->mapField($mapping); - } - } - - if (isset($xmlRoot->embedded)) { - foreach ($xmlRoot->embedded as $embeddedMapping) { - $columnPrefix = isset($embeddedMapping['column-prefix']) - ? (string) $embeddedMapping['column-prefix'] - : null; - - $useColumnPrefix = isset($embeddedMapping['use-column-prefix']) - ? $this->evaluateBoolean($embeddedMapping['use-column-prefix']) - : true; - - $mapping = [ - 'fieldName' => (string) $embeddedMapping['name'], - 'class' => isset($embeddedMapping['class']) ? (string) $embeddedMapping['class'] : null, - 'columnPrefix' => $useColumnPrefix ? $columnPrefix : false, - ]; - - $metadata->mapEmbedded($mapping); - } - } - - // Evaluate mappings - $associationIds = []; - foreach ($xmlRoot->id ?? [] as $idElement) { - if (isset($idElement['association-key']) && $this->evaluateBoolean($idElement['association-key'])) { - $associationIds[(string) $idElement['name']] = true; - continue; - } - - $mapping = $this->columnToArray($idElement); - $mapping['id'] = true; - - $metadata->mapField($mapping); - - if (isset($idElement->generator)) { - $strategy = isset($idElement->generator['strategy']) ? - (string) $idElement->generator['strategy'] : 'AUTO'; - $metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_' - . $strategy)); - } - - // Check for SequenceGenerator/TableGenerator definition - if (isset($idElement->{'sequence-generator'})) { - $seqGenerator = $idElement->{'sequence-generator'}; - $metadata->setSequenceGeneratorDefinition( - [ - 'sequenceName' => (string) $seqGenerator['sequence-name'], - 'allocationSize' => (string) $seqGenerator['allocation-size'], - 'initialValue' => (string) $seqGenerator['initial-value'], - ], - ); - } elseif (isset($idElement->{'custom-id-generator'})) { - $customGenerator = $idElement->{'custom-id-generator'}; - $metadata->setCustomGeneratorDefinition( - [ - 'class' => (string) $customGenerator['class'], - ], - ); - } - } - - // Evaluate mappings - if (isset($xmlRoot->{'one-to-one'})) { - foreach ($xmlRoot->{'one-to-one'} as $oneToOneElement) { - $mapping = [ - 'fieldName' => (string) $oneToOneElement['field'], - ]; - - if (isset($oneToOneElement['target-entity'])) { - $mapping['targetEntity'] = (string) $oneToOneElement['target-entity']; - } - - if (isset($associationIds[$mapping['fieldName']])) { - $mapping['id'] = true; - } - - if (isset($oneToOneElement['fetch'])) { - $mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $oneToOneElement['fetch']); - } - - if (isset($oneToOneElement['mapped-by'])) { - $mapping['mappedBy'] = (string) $oneToOneElement['mapped-by']; - } else { - if (isset($oneToOneElement['inversed-by'])) { - $mapping['inversedBy'] = (string) $oneToOneElement['inversed-by']; - } - - $joinColumns = []; - - if (isset($oneToOneElement->{'join-column'})) { - $joinColumns[] = $this->joinColumnToArray($oneToOneElement->{'join-column'}); - } elseif (isset($oneToOneElement->{'join-columns'})) { - foreach ($oneToOneElement->{'join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinColumns[] = $this->joinColumnToArray($joinColumnElement); - } - } - - $mapping['joinColumns'] = $joinColumns; - } - - if (isset($oneToOneElement->cascade)) { - $mapping['cascade'] = $this->getCascadeMappings($oneToOneElement->cascade); - } - - if (isset($oneToOneElement['orphan-removal'])) { - $mapping['orphanRemoval'] = $this->evaluateBoolean($oneToOneElement['orphan-removal']); - } - - // Evaluate second level cache - if (isset($oneToOneElement->cache)) { - $mapping['cache'] = $metadata->getAssociationCacheDefaults($mapping['fieldName'], $this->cacheToArray($oneToOneElement->cache)); - } - - $metadata->mapOneToOne($mapping); - } - } - - // Evaluate mappings - if (isset($xmlRoot->{'one-to-many'})) { - foreach ($xmlRoot->{'one-to-many'} as $oneToManyElement) { - $mapping = [ - 'fieldName' => (string) $oneToManyElement['field'], - 'mappedBy' => (string) $oneToManyElement['mapped-by'], - ]; - - if (isset($oneToManyElement['target-entity'])) { - $mapping['targetEntity'] = (string) $oneToManyElement['target-entity']; - } - - if (isset($oneToManyElement['fetch'])) { - $mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $oneToManyElement['fetch']); - } - - if (isset($oneToManyElement->cascade)) { - $mapping['cascade'] = $this->getCascadeMappings($oneToManyElement->cascade); - } - - if (isset($oneToManyElement['orphan-removal'])) { - $mapping['orphanRemoval'] = $this->evaluateBoolean($oneToManyElement['orphan-removal']); - } - - if (isset($oneToManyElement->{'order-by'})) { - $orderBy = []; - foreach ($oneToManyElement->{'order-by'}->{'order-by-field'} ?? [] as $orderByField) { - $orderBy[(string) $orderByField['name']] = isset($orderByField['direction']) - ? (string) $orderByField['direction'] - // @phpstan-ignore classConstant.deprecated - : (enum_exists(Order::class) ? Order::Ascending->value : Criteria::ASC); - } - - $mapping['orderBy'] = $orderBy; - } - - if (isset($oneToManyElement['index-by'])) { - $mapping['indexBy'] = (string) $oneToManyElement['index-by']; - } elseif (isset($oneToManyElement->{'index-by'})) { - throw new InvalidArgumentException(' is not a valid tag'); - } - - // Evaluate second level cache - if (isset($oneToManyElement->cache)) { - $mapping['cache'] = $metadata->getAssociationCacheDefaults($mapping['fieldName'], $this->cacheToArray($oneToManyElement->cache)); - } - - $metadata->mapOneToMany($mapping); - } - } - - // Evaluate mappings - if (isset($xmlRoot->{'many-to-one'})) { - foreach ($xmlRoot->{'many-to-one'} as $manyToOneElement) { - $mapping = [ - 'fieldName' => (string) $manyToOneElement['field'], - ]; - - if (isset($manyToOneElement['target-entity'])) { - $mapping['targetEntity'] = (string) $manyToOneElement['target-entity']; - } - - if (isset($associationIds[$mapping['fieldName']])) { - $mapping['id'] = true; - } - - if (isset($manyToOneElement['fetch'])) { - $mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $manyToOneElement['fetch']); - } - - if (isset($manyToOneElement['inversed-by'])) { - $mapping['inversedBy'] = (string) $manyToOneElement['inversed-by']; - } - - $joinColumns = []; - - if (isset($manyToOneElement->{'join-column'})) { - $joinColumns[] = $this->joinColumnToArray($manyToOneElement->{'join-column'}); - } elseif (isset($manyToOneElement->{'join-columns'})) { - foreach ($manyToOneElement->{'join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinColumns[] = $this->joinColumnToArray($joinColumnElement); - } - } - - $mapping['joinColumns'] = $joinColumns; - - if (isset($manyToOneElement->cascade)) { - $mapping['cascade'] = $this->getCascadeMappings($manyToOneElement->cascade); - } - - // Evaluate second level cache - if (isset($manyToOneElement->cache)) { - $mapping['cache'] = $metadata->getAssociationCacheDefaults($mapping['fieldName'], $this->cacheToArray($manyToOneElement->cache)); - } - - $metadata->mapManyToOne($mapping); - } - } - - // Evaluate mappings - if (isset($xmlRoot->{'many-to-many'})) { - foreach ($xmlRoot->{'many-to-many'} as $manyToManyElement) { - $mapping = [ - 'fieldName' => (string) $manyToManyElement['field'], - ]; - - if (isset($manyToManyElement['target-entity'])) { - $mapping['targetEntity'] = (string) $manyToManyElement['target-entity']; - } - - if (isset($manyToManyElement['fetch'])) { - $mapping['fetch'] = constant('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . (string) $manyToManyElement['fetch']); - } - - if (isset($manyToManyElement['orphan-removal'])) { - $mapping['orphanRemoval'] = $this->evaluateBoolean($manyToManyElement['orphan-removal']); - } - - if (isset($manyToManyElement['mapped-by'])) { - $mapping['mappedBy'] = (string) $manyToManyElement['mapped-by']; - } elseif (isset($manyToManyElement->{'join-table'})) { - if (isset($manyToManyElement['inversed-by'])) { - $mapping['inversedBy'] = (string) $manyToManyElement['inversed-by']; - } - - $joinTableElement = $manyToManyElement->{'join-table'}; - $joinTable = [ - 'name' => (string) $joinTableElement['name'], - ]; - - if (isset($joinTableElement['schema'])) { - $joinTable['schema'] = (string) $joinTableElement['schema']; - } - - if (isset($joinTableElement->options)) { - $joinTable['options'] = $this->parseOptions($joinTableElement->options->children()); - } - - foreach ($joinTableElement->{'join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumnElement); - } - - foreach ($joinTableElement->{'inverse-join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumnElement); - } - - $mapping['joinTable'] = $joinTable; - } - - if (isset($manyToManyElement->cascade)) { - $mapping['cascade'] = $this->getCascadeMappings($manyToManyElement->cascade); - } - - if (isset($manyToManyElement->{'order-by'})) { - $orderBy = []; - foreach ($manyToManyElement->{'order-by'}->{'order-by-field'} ?? [] as $orderByField) { - $orderBy[(string) $orderByField['name']] = isset($orderByField['direction']) - ? (string) $orderByField['direction'] - // @phpstan-ignore classConstant.deprecated - : (enum_exists(Order::class) ? Order::Ascending->value : Criteria::ASC); - } - - $mapping['orderBy'] = $orderBy; - } - - if (isset($manyToManyElement['index-by'])) { - $mapping['indexBy'] = (string) $manyToManyElement['index-by']; - } elseif (isset($manyToManyElement->{'index-by'})) { - throw new InvalidArgumentException(' is not a valid tag'); - } - - // Evaluate second level cache - if (isset($manyToManyElement->cache)) { - $mapping['cache'] = $metadata->getAssociationCacheDefaults($mapping['fieldName'], $this->cacheToArray($manyToManyElement->cache)); - } - - $metadata->mapManyToMany($mapping); - } - } - - // Evaluate association-overrides - if (isset($xmlRoot->{'attribute-overrides'})) { - foreach ($xmlRoot->{'attribute-overrides'}->{'attribute-override'} ?? [] as $overrideElement) { - $fieldName = (string) $overrideElement['name']; - foreach ($overrideElement->field ?? [] as $field) { - $mapping = $this->columnToArray($field); - $mapping['fieldName'] = $fieldName; - $metadata->setAttributeOverride($fieldName, $mapping); - } - } - } - - // Evaluate association-overrides - if (isset($xmlRoot->{'association-overrides'})) { - foreach ($xmlRoot->{'association-overrides'}->{'association-override'} ?? [] as $overrideElement) { - $fieldName = (string) $overrideElement['name']; - $override = []; - - // Check for join-columns - if (isset($overrideElement->{'join-columns'})) { - $joinColumns = []; - foreach ($overrideElement->{'join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinColumns[] = $this->joinColumnToArray($joinColumnElement); - } - - $override['joinColumns'] = $joinColumns; - } - - // Check for join-table - if ($overrideElement->{'join-table'}) { - $joinTable = null; - $joinTableElement = $overrideElement->{'join-table'}; - - $joinTable = [ - 'name' => (string) $joinTableElement['name'], - 'schema' => (string) $joinTableElement['schema'], - ]; - - if (isset($joinTableElement->options)) { - $joinTable['options'] = $this->parseOptions($joinTableElement->options->children()); - } - - if (isset($joinTableElement->{'join-columns'})) { - foreach ($joinTableElement->{'join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumnElement); - } - } - - if (isset($joinTableElement->{'inverse-join-columns'})) { - foreach ($joinTableElement->{'inverse-join-columns'}->{'join-column'} ?? [] as $joinColumnElement) { - $joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumnElement); - } - } - - $override['joinTable'] = $joinTable; - } - - // Check for inversed-by - if (isset($overrideElement->{'inversed-by'})) { - $override['inversedBy'] = (string) $overrideElement->{'inversed-by'}['name']; - } - - // Check for `fetch` - if (isset($overrideElement['fetch'])) { - $override['fetch'] = constant(ClassMetadata::class . '::FETCH_' . (string) $overrideElement['fetch']); - } - - $metadata->setAssociationOverride($fieldName, $override); - } - } - - // Evaluate - if (isset($xmlRoot->{'lifecycle-callbacks'})) { - foreach ($xmlRoot->{'lifecycle-callbacks'}->{'lifecycle-callback'} ?? [] as $lifecycleCallback) { - $metadata->addLifecycleCallback((string) $lifecycleCallback['method'], constant('Doctrine\ORM\Events::' . (string) $lifecycleCallback['type'])); - } - } - - // Evaluate entity listener - if (isset($xmlRoot->{'entity-listeners'})) { - foreach ($xmlRoot->{'entity-listeners'}->{'entity-listener'} ?? [] as $listenerElement) { - $className = (string) $listenerElement['class']; - // Evaluate the listener using naming convention. - if ($listenerElement->count() === 0) { - EntityListenerBuilder::bindEntityListener($metadata, $className); - - continue; - } - - foreach ($listenerElement as $callbackElement) { - $eventName = (string) $callbackElement['type']; - $methodName = (string) $callbackElement['method']; - - $metadata->addEntityListener($eventName, $className, $methodName); - } - } - } - } - - /** - * Parses (nested) option elements. - * - * @return mixed[] The options array. - * @phpstan-return array|bool|string> - */ - private function parseOptions(SimpleXMLElement|null $options): array - { - $array = []; - - foreach ($options ?? [] as $option) { - if ($option->count()) { - $value = $this->parseOptions($option->children()); - } else { - $value = (string) $option; - } - - $attributes = $option->attributes(); - - if (isset($attributes->name)) { - $nameAttribute = (string) $attributes->name; - $array[$nameAttribute] = in_array($nameAttribute, ['unsigned', 'fixed'], true) - ? $this->evaluateBoolean($value) - : $value; - } else { - $array[] = $value; - } - } - - return $array; - } - - /** - * Constructs a joinColumn mapping array based on the information - * found in the given SimpleXMLElement. - * - * @param SimpleXMLElement $joinColumnElement The XML element. - * - * @return mixed[] The mapping array. - * @phpstan-return array{ - * name: string, - * referencedColumnName: string, - * unique?: bool, - * nullable?: bool, - * onDelete?: string, - * columnDefinition?: string, - * options?: mixed[] - * } - */ - private function joinColumnToArray(SimpleXMLElement $joinColumnElement): array - { - $joinColumn = [ - 'name' => (string) $joinColumnElement['name'], - 'referencedColumnName' => (string) $joinColumnElement['referenced-column-name'], - ]; - - if (isset($joinColumnElement['unique'])) { - $joinColumn['unique'] = $this->evaluateBoolean($joinColumnElement['unique']); - } - - if (isset($joinColumnElement['nullable'])) { - $joinColumn['nullable'] = $this->evaluateBoolean($joinColumnElement['nullable']); - } - - if (isset($joinColumnElement['on-delete'])) { - $joinColumn['onDelete'] = (string) $joinColumnElement['on-delete']; - } - - if (isset($joinColumnElement['column-definition'])) { - $joinColumn['columnDefinition'] = (string) $joinColumnElement['column-definition']; - } - - if (isset($joinColumnElement['options'])) { - $joinColumn['options'] = $this->parseOptions($joinColumnElement['options'] ? $joinColumnElement['options']->children() : null); - } - - return $joinColumn; - } - - /** - * Parses the given field as array. - * - * @return mixed[] - * @phpstan-return array{ - * fieldName: string, - * type?: string, - * columnName?: string, - * length?: int, - * precision?: int, - * scale?: int, - * unique?: bool, - * nullable?: bool, - * index?: bool, - * notInsertable?: bool, - * notUpdatable?: bool, - * enumType?: string, - * version?: bool, - * columnDefinition?: string, - * options?: array - * } - */ - private function columnToArray(SimpleXMLElement $fieldMapping): array - { - $mapping = [ - 'fieldName' => (string) $fieldMapping['name'], - ]; - - if (isset($fieldMapping['type'])) { - $mapping['type'] = (string) $fieldMapping['type']; - } - - if (isset($fieldMapping['column'])) { - $mapping['columnName'] = (string) $fieldMapping['column']; - } - - if (isset($fieldMapping['length'])) { - $mapping['length'] = (int) $fieldMapping['length']; - } - - if (isset($fieldMapping['precision'])) { - $mapping['precision'] = (int) $fieldMapping['precision']; - } - - if (isset($fieldMapping['scale'])) { - $mapping['scale'] = (int) $fieldMapping['scale']; - } - - if (isset($fieldMapping['unique'])) { - $mapping['unique'] = $this->evaluateBoolean($fieldMapping['unique']); - } - - if (isset($fieldMapping['index'])) { - $mapping['index'] = $this->evaluateBoolean($fieldMapping['index']); - } - - if (isset($fieldMapping['nullable'])) { - $mapping['nullable'] = $this->evaluateBoolean($fieldMapping['nullable']); - } - - if (isset($fieldMapping['insertable']) && ! $this->evaluateBoolean($fieldMapping['insertable'])) { - $mapping['notInsertable'] = true; - } - - if (isset($fieldMapping['updatable']) && ! $this->evaluateBoolean($fieldMapping['updatable'])) { - $mapping['notUpdatable'] = true; - } - - if (isset($fieldMapping['generated'])) { - $mapping['generated'] = constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATED_' . (string) $fieldMapping['generated']); - } - - if (isset($fieldMapping['version']) && $fieldMapping['version']) { - $mapping['version'] = $this->evaluateBoolean($fieldMapping['version']); - } - - if (isset($fieldMapping['column-definition'])) { - $mapping['columnDefinition'] = (string) $fieldMapping['column-definition']; - } - - if (isset($fieldMapping['enum-type'])) { - $mapping['enumType'] = (string) $fieldMapping['enum-type']; - } - - if (isset($fieldMapping->options)) { - $mapping['options'] = $this->parseOptions($fieldMapping->options->children()); - } - - return $mapping; - } - - /** - * Parse / Normalize the cache configuration - * - * @return mixed[] - * @phpstan-return array{usage: int|null, region?: string} - */ - private function cacheToArray(SimpleXMLElement $cacheMapping): array - { - $region = isset($cacheMapping['region']) ? (string) $cacheMapping['region'] : null; - $usage = isset($cacheMapping['usage']) ? strtoupper((string) $cacheMapping['usage']) : null; - - if ($usage && ! defined('Doctrine\ORM\Mapping\ClassMetadata::CACHE_USAGE_' . $usage)) { - throw new InvalidArgumentException(sprintf('Invalid cache usage "%s"', $usage)); - } - - if ($usage) { - $usage = (int) constant('Doctrine\ORM\Mapping\ClassMetadata::CACHE_USAGE_' . $usage); - } - - return [ - 'usage' => $usage, - 'region' => $region, - ]; - } - - /** - * Gathers a list of cascade options found in the given cascade element. - * - * @param SimpleXMLElement $cascadeElement The cascade element. - * - * @return string[] The list of cascade options. - * @phpstan-return list - */ - private function getCascadeMappings(SimpleXMLElement $cascadeElement): array - { - $cascades = []; - $children = $cascadeElement->children(); - assert($children !== null); - - foreach ($children as $action) { - // According to the JPA specifications, XML uses "cascade-persist" - // instead of "persist". Here, both variations - // are supported because Attribute uses "persist" - // and we want to make sure that this driver doesn't need to know - // anything about the supported cascading actions - $cascades[] = str_replace('cascade-', '', $action->getName()); - } - - return $cascades; - } - - /** @return array */ - private function doLoadMappingFile(string $file): array - { - $this->validateMapping($file); - $result = []; - // Note: we do not use `simplexml_load_file()` because of https://bugs.php.net/bug.php?id=62577 - $xmlElement = simplexml_load_string(file_get_contents($file)); - assert($xmlElement !== false); - - if (isset($xmlElement->entity)) { - foreach ($xmlElement->entity as $entityElement) { - /** @var class-string $entityName */ - $entityName = (string) $entityElement['name']; - $result[$entityName] = $entityElement; - } - } elseif (isset($xmlElement->{'mapped-superclass'})) { - foreach ($xmlElement->{'mapped-superclass'} as $mappedSuperClass) { - /** @var class-string $className */ - $className = (string) $mappedSuperClass['name']; - $result[$className] = $mappedSuperClass; - } - } elseif (isset($xmlElement->embeddable)) { - foreach ($xmlElement->embeddable as $embeddableElement) { - /** @var class-string $embeddableName */ - $embeddableName = (string) $embeddableElement['name']; - $result[$embeddableName] = $embeddableElement; - } - } - - return $result; - } - - private function validateMapping(string $file): void - { - if (! $this->isXsdValidationEnabled) { - return; - } - - $backedUpErrorSetting = libxml_use_internal_errors(true); - - try { - $document = new DOMDocument(); - $document->load($file); - - if (! $document->schemaValidate(__DIR__ . '/../../../doctrine-mapping.xsd')) { - throw MappingException::fromLibXmlErrors(libxml_get_errors()); - } - } finally { - libxml_clear_errors(); - libxml_use_internal_errors($backedUpErrorSetting); - } - } - - protected function evaluateBoolean(mixed $element): bool - { - $flag = (string) $element; - - return $flag === 'true' || $flag === '1'; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Embeddable.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Embeddable.php deleted file mode 100644 index b8dfea0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Embeddable.php +++ /dev/null @@ -1,12 +0,0 @@ - */ -final class EmbeddedClassMapping implements ArrayAccess -{ - use ArrayAccessImplementation; - - public string|false|null $columnPrefix = null; - public string|null $declaredField = null; - public string|null $originalField = null; - - /** - * This is set when this embedded-class field is inherited by this class - * from another (inheritance) parent entity class. The value is - * the FQCN of the topmost entity class that contains mapping information - * for this field. (If there are transient classes in the class hierarchy, - * these are ignored, so the class property may in fact come from a class - * further up in the PHP class hierarchy.) Fields initially declared in - * mapped superclasses are not considered 'inherited' in the - * nearest entity subclasses. - * - * @var class-string|null - */ - public string|null $inherited = null; - - /** - * This is set when the embedded-class field does not appear for the first - * time in this class, but is originally declared in another parent - * entity or mapped superclass. The value is the FQCN of the - * topmost non-transient class that contains mapping information for this - * field. - * - * @var class-string|null - */ - public string|null $declared = null; - - /** @param class-string $class */ - public function __construct(public string $class) - { - } - - /** - * @phpstan-param array{ - * class: class-string, - * columnPrefix?: false|string|null, - * declaredField?: string|null, - * originalField?: string|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): self - { - $mapping = new self($mappingArray['class']); - foreach ($mappingArray as $key => $value) { - if ($key === 'class') { - continue; - } - - if (property_exists($mapping, $key)) { - $mapping->$key = $value; - } - } - - return $mapping; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = ['class']; - - if ($this->columnPrefix) { - $serialized[] = 'columnPrefix'; - } - - foreach (['declaredField', 'originalField', 'inherited', 'declared'] as $property) { - if ($this->$property !== null) { - $serialized[] = $property; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Entity.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Entity.php deleted file mode 100644 index 6466aa0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Entity.php +++ /dev/null @@ -1,20 +0,0 @@ ->|null $repositoryClass */ - public function __construct( - public readonly string|null $repositoryClass = null, - public readonly bool $readOnly = false, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/EntityListenerResolver.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/EntityListenerResolver.php deleted file mode 100644 index eabc217..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/EntityListenerResolver.php +++ /dev/null @@ -1,30 +0,0 @@ - $value */ - public function __construct( - public readonly array $value = [], - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Exception/InvalidCustomGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Exception/InvalidCustomGenerator.php deleted file mode 100644 index b9e10bf..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Exception/InvalidCustomGenerator.php +++ /dev/null @@ -1,28 +0,0 @@ - */ -final class FieldMapping implements ArrayAccess -{ - use ArrayAccessImplementation; - - /** The database length of the column. Optional. Default value taken from the type. */ - public int|null $length = null; - /** - * Marks the field as the primary key of the entity. Multiple - * fields of an entity can have the id attribute, forming a composite key. - */ - public bool|null $id = null; - public bool|null $nullable = null; - public bool|null $notInsertable = null; - public bool|null $notUpdatable = null; - public string|null $columnDefinition = null; - /** @phpstan-var ClassMetadata::GENERATED_*|null */ - public int|null $generated = null; - /** @var class-string|null */ - public string|null $enumType = null; - /** - * The precision of a decimal column. - * Only valid if the column type is decimal - */ - public int|null $precision = null; - /** - * The scale of a decimal column. - * Only valid if the column type is decimal - */ - public int|null $scale = null; - /** Whether a unique constraint should be generated for the column. */ - public bool|null $unique = null; - /** Whether an index should be generated for the column. */ - public bool|null $index = null; - /** - * @var class-string|null This is set when the field is inherited by this - * class from another (inheritance) parent entity class. The value - * is the FQCN of the topmost entity class that contains mapping information - * for this field. (If there are transient classes in the class hierarchy, - * these are ignored, so the class property may in fact come from a class - * further up in the PHP class hierarchy.) - * Fields initially declared in mapped superclasses are - * not considered 'inherited' in the nearest entity subclasses. - */ - public string|null $inherited = null; - - /** @var class-string|null */ - public string|null $originalClass = null; - public string|null $originalField = null; - public bool|null $quoted = null; - /** - * @var class-string|null This is set when the field does not appear for - * the first time in this class, but is originally declared in another - * parent entity or mapped superclass. The value is the FQCN of - * the topmost non-transient class that contains mapping information for - * this field. - */ - public string|null $declared = null; - public string|null $declaredField = null; - public array|null $options = null; - public bool|null $version = null; - public string|int|null $default = null; - - /** - * @param string $type The type name of the mapped field. Can be one of - * Doctrine's mapping types or a custom mapping type. - * @param string $fieldName The name of the field in the Entity. - * @param string $columnName The column name. Optional. Defaults to the field name. - */ - public function __construct( - public string $type, - public string $fieldName, - public string $columnName, - ) { - } - - /** - * @param array $mappingArray - * @phpstan-param array{ - * type: string, - * fieldName: string, - * columnName: string, - * length?: int|null, - * id?: bool|null, - * nullable?: bool|null, - * index?: bool|null, - * notInsertable?: bool|null, - * notUpdatable?: bool|null, - * columnDefinition?: string|null, - * generated?: ClassMetadata::GENERATED_*|null, - * enumType?: string|null, - * precision?: int|null, - * scale?: int|null, - * unique?: bool|null, - * inherited?: string|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * quoted?: bool|null, - * declared?: string|null, - * declaredField?: string|null, - * options?: array|null, - * version?: bool|null, - * default?: string|int|null, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): self - { - $mapping = new self( - $mappingArray['type'], - $mappingArray['fieldName'], - $mappingArray['columnName'], - ); - foreach ($mappingArray as $key => $value) { - if (in_array($key, ['type', 'fieldName', 'columnName'])) { - continue; - } - - if (property_exists($mapping, $key)) { - $mapping->$key = $value; - } - } - - return $mapping; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = ['type', 'fieldName', 'columnName']; - - foreach (['nullable', 'notInsertable', 'notUpdatable', 'id', 'unique', 'version', 'quoted'] as $boolKey) { - if ($this->$boolKey) { - $serialized[] = $boolKey; - } - } - - foreach ( - [ - 'length', - 'columnDefinition', - 'generated', - 'enumType', - 'precision', - 'scale', - 'inherited', - 'originalClass', - 'originalField', - 'declared', - 'declaredField', - 'options', - 'default', - ] as $key - ) { - if ($this->$key !== null) { - $serialized[] = $key; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/GeneratedValue.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/GeneratedValue.php deleted file mode 100644 index 385b2c0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/GeneratedValue.php +++ /dev/null @@ -1,17 +0,0 @@ -reflClass; - } - } -} else { - trait GetReflectionClassImplementation - { - /** - * {@inheritDoc} - * - * Can return null when using static reflection, in violation of the LSP - */ - public function getReflectionClass(): ReflectionClass|null - { - return $this->reflClass; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/HasLifecycleCallbacks.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/HasLifecycleCallbacks.php deleted file mode 100644 index d41a696..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/HasLifecycleCallbacks.php +++ /dev/null @@ -1,12 +0,0 @@ -|null $columns - * @param array|null $fields - * @param array|null $flags - * @param array|null $options - */ - public function __construct( - public readonly string|null $name = null, - public readonly array|null $columns = null, - public readonly array|null $fields = null, - public readonly array|null $flags = null, - public readonly array|null $options = null, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/InheritanceType.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/InheritanceType.php deleted file mode 100644 index b33afd8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/InheritanceType.php +++ /dev/null @@ -1,17 +0,0 @@ -mappedBy; - } - - /** @return list */ - public function __sleep(): array - { - return [ - ...parent::__sleep(), - 'mappedBy', - ]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumn.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumn.php deleted file mode 100644 index 9a049fb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumn.php +++ /dev/null @@ -1,13 +0,0 @@ - */ -final class JoinColumnMapping implements ArrayAccess -{ - use ArrayAccessImplementation; - - public bool|null $deferrable = null; - public bool|null $unique = null; - public bool|null $quoted = null; - public string|null $fieldName = null; - public string|null $onDelete = null; - public string|null $columnDefinition = null; - public bool|null $nullable = null; - - /** @var array|null */ - public array|null $options = null; - - public function __construct( - public string $name, - public string $referencedColumnName, - ) { - } - - /** - * @param array $mappingArray - * @phpstan-param array{ - * name: string, - * referencedColumnName: string|null, - * unique?: bool|null, - * quoted?: bool|null, - * fieldName?: string|null, - * onDelete?: string|null, - * columnDefinition?: string|null, - * nullable?: bool|null, - * options?: array|null, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): self - { - $mapping = new self($mappingArray['name'], $mappingArray['referencedColumnName']); - foreach ($mappingArray as $key => $value) { - if (property_exists($mapping, $key) && $value !== null) { - $mapping->$key = $value; - } - } - - return $mapping; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = []; - - foreach (['name', 'fieldName', 'onDelete', 'columnDefinition', 'referencedColumnName', 'options'] as $stringOrArrayKey) { - if ($this->$stringOrArrayKey !== null) { - $serialized[] = $stringOrArrayKey; - } - } - - foreach (['deferrable', 'unique', 'quoted', 'nullable'] as $boolKey) { - if ($this->$boolKey !== null) { - $serialized[] = $boolKey; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumnProperties.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumnProperties.php deleted file mode 100644 index dcf2343..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumnProperties.php +++ /dev/null @@ -1,22 +0,0 @@ - $options */ - public function __construct( - public readonly string|null $name = null, - public readonly string|null $referencedColumnName = null, - public readonly bool $deferrable = false, - public readonly bool $unique = false, - public readonly bool $nullable = true, - public readonly mixed $onDelete = null, - public readonly string|null $columnDefinition = null, - public readonly string|null $fieldName = null, - public readonly array $options = [], - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumns.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumns.php deleted file mode 100644 index f166b76..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinColumns.php +++ /dev/null @@ -1,14 +0,0 @@ - $value */ - public function __construct( - public readonly array $value, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTable.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTable.php deleted file mode 100644 index 0558761..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTable.php +++ /dev/null @@ -1,35 +0,0 @@ - */ - public readonly array $joinColumns; - - /** @var array */ - public readonly array $inverseJoinColumns; - - /** - * @param array|JoinColumn $joinColumns - * @param array|JoinColumn $inverseJoinColumns - * @param array $options - */ - public function __construct( - public readonly string|null $name = null, - public readonly string|null $schema = null, - array|JoinColumn $joinColumns = [], - array|JoinColumn $inverseJoinColumns = [], - public readonly array $options = [], - ) { - $this->joinColumns = $joinColumns instanceof JoinColumn ? [$joinColumns] : $joinColumns; - $this->inverseJoinColumns = $inverseJoinColumns instanceof JoinColumn - ? [$inverseJoinColumns] - : $inverseJoinColumns; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTableMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTableMapping.php deleted file mode 100644 index 29d3a69..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/JoinTableMapping.php +++ /dev/null @@ -1,115 +0,0 @@ - */ -final class JoinTableMapping implements ArrayAccess -{ - use ArrayAccessImplementation; - - public bool|null $quoted = null; - - /** @var list */ - public array $joinColumns = []; - - /** @var list */ - public array $inverseJoinColumns = []; - - /** @var array */ - public array $options = []; - - public string|null $schema = null; - - public function __construct(public string $name) - { - } - - /** - * @param mixed[] $mappingArray - * @phpstan-param array{ - * name: string, - * quoted?: bool|null, - * joinColumns?: mixed[], - * inverseJoinColumns?: mixed[], - * schema?: string|null, - * options?: array - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): self - { - $mapping = new self($mappingArray['name']); - - foreach (['quoted', 'schema', 'options'] as $key) { - if (isset($mappingArray[$key])) { - $mapping->$key = $mappingArray[$key]; - } - } - - if (isset($mappingArray['joinColumns'])) { - foreach ($mappingArray['joinColumns'] as $column) { - $mapping->joinColumns[] = JoinColumnMapping::fromMappingArray($column); - } - } - - if (isset($mappingArray['inverseJoinColumns'])) { - foreach ($mappingArray['inverseJoinColumns'] as $column) { - $mapping->inverseJoinColumns[] = JoinColumnMapping::fromMappingArray($column); - } - } - - return $mapping; - } - - public function offsetSet(mixed $offset, mixed $value): void - { - if (in_array($offset, ['joinColumns', 'inverseJoinColumns'], true)) { - $joinColumns = []; - foreach ($value as $column) { - $joinColumns[] = JoinColumnMapping::fromMappingArray($column); - } - - $value = $joinColumns; - } - - $this->$offset = $value; - } - - /** @return mixed[] */ - public function toArray(): array - { - $array = (array) $this; - - $toArray = static fn (JoinColumnMapping $column): array => (array) $column; - $array['joinColumns'] = array_map($toArray, $array['joinColumns']); - $array['inverseJoinColumns'] = array_map($toArray, $array['inverseJoinColumns']); - - return $array; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = []; - - foreach (['joinColumns', 'inverseJoinColumns', 'name', 'schema', 'options'] as $stringOrArrayKey) { - if ($this->$stringOrArrayKey !== null) { - $serialized[] = $stringOrArrayKey; - } - } - - foreach (['quoted'] as $boolKey) { - if ($this->$boolKey) { - $serialized[] = $boolKey; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/LegacyReflectionFields.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/LegacyReflectionFields.php deleted file mode 100644 index 1d98860..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/LegacyReflectionFields.php +++ /dev/null @@ -1,170 +0,0 @@ - - * @template-implements IteratorAggregate - */ -class LegacyReflectionFields implements ArrayAccess, IteratorAggregate -{ - /** @var array */ - private array $reflFields = []; - - public function __construct(private ClassMetadata $classMetadata, private ReflectionService $reflectionService) - { - } - - /** @param string $offset */ - public function offsetExists($offset): bool // phpcs:ignore - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11659', - 'Access to ClassMetadata::$reflFields is deprecated and will be removed in Doctrine ORM 4.0.', - ); - - return isset($this->classMetadata->propertyAccessors[$offset]); - } - - /** - * @param string $field - * - * @psalm-suppress LessSpecificImplementedReturnType - */ - public function offsetGet($field): mixed // phpcs:ignore - { - if (isset($this->reflFields[$field])) { - return $this->reflFields[$field]; - } - - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11659', - 'Access to ClassMetadata::$reflFields is deprecated and will be removed in Doctrine ORM 4.0.', - ); - - if (isset($this->classMetadata->propertyAccessors[$field])) { - $fieldName = str_contains($field, '.') ? $this->classMetadata->fieldMappings[$field]->originalField : $field; - $className = $this->classMetadata->name; - - assert(is_string($fieldName)); - - if (isset($this->classMetadata->fieldMappings[$field]) && $this->classMetadata->fieldMappings[$field]->originalClass !== null) { - $className = $this->classMetadata->fieldMappings[$field]->originalClass; - } elseif (isset($this->classMetadata->fieldMappings[$field]) && $this->classMetadata->fieldMappings[$field]->declared !== null) { - $className = $this->classMetadata->fieldMappings[$field]->declared; - } elseif (isset($this->classMetadata->associationMappings[$field]) && $this->classMetadata->associationMappings[$field]->declared !== null) { - $className = $this->classMetadata->associationMappings[$field]->declared; - } elseif (isset($this->classMetadata->embeddedClasses[$field]) && $this->classMetadata->embeddedClasses[$field]->declared !== null) { - $className = $this->classMetadata->embeddedClasses[$field]->declared; - } - - /** @psalm-suppress ArgumentTypeCoercion */ - $this->reflFields[$field] = $this->getAccessibleProperty($className, $fieldName); - - if (isset($this->classMetadata->fieldMappings[$field])) { - if ($this->classMetadata->fieldMappings[$field]->enumType !== null) { - $this->reflFields[$field] = new EnumReflectionProperty( - $this->reflFields[$field], - $this->classMetadata->fieldMappings[$field]->enumType, - ); - } - - if ($this->classMetadata->fieldMappings[$field]->originalField !== null) { - $parentField = str_replace('.' . $fieldName, '', $field); - $originalClass = $this->classMetadata->fieldMappings[$field]->originalClass; - - if (! str_contains($parentField, '.')) { - $parentClass = $this->classMetadata->name; - } else { - $parentClass = $this->classMetadata->fieldMappings[$parentField]->originalClass; - } - - /** @psalm-var class-string $parentClass */ - /** @psalm-var class-string $originalClass */ - - $this->reflFields[$field] = new ReflectionEmbeddedProperty( - $this->getAccessibleProperty($parentClass, $parentField), - $this->reflFields[$field], - $originalClass, - ); - } - } - - return $this->reflFields[$field]; - } - - throw new OutOfBoundsException('Unknown field: ' . $this->classMetadata->name . ' ::$' . $field); - } - - /** - * @param string $offset - * @param ReflectionProperty $value - */ - public function offsetSet($offset, $value): void // phpcs:ignore - { - $this->reflFields[$offset] = $value; - } - - /** @param string $offset */ - public function offsetUnset($offset): void // phpcs:ignore - { - unset($this->reflFields[$offset]); - } - - /** @psalm-param class-string $class */ - private function getAccessibleProperty(string $class, string $field): ReflectionProperty - { - $reflectionProperty = $this->reflectionService->getAccessibleProperty($class, $field); - - assert($reflectionProperty !== null); - - if ($reflectionProperty->isReadOnly()) { - $declaringClass = $reflectionProperty->class; - if ($declaringClass !== $class) { - $reflectionProperty = $this->reflectionService->getAccessibleProperty($declaringClass, $field); - - assert($reflectionProperty !== null); - } - - $reflectionProperty = new ReflectionReadonlyProperty($reflectionProperty); - } - - return $reflectionProperty; - } - - /** @return Generator */ - public function getIterator(): Traversable - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11659', - 'Access to ClassMetadata::$reflFields is deprecated and will be removed in Doctrine ORM 4.0.', - ); - - $keys = array_keys($this->classMetadata->propertyAccessors); - - foreach ($keys as $key) { - yield $key => $this->offsetGet($key); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToMany.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToMany.php deleted file mode 100644 index 60d2e76..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToMany.php +++ /dev/null @@ -1,27 +0,0 @@ - */ - public array $joinTableColumns = []; - - /** @var array */ - public array $relationToSourceKeyColumns = []; - /** @var array */ - public array $relationToTargetKeyColumns = []; - - /** @return array */ - public function toArray(): array - { - $array = parent::toArray(); - - $array['joinTable'] = $this->joinTable->toArray(); - - return $array; - } - - /** - * @param mixed[] $mappingArray - * @phpstan-param array{ - * fieldName: string, - * sourceEntity: class-string, - * targetEntity: class-string, - * cascade?: list<'persist'|'remove'|'detach'|'refresh'|'all'>, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * } $mappingArray - */ - public static function fromMappingArrayAndNamingStrategy(array $mappingArray, NamingStrategy $namingStrategy): self - { - if (isset($mappingArray['joinTable']['joinColumns'])) { - foreach ($mappingArray['joinTable']['joinColumns'] as $key => $joinColumn) { - if (empty($joinColumn['referencedColumnName'])) { - $mappingArray['joinTable']['joinColumns'][$key]['referencedColumnName'] = $namingStrategy->referenceColumnName(); - } - - if (empty($joinColumn['name'])) { - $mappingArray['joinTable']['joinColumns'][$key]['name'] = $namingStrategy->joinKeyColumnName( - $mappingArray['sourceEntity'], - $joinColumn['referencedColumnName'] ?? $namingStrategy->referenceColumnName(), - ); - } - } - } - - if (isset($mappingArray['joinTable']['inverseJoinColumns'])) { - foreach ($mappingArray['joinTable']['inverseJoinColumns'] as $key => $joinColumn) { - if (empty($joinColumn['referencedColumnName'])) { - $mappingArray['joinTable']['inverseJoinColumns'][$key]['referencedColumnName'] = $namingStrategy->referenceColumnName(); - } - - if (empty($joinColumn['name'])) { - $mappingArray['joinTable']['inverseJoinColumns'][$key]['name'] = $namingStrategy->joinKeyColumnName( - $mappingArray['targetEntity'], - $joinColumn['referencedColumnName'] ?? $namingStrategy->referenceColumnName(), - ); - } - } - } - - // owning side MUST have a join table - if (! isset($mappingArray['joinTable']) || ! isset($mappingArray['joinTable']['name'])) { - $mappingArray['joinTable']['name'] = $namingStrategy->joinTableName( - $mappingArray['sourceEntity'], - $mappingArray['targetEntity'], - $mappingArray['fieldName'], - ); - } - - $mapping = parent::fromMappingArray($mappingArray); - - $selfReferencingEntityWithoutJoinColumns = $mapping->sourceEntity === $mapping->targetEntity - && $mapping->joinTable->joinColumns === [] - && $mapping->joinTable->inverseJoinColumns === []; - - if ($mapping->joinTable->joinColumns === []) { - $mapping->joinTable->joinColumns = [ - JoinColumnMapping::fromMappingArray([ - 'name' => $namingStrategy->joinKeyColumnName($mapping->sourceEntity, $selfReferencingEntityWithoutJoinColumns ? 'source' : null), - 'referencedColumnName' => $namingStrategy->referenceColumnName(), - 'onDelete' => 'CASCADE', - ]), - ]; - } - - if ($mapping->joinTable->inverseJoinColumns === []) { - $mapping->joinTable->inverseJoinColumns = [ - JoinColumnMapping::fromMappingArray([ - 'name' => $namingStrategy->joinKeyColumnName($mapping->targetEntity, $selfReferencingEntityWithoutJoinColumns ? 'target' : null), - 'referencedColumnName' => $namingStrategy->referenceColumnName(), - 'onDelete' => 'CASCADE', - ]), - ]; - } - - $mapping->joinTableColumns = []; - - foreach ($mapping->joinTable->joinColumns as $joinColumn) { - if (empty($joinColumn->referencedColumnName)) { - $joinColumn->referencedColumnName = $namingStrategy->referenceColumnName(); - } - - if ($joinColumn->name[0] === '`') { - $joinColumn->name = trim($joinColumn->name, '`'); - $joinColumn->quoted = true; - } - - if ($joinColumn->referencedColumnName[0] === '`') { - $joinColumn->referencedColumnName = trim($joinColumn->referencedColumnName, '`'); - $joinColumn->quoted = true; - } - - if (isset($joinColumn->onDelete) && strtolower($joinColumn->onDelete) === 'cascade') { - $mapping->isOnDeleteCascade = true; - } - - $mapping->relationToSourceKeyColumns[$joinColumn->name] = $joinColumn->referencedColumnName; - $mapping->joinTableColumns[] = $joinColumn->name; - } - - foreach ($mapping->joinTable->inverseJoinColumns as $inverseJoinColumn) { - if (empty($inverseJoinColumn->referencedColumnName)) { - $inverseJoinColumn->referencedColumnName = $namingStrategy->referenceColumnName(); - } - - if ($inverseJoinColumn->name[0] === '`') { - $inverseJoinColumn->name = trim($inverseJoinColumn->name, '`'); - $inverseJoinColumn->quoted = true; - } - - if ($inverseJoinColumn->referencedColumnName[0] === '`') { - $inverseJoinColumn->referencedColumnName = trim($inverseJoinColumn->referencedColumnName, '`'); - $inverseJoinColumn->quoted = true; - } - - if (isset($inverseJoinColumn->onDelete) && strtolower($inverseJoinColumn->onDelete) === 'cascade') { - $mapping->isOnDeleteCascade = true; - } - - $mapping->relationToTargetKeyColumns[$inverseJoinColumn->name] = $inverseJoinColumn->referencedColumnName; - $mapping->joinTableColumns[] = $inverseJoinColumn->name; - } - - return $mapping; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = parent::__sleep(); - $serialized[] = 'joinTable'; - $serialized[] = 'joinTableColumns'; - - foreach (['relationToSourceKeyColumns', 'relationToTargetKeyColumns'] as $arrayKey) { - if ($this->$arrayKey !== null) { - $serialized[] = $arrayKey; - } - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToOne.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToOne.php deleted file mode 100644 index b02d933..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ManyToOne.php +++ /dev/null @@ -1,24 +0,0 @@ -|null $repositoryClass */ - public function __construct( - public readonly string|null $repositoryClass = null, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/MappingAttribute.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/MappingAttribute.php deleted file mode 100644 index 61091a9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/MappingAttribute.php +++ /dev/null @@ -1,10 +0,0 @@ - $map - */ - public static function duplicateDiscriminatorEntry(string $className, array $entries, array $map): self - { - return new self( - 'The entries ' . implode(', ', $entries) . " in discriminator map of class '" . $className . "' is duplicated. " . - 'If the discriminator map is automatically generated you have to convert it to an explicit discriminator map now. ' . - 'The entries of the current map are: @DiscriminatorMap({' . implode(', ', array_map( - static fn ($a, $b) => sprintf("'%s': '%s'", $a, $b), - array_keys($map), - array_values($map), - )) . '})', - ); - } - - /** - * @param class-string $rootEntityClass - * @param class-string $childEntityClass - */ - public static function missingInheritanceTypeDeclaration(string $rootEntityClass, string $childEntityClass): self - { - return new self(sprintf( - "Entity class '%s' is a subclass of the root entity class '%s', but no inheritance mapping type was declared.", - $childEntityClass, - $rootEntityClass, - )); - } - - public static function missingDiscriminatorMap(string $className): self - { - return new self(sprintf( - "Entity class '%s' is using inheritance but no discriminator map was defined.", - $className, - )); - } - - public static function missingDiscriminatorColumn(string $className): self - { - return new self(sprintf( - "Entity class '%s' is using inheritance but no discriminator column was defined.", - $className, - )); - } - - public static function invalidDiscriminatorColumnType(string $className, string $type): self - { - return new self(sprintf( - "Discriminator column type on entity class '%s' is not allowed to be '%s'. 'string' or 'integer' type variables are suggested!", - $className, - $type, - )); - } - - public static function nameIsMandatoryForDiscriminatorColumns(string $className): self - { - return new self(sprintf("Discriminator column name on entity class '%s' is not defined.", $className)); - } - - public static function cannotVersionIdField(string $className, string $fieldName): self - { - return new self(sprintf( - "Setting Id field '%s' as versionable in entity class '%s' is not supported.", - $fieldName, - $className, - )); - } - - public static function duplicateColumnName(string $className, string $columnName): self - { - return new self("Duplicate definition of column '" . $columnName . "' on entity '" . $className . "' in a field or discriminator column mapping."); - } - - public static function illegalToManyAssociationOnMappedSuperclass(string $className, string $field): self - { - return new self("It is illegal to put an inverse side one-to-many or many-to-many association on mapped superclass '" . $className . '#' . $field . "'."); - } - - public static function cannotMapCompositePrimaryKeyEntitiesAsForeignId(string $className, string $targetEntity, string $targetField): self - { - return new self("It is not possible to map entity '" . $className . "' with a composite primary key " . - "as part of the primary key of another entity '" . $targetEntity . '#' . $targetField . "'."); - } - - public static function noSingleAssociationJoinColumnFound(string $className, string $field): self - { - return new self(sprintf("'%s#%s' is not an association with a single join column.", $className, $field)); - } - - public static function noFieldNameFoundForColumn(string $className, string $column): self - { - return new self(sprintf( - "Cannot find a field on '%s' that is mapped to column '%s'. Either the " . - 'field does not exist or an association exists but it has multiple join columns.', - $className, - $column, - )); - } - - public static function illegalOrphanRemovalOnIdentifierAssociation(string $className, string $field): self - { - return new self(sprintf( - "The orphan removal option is not allowed on an association that is part of the identifier in '%s#%s'.", - $className, - $field, - )); - } - - public static function illegalOrphanRemoval(string $className, string $field): self - { - return new self('Orphan removal is only allowed on one-to-one and one-to-many ' . - 'associations, but ' . $className . '#' . $field . ' is not.'); - } - - public static function illegalInverseIdentifierAssociation(string $className, string $field): self - { - return new self(sprintf( - "An inverse association is not allowed to be identifier in '%s#%s'.", - $className, - $field, - )); - } - - public static function illegalToManyIdentifierAssociation(string $className, string $field): self - { - return new self(sprintf( - "Many-to-many or one-to-many associations are not allowed to be identifier in '%s#%s'.", - $className, - $field, - )); - } - - public static function noInheritanceOnMappedSuperClass(string $className): self - { - return new self("It is not supported to define inheritance information on a mapped superclass '" . $className . "'."); - } - - public static function mappedClassNotPartOfDiscriminatorMap(string $className, string $rootClassName): self - { - return new self( - "Entity '" . $className . "' has to be part of the discriminator map of '" . $rootClassName . "' " . - "to be properly mapped in the inheritance hierarchy. Alternatively you can make '" . $className . "' an abstract class " . - 'to avoid this exception from occurring.', - ); - } - - public static function lifecycleCallbackMethodNotFound(string $className, string $methodName): self - { - return new self("Entity '" . $className . "' has no method '" . $methodName . "' to be registered as lifecycle callback."); - } - - /** @param class-string $className */ - public static function illegalLifecycleCallbackOnEmbeddedClass(string $event, string $className): self - { - return new self(sprintf( - <<<'EXCEPTION' - Context: Attempt to register lifecycle callback "%s" on embedded class "%s". - Problem: Registering lifecycle callbacks on embedded classes is not allowed. - EXCEPTION, - $event, - $className, - )); - } - - public static function entityListenerClassNotFound(string $listenerName, string $className): self - { - return new self(sprintf('Entity Listener "%s" declared on "%s" not found.', $listenerName, $className)); - } - - public static function entityListenerMethodNotFound(string $listenerName, string $methodName, string $className): self - { - return new self(sprintf('Entity Listener "%s" declared on "%s" has no method "%s".', $listenerName, $className, $methodName)); - } - - public static function duplicateEntityListener(string $listenerName, string $methodName, string $className): self - { - return new self(sprintf('Entity Listener "%s#%s()" in "%s" was already declared, but it must be declared only once.', $listenerName, $methodName, $className)); - } - - /** @param class-string $className */ - public static function invalidFetchMode(string $className, string $fetchMode): self - { - return new self("Entity '" . $className . "' has a mapping with invalid fetch mode '" . $fetchMode . "'"); - } - - public static function invalidGeneratedMode(int|string $generatedMode): self - { - return new self("Invalid generated mode '" . $generatedMode . "'"); - } - - public static function compositeKeyAssignedIdGeneratorRequired(string $className): self - { - return new self("Entity '" . $className . "' has a composite identifier but uses an ID generator other than manually assigning (Identity, Sequence). This is not supported."); - } - - public static function invalidTargetEntityClass(string $targetEntity, string $sourceEntity, string $associationName): self - { - return new self('The target-entity ' . $targetEntity . " cannot be found in '" . $sourceEntity . '#' . $associationName . "'."); - } - - /** @param string[] $cascades */ - public static function invalidCascadeOption(array $cascades, string $className, string $propertyName): self - { - $cascades = implode(', ', array_map(static fn (string $e): string => "'" . $e . "'", $cascades)); - - return new self(sprintf( - "You have specified invalid cascade options for %s::$%s: %s; available options: 'remove', 'persist', 'refresh', and 'detach'", - $className, - $propertyName, - $cascades, - )); - } - - public static function missingSequenceName(string $className): self - { - return new self( - sprintf('Missing "sequenceName" attribute for sequence id generator definition on class "%s".', $className), - ); - } - - public static function infiniteEmbeddableNesting(string $className, string $propertyName): self - { - return new self( - sprintf( - 'Infinite nesting detected for embedded property %s::%s. ' . - 'You cannot embed an embeddable from the same type inside an embeddable.', - $className, - $propertyName, - ), - ); - } - - public static function illegalOverrideOfInheritedProperty(string $className, string $propertyName, string $inheritFromClass): self - { - return new self( - sprintf( - 'Overrides are only allowed for fields or associations declared in mapped superclasses or traits. This is not the case for %s::%s, which was inherited from %s.', - $className, - $propertyName, - $inheritFromClass, - ), - ); - } - - public static function invalidIndexConfiguration(string $className, string $indexName): self - { - return new self( - sprintf( - 'Index %s for entity %s should contain columns or fields values, but not both.', - $indexName, - $className, - ), - ); - } - - public static function invalidUniqueConstraintConfiguration(string $className, string $indexName): self - { - return new self( - sprintf( - 'Unique constraint %s for entity %s should contain columns or fields values, but not both.', - $indexName, - $className, - ), - ); - } - - public static function invalidOverrideType(string $expectdType, mixed $givenValue): self - { - return new self(sprintf( - 'Expected %s, but %s was given.', - $expectdType, - get_debug_type($givenValue), - )); - } - - public static function backedEnumTypeRequired(string $className, string $fieldName, string $enumType): self - { - return new self(sprintf( - 'Attempting to map a non-backed enum type %s in entity %s::$%s. Please use backed enums only', - $enumType, - $className, - $fieldName, - )); - } - - public static function nonEnumTypeMapped(string $className, string $fieldName, string $enumType): self - { - return new self(sprintf( - 'Attempting to map non-enum type %s as enum in entity %s::$%s', - $enumType, - $className, - $fieldName, - )); - } - - /** - * @param class-string $className - * @param class-string $enumType - */ - public static function invalidEnumValue( - string $className, - string $fieldName, - string $value, - string $enumType, - ValueError $previous, - ): self { - return new self(sprintf( - <<<'EXCEPTION' -Context: Trying to hydrate enum property "%s::$%s" -Problem: Case "%s" is not listed in enum "%s" -Solution: Either add the case to the enum type or migrate the database column to use another case of the enum -EXCEPTION - , - $className, - $fieldName, - $value, - $enumType, - ), 0, $previous); - } - - /** @param LibXMLError[] $errors */ - public static function fromLibXmlErrors(array $errors): self - { - $formatter = static fn (LibXMLError $error): string => sprintf( - 'libxml error: %s in %s at line %d', - $error->message, - $error->file, - $error->line, - ); - - return new self(implode(PHP_EOL, array_map($formatter, $errors))); - } - - public static function invalidAttributeOnEmbeddable(string $entityName, string $attributeName): self - { - return new self(sprintf( - 'Attribute "%s" on embeddable "%s" is not allowed.', - $attributeName, - $entityName, - )); - } - - public static function mappingVirtualPropertyNotAllowed(string $entityName, string $propertyName): self - { - return new self(sprintf( - 'Mapping virtual property "%s" on entity "%s" is not allowed.', - $propertyName, - $entityName, - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/NamingStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/NamingStrategy.php deleted file mode 100644 index afedebe..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/NamingStrategy.php +++ /dev/null @@ -1,71 +0,0 @@ -, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): static - { - $mapping = parent::fromMappingArray($mappingArray); - - if ($mapping->orphanRemoval && ! $mapping->isCascadeRemove()) { - $mapping->cascade[] = 'remove'; - } - - return $mapping; - } - - /** - * @param mixed[] $mappingArray - * @phpstan-param array{ - * fieldName: string, - * sourceEntity: class-string, - * targetEntity: class-string, - * cascade?: list<'persist'|'remove'|'detach'|'refresh'|'all'>, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * } $mappingArray - */ - public static function fromMappingArrayAndName(array $mappingArray, string $name): static - { - $mapping = self::fromMappingArray($mappingArray); - - // OneToMany-side MUST be inverse (must have mappedBy) - if (! isset($mapping->mappedBy)) { - throw MappingException::oneToManyRequiresMappedBy($name, $mapping->fieldName); - } - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOne.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOne.php deleted file mode 100644 index 80c2392..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOne.php +++ /dev/null @@ -1,26 +0,0 @@ -|null $cascade - * @phpstan-param 'LAZY'|'EAGER'|'EXTRA_LAZY' $fetch - */ - public function __construct( - public readonly string|null $targetEntity = null, - public readonly string|null $mappedBy = null, - public readonly string|null $inversedBy = null, - public readonly array|null $cascade = null, - public readonly string $fetch = 'LAZY', - public readonly bool $orphanRemoval = false, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneAssociationMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneAssociationMapping.php deleted file mode 100644 index 89c6483..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OneToOneAssociationMapping.php +++ /dev/null @@ -1,9 +0,0 @@ - $value */ - public function __construct( - public readonly array $value, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OwningSideMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/OwningSideMapping.php deleted file mode 100644 index ab8b7b2..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/OwningSideMapping.php +++ /dev/null @@ -1,28 +0,0 @@ - */ - public function __sleep(): array - { - $serialized = parent::__sleep(); - - if ($this->inversedBy !== null) { - $serialized[] = 'inversedBy'; - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PostLoad.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PostLoad.php deleted file mode 100644 index 9ce1e5c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PostLoad.php +++ /dev/null @@ -1,12 +0,0 @@ -parent->getValue($object); - - if ($embeddedObject === null) { - self::$instantiator ??= new Instantiator(); - - $embeddedObject = self::$instantiator->instantiate($this->embeddedClass); - - $this->parent->setValue($object, $embeddedObject); - } - - $this->child->setValue($embeddedObject, $value); - } - - public function getValue(object $object): mixed - { - $embeddedObject = $this->parent->getValue($object); - - if ($embeddedObject === null) { - return null; - } - - return $this->child->getValue($embeddedObject); - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->child->getUnderlyingReflector(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/EnumPropertyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/EnumPropertyAccessor.php deleted file mode 100644 index 9d7cf96..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/EnumPropertyAccessor.php +++ /dev/null @@ -1,85 +0,0 @@ - $enumType */ - public function __construct(private PropertyAccessor $parent, private string $enumType) - { - } - - public function setValue(object $object, mixed $value): void - { - if ($value !== null) { - $value = $this->toEnum($value); - } - - $this->parent->setValue($object, $value); - } - - public function getValue(object $object): mixed - { - $enum = $this->parent->getValue($object); - - if ($enum === null) { - return null; - } - - return $this->fromEnum($enum); - } - - /** - * @param BackedEnum|BackedEnum[] $enum - * - * @return ($enum is BackedEnum ? (string|int) : (string[]|int[])) - */ - private function fromEnum($enum) // phpcs:ignore - { - if (is_array($enum)) { - return array_map(static function (BackedEnum $enum) { - return $enum->value; - }, $enum); - } - - return $enum->value; - } - - /** - * @phpstan-param BackedEnum|BackedEnum[]|int|string|int[]|string[] $value - * - * @return ($value is int|string|BackedEnum ? BackedEnum : BackedEnum[]) - */ - private function toEnum($value): BackedEnum|array - { - if ($value instanceof BackedEnum) { - return $value; - } - - if (is_array($value)) { - $v = reset($value); - if ($v instanceof BackedEnum) { - return $value; - } - - return array_map([$this->enumType, 'from'], $value); - } - - return $this->enumType::from($value); - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->parent->getUnderlyingReflector(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ObjectCastPropertyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ObjectCastPropertyAccessor.php deleted file mode 100644 index a7b8e14..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ObjectCastPropertyAccessor.php +++ /dev/null @@ -1,61 +0,0 @@ -isPrivate() ? "\0" . ltrim($class, '\\') . "\0" . $name : ($reflectionProperty->isProtected() ? "\0*\0" . $name : $name); - - return new self($reflectionProperty, $key); - } - - public static function fromReflectionProperty(ReflectionProperty $reflectionProperty): self - { - $name = $reflectionProperty->getName(); - $key = $reflectionProperty->isPrivate() ? "\0" . ltrim($reflectionProperty->getDeclaringClass()->getName(), '\\') . "\0" . $name : ($reflectionProperty->isProtected() ? "\0*\0" . $name : $name); - - return new self($reflectionProperty, $key); - } - - private function __construct(private ReflectionProperty $reflectionProperty, private string $key) - { - } - - public function setValue(object $object, mixed $value): void - { - if (! ($object instanceof InternalProxy && ! $object->__isInitialized())) { - $this->reflectionProperty->setValue($object, $value); - - return; - } - - $object->__setInitialized(true); - - $this->reflectionProperty->setValue($object, $value); - - $object->__setInitialized(false); - } - - public function getValue(object $object): mixed - { - return ((array) $object)[$this->key] ?? null; - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->reflectionProperty; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/PropertyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/PropertyAccessor.php deleted file mode 100644 index 28aa5f9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/PropertyAccessor.php +++ /dev/null @@ -1,27 +0,0 @@ -= 80400 - ? RawValuePropertyAccessor::fromReflectionProperty($reflectionProperty) - : ObjectCastPropertyAccessor::fromReflectionProperty($reflectionProperty); - - if ($reflectionProperty->hasType() && ! $reflectionProperty->getType()->allowsNull()) { - $accessor = new TypedNoDefaultPropertyAccessor($accessor, $reflectionProperty); - } - - if ($reflectionProperty->isReadOnly()) { - $accessor = new ReadonlyAccessor($accessor, $reflectionProperty); - } - - return $accessor; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/RawValuePropertyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/RawValuePropertyAccessor.php deleted file mode 100644 index d4e0459..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/RawValuePropertyAccessor.php +++ /dev/null @@ -1,63 +0,0 @@ -getName(); - $key = $reflectionProperty->isPrivate() ? "\0" . ltrim($reflectionProperty->getDeclaringClass()->getName(), '\\') . "\0" . $name : ($reflectionProperty->isProtected() ? "\0*\0" . $name : $name); - - return new self($reflectionProperty, $key); - } - - private function __construct(private ReflectionProperty $reflectionProperty, private string $key) - { - if (PHP_VERSION_ID < 80400) { - throw new LogicException('This class requires PHP 8.4 or higher.'); - } - } - - public function setValue(object $object, mixed $value): void - { - if (! ($object instanceof InternalProxy && ! $object->__isInitialized())) { - $this->reflectionProperty->setRawValueWithoutLazyInitialization($object, $value); - - return; - } - - $object->__setInitialized(true); - - $this->reflectionProperty->setRawValue($object, $value); - - $object->__setInitialized(false); - } - - public function getValue(object $object): mixed - { - return ((array) $object)[$this->key] ?? null; - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->reflectionProperty; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ReadonlyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ReadonlyAccessor.php deleted file mode 100644 index 3f93378..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/ReadonlyAccessor.php +++ /dev/null @@ -1,53 +0,0 @@ -reflectionProperty->isReadOnly()) { - throw new InvalidArgumentException(sprintf( - '%s::$%s must be readonly property', - $this->reflectionProperty->getDeclaringClass()->getName(), - $this->reflectionProperty->getName(), - )); - } - } - - public function setValue(object $object, mixed $value): void - { - if (! $this->reflectionProperty->isInitialized($object)) { - $this->parent->setValue($object, $value); - - return; - } - - if ($this->parent->getValue($object) !== $value) { - throw new LogicException(sprintf( - 'Attempting to change readonly property %s::$%s.', - $this->reflectionProperty->getDeclaringClass()->getName(), - $this->reflectionProperty->getName(), - )); - } - } - - public function getValue(object $object): mixed - { - return $this->parent->getValue($object); - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->reflectionProperty; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/TypedNoDefaultPropertyAccessor.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/TypedNoDefaultPropertyAccessor.php deleted file mode 100644 index 224c421..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/PropertyAccessors/TypedNoDefaultPropertyAccessor.php +++ /dev/null @@ -1,69 +0,0 @@ -reflectionProperty->hasType()) { - throw new InvalidArgumentException(sprintf( - '%s::$%s must have a type when used with TypedNoDefaultPropertyAccessor', - $this->reflectionProperty->getDeclaringClass()->getName(), - $this->reflectionProperty->getName(), - )); - } - - if ($this->reflectionProperty->getType()->allowsNull()) { - throw new InvalidArgumentException(sprintf( - '%s::$%s must not be nullable when used with TypedNoDefaultPropertyAccessor', - $this->reflectionProperty->getDeclaringClass()->getName(), - $this->reflectionProperty->getName(), - )); - } - } - - public function setValue(object $object, mixed $value): void - { - if ($value === null) { - if ($this->unsetter === null) { - $propertyName = $this->reflectionProperty->getName(); - $this->unsetter = function () use ($propertyName): void { - unset($this->$propertyName); - }; - } - - $unsetter = $this->unsetter->bindTo($object, $this->reflectionProperty->getDeclaringClass()->getName()); - - assert($unsetter instanceof Closure); - - $unsetter(); - - return; - } - - $this->parent->setValue($object, $value); - } - - public function getValue(object $object): mixed - { - return $this->reflectionProperty->isInitialized($object) ? $this->parent->getValue($object) : null; - } - - public function getUnderlyingReflector(): ReflectionProperty - { - return $this->reflectionProperty; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/QuoteStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/QuoteStrategy.php deleted file mode 100644 index 7b78d12..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/QuoteStrategy.php +++ /dev/null @@ -1,68 +0,0 @@ - - */ - public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array; - - /** - * Gets the column alias. - */ - public function getColumnAlias( - string $columnName, - int $counter, - AbstractPlatform $platform, - ClassMetadata|null $class = null, - ): string; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEmbeddedProperty.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEmbeddedProperty.php deleted file mode 100644 index 27aabad..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEmbeddedProperty.php +++ /dev/null @@ -1,61 +0,0 @@ -getDeclaringClass()->name, $childProperty->getName()); - } - - public function getValue(object|null $object = null): mixed - { - $embeddedObject = $this->parentProperty->getValue($object); - - if ($embeddedObject === null) { - return null; - } - - return $this->childProperty->getValue($embeddedObject); - } - - public function setValue(mixed $object, mixed $value = null): void - { - $embeddedObject = $this->parentProperty->getValue($object); - - if ($embeddedObject === null) { - $this->instantiator ??= new Instantiator(); - - $embeddedObject = $this->instantiator->instantiate($this->embeddedClass); - - $this->parentProperty->setValue($object, $embeddedObject); - } - - $this->childProperty->setValue($embeddedObject, $value); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEnumProperty.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEnumProperty.php deleted file mode 100644 index 0ebd978..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionEnumProperty.php +++ /dev/null @@ -1,87 +0,0 @@ - $enumType */ - public function __construct( - private readonly ReflectionProperty $originalReflectionProperty, - private readonly string $enumType, - ) { - parent::__construct( - $originalReflectionProperty->class, - $originalReflectionProperty->name, - ); - } - - public function getValue(object|null $object = null): int|string|array|null - { - if ($object === null) { - return null; - } - - $enum = $this->originalReflectionProperty->getValue($object); - - if ($enum === null) { - return null; - } - - if (is_array($enum)) { - return array_map( - static fn (BackedEnum $item): int|string => $item->value, - $enum, - ); - } - - return $enum->value; - } - - /** - * @param object $object - * @param int|string|int[]|string[]|BackedEnum|BackedEnum[]|null $value - */ - public function setValue(mixed $object, mixed $value = null): void - { - if ($value !== null) { - if (is_array($value)) { - $value = array_map(fn (int|string|BackedEnum $item): BackedEnum => $this->initializeEnumValue($object, $item), $value); - } else { - $value = $this->initializeEnumValue($object, $value); - } - } - - $this->originalReflectionProperty->setValue($object, $value); - } - - private function initializeEnumValue(object $object, int|string|BackedEnum $value): BackedEnum - { - if ($value instanceof BackedEnum) { - return $value; - } - - $enumType = $this->enumType; - - try { - return $enumType::from($value); - } catch (ValueError $e) { - throw MappingException::invalidEnumValue( - $object::class, - $this->originalReflectionProperty->name, - (string) $value, - $enumType, - $e, - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionReadonlyProperty.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionReadonlyProperty.php deleted file mode 100644 index 13e9f6d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ReflectionReadonlyProperty.php +++ /dev/null @@ -1,49 +0,0 @@ -isReadOnly()) { - throw new InvalidArgumentException('Given property is not readonly.'); - } - - parent::__construct($wrappedProperty->class, $wrappedProperty->name); - } - - public function getValue(object|null $object = null): mixed - { - return $this->wrappedProperty->getValue(...func_get_args()); - } - - public function setValue(mixed $objectOrValue, mixed $value = null): void - { - if (func_num_args() < 2 || $objectOrValue === null || ! $this->isInitialized($objectOrValue)) { - $this->wrappedProperty->setValue(...func_get_args()); - - return; - } - - assert(is_object($objectOrValue)); - - if (parent::getValue($objectOrValue) !== $value) { - throw new LogicException(sprintf('Attempting to change readonly property %s::$%s.', $this->class, $this->name)); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/SequenceGenerator.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/SequenceGenerator.php deleted file mode 100644 index 6c06e84..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/SequenceGenerator.php +++ /dev/null @@ -1,18 +0,0 @@ -|null $indexes - * @param array|null $uniqueConstraints - * @param array $options - */ - public function __construct( - public readonly string|null $name = null, - public readonly string|null $schema = null, - public readonly array|null $indexes = null, - public readonly array|null $uniqueConstraints = null, - public readonly array $options = [], - ) { - if ($this->indexes !== null) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11357', - 'Providing the property $indexes on %s does not have any effect and will be removed in Doctrine ORM 4.0. Please use the %s attribute instead.', - self::class, - Index::class, - ); - } - - if ($this->uniqueConstraints !== null) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11357', - 'Providing the property $uniqueConstraints on %s does not have any effect and will be removed in Doctrine ORM 4.0. Please use the %s attribute instead.', - self::class, - UniqueConstraint::class, - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMapping.php deleted file mode 100644 index fb1fdf3..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMapping.php +++ /dev/null @@ -1,16 +0,0 @@ -indexBy() */ - public function isIndexed(): bool; - - public function indexBy(): string; - - /** @return array */ - public function orderBy(): array; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMappingImplementation.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMappingImplementation.php deleted file mode 100644 index d2ad759..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyAssociationMappingImplementation.php +++ /dev/null @@ -1,69 +0,0 @@ - - */ - public array $orderBy = []; - - /** @return array */ - final public function orderBy(): array - { - return $this->orderBy; - } - - /** @phpstan-assert-if-true !null $this->indexBy */ - final public function isIndexed(): bool - { - return $this->indexBy !== null; - } - - final public function indexBy(): string - { - if (! $this->isIndexed()) { - throw new LogicException(sprintf( - 'This mapping is not indexed. Use %s::isIndexed() to check that before calling %s.', - self::class, - __METHOD__, - )); - } - - return $this->indexBy; - } - - /** @return list */ - public function __sleep(): array - { - $serialized = parent::__sleep(); - - if ($this->indexBy !== null) { - $serialized[] = 'indexBy'; - } - - if ($this->orderBy !== []) { - $serialized[] = 'orderBy'; - } - - return $serialized; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyInverseSideMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyInverseSideMapping.php deleted file mode 100644 index a092ebe..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToManyInverseSideMapping.php +++ /dev/null @@ -1,10 +0,0 @@ -, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * } $mappingArray - */ - public static function fromMappingArrayAndName( - array $mappingArray, - string $name, - ): static { - $mapping = static::fromMappingArray($mappingArray); - - if (isset($mapping->id) && $mapping->id === true) { - throw MappingException::illegalInverseIdentifierAssociation($name, $mapping->fieldName); - } - - if ($mapping->orphanRemoval) { - if (! $mapping->isCascadeRemove()) { - $mapping->cascade[] = 'remove'; - } - - $mapping->unique = null; - } - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneOwningSideMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneOwningSideMapping.php deleted file mode 100644 index 718679f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/ToOneOwningSideMapping.php +++ /dev/null @@ -1,216 +0,0 @@ - */ - public array $sourceToTargetKeyColumns = []; - - /** @var array */ - public array $targetToSourceKeyColumns = []; - - /** @var list */ - public array $joinColumns = []; - - /** @var array */ - public array $joinColumnFieldNames = []; - - /** - * @param array $mappingArray - * @phpstan-param array{ - * fieldName: string, - * sourceEntity: class-string, - * targetEntity: class-string, - * cascade?: list<'persist'|'remove'|'detach'|'refresh'|'all'>, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * joinColumns?: mixed[]|null, - * } $mappingArray - */ - public static function fromMappingArray(array $mappingArray): static - { - $joinColumns = $mappingArray['joinColumns'] ?? []; - unset($mappingArray['joinColumns']); - - $instance = parent::fromMappingArray($mappingArray); - assert($instance->isToOneOwningSide()); - - foreach ($joinColumns as $column) { - $instance->joinColumns[] = JoinColumnMapping::fromMappingArray($column); - } - - if ($instance->orphanRemoval) { - if (! $instance->isCascadeRemove()) { - $instance->cascade[] = 'remove'; - } - - $instance->unique = null; - } - - return $instance; - } - - /** - * @param mixed[] $mappingArray - * @param class-string $name - * @phpstan-param array{ - * fieldName: string, - * sourceEntity: class-string, - * targetEntity: class-string, - * cascade?: list<'persist'|'remove'|'detach'|'refresh'|'all'>, - * fetch?: ClassMetadata::FETCH_*|null, - * inherited?: class-string|null, - * declared?: class-string|null, - * cache?: array|null, - * id?: bool|null, - * isOnDeleteCascade?: bool|null, - * originalClass?: class-string|null, - * originalField?: string|null, - * orphanRemoval?: bool, - * unique?: bool|null, - * joinTable?: mixed[]|null, - * type?: int, - * isOwningSide: bool, - * joinColumns?: mixed[]|null, - * } $mappingArray - */ - public static function fromMappingArrayAndName( - array $mappingArray, - NamingStrategy $namingStrategy, - string $name, - array|null $table, - bool $isInheritanceTypeSingleTable, - ): static { - if (isset($mappingArray['joinColumns'])) { - foreach ($mappingArray['joinColumns'] as $index => $joinColumn) { - if (empty($joinColumn['name'])) { - $mappingArray['joinColumns'][$index]['name'] = $namingStrategy->joinColumnName($mappingArray['fieldName'], $name); - } - - if (empty($joinColumn['referencedColumnName'])) { - $mappingArray['joinColumns'][$index]['referencedColumnName'] = $namingStrategy->referenceColumnName(); - } - } - } - - $mapping = static::fromMappingArray($mappingArray); - - assert($mapping->isToOneOwningSide()); - if (empty($mapping->joinColumns)) { - // Apply default join column - $mapping->joinColumns = [ - JoinColumnMapping::fromMappingArray([ - 'name' => $namingStrategy->joinColumnName($mapping->fieldName, $name), - 'referencedColumnName' => $namingStrategy->referenceColumnName(), - ]), - ]; - } - - $uniqueConstraintColumns = []; - - foreach ($mapping->joinColumns as $joinColumn) { - if ($mapping->isOneToOne() && ! $isInheritanceTypeSingleTable) { - if (count($mapping->joinColumns) === 1) { - if (empty($mapping->id)) { - $joinColumn->unique = true; - } - } else { - $uniqueConstraintColumns[] = $joinColumn->name; - } - } - - if (empty($joinColumn->referencedColumnName)) { - $joinColumn->referencedColumnName = $namingStrategy->referenceColumnName(); - } - - if ($joinColumn->name[0] === '`') { - $joinColumn->name = trim($joinColumn->name, '`'); - $joinColumn->quoted = true; - } - - if ($joinColumn->referencedColumnName[0] === '`') { - $joinColumn->referencedColumnName = trim($joinColumn->referencedColumnName, '`'); - $joinColumn->quoted = true; - } - - $mapping->sourceToTargetKeyColumns[$joinColumn->name] = $joinColumn->referencedColumnName; - $mapping->joinColumnFieldNames[$joinColumn->name] = $joinColumn->fieldName ?? $joinColumn->name; - } - - if ($uniqueConstraintColumns) { - if (! $table) { - throw new RuntimeException('ClassMetadata::setTable() has to be called before defining a one to one relationship.'); - } - - $table['uniqueConstraints'][$mapping->fieldName . '_uniq'] = ['columns' => $uniqueConstraintColumns]; - } - - $mapping->targetToSourceKeyColumns = array_flip($mapping->sourceToTargetKeyColumns); - - return $mapping; - } - - public function offsetSet(mixed $offset, mixed $value): void - { - if ($offset === 'joinColumns') { - $joinColumns = []; - foreach ($value as $column) { - $joinColumns[] = JoinColumnMapping::fromMappingArray($column); - } - - $this->joinColumns = $joinColumns; - - return; - } - - parent::offsetSet($offset, $value); - } - - /** @return array */ - public function toArray(): array - { - $array = parent::toArray(); - - $joinColumns = []; - foreach ($array['joinColumns'] as $column) { - $joinColumns[] = (array) $column; - } - - $array['joinColumns'] = $joinColumns; - - return $array; - } - - /** @return list */ - public function __sleep(): array - { - return [ - ...parent::__sleep(), - 'joinColumns', - 'joinColumnFieldNames', - 'sourceToTargetKeyColumns', - 'targetToSourceKeyColumns', - ]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/TypedFieldMapper.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/TypedFieldMapper.php deleted file mode 100644 index 2db9e90..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/TypedFieldMapper.php +++ /dev/null @@ -1,20 +0,0 @@ -, type?: string} $mapping The field mapping to validate & complete. - * - * @return array{fieldName: string, enumType?: class-string, type?: string} The updated mapping. - */ - public function validateAndComplete(array $mapping, ReflectionProperty $field): array; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/UnderscoreNamingStrategy.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/UnderscoreNamingStrategy.php deleted file mode 100644 index cedc150..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/UnderscoreNamingStrategy.php +++ /dev/null @@ -1,108 +0,0 @@ -case; - } - - /** - * Sets string case CASE_LOWER | CASE_UPPER. - * Alphabetic characters converted to lowercase or uppercase. - */ - public function setCase(int $case): void - { - $this->case = $case; - } - - public function classToTableName(string $className): string - { - if (str_contains($className, '\\')) { - $className = substr($className, strrpos($className, '\\') + 1); - } - - return $this->underscore($className); - } - - public function propertyToColumnName(string $propertyName, string $className): string - { - return $this->underscore($propertyName); - } - - public function embeddedFieldToColumnName( - string $propertyName, - string $embeddedColumnName, - string $className, - string $embeddedClassName, - ): string { - return $this->underscore($propertyName) . '_' . $embeddedColumnName; - } - - public function referenceColumnName(): string - { - return $this->case === CASE_UPPER ? 'ID' : 'id'; - } - - public function joinColumnName(string $propertyName, string $className): string - { - return $this->underscore($propertyName) . '_' . $this->referenceColumnName(); - } - - public function joinTableName( - string $sourceEntity, - string $targetEntity, - string $propertyName, - ): string { - return $this->classToTableName($sourceEntity) . '_' . $this->classToTableName($targetEntity); - } - - public function joinKeyColumnName( - string $entityName, - string|null $referencedColumnName, - ): string { - return $this->classToTableName($entityName) . '_' . - ($referencedColumnName ?: $this->referenceColumnName()); - } - - private function underscore(string $string): string - { - $string = preg_replace('/(?<=[a-z0-9])([A-Z])/', '_$1', $string); - - if ($this->case === CASE_UPPER) { - return strtoupper($string); - } - - return strtolower($string); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/UniqueConstraint.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/UniqueConstraint.php deleted file mode 100644 index 3180be0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/UniqueConstraint.php +++ /dev/null @@ -1,24 +0,0 @@ -|null $columns - * @param array|null $fields - * @param array|null $options - */ - public function __construct( - public readonly string|null $name = null, - public readonly array|null $columns = null, - public readonly array|null $fields = null, - public readonly array|null $options = null, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Version.php b/projects/priceservice/vendor/doctrine/orm/src/Mapping/Version.php deleted file mode 100644 index 7252e05..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Mapping/Version.php +++ /dev/null @@ -1,12 +0,0 @@ -sql = $sql; - - return $this; - } - - public function getSQL(): string - { - return $this->sql; - } - - protected function _doExecute(): Result|int - { - $parameters = []; - $types = []; - - foreach ($this->getParameters() as $parameter) { - $name = $parameter->getName(); - - if ($parameter->typeWasSpecified()) { - $parameters[$name] = $parameter->getValue(); - $types[$name] = $parameter->getType(); - - continue; - } - - $value = $this->processParameterValue($parameter->getValue()); - $type = $parameter->getValue() === $value - ? $parameter->getType() - : ParameterTypeInferer::inferType($value); - - $parameters[$name] = $value; - $types[$name] = $type; - } - - if ($parameters && is_int(key($parameters))) { - ksort($parameters); - ksort($types); - - $parameters = array_values($parameters); - $types = array_values($types); - } - - return $this->em->getConnection()->executeQuery( - $this->sql, - $parameters, - $types, - $this->queryCacheProfile, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/NoResultException.php b/projects/priceservice/vendor/doctrine/orm/src/NoResultException.php deleted file mode 100644 index 6ecabae..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/NoResultException.php +++ /dev/null @@ -1,16 +0,0 @@ - $newEntitiesWithAssociations */ - public static function newEntitiesFoundThroughRelationships(array $newEntitiesWithAssociations): self - { - $errorMessages = array_map( - static function (array $newEntityWithAssociation): string { - [$associationMapping, $entity] = $newEntityWithAssociation; - - return self::newEntityFoundThroughRelationshipMessage($associationMapping, $entity); - }, - $newEntitiesWithAssociations, - ); - - if (count($errorMessages) === 1) { - return new self(reset($errorMessages)); - } - - return new self( - 'Multiple non-persisted new entities were found through the given association graph:' - . "\n\n * " - . implode("\n * ", $errorMessages), - ); - } - - public static function newEntityFoundThroughRelationship(AssociationMapping $associationMapping, object $entry): self - { - return new self(self::newEntityFoundThroughRelationshipMessage($associationMapping, $entry)); - } - - public static function detachedEntityFoundThroughRelationship(AssociationMapping $assoc, object $entry): self - { - return new self('A detached entity of type ' . $assoc->targetEntity . ' (' . self::objToStr($entry) . ') ' - . " was found through the relationship '" . $assoc->sourceEntity . '#' . $assoc->fieldName . "' " - . 'during cascading a persist operation.'); - } - - public static function entityNotManaged(object $entity): self - { - return new self('Entity ' . self::objToStr($entity) . ' is not managed. An entity is managed if its fetched ' . - 'from the database or registered as new through EntityManager#persist'); - } - - public static function entityHasNoIdentity(object $entity, string $operation): self - { - return new self('Entity has no identity, therefore ' . $operation . ' cannot be performed. ' . self::objToStr($entity)); - } - - public static function entityIsRemoved(object $entity, string $operation): self - { - return new self('Entity is removed, therefore ' . $operation . ' cannot be performed. ' . self::objToStr($entity)); - } - - public static function detachedEntityCannot(object $entity, string $operation): self - { - return new self('Detached entity ' . self::objToStr($entity) . ' cannot be ' . $operation); - } - - public static function invalidObject(string $context, mixed $given, int $parameterIndex = 1): self - { - return new self($context . ' expects parameter ' . $parameterIndex . - ' to be an entity object, ' . gettype($given) . ' given.'); - } - - public static function invalidCompositeIdentifier(): self - { - return new self('Binding an entity with a composite primary key to a query is not supported. ' . - 'You should split the parameter into the explicit fields and bind them separately.'); - } - - public static function invalidIdentifierBindingEntity(string $class): self - { - return new self(sprintf( - <<<'EXCEPTION' -Binding entities to query parameters only allowed for entities that have an identifier. -Class "%s" does not have an identifier. -EXCEPTION - , - $class, - )); - } - - public static function invalidAssociation(ClassMetadata $targetClass, AssociationMapping $assoc, mixed $actualValue): self - { - $expectedType = $targetClass->getName(); - - return new self(sprintf( - 'Expected value of type "%s" for association field "%s#$%s", got "%s" instead.', - $expectedType, - $assoc->sourceEntity, - $assoc->fieldName, - get_debug_type($actualValue), - )); - } - - public static function invalidAutoGenerateMode(mixed $value): self - { - return new self(sprintf('Invalid auto generate mode "%s" given.', is_scalar($value) ? (string) $value : get_debug_type($value))); - } - - public static function missingPrimaryKeyValue(string $className, string $idField): self - { - return new self(sprintf('Missing value for primary key %s on %s', $idField, $className)); - } - - public static function proxyDirectoryRequired(): self - { - return new self('You must configure a proxy directory. See docs for details'); - } - - public static function proxyNamespaceRequired(): self - { - return new self('You must configure a proxy namespace'); - } - - public static function proxyDirectoryNotWritable(string $proxyDirectory): self - { - return new self(sprintf('Your proxy directory "%s" must be writable', $proxyDirectory)); - } - - /** - * Helper method to show an object as string. - */ - private static function objToStr(object $obj): string - { - return $obj instanceof Stringable ? (string) $obj : get_debug_type($obj) . '@' . spl_object_id($obj); - } - - private static function newEntityFoundThroughRelationshipMessage(AssociationMapping $associationMapping, object $entity): string - { - return 'A new entity was found through the relationship \'' - . $associationMapping->sourceEntity . '#' . $associationMapping->fieldName . '\' that was not' - . ' configured to cascade persist operations for entity: ' . self::objToStr($entity) . '.' - . ' To solve this issue: Either explicitly call EntityManager#persist()' - . ' on this unknown entity or configure cascade persist' - . ' this association in the mapping for example #[ORM\ManyToOne(..., cascade: [\'persist\'])].' - . ($entity instanceof Stringable - ? '' - : ' If you cannot find out which entity causes the problem implement \'' - . $associationMapping->targetEntity . '#__toString()\' to get a clue.' - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/ORMSetup.php b/projects/priceservice/vendor/doctrine/orm/src/ORMSetup.php deleted file mode 100644 index 458844b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/ORMSetup.php +++ /dev/null @@ -1,213 +0,0 @@ -= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - '%s is deprecated in favor of %s, and will be removed in 4.0.', - __METHOD__, - self::class . '::createAttributeMetadataConfig()', - ); - } - - $config = self::createConfiguration($isDevMode, $proxyDir, $cache); - $config->setMetadataDriverImpl(new AttributeDriver($paths)); - - return $config; - } - - /** - * Creates a configuration with an attribute metadata driver. - * - * @param string[] $paths - */ - public static function createAttributeMetadataConfig( - array $paths, - bool $isDevMode = false, - string|null $cacheNamespaceSeed = null, - CacheItemPoolInterface|null $cache = null, - ): Configuration { - $config = self::createConfig($isDevMode, $cacheNamespaceSeed, $cache); - $config->setMetadataDriverImpl(new AttributeDriver($paths)); - - return $config; - } - - /** - * Creates a configuration with an XML metadata driver. - * - * @param string[] $paths - */ - public static function createXMLMetadataConfiguration( - array $paths, - bool $isDevMode = false, - string|null $proxyDir = null, - CacheItemPoolInterface|null $cache = null, - bool $isXsdValidationEnabled = true, - ): Configuration { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - '%s is deprecated in favor of %s, and will be removed in 4.0.', - __METHOD__, - self::class . '::createXMLMetadataConfig()', - ); - } - - $config = self::createConfiguration($isDevMode, $proxyDir, $cache); - $config->setMetadataDriverImpl(new XmlDriver($paths, XmlDriver::DEFAULT_FILE_EXTENSION, $isXsdValidationEnabled)); - - return $config; - } - - /** - * Creates a configuration with an XML metadata driver. - * - * @param string[] $paths - */ - public static function createXMLMetadataConfig( - array $paths, - bool $isDevMode = false, - string|null $cacheNamespaceSeed = null, - CacheItemPoolInterface|null $cache = null, - bool $isXsdValidationEnabled = true, - ): Configuration { - $config = self::createConfig($isDevMode, $cacheNamespaceSeed, $cache); - $config->setMetadataDriverImpl(new XmlDriver( - $paths, - XmlDriver::DEFAULT_FILE_EXTENSION, - $isXsdValidationEnabled, - )); - - return $config; - } - - /** - * Creates a configuration without a metadata driver. - */ - public static function createConfiguration( - bool $isDevMode = false, - string|null $proxyDir = null, - CacheItemPoolInterface|null $cache = null, - ): Configuration { - if (PHP_VERSION_ID >= 80400 && $proxyDir !== null) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - '%s is deprecated in favor of %s, and will be removed in 4.0.', - __METHOD__, - self::class . '::createConfig()', - ); - } - - $proxyDir = $proxyDir ?: sys_get_temp_dir(); - - $cache = self::createCacheInstance($isDevMode, $proxyDir, $cache); - - $config = new Configuration(); - - $config->setMetadataCache($cache); - $config->setQueryCache($cache); - $config->setResultCache($cache); - $config->setProxyDir($proxyDir); - $config->setProxyNamespace('DoctrineProxies'); - $config->setAutoGenerateProxyClasses($isDevMode); - - return $config; - } - - public static function createConfig( - bool $isDevMode = false, - string|null $cacheNamespaceSeed = null, - CacheItemPoolInterface|null $cache = null, - ): Configuration { - $cache = self::createCacheInstance($isDevMode, $cacheNamespaceSeed, $cache); - $config = new Configuration(); - $config->setMetadataCache($cache); - $config->setQueryCache($cache); - $config->setResultCache($cache); - - return $config; - } - - private static function createCacheInstance( - bool $isDevMode, - string|null $cacheNamespaceSeed, - CacheItemPoolInterface|null $cache, - ): CacheItemPoolInterface { - if ($cache !== null) { - return $cache; - } - - if (! class_exists(ArrayAdapter::class)) { - throw new RuntimeException( - 'The Doctrine setup tool cannot configure caches without symfony/cache.' - . ' Please add symfony/cache as explicit dependency or pass your own cache implementation.', - ); - } - - if ($isDevMode) { - return new ArrayAdapter(); - } - - $namespace = 'dc2_' . md5($cacheNamespaceSeed ?? 'default'); - - if (extension_loaded('apcu') && apcu_enabled()) { - return new ApcuAdapter($namespace); - } - - if (MemcachedAdapter::isSupported()) { - return new MemcachedAdapter(MemcachedAdapter::createConnection('memcached://127.0.0.1'), $namespace); - } - - if (extension_loaded('redis')) { - $redis = new Redis(); - $redis->connect('127.0.0.1'); - - return new RedisAdapter($redis, $namespace); - } - - return new ArrayAdapter(); - } - - private function __construct() - { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/OptimisticLockException.php b/projects/priceservice/vendor/doctrine/orm/src/OptimisticLockException.php deleted file mode 100644 index f84e134..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/OptimisticLockException.php +++ /dev/null @@ -1,55 +0,0 @@ -entity; - } - - /** @param object|class-string $entity */ - public static function lockFailed(object|string $entity): self - { - return new self('The optimistic lock on an entity failed.', $entity); - } - - public static function lockFailedVersionMismatch( - object $entity, - int|string|DateTimeInterface $expectedLockVersion, - int|string|DateTimeInterface $actualLockVersion, - ): self { - $expectedLockVersion = $expectedLockVersion instanceof DateTimeInterface ? $expectedLockVersion->getTimestamp() : $expectedLockVersion; - $actualLockVersion = $actualLockVersion instanceof DateTimeInterface ? $actualLockVersion->getTimestamp() : $actualLockVersion; - - return new self('The optimistic lock failed, version ' . $expectedLockVersion . ' was expected, but is actually ' . $actualLockVersion, $entity); - } - - public static function notVersioned(string $entityName): self - { - return new self('Cannot obtain optimistic lock on unversioned entity ' . $entityName, null); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/PersistentCollection.php b/projects/priceservice/vendor/doctrine/orm/src/PersistentCollection.php deleted file mode 100644 index 0a0a237..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/PersistentCollection.php +++ /dev/null @@ -1,666 +0,0 @@ - - * @template-implements Selectable - */ -final class PersistentCollection extends AbstractLazyCollection implements Selectable -{ - /** - * A snapshot of the collection at the moment it was fetched from the database. - * This is used to create a diff of the collection at commit time. - * - * @phpstan-var array - */ - private array $snapshot = []; - - /** - * The entity that owns this collection. - */ - private object|null $owner = null; - - /** - * The association mapping the collection belongs to. - * This is currently either a OneToManyMapping or a ManyToManyMapping. - * - * @var (AssociationMapping&ToManyAssociationMapping)|null - */ - private AssociationMapping|null $association = null; - - /** - * The name of the field on the target entities that points to the owner - * of the collection. This is only set if the association is bi-directional. - */ - private string|null $backRefFieldName = null; - - /** - * Whether the collection is dirty and needs to be synchronized with the database - * when the UnitOfWork that manages its persistent state commits. - */ - private bool $isDirty = false; - - /** - * Creates a new persistent collection. - * - * @param EntityManagerInterface $em The EntityManager the collection will be associated with. - * @param ClassMetadata $typeClass The class descriptor of the entity type of this collection. - * @phpstan-param Collection&Selectable $collection The collection elements. - */ - public function __construct( - private EntityManagerInterface|null $em, - private readonly ClassMetadata|null $typeClass, - Collection $collection, - ) { - $this->collection = $collection; - $this->initialized = true; - } - - /** - * INTERNAL: - * Sets the collection's owning entity together with the AssociationMapping that - * describes the association between the owner and the elements of the collection. - */ - public function setOwner(object $entity, AssociationMapping&ToManyAssociationMapping $assoc): void - { - $this->owner = $entity; - $this->association = $assoc; - $this->backRefFieldName = $assoc->isOwningSide() ? $assoc->inversedBy : $assoc->mappedBy; - } - - /** - * INTERNAL: - * Gets the collection owner. - */ - public function getOwner(): object|null - { - return $this->owner; - } - - public function getTypeClass(): ClassMetadata - { - assert($this->typeClass !== null); - - return $this->typeClass; - } - - private function getUnitOfWork(): UnitOfWork - { - assert($this->em !== null); - - return $this->em->getUnitOfWork(); - } - - /** - * INTERNAL: - * Adds an element to a collection during hydration. This will automatically - * complete bidirectional associations in the case of a one-to-many association. - */ - public function hydrateAdd(mixed $element): void - { - $this->unwrap()->add($element); - - // If _backRefFieldName is set and its a one-to-many association, - // we need to set the back reference. - if ($this->backRefFieldName && $this->getMapping()->isOneToMany()) { - assert($this->typeClass !== null); - // Set back reference to owner - $this->typeClass->propertyAccessors[$this->backRefFieldName]->setValue( - $element, - $this->owner, - ); - - $this->getUnitOfWork()->setOriginalEntityProperty( - spl_object_id($element), - $this->backRefFieldName, - $this->owner, - ); - } - } - - /** - * INTERNAL: - * Sets a keyed element in the collection during hydration. - */ - public function hydrateSet(mixed $key, mixed $element): void - { - $this->unwrap()->set($key, $element); - - // If _backRefFieldName is set, then the association is bidirectional - // and we need to set the back reference. - if ($this->backRefFieldName && $this->getMapping()->isOneToMany()) { - assert($this->typeClass !== null); - // Set back reference to owner - $this->typeClass->propertyAccessors[$this->backRefFieldName]->setValue( - $element, - $this->owner, - ); - } - } - - /** - * Initializes the collection by loading its contents from the database - * if the collection is not yet initialized. - */ - public function initialize(): void - { - if ($this->initialized || ! $this->association) { - return; - } - - $this->doInitialize(); - - $this->initialized = true; - } - - /** - * INTERNAL: - * Tells this collection to take a snapshot of its current state. - */ - public function takeSnapshot(): void - { - $this->snapshot = $this->unwrap()->toArray(); - $this->isDirty = false; - } - - /** - * INTERNAL: - * Returns the last snapshot of the elements in the collection. - * - * @phpstan-return array The last snapshot of the elements. - */ - public function getSnapshot(): array - { - return $this->snapshot; - } - - /** - * INTERNAL: - * getDeleteDiff - * - * @return mixed[] - */ - public function getDeleteDiff(): array - { - $collectionItems = $this->unwrap()->toArray(); - - return array_values(array_diff_key( - array_combine(array_map('spl_object_id', $this->snapshot), $this->snapshot), - array_combine(array_map('spl_object_id', $collectionItems), $collectionItems), - )); - } - - /** - * INTERNAL: - * getInsertDiff - * - * @return mixed[] - */ - public function getInsertDiff(): array - { - $collectionItems = $this->unwrap()->toArray(); - - return array_values(array_diff_key( - array_combine(array_map('spl_object_id', $collectionItems), $collectionItems), - array_combine(array_map('spl_object_id', $this->snapshot), $this->snapshot), - )); - } - - /** INTERNAL: Gets the association mapping of the collection. */ - public function getMapping(): AssociationMapping&ToManyAssociationMapping - { - if ($this->association === null) { - throw new UnexpectedValueException('The underlying association mapping is null although it should not be'); - } - - return $this->association; - } - - /** - * Marks this collection as changed/dirty. - */ - private function changed(): void - { - if ($this->isDirty) { - return; - } - - $this->isDirty = true; - } - - /** - * Gets a boolean flag indicating whether this collection is dirty which means - * its state needs to be synchronized with the database. - */ - public function isDirty(): bool - { - return $this->isDirty; - } - - /** - * Sets a boolean flag, indicating whether this collection is dirty. - */ - public function setDirty(bool $dirty): void - { - $this->isDirty = $dirty; - } - - /** - * Sets the initialized flag of the collection, forcing it into that state. - */ - public function setInitialized(bool $bool): void - { - $this->initialized = $bool; - } - - public function remove(string|int $key): mixed - { - // TODO: If the keys are persistent as well (not yet implemented) - // and the collection is not initialized and orphanRemoval is - // not used we can issue a straight SQL delete/update on the - // association (table). Without initializing the collection. - $removed = parent::remove($key); - - if (! $removed) { - return $removed; - } - - $this->changed(); - - if ( - $this->association !== null && - $this->association->isToMany() && - $this->owner && - $this->getMapping()->orphanRemoval - ) { - $this->getUnitOfWork()->scheduleOrphanRemoval($removed); - } - - return $removed; - } - - public function removeElement(mixed $element): bool - { - $removed = parent::removeElement($element); - - if (! $removed) { - return $removed; - } - - $this->changed(); - - if ( - $this->association !== null && - $this->association->isToMany() && - $this->owner && - $this->getMapping()->orphanRemoval - ) { - $this->getUnitOfWork()->scheduleOrphanRemoval($element); - } - - return $removed; - } - - public function containsKey(mixed $key): bool - { - if ( - ! $this->initialized && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY - && isset($this->getMapping()->indexBy) - ) { - $persister = $this->getUnitOfWork()->getCollectionPersister($this->getMapping()); - - return $this->unwrap()->containsKey($key) || $persister->containsKey($this, $key); - } - - return parent::containsKey($key); - } - - public function contains(mixed $element): bool - { - if (! $this->initialized && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY) { - $persister = $this->getUnitOfWork()->getCollectionPersister($this->getMapping()); - - return $this->unwrap()->contains($element) || $persister->contains($this, $element); - } - - return parent::contains($element); - } - - public function get(string|int $key): mixed - { - if ( - ! $this->initialized - && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY - && isset($this->getMapping()->indexBy) - ) { - assert($this->em !== null); - assert($this->typeClass !== null); - if (! $this->typeClass->isIdentifierComposite && $this->typeClass->isIdentifier($this->getMapping()->indexBy)) { - return $this->em->find($this->typeClass->name, $key); - } - - return $this->getUnitOfWork()->getCollectionPersister($this->getMapping())->get($this, $key); - } - - return parent::get($key); - } - - public function count(): int - { - if (! $this->initialized && $this->association !== null && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY) { - $persister = $this->getUnitOfWork()->getCollectionPersister($this->association); - - return $persister->count($this) + ($this->isDirty ? $this->unwrap()->count() : 0); - } - - return parent::count(); - } - - public function set(string|int $key, mixed $value): void - { - parent::set($key, $value); - - $this->changed(); - - if (is_object($value) && $this->em) { - $this->getUnitOfWork()->cancelOrphanRemoval($value); - } - } - - public function add(mixed $value): bool - { - $this->unwrap()->add($value); - - $this->changed(); - - if (is_object($value) && $this->em) { - $this->getUnitOfWork()->cancelOrphanRemoval($value); - } - - return true; - } - - public function offsetExists(mixed $offset): bool - { - return $this->containsKey($offset); - } - - public function offsetGet(mixed $offset): mixed - { - return $this->get($offset); - } - - public function offsetSet(mixed $offset, mixed $value): void - { - if (! isset($offset)) { - $this->add($value); - - return; - } - - $this->set($offset, $value); - } - - public function offsetUnset(mixed $offset): void - { - $this->remove($offset); - } - - public function isEmpty(): bool - { - return $this->unwrap()->isEmpty() && $this->count() === 0; - } - - public function clear(): void - { - if ($this->initialized && $this->isEmpty()) { - $this->unwrap()->clear(); - - return; - } - - $uow = $this->getUnitOfWork(); - $association = $this->getMapping(); - - if ( - $association->isToMany() && - $association->orphanRemoval && - $this->owner - ) { - // we need to initialize here, as orphan removal acts like implicit cascadeRemove, - // hence for event listeners we need the objects in memory. - $this->initialize(); - - foreach ($this->unwrap() as $element) { - $uow->scheduleOrphanRemoval($element); - } - } - - $this->unwrap()->clear(); - - $this->initialized = true; // direct call, {@link initialize()} is too expensive - - if ($association->isOwningSide() && $this->owner) { - $this->changed(); - - $uow->scheduleCollectionDeletion($this); - - $this->takeSnapshot(); - } - } - - /** - * Called by PHP when this collection is serialized. Ensures that only the - * elements are properly serialized. - * - * Internal note: Tried to implement Serializable first but that did not work well - * with circular references. This solution seems simpler and works well. - * - * @return string[] - * @phpstan-return array{0: string, 1: string} - */ - public function __sleep(): array - { - return ['collection', 'initialized']; - } - - public function __wakeup(): void - { - $this->em = null; - } - - /** - * {@inheritDoc} - */ - public function first() - { - if (! $this->initialized && ! $this->isDirty && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY) { - $persister = $this->getUnitOfWork()->getCollectionPersister($this->getMapping()); - - return array_values($persister->slice($this, 0, 1))[0] ?? false; - } - - return parent::first(); - } - - /** - * Extracts a slice of $length elements starting at position $offset from the Collection. - * - * If $length is null it returns all elements from $offset to the end of the Collection. - * Keys have to be preserved by this method. Calling this method will only return the - * selected slice and NOT change the elements contained in the collection slice is called on. - * - * @return mixed[] - * @phpstan-return array - */ - public function slice(int $offset, int|null $length = null): array - { - if (! $this->initialized && ! $this->isDirty && $this->getMapping()->fetch === ClassMetadata::FETCH_EXTRA_LAZY) { - $persister = $this->getUnitOfWork()->getCollectionPersister($this->getMapping()); - - return $persister->slice($this, $offset, $length); - } - - return parent::slice($offset, $length); - } - - /** - * Cleans up internal state of cloned persistent collection. - * - * The following problems have to be prevented: - * 1. Added entities are added to old PC - * 2. New collection is not dirty, if reused on other entity nothing - * changes. - * 3. Snapshot leads to invalid diffs being generated. - * 4. Lazy loading grabs entities from old owner object. - * 5. New collection is connected to old owner and leads to duplicate keys. - */ - public function __clone() - { - if (is_object($this->collection)) { - $this->collection = clone $this->collection; - } - - $this->initialize(); - - $this->owner = null; - $this->snapshot = []; - - $this->changed(); - } - - /** - * Selects all elements from a selectable that match the expression and - * return a new collection containing these elements. - * - * @phpstan-return Collection - * - * @throws RuntimeException - */ - public function matching(Criteria $criteria): Collection - { - if ($this->isDirty) { - $this->initialize(); - } - - if ($this->initialized) { - return $this->unwrap()->matching($criteria); - } - - $association = $this->getMapping(); - if ($association->isManyToMany()) { - $persister = $this->getUnitOfWork()->getCollectionPersister($association); - - return new ArrayCollection($persister->loadCriteria($this, $criteria)); - } - - $builder = Criteria::expr(); - $ownerExpression = $builder->eq($this->backRefFieldName, $this->owner); - $expression = $criteria->getWhereExpression(); - $expression = $expression ? $builder->andX($expression, $ownerExpression) : $ownerExpression; - - $criteria = clone $criteria; - $criteria->where($expression); - $criteria->orderBy( - $criteria->orderings() ?: array_map( - static fn (string $order): Order => Order::from(strtoupper($order)), - $association->orderBy(), - ), - ); - - $persister = $this->getUnitOfWork()->getEntityPersister($association->targetEntity); - - return $association->fetch === ClassMetadata::FETCH_EXTRA_LAZY - ? new LazyCriteriaCollection($persister, $criteria) - : new ArrayCollection($persister->loadCriteria($criteria)); - } - - /** - * Retrieves the wrapped Collection instance. - * - * @return Collection&Selectable - */ - public function unwrap(): Selectable&Collection - { - assert($this->collection instanceof Collection); - assert($this->collection instanceof Selectable); - - return $this->collection; - } - - protected function doInitialize(): void - { - // Has NEW objects added through add(). Remember them. - $newlyAddedDirtyObjects = []; - - if ($this->isDirty) { - $newlyAddedDirtyObjects = $this->unwrap()->toArray(); - } - - $this->unwrap()->clear(); - $this->getUnitOfWork()->loadCollection($this); - $this->takeSnapshot(); - - if ($newlyAddedDirtyObjects) { - $this->restoreNewObjectsInDirtyCollection($newlyAddedDirtyObjects); - } - } - - /** - * @param object[] $newObjects - * - * Note: the only reason why this entire looping/complexity is performed via `spl_object_id` - * is because we want to prevent using `array_udiff()`, which is likely to cause very - * high overhead (complexity of O(n^2)). `array_diff_key()` performs the operation in - * core, which is faster than using a callback for comparisons - */ - private function restoreNewObjectsInDirtyCollection(array $newObjects): void - { - $loadedObjects = $this->unwrap()->toArray(); - $newObjectsByOid = array_combine(array_map('spl_object_id', $newObjects), $newObjects); - $loadedObjectsByOid = array_combine(array_map('spl_object_id', $loadedObjects), $loadedObjects); - $newObjectsThatWereNotLoaded = array_diff_key($newObjectsByOid, $loadedObjectsByOid); - - if ($newObjectsThatWereNotLoaded) { - // Reattach NEW objects added through add(), if any. - array_walk($newObjectsThatWereNotLoaded, [$this->unwrap(), 'add']); - - $this->isDirty = true; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/AbstractCollectionPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/AbstractCollectionPersister.php deleted file mode 100644 index 26f0b9e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/AbstractCollectionPersister.php +++ /dev/null @@ -1,50 +0,0 @@ -uow = $em->getUnitOfWork(); - $this->conn = $em->getConnection(); - $this->platform = $this->conn->getDatabasePlatform(); - $this->quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - } - - /** - * Check if entity is in a valid state for operations. - */ - protected function isValidEntityState(object $entity): bool - { - $entityState = $this->uow->getEntityState($entity, UnitOfWork::STATE_NEW); - - if ($entityState === UnitOfWork::STATE_NEW) { - return false; - } - - // If Entity is scheduled for inclusion, it is not in this collection. - // We can assure that because it would have return true before on array check - return ! ($entityState === UnitOfWork::STATE_MANAGED && $this->uow->isScheduledForInsert($entity)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/CollectionPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/CollectionPersister.php deleted file mode 100644 index 07c4eaf..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/CollectionPersister.php +++ /dev/null @@ -1,59 +0,0 @@ -getMapping($collection); - - if (! $mapping->isOwningSide()) { - return; // ignore inverse side - } - - assert($mapping->isManyToManyOwningSide()); - - $types = []; - $class = $this->em->getClassMetadata($mapping->sourceEntity); - - foreach ($mapping->joinTable->joinColumns as $joinColumn) { - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $class, $this->em); - } - - $this->conn->executeStatement($this->getDeleteSQL($collection), $this->getDeleteSQLParameters($collection), $types); - } - - public function update(PersistentCollection $collection): void - { - $mapping = $this->getMapping($collection); - - if (! $mapping->isOwningSide()) { - return; // ignore inverse side - } - - [$deleteSql, $deleteTypes] = $this->getDeleteRowSQL($collection); - [$insertSql, $insertTypes] = $this->getInsertRowSQL($collection); - - foreach ($collection->getDeleteDiff() as $element) { - $this->conn->executeStatement( - $deleteSql, - $this->getDeleteRowSQLParameters($collection, $element), - $deleteTypes, - ); - } - - foreach ($collection->getInsertDiff() as $element) { - $this->conn->executeStatement( - $insertSql, - $this->getInsertRowSQLParameters($collection, $element), - $insertTypes, - ); - } - } - - public function get(PersistentCollection $collection, mixed $index): object|null - { - $mapping = $this->getMapping($collection); - - if (! $mapping->isIndexed()) { - throw new BadMethodCallException('Selecting a collection by index is only supported on indexed collections.'); - } - - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - $mappedKey = $mapping->isOwningSide() - ? $mapping->inversedBy - : $mapping->mappedBy; - - assert($mappedKey !== null); - - return $persister->load( - [$mappedKey => $collection->getOwner(), $mapping->indexBy() => $index], - null, - $mapping, - [], - LockMode::NONE, - 1, - ); - } - - public function count(PersistentCollection $collection): int - { - $conditions = []; - $params = []; - $types = []; - $mapping = $this->getMapping($collection); - $id = $this->uow->getEntityIdentifier($collection->getOwner()); - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $association = $this->em->getMetadataFactory()->getOwningSide($mapping); - - $joinTableName = $this->quoteStrategy->getJoinTableName($association, $sourceClass, $this->platform); - $joinColumns = ! $mapping->isOwningSide() - ? $association->joinTable->inverseJoinColumns - : $association->joinTable->joinColumns; - - foreach ($joinColumns as $joinColumn) { - $columnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $sourceClass, $this->platform); - $referencedName = $joinColumn->referencedColumnName; - $conditions[] = 't.' . $columnName . ' = ?'; - $params[] = $id[$sourceClass->getFieldForColumn($referencedName)]; - $types[] = PersisterHelper::getTypeOfColumn($referencedName, $sourceClass, $this->em); - } - - [$joinTargetEntitySQL, $filterSql] = $this->getFilterSql($mapping); - - if ($filterSql) { - $conditions[] = $filterSql; - } - - // If there is a provided criteria, make part of conditions - // @todo Fix this. Current SQL returns something like: - /*if ($criteria && ($expression = $criteria->getWhereExpression()) !== null) { - // A join is needed on the target entity - $targetTableName = $this->quoteStrategy->getTableName($targetClass, $this->platform); - $targetJoinSql = ' JOIN ' . $targetTableName . ' te' - . ' ON' . implode(' AND ', $this->getOnConditionSQL($association)); - - // And criteria conditions needs to be added - $persister = $this->uow->getEntityPersister($targetClass->name); - $visitor = new SqlExpressionVisitor($persister, $targetClass); - $conditions[] = $visitor->dispatch($expression); - - $joinTargetEntitySQL = $targetJoinSql . $joinTargetEntitySQL; - }*/ - - $sql = 'SELECT COUNT(*)' - . ' FROM ' . $joinTableName . ' t' - . $joinTargetEntitySQL - . ' WHERE ' . implode(' AND ', $conditions); - - return (int) $this->conn->fetchOne($sql, $params, $types); - } - - /** - * {@inheritDoc} - */ - public function slice(PersistentCollection $collection, int $offset, int|null $length = null): array - { - $mapping = $this->getMapping($collection); - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - return $persister->getManyToManyCollection($mapping, $collection->getOwner(), $offset, $length); - } - - public function containsKey(PersistentCollection $collection, mixed $key): bool - { - $mapping = $this->getMapping($collection); - - if (! $mapping->isIndexed()) { - throw new BadMethodCallException('Selecting a collection by index is only supported on indexed collections.'); - } - - [$quotedJoinTable, $whereClauses, $params, $types] = $this->getJoinTableRestrictionsWithKey( - $collection, - (string) $key, - true, - ); - - $sql = 'SELECT 1 FROM ' . $quotedJoinTable . ' WHERE ' . implode(' AND ', $whereClauses); - - return (bool) $this->conn->fetchOne($sql, $params, $types); - } - - public function contains(PersistentCollection $collection, object $element): bool - { - if (! $this->isValidEntityState($element)) { - return false; - } - - [$quotedJoinTable, $whereClauses, $params, $types] = $this->getJoinTableRestrictions( - $collection, - $element, - true, - ); - - $sql = 'SELECT 1 FROM ' . $quotedJoinTable . ' WHERE ' . implode(' AND ', $whereClauses); - - return (bool) $this->conn->fetchOne($sql, $params, $types); - } - - /** - * {@inheritDoc} - */ - public function loadCriteria(PersistentCollection $collection, Criteria $criteria): array - { - $mapping = $this->getMapping($collection); - $owner = $collection->getOwner(); - $ownerMetadata = $this->em->getClassMetadata($owner::class); - $id = $this->uow->getEntityIdentifier($owner); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $onConditions = $this->getOnConditionSQL($mapping); - $whereClauses = $params = []; - $paramTypes = []; - - if (! $mapping->isOwningSide()) { - assert($mapping instanceof InverseSideMapping); - $associationSourceClass = $targetClass; - $sourceRelationMode = 'relationToTargetKeyColumns'; - } else { - $associationSourceClass = $ownerMetadata; - $sourceRelationMode = 'relationToSourceKeyColumns'; - } - - $mapping = $this->em->getMetadataFactory()->getOwningSide($mapping); - - foreach ($mapping->$sourceRelationMode as $key => $value) { - $whereClauses[] = sprintf('t.%s = ?', $key); - $params[] = $ownerMetadata->containsForeignIdentifier - ? $id[$ownerMetadata->getFieldForColumn($value)] - : $id[$ownerMetadata->fieldNames[$value]]; - $paramTypes[] = PersisterHelper::getTypeOfColumn($value, $ownerMetadata, $this->em); - } - - $parameters = $this->expandCriteriaParameters($criteria); - - foreach ($parameters as $parameter) { - [$name, $value, $operator] = $parameter; - - $field = $this->quoteStrategy->getColumnName($name, $targetClass, $this->platform); - - if ($value === null && ($operator === Comparison::EQ || $operator === Comparison::NEQ)) { - $whereClauses[] = sprintf('te.%s %s NULL', $field, $operator === Comparison::EQ ? 'IS' : 'IS NOT'); - } else { - $whereClauses[] = sprintf('te.%s %s ?', $field, $operator); - $params[] = $value; - $paramTypes[] = PersisterHelper::getTypeOfField($name, $targetClass, $this->em)[0]; - } - } - - $tableName = $this->quoteStrategy->getTableName($targetClass, $this->platform); - $joinTable = $this->quoteStrategy->getJoinTableName($mapping, $associationSourceClass, $this->platform); - - $rsm = new Query\ResultSetMappingBuilder($this->em); - $rsm->addRootEntityFromClassMetadata($targetClass->name, 'te'); - - $sql = 'SELECT ' . $rsm->generateSelectClause() - . ' FROM ' . $tableName . ' te' - . ' JOIN ' . $joinTable . ' t ON' - . implode(' AND ', $onConditions) - . ' WHERE ' . implode(' AND ', $whereClauses); - - $sql .= $this->getOrderingSql($criteria, $targetClass); - - $sql .= $this->getLimitSql($criteria); - - $stmt = $this->conn->executeQuery($sql, $params, $paramTypes); - - return $this - ->em - ->newHydrator(Query::HYDRATE_OBJECT) - ->hydrateAll($stmt, $rsm); - } - - /** - * Generates the filter SQL for a given mapping. - * - * This method is not used for actually grabbing the related entities - * but when the extra-lazy collection methods are called on a filtered - * association. This is why besides the many to many table we also - * have to join in the actual entities table leading to additional - * JOIN. - * - * @param AssociationMapping $mapping Array containing mapping information. - * - * @return string[] ordered tuple: - * - JOIN condition to add to the SQL - * - WHERE condition to add to the SQL - * @phpstan-return array{0: string, 1: string} - */ - public function getFilterSql(AssociationMapping $mapping): array - { - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $rootClass = $this->em->getClassMetadata($targetClass->rootEntityName); - $filterSql = $this->generateFilterConditionSQL($rootClass, 'te'); - - if ($filterSql === '') { - return ['', '']; - } - - // A join is needed if there is filtering on the target entity - $tableName = $this->quoteStrategy->getTableName($rootClass, $this->platform); - $joinSql = ' JOIN ' . $tableName . ' te' - . ' ON' . implode(' AND ', $this->getOnConditionSQL($mapping)); - - return [$joinSql, $filterSql]; - } - - /** - * Generates the filter SQL for a given entity and table alias. - * - * @param ClassMetadata $targetEntity Metadata of the target entity. - * @param string $targetTableAlias The table alias of the joined/selected table. - * - * @return string The SQL query part to add to a query. - */ - protected function generateFilterConditionSQL(ClassMetadata $targetEntity, string $targetTableAlias): string - { - $filterClauses = []; - - foreach ($this->em->getFilters()->getEnabledFilters() as $filter) { - $filterExpr = $filter->addFilterConstraint($targetEntity, $targetTableAlias); - if ($filterExpr) { - $filterClauses[] = '(' . $filterExpr . ')'; - } - } - - return $filterClauses - ? '(' . implode(' AND ', $filterClauses) . ')' - : ''; - } - - /** - * Generate ON condition - * - * @return string[] - * @phpstan-return list - */ - protected function getOnConditionSQL(AssociationMapping $mapping): array - { - $association = $this->em->getMetadataFactory()->getOwningSide($mapping); - $joinColumns = $mapping->isOwningSide() - ? $association->joinTable->inverseJoinColumns - : $association->joinTable->joinColumns; - - $conditions = []; - - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - foreach ($joinColumns as $joinColumn) { - $joinColumnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $refColumnName = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $targetClass, $this->platform); - - $conditions[] = ' t.' . $joinColumnName . ' = te.' . $refColumnName; - } - - return $conditions; - } - - protected function getDeleteSQL(PersistentCollection $collection): string - { - $columns = []; - $mapping = $this->getMapping($collection); - assert($mapping->isManyToManyOwningSide()); - $class = $this->em->getClassMetadata($collection->getOwner()::class); - $joinTable = $this->quoteStrategy->getJoinTableName($mapping, $class, $this->platform); - - foreach ($mapping->joinTable->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - - return 'DELETE FROM ' . $joinTable - . ' WHERE ' . implode(' = ? AND ', $columns) . ' = ?'; - } - - /** - * Internal note: Order of the parameters must be the same as the order of the columns in getDeleteSql. - * - * @return list - */ - protected function getDeleteSQLParameters(PersistentCollection $collection): array - { - $mapping = $this->getMapping($collection); - assert($mapping->isManyToManyOwningSide()); - $identifier = $this->uow->getEntityIdentifier($collection->getOwner()); - - // Optimization for single column identifier - if (count($mapping->relationToSourceKeyColumns) === 1) { - return [reset($identifier)]; - } - - // Composite identifier - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $params = []; - - foreach ($mapping->relationToSourceKeyColumns as $columnName => $refColumnName) { - $params[] = isset($sourceClass->fieldNames[$refColumnName]) - ? $identifier[$sourceClass->fieldNames[$refColumnName]] - : $identifier[$sourceClass->getFieldForColumn($refColumnName)]; - } - - return $params; - } - - /** - * Gets the SQL statement used for deleting a row from the collection. - * - * @return string[]|string[][] ordered tuple containing the SQL to be executed and an array - * of types for bound parameters - * @phpstan-return array{0: string, 1: list} - */ - protected function getDeleteRowSQL(PersistentCollection $collection): array - { - $mapping = $this->getMapping($collection); - assert($mapping->isManyToManyOwningSide()); - $class = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $columns = []; - $types = []; - - foreach ($mapping->joinTable->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $class, $this->em); - } - - foreach ($mapping->joinTable->inverseJoinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - } - - return [ - 'DELETE FROM ' . $this->quoteStrategy->getJoinTableName($mapping, $class, $this->platform) - . ' WHERE ' . implode(' = ? AND ', $columns) . ' = ?', - $types, - ]; - } - - /** - * Gets the SQL parameters for the corresponding SQL statement to delete the given - * element from the given collection. - * - * Internal note: Order of the parameters must be the same as the order of the columns in getDeleteRowSql. - * - * @return mixed[] - * @phpstan-return list - */ - protected function getDeleteRowSQLParameters(PersistentCollection $collection, object $element): array - { - return $this->collectJoinTableColumnParameters($collection, $element); - } - - /** - * Gets the SQL statement used for inserting a row in the collection. - * - * @return string[]|string[][] ordered tuple containing the SQL to be executed and an array - * of types for bound parameters - * @phpstan-return array{0: string, 1: list} - */ - protected function getInsertRowSQL(PersistentCollection $collection): array - { - $columns = []; - $types = []; - $mapping = $this->getMapping($collection); - assert($mapping->isManyToManyOwningSide()); - $class = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - - foreach ($mapping->joinTable->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $class, $this->em); - } - - foreach ($mapping->joinTable->inverseJoinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - } - - return [ - 'INSERT INTO ' . $this->quoteStrategy->getJoinTableName($mapping, $class, $this->platform) - . ' (' . implode(', ', $columns) . ')' - . ' VALUES' - . ' (' . implode(', ', array_fill(0, count($columns), '?')) . ')', - $types, - ]; - } - - /** - * Gets the SQL parameters for the corresponding SQL statement to insert the given - * element of the given collection into the database. - * - * Internal note: Order of the parameters must be the same as the order of the columns in getInsertRowSql. - * - * @return mixed[] - * @phpstan-return list - */ - protected function getInsertRowSQLParameters(PersistentCollection $collection, object $element): array - { - return $this->collectJoinTableColumnParameters($collection, $element); - } - - /** - * Collects the parameters for inserting/deleting on the join table in the order - * of the join table columns as specified in ManyToManyMapping#joinTableColumns. - * - * @return mixed[] - * @phpstan-return list - */ - private function collectJoinTableColumnParameters( - PersistentCollection $collection, - object $element, - ): array { - $params = []; - $mapping = $this->getMapping($collection); - assert($mapping->isManyToManyOwningSide()); - $isComposite = count($mapping->joinTableColumns) > 2; - - $identifier1 = $this->uow->getEntityIdentifier($collection->getOwner()); - $identifier2 = $this->uow->getEntityIdentifier($element); - - $class1 = $class2 = null; - if ($isComposite) { - $class1 = $this->em->getClassMetadata($collection->getOwner()::class); - $class2 = $collection->getTypeClass(); - } - - foreach ($mapping->joinTableColumns as $joinTableColumn) { - $isRelationToSource = isset($mapping->relationToSourceKeyColumns[$joinTableColumn]); - - if (! $isComposite) { - $params[] = $isRelationToSource ? array_pop($identifier1) : array_pop($identifier2); - - continue; - } - - if ($isRelationToSource) { - $params[] = $identifier1[$class1->getFieldForColumn($mapping->relationToSourceKeyColumns[$joinTableColumn])]; - - continue; - } - - $params[] = $identifier2[$class2->getFieldForColumn($mapping->relationToTargetKeyColumns[$joinTableColumn])]; - } - - return $params; - } - - /** - * @param bool $addFilters Whether the filter SQL should be included or not. - * - * @return mixed[] ordered vector: - * - quoted join table name - * - where clauses to be added for filtering - * - parameters to be bound for filtering - * - types of the parameters to be bound for filtering - * @phpstan-return array{0: string, 1: list, 2: list, 3: list} - */ - private function getJoinTableRestrictionsWithKey( - PersistentCollection $collection, - string $key, - bool $addFilters, - ): array { - $filterMapping = $this->getMapping($collection); - $mapping = $filterMapping; - $indexBy = $mapping->indexBy(); - $id = $this->uow->getEntityIdentifier($collection->getOwner()); - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - - if (! $mapping->isOwningSide()) { - assert($mapping instanceof InverseSideMapping); - $associationSourceClass = $this->em->getClassMetadata($mapping->targetEntity); - $mapping = $associationSourceClass->associationMappings[$mapping->mappedBy]; - assert($mapping->isManyToManyOwningSide()); - $joinColumns = $mapping->joinTable->joinColumns; - $sourceRelationMode = 'relationToTargetKeyColumns'; - $targetRelationMode = 'relationToSourceKeyColumns'; - } else { - assert($mapping->isManyToManyOwningSide()); - $associationSourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $joinColumns = $mapping->joinTable->inverseJoinColumns; - $sourceRelationMode = 'relationToSourceKeyColumns'; - $targetRelationMode = 'relationToTargetKeyColumns'; - } - - $quotedJoinTable = $this->quoteStrategy->getJoinTableName($mapping, $associationSourceClass, $this->platform) . ' t'; - $whereClauses = []; - $params = []; - $types = []; - - $joinNeeded = ! in_array($indexBy, $targetClass->identifier, true); - - if ($joinNeeded) { // extra join needed if indexBy is not a @id - $joinConditions = []; - - foreach ($joinColumns as $joinTableColumn) { - $joinConditions[] = 't.' . $joinTableColumn->name . ' = tr.' . $joinTableColumn->referencedColumnName; - } - - $tableName = $this->quoteStrategy->getTableName($targetClass, $this->platform); - $quotedJoinTable .= ' JOIN ' . $tableName . ' tr ON ' . implode(' AND ', $joinConditions); - $columnName = $targetClass->getColumnName($indexBy); - - $whereClauses[] = 'tr.' . $columnName . ' = ?'; - $params[] = $key; - $types[] = PersisterHelper::getTypeOfColumn($columnName, $targetClass, $this->em); - } - - foreach ($mapping->joinTableColumns as $joinTableColumn) { - if (isset($mapping->{$sourceRelationMode}[$joinTableColumn])) { - $column = $mapping->{$sourceRelationMode}[$joinTableColumn]; - $whereClauses[] = 't.' . $joinTableColumn . ' = ?'; - $params[] = $sourceClass->containsForeignIdentifier - ? $id[$sourceClass->getFieldForColumn($column)] - : $id[$sourceClass->fieldNames[$column]]; - $types[] = PersisterHelper::getTypeOfColumn($column, $sourceClass, $this->em); - } elseif (! $joinNeeded) { - $column = $mapping->{$targetRelationMode}[$joinTableColumn]; - - $whereClauses[] = 't.' . $joinTableColumn . ' = ?'; - $params[] = $key; - $types[] = PersisterHelper::getTypeOfColumn($column, $targetClass, $this->em); - } - } - - if ($addFilters) { - [$joinTargetEntitySQL, $filterSql] = $this->getFilterSql($filterMapping); - - if ($filterSql) { - $quotedJoinTable .= ' ' . $joinTargetEntitySQL; - $whereClauses[] = $filterSql; - } - } - - return [$quotedJoinTable, $whereClauses, $params, $types]; - } - - /** - * @param bool $addFilters Whether the filter SQL should be included or not. - * - * @return mixed[] ordered vector: - * - quoted join table name - * - where clauses to be added for filtering - * - parameters to be bound for filtering - * - types of the parameters to be bound for filtering - * @phpstan-return array{0: string, 1: list, 2: list, 3: list} - */ - private function getJoinTableRestrictions( - PersistentCollection $collection, - object $element, - bool $addFilters, - ): array { - $filterMapping = $this->getMapping($collection); - $mapping = $filterMapping; - - if (! $mapping->isOwningSide()) { - $sourceClass = $this->em->getClassMetadata($mapping->targetEntity); - $targetClass = $this->em->getClassMetadata($mapping->sourceEntity); - $sourceId = $this->uow->getEntityIdentifier($element); - $targetId = $this->uow->getEntityIdentifier($collection->getOwner()); - } else { - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $sourceId = $this->uow->getEntityIdentifier($collection->getOwner()); - $targetId = $this->uow->getEntityIdentifier($element); - } - - $mapping = $this->em->getMetadataFactory()->getOwningSide($mapping); - - $quotedJoinTable = $this->quoteStrategy->getJoinTableName($mapping, $sourceClass, $this->platform); - $whereClauses = []; - $params = []; - $types = []; - - foreach ($mapping->joinTableColumns as $joinTableColumn) { - $whereClauses[] = ($addFilters ? 't.' : '') . $joinTableColumn . ' = ?'; - - if (isset($mapping->relationToTargetKeyColumns[$joinTableColumn])) { - $targetColumn = $mapping->relationToTargetKeyColumns[$joinTableColumn]; - $params[] = $targetId[$targetClass->getFieldForColumn($targetColumn)]; - $types[] = PersisterHelper::getTypeOfColumn($targetColumn, $targetClass, $this->em); - - continue; - } - - // relationToSourceKeyColumns - $targetColumn = $mapping->relationToSourceKeyColumns[$joinTableColumn]; - $params[] = $sourceId[$sourceClass->getFieldForColumn($targetColumn)]; - $types[] = PersisterHelper::getTypeOfColumn($targetColumn, $sourceClass, $this->em); - } - - if ($addFilters) { - $quotedJoinTable .= ' t'; - - [$joinTargetEntitySQL, $filterSql] = $this->getFilterSql($filterMapping); - - if ($filterSql) { - $quotedJoinTable .= ' ' . $joinTargetEntitySQL; - $whereClauses[] = $filterSql; - } - } - - return [$quotedJoinTable, $whereClauses, $params, $types]; - } - - /** - * Expands Criteria Parameters by walking the expressions and grabbing all - * parameters and types from it. - * - * @return mixed[][] - */ - private function expandCriteriaParameters(Criteria $criteria): array - { - $expression = $criteria->getWhereExpression(); - - if ($expression === null) { - return []; - } - - $valueVisitor = new SqlValueVisitor(); - - $valueVisitor->dispatch($expression); - - [, $types] = $valueVisitor->getParamsAndTypes(); - - return $types; - } - - private function getOrderingSql(Criteria $criteria, ClassMetadata $targetClass): string - { - $orderings = $criteria->orderings(); - if ($orderings) { - $orderBy = []; - foreach ($orderings as $name => $direction) { - $field = $this->quoteStrategy->getColumnName( - $name, - $targetClass, - $this->platform, - ); - $orderBy[] = $field . ' ' . $direction->value; - } - - return ' ORDER BY ' . implode(', ', $orderBy); - } - - return ''; - } - - /** @throws DBALException */ - private function getLimitSql(Criteria $criteria): string - { - $limit = $criteria->getMaxResults(); - $offset = $criteria->getFirstResult(); - - return $this->platform->modifyLimitQuery('', $limit, $offset ?? 0); - } - - private function getMapping(PersistentCollection $collection): AssociationMapping&ManyToManyAssociationMapping - { - $mapping = $collection->getMapping(); - - assert($mapping instanceof ManyToManyAssociationMapping); - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/OneToManyPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/OneToManyPersister.php deleted file mode 100644 index d96be8d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Collection/OneToManyPersister.php +++ /dev/null @@ -1,270 +0,0 @@ -getMapping($collection); - - if (! $mapping->orphanRemoval) { - // Handling non-orphan removal should never happen, as @OneToMany - // can only be inverse side. For owning side one to many, it is - // required to have a join table, which would classify as a ManyToManyPersister. - return; - } - - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - - $targetClass->isInheritanceTypeJoined() - ? $this->deleteJoinedEntityCollection($collection) - : $this->deleteEntityCollection($collection); - } - - public function update(PersistentCollection $collection): void - { - // This can never happen. One to many can only be inverse side. - // For owning side one to many, it is required to have a join table, - // then classifying it as a ManyToManyPersister. - return; - } - - public function get(PersistentCollection $collection, mixed $index): object|null - { - $mapping = $this->getMapping($collection); - - if (! $mapping->isIndexed()) { - throw new BadMethodCallException('Selecting a collection by index is only supported on indexed collections.'); - } - - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - return $persister->load( - [ - $mapping->mappedBy => $collection->getOwner(), - $mapping->indexBy() => $index, - ], - null, - $mapping, - [], - null, - 1, - ); - } - - public function count(PersistentCollection $collection): int - { - $mapping = $this->getMapping($collection); - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - // only works with single id identifier entities. Will throw an - // exception in Entity Persisters if that is not the case for the - // 'mappedBy' field. - $criteria = new Criteria(Criteria::expr()->eq($mapping->mappedBy, $collection->getOwner())); - - return $persister->count($criteria); - } - - /** - * {@inheritDoc} - */ - public function slice(PersistentCollection $collection, int $offset, int|null $length = null): array - { - $mapping = $this->getMapping($collection); - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - return $persister->getOneToManyCollection($mapping, $collection->getOwner(), $offset, $length); - } - - public function containsKey(PersistentCollection $collection, mixed $key): bool - { - $mapping = $this->getMapping($collection); - - if (! $mapping->isIndexed()) { - throw new BadMethodCallException('Selecting a collection by index is only supported on indexed collections.'); - } - - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - // only works with single id identifier entities. Will throw an - // exception in Entity Persisters if that is not the case for the - // 'mappedBy' field. - $criteria = new Criteria(); - - $criteria->andWhere(Criteria::expr()->eq($mapping->mappedBy, $collection->getOwner())); - $criteria->andWhere(Criteria::expr()->eq($mapping->indexBy(), $key)); - - return (bool) $persister->count($criteria); - } - - public function contains(PersistentCollection $collection, object $element): bool - { - if (! $this->isValidEntityState($element)) { - return false; - } - - $mapping = $this->getMapping($collection); - $persister = $this->uow->getEntityPersister($mapping->targetEntity); - - // only works with single id identifier entities. Will throw an - // exception in Entity Persisters if that is not the case for the - // 'mappedBy' field. - $criteria = new Criteria(Criteria::expr()->eq($mapping->mappedBy, $collection->getOwner())); - - return $persister->exists($element, $criteria); - } - - /** - * {@inheritDoc} - */ - public function loadCriteria(PersistentCollection $collection, Criteria $criteria): array - { - throw new BadMethodCallException('Filtering a collection by Criteria is not supported by this CollectionPersister.'); - } - - /** - * @throws DBALException - * @throws EntityNotFoundException - * @throws MappingException - */ - private function deleteEntityCollection(PersistentCollection $collection): int - { - $mapping = $this->getMapping($collection); - $identifier = $this->uow->getEntityIdentifier($collection->getOwner()); - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $columns = []; - $parameters = []; - $types = []; - - foreach ($this->em->getMetadataFactory()->getOwningSide($mapping)->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $parameters[] = $identifier[$sourceClass->getFieldForColumn($joinColumn->referencedColumnName)]; - $types[] = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $sourceClass, $this->em); - } - - $statement = 'DELETE FROM ' . $this->quoteStrategy->getTableName($targetClass, $this->platform) - . ' WHERE ' . implode(' = ? AND ', $columns) . ' = ?'; - - if ($targetClass->isInheritanceTypeSingleTable()) { - $discriminatorColumn = $targetClass->getDiscriminatorColumn(); - $discriminatorValues = $targetClass->discriminatorValue ? [$targetClass->discriminatorValue] : array_keys($targetClass->discriminatorMap); - $statement .= ' AND ' . $discriminatorColumn->name . ' IN (' . implode(', ', array_fill(0, count($discriminatorValues), '?')) . ')'; - foreach ($discriminatorValues as $discriminatorValue) { - $parameters[] = $discriminatorValue; - $types[] = $discriminatorColumn->type; - } - } - - $numAffected = $this->conn->executeStatement($statement, $parameters, $types); - - assert(is_int($numAffected)); - - return $numAffected; - } - - /** - * Delete Class Table Inheritance entities. - * A temporary table is needed to keep IDs to be deleted in both parent and child class' tables. - * - * Thanks Steve Ebersole (Hibernate) for idea on how to tackle reliably this scenario, we owe him a beer! =) - * - * @throws DBALException - */ - private function deleteJoinedEntityCollection(PersistentCollection $collection): int - { - $mapping = $this->getMapping($collection); - $sourceClass = $this->em->getClassMetadata($mapping->sourceEntity); - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - $rootClass = $this->em->getClassMetadata($targetClass->rootEntityName); - - // 1) Build temporary table DDL - $tempTable = $this->platform->getTemporaryTableName($rootClass->getTemporaryIdTableName()); - $idColumnNames = $rootClass->getIdentifierColumnNames(); - $idColumnList = implode(', ', $idColumnNames); - $columnDefinitions = []; - - foreach ($idColumnNames as $idColumnName) { - $columnDefinitions[$idColumnName] = [ - 'name' => $idColumnName, - 'notnull' => true, - 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $this->em)), - ]; - } - - $statement = $this->platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable - . ' (' . $this->platform->getColumnDeclarationListSQL($columnDefinitions) . ')'; - - $this->conn->executeStatement($statement); - - // 2) Build insert table records into temporary table - $query = $this->em->createQuery( - ' SELECT t0.' . implode(', t0.', $rootClass->getIdentifierFieldNames()) - . ' FROM ' . $targetClass->name . ' t0 WHERE t0.' . $mapping->mappedBy . ' = :owner', - )->setParameter('owner', $collection->getOwner()); - - $sql = $query->getSQL(); - assert(is_string($sql)); - $statement = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ') ' . $sql; - $parameters = array_values($sourceClass->getIdentifierValues($collection->getOwner())); - $numDeleted = $this->conn->executeStatement($statement, $parameters); - - // 3) Delete records on each table in the hierarchy - $classNames = [...$targetClass->parentClasses, ...[$targetClass->name], ...$targetClass->subClasses]; - - foreach (array_reverse($classNames) as $className) { - $tableName = $this->quoteStrategy->getTableName($this->em->getClassMetadata($className), $this->platform); - $statement = 'DELETE FROM ' . $tableName . ' WHERE (' . $idColumnList . ')' - . ' IN (SELECT ' . $idColumnList . ' FROM ' . $tempTable . ')'; - - $this->conn->executeStatement($statement); - } - - // 4) Drop temporary table - $statement = $this->platform->getDropTemporaryTableSQL($tempTable); - - $this->conn->executeStatement($statement); - - assert(is_int($numDeleted)); - - return $numDeleted; - } - - private function getMapping(PersistentCollection $collection): OneToManyAssociationMapping - { - $mapping = $collection->getMapping(); - - assert($mapping->isOneToMany()); - - return $mapping; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/AbstractEntityInheritancePersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/AbstractEntityInheritancePersister.php deleted file mode 100644 index cf8a74e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/AbstractEntityInheritancePersister.php +++ /dev/null @@ -1,66 +0,0 @@ -class->getDiscriminatorColumn(); - $this->columnTypes[$discColumn->name] = $discColumn->type; - $data[$this->getDiscriminatorColumnTableName()][$discColumn->name] = $this->class->discriminatorValue; - - return $data; - } - - /** - * Gets the name of the table that contains the discriminator column. - */ - abstract protected function getDiscriminatorColumnTableName(): string; - - protected function getSelectColumnSQL(string $field, ClassMetadata $class, string $alias = 'r'): string - { - $tableAlias = $alias === 'r' ? '' : $alias; - $fieldMapping = $class->fieldMappings[$field]; - $columnAlias = $this->getSQLColumnAlias($fieldMapping->columnName); - $sql = sprintf( - '%s.%s', - $this->getSQLTableAlias($class->name, $tableAlias), - $this->quoteStrategy->getColumnName($field, $class, $this->platform), - ); - - $this->currentPersisterContext->rsm->addFieldResult($alias, $columnAlias, $field, $class->name); - - $type = Type::getType($fieldMapping->type); - $sql = $type->convertToPHPValueSQL($sql, $this->platform); - - return $sql . ' AS ' . $columnAlias; - } - - protected function getSelectJoinColumnSQL(string $tableAlias, string $joinColumnName, string $quotedColumnName, string $type): string - { - $columnAlias = $this->getSQLColumnAlias($joinColumnName); - - $this->currentPersisterContext->rsm->addMetaResult('r', $columnAlias, $joinColumnName, false, $type); - - return $tableAlias . '.' . $quotedColumnName . ' AS ' . $columnAlias; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php deleted file mode 100644 index 4c92d98..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php +++ /dev/null @@ -1,2140 +0,0 @@ - */ - private static array $comparisonMap = [ - Comparison::EQ => '= %s', - Comparison::NEQ => '!= %s', - Comparison::GT => '> %s', - Comparison::GTE => '>= %s', - Comparison::LT => '< %s', - Comparison::LTE => '<= %s', - Comparison::IN => 'IN (%s)', - Comparison::NIN => 'NOT IN (%s)', - Comparison::CONTAINS => 'LIKE %s', - Comparison::STARTS_WITH => 'LIKE %s', - Comparison::ENDS_WITH => 'LIKE %s', - ]; - - /** - * The underlying DBAL Connection of the used EntityManager. - */ - protected Connection $conn; - - /** - * The database platform. - */ - protected AbstractPlatform $platform; - - /** - * Queued inserts. - * - * @phpstan-var array - */ - protected array $queuedInserts = []; - - /** - * The map of column names to DBAL mapping types of all prepared columns used - * when INSERTing or UPDATEing an entity. - * - * @see prepareInsertData($entity) - * @see prepareUpdateData($entity) - * - * @var mixed[] - */ - protected array $columnTypes = []; - - /** - * The map of quoted column names. - * - * @see prepareInsertData($entity) - * @see prepareUpdateData($entity) - * - * @var mixed[] - */ - protected array $quotedColumns = []; - - /** - * The INSERT SQL statement used for entities handled by this persister. - * This SQL is only generated once per request, if at all. - */ - private string|null $insertSql = null; - - /** - * The quote strategy. - */ - protected QuoteStrategy $quoteStrategy; - - /** - * The IdentifierFlattener used for manipulating identifiers - */ - protected readonly IdentifierFlattener $identifierFlattener; - - protected CachedPersisterContext $currentPersisterContext; - private readonly CachedPersisterContext $limitsHandlingContext; - private readonly CachedPersisterContext $noLimitsContext; - - private string|null $filterHash = null; - - /** - * Initializes a new BasicEntityPersister that uses the given EntityManager - * and persists instances of the class described by the given ClassMetadata descriptor. - * - * @param ClassMetadata $class Metadata object that describes the mapping of the mapped entity class. - */ - public function __construct( - protected EntityManagerInterface $em, - protected ClassMetadata $class, - ) { - $this->conn = $em->getConnection(); - $this->platform = $this->conn->getDatabasePlatform(); - $this->quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - $this->identifierFlattener = new IdentifierFlattener($em->getUnitOfWork(), $em->getMetadataFactory()); - $this->noLimitsContext = $this->currentPersisterContext = new CachedPersisterContext( - $class, - new Query\ResultSetMapping(), - false, - ); - $this->limitsHandlingContext = new CachedPersisterContext( - $class, - new Query\ResultSetMapping(), - true, - ); - } - - final protected function isFilterHashUpToDate(): bool - { - return $this->filterHash === $this->em->getFilters()->getHash(); - } - - final protected function updateFilterHash(): void - { - $this->filterHash = $this->em->getFilters()->getHash(); - } - - public function getClassMetadata(): ClassMetadata - { - return $this->class; - } - - public function getResultSetMapping(): ResultSetMapping - { - return $this->currentPersisterContext->rsm; - } - - public function addInsert(object $entity): void - { - $this->queuedInserts[spl_object_id($entity)] = $entity; - } - - /** - * {@inheritDoc} - */ - public function getInserts(): array - { - return $this->queuedInserts; - } - - public function executeInserts(): void - { - if (! $this->queuedInserts) { - return; - } - - $uow = $this->em->getUnitOfWork(); - $idGenerator = $this->class->idGenerator; - $isPostInsertId = $idGenerator->isPostInsertGenerator(); - - $stmt = $this->conn->prepare($this->getInsertSQL()); - $tableName = $this->class->getTableName(); - - foreach ($this->queuedInserts as $key => $entity) { - $insertData = $this->prepareInsertData($entity); - - if (isset($insertData[$tableName])) { - $paramIndex = 1; - - foreach ($insertData[$tableName] as $column => $value) { - $stmt->bindValue($paramIndex++, $value, $this->columnTypes[$column]); - } - } - - $stmt->executeStatement(); - - if ($isPostInsertId) { - $generatedId = $idGenerator->generateId($this->em, $entity); - $id = [$this->class->identifier[0] => $generatedId]; - - $uow->assignPostInsertId($entity, $generatedId); - } else { - $id = $this->class->getIdentifierValues($entity); - } - - if ($this->class->requiresFetchAfterChange) { - $this->assignDefaultVersionAndUpsertableValues($entity, $id); - } - - // Unset this queued insert, so that the prepareUpdateData() method knows right away - // (for the next entity already) that the current entity has been written to the database - // and no extra updates need to be scheduled to refer to it. - // - // In \Doctrine\ORM\UnitOfWork::executeInserts(), the UoW already removed entities - // from its own list (\Doctrine\ORM\UnitOfWork::$entityInsertions) right after they - // were given to our addInsert() method. - unset($this->queuedInserts[$key]); - } - } - - /** - * Retrieves the default version value which was created - * by the preceding INSERT statement and assigns it back in to the - * entities version field if the given entity is versioned. - * Also retrieves values of columns marked as 'non insertable' and / or - * 'not updatable' and assigns them back to the entities corresponding fields. - * - * @param mixed[] $id - */ - protected function assignDefaultVersionAndUpsertableValues(object $entity, array $id): void - { - $values = $this->fetchVersionAndNotUpsertableValues($this->class, $id); - - foreach ($values as $field => $value) { - $value = Type::getType($this->class->fieldMappings[$field]->type)->convertToPHPValue($value, $this->platform); - - $this->class->setFieldValue($entity, $field, $value); - } - } - - /** - * Fetches the current version value of a versioned entity and / or the values of fields - * marked as 'not insertable' and / or 'not updatable'. - * - * @param mixed[] $id - */ - protected function fetchVersionAndNotUpsertableValues(ClassMetadata $versionedClass, array $id): mixed - { - $columnNames = []; - foreach ($this->class->fieldMappings as $key => $column) { - if (isset($column->generated) || ($this->class->isVersioned && $key === $versionedClass->versionField)) { - $columnNames[$key] = $this->quoteStrategy->getColumnName($key, $versionedClass, $this->platform); - } - } - - $tableName = $this->quoteStrategy->getTableName($versionedClass, $this->platform); - $identifier = $this->quoteStrategy->getIdentifierColumnNames($versionedClass, $this->platform); - - // FIXME: Order with composite keys might not be correct - $sql = 'SELECT ' . implode(', ', $columnNames) - . ' FROM ' . $tableName - . ' WHERE ' . implode(' = ? AND ', $identifier) . ' = ?'; - - $flatId = $this->identifierFlattener->flattenIdentifier($versionedClass, $id); - - $values = $this->conn->fetchNumeric( - $sql, - array_values($flatId), - $this->extractIdentifierTypes($id, $versionedClass), - ); - - if ($values === false) { - throw new LengthException('Unexpected empty result for database query.'); - } - - $values = array_combine(array_keys($columnNames), $values); - - if (! $values) { - throw new LengthException('Unexpected number of database columns.'); - } - - return $values; - } - - /** - * @param mixed[] $id - * - * @return list - * @phpstan-return list - */ - final protected function extractIdentifierTypes(array $id, ClassMetadata $versionedClass): array - { - $types = []; - - foreach ($id as $field => $value) { - $types = [...$types, ...$this->getTypes($field, $value, $versionedClass)]; - } - - return $types; - } - - public function update(object $entity): void - { - $tableName = $this->class->getTableName(); - $updateData = $this->prepareUpdateData($entity); - - if (! isset($updateData[$tableName])) { - return; - } - - $data = $updateData[$tableName]; - - if (! $data) { - return; - } - - $isVersioned = $this->class->isVersioned; - $quotedTableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - - $this->updateTable($entity, $quotedTableName, $data, $isVersioned); - - if ($this->class->requiresFetchAfterChange) { - $id = $this->class->getIdentifierValues($entity); - - $this->assignDefaultVersionAndUpsertableValues($entity, $id); - } - } - - /** - * Performs an UPDATE statement for an entity on a specific table. - * The UPDATE can optionally be versioned, which requires the entity to have a version field. - * - * @param object $entity The entity object being updated. - * @param string $quotedTableName The quoted name of the table to apply the UPDATE on. - * @param mixed[] $updateData The map of columns to update (column => value). - * @param bool $versioned Whether the UPDATE should be versioned. - * - * @throws UnrecognizedField - * @throws OptimisticLockException - */ - final protected function updateTable( - object $entity, - string $quotedTableName, - array $updateData, - bool $versioned = false, - ): void { - $set = []; - $types = []; - $params = []; - - foreach ($updateData as $columnName => $value) { - $placeholder = '?'; - $column = $columnName; - - switch (true) { - case isset($this->class->fieldNames[$columnName]): - $fieldName = $this->class->fieldNames[$columnName]; - $column = $this->quoteStrategy->getColumnName($fieldName, $this->class, $this->platform); - - if (isset($this->class->fieldMappings[$fieldName])) { - $type = Type::getType($this->columnTypes[$columnName]); - $placeholder = $type->convertToDatabaseValueSQL('?', $this->platform); - } - - break; - - case isset($this->quotedColumns[$columnName]): - $column = $this->quotedColumns[$columnName]; - - break; - } - - $params[] = $value; - $set[] = $column . ' = ' . $placeholder; - $types[] = $this->columnTypes[$columnName]; - } - - $where = []; - $identifier = $this->em->getUnitOfWork()->getEntityIdentifier($entity); - - foreach ($this->class->identifier as $idField) { - if (! isset($this->class->associationMappings[$idField])) { - $params[] = $identifier[$idField]; - $types[] = $this->class->fieldMappings[$idField]->type; - $where[] = $this->quoteStrategy->getColumnName($idField, $this->class, $this->platform); - - continue; - } - - assert($this->class->associationMappings[$idField]->isToOneOwningSide()); - - $params[] = $identifier[$idField]; - $where[] = $this->quoteStrategy->getJoinColumnName( - $this->class->associationMappings[$idField]->joinColumns[0], - $this->class, - $this->platform, - ); - - $targetMapping = $this->em->getClassMetadata($this->class->associationMappings[$idField]->targetEntity); - $targetType = PersisterHelper::getTypeOfField($targetMapping->identifier[0], $targetMapping, $this->em); - - if ($targetType === []) { - throw UnrecognizedField::byFullyQualifiedName($this->class->name, $targetMapping->identifier[0]); - } - - $types[] = reset($targetType); - } - - if ($versioned) { - $versionField = $this->class->versionField; - assert($versionField !== null); - $versionFieldType = $this->class->fieldMappings[$versionField]->type; - $versionColumn = $this->quoteStrategy->getColumnName($versionField, $this->class, $this->platform); - - $where[] = $versionColumn; - $types[] = $this->class->fieldMappings[$versionField]->type; - $params[] = $this->class->propertyAccessors[$versionField]->getValue($entity); - - switch ($versionFieldType) { - case Types::SMALLINT: - case Types::INTEGER: - case Types::BIGINT: - $set[] = $versionColumn . ' = ' . $versionColumn . ' + 1'; - break; - - case Types::DATETIME_MUTABLE: - $set[] = $versionColumn . ' = CURRENT_TIMESTAMP'; - break; - } - } - - $sql = 'UPDATE ' . $quotedTableName - . ' SET ' . implode(', ', $set) - . ' WHERE ' . implode(' = ? AND ', $where) . ' = ?'; - - $result = $this->conn->executeStatement($sql, $params, $types); - - if ($versioned && ! $result) { - throw OptimisticLockException::lockFailed($entity); - } - } - - /** - * @param array $identifier - * @param string[] $types - * - * @todo Add check for platform if it supports foreign keys/cascading. - */ - protected function deleteJoinTableRecords(array $identifier, array $types): void - { - foreach ($this->class->associationMappings as $mapping) { - if (! $mapping->isManyToMany() || $mapping->isOnDeleteCascade) { - continue; - } - - // @Todo this only covers scenarios with no inheritance or of the same level. Is there something - // like self-referential relationship between different levels of an inheritance hierarchy? I hope not! - $selfReferential = ($mapping->targetEntity === $mapping->sourceEntity); - $class = $this->class; - $association = $mapping; - $otherColumns = []; - $otherKeys = []; - $keys = []; - - if (! $mapping->isOwningSide()) { - $class = $this->em->getClassMetadata($mapping->targetEntity); - } - - $association = $this->em->getMetadataFactory()->getOwningSide($association); - $joinColumns = $mapping->isOwningSide() - ? $association->joinTable->joinColumns - : $association->joinTable->inverseJoinColumns; - - if ($selfReferential) { - $otherColumns = ! $mapping->isOwningSide() - ? $association->joinTable->joinColumns - : $association->joinTable->inverseJoinColumns; - } - - foreach ($joinColumns as $joinColumn) { - $keys[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - - foreach ($otherColumns as $joinColumn) { - $otherKeys[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - - $joinTableName = $this->quoteStrategy->getJoinTableName($association, $this->class, $this->platform); - - $this->conn->delete($joinTableName, array_combine($keys, $identifier), $types); - - if ($selfReferential) { - $this->conn->delete($joinTableName, array_combine($otherKeys, $identifier), $types); - } - } - } - - public function delete(object $entity): bool - { - $class = $this->class; - $identifier = $this->em->getUnitOfWork()->getEntityIdentifier($entity); - $tableName = $this->quoteStrategy->getTableName($class, $this->platform); - $idColumns = $this->quoteStrategy->getIdentifierColumnNames($class, $this->platform); - $id = array_combine($idColumns, $identifier); - $types = $this->getClassIdentifiersTypes($class); - - $this->deleteJoinTableRecords($identifier, $types); - - return (bool) $this->conn->delete($tableName, $id, $types); - } - - /** - * Prepares the changeset of an entity for database insertion (UPDATE). - * - * The changeset is obtained from the currently running UnitOfWork. - * - * During this preparation the array that is passed as the second parameter is filled with - * => pairs, grouped by table name. - * - * Example: - * - * array( - * 'foo_table' => array('column1' => 'value1', 'column2' => 'value2', ...), - * 'bar_table' => array('columnX' => 'valueX', 'columnY' => 'valueY', ...), - * ... - * ) - * - * - * @param object $entity The entity for which to prepare the data. - * @param bool $isInsert Whether the data to be prepared refers to an insert statement. - * - * @return mixed[][] The prepared data. - * @phpstan-return array> - */ - protected function prepareUpdateData(object $entity, bool $isInsert = false): array - { - $versionField = null; - $result = []; - $uow = $this->em->getUnitOfWork(); - - $versioned = $this->class->isVersioned; - if ($versioned !== false) { - $versionField = $this->class->versionField; - } - - foreach ($uow->getEntityChangeSet($entity) as $field => $change) { - if (isset($versionField) && $versionField === $field) { - continue; - } - - if (isset($this->class->embeddedClasses[$field])) { - continue; - } - - $newVal = $change[1]; - - if (! isset($this->class->associationMappings[$field])) { - $fieldMapping = $this->class->fieldMappings[$field]; - $columnName = $fieldMapping->columnName; - - if (! $isInsert && isset($fieldMapping->notUpdatable)) { - continue; - } - - if ($isInsert && isset($fieldMapping->notInsertable)) { - continue; - } - - $this->columnTypes[$columnName] = $fieldMapping->type; - - $result[$this->getOwningTable($field)][$columnName] = $newVal; - - continue; - } - - $assoc = $this->class->associationMappings[$field]; - - // Only owning side of x-1 associations can have a FK column. - if (! $assoc->isToOneOwningSide()) { - continue; - } - - if ($newVal !== null) { - $oid = spl_object_id($newVal); - - // If the associated entity $newVal is not yet persisted and/or does not yet have - // an ID assigned, we must set $newVal = null. This will insert a null value and - // schedule an extra update on the UnitOfWork. - // - // This gives us extra time to a) possibly obtain a database-generated identifier - // value for $newVal, and b) insert $newVal into the database before the foreign - // key reference is being made. - // - // When looking at $this->queuedInserts and $uow->isScheduledForInsert, be aware - // of the implementation details that our own executeInserts() method will remove - // entities from the former as soon as the insert statement has been executed and - // a post-insert ID has been assigned (if necessary), and that the UnitOfWork has - // already removed entities from its own list at the time they were passed to our - // addInsert() method. - // - // Then, there is one extra exception we can make: An entity that references back to itself - // _and_ uses an application-provided ID (the "NONE" generator strategy) also does not - // need the extra update, although it is still in the list of insertions itself. - // This looks like a minor optimization at first, but is the capstone for being able to - // use non-NULLable, self-referencing associations in applications that provide IDs (like UUIDs). - if ( - (isset($this->queuedInserts[$oid]) || $uow->isScheduledForInsert($newVal)) - && ! ($newVal === $entity && $this->class->isIdentifierNatural()) - ) { - $uow->scheduleExtraUpdate($entity, [$field => [null, $newVal]]); - - $newVal = null; - } - } - - $newValId = null; - - if ($newVal !== null) { - $newValId = $uow->getEntityIdentifier($newVal); - } - - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - $owningTable = $this->getOwningTable($field); - - foreach ($assoc->joinColumns as $joinColumn) { - $sourceColumn = $joinColumn->name; - $targetColumn = $joinColumn->referencedColumnName; - $quotedColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - - $this->quotedColumns[$sourceColumn] = $quotedColumn; - $this->columnTypes[$sourceColumn] = PersisterHelper::getTypeOfColumn($targetColumn, $targetClass, $this->em); - $result[$owningTable][$sourceColumn] = $newValId - ? $newValId[$targetClass->getFieldForColumn($targetColumn)] - : null; - } - } - - return $result; - } - - /** - * Prepares the data changeset of a managed entity for database insertion (initial INSERT). - * The changeset of the entity is obtained from the currently running UnitOfWork. - * - * The default insert data preparation is the same as for updates. - * - * @see prepareUpdateData - * - * @param object $entity The entity for which to prepare the data. - * - * @return mixed[][] The prepared data for the tables to update. - * @phpstan-return array - */ - protected function prepareInsertData(object $entity): array - { - return $this->prepareUpdateData($entity, true); - } - - public function getOwningTable(string $fieldName): string - { - return $this->class->getTableName(); - } - - /** - * {@inheritDoc} - */ - public function load( - array $criteria, - object|null $entity = null, - AssociationMapping|null $assoc = null, - array $hints = [], - LockMode|int|null $lockMode = null, - int|null $limit = null, - array|null $orderBy = null, - ): object|null { - $this->switchPersisterContext(null, $limit); - - $sql = $this->getSelectSQL($criteria, $assoc, $lockMode, $limit, null, $orderBy); - [$params, $types] = $this->expandParameters($criteria); - $stmt = $this->conn->executeQuery($sql, $params, $types); - - if ($entity !== null) { - $hints[Query::HINT_REFRESH] = true; - $hints[Query::HINT_REFRESH_ENTITY] = $entity; - } - - $hydrator = $this->em->newHydrator($this->currentPersisterContext->selectJoinSql ? Query::HYDRATE_OBJECT : Query::HYDRATE_SIMPLEOBJECT); - $entities = $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, $hints); - - return $entities ? $entities[0] : null; - } - - /** - * {@inheritDoc} - */ - public function loadById(array $identifier, object|null $entity = null): object|null - { - return $this->load($identifier, $entity); - } - - /** - * {@inheritDoc} - */ - public function loadOneToOneEntity(AssociationMapping $assoc, object $sourceEntity, array $identifier = []): object|null - { - $foundEntity = $this->em->getUnitOfWork()->tryGetById($identifier, $assoc->targetEntity); - if ($foundEntity !== false) { - return $foundEntity; - } - - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - if ($assoc->isOwningSide()) { - $isInverseSingleValued = $assoc->inversedBy !== null && ! $targetClass->isCollectionValuedAssociation($assoc->inversedBy); - - // Mark inverse side as fetched in the hints, otherwise the UoW would - // try to load it in a separate query (remember: to-one inverse sides can not be lazy). - $hints = []; - - if ($isInverseSingleValued) { - $hints['fetched']['r'][$assoc->inversedBy] = true; - } - - $targetEntity = $this->load($identifier, null, $assoc, $hints); - - // Complete bidirectional association, if necessary - if ($targetEntity !== null && $isInverseSingleValued) { - $targetClass->propertyAccessors[$assoc->inversedBy]->setValue($targetEntity, $sourceEntity); - } - - return $targetEntity; - } - - assert(isset($assoc->mappedBy)); - $sourceClass = $this->em->getClassMetadata($assoc->sourceEntity); - $owningAssoc = $targetClass->getAssociationMapping($assoc->mappedBy); - assert($owningAssoc->isOneToOneOwningSide()); - - $computedIdentifier = []; - - /** @var array|null $sourceEntityData */ - $sourceEntityData = null; - - // TRICKY: since the association is specular source and target are flipped - foreach ($owningAssoc->targetToSourceKeyColumns as $sourceKeyColumn => $targetKeyColumn) { - if (! isset($sourceClass->fieldNames[$sourceKeyColumn])) { - // The likely case here is that the column is a join column - // in an association mapping. However, there is no guarantee - // at this point that a corresponding (generally identifying) - // association has been mapped in the source entity. To handle - // this case we directly reference the column-keyed data used - // to initialize the source entity before throwing an exception. - $resolvedSourceData = false; - if (! isset($sourceEntityData)) { - $sourceEntityData = $this->em->getUnitOfWork()->getOriginalEntityData($sourceEntity); - } - - if (isset($sourceEntityData[$sourceKeyColumn])) { - $dataValue = $sourceEntityData[$sourceKeyColumn]; - if ($dataValue !== null) { - $resolvedSourceData = true; - $computedIdentifier[$targetClass->getFieldForColumn($targetKeyColumn)] = - $dataValue; - } - } - - if (! $resolvedSourceData) { - throw MappingException::joinColumnMustPointToMappedField( - $sourceClass->name, - $sourceKeyColumn, - ); - } - } else { - $computedIdentifier[$targetClass->getFieldForColumn($targetKeyColumn)] = - $sourceClass->propertyAccessors[$sourceClass->fieldNames[$sourceKeyColumn]]->getValue($sourceEntity); - } - } - - $targetEntity = $this->load($computedIdentifier, null, $assoc); - - if ($targetEntity !== null) { - $targetClass->setFieldValue($targetEntity, $assoc->mappedBy, $sourceEntity); - } - - return $targetEntity; - } - - /** - * {@inheritDoc} - */ - public function refresh(array $id, object $entity, LockMode|int|null $lockMode = null): void - { - $sql = $this->getSelectSQL($id, null, $lockMode); - [$params, $types] = $this->expandParameters($id); - $stmt = $this->conn->executeQuery($sql, $params, $types); - - $hydrator = $this->em->newHydrator(Query::HYDRATE_OBJECT); - $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, [Query::HINT_REFRESH => true]); - } - - public function count(array|Criteria $criteria = []): int - { - $sql = $this->getCountSQL($criteria); - - [$params, $types] = $criteria instanceof Criteria - ? $this->expandCriteriaParameters($criteria) - : $this->expandParameters($criteria); - - $count = (int) $this->conn->executeQuery($sql, $params, $types)->fetchOne(); - assert($count >= 0); - - return $count; - } - - /** - * {@inheritDoc} - */ - public function loadCriteria(Criteria $criteria): array - { - $orderBy = array_map( - static fn (Order $order): string => $order->value, - $criteria->orderings(), - ); - $limit = $criteria->getMaxResults(); - $offset = $criteria->getFirstResult(); - $query = $this->getSelectSQL($criteria, null, null, $limit, $offset, $orderBy); - - [$params, $types] = $this->expandCriteriaParameters($criteria); - - $stmt = $this->conn->executeQuery($query, $params, $types); - $hydrator = $this->em->newHydrator($this->currentPersisterContext->selectJoinSql ? Query::HYDRATE_OBJECT : Query::HYDRATE_SIMPLEOBJECT); - - return $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, [UnitOfWork::HINT_DEFEREAGERLOAD => true]); - } - - /** - * {@inheritDoc} - */ - public function expandCriteriaParameters(Criteria $criteria): array - { - $expression = $criteria->getWhereExpression(); - $sqlParams = []; - $sqlTypes = []; - - if ($expression === null) { - return [$sqlParams, $sqlTypes]; - } - - $valueVisitor = new SqlValueVisitor(); - - $valueVisitor->dispatch($expression); - - [, $types] = $valueVisitor->getParamsAndTypes(); - - foreach ($types as $type) { - [$field, $value, $operator] = $type; - - if ($value === null && ($operator === Comparison::EQ || $operator === Comparison::NEQ)) { - continue; - } - - $sqlParams = [...$sqlParams, ...$this->getValues($value)]; - $sqlTypes = [...$sqlTypes, ...$this->getTypes($field, $value, $this->class)]; - } - - return [$sqlParams, $sqlTypes]; - } - - /** - * {@inheritDoc} - */ - public function loadAll( - array $criteria = [], - array|null $orderBy = null, - int|null $limit = null, - int|null $offset = null, - ): array { - $this->switchPersisterContext($offset, $limit); - - $sql = $this->getSelectSQL($criteria, null, null, $limit, $offset, $orderBy); - [$params, $types] = $this->expandParameters($criteria); - $stmt = $this->conn->executeQuery($sql, $params, $types); - - $hydrator = $this->em->newHydrator($this->currentPersisterContext->selectJoinSql ? Query::HYDRATE_OBJECT : Query::HYDRATE_SIMPLEOBJECT); - - return $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, [UnitOfWork::HINT_DEFEREAGERLOAD => true]); - } - - /** - * {@inheritDoc} - */ - public function getManyToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array { - assert($assoc->isManyToMany()); - $this->switchPersisterContext($offset, $limit); - - $stmt = $this->getManyToManyStatement($assoc, $sourceEntity, $offset, $limit); - - return $this->loadArrayFromResult($assoc, $stmt); - } - - /** - * Loads an array of entities from a given DBAL statement. - * - * @return mixed[] - */ - private function loadArrayFromResult(AssociationMapping $assoc, Result $stmt): array - { - $rsm = $this->currentPersisterContext->rsm; - $hints = [UnitOfWork::HINT_DEFEREAGERLOAD => true]; - - if ($assoc->isIndexed()) { - $rsm = clone $this->currentPersisterContext->rsm; // this is necessary because the "default rsm" should be changed. - $rsm->addIndexBy('r', $assoc->indexBy()); - } - - return $this->em->newHydrator(Query::HYDRATE_OBJECT)->hydrateAll($stmt, $rsm, $hints); - } - - /** - * Hydrates a collection from a given DBAL statement. - * - * @return mixed[] - */ - private function loadCollectionFromStatement( - AssociationMapping $assoc, - Result $stmt, - PersistentCollection $coll, - ): array { - $rsm = $this->currentPersisterContext->rsm; - $hints = [ - UnitOfWork::HINT_DEFEREAGERLOAD => true, - 'collection' => $coll, - ]; - - if ($assoc->isIndexed()) { - $rsm = clone $this->currentPersisterContext->rsm; // this is necessary because the "default rsm" should be changed. - $rsm->addIndexBy('r', $assoc->indexBy()); - } - - return $this->em->newHydrator(Query::HYDRATE_OBJECT)->hydrateAll($stmt, $rsm, $hints); - } - - /** - * {@inheritDoc} - */ - public function loadManyToManyCollection(AssociationMapping $assoc, object $sourceEntity, PersistentCollection $collection): array - { - assert($assoc->isManyToMany()); - $stmt = $this->getManyToManyStatement($assoc, $sourceEntity); - - return $this->loadCollectionFromStatement($assoc, $stmt, $collection); - } - - /** @throws MappingException */ - private function getManyToManyStatement( - AssociationMapping&ManyToManyAssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): Result { - $this->switchPersisterContext($offset, $limit); - - $sourceClass = $this->em->getClassMetadata($assoc->sourceEntity); - $class = $sourceClass; - $association = $assoc; - $criteria = []; - $parameters = []; - - if (! $assoc->isOwningSide()) { - $class = $this->em->getClassMetadata($assoc->targetEntity); - } - - $association = $this->em->getMetadataFactory()->getOwningSide($assoc); - $joinColumns = $assoc->isOwningSide() - ? $association->joinTable->joinColumns - : $association->joinTable->inverseJoinColumns; - - $quotedJoinTable = $this->quoteStrategy->getJoinTableName($association, $class, $this->platform); - - foreach ($joinColumns as $joinColumn) { - $sourceKeyColumn = $joinColumn->referencedColumnName; - $quotedKeyColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - - switch (true) { - case $sourceClass->containsForeignIdentifier: - $field = $sourceClass->getFieldForColumn($sourceKeyColumn); - $value = $sourceClass->propertyAccessors[$field]->getValue($sourceEntity); - - if (isset($sourceClass->associationMappings[$field])) { - $value = $this->em->getUnitOfWork()->getEntityIdentifier($value); - $value = $value[$this->em->getClassMetadata($sourceClass->associationMappings[$field]->targetEntity)->identifier[0]]; - } - - break; - - case isset($sourceClass->fieldNames[$sourceKeyColumn]): - $field = $sourceClass->fieldNames[$sourceKeyColumn]; - $value = $sourceClass->propertyAccessors[$field]->getValue($sourceEntity); - - break; - - default: - throw MappingException::joinColumnMustPointToMappedField( - $sourceClass->name, - $sourceKeyColumn, - ); - } - - $criteria[$quotedJoinTable . '.' . $quotedKeyColumn] = $value; - $parameters[] = [ - 'value' => $value, - 'field' => $field, - 'class' => $sourceClass, - ]; - } - - $sql = $this->getSelectSQL($criteria, $assoc, null, $limit, $offset); - [$params, $types] = $this->expandToManyParameters($parameters); - - return $this->conn->executeQuery($sql, $params, $types); - } - - public function getSelectSQL( - array|Criteria $criteria, - AssociationMapping|null $assoc = null, - LockMode|int|null $lockMode = null, - int|null $limit = null, - int|null $offset = null, - array|null $orderBy = null, - ): string { - $this->switchPersisterContext($offset, $limit); - - $joinSql = ''; - $orderBySql = ''; - - if ($assoc !== null && $assoc->isManyToMany()) { - $joinSql = $this->getSelectManyToManyJoinSQL($assoc); - } - - if ($assoc !== null && $assoc->isOrdered()) { - $orderBy = $assoc->orderBy(); - } - - if ($orderBy) { - $orderBySql = $this->getOrderBySQL($orderBy, $this->getSQLTableAlias($this->class->name)); - } - - $conditionSql = $criteria instanceof Criteria - ? $this->getSelectConditionCriteriaSQL($criteria) - : $this->getSelectConditionSQL($criteria, $assoc); - - $lockSql = match ($lockMode) { - LockMode::PESSIMISTIC_READ => ' ' . $this->getReadLockSQL($this->platform), - LockMode::PESSIMISTIC_WRITE => ' ' . $this->getWriteLockSQL($this->platform), - default => '', - }; - - $columnList = $this->getSelectColumnsSQL(); - $tableAlias = $this->getSQLTableAlias($this->class->name); - $filterSql = $this->generateFilterConditionSQL($this->class, $tableAlias); - $tableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - - if ($filterSql !== '') { - $conditionSql = $conditionSql - ? $conditionSql . ' AND ' . $filterSql - : $filterSql; - } - - $select = 'SELECT ' . $columnList; - $from = ' FROM ' . $tableName . ' ' . $tableAlias; - $join = $this->currentPersisterContext->selectJoinSql . $joinSql; - $where = ($conditionSql ? ' WHERE ' . $conditionSql : ''); - $lock = $this->platform->appendLockHint($from, $lockMode ?? LockMode::NONE); - $query = $select - . $lock - . $join - . $where - . $orderBySql; - - return $this->platform->modifyLimitQuery($query, $limit, $offset ?? 0) . $lockSql; - } - - public function getCountSQL(array|Criteria $criteria = []): string - { - $tableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - $tableAlias = $this->getSQLTableAlias($this->class->name); - - $conditionSql = $criteria instanceof Criteria - ? $this->getSelectConditionCriteriaSQL($criteria) - : $this->getSelectConditionSQL($criteria); - - $filterSql = $this->generateFilterConditionSQL($this->class, $tableAlias); - - if ($filterSql !== '') { - $conditionSql = $conditionSql - ? $conditionSql . ' AND ' . $filterSql - : $filterSql; - } - - return 'SELECT COUNT(*) ' - . 'FROM ' . $tableName . ' ' . $tableAlias - . (empty($conditionSql) ? '' : ' WHERE ' . $conditionSql); - } - - /** - * Gets the ORDER BY SQL snippet for ordered collections. - * - * @phpstan-param array $orderBy - * - * @throws InvalidOrientation - * @throws InvalidFindByCall - * @throws UnrecognizedField - */ - final protected function getOrderBySQL(array $orderBy, string $baseTableAlias): string - { - $orderByList = []; - - foreach ($orderBy as $fieldName => $orientation) { - $orientation = strtoupper(trim($orientation)); - - if ($orientation !== 'ASC' && $orientation !== 'DESC') { - throw InvalidOrientation::fromClassNameAndField($this->class->name, $fieldName); - } - - if (isset($this->class->fieldMappings[$fieldName])) { - $tableAlias = isset($this->class->fieldMappings[$fieldName]->inherited) - ? $this->getSQLTableAlias($this->class->fieldMappings[$fieldName]->inherited) - : $baseTableAlias; - - $columnName = $this->quoteStrategy->getColumnName($fieldName, $this->class, $this->platform); - $orderByList[] = $tableAlias . '.' . $columnName . ' ' . $orientation; - - continue; - } - - if (isset($this->class->associationMappings[$fieldName])) { - $association = $this->class->associationMappings[$fieldName]; - if (! $association->isOwningSide()) { - throw InvalidFindByCall::fromInverseSideUsage($this->class->name, $fieldName); - } - - assert($association->isToOneOwningSide()); - - $tableAlias = isset($association->inherited) - ? $this->getSQLTableAlias($association->inherited) - : $baseTableAlias; - - foreach ($association->joinColumns as $joinColumn) { - $columnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - $orderByList[] = $tableAlias . '.' . $columnName . ' ' . $orientation; - } - - continue; - } - - throw UnrecognizedField::byFullyQualifiedName($this->class->name, $fieldName); - } - - return ' ORDER BY ' . implode(', ', $orderByList); - } - - /** - * Gets the SQL fragment with the list of columns to select when querying for - * an entity in this persister. - * - * Subclasses should override this method to alter or change the select column - * list SQL fragment. Note that in the implementation of BasicEntityPersister - * the resulting SQL fragment is generated only once and cached in {@link selectColumnListSql}. - * Subclasses may or may not do the same. - */ - protected function getSelectColumnsSQL(): string - { - if ($this->currentPersisterContext->selectColumnListSql !== null && $this->isFilterHashUpToDate()) { - return $this->currentPersisterContext->selectColumnListSql; - } - - $columnList = []; - $this->currentPersisterContext->rsm->addEntityResult($this->class->name, 'r'); // r for root - - // Add regular columns to select list - foreach ($this->class->fieldNames as $field) { - $columnList[] = $this->getSelectColumnSQL($field, $this->class); - } - - $this->currentPersisterContext->selectJoinSql = ''; - $eagerAliasCounter = 0; - - foreach ($this->class->associationMappings as $assocField => $assoc) { - $assocColumnSQL = $this->getSelectColumnAssociationSQL($assocField, $assoc, $this->class); - - if ($assocColumnSQL) { - $columnList[] = $assocColumnSQL; - } - - $isAssocToOneInverseSide = $assoc->isToOne() && ! $assoc->isOwningSide(); - $isAssocFromOneEager = $assoc->isToOne() && $assoc->fetch === ClassMetadata::FETCH_EAGER; - - if (! ($isAssocFromOneEager || $isAssocToOneInverseSide)) { - continue; - } - - if ($assoc->isToMany() && $this->currentPersisterContext->handlesLimits) { - continue; - } - - $eagerEntity = $this->em->getClassMetadata($assoc->targetEntity); - - if ($eagerEntity->inheritanceType !== ClassMetadata::INHERITANCE_TYPE_NONE) { - continue; // now this is why you shouldn't use inheritance - } - - $assocAlias = 'e' . ($eagerAliasCounter++); - $this->currentPersisterContext->rsm->addJoinedEntityResult($assoc->targetEntity, $assocAlias, 'r', $assocField); - - foreach ($eagerEntity->fieldNames as $field) { - $columnList[] = $this->getSelectColumnSQL($field, $eagerEntity, $assocAlias); - } - - foreach ($eagerEntity->associationMappings as $eagerAssocField => $eagerAssoc) { - $eagerAssocColumnSQL = $this->getSelectColumnAssociationSQL( - $eagerAssocField, - $eagerAssoc, - $eagerEntity, - $assocAlias, - ); - - if ($eagerAssocColumnSQL) { - $columnList[] = $eagerAssocColumnSQL; - } - } - - $association = $assoc; - $joinCondition = []; - - if ($assoc->isIndexed()) { - assert($assoc->isToMany()); - $this->currentPersisterContext->rsm->addIndexBy($assocAlias, $assoc->indexBy()); - } - - if (! $assoc->isOwningSide()) { - $eagerEntity = $this->em->getClassMetadata($assoc->targetEntity); - $association = $eagerEntity->getAssociationMapping($assoc->mappedBy); - } - - assert($association->isToOneOwningSide()); - - $joinTableAlias = $this->getSQLTableAlias($eagerEntity->name, $assocAlias); - $joinTableName = $this->quoteStrategy->getTableName($eagerEntity, $this->platform); - - if ($assoc->isOwningSide()) { - $tableAlias = $this->getSQLTableAlias($association->targetEntity, $assocAlias); - $this->currentPersisterContext->selectJoinSql .= ' ' . $this->getJoinSQLForJoinColumns($association->joinColumns); - - foreach ($association->joinColumns as $joinColumn) { - $sourceCol = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - $targetCol = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $this->class, $this->platform); - $joinCondition[] = $this->getSQLTableAlias($association->sourceEntity) - . '.' . $sourceCol . ' = ' . $tableAlias . '.' . $targetCol; - } - - // Add filter SQL - $filterSql = $this->generateFilterConditionSQL($eagerEntity, $tableAlias); - if ($filterSql) { - $joinCondition[] = $filterSql; - } - } else { - $this->currentPersisterContext->selectJoinSql .= ' LEFT JOIN'; - - foreach ($association->joinColumns as $joinColumn) { - $sourceCol = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - $targetCol = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $this->class, $this->platform); - - $joinCondition[] = $this->getSQLTableAlias($association->sourceEntity, $assocAlias) . '.' . $sourceCol . ' = ' - . $this->getSQLTableAlias($association->targetEntity) . '.' . $targetCol; - } - - // Add filter SQL - $filterSql = $this->generateFilterConditionSQL($eagerEntity, $joinTableAlias); - if ($filterSql) { - $joinCondition[] = $filterSql; - } - } - - $this->currentPersisterContext->selectJoinSql .= ' ' . $joinTableName . ' ' . $joinTableAlias . ' ON '; - $this->currentPersisterContext->selectJoinSql .= implode(' AND ', $joinCondition); - } - - $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList); - $this->updateFilterHash(); - - return $this->currentPersisterContext->selectColumnListSql; - } - - /** Gets the SQL join fragment used when selecting entities from an association. */ - protected function getSelectColumnAssociationSQL( - string $field, - AssociationMapping $assoc, - ClassMetadata $class, - string $alias = 'r', - ): string { - if (! $assoc->isToOneOwningSide()) { - return ''; - } - - $columnList = []; - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - $isIdentifier = isset($assoc->id) && $assoc->id === true; - $sqlTableAlias = $this->getSQLTableAlias($class->name, ($alias === 'r' ? '' : $alias)); - - foreach ($assoc->joinColumns as $joinColumn) { - $quotedColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - $resultColumnName = $this->getSQLColumnAlias($joinColumn->name); - $type = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - - $this->currentPersisterContext->rsm->addMetaResult($alias, $resultColumnName, $joinColumn->name, $isIdentifier, $type); - - $columnList[] = sprintf('%s.%s AS %s', $sqlTableAlias, $quotedColumn, $resultColumnName); - } - - return implode(', ', $columnList); - } - - /** - * Gets the SQL join fragment used when selecting entities from a - * many-to-many association. - */ - protected function getSelectManyToManyJoinSQL(AssociationMapping&ManyToManyAssociationMapping $manyToMany): string - { - $conditions = []; - $association = $manyToMany; - $sourceTableAlias = $this->getSQLTableAlias($this->class->name); - - $association = $this->em->getMetadataFactory()->getOwningSide($manyToMany); - $joinTableName = $this->quoteStrategy->getJoinTableName($association, $this->class, $this->platform); - $joinColumns = $manyToMany->isOwningSide() - ? $association->joinTable->inverseJoinColumns - : $association->joinTable->joinColumns; - - foreach ($joinColumns as $joinColumn) { - $quotedSourceColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - $quotedTargetColumn = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $this->class, $this->platform); - $conditions[] = $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $joinTableName . '.' . $quotedSourceColumn; - } - - return ' INNER JOIN ' . $joinTableName . ' ON ' . implode(' AND ', $conditions); - } - - public function getInsertSQL(): string - { - if ($this->insertSql !== null) { - return $this->insertSql; - } - - $columns = $this->getInsertColumnList(); - $tableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - - if (empty($columns)) { - $identityColumn = $this->quoteStrategy->getColumnName($this->class->identifier[0], $this->class, $this->platform); - $this->insertSql = $this->platform->getEmptyIdentityInsertSQL($tableName, $identityColumn); - - return $this->insertSql; - } - - $values = []; - $columns = array_unique($columns); - - foreach ($columns as $column) { - $placeholder = '?'; - - if ( - isset($this->class->fieldNames[$column]) - && isset($this->columnTypes[$this->class->fieldNames[$column]]) - && isset($this->class->fieldMappings[$this->class->fieldNames[$column]]) - ) { - $type = Type::getType($this->columnTypes[$this->class->fieldNames[$column]]); - $placeholder = $type->convertToDatabaseValueSQL('?', $this->platform); - } - - $values[] = $placeholder; - } - - $columns = implode(', ', $columns); - $values = implode(', ', $values); - - $this->insertSql = sprintf('INSERT INTO %s (%s) VALUES (%s)', $tableName, $columns, $values); - - return $this->insertSql; - } - - /** - * Gets the list of columns to put in the INSERT SQL statement. - * - * Subclasses should override this method to alter or change the list of - * columns placed in the INSERT statements used by the persister. - * - * @phpstan-return list - */ - protected function getInsertColumnList(): array - { - $columns = []; - - foreach ($this->class->propertyAccessors as $name => $field) { - if ($this->class->isVersioned && $this->class->versionField === $name) { - continue; - } - - if (isset($this->class->embeddedClasses[$name])) { - continue; - } - - if (isset($this->class->associationMappings[$name])) { - $assoc = $this->class->associationMappings[$name]; - - if ($assoc->isToOneOwningSide()) { - foreach ($assoc->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - } - } - - continue; - } - - if (! $this->class->isIdGeneratorIdentity() || $this->class->identifier[0] !== $name) { - if (isset($this->class->fieldMappings[$name]->notInsertable)) { - continue; - } - - $columns[] = $this->quoteStrategy->getColumnName($name, $this->class, $this->platform); - $this->columnTypes[$name] = $this->class->fieldMappings[$name]->type; - } - } - - return $columns; - } - - /** - * Gets the SQL snippet of a qualified column name for the given field name. - * - * @param ClassMetadata $class The class that declares this field. The table this class is - * mapped to must own the column for the given field. - */ - protected function getSelectColumnSQL(string $field, ClassMetadata $class, string $alias = 'r'): string - { - $root = $alias === 'r' ? '' : $alias; - $tableAlias = $this->getSQLTableAlias($class->name, $root); - $fieldMapping = $class->fieldMappings[$field]; - $sql = sprintf('%s.%s', $tableAlias, $this->quoteStrategy->getColumnName($field, $class, $this->platform)); - - $columnAlias = null; - if ($this->currentPersisterContext->rsm->hasColumnAliasByField($alias, $field)) { - $columnAlias = $this->currentPersisterContext->rsm->getColumnAliasByField($alias, $field); - } - - if ($columnAlias === null) { - $columnAlias = $this->getSQLColumnAlias($fieldMapping->columnName); - } - - $this->currentPersisterContext->rsm->addFieldResult($alias, $columnAlias, $field); - if (! empty($fieldMapping->enumType)) { - $this->currentPersisterContext->rsm->addEnumResult($columnAlias, $fieldMapping->enumType); - } - - $type = Type::getType($fieldMapping->type); - $sql = $type->convertToPHPValueSQL($sql, $this->platform); - - return $sql . ' AS ' . $columnAlias; - } - - /** - * Gets the SQL table alias for the given class name. - * - * @todo Reconsider. Binding table aliases to class names is not such a good idea. - */ - protected function getSQLTableAlias(string $className, string $assocName = ''): string - { - if ($assocName) { - $className .= '#' . $assocName; - } - - if (isset($this->currentPersisterContext->sqlTableAliases[$className])) { - return $this->currentPersisterContext->sqlTableAliases[$className]; - } - - $tableAlias = 't' . $this->currentPersisterContext->sqlAliasCounter++; - - $this->currentPersisterContext->sqlTableAliases[$className] = $tableAlias; - - return $tableAlias; - } - - /** - * {@inheritDoc} - */ - public function lock(array $criteria, LockMode|int $lockMode): void - { - $conditionSql = $this->getSelectConditionSQL($criteria); - - $lockSql = match ($lockMode) { - LockMode::PESSIMISTIC_READ => $this->getReadLockSQL($this->platform), - LockMode::PESSIMISTIC_WRITE => $this->getWriteLockSQL($this->platform), - default => '', - }; - - $lock = $this->getLockTablesSql($lockMode); - $where = ($conditionSql ? ' WHERE ' . $conditionSql : '') . ' '; - $sql = 'SELECT 1 ' - . $lock - . $where - . $lockSql; - - [$params, $types] = $this->expandParameters($criteria); - - $this->conn->executeQuery($sql, $params, $types); - } - - /** - * Gets the FROM and optionally JOIN conditions to lock the entity managed by this persister. - * - * @phpstan-param LockMode::* $lockMode - */ - protected function getLockTablesSql(LockMode|int $lockMode): string - { - return $this->platform->appendLockHint( - 'FROM ' - . $this->quoteStrategy->getTableName($this->class, $this->platform) . ' ' - . $this->getSQLTableAlias($this->class->name), - $lockMode, - ); - } - - /** - * Gets the Select Where Condition from a Criteria object. - */ - protected function getSelectConditionCriteriaSQL(Criteria $criteria): string - { - $expression = $criteria->getWhereExpression(); - - if ($expression === null) { - return ''; - } - - $visitor = new SqlExpressionVisitor($this, $this->class); - - return $visitor->dispatch($expression); - } - - public function getSelectConditionStatementSQL( - string $field, - mixed $value, - AssociationMapping|null $assoc = null, - string|null $comparison = null, - ): string { - $selectedColumns = []; - $columns = $this->getSelectConditionStatementColumnSQL($field, $assoc); - - if (count($columns) > 1 && $comparison === Comparison::IN) { - /* - * @todo try to support multi-column IN expressions. - * Example: (col1, col2) IN (('val1A', 'val2A'), ('val1B', 'val2B')) - */ - throw CantUseInOperatorOnCompositeKeys::create(); - } - - foreach ($columns as $column) { - $placeholder = '?'; - - if (isset($this->class->fieldMappings[$field])) { - $type = Type::getType($this->class->fieldMappings[$field]->type); - $placeholder = $type->convertToDatabaseValueSQL($placeholder, $this->platform); - } - - if ($comparison !== null) { - // special case null value handling - if (($comparison === Comparison::EQ || $comparison === Comparison::IS) && $value === null) { - $selectedColumns[] = $column . ' IS NULL'; - - continue; - } - - if ($comparison === Comparison::NEQ && $value === null) { - $selectedColumns[] = $column . ' IS NOT NULL'; - - continue; - } - - $selectedColumns[] = $column . ' ' . sprintf(self::$comparisonMap[$comparison], $placeholder); - - continue; - } - - if (is_array($value)) { - $in = sprintf('%s IN (%s)', $column, $placeholder); - - if (array_search(null, $value, true) !== false) { - $selectedColumns[] = sprintf('(%s OR %s IS NULL)', $in, $column); - - continue; - } - - $selectedColumns[] = $in; - - continue; - } - - if ($value === null) { - $selectedColumns[] = sprintf('%s IS NULL', $column); - - continue; - } - - $selectedColumns[] = sprintf('%s = %s', $column, $placeholder); - } - - return implode(' AND ', $selectedColumns); - } - - /** - * Builds the left-hand-side of a where condition statement. - * - * @return string[] - * @phpstan-return list - * - * @throws InvalidFindByCall - * @throws UnrecognizedField - */ - private function getSelectConditionStatementColumnSQL( - string $field, - AssociationMapping|null $assoc = null, - ): array { - if (isset($this->class->fieldMappings[$field])) { - $className = $this->class->fieldMappings[$field]->inherited ?? $this->class->name; - - return [$this->getSQLTableAlias($className) . '.' . $this->quoteStrategy->getColumnName($field, $this->class, $this->platform)]; - } - - if (isset($this->class->associationMappings[$field])) { - $association = $this->class->associationMappings[$field]; - // Many-To-Many requires join table check for joinColumn - $columns = []; - $class = $this->class; - - if ($association->isManyToMany()) { - assert($assoc !== null); - if (! $association->isOwningSide()) { - $association = $assoc; - } - - assert($association->isManyToManyOwningSide()); - - $joinTableName = $this->quoteStrategy->getJoinTableName($association, $class, $this->platform); - $joinColumns = $assoc->isOwningSide() - ? $association->joinTable->joinColumns - : $association->joinTable->inverseJoinColumns; - - foreach ($joinColumns as $joinColumn) { - $columns[] = $joinTableName . '.' . $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - } else { - if (! $association->isOwningSide()) { - throw InvalidFindByCall::fromInverseSideUsage( - $this->class->name, - $field, - ); - } - - assert($association->isToOneOwningSide()); - - $className = $association->inherited ?? $this->class->name; - - foreach ($association->joinColumns as $joinColumn) { - $columns[] = $this->getSQLTableAlias($className) . '.' . $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); - } - } - - return $columns; - } - - if ($assoc !== null && ! str_contains($field, ' ') && ! str_contains($field, '(')) { - // very careless developers could potentially open up this normally hidden api for userland attacks, - // therefore checking for spaces and function calls which are not allowed. - - // found a join column condition, not really a "field" - return [$field]; - } - - throw UnrecognizedField::byFullyQualifiedName($this->class->name, $field); - } - - /** - * Gets the conditional SQL fragment used in the WHERE clause when selecting - * entities in this persister. - * - * Subclasses are supposed to override this method if they intend to change - * or alter the criteria by which entities are selected. - * - * @phpstan-param array $criteria - */ - protected function getSelectConditionSQL(array $criteria, AssociationMapping|null $assoc = null): string - { - $conditions = []; - - foreach ($criteria as $field => $value) { - $conditions[] = $this->getSelectConditionStatementSQL($field, $value, $assoc); - } - - return implode(' AND ', $conditions); - } - - /** - * {@inheritDoc} - */ - public function getOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array { - assert($assoc instanceof OneToManyAssociationMapping); - $this->switchPersisterContext($offset, $limit); - - $stmt = $this->getOneToManyStatement($assoc, $sourceEntity, $offset, $limit); - - return $this->loadArrayFromResult($assoc, $stmt); - } - - public function loadOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - PersistentCollection $collection, - ): mixed { - assert($assoc instanceof OneToManyAssociationMapping); - $stmt = $this->getOneToManyStatement($assoc, $sourceEntity); - - return $this->loadCollectionFromStatement($assoc, $stmt, $collection); - } - - /** Builds criteria and execute SQL statement to fetch the one to many entities from. */ - private function getOneToManyStatement( - OneToManyAssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): Result { - $this->switchPersisterContext($offset, $limit); - - $criteria = []; - $parameters = []; - $owningAssoc = $this->class->associationMappings[$assoc->mappedBy]; - $sourceClass = $this->em->getClassMetadata($assoc->sourceEntity); - $tableAlias = $this->getSQLTableAlias($owningAssoc->inherited ?? $this->class->name); - assert($owningAssoc->isManyToOne()); - - foreach ($owningAssoc->targetToSourceKeyColumns as $sourceKeyColumn => $targetKeyColumn) { - if ($sourceClass->containsForeignIdentifier) { - $field = $sourceClass->getFieldForColumn($sourceKeyColumn); - $value = $sourceClass->propertyAccessors[$field]->getValue($sourceEntity); - - if (isset($sourceClass->associationMappings[$field])) { - $value = $this->em->getUnitOfWork()->getEntityIdentifier($value); - $value = $value[$this->em->getClassMetadata($sourceClass->associationMappings[$field]->targetEntity)->identifier[0]]; - } - - $criteria[$tableAlias . '.' . $targetKeyColumn] = $value; - $parameters[] = [ - 'value' => $value, - 'field' => $field, - 'class' => $sourceClass, - ]; - - continue; - } - - $field = $sourceClass->fieldNames[$sourceKeyColumn]; - $value = $sourceClass->propertyAccessors[$field]->getValue($sourceEntity); - - $criteria[$tableAlias . '.' . $targetKeyColumn] = $value; - $parameters[] = [ - 'value' => $value, - 'field' => $field, - 'class' => $sourceClass, - ]; - } - - $sql = $this->getSelectSQL($criteria, $assoc, null, $limit, $offset); - [$params, $types] = $this->expandToManyParameters($parameters); - - return $this->conn->executeQuery($sql, $params, $types); - } - - /** - * {@inheritDoc} - */ - public function expandParameters(array $criteria): array - { - $params = []; - $types = []; - - foreach ($criteria as $field => $value) { - if ($value === null) { - continue; // skip null values. - } - - $types = [...$types, ...$this->getTypes($field, $value, $this->class)]; - $params = array_merge($params, $this->getValues($value)); - } - - return [$params, $types]; - } - - /** - * Expands the parameters from the given criteria and use the correct binding types if found, - * specialized for OneToMany or ManyToMany associations. - * - * @param mixed[][] $criteria an array of arrays containing following: - * - field to which each criterion will be bound - * - value to be bound - * - class to which the field belongs to - * - * @return mixed[][] - * @phpstan-return array{0: array, 1: list} - */ - private function expandToManyParameters(array $criteria): array - { - $params = []; - $types = []; - - foreach ($criteria as $criterion) { - if ($criterion['value'] === null) { - continue; // skip null values. - } - - $types = [...$types, ...$this->getTypes($criterion['field'], $criterion['value'], $criterion['class'])]; - $params = array_merge($params, $this->getValues($criterion['value'])); - } - - return [$params, $types]; - } - - /** - * Infers field types to be used by parameter type casting. - * - * @return list - * @phpstan-return list - * - * @throws QueryException - */ - private function getTypes(string $field, mixed $value, ClassMetadata $class): array - { - $types = []; - - switch (true) { - case isset($class->fieldMappings[$field]): - $types = array_merge($types, [$class->fieldMappings[$field]->type]); - break; - - case isset($class->associationMappings[$field]): - $assoc = $this->em->getMetadataFactory()->getOwningSide($class->associationMappings[$field]); - $class = $this->em->getClassMetadata($assoc->targetEntity); - - if ($assoc->isManyToManyOwningSide()) { - $columns = $assoc->relationToTargetKeyColumns; - } else { - assert($assoc->isToOneOwningSide()); - $columns = $assoc->sourceToTargetKeyColumns; - } - - foreach ($columns as $column) { - $types[] = PersisterHelper::getTypeOfColumn($column, $class, $this->em); - } - - break; - - default: - $types[] = ParameterType::STRING; - break; - } - - if (is_array($value)) { - return array_map($this->getArrayBindingType(...), $types); - } - - return $types; - } - - /** @phpstan-return ArrayParameterType::* */ - private function getArrayBindingType(ParameterType|int|string $type): ArrayParameterType|int - { - if (! $type instanceof ParameterType) { - $type = Type::getType((string) $type)->getBindingType(); - } - - return match ($type) { - ParameterType::STRING => ArrayParameterType::STRING, - ParameterType::INTEGER => ArrayParameterType::INTEGER, - ParameterType::ASCII => ArrayParameterType::ASCII, - }; - } - - /** - * Retrieves the parameters that identifies a value. - * - * @return mixed[] - */ - private function getValues(mixed $value): array - { - if (is_array($value)) { - $newValue = []; - - foreach ($value as $itemValue) { - $newValue = array_merge($newValue, $this->getValues($itemValue)); - } - - return [$newValue]; - } - - return $this->getIndividualValue($value); - } - - /** - * Retrieves an individual parameter value. - * - * @phpstan-return list - */ - private function getIndividualValue(mixed $value): array - { - if (! is_object($value)) { - return [$value]; - } - - if ($value instanceof BackedEnum) { - return [$value->value]; - } - - $valueClass = DefaultProxyClassNameResolver::getClass($value); - - if ($this->em->getMetadataFactory()->isTransient($valueClass)) { - return [$value]; - } - - $class = $this->em->getClassMetadata($valueClass); - - if ($class->isIdentifierComposite) { - $newValue = []; - - foreach ($class->getIdentifierValues($value) as $innerValue) { - $newValue = array_merge($newValue, $this->getValues($innerValue)); - } - - return $newValue; - } - - return [$this->em->getUnitOfWork()->getSingleIdentifierValue($value)]; - } - - public function exists(object $entity, Criteria|null $extraConditions = null): bool - { - $criteria = $this->class->getIdentifierValues($entity); - - if (! $criteria) { - return false; - } - - $alias = $this->getSQLTableAlias($this->class->name); - - $sql = 'SELECT 1 ' - . $this->getLockTablesSql(LockMode::NONE) - . ' WHERE ' . $this->getSelectConditionSQL($criteria); - - [$params, $types] = $this->expandParameters($criteria); - - if ($extraConditions !== null) { - $sql .= ' AND ' . $this->getSelectConditionCriteriaSQL($extraConditions); - [$criteriaParams, $criteriaTypes] = $this->expandCriteriaParameters($extraConditions); - - $params = [...$params, ...$criteriaParams]; - $types = [...$types, ...$criteriaTypes]; - } - - $filterSql = $this->generateFilterConditionSQL($this->class, $alias); - if ($filterSql) { - $sql .= ' AND ' . $filterSql; - } - - return (bool) $this->conn->fetchOne($sql, $params, $types); - } - - /** - * Generates the appropriate join SQL for the given join column. - * - * @param list $joinColumns The join columns definition of an association. - * - * @return string LEFT JOIN if one of the columns is nullable, INNER JOIN otherwise. - */ - protected function getJoinSQLForJoinColumns(array $joinColumns): string - { - // if one of the join columns is nullable, return left join - foreach ($joinColumns as $joinColumn) { - if (! isset($joinColumn->nullable) || $joinColumn->nullable) { - return 'LEFT JOIN'; - } - } - - return 'INNER JOIN'; - } - - public function getSQLColumnAlias(string $columnName): string - { - return $this->quoteStrategy->getColumnAlias($columnName, $this->currentPersisterContext->sqlAliasCounter++, $this->platform); - } - - /** - * Generates the filter SQL for a given entity and table alias. - * - * @param ClassMetadata $targetEntity Metadata of the target entity. - * @param string $targetTableAlias The table alias of the joined/selected table. - * - * @return string The SQL query part to add to a query. - */ - protected function generateFilterConditionSQL(ClassMetadata $targetEntity, string $targetTableAlias): string - { - $filterClauses = []; - - foreach ($this->em->getFilters()->getEnabledFilters() as $filter) { - $filterExpr = $filter->addFilterConstraint($targetEntity, $targetTableAlias); - if ($filterExpr !== '') { - $filterClauses[] = '(' . $filterExpr . ')'; - } - } - - $sql = implode(' AND ', $filterClauses); - - return $sql ? '(' . $sql . ')' : ''; // Wrap again to avoid "X or Y and FilterConditionSQL" - } - - /** - * Switches persister context according to current query offset/limits - * - * This is due to the fact that to-many associations cannot be fetch-joined when a limit is involved - */ - protected function switchPersisterContext(int|null $offset, int|null $limit): void - { - if ($offset === null && $limit === null) { - $this->currentPersisterContext = $this->noLimitsContext; - - return; - } - - $this->currentPersisterContext = $this->limitsHandlingContext; - } - - /** - * @return string[] - * @phpstan-return list - */ - protected function getClassIdentifiersTypes(ClassMetadata $class): array - { - $entityManager = $this->em; - - return array_map( - static function ($fieldName) use ($class, $entityManager): string { - $types = PersisterHelper::getTypeOfField($fieldName, $class, $entityManager); - assert(isset($types[0])); - - return $types[0]; - }, - $class->identifier, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/CachedPersisterContext.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/CachedPersisterContext.php deleted file mode 100644 index 03d053b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/CachedPersisterContext.php +++ /dev/null @@ -1,60 +0,0 @@ - - */ - public array $sqlTableAliases = []; - - public function __construct( - /** - * Metadata object that describes the mapping of the mapped entity class. - */ - public ClassMetadata $class, - /** - * ResultSetMapping that is used for all queries. Is generated lazily once per request. - */ - public ResultSetMapping $rsm, - /** - * Whether this persistent context is considering limit operations applied to the selection queries - */ - public bool $handlesLimits, - ) { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/EntityPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/EntityPersister.php deleted file mode 100644 index 1c4da2f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/EntityPersister.php +++ /dev/null @@ -1,300 +0,0 @@ -, list} - */ - public function expandParameters(array $criteria): array; - - /** - * Expands Criteria Parameters by walking the expressions and grabbing all parameters and types from it. - * - * @phpstan-return array{list, list} - */ - public function expandCriteriaParameters(Criteria $criteria): array; - - /** Gets the SQL WHERE condition for matching a field with a given value. */ - public function getSelectConditionStatementSQL( - string $field, - mixed $value, - AssociationMapping|null $assoc = null, - string|null $comparison = null, - ): string; - - /** - * Adds an entity to the queued insertions. - * The entity remains queued until {@link executeInserts} is invoked. - */ - public function addInsert(object $entity): void; - - /** - * Executes all queued entity insertions. - * - * If no inserts are queued, invoking this method is a NOOP. - */ - public function executeInserts(): void; - - /** - * Updates a managed entity. The entity is updated according to its current changeset - * in the running UnitOfWork. If there is no changeset, nothing is updated. - */ - public function update(object $entity): void; - - /** - * Deletes a managed entity. - * - * The entity to delete must be managed and have a persistent identifier. - * The deletion happens instantaneously. - * - * Subclasses may override this method to customize the semantics of entity deletion. - * - * @return bool TRUE if the entity got deleted in the database, FALSE otherwise. - */ - public function delete(object $entity): bool; - - /** - * Count entities (optionally filtered by a criteria) - * - * @param mixed[]|Criteria $criteria - * - * @phpstan-return 0|positive-int - */ - public function count(array|Criteria $criteria = []): int; - - /** - * Gets the name of the table that owns the column the given field is mapped to. - * - * The default implementation in BasicEntityPersister always returns the name - * of the table the entity type of this persister is mapped to, since an entity - * is always persisted to a single table with a BasicEntityPersister. - */ - public function getOwningTable(string $fieldName): string; - - /** - * Loads an entity by a list of field criteria. - * - * @param mixed[] $criteria The criteria by which to load the entity. - * @param object|null $entity The entity to load the data into. If not specified, - * a new entity is created. - * @param AssociationMapping|null $assoc The association that connects the entity - * to load to another entity, if any. - * @param mixed[] $hints Hints for entity creation. - * @param LockMode|int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants - * or NULL if no specific lock mode should be used - * for loading the entity. - * @param int|null $limit Limit number of results. - * @param string[]|null $orderBy Criteria to order by. - * @phpstan-param array $criteria - * @phpstan-param array $hints - * @phpstan-param LockMode::*|null $lockMode - * @phpstan-param array|null $orderBy - * - * @return object|null The loaded and managed entity instance or NULL if the entity can not be found. - * - * @todo Check identity map? loadById method? Try to guess whether $criteria is the id? - */ - public function load( - array $criteria, - object|null $entity = null, - AssociationMapping|null $assoc = null, - array $hints = [], - LockMode|int|null $lockMode = null, - int|null $limit = null, - array|null $orderBy = null, - ): object|null; - - /** - * Loads an entity by identifier. - * - * @param object|null $entity The entity to load the data into. If not specified, a new entity is created. - * @phpstan-param array $identifier The entity identifier. - * - * @return object|null The loaded and managed entity instance or NULL if the entity can not be found. - * - * @todo Check parameters - */ - public function loadById(array $identifier, object|null $entity = null): object|null; - - /** - * Loads an entity of this persister's mapped class as part of a single-valued - * association from another entity. - * - * @param AssociationMapping $assoc The association to load. - * @param object $sourceEntity The entity that owns the association (not necessarily the "owning side"). - * @phpstan-param array $identifier The identifier of the entity to load. Must be provided if - * the association to load represents the owning side, otherwise - * the identifier is derived from the $sourceEntity. - * - * @return object|null The loaded and managed entity instance or NULL if the entity can not be found. - * - * @throws MappingException - */ - public function loadOneToOneEntity(AssociationMapping $assoc, object $sourceEntity, array $identifier = []): object|null; - - /** - * Refreshes a managed entity. - * - * @param LockMode|int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants - * or NULL if no specific lock mode should be used - * for refreshing the managed entity. - * @phpstan-param array $id The identifier of the entity as an - * associative array from column or - * field names to values. - * @phpstan-param LockMode::*|null $lockMode - */ - public function refresh(array $id, object $entity, LockMode|int|null $lockMode = null): void; - - /** - * Loads Entities matching the given Criteria object. - * - * @return mixed[] - */ - public function loadCriteria(Criteria $criteria): array; - - /** - * Loads a list of entities by a list of field criteria. - * - * @phpstan-param array|null $orderBy - * @phpstan-param array $criteria - * - * @return mixed[] - */ - public function loadAll( - array $criteria = [], - array|null $orderBy = null, - int|null $limit = null, - int|null $offset = null, - ): array; - - /** - * Gets (sliced or full) elements of the given collection. - * - * @return mixed[] - */ - public function getManyToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array; - - /** - * Loads a collection of entities of a many-to-many association. - * - * @param AssociationMapping $assoc The association mapping of the association being loaded. - * @param object $sourceEntity The entity that owns the collection. - * @param PersistentCollection $collection The collection to fill. - * - * @return mixed[] - */ - public function loadManyToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - PersistentCollection $collection, - ): array; - - /** - * Loads a collection of entities in a one-to-many association. - * - * @param PersistentCollection $collection The collection to load/fill. - */ - public function loadOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - PersistentCollection $collection, - ): mixed; - - /** - * Locks all rows of this entity matching the given criteria with the specified pessimistic lock mode. - * - * @phpstan-param array $criteria - * @phpstan-param LockMode::* $lockMode - */ - public function lock(array $criteria, LockMode|int $lockMode): void; - - /** - * Returns an array with (sliced or full list) of elements in the specified collection. - * - * @return mixed[] - */ - public function getOneToManyCollection( - AssociationMapping $assoc, - object $sourceEntity, - int|null $offset = null, - int|null $limit = null, - ): array; - - /** - * Checks whether the given managed entity exists in the database. - */ - public function exists(object $entity, Criteria|null $extraConditions = null): bool; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/JoinedSubclassPersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/JoinedSubclassPersister.php deleted file mode 100644 index 62dad56..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/JoinedSubclassPersister.php +++ /dev/null @@ -1,602 +0,0 @@ -Class Table Inheritance strategy. - * - * @see https://martinfowler.com/eaaCatalog/classTableInheritance.html - */ -class JoinedSubclassPersister extends AbstractEntityInheritancePersister -{ - use LockSqlHelper; - use SQLResultCasing; - - /** - * Map that maps column names to the table names that own them. - * This is mainly a temporary cache, used during a single request. - * - * @phpstan-var array - */ - private array $owningTableMap = []; - - /** - * Map of table to quoted table names. - * - * @phpstan-var array - */ - private array $quotedTableMap = []; - - protected function getDiscriminatorColumnTableName(): string - { - $class = $this->class->name !== $this->class->rootEntityName - ? $this->em->getClassMetadata($this->class->rootEntityName) - : $this->class; - - return $class->getTableName(); - } - - /** - * This function finds the ClassMetadata instance in an inheritance hierarchy - * that is responsible for enabling versioning. - */ - private function getVersionedClassMetadata(): ClassMetadata - { - if (isset($this->class->fieldMappings[$this->class->versionField]->inherited)) { - $definingClassName = $this->class->fieldMappings[$this->class->versionField]->inherited; - - return $this->em->getClassMetadata($definingClassName); - } - - return $this->class; - } - - /** - * Gets the name of the table that owns the column the given field is mapped to. - */ - public function getOwningTable(string $fieldName): string - { - if (isset($this->owningTableMap[$fieldName])) { - return $this->owningTableMap[$fieldName]; - } - - $cm = match (true) { - isset($this->class->associationMappings[$fieldName]->inherited) - => $this->em->getClassMetadata($this->class->associationMappings[$fieldName]->inherited), - isset($this->class->fieldMappings[$fieldName]->inherited) - => $this->em->getClassMetadata($this->class->fieldMappings[$fieldName]->inherited), - default => $this->class, - }; - - $tableName = $cm->getTableName(); - $quotedTableName = $this->quoteStrategy->getTableName($cm, $this->platform); - - $this->owningTableMap[$fieldName] = $tableName; - $this->quotedTableMap[$tableName] = $quotedTableName; - - return $tableName; - } - - public function executeInserts(): void - { - if (! $this->queuedInserts) { - return; - } - - $uow = $this->em->getUnitOfWork(); - $idGenerator = $this->class->idGenerator; - $isPostInsertId = $idGenerator->isPostInsertGenerator(); - $rootClass = $this->class->name !== $this->class->rootEntityName - ? $this->em->getClassMetadata($this->class->rootEntityName) - : $this->class; - - // Prepare statement for the root table - $rootPersister = $this->em->getUnitOfWork()->getEntityPersister($rootClass->name); - $rootTableName = $rootClass->getTableName(); - $rootTableStmt = $this->conn->prepare($rootPersister->getInsertSQL()); - - // Prepare statements for sub tables. - $subTableStmts = []; - - if ($rootClass !== $this->class) { - $subTableStmts[$this->class->getTableName()] = $this->conn->prepare($this->getInsertSQL()); - } - - foreach ($this->class->parentClasses as $parentClassName) { - $parentClass = $this->em->getClassMetadata($parentClassName); - $parentTableName = $parentClass->getTableName(); - - if ($parentClass !== $rootClass) { - $parentPersister = $this->em->getUnitOfWork()->getEntityPersister($parentClassName); - $subTableStmts[$parentTableName] = $this->conn->prepare($parentPersister->getInsertSQL()); - } - } - - // Execute all inserts. For each entity: - // 1) Insert on root table - // 2) Insert on sub tables - foreach ($this->queuedInserts as $entity) { - $insertData = $this->prepareInsertData($entity); - - // Execute insert on root table - $paramIndex = 1; - - foreach ($insertData[$rootTableName] as $columnName => $value) { - $rootTableStmt->bindValue($paramIndex++, $value, $this->columnTypes[$columnName]); - } - - $rootTableStmt->executeStatement(); - - if ($isPostInsertId) { - $generatedId = $idGenerator->generateId($this->em, $entity); - $id = [$this->class->identifier[0] => $generatedId]; - - $uow->assignPostInsertId($entity, $generatedId); - } else { - $id = $this->em->getUnitOfWork()->getEntityIdentifier($entity); - } - - // Execute inserts on subtables. - // The order doesn't matter because all child tables link to the root table via FK. - foreach ($subTableStmts as $tableName => $stmt) { - $paramIndex = 1; - $data = $insertData[$tableName] ?? []; - - foreach ($id as $idName => $idVal) { - $type = $this->columnTypes[$idName] ?? Types::STRING; - - $stmt->bindValue($paramIndex++, $idVal, $type); - } - - foreach ($data as $columnName => $value) { - if (! isset($id[$columnName])) { - $stmt->bindValue($paramIndex++, $value, $this->columnTypes[$columnName]); - } - } - - $stmt->executeStatement(); - } - - if ($this->class->requiresFetchAfterChange) { - $this->assignDefaultVersionAndUpsertableValues($entity, $id); - } - } - - $this->queuedInserts = []; - } - - public function update(object $entity): void - { - $updateData = $this->prepareUpdateData($entity); - - if (! $updateData) { - return; - } - - $isVersioned = $this->class->isVersioned; - - $versionedClass = $this->getVersionedClassMetadata(); - $versionedTable = $versionedClass->getTableName(); - - foreach ($updateData as $tableName => $data) { - $tableName = $this->quotedTableMap[$tableName]; - $versioned = $isVersioned && $versionedTable === $tableName; - - $this->updateTable($entity, $tableName, $data, $versioned); - } - - if ($this->class->requiresFetchAfterChange) { - // Make sure the table with the version column is updated even if no columns on that - // table were affected. - if ($isVersioned && ! isset($updateData[$versionedTable])) { - $tableName = $this->quoteStrategy->getTableName($versionedClass, $this->platform); - - $this->updateTable($entity, $tableName, [], true); - } - - $identifiers = $this->em->getUnitOfWork()->getEntityIdentifier($entity); - - $this->assignDefaultVersionAndUpsertableValues($entity, $identifiers); - } - } - - public function delete(object $entity): bool - { - $identifier = $this->em->getUnitOfWork()->getEntityIdentifier($entity); - $id = array_combine($this->class->getIdentifierColumnNames(), $identifier); - $types = $this->getClassIdentifiersTypes($this->class); - - $this->deleteJoinTableRecords($identifier, $types); - - // Delete the row from the root table. Cascades do the rest. - $rootClass = $this->em->getClassMetadata($this->class->rootEntityName); - $rootTable = $this->quoteStrategy->getTableName($rootClass, $this->platform); - $rootTypes = $this->getClassIdentifiersTypes($rootClass); - - return (bool) $this->conn->delete($rootTable, $id, $rootTypes); - } - - public function getSelectSQL( - array|Criteria $criteria, - AssociationMapping|null $assoc = null, - LockMode|int|null $lockMode = null, - int|null $limit = null, - int|null $offset = null, - array|null $orderBy = null, - ): string { - $this->switchPersisterContext($offset, $limit); - - $baseTableAlias = $this->getSQLTableAlias($this->class->name); - $joinSql = $this->getJoinSql($baseTableAlias); - - if ($assoc !== null && $assoc->isManyToMany()) { - $joinSql .= $this->getSelectManyToManyJoinSQL($assoc); - } - - $conditionSql = $criteria instanceof Criteria - ? $this->getSelectConditionCriteriaSQL($criteria) - : $this->getSelectConditionSQL($criteria, $assoc); - - $filterSql = $this->generateFilterConditionSQL( - $this->em->getClassMetadata($this->class->rootEntityName), - $this->getSQLTableAlias($this->class->rootEntityName), - ); - // If the current class in the root entity, add the filters - if ($filterSql) { - $conditionSql .= $conditionSql - ? ' AND ' . $filterSql - : $filterSql; - } - - $orderBySql = ''; - - if ($assoc !== null && $assoc->isOrdered()) { - $orderBy = $assoc->orderBy(); - } - - if ($orderBy) { - $orderBySql = $this->getOrderBySQL($orderBy, $baseTableAlias); - } - - $lockSql = ''; - - switch ($lockMode) { - case LockMode::PESSIMISTIC_READ: - $lockSql = ' ' . $this->getReadLockSQL($this->platform); - - break; - - case LockMode::PESSIMISTIC_WRITE: - $lockSql = ' ' . $this->getWriteLockSQL($this->platform); - - break; - } - - $tableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - $from = ' FROM ' . $tableName . ' ' . $baseTableAlias; - $where = $conditionSql !== '' ? ' WHERE ' . $conditionSql : ''; - $lock = $this->platform->appendLockHint($from, $lockMode ?? LockMode::NONE); - $columnList = $this->getSelectColumnsSQL(); - $query = 'SELECT ' . $columnList - . $lock - . $joinSql - . $where - . $orderBySql; - - return $this->platform->modifyLimitQuery($query, $limit, $offset ?? 0) . $lockSql; - } - - public function getCountSQL(array|Criteria $criteria = []): string - { - $tableName = $this->quoteStrategy->getTableName($this->class, $this->platform); - $baseTableAlias = $this->getSQLTableAlias($this->class->name); - $joinSql = $this->getJoinSql($baseTableAlias); - - $conditionSql = $criteria instanceof Criteria - ? $this->getSelectConditionCriteriaSQL($criteria) - : $this->getSelectConditionSQL($criteria); - - $filterSql = $this->generateFilterConditionSQL($this->em->getClassMetadata($this->class->rootEntityName), $this->getSQLTableAlias($this->class->rootEntityName)); - - if ($filterSql !== '') { - $conditionSql = $conditionSql - ? $conditionSql . ' AND ' . $filterSql - : $filterSql; - } - - return 'SELECT COUNT(*) ' - . 'FROM ' . $tableName . ' ' . $baseTableAlias - . $joinSql - . (empty($conditionSql) ? '' : ' WHERE ' . $conditionSql); - } - - protected function getLockTablesSql(LockMode|int $lockMode): string - { - $joinSql = ''; - $identifierColumns = $this->class->getIdentifierColumnNames(); - $baseTableAlias = $this->getSQLTableAlias($this->class->name); - - // INNER JOIN parent tables - foreach ($this->class->parentClasses as $parentClassName) { - $conditions = []; - $tableAlias = $this->getSQLTableAlias($parentClassName); - $parentClass = $this->em->getClassMetadata($parentClassName); - $joinSql .= ' INNER JOIN ' . $this->quoteStrategy->getTableName($parentClass, $this->platform) . ' ' . $tableAlias . ' ON '; - - foreach ($identifierColumns as $idColumn) { - $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn; - } - - $joinSql .= implode(' AND ', $conditions); - } - - return parent::getLockTablesSql($lockMode) . $joinSql; - } - - /** - * Ensure this method is never called. This persister overrides getSelectEntitiesSQL directly. - */ - protected function getSelectColumnsSQL(): string - { - // Create the column list fragment only once - if ($this->currentPersisterContext->selectColumnListSql !== null && $this->isFilterHashUpToDate()) { - return $this->currentPersisterContext->selectColumnListSql; - } - - $columnList = []; - $discrColumn = $this->class->getDiscriminatorColumn(); - $discrColumnName = $discrColumn->name; - $discrColumnType = $discrColumn->type; - $baseTableAlias = $this->getSQLTableAlias($this->class->name); - $resultColumnName = $this->getSQLResultCasing($this->platform, $discrColumnName); - - $this->currentPersisterContext->rsm->addEntityResult($this->class->name, 'r'); - $this->currentPersisterContext->rsm->setDiscriminatorColumn('r', $resultColumnName); - $this->currentPersisterContext->rsm->addMetaResult('r', $resultColumnName, $discrColumnName, false, $discrColumnType); - - // Add regular columns - foreach ($this->class->fieldMappings as $fieldName => $mapping) { - $class = isset($mapping->inherited) - ? $this->em->getClassMetadata($mapping->inherited) - : $this->class; - - $columnList[] = $this->getSelectColumnSQL($fieldName, $class); - } - - // Add foreign key columns - foreach ($this->class->associationMappings as $mapping) { - if (! $mapping->isToOneOwningSide()) { - continue; - } - - $tableAlias = isset($mapping->inherited) - ? $this->getSQLTableAlias($mapping->inherited) - : $baseTableAlias; - - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - - foreach ($mapping->joinColumns as $joinColumn) { - $columnList[] = $this->getSelectJoinColumnSQL( - $tableAlias, - $joinColumn->name, - $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform), - PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em), - ); - } - } - - // Add discriminator column (DO NOT ALIAS, see AbstractEntityInheritancePersister#processSQLResult). - $tableAlias = $this->class->rootEntityName === $this->class->name - ? $baseTableAlias - : $this->getSQLTableAlias($this->class->rootEntityName); - - $columnList[] = $tableAlias . '.' . $discrColumnName; - - // sub tables - foreach ($this->class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - $tableAlias = $this->getSQLTableAlias($subClassName); - - // Add subclass columns - foreach ($subClass->fieldMappings as $fieldName => $mapping) { - if (isset($mapping->inherited)) { - continue; - } - - $columnList[] = $this->getSelectColumnSQL($fieldName, $subClass); - } - - // Add join columns (foreign keys) - foreach ($subClass->associationMappings as $mapping) { - if (! $mapping->isToOneOwningSide() || isset($mapping->inherited)) { - continue; - } - - $targetClass = $this->em->getClassMetadata($mapping->targetEntity); - - foreach ($mapping->joinColumns as $joinColumn) { - $columnList[] = $this->getSelectJoinColumnSQL( - $tableAlias, - $joinColumn->name, - $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform), - PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em), - ); - } - } - } - - $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList); - $this->updateFilterHash(); - - return $this->currentPersisterContext->selectColumnListSql; - } - - /** - * {@inheritDoc} - */ - protected function getInsertColumnList(): array - { - // Identifier columns must always come first in the column list of subclasses. - $columns = $this->class->parentClasses - ? $this->class->getIdentifierColumnNames() - : []; - - foreach ($this->class->propertyAccessors as $name => $field) { - if ( - isset($this->class->fieldMappings[$name]->inherited) - && ! isset($this->class->fieldMappings[$name]->id) - || isset($this->class->associationMappings[$name]->inherited) - || ($this->class->isVersioned && $this->class->versionField === $name) - || isset($this->class->embeddedClasses[$name]) - || isset($this->class->fieldMappings[$name]->notInsertable) - ) { - continue; - } - - if (isset($this->class->associationMappings[$name])) { - $assoc = $this->class->associationMappings[$name]; - if ($assoc->isToOneOwningSide()) { - foreach ($assoc->targetToSourceKeyColumns as $sourceCol) { - $columns[] = $sourceCol; - } - } - } elseif ( - $this->class->name !== $this->class->rootEntityName || - ! $this->class->isIdGeneratorIdentity() || $this->class->identifier[0] !== $name - ) { - $columns[] = $this->quoteStrategy->getColumnName($name, $this->class, $this->platform); - $this->columnTypes[$name] = $this->class->fieldMappings[$name]->type; - } - } - - // Add discriminator column if it is the topmost class. - if ($this->class->name === $this->class->rootEntityName) { - $columns[] = $this->class->getDiscriminatorColumn()->name; - } - - return $columns; - } - - /** - * {@inheritDoc} - */ - protected function assignDefaultVersionAndUpsertableValues(object $entity, array $id): void - { - $values = $this->fetchVersionAndNotUpsertableValues($this->getVersionedClassMetadata(), $id); - - foreach ($values as $field => $value) { - $value = Type::getType($this->class->fieldMappings[$field]->type)->convertToPHPValue($value, $this->platform); - - $this->class->setFieldValue($entity, $field, $value); - } - } - - /** - * {@inheritDoc} - */ - protected function fetchVersionAndNotUpsertableValues(ClassMetadata $versionedClass, array $id): mixed - { - $columnNames = []; - foreach ($this->class->fieldMappings as $key => $column) { - $class = null; - if ($this->class->isVersioned && $key === $versionedClass->versionField) { - $class = $versionedClass; - } elseif (isset($column->generated)) { - $class = isset($column->inherited) - ? $this->em->getClassMetadata($column->inherited) - : $this->class; - } else { - continue; - } - - $columnNames[$key] = $this->getSelectColumnSQL($key, $class); - } - - $tableName = $this->quoteStrategy->getTableName($versionedClass, $this->platform); - $baseTableAlias = $this->getSQLTableAlias($this->class->name); - $joinSql = $this->getJoinSql($baseTableAlias); - $identifier = $this->quoteStrategy->getIdentifierColumnNames($versionedClass, $this->platform); - foreach ($identifier as $i => $idValue) { - $identifier[$i] = $baseTableAlias . '.' . $idValue; - } - - $sql = 'SELECT ' . implode(', ', $columnNames) - . ' FROM ' . $tableName . ' ' . $baseTableAlias - . $joinSql - . ' WHERE ' . implode(' = ? AND ', $identifier) . ' = ?'; - - $flatId = $this->identifierFlattener->flattenIdentifier($versionedClass, $id); - $values = $this->conn->fetchNumeric( - $sql, - array_values($flatId), - $this->extractIdentifierTypes($id, $versionedClass), - ); - - if ($values === false) { - throw new LengthException('Unexpected empty result for database query.'); - } - - $values = array_combine(array_keys($columnNames), $values); - - if (! $values) { - throw new LengthException('Unexpected number of database columns.'); - } - - return $values; - } - - private function getJoinSql(string $baseTableAlias): string - { - $joinSql = ''; - $identifierColumn = $this->class->getIdentifierColumnNames(); - - // INNER JOIN parent tables - foreach ($this->class->parentClasses as $parentClassName) { - $conditions = []; - $parentClass = $this->em->getClassMetadata($parentClassName); - $tableAlias = $this->getSQLTableAlias($parentClassName); - $joinSql .= ' INNER JOIN ' . $this->quoteStrategy->getTableName($parentClass, $this->platform) . ' ' . $tableAlias . ' ON '; - - foreach ($identifierColumn as $idColumn) { - $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn; - } - - $joinSql .= implode(' AND ', $conditions); - } - - // OUTER JOIN sub tables - foreach ($this->class->subClasses as $subClassName) { - $conditions = []; - $subClass = $this->em->getClassMetadata($subClassName); - $tableAlias = $this->getSQLTableAlias($subClassName); - $joinSql .= ' LEFT JOIN ' . $this->quoteStrategy->getTableName($subClass, $this->platform) . ' ' . $tableAlias . ' ON '; - - foreach ($identifierColumn as $idColumn) { - $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn; - } - - $joinSql .= implode(' AND ', $conditions); - } - - return $joinSql; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/SingleTablePersister.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/SingleTablePersister.php deleted file mode 100644 index 676c448..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Entity/SingleTablePersister.php +++ /dev/null @@ -1,167 +0,0 @@ -class->getTableName(); - } - - protected function getSelectColumnsSQL(): string - { - $columnList = []; - if ($this->currentPersisterContext->selectColumnListSql !== null && $this->isFilterHashUpToDate()) { - return $this->currentPersisterContext->selectColumnListSql; - } - - $columnList[] = parent::getSelectColumnsSQL(); - - $rootClass = $this->em->getClassMetadata($this->class->rootEntityName); - $tableAlias = $this->getSQLTableAlias($rootClass->name); - - // Append discriminator column - $discrColumn = $this->class->getDiscriminatorColumn(); - $discrColumnName = $discrColumn->name; - $discrColumnType = $discrColumn->type; - - $columnList[] = $tableAlias . '.' . $discrColumnName; - - $resultColumnName = $this->getSQLResultCasing($this->platform, $discrColumnName); - - $this->currentPersisterContext->rsm->setDiscriminatorColumn('r', $resultColumnName); - $this->currentPersisterContext->rsm->addMetaResult('r', $resultColumnName, $discrColumnName, false, $discrColumnType); - - // Append subclass columns - foreach ($this->class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - - // Regular columns - foreach ($subClass->fieldMappings as $fieldName => $mapping) { - if (isset($mapping->inherited)) { - continue; - } - - $columnList[] = $this->getSelectColumnSQL($fieldName, $subClass); - } - - // Foreign key columns - foreach ($subClass->associationMappings as $assoc) { - if (! $assoc->isToOneOwningSide() || isset($assoc->inherited)) { - continue; - } - - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - foreach ($assoc->joinColumns as $joinColumn) { - $columnList[] = $this->getSelectJoinColumnSQL( - $tableAlias, - $joinColumn->name, - $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform), - PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em), - ); - } - } - } - - $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList); - $this->updateFilterHash(); - - return $this->currentPersisterContext->selectColumnListSql; - } - - /** - * {@inheritDoc} - */ - protected function getInsertColumnList(): array - { - $columns = parent::getInsertColumnList(); - - // Add discriminator column to the INSERT SQL - $columns[] = $this->class->getDiscriminatorColumn()->name; - - return $columns; - } - - protected function getSQLTableAlias(string $className, string $assocName = ''): string - { - return parent::getSQLTableAlias($this->class->rootEntityName, $assocName); - } - - /** - * {@inheritDoc} - */ - protected function getSelectConditionSQL(array $criteria, AssociationMapping|null $assoc = null): string - { - $conditionSql = parent::getSelectConditionSQL($criteria, $assoc); - - if ($conditionSql) { - $conditionSql .= ' AND '; - } - - return $conditionSql . $this->getSelectConditionDiscriminatorValueSQL(); - } - - protected function getSelectConditionCriteriaSQL(Criteria $criteria): string - { - $conditionSql = parent::getSelectConditionCriteriaSQL($criteria); - - if ($conditionSql) { - $conditionSql .= ' AND '; - } - - return $conditionSql . $this->getSelectConditionDiscriminatorValueSQL(); - } - - protected function getSelectConditionDiscriminatorValueSQL(): string - { - $values = array_map($this->conn->quote(...), array_map( - strval(...), - array_flip(array_intersect($this->class->discriminatorMap, $this->class->subClasses)), - )); - - if ($this->class->discriminatorValue !== null) { // discriminators can be 0 - array_unshift($values, $this->conn->quote((string) $this->class->discriminatorValue)); - } - - $discColumnName = $this->class->getDiscriminatorColumn()->name; - - $values = implode(', ', $values); - $tableAlias = $this->getSQLTableAlias($this->class->name); - - return $tableAlias . '.' . $discColumnName . ' IN (' . $values . ')'; - } - - protected function generateFilterConditionSQL(ClassMetadata $targetEntity, string $targetTableAlias): string - { - // Ensure that the filters are applied to the root entity of the inheritance tree - $targetEntity = $this->em->getClassMetadata($targetEntity->rootEntityName); - // we don't care about the $targetTableAlias, in a STI there is only one table. - - return parent::generateFilterConditionSQL($targetEntity, $targetTableAlias); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/CantUseInOperatorOnCompositeKeys.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/CantUseInOperatorOnCompositeKeys.php deleted file mode 100644 index 5c91312..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/Exception/CantUseInOperatorOnCompositeKeys.php +++ /dev/null @@ -1,15 +0,0 @@ -getField(); - $value = $comparison->getValue()->getValue(); // shortcut for walkValue() - - if ( - isset($this->classMetadata->associationMappings[$field]) && - $value !== null && - ! is_object($value) && - ! in_array($comparison->getOperator(), [Comparison::IN, Comparison::NIN], true) - ) { - throw MatchingAssociationFieldRequiresObject::fromClassAndAssociation( - $this->classMetadata->name, - $field, - ); - } - - return $this->persister->getSelectConditionStatementSQL($field, $value, null, $comparison->getOperator()); - } - - /** - * Converts a composite expression into the target query language output. - * - * @throws RuntimeException - */ - public function walkCompositeExpression(CompositeExpression $expr): string - { - $expressionList = []; - - foreach ($expr->getExpressionList() as $child) { - $expressionList[] = $this->dispatch($child); - } - - return match ($expr->getType()) { - CompositeExpression::TYPE_AND => '(' . implode(' AND ', $expressionList) . ')', - CompositeExpression::TYPE_OR => '(' . implode(' OR ', $expressionList) . ')', - CompositeExpression::TYPE_NOT => 'NOT (' . $expressionList[0] . ')', - default => throw new RuntimeException('Unknown composite ' . $expr->getType()), - }; - } - - /** - * Converts a value expression into the target query language part. - */ - public function walkValue(Value $value): string - { - return '?'; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Persisters/SqlValueVisitor.php b/projects/priceservice/vendor/doctrine/orm/src/Persisters/SqlValueVisitor.php deleted file mode 100644 index b346ec9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Persisters/SqlValueVisitor.php +++ /dev/null @@ -1,88 +0,0 @@ -getValueFromComparison($comparison); - - $this->values[] = $value; - $this->types[] = [$comparison->getField(), $value, $comparison->getOperator()]; - - return null; - } - - /** - * Converts a composite expression into the target query language output. - * - * {@inheritDoc} - */ - public function walkCompositeExpression(CompositeExpression $expr) - { - foreach ($expr->getExpressionList() as $child) { - $this->dispatch($child); - } - - return null; - } - - /** - * Converts a value expression into the target query language part. - * - * {@inheritDoc} - */ - public function walkValue(Value $value) - { - return null; - } - - /** - * Returns the Parameters and Types necessary for matching the last visited expression. - * - * @return mixed[][] - * @phpstan-return array{0: array, 1: array>} - */ - public function getParamsAndTypes(): array - { - return [$this->values, $this->types]; - } - - /** - * Returns the value from a Comparison. In case of a CONTAINS comparison, - * the value is wrapped in %-signs, because it will be used in a LIKE clause. - */ - protected function getValueFromComparison(Comparison $comparison): mixed - { - $value = $comparison->getValue()->getValue(); - - return match ($comparison->getOperator()) { - Comparison::CONTAINS => '%' . $value . '%', - Comparison::STARTS_WITH => $value . '%', - Comparison::ENDS_WITH => '%' . $value, - default => $value, - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/PessimisticLockException.php b/projects/priceservice/vendor/doctrine/orm/src/PessimisticLockException.php deleted file mode 100644 index c71560f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/PessimisticLockException.php +++ /dev/null @@ -1,16 +0,0 @@ -= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Class "%s" is deprecated. Use native lazy objects instead.', - self::class, - ); - } - - if (! str_starts_with($className, $proxyNamespace)) { - throw new NotAProxyClass($className, $proxyNamespace); - } - - // remove proxy namespace from class name - $classNameRelativeToProxyNamespace = substr($className, strlen($proxyNamespace)); - - // remove namespace separators from remaining class name - $fileName = str_replace('\\', '', $classNameRelativeToProxyNamespace); - - return $proxyDir . DIRECTORY_SEPARATOR . $fileName . '.php'; - } - - /** - * Registers and returns autoloader callback for the given proxy dir and namespace. - * - * @param Closure(string, string, class-string): void|null $notFoundCallback Invoked when the proxy file is not found. - * - * @return Closure(string): void - */ - public static function register( - string $proxyDir, - string $proxyNamespace, - Closure|null $notFoundCallback = null, - ): Closure { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Class "%s" is deprecated. Use native lazy objects instead.', - self::class, - ); - } - - $proxyNamespace = ltrim($proxyNamespace, '\\'); - - $autoloader = /** @param class-string $className */ static function (string $className) use ($proxyDir, $proxyNamespace, $notFoundCallback): void { - if ($proxyNamespace === '') { - return; - } - - if (! str_starts_with($className, $proxyNamespace)) { - return; - } - - $file = Autoloader::resolveFile($proxyDir, $proxyNamespace, $className); - - if ($notFoundCallback && ! file_exists($file)) { - $notFoundCallback($proxyDir, $proxyNamespace, $className); - } - - require $file; - }; - - spl_autoload_register($autoloader); - - return $autoloader; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Proxy/DefaultProxyClassNameResolver.php b/projects/priceservice/vendor/doctrine/orm/src/Proxy/DefaultProxyClassNameResolver.php deleted file mode 100644 index fc78b4d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Proxy/DefaultProxyClassNameResolver.php +++ /dev/null @@ -1,56 +0,0 @@ -= 80400) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Class "%s" is deprecated. Use native lazy objects instead.', - self::class, - ); - } - - $pos = strrpos($className, '\\' . Proxy::MARKER . '\\'); - - if ($pos === false) { - return $className; - } - - return substr($className, $pos + Proxy::MARKER_LENGTH + 2); - } - - /** @return class-string */ - public static function getClass(object $object): string - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::triggerIfCalledFromOutside( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Class "%s" is deprecated. Use native lazy objects instead.', - self::class, - ); - } - - return (new self())->resolveClassName($object::class); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Proxy/InternalProxy.php b/projects/priceservice/vendor/doctrine/orm/src/Proxy/InternalProxy.php deleted file mode 100644 index 7c1d833..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Proxy/InternalProxy.php +++ /dev/null @@ -1,18 +0,0 @@ - - */ -interface InternalProxy extends Proxy -{ - public function __setInitialized(bool $initialized): void; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Proxy/NotAProxyClass.php b/projects/priceservice/vendor/doctrine/orm/src/Proxy/NotAProxyClass.php deleted file mode 100644 index 689cc3e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Proxy/NotAProxyClass.php +++ /dev/null @@ -1,22 +0,0 @@ -; - -/** - * DO NOT EDIT THIS FILE - IT WAS CREATED BY DOCTRINE'S PROXY GENERATOR - */ -class extends \ implements \ -{ - - - public function __isInitialized(): bool - { - return isset($this->lazyObjectState) && $this->isLazyObjectInitialized(); - } - - public function __serialize(): array - { - - } -} - -EOPHP; - - /** The UnitOfWork this factory uses to retrieve persisters */ - private readonly UnitOfWork $uow; - - /** @var self::AUTOGENERATE_* */ - private $autoGenerate; - - /** The IdentifierFlattener used for manipulating identifiers */ - private readonly IdentifierFlattener $identifierFlattener; - - /** @var array */ - private array $proxyFactories = []; - - private readonly string $proxyDir; - private readonly string $proxyNs; - - /** - * Initializes a new instance of the ProxyFactory class that is - * connected to the given EntityManager. - * - * @param EntityManagerInterface $em The EntityManager the new factory works for. - * @param string $proxyDir The directory to use for the proxy classes. It must exist. - * @param string $proxyNs The namespace to use for the proxy classes. - * @param bool|self::AUTOGENERATE_* $autoGenerate The strategy for automatically generating proxy classes. - */ - public function __construct( - private readonly EntityManagerInterface $em, - string|null $proxyDir = null, - string|null $proxyNs = null, - bool|int $autoGenerate = self::AUTOGENERATE_NEVER, - ) { - if (PHP_VERSION_ID >= 80400 && func_num_args() > 1) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Passing more than just the EntityManager to the %s is deprecated and will not be possible in Doctrine ORM 4.0.', - __METHOD__, - ); - } - - if (! $proxyDir && ! $em->getConfiguration()->isNativeLazyObjectsEnabled()) { - throw ORMInvalidArgumentException::proxyDirectoryRequired(); - } - - if (! $proxyNs && ! $em->getConfiguration()->isNativeLazyObjectsEnabled()) { - throw ORMInvalidArgumentException::proxyNamespaceRequired(); - } - - if (is_int($autoGenerate) ? $autoGenerate < 0 || $autoGenerate > 4 : ! is_bool($autoGenerate)) { - throw ORMInvalidArgumentException::invalidAutoGenerateMode($autoGenerate); - } - - if ($proxyDir === null && $em->getConfiguration()->isNativeLazyObjectsEnabled()) { - $proxyDir = ''; - } - - if ($proxyNs === null && $em->getConfiguration()->isNativeLazyObjectsEnabled()) { - $proxyNs = ''; - } - - $this->proxyDir = $proxyDir; - $this->proxyNs = $proxyNs; - - $this->uow = $em->getUnitOfWork(); - $this->autoGenerate = (int) $autoGenerate; - $this->identifierFlattener = new IdentifierFlattener($this->uow, $em->getMetadataFactory()); - } - - /** - * @param class-string $className - * @param array $identifier - */ - public function getProxy(string $className, array $identifier): object - { - if ($this->em->getConfiguration()->isNativeLazyObjectsEnabled()) { - $classMetadata = $this->em->getClassMetadata($className); - $entityPersister = $this->uow->getEntityPersister($className); - $identifierFlattener = $this->identifierFlattener; - - $proxy = $classMetadata->reflClass->newLazyGhost(static function (object $object) use ( - $identifier, - $entityPersister, - $identifierFlattener, - $classMetadata, - ): void { - $original = $entityPersister->loadById($identifier, $object); - if ($original === null) { - throw EntityNotFoundException::fromClassNameAndIdentifier( - $classMetadata->getName(), - $identifierFlattener->flattenIdentifier($classMetadata, $identifier), - ); - } - }, ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE); - - foreach ($identifier as $idField => $value) { - $classMetadata->propertyAccessors[$idField]->setValue($proxy, $value); - } - - return $proxy; - } - - $proxyFactory = $this->proxyFactories[$className] ?? $this->getProxyFactory($className); - - return $proxyFactory($identifier); - } - - /** - * Generates proxy classes for all given classes. - * - * @param ClassMetadata[] $classes The classes (ClassMetadata instances) for which to generate proxies. - * @param string|null $proxyDir The target directory of the proxy classes. If not specified, the - * directory configured on the Configuration of the EntityManager used - * by this factory is used. - * - * @return int Number of generated proxies. - */ - public function generateProxyClasses(array $classes, string|null $proxyDir = null): int - { - if ($this->em->getConfiguration()->isNativeLazyObjectsEnabled()) { - return 0; - } - - $generated = 0; - - foreach ($classes as $class) { - if ($this->skipClass($class)) { - continue; - } - - $proxyFileName = $this->getProxyFileName($class->getName(), $proxyDir ?: $this->proxyDir); - $proxyClassName = self::generateProxyClassName($class->getName(), $this->proxyNs); - - $this->generateProxyClass($class, $proxyFileName, $proxyClassName); - - ++$generated; - } - - return $generated; - } - - protected function skipClass(ClassMetadata $metadata): bool - { - return $metadata->isMappedSuperclass - || $metadata->isEmbeddedClass - || $metadata->getReflectionClass()->isAbstract(); - } - - /** - * Creates a closure capable of initializing a proxy - * - * @return Closure(InternalProxy, array):void - * - * @throws EntityNotFoundException - */ - private function createLazyInitializer(ClassMetadata $classMetadata, EntityPersister $entityPersister, IdentifierFlattener $identifierFlattener): Closure - { - return static function (InternalProxy $proxy, array $identifier) use ($entityPersister, $classMetadata, $identifierFlattener): void { - $original = $entityPersister->loadById($identifier); - - if ($original === null) { - throw EntityNotFoundException::fromClassNameAndIdentifier( - $classMetadata->getName(), - $identifierFlattener->flattenIdentifier($classMetadata, $identifier), - ); - } - - if ($proxy === $original) { - return; - } - - $class = $entityPersister->getClassMetadata(); - - foreach ($class->getPropertyAccessors() as $name => $property) { - if (isset($identifier[$name])) { - continue; - } - - $property->setValue($proxy, $property->getValue($original)); - } - }; - } - - private function getProxyFileName(string $className, string $baseDirectory): string - { - $baseDirectory = $baseDirectory ?: $this->proxyDir; - - return rtrim($baseDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . InternalProxy::MARKER - . str_replace('\\', '', $className) . '.php'; - } - - private function getProxyFactory(string $className): Closure - { - $skippedProperties = []; - $class = $this->em->getClassMetadata($className); - $identifiers = array_flip($class->getIdentifierFieldNames()); - $filter = ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED | ReflectionProperty::IS_PRIVATE; - $reflector = $class->getReflectionClass(); - - while ($reflector) { - foreach ($reflector->getProperties($filter) as $property) { - $name = $property->name; - - if (PHP_VERSION_ID >= 80400 && count($property->getHooks()) > 0) { - throw new LogicException(sprintf( - 'Doctrine ORM does not support property hook on %s::%s without using native lazy objects. Check https://github.com/doctrine/orm/issues/11624 for details of versions that support property hooks.', - $property->getDeclaringClass()->getName(), - $property->getName(), - )); - } - - if ($property->isStatic() || ! isset($identifiers[$name])) { - continue; - } - - $prefix = $property->isPrivate() ? "\0" . $property->class . "\0" : ($property->isProtected() ? "\0*\0" : ''); - - $skippedProperties[$prefix . $name] = true; - } - - $filter = ReflectionProperty::IS_PRIVATE; - $reflector = $reflector->getParentClass(); - } - - $className = $class->getName(); // aliases and case sensitivity - $entityPersister = $this->uow->getEntityPersister($className); - $initializer = $this->createLazyInitializer($class, $entityPersister, $this->identifierFlattener); - $proxyClassName = $this->loadProxyClass($class); - $identifierFields = []; - - foreach (array_keys($identifiers) as $identifier) { - $identifierFields[$identifier] = $class->getPropertyAccessor($identifier); - } - - $proxyFactory = Closure::bind(static function (array $identifier) use ($initializer, $skippedProperties, $identifierFields, $className): InternalProxy { - $proxy = self::createLazyGhost(static function (InternalProxy $object) use ($initializer, $identifier): void { - $initializer($object, $identifier); - }, $skippedProperties); - - foreach ($identifierFields as $idField => $reflector) { - if (! isset($identifier[$idField])) { - throw ORMInvalidArgumentException::missingPrimaryKeyValue($className, $idField); - } - - assert($reflector !== null); - $reflector->setValue($proxy, $identifier[$idField]); - } - - return $proxy; - }, null, $proxyClassName); - - return $this->proxyFactories[$className] = $proxyFactory; - } - - private function loadProxyClass(ClassMetadata $class): string - { - $proxyClassName = self::generateProxyClassName($class->getName(), $this->proxyNs); - - if (class_exists($proxyClassName, false)) { - return $proxyClassName; - } - - if ($this->autoGenerate === self::AUTOGENERATE_EVAL) { - $this->generateProxyClass($class, null, $proxyClassName); - - return $proxyClassName; - } - - $fileName = $this->getProxyFileName($class->getName(), $this->proxyDir); - - switch ($this->autoGenerate) { - case self::AUTOGENERATE_FILE_NOT_EXISTS_OR_CHANGED: - if (file_exists($fileName) && filemtime($fileName) >= filemtime($class->getReflectionClass()->getFileName())) { - break; - } - // no break - case self::AUTOGENERATE_FILE_NOT_EXISTS: - if (file_exists($fileName)) { - break; - } - // no break - case self::AUTOGENERATE_ALWAYS: - $this->generateProxyClass($class, $fileName, $proxyClassName); - break; - } - - require $fileName; - - return $proxyClassName; - } - - private function generateProxyClass(ClassMetadata $class, string|null $fileName, string $proxyClassName): void - { - $i = strrpos($proxyClassName, '\\'); - $placeholders = [ - '' => $class->getName(), - '' => substr($proxyClassName, 0, $i), - '' => substr($proxyClassName, 1 + $i), - '' => InternalProxy::class, - ]; - - preg_match_all('(<([a-zA-Z]+)>)', self::PROXY_CLASS_TEMPLATE, $placeholderMatches); - - foreach (array_combine($placeholderMatches[0], $placeholderMatches[1]) as $placeholder => $name) { - $placeholders[$placeholder] ?? $placeholders[$placeholder] = $this->{'generate' . ucfirst($name)}($class); - } - - $proxyCode = strtr(self::PROXY_CLASS_TEMPLATE, $placeholders); - - if (! $fileName) { - if (! class_exists($proxyClassName)) { - eval(substr($proxyCode, 5)); - } - - return; - } - - $parentDirectory = dirname($fileName); - - if (! is_dir($parentDirectory) && ! @mkdir($parentDirectory, 0775, true)) { - throw ORMInvalidArgumentException::proxyDirectoryNotWritable($this->proxyDir); - } - - if (! is_writable($parentDirectory)) { - throw ORMInvalidArgumentException::proxyDirectoryNotWritable($this->proxyDir); - } - - $tmpFileName = $fileName . '.' . bin2hex(random_bytes(12)); - - file_put_contents($tmpFileName, $proxyCode); - @chmod($tmpFileName, 0664); - rename($tmpFileName, $fileName); - } - - private function generateUseLazyGhostTrait(ClassMetadata $class): string - { - // @phpstan-ignore staticMethod.deprecated (Because we support Symfony < 7.3) - $code = ProxyHelper::generateLazyGhost($class->getReflectionClass()); - $code = substr($code, 7 + (int) strpos($code, "\n{")); - $code = substr($code, 0, (int) strpos($code, "\n}")); - $code = str_replace('LazyGhostTrait;', str_replace("\n ", "\n", 'LazyGhostTrait { - initializeLazyObject as private; - setLazyObjectAsInitialized as public __setInitialized; - isLazyObjectInitialized as private; - createLazyGhost as private; - resetLazyObject as private; - } - - public function __load(): void - { - $this->initializeLazyObject(); - } - '), $code); - - return $code; - } - - private function generateSerializeImpl(ClassMetadata $class): string - { - $reflector = $class->getReflectionClass(); - $properties = $reflector->hasMethod('__serialize') ? 'parent::__serialize()' : '(array) $this'; - - $code = '$properties = ' . $properties . '; - unset($properties["\0" . self::class . "\0lazyObjectState"]); - - '; - - if ($reflector->hasMethod('__serialize') || ! $reflector->hasMethod('__sleep')) { - return $code . 'return $properties;'; - } - - return $code . '$data = []; - - foreach (parent::__sleep() as $name) { - $value = $properties[$k = $name] ?? $properties[$k = "\0*\0$name"] ?? $properties[$k = "\0' . $reflector->name . '\0$name"] ?? $k = null; - - if (null === $k) { - trigger_error(sprintf(\'serialize(): "%s" returned as member variable from __sleep() but does not exist\', $name), \E_USER_NOTICE); - } else { - $data[$k] = $value; - } - } - - return $data;'; - } - - private static function generateProxyClassName(string $className, string $proxyNamespace): string - { - return rtrim($proxyNamespace, '\\') . '\\' . Proxy::MARKER . '\\' . ltrim($className, '\\'); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query.php b/projects/priceservice/vendor/doctrine/orm/src/Query.php deleted file mode 100644 index 9365770..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query.php +++ /dev/null @@ -1,719 +0,0 @@ - - */ - private array $parsedTypes = []; - - /** - * Cached DQL query. - */ - private string|null $dql = null; - - /** - * The parser result that holds DQL => SQL information. - */ - private ParserResult $parserResult; - - /** - * The first result to return (the "offset"). - */ - private int $firstResult = 0; - - /** - * The maximum number of results to return (the "limit"). - */ - private int|null $maxResults = null; - - /** - * The cache driver used for caching queries. - */ - private CacheItemPoolInterface|null $queryCache = null; - - /** - * Whether or not expire the query cache. - */ - private bool $expireQueryCache = false; - - /** - * The query cache lifetime. - */ - private int|null $queryCacheTTL = null; - - /** - * Whether to use a query cache, if available. Defaults to TRUE. - */ - private bool $useQueryCache = true; - - /** - * Gets the SQL query/queries that correspond to this DQL query. - * - * @return list|string The built sql query or an array of all sql queries. - */ - public function getSQL(): string|array - { - return $this->getSqlExecutor()->getSqlStatements(); - } - - /** - * Returns the corresponding AST for this DQL query. - */ - public function getAST(): SelectStatement|UpdateStatement|DeleteStatement - { - $parser = new Parser($this); - - return $parser->getAST(); - } - - protected function getResultSetMapping(): ResultSetMapping - { - // parse query or load from cache - if ($this->resultSetMapping === null) { - $this->resultSetMapping = $this->parse()->getResultSetMapping(); - } - - return $this->resultSetMapping; - } - - /** - * Parses the DQL query, if necessary, and stores the parser result. - * - * Note: Populates $this->_parserResult as a side-effect. - */ - private function parse(): ParserResult - { - $types = []; - - foreach ($this->parameters as $parameter) { - /** @var Query\Parameter $parameter */ - $types[$parameter->getName()] = $parameter->getType(); - } - - // Return previous parser result if the query and the filter collection are both clean - if ($this->state === self::STATE_CLEAN && $this->parsedTypes === $types && $this->em->isFiltersStateClean()) { - return $this->parserResult; - } - - $this->state = self::STATE_CLEAN; - $this->parsedTypes = $types; - - $queryCache = $this->queryCache ?? $this->em->getConfiguration()->getQueryCache(); - // Check query cache. - if (! ($this->useQueryCache && $queryCache)) { - $parser = new Parser($this); - - $this->parserResult = $parser->parse(); - - return $this->parserResult; - } - - $cacheItem = $queryCache->getItem($this->getQueryCacheId()); - - if (! $this->expireQueryCache && $cacheItem->isHit()) { - $cached = $cacheItem->get(); - if ($cached instanceof ParserResult) { - // Cache hit. - $this->parserResult = $cached; - - return $this->parserResult; - } - } - - // Cache miss. - $parser = new Parser($this); - - $this->parserResult = $parser->parse(); - - $queryCache->save($cacheItem->set($this->parserResult)->expiresAfter($this->queryCacheTTL)); - - return $this->parserResult; - } - - protected function _doExecute(): Result|int - { - $executor = $this->getSqlExecutor(); - - if ($this->queryCacheProfile) { - $executor->setQueryCacheProfile($this->queryCacheProfile); - } else { - $executor->removeQueryCacheProfile(); - } - - if ($this->resultSetMapping === null) { - $this->resultSetMapping = $this->parserResult->getResultSetMapping(); - } - - // Prepare parameters - $paramMappings = $this->parserResult->getParameterMappings(); - $paramCount = count($this->parameters); - $mappingCount = count($paramMappings); - - if ($paramCount > $mappingCount) { - throw QueryException::tooManyParameters($mappingCount, $paramCount); - } - - if ($paramCount < $mappingCount) { - throw QueryException::tooFewParameters($mappingCount, $paramCount); - } - - // evict all cache for the entity region - if ($this->hasCache && isset($this->hints[self::HINT_CACHE_EVICT]) && $this->hints[self::HINT_CACHE_EVICT]) { - $this->evictEntityCacheRegion(); - } - - [$sqlParams, $types] = $this->processParameterMappings($paramMappings); - - $this->evictResultSetCache( - $executor, - $sqlParams, - $types, - $this->em->getConnection()->getParams(), - ); - - return $executor->execute($this->em->getConnection(), $sqlParams, $types); - } - - /** - * @param array $sqlParams - * @param array $types - * @param array $connectionParams - */ - private function evictResultSetCache( - AbstractSqlExecutor $executor, - array $sqlParams, - array $types, - array $connectionParams, - ): void { - if ($this->queryCacheProfile === null || ! $this->getExpireResultCache()) { - return; - } - - $cache = $this->queryCacheProfile->getResultCache(); - - assert($cache !== null); - - $statements = (array) $executor->getSqlStatements(); // Type casted since it can either be a string or an array - - foreach ($statements as $statement) { - $cacheKeys = $this->queryCacheProfile->generateCacheKeys($statement, $sqlParams, $types, $connectionParams); - $cache->deleteItem(reset($cacheKeys)); - } - } - - /** - * Evict entity cache region - */ - private function evictEntityCacheRegion(): void - { - $AST = $this->getAST(); - - if ($AST instanceof SelectStatement) { - throw new QueryException('The hint "HINT_CACHE_EVICT" is not valid for select statements.'); - } - - $className = $AST instanceof DeleteStatement - ? $AST->deleteClause->abstractSchemaName - : $AST->updateClause->abstractSchemaName; - - $this->em->getCache()->evictEntityRegion($className); - } - - /** - * Processes query parameter mappings. - * - * @param array> $paramMappings - * - * @return mixed[][] - * @phpstan-return array{0: list, 1: array} - * - * @throws Query\QueryException - */ - private function processParameterMappings(array $paramMappings): array - { - $sqlParams = []; - $types = []; - - foreach ($this->parameters as $parameter) { - $key = $parameter->getName(); - - if (! isset($paramMappings[$key])) { - throw QueryException::unknownParameter($key); - } - - [$value, $type] = $this->resolveParameterValue($parameter); - - foreach ($paramMappings[$key] as $position) { - $types[$position] = $type; - } - - $sqlPositions = $paramMappings[$key]; - - // optimized multi value sql positions away for now, - // they are not allowed in DQL anyways. - $value = [$value]; - $countValue = count($value); - - for ($i = 0, $l = count($sqlPositions); $i < $l; $i++) { - $sqlParams[$sqlPositions[$i]] = $value[$i % $countValue]; - } - } - - if (count($sqlParams) !== count($types)) { - throw QueryException::parameterTypeMismatch(); - } - - if ($sqlParams) { - ksort($sqlParams); - $sqlParams = array_values($sqlParams); - - ksort($types); - $types = array_values($types); - } - - return [$sqlParams, $types]; - } - - /** - * @return mixed[] tuple of (value, type) - * @phpstan-return array{0: mixed, 1: mixed} - */ - private function resolveParameterValue(Parameter $parameter): array - { - if ($parameter->typeWasSpecified()) { - return [$parameter->getValue(), $parameter->getType()]; - } - - $key = $parameter->getName(); - $originalValue = $parameter->getValue(); - $value = $originalValue; - $rsm = $this->getResultSetMapping(); - - if ($value instanceof ClassMetadata && isset($rsm->metadataParameterMapping[$key])) { - $value = $value->getMetadataValue($rsm->metadataParameterMapping[$key]); - } - - if ($value instanceof ClassMetadata && isset($rsm->discriminatorParameters[$key])) { - $value = array_keys(HierarchyDiscriminatorResolver::resolveDiscriminatorsForClass($value, $this->em)); - } - - $processedValue = $this->processParameterValue($value); - - return [ - $processedValue, - $originalValue === $processedValue - ? $parameter->getType() - : ParameterTypeInferer::inferType($processedValue), - ]; - } - - /** - * Defines a cache driver to be used for caching queries. - * - * @return $this - */ - public function setQueryCache(CacheItemPoolInterface|null $queryCache): self - { - $this->queryCache = $queryCache; - - return $this; - } - - /** - * Defines whether the query should make use of a query cache, if available. - * - * @return $this - */ - public function useQueryCache(bool $bool): self - { - $this->useQueryCache = $bool; - - return $this; - } - - /** - * Defines how long the query cache will be active before expire. - * - * @param int|null $timeToLive How long the cache entry is valid. - * - * @return $this - */ - public function setQueryCacheLifetime(int|null $timeToLive): self - { - $this->queryCacheTTL = $timeToLive; - - return $this; - } - - /** - * Retrieves the lifetime of resultset cache. - */ - public function getQueryCacheLifetime(): int|null - { - return $this->queryCacheTTL; - } - - /** - * Defines if the query cache is active or not. - * - * @return $this - */ - public function expireQueryCache(bool $expire = true): self - { - $this->expireQueryCache = $expire; - - return $this; - } - - /** - * Retrieves if the query cache is active or not. - */ - public function getExpireQueryCache(): bool - { - return $this->expireQueryCache; - } - - public function free(): void - { - parent::free(); - - $this->dql = null; - $this->state = self::STATE_CLEAN; - } - - /** - * Sets a DQL query string. - */ - public function setDQL(string $dqlQuery): self - { - $this->dql = $dqlQuery; - $this->state = self::STATE_DIRTY; - - return $this; - } - - /** - * Returns the DQL query that is represented by this query object. - */ - public function getDQL(): string|null - { - return $this->dql; - } - - /** - * Returns the state of this query object - * By default the type is Doctrine_ORM_Query_Abstract::STATE_CLEAN but if it appears any unprocessed DQL - * part, it is switched to Doctrine_ORM_Query_Abstract::STATE_DIRTY. - * - * @see AbstractQuery::STATE_CLEAN - * @see AbstractQuery::STATE_DIRTY - * - * @return int The query state. - * @phpstan-return self::STATE_* The query state. - */ - public function getState(): int - { - return $this->state; - } - - /** - * Method to check if an arbitrary piece of DQL exists - * - * @param string $dql Arbitrary piece of DQL to check for. - */ - public function contains(string $dql): bool - { - return stripos($this->getDQL(), $dql) !== false; - } - - /** - * Sets the position of the first result to retrieve (the "offset"). - * - * @param int $firstResult The first result to return. - * - * @return $this - */ - public function setFirstResult(int $firstResult): self - { - $this->firstResult = $firstResult; - $this->state = self::STATE_DIRTY; - - return $this; - } - - /** - * Gets the position of the first result the query object was set to retrieve (the "offset"). - * Returns 0 if {@link setFirstResult} was not applied to this query. - * - * @return int The position of the first result. - */ - public function getFirstResult(): int - { - return $this->firstResult; - } - - /** - * Sets the maximum number of results to retrieve (the "limit"). - * - * @return $this - */ - public function setMaxResults(int|null $maxResults): self - { - $this->maxResults = $maxResults; - $this->state = self::STATE_DIRTY; - - return $this; - } - - /** - * Gets the maximum number of results the query object was set to retrieve (the "limit"). - * Returns NULL if {@link setMaxResults} was not applied to this query. - * - * @return int|null Maximum number of results. - */ - public function getMaxResults(): int|null - { - return $this->maxResults; - } - - /** {@inheritDoc} */ - public function toIterable(iterable $parameters = [], $hydrationMode = self::HYDRATE_OBJECT): iterable - { - $this->setHint(self::HINT_INTERNAL_ITERATION, true); - - return parent::toIterable($parameters, $hydrationMode); - } - - public function setHint(string $name, mixed $value): static - { - $this->state = self::STATE_DIRTY; - - return parent::setHint($name, $value); - } - - public function setHydrationMode(string|int $hydrationMode): static - { - $this->state = self::STATE_DIRTY; - - return parent::setHydrationMode($hydrationMode); - } - - /** - * Set the lock mode for this Query. - * - * @see \Doctrine\DBAL\LockMode - * - * @phpstan-param LockMode::* $lockMode - * - * @return $this - * - * @throws TransactionRequiredException - */ - public function setLockMode(LockMode|int $lockMode): self - { - if (in_array($lockMode, [LockMode::NONE, LockMode::PESSIMISTIC_READ, LockMode::PESSIMISTIC_WRITE], true)) { - if (! $this->em->getConnection()->isTransactionActive()) { - throw TransactionRequiredException::transactionRequired(); - } - } - - $this->setHint(self::HINT_LOCK_MODE, $lockMode); - - return $this; - } - - /** - * Get the current lock mode for this query. - * - * @return LockMode|int|null The current lock mode of this query or NULL if no specific lock mode is set. - * @phpstan-return LockMode::*|null - */ - public function getLockMode(): LockMode|int|null - { - $lockMode = $this->getHint(self::HINT_LOCK_MODE); - - if ($lockMode === false) { - return null; - } - - return $lockMode; - } - - /** - * Generate a cache id for the query cache - reusing the Result-Cache-Id generator. - */ - protected function getQueryCacheId(): string - { - ksort($this->hints); - - if (! $this->hasHint(self::HINT_CUSTOM_OUTPUT_WALKER)) { - // Assume Parser will create the SqlOutputWalker; save is_a call, which might trigger a class load - $firstAndMaxResult = ''; - } else { - $outputWalkerClass = $this->getHint(self::HINT_CUSTOM_OUTPUT_WALKER); - if (is_a($outputWalkerClass, OutputWalker::class, true)) { - $firstAndMaxResult = ''; - } else { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11188/', - 'Your output walker class %s should implement %s in order to provide a %s. This also means the output walker should not use the query firstResult/maxResult values, which should be read from the query by the SqlFinalizer only.', - $outputWalkerClass, - OutputWalker::class, - SqlFinalizer::class, - ); - $firstAndMaxResult = '&firstResult=' . $this->firstResult . '&maxResult=' . $this->maxResults; - } - } - - return md5( - $this->getDQL() . serialize($this->hints) . - '&platform=' . get_debug_type($this->getEntityManager()->getConnection()->getDatabasePlatform()) . - ($this->em->hasFilters() ? $this->em->getFilters()->getHash() : '') . - $firstAndMaxResult . - '&hydrationMode=' . $this->hydrationMode . '&types=' . serialize($this->parsedTypes) . 'DOCTRINE_QUERY_CACHE_SALT', - ); - } - - protected function getHash(): string - { - return sha1(parent::getHash() . '-' . $this->firstResult . '-' . $this->maxResults); - } - - /** - * Cleanup Query resource when clone is called. - */ - public function __clone() - { - parent::__clone(); - - $this->state = self::STATE_DIRTY; - } - - private function getSqlExecutor(): AbstractSqlExecutor - { - return $this->parse()->prepareSqlExecutor($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ASTException.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ASTException.php deleted file mode 100644 index 1ef890a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ASTException.php +++ /dev/null @@ -1,20 +0,0 @@ -walkAggregateExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticExpression.php deleted file mode 100644 index a819e05..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticExpression.php +++ /dev/null @@ -1,34 +0,0 @@ -simpleArithmeticExpression; - } - - public function isSubselect(): bool - { - return (bool) $this->subselect; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkArithmeticExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticFactor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticFactor.php deleted file mode 100644 index 278a921..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticFactor.php +++ /dev/null @@ -1,36 +0,0 @@ -sign === true; - } - - public function isNegativeSigned(): bool - { - return $this->sign === false; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkArithmeticFactor($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticTerm.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticTerm.php deleted file mode 100644 index b233612..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ArithmeticTerm.php +++ /dev/null @@ -1,25 +0,0 @@ -walkArithmeticTerm($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/BetweenExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/BetweenExpression.php deleted file mode 100644 index c13292b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/BetweenExpression.php +++ /dev/null @@ -1,23 +0,0 @@ -walkBetweenExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CoalesceExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CoalesceExpression.php deleted file mode 100644 index 89f025f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CoalesceExpression.php +++ /dev/null @@ -1,25 +0,0 @@ -walkCoalesceExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CollectionMemberExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CollectionMemberExpression.php deleted file mode 100644 index a62a191..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/CollectionMemberExpression.php +++ /dev/null @@ -1,27 +0,0 @@ -walkCollectionMemberExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ComparisonExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ComparisonExpression.php deleted file mode 100644 index a7d91f9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ComparisonExpression.php +++ /dev/null @@ -1,32 +0,0 @@ -" | "!=") (BooleanExpression | QuantifiedExpression) | - * EnumExpression ("=" | "<>" | "!=") (EnumExpression | QuantifiedExpression) | - * DatetimeExpression ComparisonOperator (DatetimeExpression | QuantifiedExpression) | - * EntityExpression ("=" | "<>") (EntityExpression | QuantifiedExpression) - * - * @link www.doctrine-project.org - */ -class ComparisonExpression extends Node -{ - public function __construct( - public Node|string $leftExpression, - public string $operator, - public Node|string $rightExpression, - ) { - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkComparisonExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalExpression.php deleted file mode 100644 index 26a98e5..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalExpression.php +++ /dev/null @@ -1,25 +0,0 @@ -walkConditionalExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalFactor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalFactor.php deleted file mode 100644 index 7881743..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalFactor.php +++ /dev/null @@ -1,26 +0,0 @@ -walkConditionalFactor($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalPrimary.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalPrimary.php deleted file mode 100644 index 9344cd9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalPrimary.php +++ /dev/null @@ -1,34 +0,0 @@ -simpleConditionalExpression; - } - - public function isConditionalExpression(): bool - { - return (bool) $this->conditionalExpression; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkConditionalPrimary($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalTerm.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalTerm.php deleted file mode 100644 index dcea50b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ConditionalTerm.php +++ /dev/null @@ -1,25 +0,0 @@ -walkConditionalTerm($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteClause.php deleted file mode 100644 index 25e9085..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteClause.php +++ /dev/null @@ -1,26 +0,0 @@ -walkDeleteClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteStatement.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteStatement.php deleted file mode 100644 index f367d09..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/DeleteStatement.php +++ /dev/null @@ -1,26 +0,0 @@ -walkDeleteStatement($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EmptyCollectionComparisonExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EmptyCollectionComparisonExpression.php deleted file mode 100644 index 9978800..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EmptyCollectionComparisonExpression.php +++ /dev/null @@ -1,26 +0,0 @@ -walkEmptyCollectionComparisonExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EntityAsDtoArgumentExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EntityAsDtoArgumentExpression.php deleted file mode 100644 index bcfa5e6..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/EntityAsDtoArgumentExpression.php +++ /dev/null @@ -1,26 +0,0 @@ -walkEntityAsDtoArgumentExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ExistsExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ExistsExpression.php deleted file mode 100644 index 72757f4..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ExistsExpression.php +++ /dev/null @@ -1,26 +0,0 @@ -walkExistsExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/FromClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/FromClause.php deleted file mode 100644 index 0b74393..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/FromClause.php +++ /dev/null @@ -1,25 +0,0 @@ -walkFromClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AbsFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AbsFunction.php deleted file mode 100644 index 4edff06..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AbsFunction.php +++ /dev/null @@ -1,37 +0,0 @@ -walkSimpleArithmeticExpression( - $this->simpleArithmeticExpression, - ) . ')'; - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->simpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AvgFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AvgFunction.php deleted file mode 100644 index ba7b7f3..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/AvgFunction.php +++ /dev/null @@ -1,27 +0,0 @@ -aggregateExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $this->aggregateExpression = $parser->AggregateExpression(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitAndFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitAndFunction.php deleted file mode 100644 index f2d3146..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitAndFunction.php +++ /dev/null @@ -1,43 +0,0 @@ -getConnection()->getDatabasePlatform(); - - return $platform->getBitAndComparisonExpression( - $this->firstArithmetic->dispatch($sqlWalker), - $this->secondArithmetic->dispatch($sqlWalker), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstArithmetic = $parser->ArithmeticPrimary(); - $parser->match(TokenType::T_COMMA); - $this->secondArithmetic = $parser->ArithmeticPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitOrFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitOrFunction.php deleted file mode 100644 index f3f84da..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/BitOrFunction.php +++ /dev/null @@ -1,43 +0,0 @@ -getConnection()->getDatabasePlatform(); - - return $platform->getBitOrComparisonExpression( - $this->firstArithmetic->dispatch($sqlWalker), - $this->secondArithmetic->dispatch($sqlWalker), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstArithmetic = $parser->ArithmeticPrimary(); - $parser->match(TokenType::T_COMMA); - $this->secondArithmetic = $parser->ArithmeticPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ConcatFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ConcatFunction.php deleted file mode 100644 index 7a7d04c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ConcatFunction.php +++ /dev/null @@ -1,58 +0,0 @@ - */ - public array $concatExpressions = []; - - public function getSql(SqlWalker $sqlWalker): string - { - $platform = $sqlWalker->getConnection()->getDatabasePlatform(); - - $args = []; - - foreach ($this->concatExpressions as $expression) { - $args[] = $sqlWalker->walkStringPrimary($expression); - } - - return $platform->getConcatExpression(...$args); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstStringPrimary = $parser->StringPrimary(); - $this->concatExpressions[] = $this->firstStringPrimary; - - $parser->match(TokenType::T_COMMA); - - $this->secondStringPrimary = $parser->StringPrimary(); - $this->concatExpressions[] = $this->secondStringPrimary; - - while ($parser->getLexer()->isNextToken(TokenType::T_COMMA)) { - $parser->match(TokenType::T_COMMA); - $this->concatExpressions[] = $parser->StringPrimary(); - } - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CountFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CountFunction.php deleted file mode 100644 index dc926a5..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CountFunction.php +++ /dev/null @@ -1,35 +0,0 @@ -aggregateExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $this->aggregateExpression = $parser->AggregateExpression(); - } - - public function getReturnType(): Type - { - return Type::getType(Types::INTEGER); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentDateFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentDateFunction.php deleted file mode 100644 index cec9632..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentDateFunction.php +++ /dev/null @@ -1,29 +0,0 @@ -getConnection()->getDatabasePlatform()->getCurrentDateSQL(); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimeFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimeFunction.php deleted file mode 100644 index 6473fce..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimeFunction.php +++ /dev/null @@ -1,29 +0,0 @@ -getConnection()->getDatabasePlatform()->getCurrentTimeSQL(); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimestampFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimestampFunction.php deleted file mode 100644 index edcd27c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/CurrentTimestampFunction.php +++ /dev/null @@ -1,29 +0,0 @@ -getConnection()->getDatabasePlatform()->getCurrentTimestampSQL(); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateAddFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateAddFunction.php deleted file mode 100644 index 12920dc..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateAddFunction.php +++ /dev/null @@ -1,83 +0,0 @@ -unit->value)) { - 'second' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddSecondsExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'minute' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddMinutesExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'hour' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddHourExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'day' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddDaysExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'week' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddWeeksExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'month' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddMonthExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'year' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateAddYearsExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - default => throw QueryException::semanticalError( - 'DATE_ADD() only supports units of type second, minute, hour, day, week, month and year.', - ), - }; - } - - /** @throws ASTException */ - private function dispatchIntervalExpression(SqlWalker $sqlWalker): string - { - return $this->intervalExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstDateExpression = $parser->ArithmeticPrimary(); - $parser->match(TokenType::T_COMMA); - $this->intervalExpression = $parser->ArithmeticPrimary(); - $parser->match(TokenType::T_COMMA); - $this->unit = $parser->StringPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateDiffFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateDiffFunction.php deleted file mode 100644 index 55598c0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateDiffFunction.php +++ /dev/null @@ -1,41 +0,0 @@ -getConnection()->getDatabasePlatform()->getDateDiffExpression( - $this->date1->dispatch($sqlWalker), - $this->date2->dispatch($sqlWalker), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->date1 = $parser->ArithmeticPrimary(); - $parser->match(TokenType::T_COMMA); - $this->date2 = $parser->ArithmeticPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateSubFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateSubFunction.php deleted file mode 100644 index 5363680..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/DateSubFunction.php +++ /dev/null @@ -1,62 +0,0 @@ -unit->value)) { - 'second' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubSecondsExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'minute' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubMinutesExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'hour' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubHourExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'day' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubDaysExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'week' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubWeeksExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'month' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubMonthExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - 'year' => $sqlWalker->getConnection()->getDatabasePlatform()->getDateSubYearsExpression( - $this->firstDateExpression->dispatch($sqlWalker), - $this->dispatchIntervalExpression($sqlWalker), - ), - default => throw QueryException::semanticalError( - 'DATE_SUB() only supports units of type second, minute, hour, day, week, month and year.', - ), - }; - } - - /** @throws ASTException */ - private function dispatchIntervalExpression(SqlWalker $sqlWalker): string - { - return $this->intervalExpression->dispatch($sqlWalker); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/FunctionNode.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/FunctionNode.php deleted file mode 100644 index e49ddba..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/FunctionNode.php +++ /dev/null @@ -1,32 +0,0 @@ -walkFunction($this); - } - - abstract public function parse(Parser $parser): void; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/IdentityFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/IdentityFunction.php deleted file mode 100644 index 1dd1bf5..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/IdentityFunction.php +++ /dev/null @@ -1,90 +0,0 @@ -pathExpression->field !== null); - $entityManager = $sqlWalker->getEntityManager(); - $platform = $entityManager->getConnection()->getDatabasePlatform(); - $quoteStrategy = $entityManager->getConfiguration()->getQuoteStrategy(); - $dqlAlias = $this->pathExpression->identificationVariable; - $assocField = $this->pathExpression->field; - $assoc = $sqlWalker->getMetadataForDqlAlias($dqlAlias)->associationMappings[$assocField]; - $targetEntity = $entityManager->getClassMetadata($assoc->targetEntity); - - assert($assoc->isToOneOwningSide()); - $joinColumn = reset($assoc->joinColumns); - - if ($this->fieldMapping !== null) { - if (! isset($targetEntity->fieldMappings[$this->fieldMapping])) { - throw new QueryException(sprintf('Undefined reference field mapping "%s"', $this->fieldMapping)); - } - - $field = $targetEntity->fieldMappings[$this->fieldMapping]; - $joinColumn = null; - - foreach ($assoc->joinColumns as $mapping) { - if ($mapping->referencedColumnName === $field->columnName) { - $joinColumn = $mapping; - - break; - } - } - - if ($joinColumn === null) { - throw new QueryException(sprintf('Unable to resolve the reference field mapping "%s"', $this->fieldMapping)); - } - } - - // The table with the relation may be a subclass, so get the table name from the association definition - $tableName = $entityManager->getClassMetadata($assoc->sourceEntity)->getTableName(); - - $tableAlias = $sqlWalker->getSQLTableAlias($tableName, $dqlAlias); - $columnName = $quoteStrategy->getJoinColumnName($joinColumn, $targetEntity, $platform); - - return $tableAlias . '.' . $columnName; - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->pathExpression = $parser->SingleValuedAssociationPathExpression(); - - if ($parser->getLexer()->isNextToken(TokenType::T_COMMA)) { - $parser->match(TokenType::T_COMMA); - $parser->match(TokenType::T_STRING); - - $token = $parser->getLexer()->token; - assert($token !== null); - $this->fieldMapping = $token->value; - } - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LengthFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LengthFunction.php deleted file mode 100644 index 3994918..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LengthFunction.php +++ /dev/null @@ -1,45 +0,0 @@ -getConnection()->getDatabasePlatform()->getLengthExpression( - $sqlWalker->walkSimpleArithmeticExpression($this->stringPrimary), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->stringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } - - public function getReturnType(): Type - { - return Type::getType(Types::INTEGER); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LocateFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LocateFunction.php deleted file mode 100644 index c0d3b4a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LocateFunction.php +++ /dev/null @@ -1,62 +0,0 @@ -getConnection()->getDatabasePlatform(); - - $firstString = $sqlWalker->walkStringPrimary($this->firstStringPrimary); - $secondString = $sqlWalker->walkStringPrimary($this->secondStringPrimary); - - if ($this->simpleArithmeticExpression) { - return $platform->getLocateExpression( - $secondString, - $firstString, - $sqlWalker->walkSimpleArithmeticExpression($this->simpleArithmeticExpression), - ); - } - - return $platform->getLocateExpression($secondString, $firstString); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstStringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_COMMA); - - $this->secondStringPrimary = $parser->StringPrimary(); - - $lexer = $parser->getLexer(); - if ($lexer->isNextToken(TokenType::T_COMMA)) { - $parser->match(TokenType::T_COMMA); - - $this->simpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - } - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LowerFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LowerFunction.php deleted file mode 100644 index 8ae337a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/LowerFunction.php +++ /dev/null @@ -1,40 +0,0 @@ -walkSimpleArithmeticExpression($this->stringPrimary), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->stringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MaxFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MaxFunction.php deleted file mode 100644 index 8a6eecf..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MaxFunction.php +++ /dev/null @@ -1,27 +0,0 @@ -aggregateExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $this->aggregateExpression = $parser->AggregateExpression(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MinFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MinFunction.php deleted file mode 100644 index 98d73a2..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/MinFunction.php +++ /dev/null @@ -1,27 +0,0 @@ -aggregateExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $this->aggregateExpression = $parser->AggregateExpression(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ModFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ModFunction.php deleted file mode 100644 index 7c1af0b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/ModFunction.php +++ /dev/null @@ -1,43 +0,0 @@ -getConnection()->getDatabasePlatform()->getModExpression( - $sqlWalker->walkSimpleArithmeticExpression($this->firstSimpleArithmeticExpression), - $sqlWalker->walkSimpleArithmeticExpression($this->secondSimpleArithmeticExpression), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->firstSimpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - - $parser->match(TokenType::T_COMMA); - - $this->secondSimpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SizeFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SizeFunction.php deleted file mode 100644 index 87ee713..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SizeFunction.php +++ /dev/null @@ -1,113 +0,0 @@ -collectionPathExpression->field !== null); - $entityManager = $sqlWalker->getEntityManager(); - $platform = $entityManager->getConnection()->getDatabasePlatform(); - $quoteStrategy = $entityManager->getConfiguration()->getQuoteStrategy(); - $dqlAlias = $this->collectionPathExpression->identificationVariable; - $assocField = $this->collectionPathExpression->field; - - $class = $sqlWalker->getMetadataForDqlAlias($dqlAlias); - $assoc = $class->associationMappings[$assocField]; - $sql = 'SELECT COUNT(*) FROM '; - - if ($assoc->isOneToMany()) { - $targetClass = $entityManager->getClassMetadata($assoc->targetEntity); - $targetTableAlias = $sqlWalker->getSQLTableAlias($targetClass->getTableName()); - $sourceTableAlias = $sqlWalker->getSQLTableAlias($class->getTableName(), $dqlAlias); - - $sql .= $quoteStrategy->getTableName($targetClass, $platform) . ' ' . $targetTableAlias . ' WHERE '; - - $owningAssoc = $targetClass->associationMappings[$assoc->mappedBy]; - assert($owningAssoc->isManyToOne()); - - $first = true; - - foreach ($owningAssoc->targetToSourceKeyColumns as $targetColumn => $sourceColumn) { - if ($first) { - $first = false; - } else { - $sql .= ' AND '; - } - - $sql .= $targetTableAlias . '.' . $sourceColumn - . ' = ' - . $sourceTableAlias . '.' . $quoteStrategy->getColumnName($class->fieldNames[$targetColumn], $class, $platform); - } - } else { // many-to-many - assert($assoc->isManyToMany()); - $owningAssoc = $entityManager->getMetadataFactory()->getOwningSide($assoc); - $joinTable = $owningAssoc->joinTable; - - // SQL table aliases - $joinTableAlias = $sqlWalker->getSQLTableAlias($joinTable->name); - $sourceTableAlias = $sqlWalker->getSQLTableAlias($class->getTableName(), $dqlAlias); - - // join to target table - $targetClass = $entityManager->getClassMetadata($assoc->targetEntity); - $sql .= $quoteStrategy->getJoinTableName($owningAssoc, $targetClass, $platform) . ' ' . $joinTableAlias . ' WHERE '; - - $joinColumns = $assoc->isOwningSide() - ? $joinTable->joinColumns - : $joinTable->inverseJoinColumns; - - $first = true; - - foreach ($joinColumns as $joinColumn) { - if ($first) { - $first = false; - } else { - $sql .= ' AND '; - } - - $sourceColumnName = $quoteStrategy->getColumnName( - $class->fieldNames[$joinColumn->referencedColumnName], - $class, - $platform, - ); - - $sql .= $joinTableAlias . '.' . $joinColumn->name - . ' = ' - . $sourceTableAlias . '.' . $sourceColumnName; - } - } - - return '(' . $sql . ')'; - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->collectionPathExpression = $parser->CollectionValuedPathExpression(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SqrtFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SqrtFunction.php deleted file mode 100644 index e643663..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SqrtFunction.php +++ /dev/null @@ -1,40 +0,0 @@ -walkSimpleArithmeticExpression($this->simpleArithmeticExpression), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->simpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SubstringFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SubstringFunction.php deleted file mode 100644 index 5744f08..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SubstringFunction.php +++ /dev/null @@ -1,58 +0,0 @@ -secondSimpleArithmeticExpression !== null) { - $optionalSecondSimpleArithmeticExpression = $sqlWalker->walkSimpleArithmeticExpression($this->secondSimpleArithmeticExpression); - } - - return $sqlWalker->getConnection()->getDatabasePlatform()->getSubstringExpression( - $sqlWalker->walkStringPrimary($this->stringPrimary), - $sqlWalker->walkSimpleArithmeticExpression($this->firstSimpleArithmeticExpression), - $optionalSecondSimpleArithmeticExpression, - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->stringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_COMMA); - - $this->firstSimpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - - $lexer = $parser->getLexer(); - if ($lexer->isNextToken(TokenType::T_COMMA)) { - $parser->match(TokenType::T_COMMA); - - $this->secondSimpleArithmeticExpression = $parser->SimpleArithmeticExpression(); - } - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SumFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SumFunction.php deleted file mode 100644 index 588dce9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/SumFunction.php +++ /dev/null @@ -1,27 +0,0 @@ -aggregateExpression->dispatch($sqlWalker); - } - - public function parse(Parser $parser): void - { - $this->aggregateExpression = $parser->AggregateExpression(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/TrimFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/TrimFunction.php deleted file mode 100644 index cae6200..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/TrimFunction.php +++ /dev/null @@ -1,119 +0,0 @@ -walkStringPrimary($this->stringPrimary); - $platform = $sqlWalker->getConnection()->getDatabasePlatform(); - $trimMode = $this->getTrimMode(); - - if ($this->trimChar !== false) { - return $platform->getTrimExpression( - $stringPrimary, - $trimMode, - $platform->quoteStringLiteral($this->trimChar), - ); - } - - return $platform->getTrimExpression($stringPrimary, $trimMode); - } - - public function parse(Parser $parser): void - { - $lexer = $parser->getLexer(); - - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->parseTrimMode($parser); - - if ($lexer->isNextToken(TokenType::T_STRING)) { - $parser->match(TokenType::T_STRING); - - assert($lexer->token !== null); - $this->trimChar = $lexer->token->value; - } - - if ($this->leading || $this->trailing || $this->both || ($this->trimChar !== false)) { - $parser->match(TokenType::T_FROM); - } - - $this->stringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } - - /** @phpstan-return TrimMode::* */ - private function getTrimMode(): TrimMode|int - { - if ($this->leading) { - return TrimMode::LEADING; - } - - if ($this->trailing) { - return TrimMode::TRAILING; - } - - if ($this->both) { - return TrimMode::BOTH; - } - - return TrimMode::UNSPECIFIED; - } - - private function parseTrimMode(Parser $parser): void - { - $lexer = $parser->getLexer(); - assert($lexer->lookahead !== null); - $value = $lexer->lookahead->value; - - if (strcasecmp('leading', $value) === 0) { - $parser->match(TokenType::T_LEADING); - - $this->leading = true; - - return; - } - - if (strcasecmp('trailing', $value) === 0) { - $parser->match(TokenType::T_TRAILING); - - $this->trailing = true; - - return; - } - - if (strcasecmp('both', $value) === 0) { - $parser->match(TokenType::T_BOTH); - - $this->both = true; - - return; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/UpperFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/UpperFunction.php deleted file mode 100644 index 1ecef66..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Functions/UpperFunction.php +++ /dev/null @@ -1,40 +0,0 @@ -walkSimpleArithmeticExpression($this->stringPrimary), - ); - } - - public function parse(Parser $parser): void - { - $parser->match(TokenType::T_IDENTIFIER); - $parser->match(TokenType::T_OPEN_PARENTHESIS); - - $this->stringPrimary = $parser->StringPrimary(); - - $parser->match(TokenType::T_CLOSE_PARENTHESIS); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GeneralCaseExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GeneralCaseExpression.php deleted file mode 100644 index 39d760a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GeneralCaseExpression.php +++ /dev/null @@ -1,27 +0,0 @@ -walkGeneralCaseExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GroupByClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GroupByClause.php deleted file mode 100644 index eb0f1b9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/GroupByClause.php +++ /dev/null @@ -1,20 +0,0 @@ -walkGroupByClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/HavingClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/HavingClause.php deleted file mode 100644 index 0d4d821..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/HavingClause.php +++ /dev/null @@ -1,19 +0,0 @@ -walkHavingClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IdentificationVariableDeclaration.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IdentificationVariableDeclaration.php deleted file mode 100644 index c4c7cca..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IdentificationVariableDeclaration.php +++ /dev/null @@ -1,28 +0,0 @@ -walkIdentificationVariableDeclaration($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InListExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InListExpression.php deleted file mode 100644 index dc0f32b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InListExpression.php +++ /dev/null @@ -1,23 +0,0 @@ - $literals */ - public function __construct( - public ArithmeticExpression $expression, - public array $literals, - public bool $not = false, - ) { - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkInListExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InSubselectExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InSubselectExpression.php deleted file mode 100644 index 1128285..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InSubselectExpression.php +++ /dev/null @@ -1,22 +0,0 @@ -walkInSubselectExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IndexBy.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IndexBy.php deleted file mode 100644 index 3d90265..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/IndexBy.php +++ /dev/null @@ -1,26 +0,0 @@ -walkIndexBy($this); - - return ''; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InputParameter.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InputParameter.php deleted file mode 100644 index a8e0a3b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InputParameter.php +++ /dev/null @@ -1,35 +0,0 @@ -isNamed = ! is_numeric($param); - $this->name = $param; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkInputParameter($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InstanceOfExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InstanceOfExpression.php deleted file mode 100644 index 3a4e75f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/InstanceOfExpression.php +++ /dev/null @@ -1,29 +0,0 @@ - $value */ - public function __construct( - public string $identificationVariable, - public array $value, - public bool $not = false, - ) { - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkInstanceOfExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Join.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Join.php deleted file mode 100644 index 6783309..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Join.php +++ /dev/null @@ -1,34 +0,0 @@ -walkJoin($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationDeclaration.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationDeclaration.php deleted file mode 100644 index e08d7f5..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationDeclaration.php +++ /dev/null @@ -1,27 +0,0 @@ -walkJoinAssociationDeclaration($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationPathExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationPathExpression.php deleted file mode 100644 index 230be36..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinAssociationPathExpression.php +++ /dev/null @@ -1,19 +0,0 @@ -walkJoinPathExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinVariableDeclaration.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinVariableDeclaration.php deleted file mode 100644 index bf76695..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/JoinVariableDeclaration.php +++ /dev/null @@ -1,24 +0,0 @@ -walkJoinVariableDeclaration($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/LikeExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/LikeExpression.php deleted file mode 100644 index e3f67f8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/LikeExpression.php +++ /dev/null @@ -1,29 +0,0 @@ -walkLikeExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Literal.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Literal.php deleted file mode 100644 index a7b4aae..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Literal.php +++ /dev/null @@ -1,26 +0,0 @@ -walkLiteral($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NewObjectExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NewObjectExpression.php deleted file mode 100644 index 1d46722..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NewObjectExpression.php +++ /dev/null @@ -1,33 +0,0 @@ - 1 ? func_get_arg(1) : null; - - return $walker->walkNewObject($this, $parentAlias); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Node.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Node.php deleted file mode 100644 index cdb5855..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Node.php +++ /dev/null @@ -1,85 +0,0 @@ -dump($this); - } - - public function dump(mixed $value): string - { - static $ident = 0; - - $str = ''; - - if ($value instanceof Node) { - $str .= get_debug_type($value) . '(' . PHP_EOL; - $props = get_object_vars($value); - - foreach ($props as $name => $prop) { - $ident += 4; - $str .= str_repeat(' ', $ident) . '"' . $name . '": ' - . $this->dump($prop) . ',' . PHP_EOL; - $ident -= 4; - } - - $str .= str_repeat(' ', $ident) . ')'; - } elseif (is_array($value)) { - $ident += 4; - $str .= 'array('; - $some = false; - - foreach ($value as $k => $v) { - $str .= PHP_EOL . str_repeat(' ', $ident) . '"' - . $k . '" => ' . $this->dump($v) . ','; - $some = true; - } - - $ident -= 4; - $str .= ($some ? PHP_EOL . str_repeat(' ', $ident) : '') . ')'; - } elseif (is_object($value)) { - $str .= 'instanceof(' . get_debug_type($value) . ')'; - } else { - $str .= var_export($value, true); - } - - return $str; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullComparisonExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullComparisonExpression.php deleted file mode 100644 index e60cb04..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullComparisonExpression.php +++ /dev/null @@ -1,26 +0,0 @@ -walkNullComparisonExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullIfExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullIfExpression.php deleted file mode 100644 index 6fffeeb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/NullIfExpression.php +++ /dev/null @@ -1,24 +0,0 @@ -walkNullIfExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByClause.php deleted file mode 100644 index f6d7a67..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByClause.php +++ /dev/null @@ -1,25 +0,0 @@ -walkOrderByClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByItem.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByItem.php deleted file mode 100644 index 64b3f40..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/OrderByItem.php +++ /dev/null @@ -1,38 +0,0 @@ -type) === 'ASC'; - } - - public function isDesc(): bool - { - return strtoupper($this->type) === 'DESC'; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkOrderByItem($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ParenthesisExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ParenthesisExpression.php deleted file mode 100644 index cda6d19..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/ParenthesisExpression.php +++ /dev/null @@ -1,22 +0,0 @@ -walkParenthesisExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/PartialObjectExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/PartialObjectExpression.php deleted file mode 100644 index 875f445..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/PartialObjectExpression.php +++ /dev/null @@ -1,15 +0,0 @@ - $expectedType */ - public function __construct( - public int $expectedType, - public string $identificationVariable, - public string|null $field = null, - ) { - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkPathExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Phase2OptimizableConditional.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Phase2OptimizableConditional.php deleted file mode 100644 index d838f12..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Phase2OptimizableConditional.php +++ /dev/null @@ -1,15 +0,0 @@ -type) === 'ALL'; - } - - public function isAny(): bool - { - return strtoupper($this->type) === 'ANY'; - } - - public function isSome(): bool - { - return strtoupper($this->type) === 'SOME'; - } - - public function dispatch(SqlWalker $walker): string - { - return $walker->walkQuantifiedExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/RangeVariableDeclaration.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/RangeVariableDeclaration.php deleted file mode 100644 index 59bd5c8..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/RangeVariableDeclaration.php +++ /dev/null @@ -1,27 +0,0 @@ -walkRangeVariableDeclaration($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectClause.php deleted file mode 100644 index ad50e67..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectClause.php +++ /dev/null @@ -1,27 +0,0 @@ -walkSelectClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectExpression.php deleted file mode 100644 index f09f3cd..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectExpression.php +++ /dev/null @@ -1,28 +0,0 @@ -walkSelectExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectStatement.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectStatement.php deleted file mode 100644 index 399462f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SelectStatement.php +++ /dev/null @@ -1,32 +0,0 @@ -walkSelectStatement($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleArithmeticExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleArithmeticExpression.php deleted file mode 100644 index ae7ca44..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleArithmeticExpression.php +++ /dev/null @@ -1,25 +0,0 @@ -walkSimpleArithmeticExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleCaseExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleCaseExpression.php deleted file mode 100644 index b3764ba..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleCaseExpression.php +++ /dev/null @@ -1,28 +0,0 @@ -walkSimpleCaseExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectClause.php deleted file mode 100644 index 0259e3b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectClause.php +++ /dev/null @@ -1,26 +0,0 @@ -walkSimpleSelectClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectExpression.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectExpression.php deleted file mode 100644 index 97e8f08..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleSelectExpression.php +++ /dev/null @@ -1,27 +0,0 @@ -walkSimpleSelectExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleWhenClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleWhenClause.php deleted file mode 100644 index 892165a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SimpleWhenClause.php +++ /dev/null @@ -1,26 +0,0 @@ -walkWhenClauseExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Subselect.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Subselect.php deleted file mode 100644 index 8ff8595..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/Subselect.php +++ /dev/null @@ -1,32 +0,0 @@ -walkSubselect($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectFromClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectFromClause.php deleted file mode 100644 index 7cf01e2..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectFromClause.php +++ /dev/null @@ -1,25 +0,0 @@ -walkSubselectFromClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectIdentificationVariableDeclaration.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectIdentificationVariableDeclaration.php deleted file mode 100644 index eadf6bc..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/SubselectIdentificationVariableDeclaration.php +++ /dev/null @@ -1,19 +0,0 @@ -walkUpdateClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateItem.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateItem.php deleted file mode 100644 index b540593..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateItem.php +++ /dev/null @@ -1,26 +0,0 @@ -walkUpdateItem($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateStatement.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateStatement.php deleted file mode 100644 index 7ea5076..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/UpdateStatement.php +++ /dev/null @@ -1,26 +0,0 @@ -walkUpdateStatement($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhenClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhenClause.php deleted file mode 100644 index 9bf194e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhenClause.php +++ /dev/null @@ -1,26 +0,0 @@ -walkWhenClauseExpression($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhereClause.php b/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhereClause.php deleted file mode 100644 index e4d7b66..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/AST/WhereClause.php +++ /dev/null @@ -1,24 +0,0 @@ -walkWhereClause($this); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php deleted file mode 100644 index 65c7592..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php +++ /dev/null @@ -1,61 +0,0 @@ -, WrapperParameterType>|array - */ -abstract class AbstractSqlExecutor -{ - /** @var list|string */ - protected array|string $sqlStatements; - - protected QueryCacheProfile|null $queryCacheProfile = null; - - /** - * Gets the SQL statements that are executed by the executor. - * - * @return list|string All the SQL update statements. - */ - public function getSqlStatements(): array|string - { - return $this->sqlStatements; - } - - public function setQueryCacheProfile(QueryCacheProfile $qcp): void - { - $this->queryCacheProfile = $qcp; - } - - /** - * Do not use query cache - */ - public function removeQueryCacheProfile(): void - { - $this->queryCacheProfile = null; - } - - /** - * Executes all sql statements. - * - * @param Connection $conn The database connection that is used to execute the queries. - * @param list|array $params The parameters. - * @phpstan-param WrapperParameterTypeArray $types The parameter types. - */ - abstract public function execute(Connection $conn, array $params, array $types): Result|int; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/FinalizedSelectExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/FinalizedSelectExecutor.php deleted file mode 100644 index 872d42c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/FinalizedSelectExecutor.php +++ /dev/null @@ -1,29 +0,0 @@ -sqlStatements = $sql; - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): Result - { - return $conn->executeQuery($this->getSqlStatements(), $params, $types, $this->queryCacheProfile); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php deleted file mode 100644 index 6096462..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php +++ /dev/null @@ -1,131 +0,0 @@ -MultiTableDeleteExecutor. - * - * Internal note: Any SQL construction and preparation takes place in the constructor for - * best performance. With a query cache the executor will be cached. - * - * @param DeleteStatement $AST The root AST node of the DQL query. - * @param SqlWalker $sqlWalker The walker used for SQL generation from the AST. - */ - public function __construct(AST\Node $AST, SqlWalker $sqlWalker) - { - $em = $sqlWalker->getEntityManager(); - $conn = $em->getConnection(); - $platform = $conn->getDatabasePlatform(); - $quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - $primaryClass = $em->getClassMetadata($AST->deleteClause->abstractSchemaName); - $primaryDqlAlias = $AST->deleteClause->aliasIdentificationVariable; - $rootClass = $em->getClassMetadata($primaryClass->rootEntityName); - - $tempTable = $platform->getTemporaryTableName($rootClass->getTemporaryIdTableName()); - $idColumnNames = $rootClass->getIdentifierColumnNames(); - $idColumnList = implode(', ', $idColumnNames); - - // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() - $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $primaryDqlAlias); - - $insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' - . ' SELECT t0.' . implode(', t0.', $idColumnNames); - - $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $primaryDqlAlias); - $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); - $insertSql .= $sqlWalker->walkFromClause($fromClause); - - // Append WHERE clause, if there is one. - if ($AST->whereClause) { - $insertSql .= $sqlWalker->walkWhereClause($AST->whereClause); - } - - $this->insertSql = $insertSql; - - // 2. Create ID subselect statement used in DELETE ... WHERE ... IN (subselect) - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; - - // 3. Create and store DELETE statements - $classNames = [...$primaryClass->parentClasses, ...[$primaryClass->name], ...$primaryClass->subClasses]; - foreach (array_reverse($classNames) as $className) { - $tableName = $quoteStrategy->getTableName($em->getClassMetadata($className), $platform); - $this->sqlStatements[] = 'DELETE FROM ' . $tableName - . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; - } - - // 4. Store DDL for temporary identifier table. - $columnDefinitions = []; - foreach ($idColumnNames as $idColumnName) { - $columnDefinitions[$idColumnName] = [ - 'name' => $idColumnName, - 'notnull' => true, - 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $em)), - ]; - } - - $this->createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ', PRIMARY KEY(' . implode(',', $idColumnNames) . '))'; - $this->dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - // Create temporary id table - $conn->executeStatement($this->createTempTableSql); - - try { - // Insert identifiers - $numDeleted = $conn->executeStatement($this->insertSql, $params, $types); - - // Execute DELETE statements - foreach ($this->sqlStatements as $sql) { - $conn->executeStatement($sql); - } - } catch (Throwable $exception) { - // FAILURE! Drop temporary table to avoid possible collisions - $conn->executeStatement($this->dropTempTableSql); - - // Re-throw exception - throw $exception; - } - - // Drop temporary table - $conn->executeStatement($this->dropTempTableSql); - - return $numDeleted; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php deleted file mode 100644 index dab1b61..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php +++ /dev/null @@ -1,180 +0,0 @@ -MultiTableUpdateExecutor. - * - * Internal note: Any SQL construction and preparation takes place in the constructor for - * best performance. With a query cache the executor will be cached. - * - * @param UpdateStatement $AST The root AST node of the DQL query. - * @param SqlWalker $sqlWalker The walker used for SQL generation from the AST. - */ - public function __construct(AST\Node $AST, SqlWalker $sqlWalker) - { - $em = $sqlWalker->getEntityManager(); - $conn = $em->getConnection(); - $platform = $conn->getDatabasePlatform(); - $quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - $this->sqlStatements = []; - - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - $updateClause = $AST->updateClause; - $primaryClass = $sqlWalker->getEntityManager()->getClassMetadata($updateClause->abstractSchemaName); - $rootClass = $em->getClassMetadata($primaryClass->rootEntityName); - - $updateItems = $updateClause->updateItems; - - $tempTable = $platform->getTemporaryTableName($rootClass->getTemporaryIdTableName()); - $idColumnNames = $rootClass->getIdentifierColumnNames(); - $idColumnList = implode(', ', $idColumnNames); - - // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() - $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $updateClause->aliasIdentificationVariable); - - $insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' - . ' SELECT t0.' . implode(', t0.', $idColumnNames); - - $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $updateClause->aliasIdentificationVariable); - $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); - - $insertSql .= $sqlWalker->walkFromClause($fromClause); - - // 2. Create ID subselect statement used in UPDATE ... WHERE ... IN (subselect) - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; - - // 3. Create and store UPDATE statements - $classNames = [...$primaryClass->parentClasses, ...[$primaryClass->name], ...$primaryClass->subClasses]; - - foreach (array_reverse($classNames) as $className) { - $affected = false; - $class = $em->getClassMetadata($className); - $updateSql = 'UPDATE ' . $quoteStrategy->getTableName($class, $platform) . ' SET '; - - $sqlParameters = []; - foreach ($updateItems as $updateItem) { - $field = $updateItem->pathExpression->field; - - if ( - (isset($class->fieldMappings[$field]) && ! isset($class->fieldMappings[$field]->inherited)) || - (isset($class->associationMappings[$field]) && ! isset($class->associationMappings[$field]->inherited)) - ) { - $newValue = $updateItem->newValue; - - if (! $affected) { - $affected = true; - } else { - $updateSql .= ', '; - } - - $updateSql .= $sqlWalker->walkUpdateItem($updateItem); - - if ($newValue instanceof AST\InputParameter) { - $sqlParameters[] = $newValue->name; - - ++$this->numParametersInUpdateClause; - } - } - } - - if ($affected) { - $this->sqlParameters[] = $sqlParameters; - $this->sqlStatements[] = $updateSql . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; - } - } - - // Append WHERE clause to insertSql, if there is one. - if ($AST->whereClause) { - $insertSql .= $sqlWalker->walkWhereClause($AST->whereClause); - } - - $this->insertSql = $insertSql; - - // 4. Store DDL for temporary identifier table. - $columnDefinitions = []; - - foreach ($idColumnNames as $idColumnName) { - $columnDefinitions[$idColumnName] = [ - 'name' => $idColumnName, - 'notnull' => true, - 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $em)), - ]; - } - - $this->createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ', PRIMARY KEY(' . implode(',', $idColumnNames) . '))'; - - $this->dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - // Create temporary id table - $conn->executeStatement($this->createTempTableSql); - - try { - // Insert identifiers. Parameters from the update clause are cut off. - $numUpdated = $conn->executeStatement( - $this->insertSql, - array_slice($params, $this->numParametersInUpdateClause), - array_slice($types, $this->numParametersInUpdateClause), - ); - - // Execute UPDATE statements - foreach ($this->sqlStatements as $key => $statement) { - $paramValues = []; - $paramTypes = []; - - if (isset($this->sqlParameters[$key])) { - foreach ($this->sqlParameters[$key] as $parameterKey => $parameterName) { - $paramValues[] = $params[$parameterKey]; - $paramTypes[] = $types[$parameterKey] ?? ParameterTypeInferer::inferType($params[$parameterKey]); - } - } - - $conn->executeStatement($statement, $paramValues, $paramTypes); - } - } finally { - // Drop temporary table - $conn->executeStatement($this->dropTempTableSql); - } - - return $numUpdated; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/PreparedExecutorFinalizer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/PreparedExecutorFinalizer.php deleted file mode 100644 index 26161db..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/PreparedExecutorFinalizer.php +++ /dev/null @@ -1,27 +0,0 @@ -executor = $exeutor; - } - - public function createExecutor(Query $query): AbstractSqlExecutor - { - return $this->executor; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php deleted file mode 100644 index 5445edb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php +++ /dev/null @@ -1,31 +0,0 @@ -sqlStatements = $sqlWalker->walkSelectStatement($AST); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): Result - { - return $conn->executeQuery($this->sqlStatements, $params, $types, $this->queryCacheProfile); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectSqlFinalizer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectSqlFinalizer.php deleted file mode 100644 index bbaab2b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleSelectSqlFinalizer.php +++ /dev/null @@ -1,58 +0,0 @@ -getEntityManager()->getConnection()->getDatabasePlatform(); - - $sql = $platform->modifyLimitQuery($this->sql, $query->getMaxResults(), $query->getFirstResult()); - - $lockMode = $query->getHint(Query::HINT_LOCK_MODE) ?: LockMode::NONE; - - if ($lockMode !== LockMode::NONE && $lockMode !== LockMode::OPTIMISTIC && $lockMode !== LockMode::PESSIMISTIC_READ && $lockMode !== LockMode::PESSIMISTIC_WRITE) { - throw QueryException::invalidLockMode(); - } - - if ($lockMode === LockMode::PESSIMISTIC_READ) { - $sql .= ' ' . $this->getReadLockSQL($platform); - } elseif ($lockMode === LockMode::PESSIMISTIC_WRITE) { - $sql .= ' ' . $this->getWriteLockSQL($platform); - } - - return $sql; - } - - /** @return FinalizedSelectExecutor */ - public function createExecutor(Query $query): AbstractSqlExecutor - { - return new FinalizedSelectExecutor($this->finalizeSql($query)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php deleted file mode 100644 index 721bb40..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php +++ /dev/null @@ -1,40 +0,0 @@ -sqlStatements = $sqlWalker->walkUpdateStatement($AST); - } elseif ($AST instanceof AST\DeleteStatement) { - $this->sqlStatements = $sqlWalker->walkDeleteStatement($AST); - } - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - return $conn->executeStatement($this->sqlStatements, $params, $types); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SqlFinalizer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SqlFinalizer.php deleted file mode 100644 index cddad84..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Exec/SqlFinalizer.php +++ /dev/null @@ -1,26 +0,0 @@ -andX($expr->eq('u.type', ':1'), $expr->eq('u.role', ':2')); - * - * @param Expr\Comparison|Expr\Func|Expr\Andx|Expr\Orx|string ...$x Optional clause. Defaults to null, - * but requires at least one defined - * when converting to string. - */ - public function andX(Expr\Comparison|Expr\Func|Expr\Andx|Expr\Orx|string ...$x): Expr\Andx - { - self::validateVariadicParameter($x); - - return new Expr\Andx($x); - } - - /** - * Creates a disjunction of the given boolean expressions. - * - * Example: - * - * [php] - * // (u.type = ?1) OR (u.role = ?2) - * $q->where($q->expr()->orX('u.type = ?1', 'u.role = ?2')); - * - * @param Expr\Comparison|Expr\Func|Expr\Andx|Expr\Orx|string ...$x Optional clause. Defaults to null, - * but requires at least one defined - * when converting to string. - */ - public function orX(Expr\Comparison|Expr\Func|Expr\Andx|Expr\Orx|string ...$x): Expr\Orx - { - self::validateVariadicParameter($x); - - return new Expr\Orx($x); - } - - /** - * Creates an ASCending order expression. - */ - public function asc(mixed $expr): Expr\OrderBy - { - return new Expr\OrderBy($expr, 'ASC'); - } - - /** - * Creates a DESCending order expression. - */ - public function desc(mixed $expr): Expr\OrderBy - { - return new Expr\OrderBy($expr, 'DESC'); - } - - /** - * Creates an equality comparison expression with the given arguments. - * - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a = . Example: - * - * [php] - * // u.id = ?1 - * $expr->eq('u.id', '?1'); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function eq(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::EQ, $y); - } - - /** - * Creates an instance of Expr\Comparison, with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a <> . Example: - * - * [php] - * // u.id <> ?1 - * $q->where($q->expr()->neq('u.id', '?1')); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function neq(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::NEQ, $y); - } - - /** - * Creates an instance of Expr\Comparison, with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a < . Example: - * - * [php] - * // u.id < ?1 - * $q->where($q->expr()->lt('u.id', '?1')); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function lt(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::LT, $y); - } - - /** - * Creates an instance of Expr\Comparison, with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a <= . Example: - * - * [php] - * // u.id <= ?1 - * $q->where($q->expr()->lte('u.id', '?1')); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function lte(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::LTE, $y); - } - - /** - * Creates an instance of Expr\Comparison, with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a > . Example: - * - * [php] - * // u.id > ?1 - * $q->where($q->expr()->gt('u.id', '?1')); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function gt(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::GT, $y); - } - - /** - * Creates an instance of Expr\Comparison, with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a >= . Example: - * - * [php] - * // u.id >= ?1 - * $q->where($q->expr()->gte('u.id', '?1')); - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function gte(mixed $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, Expr\Comparison::GTE, $y); - } - - /** - * Creates an instance of AVG() function, with the given argument. - * - * @param mixed $x Argument to be used in AVG() function. - */ - public function avg(mixed $x): Expr\Func - { - return new Expr\Func('AVG', [$x]); - } - - /** - * Creates an instance of MAX() function, with the given argument. - * - * @param mixed $x Argument to be used in MAX() function. - */ - public function max(mixed $x): Expr\Func - { - return new Expr\Func('MAX', [$x]); - } - - /** - * Creates an instance of MIN() function, with the given argument. - * - * @param mixed $x Argument to be used in MIN() function. - */ - public function min(mixed $x): Expr\Func - { - return new Expr\Func('MIN', [$x]); - } - - /** - * Creates an instance of COUNT() function, with the given argument. - * - * @param mixed $x Argument to be used in COUNT() function. - */ - public function count(mixed $x): Expr\Func - { - return new Expr\Func('COUNT', [$x]); - } - - /** - * Creates an instance of COUNT(DISTINCT) function, with the given argument. - * - * @param mixed ...$x Argument to be used in COUNT(DISTINCT) function. - */ - public function countDistinct(mixed ...$x): string - { - self::validateVariadicParameter($x); - - return 'COUNT(DISTINCT ' . implode(', ', $x) . ')'; - } - - /** - * Creates an instance of EXISTS() function, with the given DQL Subquery. - * - * @param mixed $subquery DQL Subquery to be used in EXISTS() function. - */ - public function exists(mixed $subquery): Expr\Func - { - return new Expr\Func('EXISTS', [$subquery]); - } - - /** - * Creates an instance of ALL() function, with the given DQL Subquery. - * - * @param mixed $subquery DQL Subquery to be used in ALL() function. - */ - public function all(mixed $subquery): Expr\Func - { - return new Expr\Func('ALL', [$subquery]); - } - - /** - * Creates a SOME() function expression with the given DQL subquery. - * - * @param mixed $subquery DQL Subquery to be used in SOME() function. - */ - public function some(mixed $subquery): Expr\Func - { - return new Expr\Func('SOME', [$subquery]); - } - - /** - * Creates an ANY() function expression with the given DQL subquery. - * - * @param mixed $subquery DQL Subquery to be used in ANY() function. - */ - public function any(mixed $subquery): Expr\Func - { - return new Expr\Func('ANY', [$subquery]); - } - - /** - * Creates a negation expression of the given restriction. - * - * @param mixed $restriction Restriction to be used in NOT() function. - */ - public function not(mixed $restriction): Expr\Func - { - return new Expr\Func('NOT', [$restriction]); - } - - /** - * Creates an ABS() function expression with the given argument. - * - * @param mixed $x Argument to be used in ABS() function. - */ - public function abs(mixed $x): Expr\Func - { - return new Expr\Func('ABS', [$x]); - } - - /** - * Creates a MOD($x, $y) function expression to return the remainder of $x divided by $y. - */ - public function mod(mixed $x, mixed $y): Expr\Func - { - return new Expr\Func('MOD', [$x, $y]); - } - - /** - * Creates a product mathematical expression with the given arguments. - * - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a * . Example: - * - * [php] - * // u.salary * u.percentAnnualSalaryIncrease - * $q->expr()->prod('u.salary', 'u.percentAnnualSalaryIncrease') - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function prod(mixed $x, mixed $y): Expr\Math - { - return new Expr\Math($x, '*', $y); - } - - /** - * Creates a difference mathematical expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a - . Example: - * - * [php] - * // u.monthlySubscriptionCount - 1 - * $q->expr()->diff('u.monthlySubscriptionCount', '1') - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function diff(mixed $x, mixed $y): Expr\Math - { - return new Expr\Math($x, '-', $y); - } - - /** - * Creates a sum mathematical expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a + . Example: - * - * [php] - * // u.numChildren + 1 - * $q->expr()->sum('u.numChildren', '1') - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function sum(mixed $x, mixed $y): Expr\Math - { - return new Expr\Math($x, '+', $y); - } - - /** - * Creates a quotient mathematical expression with the given arguments. - * First argument is considered the left expression and the second is the right expression. - * When converted to string, it will generated a / . Example: - * - * [php] - * // u.total / u.period - * $expr->quot('u.total', 'u.period') - * - * @param mixed $x Left expression. - * @param mixed $y Right expression. - */ - public function quot(mixed $x, mixed $y): Expr\Math - { - return new Expr\Math($x, '/', $y); - } - - /** - * Creates a SQRT() function expression with the given argument. - * - * @param mixed $x Argument to be used in SQRT() function. - */ - public function sqrt(mixed $x): Expr\Func - { - return new Expr\Func('SQRT', [$x]); - } - - /** - * Creates an IN() expression with the given arguments. - * - * @param string $x Field in string format to be restricted by IN() function. - * @param mixed $y Argument to be used in IN() function. - */ - public function in(string $x, mixed $y): Expr\Func - { - if (is_iterable($y)) { - if ($y instanceof Traversable) { - $y = iterator_to_array($y); - } - - foreach ($y as &$literal) { - if (! ($literal instanceof Expr\Literal)) { - $literal = $this->quoteLiteral($literal); - } - } - } - - return new Expr\Func($x . ' IN', (array) $y); - } - - /** - * Creates a NOT IN() expression with the given arguments. - * - * @param string $x Field in string format to be restricted by NOT IN() function. - * @param mixed $y Argument to be used in NOT IN() function. - */ - public function notIn(string $x, mixed $y): Expr\Func - { - if (is_iterable($y)) { - if ($y instanceof Traversable) { - $y = iterator_to_array($y); - } - - foreach ($y as &$literal) { - if (! ($literal instanceof Expr\Literal)) { - $literal = $this->quoteLiteral($literal); - } - } - } - - return new Expr\Func($x . ' NOT IN', (array) $y); - } - - /** - * Creates an IS NULL expression with the given arguments. - * - * @param string $x Field in string format to be restricted by IS NULL. - */ - public function isNull(string $x): string - { - return $x . ' IS NULL'; - } - - /** - * Creates an IS NOT NULL expression with the given arguments. - * - * @param string $x Field in string format to be restricted by IS NOT NULL. - */ - public function isNotNull(string $x): string - { - return $x . ' IS NOT NULL'; - } - - /** - * Creates a LIKE() comparison expression with the given arguments. - * - * @param string $x Field in string format to be inspected by LIKE() comparison. - * @param mixed $y Argument to be used in LIKE() comparison. - */ - public function like(string $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, 'LIKE', $y); - } - - /** - * Creates a NOT LIKE() comparison expression with the given arguments. - * - * @param string $x Field in string format to be inspected by LIKE() comparison. - * @param mixed $y Argument to be used in LIKE() comparison. - */ - public function notLike(string $x, mixed $y): Expr\Comparison - { - return new Expr\Comparison($x, 'NOT LIKE', $y); - } - - /** - * Creates a CONCAT() function expression with the given arguments. - * - * @param mixed ...$x Arguments to be used in CONCAT() function. - */ - public function concat(mixed ...$x): Expr\Func - { - self::validateVariadicParameter($x); - - return new Expr\Func('CONCAT', $x); - } - - /** - * Creates a SUBSTRING() function expression with the given arguments. - * - * @param mixed $x Argument to be used as string to be cropped by SUBSTRING() function. - * @param int $from Initial offset to start cropping string. May accept negative values. - * @param int|null $len Length of crop. May accept negative values. - */ - public function substring(mixed $x, int $from, int|null $len = null): Expr\Func - { - $args = [$x, $from]; - if ($len !== null) { - $args[] = $len; - } - - return new Expr\Func('SUBSTRING', $args); - } - - /** - * Creates a LOWER() function expression with the given argument. - * - * @param mixed $x Argument to be used in LOWER() function. - * - * @return Expr\Func A LOWER function expression. - */ - public function lower(mixed $x): Expr\Func - { - return new Expr\Func('LOWER', [$x]); - } - - /** - * Creates an UPPER() function expression with the given argument. - * - * @param mixed $x Argument to be used in UPPER() function. - * - * @return Expr\Func An UPPER function expression. - */ - public function upper(mixed $x): Expr\Func - { - return new Expr\Func('UPPER', [$x]); - } - - /** - * Creates a LENGTH() function expression with the given argument. - * - * @param mixed $x Argument to be used as argument of LENGTH() function. - * - * @return Expr\Func A LENGTH function expression. - */ - public function length(mixed $x): Expr\Func - { - return new Expr\Func('LENGTH', [$x]); - } - - /** - * Creates a literal expression of the given argument. - * - * @param scalar $literal Argument to be converted to literal. - */ - public function literal(bool|string|int|float $literal): Expr\Literal - { - return new Expr\Literal($this->quoteLiteral($literal)); - } - - /** - * Quotes a literal value, if necessary, according to the DQL syntax. - * - * @param scalar $literal The literal value. - */ - private function quoteLiteral(bool|string|int|float $literal): string - { - if (is_int($literal) || is_float($literal)) { - return (string) $literal; - } - - if (is_bool($literal)) { - return $literal ? 'true' : 'false'; - } - - return "'" . str_replace("'", "''", $literal) . "'"; - } - - /** - * Creates an instance of BETWEEN() function, with the given argument. - * - * @param mixed $val Valued to be inspected by range values. - * @param int|string $x Starting range value to be used in BETWEEN() function. - * @param int|string $y End point value to be used in BETWEEN() function. - * - * @return string A BETWEEN expression. - */ - public function between(mixed $val, int|string $x, int|string $y): string - { - return $val . ' BETWEEN ' . $x . ' AND ' . $y; - } - - /** - * Creates an instance of TRIM() function, with the given argument. - * - * @param mixed $x Argument to be used as argument of TRIM() function. - * - * @return Expr\Func a TRIM expression. - */ - public function trim(mixed $x): Expr\Func - { - return new Expr\Func('TRIM', $x); - } - - /** - * Creates an instance of MEMBER OF function, with the given arguments. - * - * @param string $x Value to be checked - * @param string $y Value to be checked against - */ - public function isMemberOf(string $x, string $y): Expr\Comparison - { - return new Expr\Comparison($x, 'MEMBER OF', $y); - } - - /** - * Creates an instance of INSTANCE OF function, with the given arguments. - * - * @param string $x Value to be checked - * @param string $y Value to be checked against - */ - public function isInstanceOf(string $x, string $y): Expr\Comparison - { - return new Expr\Comparison($x, 'INSTANCE OF', $y); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Andx.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Andx.php deleted file mode 100644 index a5dd03f..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Andx.php +++ /dev/null @@ -1,32 +0,0 @@ - */ - protected array $parts = []; - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Base.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Base.php deleted file mode 100644 index 62a8973..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Base.php +++ /dev/null @@ -1,96 +0,0 @@ - */ - protected array $allowedClasses = []; - - /** @var list */ - protected array $parts = []; - - public function __construct(mixed $args = []) - { - if (is_array($args) && array_key_exists(0, $args) && is_array($args[0])) { - $args = $args[0]; - } - - $this->addMultiple($args); - } - - /** - * @param string[]|object[]|string|object $args - * @phpstan-param list|string|object $args - * - * @return $this - */ - public function addMultiple(array|string|object $args = []): static - { - foreach ((array) $args as $arg) { - $this->add($arg); - } - - return $this; - } - - /** - * @return $this - * - * @throws InvalidArgumentException - */ - public function add(mixed $arg): static - { - if ($arg !== null && (! $arg instanceof self || $arg->count() > 0)) { - // If we decide to keep Expr\Base instances, we can use this check - if (! is_string($arg) && ! in_array($arg::class, $this->allowedClasses, true)) { - throw new InvalidArgumentException(sprintf( - "Expression of type '%s' not allowed in this context.", - get_debug_type($arg), - )); - } - - $this->parts[] = $arg; - } - - return $this; - } - - /** @phpstan-return 0|positive-int */ - public function count(): int - { - return count($this->parts); - } - - public function __toString(): string - { - if ($this->count() === 1) { - return (string) $this->parts[0]; - } - - return $this->preSeparator . implode($this->separator, $this->parts) . $this->postSeparator; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Comparison.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Comparison.php deleted file mode 100644 index ec8ef21..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Comparison.php +++ /dev/null @@ -1,47 +0,0 @@ -'; - final public const LT = '<'; - final public const LTE = '<='; - final public const GT = '>'; - final public const GTE = '>='; - - /** Creates a comparison expression with the given arguments. */ - public function __construct(protected mixed $leftExpr, protected string $operator, protected mixed $rightExpr) - { - } - - public function getLeftExpr(): mixed - { - return $this->leftExpr; - } - - public function getOperator(): string - { - return $this->operator; - } - - public function getRightExpr(): mixed - { - return $this->rightExpr; - } - - public function __toString(): string - { - return $this->leftExpr . ' ' . $this->operator . ' ' . $this->rightExpr; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Composite.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Composite.php deleted file mode 100644 index f3007a7..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Composite.php +++ /dev/null @@ -1,50 +0,0 @@ -count() === 1) { - return (string) $this->parts[0]; - } - - $components = []; - - foreach ($this->parts as $part) { - $components[] = $this->processQueryPart($part); - } - - return implode($this->separator, $components); - } - - private function processQueryPart(string|Stringable $part): string - { - $queryPart = (string) $part; - - if (is_object($part) && $part instanceof self && $part->count() > 1) { - return $this->preSeparator . $queryPart . $this->postSeparator; - } - - // Fixes DDC-1237: User may have added a where item containing nested expression (with "OR" or "AND") - if (preg_match('/\s(OR|AND)\s/i', $queryPart)) { - return $this->preSeparator . $queryPart . $this->postSeparator; - } - - return $queryPart; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/From.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/From.php deleted file mode 100644 index 21af078..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/From.php +++ /dev/null @@ -1,48 +0,0 @@ -from; - } - - public function getAlias(): string - { - return $this->alias; - } - - public function getIndexBy(): string|null - { - return $this->indexBy; - } - - public function __toString(): string - { - return $this->from . ' ' . $this->alias . - ($this->indexBy ? ' INDEX BY ' . $this->indexBy : ''); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Func.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Func.php deleted file mode 100644 index 41bc79b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Func.php +++ /dev/null @@ -1,48 +0,0 @@ -|mixed $arguments - */ - public function __construct( - protected string $name, - mixed $arguments, - ) { - $this->arguments = (array) $arguments; - } - - public function getName(): string - { - return $this->name; - } - - /** @phpstan-return list */ - public function getArguments(): array - { - return $this->arguments; - } - - public function __toString(): string - { - return $this->name . '(' . implode(', ', $this->arguments) . ')'; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/GroupBy.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/GroupBy.php deleted file mode 100644 index 2585196..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/GroupBy.php +++ /dev/null @@ -1,25 +0,0 @@ - */ - protected array $parts = []; - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Join.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Join.php deleted file mode 100644 index 80a1aca..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Join.php +++ /dev/null @@ -1,77 +0,0 @@ -joinType; - } - - public function getJoin(): string - { - return $this->join; - } - - public function getAlias(): string|null - { - return $this->alias; - } - - /** @phpstan-return self::ON|self::WITH|null */ - public function getConditionType(): string|null - { - return $this->conditionType; - } - - public function getCondition(): string|Comparison|Composite|Func|null - { - return $this->condition; - } - - public function getIndexBy(): string|null - { - return $this->indexBy; - } - - public function __toString(): string - { - return strtoupper($this->joinType) . ' JOIN ' . $this->join - . ($this->alias ? ' ' . $this->alias : '') - . ($this->indexBy ? ' INDEX BY ' . $this->indexBy : '') - . ($this->condition ? ' ' . strtoupper($this->conditionType) . ' ' . $this->condition : ''); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Literal.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Literal.php deleted file mode 100644 index 4e2618b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Literal.php +++ /dev/null @@ -1,25 +0,0 @@ - */ - protected array $parts = []; - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Math.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Math.php deleted file mode 100644 index 05e0b39..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Math.php +++ /dev/null @@ -1,59 +0,0 @@ -leftExpr; - } - - public function getOperator(): string - { - return $this->operator; - } - - public function getRightExpr(): mixed - { - return $this->rightExpr; - } - - public function __toString(): string - { - // Adjusting Left Expression - $leftExpr = (string) $this->leftExpr; - - if ($this->leftExpr instanceof Math) { - $leftExpr = '(' . $leftExpr . ')'; - } - - // Adjusting Right Expression - $rightExpr = (string) $this->rightExpr; - - if ($this->rightExpr instanceof Math) { - $rightExpr = '(' . $rightExpr . ')'; - } - - return $leftExpr . ' ' . $this->operator . ' ' . $rightExpr; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/OrderBy.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/OrderBy.php deleted file mode 100644 index bbaa7f9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/OrderBy.php +++ /dev/null @@ -1,60 +0,0 @@ - */ - protected array $parts = []; - - public function __construct( - string|null $sort = null, - string|null $order = null, - ) { - if ($sort) { - $this->add($sort, $order); - } - } - - public function add(string $sort, string|null $order = null): void - { - $order = ! $order ? 'ASC' : $order; - $this->parts[] = $sort . ' ' . $order; - } - - /** @phpstan-return 0|positive-int */ - public function count(): int - { - return count($this->parts); - } - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } - - public function __toString(): string - { - return $this->preSeparator . implode($this->separator, $this->parts) . $this->postSeparator; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Orx.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Orx.php deleted file mode 100644 index 0945e26..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Orx.php +++ /dev/null @@ -1,32 +0,0 @@ - */ - protected array $parts = []; - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Select.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Select.php deleted file mode 100644 index beedcd3..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Expr/Select.php +++ /dev/null @@ -1,28 +0,0 @@ - */ - protected array $parts = []; - - /** @phpstan-return list */ - public function getParts(): array - { - return $this->parts; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Filter/FilterException.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Filter/FilterException.php deleted file mode 100644 index 37f12bc..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Filter/FilterException.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ - private array $parameters = []; - - final public function __construct( - private readonly EntityManagerInterface $em, - ) { - } - - /** - * Sets a parameter list that can be used by the filter. - * - * @param array $values List of parameter values. - * @param string $type The parameter type. If specified, the given value will be run through - * the type conversion of this type. - * - * @return $this - */ - final public function setParameterList(string $name, array $values, string $type = Types::STRING): static - { - $this->parameters[$name] = ['value' => $values, 'type' => $type, 'is_list' => true]; - - // Keep the parameters sorted for the hash - ksort($this->parameters); - - // The filter collection of the EM is now dirty - $this->em->getFilters()->setFiltersStateDirty(); - - return $this; - } - - /** - * Sets a parameter that can be used by the filter. - * - * @param string|null $type The parameter type. If specified, the given value will be run through - * the type conversion of this type. This is usually not needed for - * strings and numeric types. - * - * @return $this - */ - final public function setParameter(string $name, mixed $value, string|null $type = null): static - { - if ($type === null) { - $type = ParameterTypeInferer::inferType($value); - } - - $this->parameters[$name] = ['value' => $value, 'type' => $type, 'is_list' => false]; - - // Keep the parameters sorted for the hash - ksort($this->parameters); - - // The filter collection of the EM is now dirty - $this->em->getFilters()->setFiltersStateDirty(); - - return $this; - } - - /** - * Gets a parameter to use in a query. - * - * The function is responsible for the right output escaping to use the - * value in a query. - * - * @return string The SQL escaped parameter to use in a query. - * - * @throws InvalidArgumentException - */ - final public function getParameter(string $name): string - { - if (! isset($this->parameters[$name])) { - throw new InvalidArgumentException("Parameter '" . $name . "' does not exist."); - } - - if ($this->parameters[$name]['is_list']) { - throw FilterException::cannotConvertListParameterIntoSingleValue($name); - } - - return $this->em->getConnection()->quote((string) $this->parameters[$name]['value']); - } - - /** - * Gets a parameter to use in a query assuming it's a list of entries. - * - * The function is responsible for the right output escaping to use the - * value in a query, separating each entry by comma to inline it into - * an IN() query part. - * - * @throws InvalidArgumentException - */ - final public function getParameterList(string $name): string - { - if (! isset($this->parameters[$name])) { - throw new InvalidArgumentException("Parameter '" . $name . "' does not exist."); - } - - if ($this->parameters[$name]['is_list'] === false) { - throw FilterException::cannotConvertSingleParameterIntoListValue($name); - } - - $param = $this->parameters[$name]; - $connection = $this->em->getConnection(); - - $quoted = array_map( - static fn (mixed $value): string => $connection->quote((string) $value), - $param['value'], - ); - - return implode(',', $quoted); - } - - /** - * Checks if a parameter was set for the filter. - */ - final public function hasParameter(string $name): bool - { - return isset($this->parameters[$name]); - } - - /** - * Returns as string representation of the SQLFilter parameters (the state). - */ - final public function __toString(): string - { - return serialize($this->parameters); - } - - /** - * Returns the database connection used by the entity manager - */ - final protected function getConnection(): Connection - { - return $this->em->getConnection(); - } - - /** - * Gets the SQL query part to add to a query. - * - * @phpstan-param ClassMetadata $targetEntity - * - * @return string The constraint SQL if there is available, empty string otherwise. - */ - abstract public function addFilterConstraint(ClassMetadata $targetEntity, string $targetTableAlias): string; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/FilterCollection.php b/projects/priceservice/vendor/doctrine/orm/src/Query/FilterCollection.php deleted file mode 100644 index 818f76d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/FilterCollection.php +++ /dev/null @@ -1,260 +0,0 @@ - - */ - private array $enabledFilters = []; - - /** The filter hash from the last time the query was parsed. */ - private string $filterHash = ''; - - /** - * Instances of suspended filters. - * - * @var SQLFilter[] - * @phpstan-var array - */ - private array $suspendedFilters = []; - - /** - * The current state of this filter. - * - * @phpstan-var self::FILTERS_STATE_* - */ - private int $filtersState = self::FILTERS_STATE_CLEAN; - - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->config = $em->getConfiguration(); - } - - /** - * Gets all the enabled filters. - * - * @return array The enabled filters. - */ - public function getEnabledFilters(): array - { - return $this->enabledFilters; - } - - /** - * Gets all the suspended filters. - * - * @return SQLFilter[] The suspended filters. - * @phpstan-return array - */ - public function getSuspendedFilters(): array - { - return $this->suspendedFilters; - } - - /** - * Enables a filter from the collection. - * - * @throws InvalidArgumentException If the filter does not exist. - */ - public function enable(string $name): SQLFilter - { - if (! $this->has($name)) { - throw new InvalidArgumentException("Filter '" . $name . "' does not exist."); - } - - if (! $this->isEnabled($name)) { - $filterClass = $this->config->getFilterClassName($name); - - assert($filterClass !== null); - - $this->enabledFilters[$name] = new $filterClass($this->em); - - // In case a suspended filter with the same name was forgotten - unset($this->suspendedFilters[$name]); - - // Keep the enabled filters sorted for the hash - ksort($this->enabledFilters); - - $this->setFiltersStateDirty(); - } - - return $this->enabledFilters[$name]; - } - - /** - * Disables a filter. - * - * @throws InvalidArgumentException If the filter does not exist. - */ - public function disable(string $name): SQLFilter - { - // Get the filter to return it - $filter = $this->getFilter($name); - - unset($this->enabledFilters[$name]); - - $this->setFiltersStateDirty(); - - return $filter; - } - - /** - * Suspend a filter. - * - * @param string $name Name of the filter. - * - * @return SQLFilter The suspended filter. - * - * @throws InvalidArgumentException If the filter does not exist. - */ - public function suspend(string $name): SQLFilter - { - // Get the filter to return it - $filter = $this->getFilter($name); - - $this->suspendedFilters[$name] = $filter; - unset($this->enabledFilters[$name]); - - $this->setFiltersStateDirty(); - - return $filter; - } - - /** - * Restore a disabled filter from the collection. - * - * @param string $name Name of the filter. - * - * @return SQLFilter The restored filter. - * - * @throws InvalidArgumentException If the filter does not exist. - */ - public function restore(string $name): SQLFilter - { - if (! $this->isSuspended($name)) { - throw new InvalidArgumentException("Filter '" . $name . "' is not suspended."); - } - - $this->enabledFilters[$name] = $this->suspendedFilters[$name]; - unset($this->suspendedFilters[$name]); - - // Keep the enabled filters sorted for the hash - ksort($this->enabledFilters); - - $this->setFiltersStateDirty(); - - return $this->enabledFilters[$name]; - } - - /** - * Gets an enabled filter from the collection. - * - * @throws InvalidArgumentException If the filter is not enabled. - */ - public function getFilter(string $name): SQLFilter - { - if (! $this->isEnabled($name)) { - throw new InvalidArgumentException("Filter '" . $name . "' is not enabled."); - } - - return $this->enabledFilters[$name]; - } - - /** - * Checks whether filter with given name is defined. - */ - public function has(string $name): bool - { - return $this->config->getFilterClassName($name) !== null; - } - - /** - * Checks if a filter is enabled. - */ - public function isEnabled(string $name): bool - { - return isset($this->enabledFilters[$name]); - } - - /** - * Checks if a filter is suspended. - * - * @param string $name Name of the filter. - * - * @return bool True if the filter is suspended, false otherwise. - */ - public function isSuspended(string $name): bool - { - return isset($this->suspendedFilters[$name]); - } - - /** - * Checks if the filter collection is clean. - */ - public function isClean(): bool - { - return $this->filtersState === self::FILTERS_STATE_CLEAN; - } - - /** - * Generates a string of currently enabled filters to use for the cache id. - */ - public function getHash(): string - { - // If there are only clean filters, the previous hash can be returned - if ($this->filtersState === self::FILTERS_STATE_CLEAN) { - return $this->filterHash; - } - - $filterHash = ''; - - foreach ($this->enabledFilters as $name => $filter) { - $filterHash .= $name . $filter; - } - - $this->filterHash = $filterHash; - $this->filtersState = self::FILTERS_STATE_CLEAN; - - return $filterHash; - } - - /** - * Sets the filter state to dirty. - */ - public function setFiltersStateDirty(): void - { - $this->filtersState = self::FILTERS_STATE_DIRTY; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Lexer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Lexer.php deleted file mode 100644 index c446675..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Lexer.php +++ /dev/null @@ -1,150 +0,0 @@ - - */ -class Lexer extends AbstractLexer -{ - /** - * Creates a new query scanner object. - * - * @param string $input A query string. - */ - public function __construct(string $input) - { - $this->setInput($input); - } - - /** - * {@inheritDoc} - */ - protected function getCatchablePatterns(): array - { - return [ - '[a-z_][a-z0-9_]*\:[a-z_][a-z0-9_]*(?:\\\[a-z_][a-z0-9_]*)*', // aliased name - '[a-z_\\\][a-z0-9_]*(?:\\\[a-z_][a-z0-9_]*)*', // identifier or qualified name - '(?:[0-9]+(?:[\.][0-9]+)*)(?:e[+-]?[0-9]+)?', // numbers - "'(?:[^']|'')*'", // quoted strings - '\?[0-9]*|:[a-z_][a-z0-9_]*', // parameters - ]; - } - - /** - * {@inheritDoc} - */ - protected function getNonCatchablePatterns(): array - { - return ['\s+', '--.*', '(.)']; - } - - protected function getType(string &$value): TokenType - { - $type = TokenType::T_NONE; - - switch (true) { - // Recognize numeric values - case is_numeric($value): - if (str_contains($value, '.') || stripos($value, 'e') !== false) { - return TokenType::T_FLOAT; - } - - return TokenType::T_INTEGER; - - // Recognize quoted strings - case $value[0] === "'": - $value = str_replace("''", "'", substr($value, 1, strlen($value) - 2)); - - return TokenType::T_STRING; - - // Recognize identifiers, aliased or qualified names - case ctype_alpha($value[0]) || $value[0] === '_' || $value[0] === '\\': - $name = 'Doctrine\ORM\Query\TokenType::T_' . strtoupper($value); - - if (defined($name)) { - $type = constant($name); - - if ($type->value > 100) { - return $type; - } - } - - if (str_contains($value, '\\')) { - return TokenType::T_FULLY_QUALIFIED_NAME; - } - - return TokenType::T_IDENTIFIER; - - // Recognize input parameters - case $value[0] === '?' || $value[0] === ':': - return TokenType::T_INPUT_PARAMETER; - - // Recognize symbols - case $value === '.': - return TokenType::T_DOT; - - case $value === ',': - return TokenType::T_COMMA; - - case $value === '(': - return TokenType::T_OPEN_PARENTHESIS; - - case $value === ')': - return TokenType::T_CLOSE_PARENTHESIS; - - case $value === '=': - return TokenType::T_EQUALS; - - case $value === '>': - return TokenType::T_GREATER_THAN; - - case $value === '<': - return TokenType::T_LOWER_THAN; - - case $value === '+': - return TokenType::T_PLUS; - - case $value === '-': - return TokenType::T_MINUS; - - case $value === '*': - return TokenType::T_MULTIPLY; - - case $value === '/': - return TokenType::T_DIVIDE; - - case $value === '!': - return TokenType::T_NEGATE; - - case $value === '{': - return TokenType::T_OPEN_CURLY_BRACE; - - case $value === '}': - return TokenType::T_CLOSE_CURLY_BRACE; - - // Default - default: - // Do nothing - } - - return $type; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/OutputWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Query/OutputWalker.php deleted file mode 100644 index d656702..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/OutputWalker.php +++ /dev/null @@ -1,27 +0,0 @@ -name = self::normalizeName($name); - $this->typeSpecified = $type !== null; - - $this->setValue($value, $type); - } - - /** - * Retrieves the Parameter name. - */ - public function getName(): string - { - return $this->name; - } - - /** - * Retrieves the Parameter value. - */ - public function getValue(): mixed - { - return $this->value; - } - - /** - * Retrieves the Parameter type. - */ - public function getType(): mixed - { - return $this->type; - } - - /** - * Defines the Parameter value. - */ - public function setValue(mixed $value, mixed $type = null): void - { - $this->value = $value; - $this->type = $type ?: ParameterTypeInferer::inferType($value); - } - - public function typeWasSpecified(): bool - { - return $this->typeSpecified; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/ParameterTypeInferer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/ParameterTypeInferer.php deleted file mode 100644 index dae28fa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/ParameterTypeInferer.php +++ /dev/null @@ -1,77 +0,0 @@ -value) - ? Types::INTEGER - : Types::STRING; - } - - if (is_array($value)) { - $firstValue = current($value); - if ($firstValue instanceof BackedEnum) { - $firstValue = $firstValue->value; - } - - return is_int($firstValue) - ? ArrayParameterType::INTEGER - : ArrayParameterType::STRING; - } - - return ParameterType::STRING; - } - - private function __construct() - { - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Parser.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Parser.php deleted file mode 100644 index daf282c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Parser.php +++ /dev/null @@ -1,3512 +0,0 @@ - - * @phpstan-type QueryComponent = array{ - * metadata?: ClassMetadata, - * parent?: string|null, - * relation?: AssociationMapping|null, - * map?: string|null, - * resultVariable?: AST\Node|string, - * nestingLevel: int, - * token: DqlToken, - * } - */ -final class Parser -{ - /** - * @readonly Maps BUILT-IN string function names to AST class names. - * @var array> - */ - private static array $stringFunctions = [ - 'concat' => Functions\ConcatFunction::class, - 'substring' => Functions\SubstringFunction::class, - 'trim' => Functions\TrimFunction::class, - 'lower' => Functions\LowerFunction::class, - 'upper' => Functions\UpperFunction::class, - 'identity' => Functions\IdentityFunction::class, - ]; - - /** - * @readonly Maps BUILT-IN numeric function names to AST class names. - * @var array> - */ - private static array $numericFunctions = [ - 'length' => Functions\LengthFunction::class, - 'locate' => Functions\LocateFunction::class, - 'abs' => Functions\AbsFunction::class, - 'sqrt' => Functions\SqrtFunction::class, - 'mod' => Functions\ModFunction::class, - 'size' => Functions\SizeFunction::class, - 'date_diff' => Functions\DateDiffFunction::class, - 'bit_and' => Functions\BitAndFunction::class, - 'bit_or' => Functions\BitOrFunction::class, - - // Aggregate functions - 'min' => Functions\MinFunction::class, - 'max' => Functions\MaxFunction::class, - 'avg' => Functions\AvgFunction::class, - 'sum' => Functions\SumFunction::class, - 'count' => Functions\CountFunction::class, - ]; - - /** - * @readonly Maps BUILT-IN datetime function names to AST class names. - * @var array> - */ - private static array $datetimeFunctions = [ - 'current_date' => Functions\CurrentDateFunction::class, - 'current_time' => Functions\CurrentTimeFunction::class, - 'current_timestamp' => Functions\CurrentTimestampFunction::class, - 'date_add' => Functions\DateAddFunction::class, - 'date_sub' => Functions\DateSubFunction::class, - ]; - - /* - * Expressions that were encountered during parsing of identifiers and expressions - * and still need to be validated. - */ - - /** @phpstan-var list */ - private array $deferredIdentificationVariables = []; - - /** @phpstan-var list */ - private array $deferredPartialObjectExpressions = []; - - /** @phpstan-var list */ - private array $deferredPathExpressions = []; - - /** @phpstan-var list */ - private array $deferredResultVariables = []; - - /** @phpstan-var list */ - private array $deferredNewObjectExpressions = []; - - /** - * The lexer. - */ - private readonly Lexer $lexer; - - /** - * The parser result. - */ - private readonly ParserResult $parserResult; - - /** - * The EntityManager. - */ - private readonly EntityManagerInterface $em; - - /** - * Map of declared query components in the parsed query. - * - * @phpstan-var array - */ - private array $queryComponents = []; - - /** - * Keeps the nesting level of defined ResultVariables. - */ - private int $nestingLevel = 0; - - /** - * Any additional custom tree walkers that modify the AST. - * - * @var list> - */ - private array $customTreeWalkers = []; - - /** - * The custom last tree walker, if any, that is responsible for producing the output. - * - * @var class-string|null - */ - private $customOutputWalker; - - /** @phpstan-var array */ - private array $identVariableExpressions = []; - - /** - * Creates a new query parser object. - * - * @param Query $query The Query to parse. - */ - public function __construct(private readonly Query $query) - { - $this->em = $query->getEntityManager(); - $this->lexer = new Lexer((string) $query->getDQL()); - $this->parserResult = new ParserResult(); - } - - /** - * Sets a custom tree walker that produces output. - * This tree walker will be run last over the AST, after any other walkers. - * - * @param class-string $className - */ - public function setCustomOutputTreeWalker(string $className): void - { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11641', - '%s is deprecated, set the output walker class with the \Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER query hint instead', - __METHOD__, - ); - - $this->customOutputWalker = $className; - } - - /** - * Adds a custom tree walker for modifying the AST. - * - * @param class-string $className - */ - public function addCustomTreeWalker(string $className): void - { - $this->customTreeWalkers[] = $className; - } - - /** - * Gets the lexer used by the parser. - */ - public function getLexer(): Lexer - { - return $this->lexer; - } - - /** - * Gets the ParserResult that is being filled with information during parsing. - */ - public function getParserResult(): ParserResult - { - return $this->parserResult; - } - - /** - * Gets the EntityManager used by the parser. - */ - public function getEntityManager(): EntityManagerInterface - { - return $this->em; - } - - /** - * Parses and builds AST for the given Query. - */ - public function getAST(): AST\SelectStatement|AST\UpdateStatement|AST\DeleteStatement - { - // Parse & build AST - $AST = $this->QueryLanguage(); - - // Process any deferred validations of some nodes in the AST. - // This also allows post-processing of the AST for modification purposes. - $this->processDeferredIdentificationVariables(); - - if ($this->deferredPartialObjectExpressions) { - $this->processDeferredPartialObjectExpressions(); - } - - if ($this->deferredPathExpressions) { - $this->processDeferredPathExpressions(); - } - - if ($this->deferredResultVariables) { - $this->processDeferredResultVariables(); - } - - if ($this->deferredNewObjectExpressions) { - $this->processDeferredNewObjectExpressions($AST); - } - - $this->processRootEntityAliasSelected(); - - // TODO: Is there a way to remove this? It may impact the mixed hydration resultset a lot! - $this->fixIdentificationVariableOrder($AST); - - return $AST; - } - - /** - * Attempts to match the given token with the current lookahead token. - * - * If they match, updates the lookahead token; otherwise raises a syntax - * error. - * - * @throws QueryException If the tokens don't match. - */ - public function match(TokenType $token): void - { - $lookaheadType = $this->lexer->lookahead->type ?? null; - - // Short-circuit on first condition, usually types match - if ($lookaheadType === $token) { - $this->lexer->moveNext(); - - return; - } - - // If parameter is not identifier (1-99) must be exact match - if ($token->value < TokenType::T_IDENTIFIER->value) { - $this->syntaxError($this->lexer->getLiteral($token)); - } - - // If parameter is keyword (200+) must be exact match - if ($token->value > TokenType::T_IDENTIFIER->value) { - $this->syntaxError($this->lexer->getLiteral($token)); - } - - // If parameter is T_IDENTIFIER, then matches T_IDENTIFIER (100) and keywords (200+) - if ($token->value === TokenType::T_IDENTIFIER->value && $lookaheadType->value < TokenType::T_IDENTIFIER->value) { - $this->syntaxError($this->lexer->getLiteral($token)); - } - - $this->lexer->moveNext(); - } - - /** - * Frees this parser, enabling it to be reused. - * - * @param bool $deep Whether to clean peek and reset errors. - * @param int $position Position to reset. - */ - public function free(bool $deep = false, int $position = 0): void - { - // WARNING! Use this method with care. It resets the scanner! - $this->lexer->resetPosition($position); - - // Deep = true cleans peek and also any previously defined errors - if ($deep) { - $this->lexer->resetPeek(); - } - - $this->lexer->token = null; - $this->lexer->lookahead = null; - } - - /** - * Parses a query string. - */ - public function parse(): ParserResult - { - $AST = $this->getAST(); - - $customWalkers = $this->query->getHint(Query::HINT_CUSTOM_TREE_WALKERS); - if ($customWalkers !== false) { - $this->customTreeWalkers = $customWalkers; - } - - $customOutputWalker = $this->query->getHint(Query::HINT_CUSTOM_OUTPUT_WALKER); - if ($customOutputWalker !== false) { - $this->customOutputWalker = $customOutputWalker; - } - - // Run any custom tree walkers over the AST - if ($this->customTreeWalkers) { - $treeWalkerChain = new TreeWalkerChain($this->query, $this->parserResult, $this->queryComponents); - - foreach ($this->customTreeWalkers as $walker) { - $treeWalkerChain->addTreeWalker($walker); - } - - match (true) { - $AST instanceof AST\UpdateStatement => $treeWalkerChain->walkUpdateStatement($AST), - $AST instanceof AST\DeleteStatement => $treeWalkerChain->walkDeleteStatement($AST), - $AST instanceof AST\SelectStatement => $treeWalkerChain->walkSelectStatement($AST), - }; - - $this->queryComponents = $treeWalkerChain->getQueryComponents(); - } - - $outputWalkerClass = $this->customOutputWalker ?: SqlOutputWalker::class; - $outputWalker = new $outputWalkerClass($this->query, $this->parserResult, $this->queryComponents); - - if ($outputWalker instanceof OutputWalker) { - $finalizer = $outputWalker->getFinalizer($AST); - $this->parserResult->setSqlFinalizer($finalizer); - } else { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11188/', - 'Your output walker class %s should implement %s in order to provide a %s. This also means the output walker should not use the query firstResult/maxResult values, which should be read from the query by the SqlFinalizer only.', - $outputWalkerClass, - OutputWalker::class, - SqlFinalizer::class, - ); - // @phpstan-ignore method.deprecated - $executor = $outputWalker->getExecutor($AST); - // @phpstan-ignore method.deprecated - $this->parserResult->setSqlExecutor($executor); - } - - return $this->parserResult; - } - - /** - * Fixes order of identification variables. - * - * They have to appear in the select clause in the same order as the - * declarations (from ... x join ... y join ... z ...) appear in the query - * as the hydration process relies on that order for proper operation. - */ - private function fixIdentificationVariableOrder(AST\SelectStatement|AST\DeleteStatement|AST\UpdateStatement $AST): void - { - if (count($this->identVariableExpressions) <= 1) { - return; - } - - assert($AST instanceof AST\SelectStatement); - - foreach ($this->queryComponents as $dqlAlias => $qComp) { - if (! isset($this->identVariableExpressions[$dqlAlias])) { - continue; - } - - $expr = $this->identVariableExpressions[$dqlAlias]; - $key = array_search($expr, $AST->selectClause->selectExpressions, true); - - unset($AST->selectClause->selectExpressions[$key]); - - $AST->selectClause->selectExpressions[] = $expr; - } - } - - /** - * Generates a new syntax error. - * - * @param string $expected Expected string. - * @param DqlToken|null $token Got token. - * - * @throws QueryException - */ - public function syntaxError(string $expected = '', Token|null $token = null): never - { - if ($token === null) { - $token = $this->lexer->lookahead; - } - - $tokenPos = $token->position ?? '-1'; - - $message = sprintf('line 0, col %d: Error: ', $tokenPos); - $message .= $expected !== '' ? sprintf('Expected %s, got ', $expected) : 'Unexpected '; - $message .= $this->lexer->lookahead === null ? 'end of string.' : sprintf("'%s'", $token->value); - - throw QueryException::syntaxError($message, QueryException::dqlError($this->query->getDQL() ?? '')); - } - - /** - * Generates a new semantical error. - * - * @param string $message Optional message. - * @phpstan-param DqlToken|null $token - * - * @throws QueryException - */ - public function semanticalError(string $message = '', Token|null $token = null): never - { - if ($token === null) { - $token = $this->lexer->lookahead ?? new Token('fake token', 42, 0); - } - - // Minimum exposed chars ahead of token - $distance = 12; - - // Find a position of a final word to display in error string - $dql = $this->query->getDQL(); - $length = strlen($dql); - $pos = $token->position + $distance; - $pos = strpos($dql, ' ', $length > $pos ? $pos : $length); - $length = $pos !== false ? $pos - $token->position : $distance; - - $tokenPos = $token->position > 0 ? $token->position : '-1'; - $tokenStr = substr($dql, $token->position, $length); - - // Building informative message - $message = 'line 0, col ' . $tokenPos . " near '" . $tokenStr . "': Error: " . $message; - - throw QueryException::semanticalError($message, QueryException::dqlError($this->query->getDQL())); - } - - /** - * Peeks beyond the matched closing parenthesis and returns the first token after that one. - * - * @param bool $resetPeek Reset peek after finding the closing parenthesis. - * - * @phpstan-return DqlToken|null - */ - private function peekBeyondClosingParenthesis(bool $resetPeek = true): Token|null - { - $token = $this->lexer->peek(); - $numUnmatched = 1; - - while ($numUnmatched > 0 && $token !== null) { - switch ($token->type) { - case TokenType::T_OPEN_PARENTHESIS: - ++$numUnmatched; - break; - - case TokenType::T_CLOSE_PARENTHESIS: - --$numUnmatched; - break; - - default: - // Do nothing - } - - $token = $this->lexer->peek(); - } - - if ($resetPeek) { - $this->lexer->resetPeek(); - } - - return $token; - } - - /** - * Checks if the given token indicates a mathematical operator. - * - * @phpstan-param DqlToken|null $token - */ - private function isMathOperator(Token|null $token): bool - { - return $token !== null && in_array($token->type, [TokenType::T_PLUS, TokenType::T_MINUS, TokenType::T_DIVIDE, TokenType::T_MULTIPLY], true); - } - - /** - * Checks if the next-next (after lookahead) token starts a function. - * - * @return bool TRUE if the next-next tokens start a function, FALSE otherwise. - */ - private function isFunction(): bool - { - assert($this->lexer->lookahead !== null); - $lookaheadType = $this->lexer->lookahead->type; - $peek = $this->lexer->peek(); - - $this->lexer->resetPeek(); - - return $lookaheadType->value >= TokenType::T_IDENTIFIER->value && $peek !== null && $peek->type === TokenType::T_OPEN_PARENTHESIS; - } - - /** - * Checks whether the given token type indicates an aggregate function. - * - * @return bool TRUE if the token type is an aggregate function, FALSE otherwise. - */ - private function isAggregateFunction(TokenType $tokenType): bool - { - return in_array( - $tokenType, - [TokenType::T_AVG, TokenType::T_MIN, TokenType::T_MAX, TokenType::T_SUM, TokenType::T_COUNT], - true, - ); - } - - /** - * Checks whether the current lookahead token of the lexer has the type T_ALL, T_ANY or T_SOME. - */ - private function isNextAllAnySome(): bool - { - assert($this->lexer->lookahead !== null); - - return in_array( - $this->lexer->lookahead->type, - [TokenType::T_ALL, TokenType::T_ANY, TokenType::T_SOME], - true, - ); - } - - /** - * Validates that the given IdentificationVariable is semantically correct. - * It must exist in query components list. - */ - private function processDeferredIdentificationVariables(): void - { - foreach ($this->deferredIdentificationVariables as $deferredItem) { - $identVariable = $deferredItem['expression']; - - // Check if IdentificationVariable exists in queryComponents - if (! isset($this->queryComponents[$identVariable])) { - $this->semanticalError( - sprintf("'%s' is not defined.", $identVariable), - $deferredItem['token'], - ); - } - - $qComp = $this->queryComponents[$identVariable]; - - // Check if queryComponent points to an AbstractSchemaName or a ResultVariable - if (! isset($qComp['metadata'])) { - $this->semanticalError( - sprintf("'%s' does not point to a Class.", $identVariable), - $deferredItem['token'], - ); - } - - // Validate if identification variable nesting level is lower or equal than the current one - if ($qComp['nestingLevel'] > $deferredItem['nestingLevel']) { - $this->semanticalError( - sprintf("'%s' is used outside the scope of its declaration.", $identVariable), - $deferredItem['token'], - ); - } - } - } - - /** - * Validates that the given NewObjectExpression. - */ - private function processDeferredNewObjectExpressions(AST\SelectStatement $AST): void - { - foreach ($this->deferredNewObjectExpressions as $deferredItem) { - $expression = $deferredItem['expression']; - $token = $deferredItem['token']; - $className = $expression->className; - $args = $expression->args; - $fromClassName = $AST->fromClause->identificationVariableDeclarations[0]->rangeVariableDeclaration->abstractSchemaName ?? null; - - // If the namespace is not given then assumes the first FROM entity namespace - if (! str_contains($className, '\\') && ! class_exists($className) && is_string($fromClassName) && str_contains($fromClassName, '\\')) { - $namespace = substr($fromClassName, 0, strrpos($fromClassName, '\\')); - $fqcn = $namespace . '\\' . $className; - - if (class_exists($fqcn)) { - $expression->className = $fqcn; - $className = $fqcn; - } - } - - if (! class_exists($className)) { - $this->semanticalError(sprintf('Class "%s" is not defined.', $className), $token); - } - - $class = new ReflectionClass($className); - - if (! $class->isInstantiable()) { - $this->semanticalError(sprintf('Class "%s" can not be instantiated.', $className), $token); - } - - if ($class->getConstructor() === null) { - $this->semanticalError(sprintf('Class "%s" has not a valid constructor.', $className), $token); - } - - if ($class->getConstructor()->getNumberOfRequiredParameters() > count($args)) { - $this->semanticalError(sprintf('Number of arguments does not match with "%s" constructor declaration.', $className), $token); - } - } - } - - /** - * Validates that the given PartialObjectExpression is semantically correct. - * It must exist in query components list. - */ - private function processDeferredPartialObjectExpressions(): void - { - foreach ($this->deferredPartialObjectExpressions as $deferredItem) { - $expr = $deferredItem['expression']; - $class = $this->getMetadataForDqlAlias($expr->identificationVariable); - - foreach ($expr->partialFieldSet as $field) { - if (isset($class->fieldMappings[$field])) { - continue; - } - - if ( - isset($class->associationMappings[$field]) && - $class->associationMappings[$field]->isToOneOwningSide() - ) { - continue; - } - - $this->semanticalError(sprintf( - "There is no mapped field named '%s' on class %s.", - $field, - $class->name, - ), $deferredItem['token']); - } - - if (array_intersect($class->identifier, $expr->partialFieldSet) !== $class->identifier) { - $this->semanticalError( - 'The partial field selection of class ' . $class->name . ' must contain the identifier.', - $deferredItem['token'], - ); - } - } - } - - /** - * Validates that the given ResultVariable is semantically correct. - * It must exist in query components list. - */ - private function processDeferredResultVariables(): void - { - foreach ($this->deferredResultVariables as $deferredItem) { - $resultVariable = $deferredItem['expression']; - - // Check if ResultVariable exists in queryComponents - if (! isset($this->queryComponents[$resultVariable])) { - $this->semanticalError( - sprintf("'%s' is not defined.", $resultVariable), - $deferredItem['token'], - ); - } - - $qComp = $this->queryComponents[$resultVariable]; - - // Check if queryComponent points to an AbstractSchemaName or a ResultVariable - if (! isset($qComp['resultVariable'])) { - $this->semanticalError( - sprintf("'%s' does not point to a ResultVariable.", $resultVariable), - $deferredItem['token'], - ); - } - - // Validate if identification variable nesting level is lower or equal than the current one - if ($qComp['nestingLevel'] > $deferredItem['nestingLevel']) { - $this->semanticalError( - sprintf("'%s' is used outside the scope of its declaration.", $resultVariable), - $deferredItem['token'], - ); - } - } - } - - /** - * Validates that the given PathExpression is semantically correct for grammar rules: - * - * AssociationPathExpression ::= CollectionValuedPathExpression | SingleValuedAssociationPathExpression - * SingleValuedPathExpression ::= StateFieldPathExpression | SingleValuedAssociationPathExpression - * StateFieldPathExpression ::= IdentificationVariable "." StateField - * SingleValuedAssociationPathExpression ::= IdentificationVariable "." SingleValuedAssociationField - * CollectionValuedPathExpression ::= IdentificationVariable "." CollectionValuedAssociationField - */ - private function processDeferredPathExpressions(): void - { - foreach ($this->deferredPathExpressions as $deferredItem) { - $pathExpression = $deferredItem['expression']; - - $class = $this->getMetadataForDqlAlias($pathExpression->identificationVariable); - - $field = $pathExpression->field; - if ($field === null) { - $field = $pathExpression->field = $class->identifier[0]; - } - - // Check if field or association exists - if (! isset($class->associationMappings[$field]) && ! isset($class->fieldMappings[$field])) { - $this->semanticalError( - 'Class ' . $class->name . ' has no field or association named ' . $field, - $deferredItem['token'], - ); - } - - $fieldType = AST\PathExpression::TYPE_STATE_FIELD; - - if (isset($class->associationMappings[$field])) { - $assoc = $class->associationMappings[$field]; - - $fieldType = $assoc->isToOne() - ? AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION - : AST\PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION; - } - - // Validate if PathExpression is one of the expected types - $expectedType = $pathExpression->expectedType; - - if (! ($expectedType & $fieldType)) { - // We need to recognize which was expected type(s) - $expectedStringTypes = []; - - // Validate state field type - if ($expectedType & AST\PathExpression::TYPE_STATE_FIELD) { - $expectedStringTypes[] = 'StateFieldPathExpression'; - } - - // Validate single valued association (*-to-one) - if ($expectedType & AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION) { - $expectedStringTypes[] = 'SingleValuedAssociationField'; - } - - // Validate single valued association (*-to-many) - if ($expectedType & AST\PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION) { - $expectedStringTypes[] = 'CollectionValuedAssociationField'; - } - - // Build the error message - $semanticalError = 'Invalid PathExpression. '; - $semanticalError .= count($expectedStringTypes) === 1 - ? 'Must be a ' . $expectedStringTypes[0] . '.' - : implode(' or ', $expectedStringTypes) . ' expected.'; - - $this->semanticalError($semanticalError, $deferredItem['token']); - } - - // We need to force the type in PathExpression - $pathExpression->type = $fieldType; - } - } - - private function processRootEntityAliasSelected(): void - { - if (! count($this->identVariableExpressions)) { - return; - } - - foreach ($this->identVariableExpressions as $dqlAlias => $expr) { - if (isset($this->queryComponents[$dqlAlias]) && ! isset($this->queryComponents[$dqlAlias]['parent'])) { - return; - } - } - - $this->semanticalError('Cannot select entity through identification variables without choosing at least one root entity alias.'); - } - - /** - * QueryLanguage ::= SelectStatement | UpdateStatement | DeleteStatement - */ - public function QueryLanguage(): AST\SelectStatement|AST\UpdateStatement|AST\DeleteStatement - { - $statement = null; - - $this->lexer->moveNext(); - - switch ($this->lexer->lookahead->type ?? null) { - case TokenType::T_SELECT: - $statement = $this->SelectStatement(); - break; - - case TokenType::T_UPDATE: - $statement = $this->UpdateStatement(); - break; - - case TokenType::T_DELETE: - $statement = $this->DeleteStatement(); - break; - - default: - $this->syntaxError('SELECT, UPDATE or DELETE'); - break; - } - - // Check for end of string - if ($this->lexer->lookahead !== null) { - $this->syntaxError('end of string'); - } - - return $statement; - } - - /** - * SelectStatement ::= SelectClause FromClause [WhereClause] [GroupByClause] [HavingClause] [OrderByClause] - */ - public function SelectStatement(): AST\SelectStatement - { - $selectStatement = new AST\SelectStatement($this->SelectClause(), $this->FromClause()); - - $selectStatement->whereClause = $this->lexer->isNextToken(TokenType::T_WHERE) ? $this->WhereClause() : null; - $selectStatement->groupByClause = $this->lexer->isNextToken(TokenType::T_GROUP) ? $this->GroupByClause() : null; - $selectStatement->havingClause = $this->lexer->isNextToken(TokenType::T_HAVING) ? $this->HavingClause() : null; - $selectStatement->orderByClause = $this->lexer->isNextToken(TokenType::T_ORDER) ? $this->OrderByClause() : null; - - return $selectStatement; - } - - /** - * UpdateStatement ::= UpdateClause [WhereClause] - */ - public function UpdateStatement(): AST\UpdateStatement - { - $updateStatement = new AST\UpdateStatement($this->UpdateClause()); - - $updateStatement->whereClause = $this->lexer->isNextToken(TokenType::T_WHERE) ? $this->WhereClause() : null; - - return $updateStatement; - } - - /** - * DeleteStatement ::= DeleteClause [WhereClause] - */ - public function DeleteStatement(): AST\DeleteStatement - { - $deleteStatement = new AST\DeleteStatement($this->DeleteClause()); - - $deleteStatement->whereClause = $this->lexer->isNextToken(TokenType::T_WHERE) ? $this->WhereClause() : null; - - return $deleteStatement; - } - - /** - * IdentificationVariable ::= identifier - */ - public function IdentificationVariable(): string - { - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $identVariable = $this->lexer->token->value; - - $this->deferredIdentificationVariables[] = [ - 'expression' => $identVariable, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->token, - ]; - - return $identVariable; - } - - /** - * AliasIdentificationVariable = identifier - */ - public function AliasIdentificationVariable(): string - { - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $aliasIdentVariable = $this->lexer->token->value; - $exists = isset($this->queryComponents[$aliasIdentVariable]); - - if ($exists) { - $this->semanticalError( - sprintf("'%s' is already defined.", $aliasIdentVariable), - $this->lexer->token, - ); - } - - return $aliasIdentVariable; - } - - /** - * AbstractSchemaName ::= fully_qualified_name | identifier - */ - public function AbstractSchemaName(): string - { - if ($this->lexer->isNextToken(TokenType::T_FULLY_QUALIFIED_NAME)) { - $this->match(TokenType::T_FULLY_QUALIFIED_NAME); - assert($this->lexer->token !== null); - - return $this->lexer->token->value; - } - - $this->match(TokenType::T_IDENTIFIER); - assert($this->lexer->token !== null); - - return $this->lexer->token->value; - } - - /** - * Validates an AbstractSchemaName, making sure the class exists. - * - * @param string $schemaName The name to validate. - * - * @throws QueryException if the name does not exist. - */ - private function validateAbstractSchemaName(string $schemaName): void - { - assert($this->lexer->token !== null); - if (! (class_exists($schemaName, true) || interface_exists($schemaName, true))) { - $this->semanticalError( - sprintf("Class '%s' is not defined.", $schemaName), - $this->lexer->token, - ); - } - } - - /** - * AliasResultVariable ::= identifier - */ - public function AliasResultVariable(): string - { - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $resultVariable = $this->lexer->token->value; - $exists = isset($this->queryComponents[$resultVariable]); - - if ($exists) { - $this->semanticalError( - sprintf("'%s' is already defined.", $resultVariable), - $this->lexer->token, - ); - } - - return $resultVariable; - } - - /** - * ResultVariable ::= identifier - */ - public function ResultVariable(): string - { - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $resultVariable = $this->lexer->token->value; - - // Defer ResultVariable validation - $this->deferredResultVariables[] = [ - 'expression' => $resultVariable, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->token, - ]; - - return $resultVariable; - } - - /** - * JoinAssociationPathExpression ::= IdentificationVariable "." (CollectionValuedAssociationField | SingleValuedAssociationField) - */ - public function JoinAssociationPathExpression(): AST\JoinAssociationPathExpression - { - $identVariable = $this->IdentificationVariable(); - - if (! isset($this->queryComponents[$identVariable])) { - $this->semanticalError( - 'Identification Variable ' . $identVariable . ' used in join path expression but was not defined before.', - ); - } - - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $field = $this->lexer->token->value; - - // Validate association field - $class = $this->getMetadataForDqlAlias($identVariable); - - if (! $class->hasAssociation($field)) { - $this->semanticalError('Class ' . $class->name . ' has no association named ' . $field); - } - - return new AST\JoinAssociationPathExpression($identVariable, $field); - } - - /** - * Parses an arbitrary path expression and defers semantical validation - * based on expected types. - * - * PathExpression ::= IdentificationVariable {"." identifier}* - * - * @phpstan-param int-mask-of $expectedTypes - */ - public function PathExpression(int $expectedTypes): AST\PathExpression - { - $identVariable = $this->IdentificationVariable(); - $field = null; - - assert($this->lexer->token !== null); - if ($this->lexer->isNextToken(TokenType::T_DOT)) { - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_IDENTIFIER); - - $field = $this->lexer->token->value; - - while ($this->lexer->isNextToken(TokenType::T_DOT)) { - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_IDENTIFIER); - $field .= '.' . $this->lexer->token->value; - } - } - - // Creating AST node - $pathExpr = new AST\PathExpression($expectedTypes, $identVariable, $field); - - // Defer PathExpression validation if requested to be deferred - $this->deferredPathExpressions[] = [ - 'expression' => $pathExpr, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->token, - ]; - - return $pathExpr; - } - - /** - * AssociationPathExpression ::= CollectionValuedPathExpression | SingleValuedAssociationPathExpression - */ - public function AssociationPathExpression(): AST\PathExpression - { - return $this->PathExpression( - AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION | - AST\PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION, - ); - } - - /** - * SingleValuedPathExpression ::= StateFieldPathExpression | SingleValuedAssociationPathExpression - */ - public function SingleValuedPathExpression(): AST\PathExpression - { - return $this->PathExpression( - AST\PathExpression::TYPE_STATE_FIELD | - AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, - ); - } - - /** - * StateFieldPathExpression ::= IdentificationVariable "." StateField - */ - public function StateFieldPathExpression(): AST\PathExpression - { - return $this->PathExpression(AST\PathExpression::TYPE_STATE_FIELD); - } - - /** - * SingleValuedAssociationPathExpression ::= IdentificationVariable "." SingleValuedAssociationField - */ - public function SingleValuedAssociationPathExpression(): AST\PathExpression - { - return $this->PathExpression(AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION); - } - - /** - * CollectionValuedPathExpression ::= IdentificationVariable "." CollectionValuedAssociationField - */ - public function CollectionValuedPathExpression(): AST\PathExpression - { - return $this->PathExpression(AST\PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION); - } - - /** - * EntityAsDtoArgumentExpression ::= IdentificationVariable - */ - public function EntityAsDtoArgumentExpression(): AST\EntityAsDtoArgumentExpression - { - assert($this->lexer->lookahead !== null); - $expression = null; - $identVariable = null; - $peek = $this->lexer->glimpse(); - $lookaheadType = $this->lexer->lookahead->type; - assert($peek !== null); - - assert($lookaheadType === TokenType::T_IDENTIFIER); - assert($peek->type !== TokenType::T_DOT); - assert($peek->type !== TokenType::T_OPEN_PARENTHESIS); - - $expression = $identVariable = $this->IdentificationVariable(); - - // [["AS"] AliasResultVariable] - $mustHaveAliasResultVariable = false; - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - - $mustHaveAliasResultVariable = true; - } - - $aliasResultVariable = null; - - if ($mustHaveAliasResultVariable || $this->lexer->isNextToken(TokenType::T_IDENTIFIER)) { - $token = $this->lexer->lookahead; - $aliasResultVariable = $this->AliasResultVariable(); - - // Include AliasResultVariable in query components. - $this->queryComponents[$aliasResultVariable] = [ - 'resultVariable' => $expression, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - } - - return new AST\EntityAsDtoArgumentExpression($expression, $identVariable); - } - - /** - * SelectClause ::= "SELECT" ["DISTINCT"] SelectExpression {"," SelectExpression} - */ - public function SelectClause(): AST\SelectClause - { - $isDistinct = false; - $this->match(TokenType::T_SELECT); - - // Check for DISTINCT - if ($this->lexer->isNextToken(TokenType::T_DISTINCT)) { - $this->match(TokenType::T_DISTINCT); - - $isDistinct = true; - } - - // Process SelectExpressions (1..N) - $selectExpressions = []; - $selectExpressions[] = $this->SelectExpression(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $selectExpressions[] = $this->SelectExpression(); - } - - return new AST\SelectClause($selectExpressions, $isDistinct); - } - - /** - * SimpleSelectClause ::= "SELECT" ["DISTINCT"] SimpleSelectExpression - */ - public function SimpleSelectClause(): AST\SimpleSelectClause - { - $isDistinct = false; - $this->match(TokenType::T_SELECT); - - if ($this->lexer->isNextToken(TokenType::T_DISTINCT)) { - $this->match(TokenType::T_DISTINCT); - - $isDistinct = true; - } - - return new AST\SimpleSelectClause($this->SimpleSelectExpression(), $isDistinct); - } - - /** - * UpdateClause ::= "UPDATE" AbstractSchemaName ["AS"] AliasIdentificationVariable "SET" UpdateItem {"," UpdateItem}* - */ - public function UpdateClause(): AST\UpdateClause - { - $this->match(TokenType::T_UPDATE); - assert($this->lexer->lookahead !== null); - - $token = $this->lexer->lookahead; - $abstractSchemaName = $this->AbstractSchemaName(); - - $this->validateAbstractSchemaName($abstractSchemaName); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - $aliasIdentificationVariable = $this->AliasIdentificationVariable(); - - $class = $this->em->getClassMetadata($abstractSchemaName); - - // Building queryComponent - $queryComponent = [ - 'metadata' => $class, - 'parent' => null, - 'relation' => null, - 'map' => null, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - - $this->queryComponents[$aliasIdentificationVariable] = $queryComponent; - - $this->match(TokenType::T_SET); - - $updateItems = []; - $updateItems[] = $this->UpdateItem(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $updateItems[] = $this->UpdateItem(); - } - - $updateClause = new AST\UpdateClause($abstractSchemaName, $updateItems); - $updateClause->aliasIdentificationVariable = $aliasIdentificationVariable; - - return $updateClause; - } - - /** - * DeleteClause ::= "DELETE" ["FROM"] AbstractSchemaName ["AS"] AliasIdentificationVariable - */ - public function DeleteClause(): AST\DeleteClause - { - $this->match(TokenType::T_DELETE); - - if ($this->lexer->isNextToken(TokenType::T_FROM)) { - $this->match(TokenType::T_FROM); - } - - assert($this->lexer->lookahead !== null); - $token = $this->lexer->lookahead; - $abstractSchemaName = $this->AbstractSchemaName(); - - $this->validateAbstractSchemaName($abstractSchemaName); - - $deleteClause = new AST\DeleteClause($abstractSchemaName); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - $aliasIdentificationVariable = $this->lexer->isNextToken(TokenType::T_IDENTIFIER) - ? $this->AliasIdentificationVariable() - : 'alias_should_have_been_set'; - - $deleteClause->aliasIdentificationVariable = $aliasIdentificationVariable; - $class = $this->em->getClassMetadata($deleteClause->abstractSchemaName); - - // Building queryComponent - $queryComponent = [ - 'metadata' => $class, - 'parent' => null, - 'relation' => null, - 'map' => null, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - - $this->queryComponents[$aliasIdentificationVariable] = $queryComponent; - - return $deleteClause; - } - - /** - * FromClause ::= "FROM" IdentificationVariableDeclaration {"," IdentificationVariableDeclaration}* - */ - public function FromClause(): AST\FromClause - { - $this->match(TokenType::T_FROM); - - $identificationVariableDeclarations = []; - $identificationVariableDeclarations[] = $this->IdentificationVariableDeclaration(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $identificationVariableDeclarations[] = $this->IdentificationVariableDeclaration(); - } - - return new AST\FromClause($identificationVariableDeclarations); - } - - /** - * SubselectFromClause ::= "FROM" SubselectIdentificationVariableDeclaration {"," SubselectIdentificationVariableDeclaration}* - */ - public function SubselectFromClause(): AST\SubselectFromClause - { - $this->match(TokenType::T_FROM); - - $identificationVariables = []; - $identificationVariables[] = $this->SubselectIdentificationVariableDeclaration(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $identificationVariables[] = $this->SubselectIdentificationVariableDeclaration(); - } - - return new AST\SubselectFromClause($identificationVariables); - } - - /** - * WhereClause ::= "WHERE" ConditionalExpression - */ - public function WhereClause(): AST\WhereClause - { - $this->match(TokenType::T_WHERE); - - return new AST\WhereClause($this->ConditionalExpression()); - } - - /** - * HavingClause ::= "HAVING" ConditionalExpression - */ - public function HavingClause(): AST\HavingClause - { - $this->match(TokenType::T_HAVING); - - return new AST\HavingClause($this->ConditionalExpression()); - } - - /** - * GroupByClause ::= "GROUP" "BY" GroupByItem {"," GroupByItem}* - */ - public function GroupByClause(): AST\GroupByClause - { - $this->match(TokenType::T_GROUP); - $this->match(TokenType::T_BY); - - $groupByItems = [$this->GroupByItem()]; - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $groupByItems[] = $this->GroupByItem(); - } - - return new AST\GroupByClause($groupByItems); - } - - /** - * OrderByClause ::= "ORDER" "BY" OrderByItem {"," OrderByItem}* - */ - public function OrderByClause(): AST\OrderByClause - { - $this->match(TokenType::T_ORDER); - $this->match(TokenType::T_BY); - - $orderByItems = []; - $orderByItems[] = $this->OrderByItem(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $orderByItems[] = $this->OrderByItem(); - } - - return new AST\OrderByClause($orderByItems); - } - - /** - * Subselect ::= SimpleSelectClause SubselectFromClause [WhereClause] [GroupByClause] [HavingClause] [OrderByClause] - */ - public function Subselect(): AST\Subselect - { - // Increase query nesting level - $this->nestingLevel++; - - $subselect = new AST\Subselect($this->SimpleSelectClause(), $this->SubselectFromClause()); - - $subselect->whereClause = $this->lexer->isNextToken(TokenType::T_WHERE) ? $this->WhereClause() : null; - $subselect->groupByClause = $this->lexer->isNextToken(TokenType::T_GROUP) ? $this->GroupByClause() : null; - $subselect->havingClause = $this->lexer->isNextToken(TokenType::T_HAVING) ? $this->HavingClause() : null; - $subselect->orderByClause = $this->lexer->isNextToken(TokenType::T_ORDER) ? $this->OrderByClause() : null; - - // Decrease query nesting level - $this->nestingLevel--; - - return $subselect; - } - - /** - * UpdateItem ::= SingleValuedPathExpression "=" NewValue - */ - public function UpdateItem(): AST\UpdateItem - { - $pathExpr = $this->SingleValuedPathExpression(); - - $this->match(TokenType::T_EQUALS); - - return new AST\UpdateItem($pathExpr, $this->NewValue()); - } - - /** - * GroupByItem ::= IdentificationVariable | ResultVariable | SingleValuedPathExpression - */ - public function GroupByItem(): string|AST\PathExpression - { - // We need to check if we are in a IdentificationVariable or SingleValuedPathExpression - $glimpse = $this->lexer->glimpse(); - - if ($glimpse !== null && $glimpse->type === TokenType::T_DOT) { - return $this->SingleValuedPathExpression(); - } - - assert($this->lexer->lookahead !== null); - // Still need to decide between IdentificationVariable or ResultVariable - $lookaheadValue = $this->lexer->lookahead->value; - - if (! isset($this->queryComponents[$lookaheadValue])) { - $this->semanticalError('Cannot group by undefined identification or result variable.'); - } - - return isset($this->queryComponents[$lookaheadValue]['metadata']) - ? $this->IdentificationVariable() - : $this->ResultVariable(); - } - - /** - * OrderByItem ::= ( - * SimpleArithmeticExpression | SingleValuedPathExpression | CaseExpression | - * ScalarExpression | ResultVariable | FunctionDeclaration - * ) ["ASC" | "DESC"] - */ - public function OrderByItem(): AST\OrderByItem - { - $this->lexer->peek(); // lookahead => '.' - $this->lexer->peek(); // lookahead => token after '.' - - $peek = $this->lexer->peek(); // lookahead => token after the token after the '.' - - $this->lexer->resetPeek(); - - $glimpse = $this->lexer->glimpse(); - - assert($this->lexer->lookahead !== null); - $expr = match (true) { - $this->isMathOperator($peek) || $this->isMathOperator($glimpse) => $this->SimpleArithmeticExpression(), - $glimpse !== null && $glimpse->type === TokenType::T_DOT => $this->SingleValuedPathExpression(), - $this->lexer->peek() && $this->isMathOperator($this->peekBeyondClosingParenthesis()) => $this->ScalarExpression(), - $this->lexer->lookahead->type === TokenType::T_CASE => $this->CaseExpression(), - $this->isFunction() => $this->FunctionDeclaration(), - default => $this->ResultVariable(), - }; - - $type = 'ASC'; - $item = new AST\OrderByItem($expr); - - switch (true) { - case $this->lexer->isNextToken(TokenType::T_DESC): - $this->match(TokenType::T_DESC); - $type = 'DESC'; - break; - - case $this->lexer->isNextToken(TokenType::T_ASC): - $this->match(TokenType::T_ASC); - break; - - default: - // Do nothing - } - - $item->type = $type; - - return $item; - } - - /** - * NewValue ::= SimpleArithmeticExpression | StringPrimary | DatetimePrimary | BooleanPrimary | - * EnumPrimary | SimpleEntityExpression | "NULL" - * - * NOTE: Since it is not possible to correctly recognize individual types, here is the full - * grammar that needs to be supported: - * - * NewValue ::= SimpleArithmeticExpression | "NULL" - * - * SimpleArithmeticExpression covers all *Primary grammar rules and also SimpleEntityExpression - */ - public function NewValue(): AST\ArithmeticExpression|AST\InputParameter|null - { - if ($this->lexer->isNextToken(TokenType::T_NULL)) { - $this->match(TokenType::T_NULL); - - return null; - } - - if ($this->lexer->isNextToken(TokenType::T_INPUT_PARAMETER)) { - $this->match(TokenType::T_INPUT_PARAMETER); - assert($this->lexer->token !== null); - - return new AST\InputParameter($this->lexer->token->value); - } - - return $this->ArithmeticExpression(); - } - - /** - * IdentificationVariableDeclaration ::= RangeVariableDeclaration [IndexBy] {Join}* - */ - public function IdentificationVariableDeclaration(): AST\IdentificationVariableDeclaration - { - $joins = []; - $rangeVariableDeclaration = $this->RangeVariableDeclaration(); - $indexBy = $this->lexer->isNextToken(TokenType::T_INDEX) - ? $this->IndexBy() - : null; - - $rangeVariableDeclaration->isRoot = true; - - while ( - $this->lexer->isNextToken(TokenType::T_LEFT) || - $this->lexer->isNextToken(TokenType::T_INNER) || - $this->lexer->isNextToken(TokenType::T_JOIN) - ) { - $joins[] = $this->Join(); - } - - return new AST\IdentificationVariableDeclaration( - $rangeVariableDeclaration, - $indexBy, - $joins, - ); - } - - /** - * SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration - * - * {Internal note: WARNING: Solution is harder than a bare implementation. - * Desired EBNF support: - * - * SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration | (AssociationPathExpression ["AS"] AliasIdentificationVariable) - * - * It demands that entire SQL generation to become programmatical. This is - * needed because association based subselect requires "WHERE" conditional - * expressions to be injected, but there is no scope to do that. Only scope - * accessible is "FROM", prohibiting an easy implementation without larger - * changes.} - */ - public function SubselectIdentificationVariableDeclaration(): AST\IdentificationVariableDeclaration - { - /* - NOT YET IMPLEMENTED! - - $glimpse = $this->lexer->glimpse(); - - if ($glimpse->type == TokenType::T_DOT) { - $associationPathExpression = $this->AssociationPathExpression(); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - $aliasIdentificationVariable = $this->AliasIdentificationVariable(); - $identificationVariable = $associationPathExpression->identificationVariable; - $field = $associationPathExpression->associationField; - - $class = $this->queryComponents[$identificationVariable]['metadata']; - $targetClass = $this->em->getClassMetadata($class->associationMappings[$field]['targetEntity']); - - // Building queryComponent - $joinQueryComponent = array( - 'metadata' => $targetClass, - 'parent' => $identificationVariable, - 'relation' => $class->getAssociationMapping($field), - 'map' => null, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->lookahead - ); - - $this->queryComponents[$aliasIdentificationVariable] = $joinQueryComponent; - - return new AST\SubselectIdentificationVariableDeclaration( - $associationPathExpression, $aliasIdentificationVariable - ); - } - */ - - return $this->IdentificationVariableDeclaration(); - } - - /** - * Join ::= ["LEFT" ["OUTER"] | "INNER"] "JOIN" - * (JoinAssociationDeclaration | RangeVariableDeclaration) - * ["WITH" ConditionalExpression] - */ - public function Join(): AST\Join - { - // Check Join type - $joinType = AST\Join::JOIN_TYPE_INNER; - - switch (true) { - case $this->lexer->isNextToken(TokenType::T_LEFT): - $this->match(TokenType::T_LEFT); - - $joinType = AST\Join::JOIN_TYPE_LEFT; - - // Possible LEFT OUTER join - if ($this->lexer->isNextToken(TokenType::T_OUTER)) { - $this->match(TokenType::T_OUTER); - - $joinType = AST\Join::JOIN_TYPE_LEFTOUTER; - } - - break; - - case $this->lexer->isNextToken(TokenType::T_INNER): - $this->match(TokenType::T_INNER); - break; - - default: - // Do nothing - } - - $this->match(TokenType::T_JOIN); - - $next = $this->lexer->glimpse(); - assert($next !== null); - $joinDeclaration = $next->type === TokenType::T_DOT ? $this->JoinAssociationDeclaration() : $this->RangeVariableDeclaration(); - $adhocConditions = $this->lexer->isNextToken(TokenType::T_WITH); - $join = new AST\Join($joinType, $joinDeclaration); - - // Describe non-root join declaration - if ($joinDeclaration instanceof AST\RangeVariableDeclaration) { - $joinDeclaration->isRoot = false; - } - - // Check for ad-hoc Join conditions - if ($adhocConditions) { - $this->match(TokenType::T_WITH); - - $join->conditionalExpression = $this->ConditionalExpression(); - } - - return $join; - } - - /** - * RangeVariableDeclaration ::= AbstractSchemaName ["AS"] AliasIdentificationVariable - * - * @throws QueryException - */ - public function RangeVariableDeclaration(): AST\RangeVariableDeclaration - { - if ($this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS) && $this->lexer->glimpse()->type === TokenType::T_SELECT) { - $this->semanticalError('Subquery is not supported here', $this->lexer->token); - } - - $abstractSchemaName = $this->AbstractSchemaName(); - - $this->validateAbstractSchemaName($abstractSchemaName); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - assert($this->lexer->lookahead !== null); - $token = $this->lexer->lookahead; - $aliasIdentificationVariable = $this->AliasIdentificationVariable(); - $classMetadata = $this->em->getClassMetadata($abstractSchemaName); - - // Building queryComponent - $queryComponent = [ - 'metadata' => $classMetadata, - 'parent' => null, - 'relation' => null, - 'map' => null, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - - $this->queryComponents[$aliasIdentificationVariable] = $queryComponent; - - return new AST\RangeVariableDeclaration($abstractSchemaName, $aliasIdentificationVariable); - } - - /** - * JoinAssociationDeclaration ::= JoinAssociationPathExpression ["AS"] AliasIdentificationVariable [IndexBy] - */ - public function JoinAssociationDeclaration(): AST\JoinAssociationDeclaration - { - $joinAssociationPathExpression = $this->JoinAssociationPathExpression(); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - assert($this->lexer->lookahead !== null); - - $aliasIdentificationVariable = $this->AliasIdentificationVariable(); - $indexBy = $this->lexer->isNextToken(TokenType::T_INDEX) ? $this->IndexBy() : null; - - $identificationVariable = $joinAssociationPathExpression->identificationVariable; - $field = $joinAssociationPathExpression->associationField; - - $class = $this->getMetadataForDqlAlias($identificationVariable); - $targetClass = $this->em->getClassMetadata($class->associationMappings[$field]->targetEntity); - - // Building queryComponent - $joinQueryComponent = [ - 'metadata' => $targetClass, - 'parent' => $joinAssociationPathExpression->identificationVariable, - 'relation' => $class->getAssociationMapping($field), - 'map' => null, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->lookahead, - ]; - - $this->queryComponents[$aliasIdentificationVariable] = $joinQueryComponent; - - return new AST\JoinAssociationDeclaration($joinAssociationPathExpression, $aliasIdentificationVariable, $indexBy); - } - - /** - * PartialObjectExpression ::= "PARTIAL" IdentificationVariable "." PartialFieldSet - * PartialFieldSet ::= "{" SimpleStateField {"," SimpleStateField}* "}" - */ - public function PartialObjectExpression(): AST\PartialObjectExpression - { - $this->match(TokenType::T_PARTIAL); - - $partialFieldSet = []; - - $identificationVariable = $this->IdentificationVariable(); - - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_OPEN_CURLY_BRACE); - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - $field = $this->lexer->token->value; - - // First field in partial expression might be embeddable property - while ($this->lexer->isNextToken(TokenType::T_DOT)) { - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_IDENTIFIER); - $field .= '.' . $this->lexer->token->value; - } - - $partialFieldSet[] = $field; - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - $this->match(TokenType::T_IDENTIFIER); - - $field = $this->lexer->token->value; - - while ($this->lexer->isNextToken(TokenType::T_DOT)) { - $this->match(TokenType::T_DOT); - $this->match(TokenType::T_IDENTIFIER); - $field .= '.' . $this->lexer->token->value; - } - - $partialFieldSet[] = $field; - } - - $this->match(TokenType::T_CLOSE_CURLY_BRACE); - - $partialObjectExpression = new AST\PartialObjectExpression($identificationVariable, $partialFieldSet); - - // Defer PartialObjectExpression validation - $this->deferredPartialObjectExpressions[] = [ - 'expression' => $partialObjectExpression, - 'nestingLevel' => $this->nestingLevel, - 'token' => $this->lexer->token, - ]; - - return $partialObjectExpression; - } - - /** - * NewObjectExpression ::= "NEW" AbstractSchemaName "(" NewObjectArg {"," NewObjectArg}* ")" - */ - public function NewObjectExpression(): AST\NewObjectExpression - { - $useNamedArguments = false; - $args = []; - $argFieldAlias = []; - $this->match(TokenType::T_NEW); - - if ($this->lexer->isNextToken(TokenType::T_NAMED)) { - $this->match(TokenType::T_NAMED); - $useNamedArguments = true; - } - - /** @var class-string $className */ - $className = $this->AbstractSchemaName(); // note that this is not yet validated - $token = $this->lexer->token; - - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $this->addArgument($args, $useNamedArguments); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - $this->addArgument($args, $useNamedArguments); - } - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - $expression = new AST\NewObjectExpression($className, $args); - - // Defer NewObjectExpression validation - $this->deferredNewObjectExpressions[] = [ - 'token' => $token, - 'expression' => $expression, - 'nestingLevel' => $this->nestingLevel, - ]; - - return $expression; - } - - /** @param array $args */ - public function addArgument(array &$args, bool $useNamedArguments): void - { - $fieldAlias = null; - - if ($useNamedArguments) { - $startToken = $this->lexer->lookahead?->position ?? 0; - - $newArg = $this->NewObjectArg($fieldAlias); - - $key = $fieldAlias ?? $newArg->field ?? null; - - if ($key === null) { - throw NoMatchingPropertyException::create(trim(substr( - ($this->query->getDQL() ?? ''), - $startToken, - ($this->lexer->lookahead->position ?? 0) - $startToken, - ))); - } - - if (array_key_exists($key, $args)) { - throw DuplicateFieldException::create($key, trim(substr( - ($this->query->getDQL() ?? ''), - $startToken, - ($this->lexer->lookahead->position ?? 0) - $startToken, - ))); - } - - $args[$key] = $newArg; - } else { - $args[] = $this->NewObjectArg($fieldAlias); - } - } - - /** - * NewObjectArg ::= (ScalarExpression | "(" Subselect ")" | NewObjectExpression) ["AS" AliasResultVariable] - */ - public function NewObjectArg(string|null &$fieldAlias = null): mixed - { - $fieldAlias = null; - - assert($this->lexer->lookahead !== null); - $token = $this->lexer->lookahead; - $peek = $this->lexer->glimpse(); - - assert($peek !== null); - - $expression = null; - - if ($token->type === TokenType::T_OPEN_PARENTHESIS && $peek->type === TokenType::T_SELECT) { - $this->match(TokenType::T_OPEN_PARENTHESIS); - $expression = $this->Subselect(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - } elseif ($token->type === TokenType::T_NEW) { - $expression = $this->NewObjectExpression(); - } elseif ($token->type === TokenType::T_IDENTIFIER && $peek->type !== TokenType::T_DOT && $peek->type !== TokenType::T_OPEN_PARENTHESIS) { - $expression = $this->EntityAsDtoArgumentExpression(); - } else { - $expression = $this->ScalarExpression(); - } - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - $this->match(TokenType::T_IDENTIFIER); - - assert($this->lexer->token !== null); - - $fieldAlias = $this->lexer->token->value; - } - - return $expression; - } - - /** - * IndexBy ::= "INDEX" "BY" SingleValuedPathExpression - */ - public function IndexBy(): AST\IndexBy - { - $this->match(TokenType::T_INDEX); - $this->match(TokenType::T_BY); - $pathExpr = $this->SingleValuedPathExpression(); - - // Add the INDEX BY info to the query component - $this->queryComponents[$pathExpr->identificationVariable]['map'] = $pathExpr->field; - - return new AST\IndexBy($pathExpr); - } - - /** - * ScalarExpression ::= SimpleArithmeticExpression | StringPrimary | DateTimePrimary | - * StateFieldPathExpression | BooleanPrimary | CaseExpression | - * InstanceOfExpression - * - * @return mixed One of the possible expressions or subexpressions. - */ - public function ScalarExpression(): mixed - { - assert($this->lexer->token !== null); - assert($this->lexer->lookahead !== null); - $lookahead = $this->lexer->lookahead->type; - $peek = $this->lexer->glimpse(); - - switch (true) { - case $lookahead === TokenType::T_INTEGER: - case $lookahead === TokenType::T_FLOAT: - // SimpleArithmeticExpression : (- u.value ) or ( + u.value ) or ( - 1 ) or ( + 1 ) - case $lookahead === TokenType::T_MINUS: - case $lookahead === TokenType::T_PLUS: - return $this->SimpleArithmeticExpression(); - - case $lookahead === TokenType::T_STRING: - return $this->StringPrimary(); - - case $lookahead === TokenType::T_TRUE: - case $lookahead === TokenType::T_FALSE: - $this->match($lookahead); - - return new AST\Literal(AST\Literal::BOOLEAN, $this->lexer->token->value); - - case $lookahead === TokenType::T_INPUT_PARAMETER: - return match (true) { - $this->isMathOperator($peek) => $this->SimpleArithmeticExpression(), - default => $this->InputParameter(), - }; - - case $lookahead === TokenType::T_CASE: - case $lookahead === TokenType::T_COALESCE: - case $lookahead === TokenType::T_NULLIF: - // Since NULLIF and COALESCE can be identified as a function, - // we need to check these before checking for FunctionDeclaration - return $this->CaseExpression(); - - case $lookahead === TokenType::T_OPEN_PARENTHESIS: - return $this->SimpleArithmeticExpression(); - - // this check must be done before checking for a filed path expression - case $this->isFunction(): - $this->lexer->peek(); - - return match (true) { - $this->isMathOperator($this->peekBeyondClosingParenthesis()) => $this->SimpleArithmeticExpression(), - default => $this->FunctionDeclaration(), - }; - - // it is no function, so it must be a field path - case $lookahead === TokenType::T_IDENTIFIER: - $this->lexer->peek(); // lookahead => '.' - $this->lexer->peek(); // lookahead => token after '.' - $peek = $this->lexer->peek(); // lookahead => token after the token after the '.' - $this->lexer->resetPeek(); - - if ($this->isMathOperator($peek)) { - return $this->SimpleArithmeticExpression(); - } - - return $this->StateFieldPathExpression(); - - default: - $this->syntaxError(); - } - } - - /** - * CaseExpression ::= GeneralCaseExpression | SimpleCaseExpression | CoalesceExpression | NullifExpression - * GeneralCaseExpression ::= "CASE" WhenClause {WhenClause}* "ELSE" ScalarExpression "END" - * WhenClause ::= "WHEN" ConditionalExpression "THEN" ScalarExpression - * SimpleCaseExpression ::= "CASE" CaseOperand SimpleWhenClause {SimpleWhenClause}* "ELSE" ScalarExpression "END" - * CaseOperand ::= StateFieldPathExpression | TypeDiscriminator - * SimpleWhenClause ::= "WHEN" ScalarExpression "THEN" ScalarExpression - * CoalesceExpression ::= "COALESCE" "(" ScalarExpression {"," ScalarExpression}* ")" - * NullifExpression ::= "NULLIF" "(" ScalarExpression "," ScalarExpression ")" - * - * @return mixed One of the possible expressions or subexpressions. - */ - public function CaseExpression(): mixed - { - assert($this->lexer->lookahead !== null); - $lookahead = $this->lexer->lookahead->type; - - switch ($lookahead) { - case TokenType::T_NULLIF: - return $this->NullIfExpression(); - - case TokenType::T_COALESCE: - return $this->CoalesceExpression(); - - case TokenType::T_CASE: - $this->lexer->resetPeek(); - $peek = $this->lexer->peek(); - - assert($peek !== null); - if ($peek->type === TokenType::T_WHEN) { - return $this->GeneralCaseExpression(); - } - - return $this->SimpleCaseExpression(); - - default: - // Do nothing - break; - } - - $this->syntaxError(); - } - - /** - * CoalesceExpression ::= "COALESCE" "(" ScalarExpression {"," ScalarExpression}* ")" - */ - public function CoalesceExpression(): AST\CoalesceExpression - { - $this->match(TokenType::T_COALESCE); - $this->match(TokenType::T_OPEN_PARENTHESIS); - - // Process ScalarExpressions (1..N) - $scalarExpressions = []; - $scalarExpressions[] = $this->ScalarExpression(); - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $scalarExpressions[] = $this->ScalarExpression(); - } - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\CoalesceExpression($scalarExpressions); - } - - /** - * NullIfExpression ::= "NULLIF" "(" ScalarExpression "," ScalarExpression ")" - */ - public function NullIfExpression(): AST\NullIfExpression - { - $this->match(TokenType::T_NULLIF); - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $firstExpression = $this->ScalarExpression(); - $this->match(TokenType::T_COMMA); - $secondExpression = $this->ScalarExpression(); - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\NullIfExpression($firstExpression, $secondExpression); - } - - /** - * GeneralCaseExpression ::= "CASE" WhenClause {WhenClause}* "ELSE" ScalarExpression "END" - */ - public function GeneralCaseExpression(): AST\GeneralCaseExpression - { - $this->match(TokenType::T_CASE); - - // Process WhenClause (1..N) - $whenClauses = []; - - do { - $whenClauses[] = $this->WhenClause(); - } while ($this->lexer->isNextToken(TokenType::T_WHEN)); - - $this->match(TokenType::T_ELSE); - $scalarExpression = $this->ScalarExpression(); - $this->match(TokenType::T_END); - - return new AST\GeneralCaseExpression($whenClauses, $scalarExpression); - } - - /** - * SimpleCaseExpression ::= "CASE" CaseOperand SimpleWhenClause {SimpleWhenClause}* "ELSE" ScalarExpression "END" - * CaseOperand ::= StateFieldPathExpression | TypeDiscriminator - */ - public function SimpleCaseExpression(): AST\SimpleCaseExpression - { - $this->match(TokenType::T_CASE); - $caseOperand = $this->StateFieldPathExpression(); - - // Process SimpleWhenClause (1..N) - $simpleWhenClauses = []; - - do { - $simpleWhenClauses[] = $this->SimpleWhenClause(); - } while ($this->lexer->isNextToken(TokenType::T_WHEN)); - - $this->match(TokenType::T_ELSE); - $scalarExpression = $this->ScalarExpression(); - $this->match(TokenType::T_END); - - return new AST\SimpleCaseExpression($caseOperand, $simpleWhenClauses, $scalarExpression); - } - - /** - * WhenClause ::= "WHEN" ConditionalExpression "THEN" ScalarExpression - */ - public function WhenClause(): AST\WhenClause - { - $this->match(TokenType::T_WHEN); - $conditionalExpression = $this->ConditionalExpression(); - $this->match(TokenType::T_THEN); - - return new AST\WhenClause($conditionalExpression, $this->ScalarExpression()); - } - - /** - * SimpleWhenClause ::= "WHEN" ScalarExpression "THEN" ScalarExpression - */ - public function SimpleWhenClause(): AST\SimpleWhenClause - { - $this->match(TokenType::T_WHEN); - $conditionalExpression = $this->ScalarExpression(); - $this->match(TokenType::T_THEN); - - return new AST\SimpleWhenClause($conditionalExpression, $this->ScalarExpression()); - } - - /** - * SelectExpression ::= ( - * IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | - * PartialObjectExpression | "(" Subselect ")" | CaseExpression | NewObjectExpression - * ) [["AS"] ["HIDDEN"] AliasResultVariable] - */ - public function SelectExpression(): AST\SelectExpression - { - assert($this->lexer->lookahead !== null); - $expression = null; - $identVariable = null; - $peek = $this->lexer->glimpse(); - $lookaheadType = $this->lexer->lookahead->type; - assert($peek !== null); - - switch (true) { - // ScalarExpression (u.name) - case $lookaheadType === TokenType::T_IDENTIFIER && $peek->type === TokenType::T_DOT: - $expression = $this->ScalarExpression(); - break; - - // IdentificationVariable (u) - case $lookaheadType === TokenType::T_IDENTIFIER && $peek->type !== TokenType::T_OPEN_PARENTHESIS: - $expression = $identVariable = $this->IdentificationVariable(); - break; - - // CaseExpression (CASE ... or NULLIF(...) or COALESCE(...)) - case $lookaheadType === TokenType::T_CASE: - case $lookaheadType === TokenType::T_COALESCE: - case $lookaheadType === TokenType::T_NULLIF: - $expression = $this->CaseExpression(); - break; - - // DQL Function (SUM(u.value) or SUM(u.value) + 1) - case $this->isFunction(): - $this->lexer->peek(); // "(" - - $expression = match (true) { - $this->isMathOperator($this->peekBeyondClosingParenthesis()) => $this->ScalarExpression(), - default => $this->FunctionDeclaration(), - }; - - break; - - // PartialObjectExpression (PARTIAL u.{id, name}) - case $lookaheadType === TokenType::T_PARTIAL: - $expression = $this->PartialObjectExpression(); - $identVariable = $expression->identificationVariable; - break; - - // Subselect - case $lookaheadType === TokenType::T_OPEN_PARENTHESIS && $peek->type === TokenType::T_SELECT: - $this->match(TokenType::T_OPEN_PARENTHESIS); - $expression = $this->Subselect(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - break; - - // Shortcut: ScalarExpression => SimpleArithmeticExpression - case $lookaheadType === TokenType::T_OPEN_PARENTHESIS: - case $lookaheadType === TokenType::T_INTEGER: - case $lookaheadType === TokenType::T_STRING: - case $lookaheadType === TokenType::T_FLOAT: - // SimpleArithmeticExpression : (- u.value ) or ( + u.value ) - case $lookaheadType === TokenType::T_MINUS: - case $lookaheadType === TokenType::T_PLUS: - $expression = $this->SimpleArithmeticExpression(); - break; - - // NewObjectExpression (New ClassName(id, name)) - case $lookaheadType === TokenType::T_NEW: - $expression = $this->NewObjectExpression(); - break; - - default: - $this->syntaxError( - 'IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression', - $this->lexer->lookahead, - ); - } - - // [["AS"] ["HIDDEN"] AliasResultVariable] - $mustHaveAliasResultVariable = false; - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - - $mustHaveAliasResultVariable = true; - } - - $hiddenAliasResultVariable = false; - - if ($this->lexer->isNextToken(TokenType::T_HIDDEN)) { - $this->match(TokenType::T_HIDDEN); - - $hiddenAliasResultVariable = true; - } - - $aliasResultVariable = null; - - if ($mustHaveAliasResultVariable || $this->lexer->isNextToken(TokenType::T_IDENTIFIER)) { - assert($expression instanceof AST\Node || is_string($expression)); - $token = $this->lexer->lookahead; - $aliasResultVariable = $this->AliasResultVariable(); - - // Include AliasResultVariable in query components. - $this->queryComponents[$aliasResultVariable] = [ - 'resultVariable' => $expression, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - } - - // AST - - $expr = new AST\SelectExpression($expression, $aliasResultVariable, $hiddenAliasResultVariable); - - if ($identVariable) { - $this->identVariableExpressions[$identVariable] = $expr; - } - - return $expr; - } - - /** - * SimpleSelectExpression ::= ( - * StateFieldPathExpression | IdentificationVariable | FunctionDeclaration | - * AggregateExpression | "(" Subselect ")" | ScalarExpression - * ) [["AS"] AliasResultVariable] - */ - public function SimpleSelectExpression(): AST\SimpleSelectExpression - { - assert($this->lexer->lookahead !== null); - $peek = $this->lexer->glimpse(); - assert($peek !== null); - - switch ($this->lexer->lookahead->type) { - case TokenType::T_IDENTIFIER: - switch (true) { - case $peek->type === TokenType::T_DOT: - $expression = $this->StateFieldPathExpression(); - - return new AST\SimpleSelectExpression($expression); - - case $peek->type !== TokenType::T_OPEN_PARENTHESIS: - $expression = $this->IdentificationVariable(); - - return new AST\SimpleSelectExpression($expression); - - case $this->isFunction(): - // SUM(u.id) + COUNT(u.id) - if ($this->isMathOperator($this->peekBeyondClosingParenthesis())) { - return new AST\SimpleSelectExpression($this->ScalarExpression()); - } - - // COUNT(u.id) - if ($this->isAggregateFunction($this->lexer->lookahead->type)) { - return new AST\SimpleSelectExpression($this->AggregateExpression()); - } - - // IDENTITY(u) - return new AST\SimpleSelectExpression($this->FunctionDeclaration()); - - default: - // Do nothing - } - - break; - - case TokenType::T_OPEN_PARENTHESIS: - if ($peek->type !== TokenType::T_SELECT) { - // Shortcut: ScalarExpression => SimpleArithmeticExpression - $expression = $this->SimpleArithmeticExpression(); - - return new AST\SimpleSelectExpression($expression); - } - - // Subselect - $this->match(TokenType::T_OPEN_PARENTHESIS); - $expression = $this->Subselect(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\SimpleSelectExpression($expression); - - default: - // Do nothing - } - - $this->lexer->peek(); - - $expression = $this->ScalarExpression(); - $expr = new AST\SimpleSelectExpression($expression); - - if ($this->lexer->isNextToken(TokenType::T_AS)) { - $this->match(TokenType::T_AS); - } - - if ($this->lexer->isNextToken(TokenType::T_IDENTIFIER)) { - $token = $this->lexer->lookahead; - $resultVariable = $this->AliasResultVariable(); - $expr->fieldIdentificationVariable = $resultVariable; - - // Include AliasResultVariable in query components. - $this->queryComponents[$resultVariable] = [ - 'resultvariable' => $expr, - 'nestingLevel' => $this->nestingLevel, - 'token' => $token, - ]; - } - - return $expr; - } - - /** - * ConditionalExpression ::= ConditionalTerm {"OR" ConditionalTerm}* - */ - public function ConditionalExpression(): AST\ConditionalExpression|AST\ConditionalFactor|AST\ConditionalPrimary|AST\ConditionalTerm - { - $conditionalTerms = []; - $conditionalTerms[] = $this->ConditionalTerm(); - - while ($this->lexer->isNextToken(TokenType::T_OR)) { - $this->match(TokenType::T_OR); - - $conditionalTerms[] = $this->ConditionalTerm(); - } - - // Phase 1 AST optimization: Prevent AST\ConditionalExpression - // if only one AST\ConditionalTerm is defined - if (count($conditionalTerms) === 1) { - return $conditionalTerms[0]; - } - - return new AST\ConditionalExpression($conditionalTerms); - } - - /** - * ConditionalTerm ::= ConditionalFactor {"AND" ConditionalFactor}* - */ - public function ConditionalTerm(): AST\ConditionalFactor|AST\ConditionalPrimary|AST\ConditionalTerm - { - $conditionalFactors = []; - $conditionalFactors[] = $this->ConditionalFactor(); - - while ($this->lexer->isNextToken(TokenType::T_AND)) { - $this->match(TokenType::T_AND); - - $conditionalFactors[] = $this->ConditionalFactor(); - } - - // Phase 1 AST optimization: Prevent AST\ConditionalTerm - // if only one AST\ConditionalFactor is defined - if (count($conditionalFactors) === 1) { - return $conditionalFactors[0]; - } - - return new AST\ConditionalTerm($conditionalFactors); - } - - /** - * ConditionalFactor ::= ["NOT"] ConditionalPrimary - */ - public function ConditionalFactor(): AST\ConditionalFactor|AST\ConditionalPrimary - { - $not = false; - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - - $not = true; - } - - $conditionalPrimary = $this->ConditionalPrimary(); - - // Phase 1 AST optimization: Prevent AST\ConditionalFactor - // if only one AST\ConditionalPrimary is defined - if (! $not) { - return $conditionalPrimary; - } - - return new AST\ConditionalFactor($conditionalPrimary, $not); - } - - /** - * ConditionalPrimary ::= SimpleConditionalExpression | "(" ConditionalExpression ")" - */ - public function ConditionalPrimary(): AST\ConditionalPrimary - { - $condPrimary = new AST\ConditionalPrimary(); - - if (! $this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS)) { - $condPrimary->simpleConditionalExpression = $this->SimpleConditionalExpression(); - - return $condPrimary; - } - - // Peek beyond the matching closing parenthesis ')' - $peek = $this->peekBeyondClosingParenthesis(); - - if ( - $peek !== null && ( - in_array($peek->value, ['=', '<', '<=', '<>', '>', '>=', '!='], true) || - in_array($peek->type, [TokenType::T_NOT, TokenType::T_BETWEEN, TokenType::T_LIKE, TokenType::T_IN, TokenType::T_IS, TokenType::T_EXISTS], true) || - $this->isMathOperator($peek) - ) - ) { - $condPrimary->simpleConditionalExpression = $this->SimpleConditionalExpression(); - - return $condPrimary; - } - - $this->match(TokenType::T_OPEN_PARENTHESIS); - $condPrimary->conditionalExpression = $this->ConditionalExpression(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $condPrimary; - } - - /** - * SimpleConditionalExpression ::= - * ComparisonExpression | BetweenExpression | LikeExpression | - * InExpression | NullComparisonExpression | ExistsExpression | - * EmptyCollectionComparisonExpression | CollectionMemberExpression | - * InstanceOfExpression - */ - public function SimpleConditionalExpression(): AST\ExistsExpression|AST\BetweenExpression|AST\LikeExpression|AST\InListExpression|AST\InSubselectExpression|AST\InstanceOfExpression|AST\CollectionMemberExpression|AST\NullComparisonExpression|AST\EmptyCollectionComparisonExpression|AST\ComparisonExpression - { - assert($this->lexer->lookahead !== null); - if ($this->lexer->isNextToken(TokenType::T_EXISTS)) { - return $this->ExistsExpression(); - } - - $token = $this->lexer->lookahead; - $peek = $this->lexer->glimpse(); - $lookahead = $token; - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $token = $this->lexer->glimpse(); - } - - assert($token !== null); - assert($peek !== null); - if ($token->type === TokenType::T_IDENTIFIER || $token->type === TokenType::T_INPUT_PARAMETER || $this->isFunction()) { - // Peek beyond the matching closing parenthesis. - $beyond = $this->lexer->peek(); - - switch ($peek->value) { - case '(': - // Peeks beyond the matched closing parenthesis. - $token = $this->peekBeyondClosingParenthesis(false); - assert($token !== null); - - if ($token->type === TokenType::T_NOT) { - $token = $this->lexer->peek(); - assert($token !== null); - } - - if ($token->type === TokenType::T_IS) { - $lookahead = $this->lexer->peek(); - } - - break; - - default: - // Peek beyond the PathExpression or InputParameter. - $token = $beyond; - - while ($token->value === '.') { - $this->lexer->peek(); - - $token = $this->lexer->peek(); - assert($token !== null); - } - - // Also peek beyond a NOT if there is one. - assert($token !== null); - if ($token->type === TokenType::T_NOT) { - $token = $this->lexer->peek(); - assert($token !== null); - } - - // We need to go even further in case of IS (differentiate between NULL and EMPTY) - $lookahead = $this->lexer->peek(); - } - - assert($lookahead !== null); - // Also peek beyond a NOT if there is one. - if ($lookahead->type === TokenType::T_NOT) { - $lookahead = $this->lexer->peek(); - } - - $this->lexer->resetPeek(); - } - - if ($token->type === TokenType::T_BETWEEN) { - return $this->BetweenExpression(); - } - - if ($token->type === TokenType::T_LIKE) { - return $this->LikeExpression(); - } - - if ($token->type === TokenType::T_IN) { - return $this->InExpression(); - } - - if ($token->type === TokenType::T_INSTANCE) { - return $this->InstanceOfExpression(); - } - - if ($token->type === TokenType::T_MEMBER) { - return $this->CollectionMemberExpression(); - } - - assert($lookahead !== null); - if ($token->type === TokenType::T_IS && $lookahead->type === TokenType::T_NULL) { - return $this->NullComparisonExpression(); - } - - if ($token->type === TokenType::T_IS && $lookahead->type === TokenType::T_EMPTY) { - return $this->EmptyCollectionComparisonExpression(); - } - - return $this->ComparisonExpression(); - } - - /** - * EmptyCollectionComparisonExpression ::= CollectionValuedPathExpression "IS" ["NOT"] "EMPTY" - */ - public function EmptyCollectionComparisonExpression(): AST\EmptyCollectionComparisonExpression - { - $pathExpression = $this->CollectionValuedPathExpression(); - $this->match(TokenType::T_IS); - - $not = false; - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_EMPTY); - - return new AST\EmptyCollectionComparisonExpression( - $pathExpression, - $not, - ); - } - - /** - * CollectionMemberExpression ::= EntityExpression ["NOT"] "MEMBER" ["OF"] CollectionValuedPathExpression - * - * EntityExpression ::= SingleValuedAssociationPathExpression | SimpleEntityExpression - * SimpleEntityExpression ::= IdentificationVariable | InputParameter - */ - public function CollectionMemberExpression(): AST\CollectionMemberExpression - { - $not = false; - $entityExpr = $this->EntityExpression(); - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - - $not = true; - } - - $this->match(TokenType::T_MEMBER); - - if ($this->lexer->isNextToken(TokenType::T_OF)) { - $this->match(TokenType::T_OF); - } - - return new AST\CollectionMemberExpression( - $entityExpr, - $this->CollectionValuedPathExpression(), - $not, - ); - } - - /** - * Literal ::= string | char | integer | float | boolean - */ - public function Literal(): AST\Literal - { - assert($this->lexer->lookahead !== null); - assert($this->lexer->token !== null); - switch ($this->lexer->lookahead->type) { - case TokenType::T_STRING: - $this->match(TokenType::T_STRING); - - return new AST\Literal(AST\Literal::STRING, $this->lexer->token->value); - - case TokenType::T_INTEGER: - case TokenType::T_FLOAT: - $this->match( - $this->lexer->isNextToken(TokenType::T_INTEGER) ? TokenType::T_INTEGER : TokenType::T_FLOAT, - ); - - return new AST\Literal(AST\Literal::NUMERIC, $this->lexer->token->value); - - case TokenType::T_TRUE: - case TokenType::T_FALSE: - $this->match( - $this->lexer->isNextToken(TokenType::T_TRUE) ? TokenType::T_TRUE : TokenType::T_FALSE, - ); - - return new AST\Literal(AST\Literal::BOOLEAN, $this->lexer->token->value); - - default: - $this->syntaxError('Literal'); - } - } - - /** - * InParameter ::= ArithmeticExpression | InputParameter - */ - public function InParameter(): AST\InputParameter|AST\ArithmeticExpression - { - assert($this->lexer->lookahead !== null); - if ($this->lexer->lookahead->type === TokenType::T_INPUT_PARAMETER) { - return $this->InputParameter(); - } - - return $this->ArithmeticExpression(); - } - - /** - * InputParameter ::= PositionalParameter | NamedParameter - */ - public function InputParameter(): AST\InputParameter - { - $this->match(TokenType::T_INPUT_PARAMETER); - assert($this->lexer->token !== null); - - return new AST\InputParameter($this->lexer->token->value); - } - - /** - * ArithmeticExpression ::= SimpleArithmeticExpression | "(" Subselect ")" - */ - public function ArithmeticExpression(): AST\ArithmeticExpression - { - $expr = new AST\ArithmeticExpression(); - - if ($this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS)) { - $peek = $this->lexer->glimpse(); - assert($peek !== null); - - if ($peek->type === TokenType::T_SELECT) { - $this->match(TokenType::T_OPEN_PARENTHESIS); - $expr->subselect = $this->Subselect(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $expr; - } - } - - $expr->simpleArithmeticExpression = $this->SimpleArithmeticExpression(); - - return $expr; - } - - /** - * SimpleArithmeticExpression ::= ArithmeticTerm {("+" | "-") ArithmeticTerm}* - */ - public function SimpleArithmeticExpression(): AST\Node|string - { - $terms = []; - $terms[] = $this->ArithmeticTerm(); - - while (($isPlus = $this->lexer->isNextToken(TokenType::T_PLUS)) || $this->lexer->isNextToken(TokenType::T_MINUS)) { - $this->match($isPlus ? TokenType::T_PLUS : TokenType::T_MINUS); - - assert($this->lexer->token !== null); - $terms[] = $this->lexer->token->value; - $terms[] = $this->ArithmeticTerm(); - } - - // Phase 1 AST optimization: Prevent AST\SimpleArithmeticExpression - // if only one AST\ArithmeticTerm is defined - if (count($terms) === 1) { - return $terms[0]; - } - - return new AST\SimpleArithmeticExpression($terms); - } - - /** - * ArithmeticTerm ::= ArithmeticFactor {("*" | "/") ArithmeticFactor}* - */ - public function ArithmeticTerm(): AST\Node|string - { - $factors = []; - $factors[] = $this->ArithmeticFactor(); - - while (($isMult = $this->lexer->isNextToken(TokenType::T_MULTIPLY)) || $this->lexer->isNextToken(TokenType::T_DIVIDE)) { - $this->match($isMult ? TokenType::T_MULTIPLY : TokenType::T_DIVIDE); - - assert($this->lexer->token !== null); - $factors[] = $this->lexer->token->value; - $factors[] = $this->ArithmeticFactor(); - } - - // Phase 1 AST optimization: Prevent AST\ArithmeticTerm - // if only one AST\ArithmeticFactor is defined - if (count($factors) === 1) { - return $factors[0]; - } - - return new AST\ArithmeticTerm($factors); - } - - /** - * ArithmeticFactor ::= [("+" | "-")] ArithmeticPrimary - */ - public function ArithmeticFactor(): AST\Node|string|AST\ArithmeticFactor - { - $sign = null; - - $isPlus = $this->lexer->isNextToken(TokenType::T_PLUS); - if ($isPlus || $this->lexer->isNextToken(TokenType::T_MINUS)) { - $this->match($isPlus ? TokenType::T_PLUS : TokenType::T_MINUS); - $sign = $isPlus; - } - - $primary = $this->ArithmeticPrimary(); - - // Phase 1 AST optimization: Prevent AST\ArithmeticFactor - // if only one AST\ArithmeticPrimary is defined - if ($sign === null) { - return $primary; - } - - return new AST\ArithmeticFactor($primary, $sign); - } - - /** - * ArithmeticPrimary ::= SingleValuedPathExpression | Literal | ParenthesisExpression - * | FunctionsReturningNumerics | AggregateExpression | FunctionsReturningStrings - * | FunctionsReturningDatetime | IdentificationVariable | ResultVariable - * | InputParameter | CaseExpression - */ - public function ArithmeticPrimary(): AST\Node|string - { - if ($this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS)) { - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $expr = $this->SimpleArithmeticExpression(); - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\ParenthesisExpression($expr); - } - - if ($this->lexer->lookahead === null) { - $this->syntaxError('ArithmeticPrimary'); - } - - switch ($this->lexer->lookahead->type) { - case TokenType::T_COALESCE: - case TokenType::T_NULLIF: - case TokenType::T_CASE: - return $this->CaseExpression(); - - case TokenType::T_IDENTIFIER: - $peek = $this->lexer->glimpse(); - - if ($peek !== null && $peek->value === '(') { - return $this->FunctionDeclaration(); - } - - if ($peek !== null && $peek->value === '.') { - return $this->SingleValuedPathExpression(); - } - - if (isset($this->queryComponents[$this->lexer->lookahead->value]['resultVariable'])) { - return $this->ResultVariable(); - } - - return $this->StateFieldPathExpression(); - - case TokenType::T_INPUT_PARAMETER: - return $this->InputParameter(); - - default: - $peek = $this->lexer->glimpse(); - - if ($peek !== null && $peek->value === '(') { - return $this->FunctionDeclaration(); - } - - return $this->Literal(); - } - } - - /** - * StringExpression ::= StringPrimary | ResultVariable | "(" Subselect ")" - */ - public function StringExpression(): AST\Subselect|AST\Node|string - { - $peek = $this->lexer->glimpse(); - assert($peek !== null); - - // Subselect - if ($this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS) && $peek->type === TokenType::T_SELECT) { - $this->match(TokenType::T_OPEN_PARENTHESIS); - $expr = $this->Subselect(); - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $expr; - } - - assert($this->lexer->lookahead !== null); - // ResultVariable (string) - if ( - $this->lexer->isNextToken(TokenType::T_IDENTIFIER) && - isset($this->queryComponents[$this->lexer->lookahead->value]['resultVariable']) - ) { - return $this->ResultVariable(); - } - - return $this->StringPrimary(); - } - - /** - * StringPrimary ::= StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression | CaseExpression - */ - public function StringPrimary(): AST\Node - { - assert($this->lexer->lookahead !== null); - $lookaheadType = $this->lexer->lookahead->type; - - switch ($lookaheadType) { - case TokenType::T_IDENTIFIER: - $peek = $this->lexer->glimpse(); - assert($peek !== null); - - if ($peek->value === '.') { - return $this->StateFieldPathExpression(); - } - - if ($peek->value === '(') { - // do NOT directly go to FunctionsReturningString() because it doesn't check for custom functions. - return $this->FunctionDeclaration(); - } - - $this->syntaxError("'.' or '('"); - break; - - case TokenType::T_STRING: - $this->match(TokenType::T_STRING); - assert($this->lexer->token !== null); - - return new AST\Literal(AST\Literal::STRING, $this->lexer->token->value); - - case TokenType::T_INPUT_PARAMETER: - return $this->InputParameter(); - - case TokenType::T_CASE: - case TokenType::T_COALESCE: - case TokenType::T_NULLIF: - return $this->CaseExpression(); - - default: - assert($lookaheadType !== null); - if ($this->isAggregateFunction($lookaheadType)) { - return $this->AggregateExpression(); - } - } - - $this->syntaxError( - 'StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression', - ); - } - - /** - * EntityExpression ::= SingleValuedAssociationPathExpression | SimpleEntityExpression - */ - public function EntityExpression(): AST\InputParameter|AST\PathExpression - { - $glimpse = $this->lexer->glimpse(); - assert($glimpse !== null); - - if ($this->lexer->isNextToken(TokenType::T_IDENTIFIER) && $glimpse->value === '.') { - return $this->SingleValuedAssociationPathExpression(); - } - - return $this->SimpleEntityExpression(); - } - - /** - * SimpleEntityExpression ::= IdentificationVariable | InputParameter - */ - public function SimpleEntityExpression(): AST\InputParameter|AST\PathExpression - { - if ($this->lexer->isNextToken(TokenType::T_INPUT_PARAMETER)) { - return $this->InputParameter(); - } - - return $this->StateFieldPathExpression(); - } - - /** - * AggregateExpression ::= - * ("AVG" | "MAX" | "MIN" | "SUM" | "COUNT") "(" ["DISTINCT"] SimpleArithmeticExpression ")" - */ - public function AggregateExpression(): AST\AggregateExpression - { - assert($this->lexer->lookahead !== null); - $lookaheadType = $this->lexer->lookahead->type; - $isDistinct = false; - - if (! in_array($lookaheadType, [TokenType::T_COUNT, TokenType::T_AVG, TokenType::T_MAX, TokenType::T_MIN, TokenType::T_SUM], true)) { - $this->syntaxError('One of: MAX, MIN, AVG, SUM, COUNT'); - } - - $this->match($lookaheadType); - assert($this->lexer->token !== null); - $functionName = $this->lexer->token->value; - $this->match(TokenType::T_OPEN_PARENTHESIS); - - if ($this->lexer->isNextToken(TokenType::T_DISTINCT)) { - $this->match(TokenType::T_DISTINCT); - $isDistinct = true; - } - - $pathExp = $this->SimpleArithmeticExpression(); - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\AggregateExpression($functionName, $pathExp, $isDistinct); - } - - /** - * QuantifiedExpression ::= ("ALL" | "ANY" | "SOME") "(" Subselect ")" - */ - public function QuantifiedExpression(): AST\QuantifiedExpression - { - assert($this->lexer->lookahead !== null); - $lookaheadType = $this->lexer->lookahead->type; - $value = $this->lexer->lookahead->value; - - if (! in_array($lookaheadType, [TokenType::T_ALL, TokenType::T_ANY, TokenType::T_SOME], true)) { - $this->syntaxError('ALL, ANY or SOME'); - } - - $this->match($lookaheadType); - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $qExpr = new AST\QuantifiedExpression($this->Subselect()); - $qExpr->type = $value; - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $qExpr; - } - - /** - * BetweenExpression ::= ArithmeticExpression ["NOT"] "BETWEEN" ArithmeticExpression "AND" ArithmeticExpression - */ - public function BetweenExpression(): AST\BetweenExpression - { - $not = false; - $arithExpr1 = $this->ArithmeticExpression(); - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_BETWEEN); - $arithExpr2 = $this->ArithmeticExpression(); - $this->match(TokenType::T_AND); - $arithExpr3 = $this->ArithmeticExpression(); - - return new AST\BetweenExpression($arithExpr1, $arithExpr2, $arithExpr3, $not); - } - - /** - * ComparisonExpression ::= ArithmeticExpression ComparisonOperator ( QuantifiedExpression | ArithmeticExpression ) - */ - public function ComparisonExpression(): AST\ComparisonExpression - { - $this->lexer->glimpse(); - - $leftExpr = $this->ArithmeticExpression(); - $operator = $this->ComparisonOperator(); - $rightExpr = $this->isNextAllAnySome() - ? $this->QuantifiedExpression() - : $this->ArithmeticExpression(); - - return new AST\ComparisonExpression($leftExpr, $operator, $rightExpr); - } - - /** - * InExpression ::= SingleValuedPathExpression ["NOT"] "IN" "(" (InParameter {"," InParameter}* | Subselect) ")" - */ - public function InExpression(): AST\InListExpression|AST\InSubselectExpression - { - $expression = $this->ArithmeticExpression(); - - $not = false; - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_IN); - $this->match(TokenType::T_OPEN_PARENTHESIS); - - if ($this->lexer->isNextToken(TokenType::T_SELECT)) { - $inExpression = new AST\InSubselectExpression( - $expression, - $this->Subselect(), - $not, - ); - } else { - $literals = [$this->InParameter()]; - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - $literals[] = $this->InParameter(); - } - - $inExpression = new AST\InListExpression( - $expression, - $literals, - $not, - ); - } - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $inExpression; - } - - /** - * InstanceOfExpression ::= IdentificationVariable ["NOT"] "INSTANCE" ["OF"] (InstanceOfParameter | "(" InstanceOfParameter {"," InstanceOfParameter}* ")") - */ - public function InstanceOfExpression(): AST\InstanceOfExpression - { - $identificationVariable = $this->IdentificationVariable(); - - $not = false; - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_INSTANCE); - $this->match(TokenType::T_OF); - - $exprValues = $this->lexer->isNextToken(TokenType::T_OPEN_PARENTHESIS) - ? $this->InstanceOfParameterList() - : [$this->InstanceOfParameter()]; - - return new AST\InstanceOfExpression( - $identificationVariable, - $exprValues, - $not, - ); - } - - /** @return non-empty-list */ - public function InstanceOfParameterList(): array - { - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $exprValues = [$this->InstanceOfParameter()]; - - while ($this->lexer->isNextToken(TokenType::T_COMMA)) { - $this->match(TokenType::T_COMMA); - - $exprValues[] = $this->InstanceOfParameter(); - } - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return $exprValues; - } - - /** - * InstanceOfParameter ::= AbstractSchemaName | InputParameter - */ - public function InstanceOfParameter(): AST\InputParameter|string - { - if ($this->lexer->isNextToken(TokenType::T_INPUT_PARAMETER)) { - $this->match(TokenType::T_INPUT_PARAMETER); - assert($this->lexer->token !== null); - - return new AST\InputParameter($this->lexer->token->value); - } - - $abstractSchemaName = $this->AbstractSchemaName(); - - $this->validateAbstractSchemaName($abstractSchemaName); - - return $abstractSchemaName; - } - - /** - * LikeExpression ::= StringExpression ["NOT"] "LIKE" StringPrimary ["ESCAPE" char] - */ - public function LikeExpression(): AST\LikeExpression - { - $stringExpr = $this->StringExpression(); - $not = false; - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_LIKE); - - if ($this->lexer->isNextToken(TokenType::T_INPUT_PARAMETER)) { - $this->match(TokenType::T_INPUT_PARAMETER); - assert($this->lexer->token !== null); - $stringPattern = new AST\InputParameter($this->lexer->token->value); - } else { - $stringPattern = $this->StringPrimary(); - } - - $escapeChar = null; - - if ($this->lexer->lookahead !== null && $this->lexer->lookahead->type === TokenType::T_ESCAPE) { - $this->match(TokenType::T_ESCAPE); - $this->match(TokenType::T_STRING); - assert($this->lexer->token !== null); - - $escapeChar = new AST\Literal(AST\Literal::STRING, $this->lexer->token->value); - } - - return new AST\LikeExpression($stringExpr, $stringPattern, $escapeChar, $not); - } - - /** - * NullComparisonExpression ::= (InputParameter | NullIfExpression | CoalesceExpression | AggregateExpression | FunctionDeclaration | IdentificationVariable | SingleValuedPathExpression | ResultVariable) "IS" ["NOT"] "NULL" - */ - public function NullComparisonExpression(): AST\NullComparisonExpression - { - switch (true) { - case $this->lexer->isNextToken(TokenType::T_INPUT_PARAMETER): - $this->match(TokenType::T_INPUT_PARAMETER); - assert($this->lexer->token !== null); - - $expr = new AST\InputParameter($this->lexer->token->value); - break; - - case $this->lexer->isNextToken(TokenType::T_NULLIF): - $expr = $this->NullIfExpression(); - break; - - case $this->lexer->isNextToken(TokenType::T_COALESCE): - $expr = $this->CoalesceExpression(); - break; - - case $this->isFunction(): - $expr = $this->FunctionDeclaration(); - break; - - default: - // We need to check if we are in a IdentificationVariable or SingleValuedPathExpression - $glimpse = $this->lexer->glimpse(); - assert($glimpse !== null); - - if ($glimpse->type === TokenType::T_DOT) { - $expr = $this->SingleValuedPathExpression(); - - // Leave switch statement - break; - } - - assert($this->lexer->lookahead !== null); - $lookaheadValue = $this->lexer->lookahead->value; - - // Validate existing component - if (! isset($this->queryComponents[$lookaheadValue])) { - $this->semanticalError('Cannot add having condition on undefined result variable.'); - } - - // Validate SingleValuedPathExpression (ie.: "product") - if (isset($this->queryComponents[$lookaheadValue]['metadata'])) { - $expr = $this->SingleValuedPathExpression(); - break; - } - - // Validating ResultVariable - if (! isset($this->queryComponents[$lookaheadValue]['resultVariable'])) { - $this->semanticalError('Cannot add having condition on a non result variable.'); - } - - $expr = $this->ResultVariable(); - break; - } - - $this->match(TokenType::T_IS); - - $not = false; - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - - $not = true; - } - - $this->match(TokenType::T_NULL); - - return new AST\NullComparisonExpression($expr, $not); - } - - /** - * ExistsExpression ::= ["NOT"] "EXISTS" "(" Subselect ")" - */ - public function ExistsExpression(): AST\ExistsExpression - { - $not = false; - - if ($this->lexer->isNextToken(TokenType::T_NOT)) { - $this->match(TokenType::T_NOT); - $not = true; - } - - $this->match(TokenType::T_EXISTS); - $this->match(TokenType::T_OPEN_PARENTHESIS); - - $subselect = $this->Subselect(); - - $this->match(TokenType::T_CLOSE_PARENTHESIS); - - return new AST\ExistsExpression($subselect, $not); - } - - /** - * ComparisonOperator ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!=" - */ - public function ComparisonOperator(): string - { - assert($this->lexer->lookahead !== null); - switch ($this->lexer->lookahead->value) { - case '=': - $this->match(TokenType::T_EQUALS); - - return '='; - - case '<': - $this->match(TokenType::T_LOWER_THAN); - $operator = '<'; - - if ($this->lexer->isNextToken(TokenType::T_EQUALS)) { - $this->match(TokenType::T_EQUALS); - $operator .= '='; - } elseif ($this->lexer->isNextToken(TokenType::T_GREATER_THAN)) { - $this->match(TokenType::T_GREATER_THAN); - $operator .= '>'; - } - - return $operator; - - case '>': - $this->match(TokenType::T_GREATER_THAN); - $operator = '>'; - - if ($this->lexer->isNextToken(TokenType::T_EQUALS)) { - $this->match(TokenType::T_EQUALS); - $operator .= '='; - } - - return $operator; - - case '!': - $this->match(TokenType::T_NEGATE); - $this->match(TokenType::T_EQUALS); - - return '<>'; - - default: - $this->syntaxError('=, <, <=, <>, >, >=, !='); - } - } - - /** - * FunctionDeclaration ::= FunctionsReturningStrings | FunctionsReturningNumerics | FunctionsReturningDatetime - */ - public function FunctionDeclaration(): Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - $token = $this->lexer->lookahead; - $funcName = strtolower($token->value); - - $customFunctionDeclaration = $this->CustomFunctionDeclaration(); - - // Check for custom functions functions first! - switch (true) { - case $customFunctionDeclaration !== null: - return $customFunctionDeclaration; - - case isset(self::$stringFunctions[$funcName]): - return $this->FunctionsReturningStrings(); - - case isset(self::$numericFunctions[$funcName]): - return $this->FunctionsReturningNumerics(); - - case isset(self::$datetimeFunctions[$funcName]): - return $this->FunctionsReturningDatetime(); - - default: - $this->syntaxError('known function', $token); - } - } - - /** - * Helper function for FunctionDeclaration grammar rule. - */ - private function CustomFunctionDeclaration(): Functions\FunctionNode|null - { - assert($this->lexer->lookahead !== null); - $token = $this->lexer->lookahead; - $funcName = strtolower($token->value); - - // Check for custom functions afterwards - $config = $this->em->getConfiguration(); - - return match (true) { - $config->getCustomStringFunction($funcName) !== null => $this->CustomFunctionsReturningStrings(), - $config->getCustomNumericFunction($funcName) !== null => $this->CustomFunctionsReturningNumerics(), - $config->getCustomDatetimeFunction($funcName) !== null => $this->CustomFunctionsReturningDatetime(), - default => null, - }; - } - - /** - * FunctionsReturningNumerics ::= - * "LENGTH" "(" StringPrimary ")" | - * "LOCATE" "(" StringPrimary "," StringPrimary ["," SimpleArithmeticExpression]")" | - * "ABS" "(" SimpleArithmeticExpression ")" | - * "SQRT" "(" SimpleArithmeticExpression ")" | - * "MOD" "(" SimpleArithmeticExpression "," SimpleArithmeticExpression ")" | - * "SIZE" "(" CollectionValuedPathExpression ")" | - * "DATE_DIFF" "(" ArithmeticPrimary "," ArithmeticPrimary ")" | - * "BIT_AND" "(" ArithmeticPrimary "," ArithmeticPrimary ")" | - * "BIT_OR" "(" ArithmeticPrimary "," ArithmeticPrimary ")" - */ - public function FunctionsReturningNumerics(): AST\Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - $funcNameLower = strtolower($this->lexer->lookahead->value); - $funcClass = self::$numericFunctions[$funcNameLower]; - - $function = new $funcClass($funcNameLower); - $function->parse($this); - - return $function; - } - - public function CustomFunctionsReturningNumerics(): AST\Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - // getCustomNumericFunction is case-insensitive - $functionName = strtolower($this->lexer->lookahead->value); - $functionClass = $this->em->getConfiguration()->getCustomNumericFunction($functionName); - - assert($functionClass !== null); - - if (is_string($functionClass)) { - $function = new $functionClass($functionName); - assert($function instanceof AST\Functions\FunctionNode); - } else { - $function = $functionClass($functionName); - } - - $function->parse($this); - - return $function; - } - - /** - * FunctionsReturningDateTime ::= - * "CURRENT_DATE" | - * "CURRENT_TIME" | - * "CURRENT_TIMESTAMP" | - * "DATE_ADD" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")" | - * "DATE_SUB" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")" - */ - public function FunctionsReturningDatetime(): AST\Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - $funcNameLower = strtolower($this->lexer->lookahead->value); - $funcClass = self::$datetimeFunctions[$funcNameLower]; - - $function = new $funcClass($funcNameLower); - $function->parse($this); - - return $function; - } - - public function CustomFunctionsReturningDatetime(): AST\Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - // getCustomDatetimeFunction is case-insensitive - $functionName = $this->lexer->lookahead->value; - $functionClass = $this->em->getConfiguration()->getCustomDatetimeFunction($functionName); - - assert($functionClass !== null); - - $function = is_string($functionClass) - ? new $functionClass($functionName) - : $functionClass($functionName); - - $function->parse($this); - - return $function; - } - - /** - * FunctionsReturningStrings ::= - * "CONCAT" "(" StringPrimary "," StringPrimary {"," StringPrimary}* ")" | - * "SUBSTRING" "(" StringPrimary "," SimpleArithmeticExpression "," SimpleArithmeticExpression ")" | - * "TRIM" "(" [["LEADING" | "TRAILING" | "BOTH"] [char] "FROM"] StringPrimary ")" | - * "LOWER" "(" StringPrimary ")" | - * "UPPER" "(" StringPrimary ")" | - * "IDENTITY" "(" SingleValuedAssociationPathExpression {"," string} ")" - */ - public function FunctionsReturningStrings(): AST\Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - $funcNameLower = strtolower($this->lexer->lookahead->value); - $funcClass = self::$stringFunctions[$funcNameLower]; - - $function = new $funcClass($funcNameLower); - $function->parse($this); - - return $function; - } - - public function CustomFunctionsReturningStrings(): Functions\FunctionNode - { - assert($this->lexer->lookahead !== null); - // getCustomStringFunction is case-insensitive - $functionName = $this->lexer->lookahead->value; - $functionClass = $this->em->getConfiguration()->getCustomStringFunction($functionName); - - assert($functionClass !== null); - - $function = is_string($functionClass) - ? new $functionClass($functionName) - : $functionClass($functionName); - - $function->parse($this); - - return $function; - } - - private function getMetadataForDqlAlias(string $dqlAlias): ClassMetadata - { - if (! isset($this->queryComponents[$dqlAlias]['metadata'])) { - throw new LogicException(sprintf('No metadata for DQL alias: %s', $dqlAlias)); - } - - return $this->queryComponents[$dqlAlias]['metadata']; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/ParserResult.php b/projects/priceservice/vendor/doctrine/orm/src/Query/ParserResult.php deleted file mode 100644 index 34225e0..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/ParserResult.php +++ /dev/null @@ -1,147 +0,0 @@ -> - */ - private array $parameterMappings = []; - - /** - * Initializes a new instance of the ParserResult class. - * The new instance is initialized with an empty ResultSetMapping. - */ - public function __construct() - { - $this->resultSetMapping = new ResultSetMapping(); - } - - /** - * Gets the ResultSetMapping for the parsed query. - * - * @return ResultSetMapping The result set mapping of the parsed query - */ - public function getResultSetMapping(): ResultSetMapping - { - return $this->resultSetMapping; - } - - /** - * Sets the ResultSetMapping of the parsed query. - */ - public function setResultSetMapping(ResultSetMapping $rsm): void - { - $this->resultSetMapping = $rsm; - } - - /** - * Sets the SQL executor that should be used for this ParserResult. - * - * @deprecated - */ - public function setSqlExecutor(AbstractSqlExecutor $executor): void - { - $this->sqlExecutor = $executor; - } - - /** - * Gets the SQL executor used by this ParserResult. - * - * @deprecated - */ - public function getSqlExecutor(): AbstractSqlExecutor - { - if ($this->sqlExecutor === null) { - throw new LogicException(sprintf( - 'Executor not set yet. Call %s::setSqlExecutor() first.', - self::class, - )); - } - - return $this->sqlExecutor; - } - - public function setSqlFinalizer(SqlFinalizer $finalizer): void - { - $this->sqlFinalizer = $finalizer; - } - - public function prepareSqlExecutor(Query $query): AbstractSqlExecutor - { - if ($this->sqlFinalizer !== null) { - return $this->sqlFinalizer->createExecutor($query); - } - - if ($this->sqlExecutor !== null) { - return $this->sqlExecutor; - } - - throw new LogicException('This ParserResult lacks both the SqlFinalizer as well as the (legacy) SqlExecutor'); - } - - /** - * Adds a DQL to SQL parameter mapping. One DQL parameter name/position can map to - * several SQL parameter positions. - */ - public function addParameterMapping(string|int $dqlPosition, int $sqlPosition): void - { - $this->parameterMappings[$dqlPosition][] = $sqlPosition; - } - - /** - * Gets all DQL to SQL parameter mappings. - * - * @phpstan-return array> The parameter mappings. - */ - public function getParameterMappings(): array - { - return $this->parameterMappings; - } - - /** - * Gets the SQL parameter positions for a DQL parameter name/position. - * - * @param string|int $dqlPosition The name or position of the DQL parameter. - * - * @return int[] The positions of the corresponding SQL parameters. - * @phpstan-return list - */ - public function getSqlParameterPositions(string|int $dqlPosition): array - { - return $this->parameterMappings[$dqlPosition]; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/Printer.php b/projects/priceservice/vendor/doctrine/orm/src/Query/Printer.php deleted file mode 100644 index db1f159..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/Printer.php +++ /dev/null @@ -1,64 +0,0 @@ -println('(' . $name); - $this->indent++; - } - - /** - * Decreases indentation level by one and prints a closing parenthesis. - * - * This method is called after executing a production. - */ - public function endProduction(): void - { - $this->indent--; - $this->println(')'); - } - - /** - * Prints text indented with spaces depending on current indentation level. - * - * @param string $str The text. - */ - public function println(string $str): void - { - if (! $this->silent) { - echo str_repeat(' ', $this->indent), $str, "\n"; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/QueryException.php b/projects/priceservice/vendor/doctrine/orm/src/Query/QueryException.php deleted file mode 100644 index 4b8efae..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/QueryException.php +++ /dev/null @@ -1,164 +0,0 @@ - or ? expected.'); - } - - public static function unknownParameter(string $key): self - { - return new self('Invalid parameter: token ' . $key . ' is not defined in the query.'); - } - - public static function parameterTypeMismatch(): self - { - return new self('DQL Query parameter and type numbers mismatch, but have to be exactly equal.'); - } - - public static function invalidPathExpression(PathExpression $pathExpr): self - { - return new self( - "Invalid PathExpression '" . $pathExpr->identificationVariable . '.' . $pathExpr->field . "'.", - ); - } - - public static function invalidLiteral(string|Stringable $literal): self - { - return new self("Invalid literal '" . $literal . "'"); - } - - public static function iterateWithFetchJoinCollectionNotAllowed(AssociationMapping $assoc): self - { - return new self( - 'Invalid query operation: Not allowed to iterate over fetch join collections ' . - 'in class ' . $assoc->sourceEntity . ' association ' . $assoc->fieldName, - ); - } - - public static function partialObjectsAreDangerous(): self - { - return new self( - 'Loading partial objects is dangerous. Fetch full objects or consider ' . - 'using a different fetch mode. If you really want partial objects, ' . - 'set the doctrine.forcePartialLoad query hint to TRUE.', - ); - } - - /** - * @param string[] $assoc - * @phpstan-param array $assoc - */ - public static function overwritingJoinConditionsNotYetSupported(array $assoc): self - { - return new self( - 'Unsupported query operation: It is not yet possible to overwrite the join ' . - 'conditions in class ' . $assoc['sourceEntityName'] . ' association ' . $assoc['fieldName'] . '. ' . - 'Use WITH to append additional join conditions to the association.', - ); - } - - public static function associationPathInverseSideNotSupported(PathExpression $pathExpr): self - { - return new self( - 'A single-valued association path expression to an inverse side is not supported in DQL queries. ' . - 'Instead of "' . $pathExpr->identificationVariable . '.' . $pathExpr->field . '" use an explicit join.', - ); - } - - public static function iterateWithFetchJoinNotAllowed(AssociationMapping $assoc): self - { - return new self( - 'Iterate with fetch join in class ' . $assoc->sourceEntity . - ' using association ' . $assoc->fieldName . ' not allowed.', - ); - } - - public static function eagerFetchJoinWithNotAllowed(string $sourceEntity, string $fieldName): self - { - return new self( - 'Associations with fetch-mode=EAGER may not be using WITH conditions in - "' . $sourceEntity . '#' . $fieldName . '".', - ); - } - - public static function iterateWithMixedResultNotAllowed(): self - { - return new self('Iterating a query with mixed results (using scalars) is not supported.'); - } - - public static function associationPathCompositeKeyNotSupported(): self - { - return new self( - 'A single-valued association path expression to an entity with a composite primary ' . - 'key is not supported. Explicitly name the components of the composite primary key ' . - 'in the query.', - ); - } - - public static function instanceOfUnrelatedClass(string $className, string $rootClass): self - { - return new self("Cannot check if a child of '" . $rootClass . "' is instanceof '" . $className . "', " . - 'inheritance hierarchy does not exists between these two classes.'); - } - - public static function invalidQueryComponent(string $dqlAlias): self - { - return new self( - "Invalid query component given for DQL alias '" . $dqlAlias . "', " . - "requires 'metadata', 'parent', 'relation', 'map', 'nestingLevel' and 'token' keys.", - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/QueryExpressionVisitor.php b/projects/priceservice/vendor/doctrine/orm/src/Query/QueryExpressionVisitor.php deleted file mode 100644 index 3e0ec65..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/QueryExpressionVisitor.php +++ /dev/null @@ -1,180 +0,0 @@ - Expr\Comparison::GT, - Comparison::GTE => Expr\Comparison::GTE, - Comparison::LT => Expr\Comparison::LT, - Comparison::LTE => Expr\Comparison::LTE, - ]; - - private readonly Expr $expr; - - /** @var list */ - private array $parameters = []; - - /** @param mixed[] $queryAliases */ - public function __construct( - private readonly array $queryAliases, - ) { - $this->expr = new Expr(); - } - - /** - * Gets bound parameters. - * Filled after {@link dispach()}. - * - * @return ArrayCollection - */ - public function getParameters(): ArrayCollection - { - return new ArrayCollection($this->parameters); - } - - public function clearParameters(): void - { - $this->parameters = []; - } - - /** - * Converts Criteria expression to Query one based on static map. - */ - private static function convertComparisonOperator(string $criteriaOperator): string|null - { - return self::OPERATOR_MAP[$criteriaOperator] ?? null; - } - - public function walkCompositeExpression(CompositeExpression $expr): mixed - { - $expressionList = []; - - foreach ($expr->getExpressionList() as $child) { - $expressionList[] = $this->dispatch($child); - } - - return match ($expr->getType()) { - CompositeExpression::TYPE_AND => new Expr\Andx($expressionList), - CompositeExpression::TYPE_OR => new Expr\Orx($expressionList), - CompositeExpression::TYPE_NOT => $this->expr->not($expressionList[0]), - default => throw new RuntimeException('Unknown composite ' . $expr->getType()), - }; - } - - public function walkComparison(Comparison $comparison): mixed - { - if (! isset($this->queryAliases[0])) { - throw new QueryException('No aliases are set before invoking walkComparison().'); - } - - $field = $this->queryAliases[0] . '.' . $comparison->getField(); - - foreach ($this->queryAliases as $alias) { - if (str_starts_with($comparison->getField() . '.', $alias . '.')) { - $field = $comparison->getField(); - break; - } - } - - $parameterName = str_replace('.', '_', $comparison->getField()); - - foreach ($this->parameters as $parameter) { - if ($parameter->getName() === $parameterName) { - $parameterName .= '_' . count($this->parameters); - break; - } - } - - $parameter = new Parameter($parameterName, $this->walkValue($comparison->getValue())); - $placeholder = ':' . $parameterName; - - switch ($comparison->getOperator()) { - case Comparison::IN: - $this->parameters[] = $parameter; - - return $this->expr->in($field, $placeholder); - - case Comparison::NIN: - $this->parameters[] = $parameter; - - return $this->expr->notIn($field, $placeholder); - - case Comparison::EQ: - case Comparison::IS: - if ($this->walkValue($comparison->getValue()) === null) { - return $this->expr->isNull($field); - } - - $this->parameters[] = $parameter; - - return $this->expr->eq($field, $placeholder); - - case Comparison::NEQ: - if ($this->walkValue($comparison->getValue()) === null) { - return $this->expr->isNotNull($field); - } - - $this->parameters[] = $parameter; - - return $this->expr->neq($field, $placeholder); - - case Comparison::CONTAINS: - $parameter->setValue('%' . $parameter->getValue() . '%', $parameter->getType()); - $this->parameters[] = $parameter; - - return $this->expr->like($field, $placeholder); - - case Comparison::MEMBER_OF: - return $this->expr->isMemberOf($comparison->getField(), $comparison->getValue()->getValue()); - - case Comparison::STARTS_WITH: - $parameter->setValue($parameter->getValue() . '%', $parameter->getType()); - $this->parameters[] = $parameter; - - return $this->expr->like($field, $placeholder); - - case Comparison::ENDS_WITH: - $parameter->setValue('%' . $parameter->getValue(), $parameter->getType()); - $this->parameters[] = $parameter; - - return $this->expr->like($field, $placeholder); - - default: - $operator = self::convertComparisonOperator($comparison->getOperator()); - if ($operator) { - $this->parameters[] = $parameter; - - return new Expr\Comparison( - $field, - $operator, - $placeholder, - ); - } - - throw new RuntimeException('Unknown comparison operator: ' . $comparison->getOperator()); - } - } - - public function walkValue(Value $value): mixed - { - return $value->getValue(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMapping.php b/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMapping.php deleted file mode 100644 index 351d55e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMapping.php +++ /dev/null @@ -1,589 +0,0 @@ -Users should use the public methods. - * - * @todo Think about whether the number of lookup maps can be reduced. - */ -class ResultSetMapping -{ - /** - * Whether the result is mixed (contains scalar values together with field values). - * - * @ignore - */ - public bool $isMixed = false; - - /** - * Whether the result is a select statement. - * - * @ignore - */ - public bool $isSelect = true; - - /** - * Maps alias names to class names. - * - * @ignore - * @var array - */ - public array $aliasMap = []; - - /** - * Maps alias names to related association field names. - * - * @ignore - * @phpstan-var array - */ - public array $relationMap = []; - - /** - * Maps alias names to parent alias names. - * - * @ignore - * @phpstan-var array - */ - public array $parentAliasMap = []; - - /** - * Maps column names in the result set to field names for each class. - * - * @ignore - * @phpstan-var array - */ - public array $fieldMappings = []; - - /** - * Map field names for each class to alias - * - * @var array>> - */ - public array $columnAliasMappings = []; - - /** - * Maps column names in the result set to the alias/field name to use in the mapped result. - * - * @ignore - * @phpstan-var array - */ - public array $scalarMappings = []; - - /** - * Maps scalar columns to enums - * - * @ignore - * @phpstan-var array - */ - public $enumMappings = []; - - /** - * Maps column names in the result set to the alias/field type to use in the mapped result. - * - * @ignore - * @phpstan-var array - */ - public array $typeMappings = []; - - /** - * Maps entities in the result set to the alias name to use in the mapped result. - * - * @ignore - * @phpstan-var array - */ - public array $entityMappings = []; - - /** - * Maps column names of meta columns (foreign keys, discriminator columns, ...) to field names. - * - * @ignore - * @phpstan-var array - */ - public array $metaMappings = []; - - /** - * Maps column names in the result set to the alias they belong to. - * - * @ignore - * @phpstan-var array - */ - public array $columnOwnerMap = []; - - /** - * List of columns in the result set that are used as discriminator columns. - * - * @ignore - * @phpstan-var array - */ - public array $discriminatorColumns = []; - - /** - * Maps alias names to field names that should be used for indexing. - * - * @ignore - * @phpstan-var array - */ - public array $indexByMap = []; - - /** - * Map from column names to class names that declare the field the column is mapped to. - * - * @ignore - * @var array - */ - public array $declaringClasses = []; - - /** - * This is necessary to hydrate derivate foreign keys correctly. - * - * @phpstan-var array> - */ - public array $isIdentifierColumn = []; - - /** - * Maps column names in the result set to field names for each new object expression. - * - * @phpstan-var array> - */ - public array $newObjectMappings = []; - - /** - * Maps object Ids in the result set to classnames. - * - * @phpstan-var array - */ - public array $newObject = []; - - /** - * Maps last argument for new objects in order to initiate object construction - * - * @phpstan-var array - */ - public array $nestedNewObjectArguments = []; - - /** - * Maps metadata parameter names to the metadata attribute. - * - * @phpstan-var array - */ - public array $metadataParameterMapping = []; - - /** - * Contains query parameter names to be resolved as discriminator values - * - * @phpstan-var array - */ - public array $discriminatorParameters = []; - - /** - * Entities nested in Dto's - * - * @phpstan-var array> - */ - public array $nestedEntities = []; - - /** - * Adds an entity result to this ResultSetMapping. - * - * @param class-string $class The class name of the entity. - * @param string $alias The alias for the class. The alias must be unique among all entity - * results or joined entity results within this ResultSetMapping. - * @param string|null $resultAlias The result alias with which the entity result should be - * placed in the result structure. - * - * @return $this - * - * @todo Rename: addRootEntity - */ - public function addEntityResult(string $class, string $alias, string|null $resultAlias = null): static - { - $this->aliasMap[$alias] = $class; - $this->entityMappings[$alias] = $resultAlias; - - if ($resultAlias !== null) { - $this->isMixed = true; - } - - return $this; - } - - /** - * Sets a discriminator column for an entity result or joined entity result. - * The discriminator column will be used to determine the concrete class name to - * instantiate. - * - * @param string $alias The alias of the entity result or joined entity result the discriminator - * column should be used for. - * @param string $discrColumn The name of the discriminator column in the SQL result set. - * - * @return $this - * - * @todo Rename: addDiscriminatorColumn - */ - public function setDiscriminatorColumn(string $alias, string $discrColumn): static - { - $this->discriminatorColumns[$alias] = $discrColumn; - $this->columnOwnerMap[$discrColumn] = $alias; - - return $this; - } - - /** - * Sets a field to use for indexing an entity result or joined entity result. - * - * @param string $alias The alias of an entity result or joined entity result. - * @param string $fieldName The name of the field to use for indexing. - * - * @return $this - */ - public function addIndexBy(string $alias, string $fieldName): static - { - $found = false; - - foreach ([...$this->metaMappings, ...$this->fieldMappings] as $columnName => $columnFieldName) { - if (! ($columnFieldName === $fieldName && $this->columnOwnerMap[$columnName] === $alias)) { - continue; - } - - $this->addIndexByColumn($alias, $columnName); - $found = true; - - break; - } - - /* TODO: check if this exception can be put back, for now it's gone because of assumptions made by some ORM internals - if ( ! $found) { - $message = sprintf( - 'Cannot add index by for DQL alias %s and field %s without calling addFieldResult() for them before.', - $alias, - $fieldName - ); - - throw new \LogicException($message); - } - */ - - return $this; - } - - /** - * Sets to index by a scalar result column name. - * - * @return $this - */ - public function addIndexByScalar(string $resultColumnName): static - { - $this->indexByMap['scalars'] = $resultColumnName; - - return $this; - } - - /** - * Sets a column to use for indexing an entity or joined entity result by the given alias name. - * - * @return $this - */ - public function addIndexByColumn(string $alias, string $resultColumnName): static - { - $this->indexByMap[$alias] = $resultColumnName; - - return $this; - } - - /** - * Checks whether an entity result or joined entity result with a given alias has - * a field set for indexing. - * - * @todo Rename: isIndexed($alias) - */ - public function hasIndexBy(string $alias): bool - { - return isset($this->indexByMap[$alias]); - } - - /** - * Checks whether the column with the given name is mapped as a field result - * as part of an entity result or joined entity result. - * - * @param string $columnName The name of the column in the SQL result set. - * - * @todo Rename: isField - */ - public function isFieldResult(string $columnName): bool - { - return isset($this->fieldMappings[$columnName]); - } - - /** - * Adds a field to the result that belongs to an entity or joined entity. - * - * @param string $alias The alias of the root entity or joined entity to which the field belongs. - * @param string $columnName The name of the column in the SQL result set. - * @param string $fieldName The name of the field on the declaring class. - * @param class-string|null $declaringClass The name of the class that declares/owns the specified field. - * When $alias refers to a superclass in a mapped hierarchy but - * the field $fieldName is defined on a subclass, specify that here. - * If not specified, the field is assumed to belong to the class - * designated by $alias. - * - * @return $this - * - * @todo Rename: addField - */ - public function addFieldResult(string $alias, string $columnName, string $fieldName, string|null $declaringClass = null): static - { - // column name (in result set) => field name - $this->fieldMappings[$columnName] = $fieldName; - // column name => alias of owner - $this->columnOwnerMap[$columnName] = $alias; - // field name => class name of declaring class - $declaringClass = $declaringClass ?: $this->aliasMap[$alias]; - $this->declaringClasses[$columnName] = $declaringClass; - - $this->columnAliasMappings[$declaringClass][$alias][$fieldName] = $columnName; - - if (! $this->isMixed && $this->scalarMappings) { - $this->isMixed = true; - } - - return $this; - } - - public function hasColumnAliasByField(string $alias, string $fieldName): bool - { - $declaringClass = $this->aliasMap[$alias]; - - return isset($this->columnAliasMappings[$declaringClass][$alias][$fieldName]); - } - - public function getColumnAliasByField(string $alias, string $fieldName): string - { - $declaringClass = $this->aliasMap[$alias]; - - return $this->columnAliasMappings[$declaringClass][$alias][$fieldName]; - } - - /** - * Adds a joined entity result. - * - * @param class-string $class The class name of the joined entity. - * @param string $alias The unique alias to use for the joined entity. - * @param string $parentAlias The alias of the entity result that is the parent of this joined result. - * @param string $relation The association field that connects the parent entity result - * with the joined entity result. - * - * @return $this - * - * @todo Rename: addJoinedEntity - */ - public function addJoinedEntityResult(string $class, string $alias, string $parentAlias, string $relation): static - { - $this->aliasMap[$alias] = $class; - $this->parentAliasMap[$alias] = $parentAlias; - $this->relationMap[$alias] = $relation; - - return $this; - } - - /** - * Adds a scalar result mapping. - * - * @param string $columnName The name of the column in the SQL result set. - * @param string|int $alias The result alias with which the scalar result should be placed in the result structure. - * @param string $type The column type - * - * @return $this - * - * @todo Rename: addScalar - */ - public function addScalarResult(string $columnName, string|int $alias, string $type = 'string'): static - { - $this->scalarMappings[$columnName] = $alias; - $this->typeMappings[$columnName] = $type; - - if (! $this->isMixed && $this->fieldMappings) { - $this->isMixed = true; - } - - return $this; - } - - /** - * Adds a scalar result mapping. - * - * @param string $columnName The name of the column in the SQL result set. - * @param string $enumType The enum type - * - * @return $this - */ - public function addEnumResult(string $columnName, string $enumType): static - { - $this->enumMappings[$columnName] = $enumType; - - return $this; - } - - /** - * Adds a metadata parameter mappings. - */ - public function addMetadataParameterMapping(string|int $parameter, string $attribute): void - { - $this->metadataParameterMapping[$parameter] = $attribute; - } - - /** - * Checks whether a column with a given name is mapped as a scalar result. - * - * @todo Rename: isScalar - */ - public function isScalarResult(string $columnName): bool - { - return isset($this->scalarMappings[$columnName]); - } - - /** - * Gets the name of the class of an entity result or joined entity result, - * identified by the given unique alias. - * - * @phpstan-return class-string - */ - public function getClassName(string $alias): string - { - return $this->aliasMap[$alias]; - } - - /** - * Gets the field alias for a column that is mapped as a scalar value. - * - * @param string $columnName The name of the column in the SQL result set. - */ - public function getScalarAlias(string $columnName): string|int - { - return $this->scalarMappings[$columnName]; - } - - /** - * Gets the name of the class that owns a field mapping for the specified column. - * - * @phpstan-return class-string - */ - public function getDeclaringClass(string $columnName): string - { - return $this->declaringClasses[$columnName]; - } - - public function getRelation(string $alias): string - { - return $this->relationMap[$alias]; - } - - public function isRelation(string $alias): bool - { - return isset($this->relationMap[$alias]); - } - - /** - * Gets the alias of the class that owns a field mapping for the specified column. - */ - public function getEntityAlias(string $columnName): string - { - return $this->columnOwnerMap[$columnName]; - } - - /** - * Gets the parent alias of the given alias. - */ - public function getParentAlias(string $alias): string - { - return $this->parentAliasMap[$alias]; - } - - /** - * Checks whether the given alias has a parent alias. - */ - public function hasParentAlias(string $alias): bool - { - return isset($this->parentAliasMap[$alias]); - } - - /** - * Gets the field name for a column name. - */ - public function getFieldName(string $columnName): string - { - return $this->fieldMappings[$columnName]; - } - - /** @return array */ - public function getAliasMap(): array - { - return $this->aliasMap; - } - - /** - * Gets the number of different entities that appear in the mapped result. - * - * @phpstan-return 0|positive-int - */ - public function getEntityResultCount(): int - { - return count($this->aliasMap); - } - - /** - * Checks whether this ResultSetMapping defines a mixed result. - * - * Mixed results can only occur in object and array (graph) hydration. In such a - * case a mixed result means that scalar values are mixed with objects/array in - * the result. - */ - public function isMixedResult(): bool - { - return $this->isMixed; - } - - /** - * Adds a meta column (foreign key or discriminator column) to the result set. - * - * @param string $alias The result alias with which the meta result should be placed in the result structure. - * @param string $columnName The name of the column in the SQL result set. - * @param string $fieldName The name of the field on the declaring class. - * @param string|null $type The column type - * - * @return $this - * - * @todo Make all methods of this class require all parameters and not infer anything - */ - public function addMetaResult( - string $alias, - string $columnName, - string $fieldName, - bool $isIdentifierColumn = false, - string|null $type = null, - ): static { - $this->metaMappings[$columnName] = $fieldName; - $this->columnOwnerMap[$columnName] = $alias; - - if ($isIdentifierColumn) { - $this->isIdentifierColumn[$alias][$columnName] = true; - } - - if ($type) { - $this->typeMappings[$columnName] = $type; - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMappingBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMappingBuilder.php deleted file mode 100644 index 726564a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/ResultSetMappingBuilder.php +++ /dev/null @@ -1,276 +0,0 @@ - $renamedColumns Columns that have been renamed (tableColumnName => queryColumnName). - * @phpstan-param self::COLUMN_RENAMING_*|null $renameMode - */ - public function addRootEntityFromClassMetadata( - string $class, - string $alias, - array $renamedColumns = [], - int|null $renameMode = null, - ): void { - $renameMode = $renameMode ?: $this->defaultRenameMode; - $columnAliasMap = $this->getColumnAliasMap($class, $renameMode, $renamedColumns); - - $this->addEntityResult($class, $alias); - $this->addAllClassFields($class, $alias, $columnAliasMap); - } - - /** - * Adds a joined entity and all of its fields to the result set. - * - * @param class-string $class The class name of the joined entity. - * @param string $alias The unique alias to use for the joined entity. - * @param string $parentAlias The alias of the entity result that is the parent of this joined result. - * @param string $relation The association field that connects the parent entity result - * with the joined entity result. - * @param array $renamedColumns Columns that have been renamed (tableColumnName => queryColumnName). - * @phpstan-param self::COLUMN_RENAMING_*|null $renameMode - */ - public function addJoinedEntityFromClassMetadata( - string $class, - string $alias, - string $parentAlias, - string $relation, - array $renamedColumns = [], - int|null $renameMode = null, - ): void { - $renameMode = $renameMode ?: $this->defaultRenameMode; - $columnAliasMap = $this->getColumnAliasMap($class, $renameMode, $renamedColumns); - - $this->addJoinedEntityResult($class, $alias, $parentAlias, $relation); - $this->addAllClassFields($class, $alias, $columnAliasMap); - } - - /** - * Adds all fields of the given class to the result set mapping (columns and meta fields). - * - * @param string[] $columnAliasMap - * @phpstan-param array $columnAliasMap - * - * @throws InvalidArgumentException - */ - protected function addAllClassFields(string $class, string $alias, array $columnAliasMap = []): void - { - $classMetadata = $this->em->getClassMetadata($class); - $platform = $this->em->getConnection()->getDatabasePlatform(); - - if (! $this->isInheritanceSupported($classMetadata)) { - throw new InvalidArgumentException('ResultSetMapping builder does not currently support your inheritance scheme.'); - } - - foreach ($classMetadata->getColumnNames() as $columnName) { - $propertyName = $classMetadata->getFieldName($columnName); - $columnAlias = $this->getSQLResultCasing($platform, $columnAliasMap[$columnName]); - - if (isset($this->fieldMappings[$columnAlias])) { - throw new InvalidArgumentException(sprintf( - "The column '%s' conflicts with another column in the mapper.", - $columnName, - )); - } - - $this->addFieldResult($alias, $columnAlias, $propertyName); - - $enumType = $classMetadata->getFieldMapping($propertyName)->enumType ?? null; - if (! empty($enumType)) { - $this->addEnumResult($columnAlias, $enumType); - } - } - - foreach ($classMetadata->associationMappings as $associationMapping) { - if ($associationMapping->isToOneOwningSide()) { - $targetClass = $this->em->getClassMetadata($associationMapping->targetEntity); - $isIdentifier = isset($associationMapping->id) && $associationMapping->id === true; - - foreach ($associationMapping->joinColumns as $joinColumn) { - $columnName = $joinColumn->name; - $columnAlias = $this->getSQLResultCasing($platform, $columnAliasMap[$columnName]); - $columnType = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - - if (isset($this->metaMappings[$columnAlias])) { - throw new InvalidArgumentException(sprintf( - "The column '%s' conflicts with another column in the mapper.", - $columnAlias, - )); - } - - $this->addMetaResult($alias, $columnAlias, $columnName, $isIdentifier, $columnType); - } - } - } - } - - private function isInheritanceSupported(ClassMetadata $classMetadata): bool - { - if ( - $classMetadata->isInheritanceTypeSingleTable() - && in_array($classMetadata->name, $classMetadata->discriminatorMap, true) - ) { - return true; - } - - return ! ($classMetadata->isInheritanceTypeSingleTable() || $classMetadata->isInheritanceTypeJoined()); - } - - /** - * Gets column alias for a given column. - * - * @phpstan-param array $customRenameColumns - * - * @phpstan-assert self::COLUMN_RENAMING_* $mode - */ - private function getColumnAlias(string $columnName, int $mode, array $customRenameColumns): string - { - return match ($mode) { - self::COLUMN_RENAMING_INCREMENT => $columnName . $this->sqlCounter++, - self::COLUMN_RENAMING_CUSTOM => $customRenameColumns[$columnName] ?? $columnName, - self::COLUMN_RENAMING_NONE => $columnName, - default => throw new InvalidArgumentException(sprintf('%d is not a valid value for $mode', $mode)), - }; - } - - /** - * Retrieves a class columns and join columns aliases that are used in the SELECT clause. - * - * This depends on the renaming mode selected by the user. - * - * @param class-string $className - * @phpstan-param self::COLUMN_RENAMING_* $mode - * @phpstan-param array $customRenameColumns - * - * @return string[] - */ - private function getColumnAliasMap( - string $className, - int $mode, - array $customRenameColumns, - ): array { - if ($customRenameColumns) { // for BC with 2.2-2.3 API - $mode = self::COLUMN_RENAMING_CUSTOM; - } - - $columnAlias = []; - $class = $this->em->getClassMetadata($className); - - foreach ($class->getColumnNames() as $columnName) { - $columnAlias[$columnName] = $this->getColumnAlias($columnName, $mode, $customRenameColumns); - } - - foreach ($class->associationMappings as $associationMapping) { - if ($associationMapping->isToOneOwningSide()) { - foreach ($associationMapping->joinColumns as $joinColumn) { - $columnName = $joinColumn->name; - $columnAlias[$columnName] = $this->getColumnAlias($columnName, $mode, $customRenameColumns); - } - } - } - - return $columnAlias; - } - - /** - * Generates the Select clause from this ResultSetMappingBuilder. - * - * Works only for all the entity results. The select parts for scalar - * expressions have to be written manually. - * - * @param string[] $tableAliases - * @phpstan-param array $tableAliases - */ - public function generateSelectClause(array $tableAliases = []): string - { - $sql = ''; - - foreach ($this->columnOwnerMap as $columnName => $dqlAlias) { - $tableAlias = $tableAliases[$dqlAlias] ?? $dqlAlias; - - if ($sql !== '') { - $sql .= ', '; - } - - if (isset($this->fieldMappings[$columnName])) { - $class = $this->em->getClassMetadata($this->declaringClasses[$columnName]); - $fieldName = $this->fieldMappings[$columnName]; - $classFieldMapping = $class->fieldMappings[$fieldName]; - $columnSql = $tableAlias . '.' . $classFieldMapping->columnName; - - $type = Type::getType($classFieldMapping->type); - $columnSql = $type->convertToPHPValueSQL($columnSql, $this->em->getConnection()->getDatabasePlatform()); - - $sql .= $columnSql; - } elseif (isset($this->metaMappings[$columnName])) { - $sql .= $tableAlias . '.' . $this->metaMappings[$columnName]; - } elseif (isset($this->discriminatorColumns[$dqlAlias])) { - $sql .= $tableAlias . '.' . $this->discriminatorColumns[$dqlAlias]; - } - - $sql .= ' AS ' . $columnName; - } - - return $sql; - } - - public function __toString(): string - { - return $this->generateSelectClause([]); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/SqlOutputWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Query/SqlOutputWalker.php deleted file mode 100644 index 96cf347..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/SqlOutputWalker.php +++ /dev/null @@ -1,29 +0,0 @@ -createSqlForFinalizer($AST)); - - case $AST instanceof AST\UpdateStatement: - return new PreparedExecutorFinalizer($this->createUpdateStatementExecutor($AST)); - - case $AST instanceof AST\DeleteStatement: - return new PreparedExecutorFinalizer($this->createDeleteStatementExecutor($AST)); - } - - throw new LogicException('Unexpected AST node type'); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/SqlWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Query/SqlWalker.php deleted file mode 100644 index a943deb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/SqlWalker.php +++ /dev/null @@ -1,2330 +0,0 @@ -> - */ - private array $scalarResultAliasMap = []; - - /** - * Map from Table-Alias + Column-Name to OrderBy-Direction. - * - * @var array - */ - private array $orderedColumnsMap = []; - - /** - * Map from DQL-Alias + Field-Name to SQL Column Alias. - * - * @var array> - */ - private array $scalarFields = []; - - /** - * A list of classes that appear in non-scalar SelectExpressions. - * - * @phpstan-var array - */ - private array $selectedClasses = []; - - /** - * The DQL alias of the root class of the currently traversed query. - * - * @phpstan-var list - */ - private array $rootAliases = []; - - /** - * Flag that indicates whether to generate SQL table aliases in the SQL. - * These should only be generated for SELECT queries, not for UPDATE/DELETE. - */ - private bool $useSqlTableAliases = true; - - /** - * The database platform abstraction. - */ - private readonly AbstractPlatform $platform; - - /** - * The quote strategy. - */ - private readonly QuoteStrategy $quoteStrategy; - - /** @phpstan-param array $queryComponents The query components (symbol table). */ - public function __construct( - private readonly Query $query, - private readonly ParserResult $parserResult, - private array $queryComponents, - ) { - $this->rsm = $parserResult->getResultSetMapping(); - $this->em = $query->getEntityManager(); - $this->conn = $this->em->getConnection(); - $this->platform = $this->conn->getDatabasePlatform(); - $this->quoteStrategy = $this->em->getConfiguration()->getQuoteStrategy(); - } - - /** - * Gets the Query instance used by the walker. - */ - public function getQuery(): Query - { - return $this->query; - } - - /** - * Gets the Connection used by the walker. - */ - public function getConnection(): Connection - { - return $this->conn; - } - - /** - * Gets the EntityManager used by the walker. - */ - public function getEntityManager(): EntityManagerInterface - { - return $this->em; - } - - /** - * Gets the information about a single query component. - * - * @param string $dqlAlias The DQL alias. - * - * @return mixed[] - * @phpstan-return QueryComponent - */ - public function getQueryComponent(string $dqlAlias): array - { - return $this->queryComponents[$dqlAlias]; - } - - public function getMetadataForDqlAlias(string $dqlAlias): ClassMetadata - { - return $this->queryComponents[$dqlAlias]['metadata'] - ?? throw new LogicException(sprintf('No metadata for DQL alias: %s', $dqlAlias)); - } - - /** - * Returns internal queryComponents array. - * - * @return array - */ - public function getQueryComponents(): array - { - return $this->queryComponents; - } - - /** - * Sets or overrides a query component for a given dql alias. - * - * @phpstan-param QueryComponent $queryComponent - */ - public function setQueryComponent(string $dqlAlias, array $queryComponent): void - { - $requiredKeys = ['metadata', 'parent', 'relation', 'map', 'nestingLevel', 'token']; - - if (array_diff($requiredKeys, array_keys($queryComponent))) { - throw QueryException::invalidQueryComponent($dqlAlias); - } - - $this->queryComponents[$dqlAlias] = $queryComponent; - } - - /** - * Gets an executor that can be used to execute the result of this walker. - * - * @deprecated Output walkers should no longer create the executor directly, but instead provide - * a SqlFinalizer by implementing the `OutputWalker` interface. Thus, this method is - * no longer needed and will be removed in 4.0. - */ - public function getExecutor(AST\SelectStatement|AST\UpdateStatement|AST\DeleteStatement $statement): Exec\AbstractSqlExecutor - { - return match (true) { - $statement instanceof AST\UpdateStatement => $this->createUpdateStatementExecutor($statement), - $statement instanceof AST\DeleteStatement => $this->createDeleteStatementExecutor($statement), - default => new Exec\SingleSelectExecutor($statement, $this), - }; - } - - protected function createUpdateStatementExecutor(AST\UpdateStatement $AST): Exec\AbstractSqlExecutor - { - $primaryClass = $this->em->getClassMetadata($AST->updateClause->abstractSchemaName); - - return $primaryClass->isInheritanceTypeJoined() - ? new Exec\MultiTableUpdateExecutor($AST, $this) - : new Exec\SingleTableDeleteUpdateExecutor($AST, $this); - } - - protected function createDeleteStatementExecutor(AST\DeleteStatement $AST): Exec\AbstractSqlExecutor - { - $primaryClass = $this->em->getClassMetadata($AST->deleteClause->abstractSchemaName); - - return $primaryClass->isInheritanceTypeJoined() - ? new Exec\MultiTableDeleteExecutor($AST, $this) - : new Exec\SingleTableDeleteUpdateExecutor($AST, $this); - } - - /** - * Generates a unique, short SQL table alias. - */ - public function getSQLTableAlias(string $tableName, string $dqlAlias = ''): string - { - $tableName .= $dqlAlias ? '@[' . $dqlAlias . ']' : ''; - - if (! isset($this->tableAliasMap[$tableName])) { - $this->tableAliasMap[$tableName] = (preg_match('/[a-z]/i', $tableName[0]) ? strtolower($tableName[0]) : 't') - . $this->tableAliasCounter++ . '_'; - } - - return $this->tableAliasMap[$tableName]; - } - - /** - * Forces the SqlWalker to use a specific alias for a table name, rather than - * generating an alias on its own. - */ - public function setSQLTableAlias(string $tableName, string $alias, string $dqlAlias = ''): string - { - $tableName .= $dqlAlias ? '@[' . $dqlAlias . ']' : ''; - - $this->tableAliasMap[$tableName] = $alias; - - return $alias; - } - - /** - * Gets an SQL column alias for a column name. - */ - public function getSQLColumnAlias(string $columnName): string - { - return $this->quoteStrategy->getColumnAlias($columnName, $this->aliasCounter++, $this->platform); - } - - /** - * Generates the SQL JOINs that are necessary for Class Table Inheritance - * for the given class. - */ - private function generateClassTableInheritanceJoins( - ClassMetadata $class, - string $dqlAlias, - ): string { - $sql = ''; - - $baseTableAlias = $this->getSQLTableAlias($class->getTableName(), $dqlAlias); - - // INNER JOIN parent class tables - foreach ($class->parentClasses as $parentClassName) { - $parentClass = $this->em->getClassMetadata($parentClassName); - $tableAlias = $this->getSQLTableAlias($parentClass->getTableName(), $dqlAlias); - - // If this is a joined association we must use left joins to preserve the correct result. - $sql .= isset($this->queryComponents[$dqlAlias]['relation']) ? ' LEFT ' : ' INNER '; - $sql .= 'JOIN ' . $this->quoteStrategy->getTableName($parentClass, $this->platform) . ' ' . $tableAlias . ' ON '; - - $sqlParts = []; - - foreach ($this->quoteStrategy->getIdentifierColumnNames($class, $this->platform) as $columnName) { - $sqlParts[] = $baseTableAlias . '.' . $columnName . ' = ' . $tableAlias . '.' . $columnName; - } - - // Add filters on the root class - $sqlParts[] = $this->generateFilterConditionSQL($parentClass, $tableAlias); - - $sql .= implode(' AND ', array_filter($sqlParts)); - } - - // Ignore subclassing inclusion if partial objects is disallowed - if ($this->query->getHint(Query::HINT_FORCE_PARTIAL_LOAD)) { - return $sql; - } - - // LEFT JOIN child class tables - foreach ($class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - $tableAlias = $this->getSQLTableAlias($subClass->getTableName(), $dqlAlias); - - $sql .= ' LEFT JOIN ' . $this->quoteStrategy->getTableName($subClass, $this->platform) . ' ' . $tableAlias . ' ON '; - - $sqlParts = []; - - foreach ($this->quoteStrategy->getIdentifierColumnNames($subClass, $this->platform) as $columnName) { - $sqlParts[] = $baseTableAlias . '.' . $columnName . ' = ' . $tableAlias . '.' . $columnName; - } - - $sql .= implode(' AND ', $sqlParts); - } - - return $sql; - } - - private function generateOrderedCollectionOrderByItems(): string - { - $orderedColumns = []; - - foreach ($this->selectedClasses as $selectedClass) { - $dqlAlias = $selectedClass['dqlAlias']; - $qComp = $this->queryComponents[$dqlAlias]; - - if (! isset($qComp['relation']->orderBy)) { - continue; - } - - assert(isset($qComp['metadata'])); - $persister = $this->em->getUnitOfWork()->getEntityPersister($qComp['metadata']->name); - - foreach ($qComp['relation']->orderBy as $fieldName => $orientation) { - $columnName = $this->quoteStrategy->getColumnName($fieldName, $qComp['metadata'], $this->platform); - $tableName = $qComp['metadata']->isInheritanceTypeJoined() - ? $persister->getOwningTable($fieldName) - : $qComp['metadata']->getTableName(); - - $orderedColumn = $this->getSQLTableAlias($tableName, $dqlAlias) . '.' . $columnName; - - // OrderByClause should replace an ordered relation. see - DDC-2475 - if (isset($this->orderedColumnsMap[$orderedColumn])) { - continue; - } - - $this->orderedColumnsMap[$orderedColumn] = $orientation; - $orderedColumns[] = $orderedColumn . ' ' . $orientation; - } - } - - return implode(', ', $orderedColumns); - } - - /** - * Generates a discriminator column SQL condition for the class with the given DQL alias. - * - * @phpstan-param list $dqlAliases List of root DQL aliases to inspect for discriminator restrictions. - */ - private function generateDiscriminatorColumnConditionSQL(array $dqlAliases): string - { - $sqlParts = []; - - foreach ($dqlAliases as $dqlAlias) { - $class = $this->getMetadataForDqlAlias($dqlAlias); - - if (! $class->isInheritanceTypeSingleTable()) { - continue; - } - - $sqlTableAlias = $this->useSqlTableAliases - ? $this->getSQLTableAlias($class->getTableName(), $dqlAlias) . '.' - : ''; - - $conn = $this->em->getConnection(); - $values = []; - - if ($class->discriminatorValue !== null) { // discriminators can be 0 - $values[] = $class->getDiscriminatorColumn()->type === 'integer' && is_int($class->discriminatorValue) - ? $class->discriminatorValue - : $conn->quote((string) $class->discriminatorValue); - } - - foreach ($class->subClasses as $subclassName) { - $subclassMetadata = $this->em->getClassMetadata($subclassName); - - // Abstract entity classes show up in the list of subClasses, but may be omitted - // from the discriminator map. In that case, they have a null discriminator value. - if ($subclassMetadata->discriminatorValue === null) { - continue; - } - - $values[] = $subclassMetadata->getDiscriminatorColumn()->type === 'integer' && is_int($subclassMetadata->discriminatorValue) - ? $subclassMetadata->discriminatorValue - : $conn->quote((string) $subclassMetadata->discriminatorValue); - } - - if ($values !== []) { - $sqlParts[] = $sqlTableAlias . $class->getDiscriminatorColumn()->name . ' IN (' . implode(', ', $values) . ')'; - } else { - $sqlParts[] = '1=0'; // impossible condition - } - } - - $sql = implode(' AND ', $sqlParts); - - return count($sqlParts) > 1 ? '(' . $sql . ')' : $sql; - } - - /** - * Generates the filter SQL for a given entity and table alias. - */ - private function generateFilterConditionSQL( - ClassMetadata $targetEntity, - string $targetTableAlias, - ): string { - if (! $this->em->hasFilters()) { - return ''; - } - - switch ($targetEntity->inheritanceType) { - case ClassMetadata::INHERITANCE_TYPE_NONE: - break; - case ClassMetadata::INHERITANCE_TYPE_JOINED: - // The classes in the inheritance will be added to the query one by one, - // but only the root node is getting filtered - if ($targetEntity->name !== $targetEntity->rootEntityName) { - return ''; - } - - break; - case ClassMetadata::INHERITANCE_TYPE_SINGLE_TABLE: - // With STI the table will only be queried once, make sure that the filters - // are added to the root entity - $targetEntity = $this->em->getClassMetadata($targetEntity->rootEntityName); - break; - default: - //@todo: throw exception? - return ''; - } - - $filterClauses = []; - foreach ($this->em->getFilters()->getEnabledFilters() as $filter) { - $filterExpr = $filter->addFilterConstraint($targetEntity, $targetTableAlias); - if ($filterExpr !== '') { - $filterClauses[] = '(' . $filterExpr . ')'; - } - } - - return implode(' AND ', $filterClauses); - } - - /** - * Walks down a SelectStatement AST node, thereby generating the appropriate SQL. - */ - public function walkSelectStatement(AST\SelectStatement $selectStatement): string - { - $sql = $this->createSqlForFinalizer($selectStatement); - $finalizer = new Exec\SingleSelectSqlFinalizer($sql); - - return $finalizer->finalizeSql($this->query); - } - - protected function createSqlForFinalizer(AST\SelectStatement $selectStatement): string - { - $sql = $this->walkSelectClause($selectStatement->selectClause) - . $this->walkFromClause($selectStatement->fromClause) - . $this->walkWhereClause($selectStatement->whereClause); - - if ($selectStatement->groupByClause) { - $sql .= $this->walkGroupByClause($selectStatement->groupByClause); - } - - if ($selectStatement->havingClause) { - $sql .= $this->walkHavingClause($selectStatement->havingClause); - } - - if ($selectStatement->orderByClause) { - $sql .= $this->walkOrderByClause($selectStatement->orderByClause); - } - - $orderBySql = $this->generateOrderedCollectionOrderByItems(); - if (! $selectStatement->orderByClause && $orderBySql) { - $sql .= ' ORDER BY ' . $orderBySql; - } - - $this->assertOptimisticLockingHasAllClassesVersioned(); - - return $sql; - } - - private function assertOptimisticLockingHasAllClassesVersioned(): void - { - $lockMode = $this->query->getHint(Query::HINT_LOCK_MODE) ?: LockMode::NONE; - - if ($lockMode === LockMode::OPTIMISTIC) { - foreach ($this->selectedClasses as $selectedClass) { - if (! $selectedClass['class']->isVersioned) { - throw OptimisticLockException::lockFailed($selectedClass['class']->name); - } - } - } - } - - /** - * Walks down a UpdateStatement AST node, thereby generating the appropriate SQL. - */ - public function walkUpdateStatement(AST\UpdateStatement $updateStatement): string - { - $this->useSqlTableAliases = false; - $this->rsm->isSelect = false; - - return $this->walkUpdateClause($updateStatement->updateClause) - . $this->walkWhereClause($updateStatement->whereClause); - } - - /** - * Walks down a DeleteStatement AST node, thereby generating the appropriate SQL. - */ - public function walkDeleteStatement(AST\DeleteStatement $deleteStatement): string - { - $this->useSqlTableAliases = false; - $this->rsm->isSelect = false; - - return $this->walkDeleteClause($deleteStatement->deleteClause) - . $this->walkWhereClause($deleteStatement->whereClause); - } - - /** - * Walks down an IdentificationVariable AST node, thereby generating the appropriate SQL. - * This one differs of ->walkIdentificationVariable() because it generates the entity identifiers. - */ - public function walkEntityIdentificationVariable(string $identVariable): string - { - $class = $this->getMetadataForDqlAlias($identVariable); - $tableAlias = $this->getSQLTableAlias($class->getTableName(), $identVariable); - $sqlParts = []; - - foreach ($this->quoteStrategy->getIdentifierColumnNames($class, $this->platform) as $columnName) { - $sqlParts[] = $tableAlias . '.' . $columnName; - } - - return implode(', ', $sqlParts); - } - - /** - * Walks down an EntityAsDtoArgumentExpression AST node, thereby generating the appropriate SQL. - */ - public function walkEntityAsDtoArgumentExpression(AST\EntityAsDtoArgumentExpression $expr): string - { - return implode(', ', $this->walkObjectExpression($expr->expression, [], $expr->identificationVariable ?: null)); - } - - /** - * Walks down an IdentificationVariable (no AST node associated), thereby generating the SQL. - */ - public function walkIdentificationVariable(string $identificationVariable, string|null $fieldName = null): string - { - $class = $this->getMetadataForDqlAlias($identificationVariable); - - if ( - $fieldName !== null && $class->isInheritanceTypeJoined() && - isset($class->fieldMappings[$fieldName]->inherited) - ) { - $class = $this->em->getClassMetadata($class->fieldMappings[$fieldName]->inherited); - } - - return $this->getSQLTableAlias($class->getTableName(), $identificationVariable); - } - - /** - * Walks down a PathExpression AST node, thereby generating the appropriate SQL. - */ - public function walkPathExpression(AST\PathExpression $pathExpr): string - { - $sql = ''; - assert($pathExpr->field !== null); - - switch ($pathExpr->type) { - case AST\PathExpression::TYPE_STATE_FIELD: - $fieldName = $pathExpr->field; - $dqlAlias = $pathExpr->identificationVariable; - $class = $this->getMetadataForDqlAlias($dqlAlias); - - if ($this->useSqlTableAliases) { - $sql .= $this->walkIdentificationVariable($dqlAlias, $fieldName) . '.'; - } - - $sql .= $this->quoteStrategy->getColumnName($fieldName, $class, $this->platform); - break; - - case AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION: - // 1- the owning side: - // Just use the foreign key, i.e. u.group_id - $fieldName = $pathExpr->field; - $dqlAlias = $pathExpr->identificationVariable; - $class = $this->getMetadataForDqlAlias($dqlAlias); - - if (isset($class->associationMappings[$fieldName]->inherited)) { - $class = $this->em->getClassMetadata($class->associationMappings[$fieldName]->inherited); - } - - $assoc = $class->associationMappings[$fieldName]; - - if (! $assoc->isOwningSide()) { - throw QueryException::associationPathInverseSideNotSupported($pathExpr); - } - - assert($assoc->isToOneOwningSide()); - - // COMPOSITE KEYS NOT (YET?) SUPPORTED - if (count($assoc->sourceToTargetKeyColumns) > 1) { - throw QueryException::associationPathCompositeKeyNotSupported(); - } - - if ($this->useSqlTableAliases) { - $sql .= $this->getSQLTableAlias($class->getTableName(), $dqlAlias) . '.'; - } - - $sql .= reset($assoc->targetToSourceKeyColumns); - break; - - default: - throw QueryException::invalidPathExpression($pathExpr); - } - - return $sql; - } - - /** - * Walks down a SelectClause AST node, thereby generating the appropriate SQL. - */ - public function walkSelectClause(AST\SelectClause $selectClause): string - { - $sql = 'SELECT ' . ($selectClause->isDistinct ? 'DISTINCT ' : ''); - $sqlSelectExpressions = array_filter(array_map($this->walkSelectExpression(...), $selectClause->selectExpressions)); - - if ($this->query->getHint(Query::HINT_INTERNAL_ITERATION) === true && $selectClause->isDistinct) { - $this->query->setHint(self::HINT_DISTINCT, true); - } - - $addMetaColumns = ! $this->query->getHint(Query::HINT_FORCE_PARTIAL_LOAD) && - $this->query->getHydrationMode() === Query::HYDRATE_OBJECT - || $this->query->getHint(Query::HINT_INCLUDE_META_COLUMNS); - - foreach ($this->selectedClasses as $selectedClass) { - $class = $selectedClass['class']; - $dqlAlias = $selectedClass['dqlAlias']; - $resultAlias = $selectedClass['resultAlias']; - - // Register as entity or joined entity result - if (! isset($this->queryComponents[$dqlAlias]['relation'])) { - $this->rsm->addEntityResult($class->name, $dqlAlias, $resultAlias); - } else { - assert(isset($this->queryComponents[$dqlAlias]['parent'])); - - $this->rsm->addJoinedEntityResult( - $class->name, - $dqlAlias, - $this->queryComponents[$dqlAlias]['parent'], - $this->queryComponents[$dqlAlias]['relation']->fieldName, - ); - } - - if ($class->isInheritanceTypeSingleTable() || $class->isInheritanceTypeJoined()) { - // Add discriminator columns to SQL - $rootClass = $this->em->getClassMetadata($class->rootEntityName); - $tblAlias = $this->getSQLTableAlias($rootClass->getTableName(), $dqlAlias); - $discrColumn = $rootClass->getDiscriminatorColumn(); - $columnAlias = $this->getSQLColumnAlias($discrColumn->name); - - $sqlSelectExpressions[] = $tblAlias . '.' . $discrColumn->name . ' AS ' . $columnAlias; - - $this->rsm->setDiscriminatorColumn($dqlAlias, $columnAlias); - $this->rsm->addMetaResult($dqlAlias, $columnAlias, $discrColumn->fieldName, false, $discrColumn->type); - if (! empty($discrColumn->enumType)) { - $this->rsm->addEnumResult($columnAlias, $discrColumn->enumType); - } - } - - // Add foreign key columns to SQL, if necessary - if (! $addMetaColumns && ! $class->containsForeignIdentifier) { - continue; - } - - // Add foreign key columns of class and also parent classes - foreach ($class->associationMappings as $assoc) { - if ( - ! $assoc->isToOneOwningSide() - || ( ! $addMetaColumns && ! isset($assoc->id)) - ) { - continue; - } - - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - $isIdentifier = (isset($assoc->id) && $assoc->id === true); - $owningClass = isset($assoc->inherited) ? $this->em->getClassMetadata($assoc->inherited) : $class; - $sqlTableAlias = $this->getSQLTableAlias($owningClass->getTableName(), $dqlAlias); - - foreach ($assoc->joinColumns as $joinColumn) { - $columnName = $joinColumn->name; - $columnAlias = $this->getSQLColumnAlias($columnName); - $columnType = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - - $quotedColumnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - $sqlSelectExpressions[] = $sqlTableAlias . '.' . $quotedColumnName . ' AS ' . $columnAlias; - - $this->rsm->addMetaResult($dqlAlias, $columnAlias, $columnName, $isIdentifier, $columnType); - } - } - - // Add foreign key columns to SQL, if necessary - if (! $addMetaColumns) { - continue; - } - - // Add foreign key columns of subclasses - foreach ($class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - $sqlTableAlias = $this->getSQLTableAlias($subClass->getTableName(), $dqlAlias); - - foreach ($subClass->associationMappings as $assoc) { - // Skip if association is inherited - if (isset($assoc->inherited)) { - continue; - } - - if ($assoc->isToOneOwningSide()) { - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - foreach ($assoc->joinColumns as $joinColumn) { - $columnName = $joinColumn->name; - $columnAlias = $this->getSQLColumnAlias($columnName); - $columnType = PersisterHelper::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $this->em); - - $quotedColumnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform); - $sqlSelectExpressions[] = $sqlTableAlias . '.' . $quotedColumnName . ' AS ' . $columnAlias; - - $this->rsm->addMetaResult($dqlAlias, $columnAlias, $columnName, $subClass->isIdentifier($columnName), $columnType); - } - } - } - } - } - - return $sql . implode(', ', $sqlSelectExpressions); - } - - /** - * Walks down a FromClause AST node, thereby generating the appropriate SQL. - */ - public function walkFromClause(AST\FromClause $fromClause): string - { - $identificationVarDecls = $fromClause->identificationVariableDeclarations; - $sqlParts = []; - - foreach ($identificationVarDecls as $identificationVariableDecl) { - $sqlParts[] = $this->walkIdentificationVariableDeclaration($identificationVariableDecl); - } - - return ' FROM ' . implode(', ', $sqlParts); - } - - /** - * Walks down a IdentificationVariableDeclaration AST node, thereby generating the appropriate SQL. - */ - public function walkIdentificationVariableDeclaration(AST\IdentificationVariableDeclaration $identificationVariableDecl): string - { - $sql = $this->walkRangeVariableDeclaration($identificationVariableDecl->rangeVariableDeclaration); - - if ($identificationVariableDecl->indexBy) { - $this->walkIndexBy($identificationVariableDecl->indexBy); - } - - foreach ($identificationVariableDecl->joins as $join) { - $sql .= $this->walkJoin($join); - } - - return $sql; - } - - /** - * Walks down a IndexBy AST node. - */ - public function walkIndexBy(AST\IndexBy $indexBy): void - { - $pathExpression = $indexBy->singleValuedPathExpression; - $alias = $pathExpression->identificationVariable; - assert($pathExpression->field !== null); - - switch ($pathExpression->type) { - case AST\PathExpression::TYPE_STATE_FIELD: - $field = $pathExpression->field; - break; - - case AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION: - // Just use the foreign key, i.e. u.group_id - $fieldName = $pathExpression->field; - $class = $this->getMetadataForDqlAlias($alias); - - if (isset($class->associationMappings[$fieldName]->inherited)) { - $class = $this->em->getClassMetadata($class->associationMappings[$fieldName]->inherited); - } - - $association = $class->associationMappings[$fieldName]; - - if (! $association->isOwningSide()) { - throw QueryException::associationPathInverseSideNotSupported($pathExpression); - } - - assert($association->isToOneOwningSide()); - - if (count($association->sourceToTargetKeyColumns) > 1) { - throw QueryException::associationPathCompositeKeyNotSupported(); - } - - $field = reset($association->targetToSourceKeyColumns); - break; - - default: - throw QueryException::invalidPathExpression($pathExpression); - } - - if (isset($this->scalarFields[$alias][$field])) { - $this->rsm->addIndexByScalar($this->scalarFields[$alias][$field]); - - return; - } - - $this->rsm->addIndexBy($alias, $field); - } - - /** - * Walks down a RangeVariableDeclaration AST node, thereby generating the appropriate SQL. - */ - public function walkRangeVariableDeclaration(AST\RangeVariableDeclaration $rangeVariableDeclaration): string - { - return $this->generateRangeVariableDeclarationSQL($rangeVariableDeclaration, false); - } - - /** - * Generate appropriate SQL for RangeVariableDeclaration AST node - */ - private function generateRangeVariableDeclarationSQL( - AST\RangeVariableDeclaration $rangeVariableDeclaration, - bool $buildNestedJoins, - ): string { - $class = $this->em->getClassMetadata($rangeVariableDeclaration->abstractSchemaName); - $dqlAlias = $rangeVariableDeclaration->aliasIdentificationVariable; - - if ($rangeVariableDeclaration->isRoot) { - $this->rootAliases[] = $dqlAlias; - } - - $sql = $this->platform->appendLockHint( - $this->quoteStrategy->getTableName($class, $this->platform) . ' ' . - $this->getSQLTableAlias($class->getTableName(), $dqlAlias), - $this->query->getHint(Query::HINT_LOCK_MODE) ?: LockMode::NONE, - ); - - if (! $class->isInheritanceTypeJoined()) { - return $sql; - } - - $classTableInheritanceJoins = $this->generateClassTableInheritanceJoins($class, $dqlAlias); - - if (! $buildNestedJoins) { - return $sql . $classTableInheritanceJoins; - } - - return $classTableInheritanceJoins === '' ? $sql : '(' . $sql . $classTableInheritanceJoins . ')'; - } - - /** - * Walks down a JoinAssociationDeclaration AST node, thereby generating the appropriate SQL. - * - * @phpstan-param AST\Join::JOIN_TYPE_* $joinType - * - * @throws QueryException - */ - public function walkJoinAssociationDeclaration( - AST\JoinAssociationDeclaration $joinAssociationDeclaration, - int $joinType = AST\Join::JOIN_TYPE_INNER, - AST\ConditionalExpression|AST\Phase2OptimizableConditional|null $condExpr = null, - ): string { - $sql = ''; - - $associationPathExpression = $joinAssociationDeclaration->joinAssociationPathExpression; - $joinedDqlAlias = $joinAssociationDeclaration->aliasIdentificationVariable; - $indexBy = $joinAssociationDeclaration->indexBy; - - $relation = $this->queryComponents[$joinedDqlAlias]['relation'] ?? null; - assert($relation !== null); - $targetClass = $this->em->getClassMetadata($relation->targetEntity); - $sourceClass = $this->em->getClassMetadata($relation->sourceEntity); - $targetTableName = $this->quoteStrategy->getTableName($targetClass, $this->platform); - - $targetTableAlias = $this->getSQLTableAlias($targetClass->getTableName(), $joinedDqlAlias); - $sourceTableAlias = $this->getSQLTableAlias($sourceClass->getTableName(), $associationPathExpression->identificationVariable); - - // Ensure we got the owning side, since it has all mapping info - $assoc = $this->em->getMetadataFactory()->getOwningSide($relation); - - if ($this->query->getHint(Query::HINT_INTERNAL_ITERATION) === true && (! $this->query->getHint(self::HINT_DISTINCT) || isset($this->selectedClasses[$joinedDqlAlias]))) { - if ($relation->isToMany()) { - throw QueryException::iterateWithFetchJoinNotAllowed($assoc); - } - } - - $fetchMode = $this->query->getHint('fetchMode')[$assoc->sourceEntity][$assoc->fieldName] ?? $relation->fetch; - - if ($fetchMode === ClassMetadata::FETCH_EAGER && $condExpr !== null) { - throw QueryException::eagerFetchJoinWithNotAllowed($assoc->sourceEntity, $assoc->fieldName); - } - - // This condition is not checking ClassMetadata::MANY_TO_ONE, because by definition it cannot - // be the owning side and previously we ensured that $assoc is always the owning side of the associations. - // The owning side is necessary at this point because only it contains the JoinColumn information. - switch (true) { - case $assoc->isToOne(): - assert($assoc->isToOneOwningSide()); - $conditions = []; - - foreach ($assoc->joinColumns as $joinColumn) { - $quotedSourceColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $quotedTargetColumn = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $targetClass, $this->platform); - - if ($relation->isOwningSide()) { - $conditions[] = $sourceTableAlias . '.' . $quotedSourceColumn . ' = ' . $targetTableAlias . '.' . $quotedTargetColumn; - - continue; - } - - $conditions[] = $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $targetTableAlias . '.' . $quotedSourceColumn; - } - - // Apply remaining inheritance restrictions - $discrSql = $this->generateDiscriminatorColumnConditionSQL([$joinedDqlAlias]); - - if ($discrSql) { - $conditions[] = $discrSql; - } - - // Apply the filters - $filterExpr = $this->generateFilterConditionSQL($targetClass, $targetTableAlias); - - if ($filterExpr) { - $conditions[] = $filterExpr; - } - - $targetTableJoin = [ - 'table' => $targetTableName . ' ' . $targetTableAlias, - 'condition' => implode(' AND ', $conditions), - ]; - break; - - case $assoc->isManyToMany(): - // Join relation table - $joinTable = $assoc->joinTable; - $joinTableAlias = $this->getSQLTableAlias($joinTable->name, $joinedDqlAlias); - $joinTableName = $this->quoteStrategy->getJoinTableName($assoc, $sourceClass, $this->platform); - - $conditions = []; - $relationColumns = $relation->isOwningSide() - ? $assoc->joinTable->joinColumns - : $assoc->joinTable->inverseJoinColumns; - - foreach ($relationColumns as $joinColumn) { - $quotedSourceColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $quotedTargetColumn = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $targetClass, $this->platform); - - $conditions[] = $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $joinTableAlias . '.' . $quotedSourceColumn; - } - - $sql .= $joinTableName . ' ' . $joinTableAlias . ' ON ' . implode(' AND ', $conditions); - - // Join target table - $sql .= $joinType === AST\Join::JOIN_TYPE_LEFT || $joinType === AST\Join::JOIN_TYPE_LEFTOUTER ? ' LEFT JOIN ' : ' INNER JOIN '; - - $conditions = []; - $relationColumns = $relation->isOwningSide() - ? $assoc->joinTable->inverseJoinColumns - : $assoc->joinTable->joinColumns; - - foreach ($relationColumns as $joinColumn) { - $quotedSourceColumn = $this->quoteStrategy->getJoinColumnName($joinColumn, $targetClass, $this->platform); - $quotedTargetColumn = $this->quoteStrategy->getReferencedJoinColumnName($joinColumn, $targetClass, $this->platform); - - $conditions[] = $targetTableAlias . '.' . $quotedTargetColumn . ' = ' . $joinTableAlias . '.' . $quotedSourceColumn; - } - - // Apply remaining inheritance restrictions - $discrSql = $this->generateDiscriminatorColumnConditionSQL([$joinedDqlAlias]); - - if ($discrSql) { - $conditions[] = $discrSql; - } - - // Apply the filters - $filterExpr = $this->generateFilterConditionSQL($targetClass, $targetTableAlias); - - if ($filterExpr) { - $conditions[] = $filterExpr; - } - - $targetTableJoin = [ - 'table' => $targetTableName . ' ' . $targetTableAlias, - 'condition' => implode(' AND ', $conditions), - ]; - break; - - default: - throw new BadMethodCallException('Type of association must be one of *_TO_ONE or MANY_TO_MANY'); - } - - // Handle WITH clause - $withCondition = $condExpr === null ? '' : ('(' . $this->walkConditionalExpression($condExpr) . ')'); - - if ($targetClass->isInheritanceTypeJoined()) { - $ctiJoins = $this->generateClassTableInheritanceJoins($targetClass, $joinedDqlAlias); - // If we have WITH condition, we need to build nested joins for target class table and cti joins - if ($withCondition && $ctiJoins) { - $sql .= '(' . $targetTableJoin['table'] . $ctiJoins . ') ON ' . $targetTableJoin['condition']; - } else { - $sql .= $targetTableJoin['table'] . ' ON ' . $targetTableJoin['condition'] . $ctiJoins; - } - } else { - $sql .= $targetTableJoin['table'] . ' ON ' . $targetTableJoin['condition']; - } - - if ($withCondition) { - $sql .= ' AND ' . $withCondition; - } - - // Apply the indexes - if ($indexBy) { - // For Many-To-One or One-To-One associations this obviously makes no sense, but is ignored silently. - $this->walkIndexBy($indexBy); - } elseif ($relation->isIndexed()) { - $this->rsm->addIndexBy($joinedDqlAlias, $relation->indexBy()); - } - - return $sql; - } - - /** - * Walks down a FunctionNode AST node, thereby generating the appropriate SQL. - */ - public function walkFunction(AST\Functions\FunctionNode $function): string - { - return $function->getSql($this); - } - - /** - * Walks down an OrderByClause AST node, thereby generating the appropriate SQL. - */ - public function walkOrderByClause(AST\OrderByClause $orderByClause): string - { - $orderByItems = array_map($this->walkOrderByItem(...), $orderByClause->orderByItems); - - $collectionOrderByItems = $this->generateOrderedCollectionOrderByItems(); - if ($collectionOrderByItems !== '') { - $orderByItems = array_merge($orderByItems, (array) $collectionOrderByItems); - } - - return ' ORDER BY ' . implode(', ', $orderByItems); - } - - /** - * Walks down an OrderByItem AST node, thereby generating the appropriate SQL. - */ - public function walkOrderByItem(AST\OrderByItem $orderByItem): string - { - $type = strtoupper($orderByItem->type); - $expr = $orderByItem->expression; - $sql = $expr instanceof AST\Node - ? $expr->dispatch($this) - : $this->walkResultVariable($this->queryComponents[$expr]['token']->value); - - $this->orderedColumnsMap[$sql] = $type; - - if ($expr instanceof AST\Subselect) { - return '(' . $sql . ') ' . $type; - } - - return $sql . ' ' . $type; - } - - /** - * Walks down a HavingClause AST node, thereby generating the appropriate SQL. - */ - public function walkHavingClause(AST\HavingClause $havingClause): string - { - return ' HAVING ' . $this->walkConditionalExpression($havingClause->conditionalExpression); - } - - /** - * Walks down a Join AST node and creates the corresponding SQL. - */ - public function walkJoin(AST\Join $join): string - { - $joinType = $join->joinType; - $joinDeclaration = $join->joinAssociationDeclaration; - - $sql = $joinType === AST\Join::JOIN_TYPE_LEFT || $joinType === AST\Join::JOIN_TYPE_LEFTOUTER - ? ' LEFT JOIN ' - : ' INNER JOIN '; - - switch (true) { - case $joinDeclaration instanceof AST\RangeVariableDeclaration: - $class = $this->em->getClassMetadata($joinDeclaration->abstractSchemaName); - $dqlAlias = $joinDeclaration->aliasIdentificationVariable; - $tableAlias = $this->getSQLTableAlias($class->table['name'], $dqlAlias); - $conditions = []; - - if ($join->conditionalExpression) { - $conditions[] = '(' . $this->walkConditionalExpression($join->conditionalExpression) . ')'; - } - - $isUnconditionalJoin = $conditions === []; - $condExprConjunction = $class->isInheritanceTypeJoined() && $joinType !== AST\Join::JOIN_TYPE_LEFT && $joinType !== AST\Join::JOIN_TYPE_LEFTOUTER && $isUnconditionalJoin - ? ' AND ' - : ' ON '; - - $sql .= $this->generateRangeVariableDeclarationSQL($joinDeclaration, ! $isUnconditionalJoin); - - // Apply remaining inheritance restrictions - $discrSql = $this->generateDiscriminatorColumnConditionSQL([$dqlAlias]); - - if ($discrSql) { - $conditions[] = $discrSql; - } - - // Apply the filters - $filterExpr = $this->generateFilterConditionSQL($class, $tableAlias); - - if ($filterExpr) { - $conditions[] = $filterExpr; - } - - if ($conditions) { - $sql .= $condExprConjunction . implode(' AND ', $conditions); - } - - break; - - case $joinDeclaration instanceof AST\JoinAssociationDeclaration: - $sql .= $this->walkJoinAssociationDeclaration($joinDeclaration, $joinType, $join->conditionalExpression); - break; - } - - return $sql; - } - - /** - * Walks down a CoalesceExpression AST node and generates the corresponding SQL. - */ - public function walkCoalesceExpression(AST\CoalesceExpression $coalesceExpression): string - { - $sql = 'COALESCE('; - - $scalarExpressions = []; - - foreach ($coalesceExpression->scalarExpressions as $scalarExpression) { - $scalarExpressions[] = $this->walkSimpleArithmeticExpression($scalarExpression); - } - - return $sql . implode(', ', $scalarExpressions) . ')'; - } - - /** - * Walks down a NullIfExpression AST node and generates the corresponding SQL. - */ - public function walkNullIfExpression(AST\NullIfExpression $nullIfExpression): string - { - $firstExpression = is_string($nullIfExpression->firstExpression) - ? $this->conn->quote($nullIfExpression->firstExpression) - : $this->walkSimpleArithmeticExpression($nullIfExpression->firstExpression); - - $secondExpression = is_string($nullIfExpression->secondExpression) - ? $this->conn->quote($nullIfExpression->secondExpression) - : $this->walkSimpleArithmeticExpression($nullIfExpression->secondExpression); - - return 'NULLIF(' . $firstExpression . ', ' . $secondExpression . ')'; - } - - /** - * Walks down a GeneralCaseExpression AST node and generates the corresponding SQL. - */ - public function walkGeneralCaseExpression(AST\GeneralCaseExpression $generalCaseExpression): string - { - $sql = 'CASE'; - - foreach ($generalCaseExpression->whenClauses as $whenClause) { - $sql .= ' WHEN ' . $this->walkConditionalExpression($whenClause->caseConditionExpression); - $sql .= ' THEN ' . $this->walkSimpleArithmeticExpression($whenClause->thenScalarExpression); - } - - $sql .= ' ELSE ' . $this->walkSimpleArithmeticExpression($generalCaseExpression->elseScalarExpression) . ' END'; - - return $sql; - } - - /** - * Walks down a SimpleCaseExpression AST node and generates the corresponding SQL. - */ - public function walkSimpleCaseExpression(AST\SimpleCaseExpression $simpleCaseExpression): string - { - $sql = 'CASE ' . $this->walkStateFieldPathExpression($simpleCaseExpression->caseOperand); - - foreach ($simpleCaseExpression->simpleWhenClauses as $simpleWhenClause) { - $sql .= ' WHEN ' . $this->walkSimpleArithmeticExpression($simpleWhenClause->caseScalarExpression); - $sql .= ' THEN ' . $this->walkSimpleArithmeticExpression($simpleWhenClause->thenScalarExpression); - } - - $sql .= ' ELSE ' . $this->walkSimpleArithmeticExpression($simpleCaseExpression->elseScalarExpression) . ' END'; - - return $sql; - } - - /** - * Walks down a SelectExpression AST node and generates the corresponding SQL. - */ - public function walkSelectExpression(AST\SelectExpression $selectExpression): string - { - $sql = ''; - $expr = $selectExpression->expression; - $hidden = $selectExpression->hiddenAliasResultVariable; - - switch (true) { - case $expr instanceof AST\PathExpression: - if ($expr->type !== AST\PathExpression::TYPE_STATE_FIELD) { - throw QueryException::invalidPathExpression($expr); - } - - assert($expr->field !== null); - $fieldName = $expr->field; - $dqlAlias = $expr->identificationVariable; - $class = $this->getMetadataForDqlAlias($dqlAlias); - - $resultAlias = $selectExpression->fieldIdentificationVariable ?: $fieldName; - $tableName = $class->isInheritanceTypeJoined() - ? $this->em->getUnitOfWork()->getEntityPersister($class->name)->getOwningTable($fieldName) - : $class->getTableName(); - - $sqlTableAlias = $this->getSQLTableAlias($tableName, $dqlAlias); - $fieldMapping = $class->fieldMappings[$fieldName]; - $columnName = $this->quoteStrategy->getColumnName($fieldName, $class, $this->platform); - $columnAlias = $this->getSQLColumnAlias($fieldMapping->columnName); - $col = $sqlTableAlias . '.' . $columnName; - - $type = Type::getType($fieldMapping->type); - $col = $type->convertToPHPValueSQL($col, $this->conn->getDatabasePlatform()); - - $sql .= $col . ' AS ' . $columnAlias; - - $this->scalarResultAliasMap[$resultAlias] = $columnAlias; - - if (! $hidden) { - $this->rsm->addScalarResult($columnAlias, $resultAlias, $fieldMapping->type); - $this->scalarFields[$dqlAlias][$fieldName] = $columnAlias; - - if (! empty($fieldMapping->enumType)) { - $this->rsm->addEnumResult($columnAlias, $fieldMapping->enumType); - } - } - - break; - - case $expr instanceof AST\AggregateExpression: - case $expr instanceof AST\Functions\FunctionNode: - case $expr instanceof AST\SimpleArithmeticExpression: - case $expr instanceof AST\ArithmeticTerm: - case $expr instanceof AST\ArithmeticFactor: - case $expr instanceof AST\ParenthesisExpression: - case $expr instanceof AST\Literal: - case $expr instanceof AST\NullIfExpression: - case $expr instanceof AST\CoalesceExpression: - case $expr instanceof AST\GeneralCaseExpression: - case $expr instanceof AST\SimpleCaseExpression: - $columnAlias = $this->getSQLColumnAlias('sclr'); - $resultAlias = $selectExpression->fieldIdentificationVariable ?: $this->scalarResultCounter++; - - $sql .= $expr->dispatch($this) . ' AS ' . $columnAlias; - - $this->scalarResultAliasMap[$resultAlias] = $columnAlias; - - if ($hidden) { - break; - } - - if (! $expr instanceof Query\AST\TypedExpression) { - // Conceptually we could resolve field type here by traverse through AST to retrieve field type, - // but this is not a feasible solution; assume 'string'. - $this->rsm->addScalarResult($columnAlias, $resultAlias, 'string'); - - break; - } - - $this->rsm->addScalarResult($columnAlias, $resultAlias, Type::getTypeRegistry()->lookupName($expr->getReturnType())); - - break; - - case $expr instanceof AST\Subselect: - $columnAlias = $this->getSQLColumnAlias('sclr'); - $resultAlias = $selectExpression->fieldIdentificationVariable ?: $this->scalarResultCounter++; - - $sql .= '(' . $this->walkSubselect($expr) . ') AS ' . $columnAlias; - - $this->scalarResultAliasMap[$resultAlias] = $columnAlias; - - if (! $hidden) { - // We cannot resolve field type here; assume 'string'. - $this->rsm->addScalarResult($columnAlias, $resultAlias, 'string'); - } - - break; - - case $expr instanceof AST\NewObjectExpression: - $sql .= $this->walkNewObject($expr, $selectExpression->fieldIdentificationVariable); - break; - - default: - // IdentificationVariable or PartialObjectExpression - if ($expr instanceof AST\PartialObjectExpression) { - $this->query->setHint(self::HINT_PARTIAL, true); - - $dqlAlias = $expr->identificationVariable; - $partialFieldSet = $expr->partialFieldSet; - } else { - $dqlAlias = $expr; - $partialFieldSet = []; - } - - $sql .= implode(', ', $this->walkObjectExpression($dqlAlias, $partialFieldSet, $selectExpression->fieldIdentificationVariable ?: null)); - } - - return $sql; - } - - /** - * Walks down an Object Expression AST node and return Sql Parts - * - * @param mixed[] $partialFieldSet - * - * @return string[] - */ - public function walkObjectExpression(string $dqlAlias, array $partialFieldSet, string|null $resultAlias): array - { - $class = $this->getMetadataForDqlAlias($dqlAlias); - - if (! isset($this->selectedClasses[$dqlAlias])) { - $this->selectedClasses[$dqlAlias] = [ - 'class' => $class, - 'dqlAlias' => $dqlAlias, - 'resultAlias' => $resultAlias, - ]; - } - - $sqlParts = []; - - // Select all fields from the queried class - foreach ($class->fieldMappings as $fieldName => $mapping) { - if ($partialFieldSet && ! in_array($fieldName, $partialFieldSet, true)) { - continue; - } - - $tableName = isset($mapping->inherited) - ? $this->em->getClassMetadata($mapping->inherited)->getTableName() - : $class->getTableName(); - - $sqlTableAlias = $this->getSQLTableAlias($tableName, $dqlAlias); - $columnAlias = $this->getSQLColumnAlias($mapping->columnName); - $quotedColumnName = $this->quoteStrategy->getColumnName($fieldName, $class, $this->platform); - - $col = $sqlTableAlias . '.' . $quotedColumnName; - - $type = Type::getType($mapping->type); - $col = $type->convertToPHPValueSQL($col, $this->platform); - - $sqlParts[] = $col . ' AS ' . $columnAlias; - - $this->scalarResultAliasMap[$resultAlias][] = $columnAlias; - - $this->rsm->addFieldResult($dqlAlias, $columnAlias, $fieldName, $class->name); - - if (! empty($mapping->enumType)) { - $this->rsm->addEnumResult($columnAlias, $mapping->enumType); - } - } - - // Add any additional fields of subclasses (excluding inherited fields) - // 1) on Single Table Inheritance: always, since its marginal overhead - // 2) on Class Table Inheritance only if partial objects are disallowed, - // since it requires outer joining subtables. - if ($class->isInheritanceTypeSingleTable() || ! $this->query->getHint(Query::HINT_FORCE_PARTIAL_LOAD)) { - foreach ($class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - $sqlTableAlias = $this->getSQLTableAlias($subClass->getTableName(), $dqlAlias); - - foreach ($subClass->fieldMappings as $fieldName => $mapping) { - if (isset($mapping->inherited) || ($partialFieldSet && ! in_array($fieldName, $partialFieldSet, true))) { - continue; - } - - $columnAlias = $this->getSQLColumnAlias($mapping->columnName); - $quotedColumnName = $this->quoteStrategy->getColumnName($fieldName, $subClass, $this->platform); - - $col = $sqlTableAlias . '.' . $quotedColumnName; - - $type = Type::getType($mapping->type); - $col = $type->convertToPHPValueSQL($col, $this->platform); - - $sqlParts[] = $col . ' AS ' . $columnAlias; - - $this->scalarResultAliasMap[$resultAlias][] = $columnAlias; - - $this->rsm->addFieldResult($dqlAlias, $columnAlias, $fieldName, $subClassName); - } - } - } - - return $sqlParts; - } - - public function walkQuantifiedExpression(AST\QuantifiedExpression $qExpr): string - { - return ' ' . strtoupper($qExpr->type) . '(' . $this->walkSubselect($qExpr->subselect) . ')'; - } - - /** - * Walks down a Subselect AST node, thereby generating the appropriate SQL. - */ - public function walkSubselect(AST\Subselect $subselect): string - { - $useAliasesBefore = $this->useSqlTableAliases; - $rootAliasesBefore = $this->rootAliases; - - $this->rootAliases = []; // reset the rootAliases for the subselect - $this->useSqlTableAliases = true; - - $sql = $this->walkSimpleSelectClause($subselect->simpleSelectClause); - $sql .= $this->walkSubselectFromClause($subselect->subselectFromClause); - $sql .= $this->walkWhereClause($subselect->whereClause); - - $sql .= $subselect->groupByClause ? $this->walkGroupByClause($subselect->groupByClause) : ''; - $sql .= $subselect->havingClause ? $this->walkHavingClause($subselect->havingClause) : ''; - $sql .= $subselect->orderByClause ? $this->walkOrderByClause($subselect->orderByClause) : ''; - - $this->rootAliases = $rootAliasesBefore; // put the main aliases back - $this->useSqlTableAliases = $useAliasesBefore; - - return $sql; - } - - /** - * Walks down a SubselectFromClause AST node, thereby generating the appropriate SQL. - */ - public function walkSubselectFromClause(AST\SubselectFromClause $subselectFromClause): string - { - $identificationVarDecls = $subselectFromClause->identificationVariableDeclarations; - $sqlParts = []; - - foreach ($identificationVarDecls as $subselectIdVarDecl) { - $sqlParts[] = $this->walkIdentificationVariableDeclaration($subselectIdVarDecl); - } - - return ' FROM ' . implode(', ', $sqlParts); - } - - /** - * Walks down a SimpleSelectClause AST node, thereby generating the appropriate SQL. - */ - public function walkSimpleSelectClause(AST\SimpleSelectClause $simpleSelectClause): string - { - return 'SELECT' . ($simpleSelectClause->isDistinct ? ' DISTINCT' : '') - . $this->walkSimpleSelectExpression($simpleSelectClause->simpleSelectExpression); - } - - public function walkParenthesisExpression(AST\ParenthesisExpression $parenthesisExpression): string - { - return sprintf('(%s)', $parenthesisExpression->expression->dispatch($this)); - } - - public function walkNewObject(AST\NewObjectExpression $newObjectExpression, string|null $newObjectResultAlias = null): string - { - $sqlSelectExpressions = []; - $objIndex = $newObjectResultAlias ?: $this->newObjectCounter++; - - foreach ($newObjectExpression->args as $argIndex => $e) { - $resultAlias = $this->scalarResultCounter++; - $columnAlias = $this->getSQLColumnAlias('sclr'); - $fieldType = 'string'; - - switch (true) { - case $e instanceof AST\NewObjectExpression: - $sqlSelectExpressions[] = $e->dispatch($this, $columnAlias); - $this->rsm->nestedNewObjectArguments[$columnAlias] = ['ownerIndex' => $objIndex, 'argIndex' => $argIndex, 'argAlias' => $columnAlias]; - break; - - case $e instanceof AST\Subselect: - $sqlSelectExpressions[] = '(' . $e->dispatch($this) . ') AS ' . $columnAlias; - break; - - case $e instanceof AST\PathExpression: - assert($e->field !== null); - $dqlAlias = $e->identificationVariable; - $class = $this->getMetadataForDqlAlias($dqlAlias); - $fieldName = $e->field; - $fieldMapping = $class->fieldMappings[$fieldName]; - $fieldType = $fieldMapping->type; - $col = trim($e->dispatch($this)); - - $type = Type::getType($fieldType); - $col = $type->convertToPHPValueSQL($col, $this->platform); - - $sqlSelectExpressions[] = $col . ' AS ' . $columnAlias; - - if (! empty($fieldMapping->enumType)) { - $this->rsm->addEnumResult($columnAlias, $fieldMapping->enumType); - } - - break; - - case $e instanceof AST\Literal: - switch ($e->type) { - case AST\Literal::BOOLEAN: - $fieldType = 'boolean'; - break; - - case AST\Literal::NUMERIC: - $fieldType = is_float($e->value) ? 'float' : 'integer'; - break; - } - - $sqlSelectExpressions[] = trim($e->dispatch($this)) . ' AS ' . $columnAlias; - break; - - case $e instanceof AST\EntityAsDtoArgumentExpression: - $alias = $e->identificationVariable ?: $columnAlias; - $this->rsm->nestedNewObjectArguments[$columnAlias] = ['ownerIndex' => $objIndex, 'argIndex' => $argIndex, 'argAlias' => $alias]; - $this->rsm->nestedEntities[$alias] = ['parent' => $objIndex, 'argIndex' => $argIndex, 'type' => 'entity']; - - $sqlSelectExpressions[] = trim($e->dispatch($this)); - break; - - default: - $sqlSelectExpressions[] = trim($e->dispatch($this)) . ' AS ' . $columnAlias; - break; - } - - $this->scalarResultAliasMap[$resultAlias] = $columnAlias; - $this->rsm->addScalarResult($columnAlias, $resultAlias, $fieldType); - - $this->rsm->newObjectMappings[$columnAlias] = [ - 'objIndex' => $objIndex, - 'argIndex' => $argIndex, - ]; - } - - $this->rsm->newObject[$objIndex] = $newObjectExpression->className; - - return implode(', ', $sqlSelectExpressions); - } - - /** - * Walks down a SimpleSelectExpression AST node, thereby generating the appropriate SQL. - */ - public function walkSimpleSelectExpression(AST\SimpleSelectExpression $simpleSelectExpression): string - { - $expr = $simpleSelectExpression->expression; - $sql = ' '; - - switch (true) { - case $expr instanceof AST\PathExpression: - $sql .= $this->walkPathExpression($expr); - break; - - case $expr instanceof AST\Subselect: - $alias = $simpleSelectExpression->fieldIdentificationVariable ?: $this->scalarResultCounter++; - - $columnAlias = 'sclr' . $this->aliasCounter++; - $this->scalarResultAliasMap[$alias] = $columnAlias; - - $sql .= '(' . $this->walkSubselect($expr) . ') AS ' . $columnAlias; - break; - - case $expr instanceof AST\Functions\FunctionNode: - case $expr instanceof AST\SimpleArithmeticExpression: - case $expr instanceof AST\ArithmeticTerm: - case $expr instanceof AST\ArithmeticFactor: - case $expr instanceof AST\Literal: - case $expr instanceof AST\NullIfExpression: - case $expr instanceof AST\CoalesceExpression: - case $expr instanceof AST\GeneralCaseExpression: - case $expr instanceof AST\SimpleCaseExpression: - $alias = $simpleSelectExpression->fieldIdentificationVariable ?: $this->scalarResultCounter++; - - $columnAlias = $this->getSQLColumnAlias('sclr'); - $this->scalarResultAliasMap[$alias] = $columnAlias; - - $sql .= $expr->dispatch($this) . ' AS ' . $columnAlias; - break; - - case $expr instanceof AST\ParenthesisExpression: - $sql .= $this->walkParenthesisExpression($expr); - break; - - default: // IdentificationVariable - $sql .= $this->walkEntityIdentificationVariable($expr); - break; - } - - return $sql; - } - - /** - * Walks down an AggregateExpression AST node, thereby generating the appropriate SQL. - */ - public function walkAggregateExpression(AST\AggregateExpression $aggExpression): string - { - return $aggExpression->functionName . '(' . ($aggExpression->isDistinct ? 'DISTINCT ' : '') - . $this->walkSimpleArithmeticExpression($aggExpression->pathExpression) . ')'; - } - - /** - * Walks down a GroupByClause AST node, thereby generating the appropriate SQL. - */ - public function walkGroupByClause(AST\GroupByClause $groupByClause): string - { - $sqlParts = []; - - foreach ($groupByClause->groupByItems as $groupByItem) { - $sqlParts[] = $this->walkGroupByItem($groupByItem); - } - - return ' GROUP BY ' . implode(', ', $sqlParts); - } - - /** - * Walks down a GroupByItem AST node, thereby generating the appropriate SQL. - */ - public function walkGroupByItem(AST\PathExpression|string $groupByItem): string - { - // StateFieldPathExpression - if (! is_string($groupByItem)) { - return $this->walkPathExpression($groupByItem); - } - - // ResultVariable - if (isset($this->queryComponents[$groupByItem]['resultVariable'])) { - $resultVariable = $this->queryComponents[$groupByItem]['resultVariable']; - - if ($resultVariable instanceof AST\PathExpression) { - return $this->walkPathExpression($resultVariable); - } - - if ($resultVariable instanceof AST\Node && isset($resultVariable->pathExpression)) { - return $this->walkPathExpression($resultVariable->pathExpression); - } - - return $this->walkResultVariable($groupByItem); - } - - // IdentificationVariable - $sqlParts = []; - - foreach ($this->getMetadataForDqlAlias($groupByItem)->fieldNames as $field) { - $item = new AST\PathExpression(AST\PathExpression::TYPE_STATE_FIELD, $groupByItem, $field); - $item->type = AST\PathExpression::TYPE_STATE_FIELD; - - $sqlParts[] = $this->walkPathExpression($item); - } - - foreach ($this->getMetadataForDqlAlias($groupByItem)->associationMappings as $mapping) { - if ($mapping->isToOneOwningSide()) { - $item = new AST\PathExpression(AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $groupByItem, $mapping->fieldName); - $item->type = AST\PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION; - - $sqlParts[] = $this->walkPathExpression($item); - } - } - - return implode(', ', $sqlParts); - } - - /** - * Walks down a DeleteClause AST node, thereby generating the appropriate SQL. - */ - public function walkDeleteClause(AST\DeleteClause $deleteClause): string - { - $class = $this->em->getClassMetadata($deleteClause->abstractSchemaName); - $tableName = $class->getTableName(); - $sql = 'DELETE FROM ' . $this->quoteStrategy->getTableName($class, $this->platform); - - $this->setSQLTableAlias($tableName, $tableName, $deleteClause->aliasIdentificationVariable); - $this->rootAliases[] = $deleteClause->aliasIdentificationVariable; - - return $sql; - } - - /** - * Walks down an UpdateClause AST node, thereby generating the appropriate SQL. - */ - public function walkUpdateClause(AST\UpdateClause $updateClause): string - { - $class = $this->em->getClassMetadata($updateClause->abstractSchemaName); - $tableName = $class->getTableName(); - $sql = 'UPDATE ' . $this->quoteStrategy->getTableName($class, $this->platform); - - $this->setSQLTableAlias($tableName, $tableName, $updateClause->aliasIdentificationVariable); - $this->rootAliases[] = $updateClause->aliasIdentificationVariable; - - return $sql . ' SET ' . implode(', ', array_map($this->walkUpdateItem(...), $updateClause->updateItems)); - } - - /** - * Walks down an UpdateItem AST node, thereby generating the appropriate SQL. - */ - public function walkUpdateItem(AST\UpdateItem $updateItem): string - { - $useTableAliasesBefore = $this->useSqlTableAliases; - $this->useSqlTableAliases = false; - - $sql = $this->walkPathExpression($updateItem->pathExpression) . ' = '; - $newValue = $updateItem->newValue; - - $sql .= match (true) { - $newValue instanceof AST\Node => $newValue->dispatch($this), - $newValue === null => 'NULL', - }; - - $this->useSqlTableAliases = $useTableAliasesBefore; - - return $sql; - } - - /** - * Walks down a WhereClause AST node, thereby generating the appropriate SQL. - * - * WhereClause or not, the appropriate discriminator sql is added. - */ - public function walkWhereClause(AST\WhereClause|null $whereClause): string - { - $condSql = $whereClause !== null ? $this->walkConditionalExpression($whereClause->conditionalExpression) : ''; - $discrSql = $this->generateDiscriminatorColumnConditionSQL($this->rootAliases); - - if ($this->em->hasFilters()) { - $filterClauses = []; - foreach ($this->rootAliases as $dqlAlias) { - $class = $this->getMetadataForDqlAlias($dqlAlias); - $tableAlias = $this->getSQLTableAlias($class->table['name'], $dqlAlias); - - $filterExpr = $this->generateFilterConditionSQL($class, $tableAlias); - if ($filterExpr) { - $filterClauses[] = $filterExpr; - } - } - - if (count($filterClauses)) { - if ($condSql) { - $condSql = '(' . $condSql . ') AND '; - } - - $condSql .= implode(' AND ', $filterClauses); - } - } - - if ($condSql) { - return ' WHERE ' . (! $discrSql ? $condSql : '(' . $condSql . ') AND ' . $discrSql); - } - - if ($discrSql) { - return ' WHERE ' . $discrSql; - } - - return ''; - } - - /** - * Walk down a ConditionalExpression AST node, thereby generating the appropriate SQL. - */ - public function walkConditionalExpression( - AST\ConditionalExpression|AST\Phase2OptimizableConditional $condExpr, - ): string { - // Phase 2 AST optimization: Skip processing of ConditionalExpression - // if only one ConditionalTerm is defined - if (! ($condExpr instanceof AST\ConditionalExpression)) { - return $this->walkConditionalTerm($condExpr); - } - - return implode(' OR ', array_map($this->walkConditionalTerm(...), $condExpr->conditionalTerms)); - } - - /** - * Walks down a ConditionalTerm AST node, thereby generating the appropriate SQL. - */ - public function walkConditionalTerm( - AST\ConditionalTerm|AST\ConditionalPrimary|AST\ConditionalFactor $condTerm, - ): string { - // Phase 2 AST optimization: Skip processing of ConditionalTerm - // if only one ConditionalFactor is defined - if (! ($condTerm instanceof AST\ConditionalTerm)) { - return $this->walkConditionalFactor($condTerm); - } - - return implode(' AND ', array_map($this->walkConditionalFactor(...), $condTerm->conditionalFactors)); - } - - /** - * Walks down a ConditionalFactor AST node, thereby generating the appropriate SQL. - */ - public function walkConditionalFactor( - AST\ConditionalFactor|AST\ConditionalPrimary $factor, - ): string { - // Phase 2 AST optimization: Skip processing of ConditionalFactor - // if only one ConditionalPrimary is defined - return ! ($factor instanceof AST\ConditionalFactor) - ? $this->walkConditionalPrimary($factor) - : ($factor->not ? 'NOT ' : '') . $this->walkConditionalPrimary($factor->conditionalPrimary); - } - - /** - * Walks down a ConditionalPrimary AST node, thereby generating the appropriate SQL. - */ - public function walkConditionalPrimary(AST\ConditionalPrimary $primary): string - { - if ($primary->isSimpleConditionalExpression()) { - return $primary->simpleConditionalExpression->dispatch($this); - } - - if ($primary->isConditionalExpression()) { - $condExpr = $primary->conditionalExpression; - - return '(' . $this->walkConditionalExpression($condExpr) . ')'; - } - - throw new LogicException('Unexpected state of ConditionalPrimary node.'); - } - - /** - * Walks down an ExistsExpression AST node, thereby generating the appropriate SQL. - */ - public function walkExistsExpression(AST\ExistsExpression $existsExpr): string - { - $sql = $existsExpr->not ? 'NOT ' : ''; - - $sql .= 'EXISTS (' . $this->walkSubselect($existsExpr->subselect) . ')'; - - return $sql; - } - - /** - * Walks down a CollectionMemberExpression AST node, thereby generating the appropriate SQL. - */ - public function walkCollectionMemberExpression(AST\CollectionMemberExpression $collMemberExpr): string - { - $sql = $collMemberExpr->not ? 'NOT ' : ''; - $sql .= 'EXISTS (SELECT 1 FROM '; - - $entityExpr = $collMemberExpr->entityExpression; - $collPathExpr = $collMemberExpr->collectionValuedPathExpression; - assert($collPathExpr->field !== null); - - $fieldName = $collPathExpr->field; - $dqlAlias = $collPathExpr->identificationVariable; - - $class = $this->getMetadataForDqlAlias($dqlAlias); - - switch (true) { - // InputParameter - case $entityExpr instanceof AST\InputParameter: - $dqlParamKey = $entityExpr->name; - $entitySql = '?'; - break; - - // SingleValuedAssociationPathExpression | IdentificationVariable - case $entityExpr instanceof AST\PathExpression: - $entitySql = $this->walkPathExpression($entityExpr); - break; - - default: - throw new BadMethodCallException('Not implemented'); - } - - $assoc = $class->associationMappings[$fieldName]; - - if ($assoc->isOneToMany()) { - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - $targetTableAlias = $this->getSQLTableAlias($targetClass->getTableName()); - $sourceTableAlias = $this->getSQLTableAlias($class->getTableName(), $dqlAlias); - - $sql .= $this->quoteStrategy->getTableName($targetClass, $this->platform) . ' ' . $targetTableAlias . ' WHERE '; - - $owningAssoc = $targetClass->associationMappings[$assoc->mappedBy]; - assert($owningAssoc->isManyToOne()); - $sqlParts = []; - - foreach ($owningAssoc->targetToSourceKeyColumns as $targetColumn => $sourceColumn) { - $targetColumn = $this->quoteStrategy->getColumnName($class->fieldNames[$targetColumn], $class, $this->platform); - - $sqlParts[] = $sourceTableAlias . '.' . $targetColumn . ' = ' . $targetTableAlias . '.' . $sourceColumn; - } - - foreach ($this->quoteStrategy->getIdentifierColumnNames($targetClass, $this->platform) as $targetColumnName) { - if (isset($dqlParamKey)) { - $this->parserResult->addParameterMapping($dqlParamKey, $this->sqlParamIndex++); - } - - $sqlParts[] = $targetTableAlias . '.' . $targetColumnName . ' = ' . $entitySql; - } - - $sql .= implode(' AND ', $sqlParts); - } else { // many-to-many - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - $owningAssoc = $this->em->getMetadataFactory()->getOwningSide($assoc); - assert($owningAssoc->isManyToManyOwningSide()); - $joinTable = $owningAssoc->joinTable; - - // SQL table aliases - $joinTableAlias = $this->getSQLTableAlias($joinTable->name); - $sourceTableAlias = $this->getSQLTableAlias($class->getTableName(), $dqlAlias); - - $sql .= $this->quoteStrategy->getJoinTableName($owningAssoc, $targetClass, $this->platform) . ' ' . $joinTableAlias . ' WHERE '; - - $joinColumns = $assoc->isOwningSide() ? $joinTable->joinColumns : $joinTable->inverseJoinColumns; - $sqlParts = []; - - foreach ($joinColumns as $joinColumn) { - $targetColumn = $this->quoteStrategy->getColumnName($class->fieldNames[$joinColumn->referencedColumnName], $class, $this->platform); - - $sqlParts[] = $joinTableAlias . '.' . $joinColumn->name . ' = ' . $sourceTableAlias . '.' . $targetColumn; - } - - $joinColumns = $assoc->isOwningSide() ? $joinTable->inverseJoinColumns : $joinTable->joinColumns; - - foreach ($joinColumns as $joinColumn) { - if (isset($dqlParamKey)) { - $this->parserResult->addParameterMapping($dqlParamKey, $this->sqlParamIndex++); - } - - $sqlParts[] = $joinTableAlias . '.' . $joinColumn->name . ' IN (' . $entitySql . ')'; - } - - $sql .= implode(' AND ', $sqlParts); - } - - return $sql . ')'; - } - - /** - * Walks down an EmptyCollectionComparisonExpression AST node, thereby generating the appropriate SQL. - */ - public function walkEmptyCollectionComparisonExpression(AST\EmptyCollectionComparisonExpression $emptyCollCompExpr): string - { - $sizeFunc = new AST\Functions\SizeFunction('size'); - $sizeFunc->collectionPathExpression = $emptyCollCompExpr->expression; - - return $sizeFunc->getSql($this) . ($emptyCollCompExpr->not ? ' > 0' : ' = 0'); - } - - /** - * Walks down a NullComparisonExpression AST node, thereby generating the appropriate SQL. - */ - public function walkNullComparisonExpression(AST\NullComparisonExpression $nullCompExpr): string - { - $expression = $nullCompExpr->expression; - $comparison = ' IS' . ($nullCompExpr->not ? ' NOT' : '') . ' NULL'; - - // Handle ResultVariable - if (is_string($expression) && isset($this->queryComponents[$expression]['resultVariable'])) { - return $this->walkResultVariable($expression) . $comparison; - } - - // Handle InputParameter mapping inclusion to ParserResult - if ($expression instanceof AST\InputParameter) { - return $this->walkInputParameter($expression) . $comparison; - } - - assert(! is_string($expression)); - - return $expression->dispatch($this) . $comparison; - } - - /** - * Walks down an InExpression AST node, thereby generating the appropriate SQL. - */ - public function walkInListExpression(AST\InListExpression $inExpr): string - { - return $this->walkArithmeticExpression($inExpr->expression) - . ($inExpr->not ? ' NOT' : '') . ' IN (' - . implode(', ', array_map($this->walkInParameter(...), $inExpr->literals)) - . ')'; - } - - /** - * Walks down an InExpression AST node, thereby generating the appropriate SQL. - */ - public function walkInSubselectExpression(AST\InSubselectExpression $inExpr): string - { - return $this->walkArithmeticExpression($inExpr->expression) - . ($inExpr->not ? ' NOT' : '') . ' IN (' - . $this->walkSubselect($inExpr->subselect) - . ')'; - } - - /** - * Walks down an InstanceOfExpression AST node, thereby generating the appropriate SQL. - * - * @throws QueryException - */ - public function walkInstanceOfExpression(AST\InstanceOfExpression $instanceOfExpr): string - { - $sql = ''; - - $dqlAlias = $instanceOfExpr->identificationVariable; - $discrClass = $class = $this->getMetadataForDqlAlias($dqlAlias); - - if ($class->discriminatorColumn) { - $discrClass = $this->em->getClassMetadata($class->rootEntityName); - } - - if ($this->useSqlTableAliases) { - $sql .= $this->getSQLTableAlias($discrClass->getTableName(), $dqlAlias) . '.'; - } - - $sql .= $class->getDiscriminatorColumn()->name . ($instanceOfExpr->not ? ' NOT IN ' : ' IN '); - $sql .= $this->getChildDiscriminatorsFromClassMetadata($discrClass, $instanceOfExpr); - - return $sql; - } - - public function walkInParameter(mixed $inParam): string - { - return $inParam instanceof AST\InputParameter - ? $this->walkInputParameter($inParam) - : $this->walkArithmeticExpression($inParam); - } - - /** - * Walks down a literal that represents an AST node, thereby generating the appropriate SQL. - */ - public function walkLiteral(AST\Literal $literal): string - { - return match ($literal->type) { - AST\Literal::STRING => $this->conn->quote($literal->value), - AST\Literal::BOOLEAN => (string) $this->conn->getDatabasePlatform()->convertBooleans(strtolower($literal->value) === 'true'), - AST\Literal::NUMERIC => (string) $literal->value, - default => throw QueryException::invalidLiteral($literal), - }; - } - - /** - * Walks down a BetweenExpression AST node, thereby generating the appropriate SQL. - */ - public function walkBetweenExpression(AST\BetweenExpression $betweenExpr): string - { - $sql = $this->walkArithmeticExpression($betweenExpr->expression); - - if ($betweenExpr->not) { - $sql .= ' NOT'; - } - - $sql .= ' BETWEEN ' . $this->walkArithmeticExpression($betweenExpr->leftBetweenExpression) - . ' AND ' . $this->walkArithmeticExpression($betweenExpr->rightBetweenExpression); - - return $sql; - } - - /** - * Walks down a LikeExpression AST node, thereby generating the appropriate SQL. - */ - public function walkLikeExpression(AST\LikeExpression $likeExpr): string - { - $stringExpr = $likeExpr->stringExpression; - if (is_string($stringExpr)) { - if (! isset($this->queryComponents[$stringExpr]['resultVariable'])) { - throw new LogicException(sprintf('No result variable found for string expression "%s".', $stringExpr)); - } - - $leftExpr = $this->walkResultVariable($stringExpr); - } else { - $leftExpr = $stringExpr->dispatch($this); - } - - $sql = $leftExpr . ($likeExpr->not ? ' NOT' : '') . ' LIKE '; - - if ($likeExpr->stringPattern instanceof AST\InputParameter) { - $sql .= $this->walkInputParameter($likeExpr->stringPattern); - } elseif ($likeExpr->stringPattern instanceof AST\Functions\FunctionNode) { - $sql .= $this->walkFunction($likeExpr->stringPattern); - } elseif ($likeExpr->stringPattern instanceof AST\PathExpression) { - $sql .= $this->walkPathExpression($likeExpr->stringPattern); - } else { - $sql .= $this->walkLiteral($likeExpr->stringPattern); - } - - if ($likeExpr->escapeChar) { - $sql .= ' ESCAPE ' . $this->walkLiteral($likeExpr->escapeChar); - } - - return $sql; - } - - /** - * Walks down a StateFieldPathExpression AST node, thereby generating the appropriate SQL. - */ - public function walkStateFieldPathExpression(AST\PathExpression $stateFieldPathExpression): string - { - return $this->walkPathExpression($stateFieldPathExpression); - } - - /** - * Walks down a ComparisonExpression AST node, thereby generating the appropriate SQL. - */ - public function walkComparisonExpression(AST\ComparisonExpression $compExpr): string - { - $leftExpr = $compExpr->leftExpression; - $rightExpr = $compExpr->rightExpression; - $sql = ''; - - $sql .= $leftExpr instanceof AST\Node - ? $leftExpr->dispatch($this) - : (is_numeric($leftExpr) ? $leftExpr : $this->conn->quote($leftExpr)); - - $sql .= ' ' . $compExpr->operator . ' '; - - $sql .= $rightExpr instanceof AST\Node - ? $rightExpr->dispatch($this) - : (is_numeric($rightExpr) ? $rightExpr : $this->conn->quote($rightExpr)); - - return $sql; - } - - /** - * Walks down an InputParameter AST node, thereby generating the appropriate SQL. - */ - public function walkInputParameter(AST\InputParameter $inputParam): string - { - $this->parserResult->addParameterMapping($inputParam->name, $this->sqlParamIndex++); - - $parameter = $this->query->getParameter($inputParam->name); - - if ($parameter) { - $type = $parameter->getType(); - if (is_string($type) && Type::hasType($type)) { - return Type::getType($type)->convertToDatabaseValueSQL('?', $this->platform); - } - } - - return '?'; - } - - /** - * Walks down an ArithmeticExpression AST node, thereby generating the appropriate SQL. - */ - public function walkArithmeticExpression(AST\ArithmeticExpression $arithmeticExpr): string - { - return $arithmeticExpr->isSimpleArithmeticExpression() - ? $this->walkSimpleArithmeticExpression($arithmeticExpr->simpleArithmeticExpression) - : '(' . $this->walkSubselect($arithmeticExpr->subselect) . ')'; - } - - /** - * Walks down an SimpleArithmeticExpression AST node, thereby generating the appropriate SQL. - */ - public function walkSimpleArithmeticExpression(AST\Node|string $simpleArithmeticExpr): string - { - if (! ($simpleArithmeticExpr instanceof AST\SimpleArithmeticExpression)) { - return $this->walkArithmeticTerm($simpleArithmeticExpr); - } - - return implode(' ', array_map($this->walkArithmeticTerm(...), $simpleArithmeticExpr->arithmeticTerms)); - } - - /** - * Walks down an ArithmeticTerm AST node, thereby generating the appropriate SQL. - */ - public function walkArithmeticTerm(AST\Node|string $term): string - { - if (is_string($term)) { - return isset($this->queryComponents[$term]) - ? $this->walkResultVariable($this->queryComponents[$term]['token']->value) - : $term; - } - - // Phase 2 AST optimization: Skip processing of ArithmeticTerm - // if only one ArithmeticFactor is defined - if (! ($term instanceof AST\ArithmeticTerm)) { - return $this->walkArithmeticFactor($term); - } - - return implode(' ', array_map($this->walkArithmeticFactor(...), $term->arithmeticFactors)); - } - - /** - * Walks down an ArithmeticFactor that represents an AST node, thereby generating the appropriate SQL. - */ - public function walkArithmeticFactor(AST\Node|string $factor): string - { - if (is_string($factor)) { - return isset($this->queryComponents[$factor]) - ? $this->walkResultVariable($this->queryComponents[$factor]['token']->value) - : $factor; - } - - // Phase 2 AST optimization: Skip processing of ArithmeticFactor - // if only one ArithmeticPrimary is defined - if (! ($factor instanceof AST\ArithmeticFactor)) { - return $this->walkArithmeticPrimary($factor); - } - - $sign = $factor->isNegativeSigned() ? '-' : ($factor->isPositiveSigned() ? '+' : ''); - - return $sign . $this->walkArithmeticPrimary($factor->arithmeticPrimary); - } - - /** - * Walks down an ArithmeticPrimary that represents an AST node, thereby generating the appropriate SQL. - */ - public function walkArithmeticPrimary(AST\Node|string $primary): string - { - if ($primary instanceof AST\SimpleArithmeticExpression) { - return '(' . $this->walkSimpleArithmeticExpression($primary) . ')'; - } - - if ($primary instanceof AST\Node) { - return $primary->dispatch($this); - } - - return $this->walkEntityIdentificationVariable($primary); - } - - /** - * Walks down a StringPrimary that represents an AST node, thereby generating the appropriate SQL. - */ - public function walkStringPrimary(AST\Node|string $stringPrimary): string - { - return is_string($stringPrimary) - ? $this->conn->quote($stringPrimary) - : $stringPrimary->dispatch($this); - } - - /** - * Walks down a ResultVariable that represents an AST node, thereby generating the appropriate SQL. - */ - public function walkResultVariable(string $resultVariable): string - { - if (! isset($this->scalarResultAliasMap[$resultVariable])) { - throw new InvalidArgumentException(sprintf('Unknown result variable: %s', $resultVariable)); - } - - $resultAlias = $this->scalarResultAliasMap[$resultVariable]; - - if (is_array($resultAlias)) { - return implode(', ', $resultAlias); - } - - return $resultAlias; - } - - /** - * @return string The list in parentheses of valid child discriminators from the given class - * - * @throws QueryException - */ - private function getChildDiscriminatorsFromClassMetadata( - ClassMetadata $rootClass, - AST\InstanceOfExpression $instanceOfExpr, - ): string { - $sqlParameterList = []; - $discriminators = []; - foreach ($instanceOfExpr->value as $parameter) { - if ($parameter instanceof AST\InputParameter) { - $this->rsm->discriminatorParameters[$parameter->name] = $parameter->name; - $sqlParameterList[] = $this->walkInParameter($parameter); - continue; - } - - $metadata = $this->em->getClassMetadata($parameter); - - if ($metadata->getName() !== $rootClass->name && ! $metadata->getReflectionClass()->isSubclassOf($rootClass->name)) { - throw QueryException::instanceOfUnrelatedClass($parameter, $rootClass->name); - } - - $discriminators += HierarchyDiscriminatorResolver::resolveDiscriminatorsForClass($metadata, $this->em); - } - - foreach (array_keys($discriminators) as $discriminatorValue) { - $sqlParameterList[] = $rootClass->getDiscriminatorColumn()->type === 'integer' && is_int($discriminatorValue) - ? $discriminatorValue - : $this->conn->quote((string) $discriminatorValue); - } - - return '(' . implode(', ', $sqlParameterList) . ')'; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/TokenType.php b/projects/priceservice/vendor/doctrine/orm/src/Query/TokenType.php deleted file mode 100644 index 47cc791..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/TokenType.php +++ /dev/null @@ -1,93 +0,0 @@ -= 100 - case T_FULLY_QUALIFIED_NAME = 101; - case T_IDENTIFIER = 102; - - // All keyword tokens should be >= 200 - case T_ALL = 200; - case T_AND = 201; - case T_ANY = 202; - case T_AS = 203; - case T_ASC = 204; - case T_AVG = 205; - case T_BETWEEN = 206; - case T_BOTH = 207; - case T_BY = 208; - case T_CASE = 209; - case T_COALESCE = 210; - case T_COUNT = 211; - case T_DELETE = 212; - case T_DESC = 213; - case T_DISTINCT = 214; - case T_ELSE = 215; - case T_EMPTY = 216; - case T_END = 217; - case T_ESCAPE = 218; - case T_EXISTS = 219; - case T_FALSE = 220; - case T_FROM = 221; - case T_GROUP = 222; - case T_HAVING = 223; - case T_HIDDEN = 224; - case T_IN = 225; - case T_INDEX = 226; - case T_INNER = 227; - case T_INSTANCE = 228; - case T_IS = 229; - case T_JOIN = 230; - case T_LEADING = 231; - case T_LEFT = 232; - case T_LIKE = 233; - case T_MAX = 234; - case T_MEMBER = 235; - case T_MIN = 236; - case T_NEW = 237; - case T_NOT = 238; - case T_NULL = 239; - case T_NULLIF = 240; - case T_OF = 241; - case T_OR = 242; - case T_ORDER = 243; - case T_OUTER = 244; - case T_PARTIAL = 245; - case T_SELECT = 246; - case T_SET = 247; - case T_SOME = 248; - case T_SUM = 249; - case T_THEN = 250; - case T_TRAILING = 251; - case T_TRUE = 252; - case T_UPDATE = 253; - case T_WHEN = 254; - case T_WHERE = 255; - case T_WITH = 256; - case T_NAMED = 257; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalker.php deleted file mode 100644 index 964762d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalker.php +++ /dev/null @@ -1,44 +0,0 @@ - $queryComponents The query components (symbol table). - */ - public function __construct(AbstractQuery $query, ParserResult $parserResult, array $queryComponents); - - /** - * Returns internal queryComponents array. - * - * @phpstan-return array - */ - public function getQueryComponents(): array; - - /** - * Walks down a SelectStatement AST node. - */ - public function walkSelectStatement(AST\SelectStatement $selectStatement): void; - - /** - * Walks down an UpdateStatement AST node. - */ - public function walkUpdateStatement(AST\UpdateStatement $updateStatement): void; - - /** - * Walks down a DeleteStatement AST node. - */ - public function walkDeleteStatement(AST\DeleteStatement $deleteStatement): void; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerAdapter.php b/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerAdapter.php deleted file mode 100644 index dc838a9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerAdapter.php +++ /dev/null @@ -1,90 +0,0 @@ -queryComponents; - } - - public function walkSelectStatement(AST\SelectStatement $selectStatement): void - { - } - - public function walkUpdateStatement(AST\UpdateStatement $updateStatement): void - { - } - - public function walkDeleteStatement(AST\DeleteStatement $deleteStatement): void - { - } - - /** - * Sets or overrides a query component for a given dql alias. - * - * @phpstan-param QueryComponent $queryComponent - */ - protected function setQueryComponent(string $dqlAlias, array $queryComponent): void - { - $requiredKeys = ['metadata', 'parent', 'relation', 'map', 'nestingLevel', 'token']; - - if (array_diff($requiredKeys, array_keys($queryComponent))) { - throw QueryException::invalidQueryComponent($dqlAlias); - } - - $this->queryComponents[$dqlAlias] = $queryComponent; - } - - /** - * Retrieves the Query Instance responsible for the current walkers execution. - */ - protected function _getQuery(): AbstractQuery - { - return $this->query; - } - - /** - * Retrieves the ParserResult. - */ - protected function _getParserResult(): ParserResult - { - return $this->parserResult; - } - - protected function getMetadataForDqlAlias(string $dqlAlias): ClassMetadata - { - return $this->queryComponents[$dqlAlias]['metadata'] - ?? throw new LogicException(sprintf('No metadata for DQL alias: %s', $dqlAlias)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerChain.php b/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerChain.php deleted file mode 100644 index ac21aaa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Query/TreeWalkerChain.php +++ /dev/null @@ -1,86 +0,0 @@ -> - */ - private array $walkers = []; - - /** - * {@inheritDoc} - */ - public function __construct( - private readonly AbstractQuery $query, - private readonly ParserResult $parserResult, - private array $queryComponents, - ) { - } - - /** - * Returns the internal queryComponents array. - * - * {@inheritDoc} - */ - public function getQueryComponents(): array - { - return $this->queryComponents; - } - - /** - * Adds a tree walker to the chain. - * - * @param class-string $walkerClass The class of the walker to instantiate. - */ - public function addTreeWalker(string $walkerClass): void - { - $this->walkers[] = $walkerClass; - } - - public function walkSelectStatement(AST\SelectStatement $selectStatement): void - { - foreach ($this->getWalkers() as $walker) { - $walker->walkSelectStatement($selectStatement); - - $this->queryComponents = $walker->getQueryComponents(); - } - } - - public function walkUpdateStatement(AST\UpdateStatement $updateStatement): void - { - foreach ($this->getWalkers() as $walker) { - $walker->walkUpdateStatement($updateStatement); - } - } - - public function walkDeleteStatement(AST\DeleteStatement $deleteStatement): void - { - foreach ($this->getWalkers() as $walker) { - $walker->walkDeleteStatement($deleteStatement); - } - } - - /** @phpstan-return Generator */ - private function getWalkers(): Generator - { - foreach ($this->walkers as $walkerClass) { - yield new $walkerClass($this->query, $this->parserResult, $this->queryComponents); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/QueryBuilder.php b/projects/priceservice/vendor/doctrine/orm/src/QueryBuilder.php deleted file mode 100644 index 26a428b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/QueryBuilder.php +++ /dev/null @@ -1,1423 +0,0 @@ - - */ - private array $dqlParts = [ - 'distinct' => false, - 'select' => [], - 'from' => [], - 'join' => [], - 'set' => [], - 'where' => null, - 'groupBy' => [], - 'having' => null, - 'orderBy' => [], - ]; - - private QueryType $type = QueryType::Select; - - /** - * The complete DQL string for this query. - */ - private string|null $dql = null; - - /** - * The query parameters. - * - * @phpstan-var ArrayCollection - */ - private ArrayCollection $parameters; - - /** - * The index of the first result to retrieve. - */ - private int $firstResult = 0; - - /** - * The maximum number of results to retrieve. - */ - private int|null $maxResults = null; - - /** - * Keeps root entity alias names for join entities. - * - * @phpstan-var array - */ - private array $joinRootAliases = []; - - /** - * Whether to use second level cache, if available. - */ - protected bool $cacheable = false; - - /** - * Second level cache region name. - */ - protected string|null $cacheRegion = null; - - /** - * Second level query cache mode. - * - * @phpstan-var Cache::MODE_*|null - */ - protected int|null $cacheMode = null; - - protected int $lifetime = 0; - - /** - * The counter of bound parameters. - * - * @var int<0, max> - */ - private int $boundCounter = 0; - - /** - * Initializes a new QueryBuilder that uses the given EntityManager. - * - * @param EntityManagerInterface $em The EntityManager to use. - */ - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->parameters = new ArrayCollection(); - } - - final protected function getType(): QueryType - { - return $this->type; - } - - /** - * Gets an ExpressionBuilder used for object-oriented construction of query expressions. - * This producer method is intended for convenient inline usage. Example: - * - * - * $qb = $em->createQueryBuilder(); - * $qb - * ->select('u') - * ->from('User', 'u') - * ->where($qb->expr()->eq('u.id', 1)); - * - * - * For more complex expression construction, consider storing the expression - * builder object in a local variable. - */ - public function expr(): Expr - { - return $this->em->getExpressionBuilder(); - } - - /** - * Enable/disable second level query (result) caching for this query. - * - * @return $this - */ - public function setCacheable(bool $cacheable): static - { - $this->cacheable = $cacheable; - - return $this; - } - - /** - * Are the query results enabled for second level cache? - */ - public function isCacheable(): bool - { - return $this->cacheable; - } - - /** @return $this */ - public function setCacheRegion(string $cacheRegion): static - { - $this->cacheRegion = $cacheRegion; - - return $this; - } - - /** - * Obtain the name of the second level query cache region in which query results will be stored - * - * @return string|null The cache region name; NULL indicates the default region. - */ - public function getCacheRegion(): string|null - { - return $this->cacheRegion; - } - - public function getLifetime(): int - { - return $this->lifetime; - } - - /** - * Sets the life-time for this query into second level cache. - * - * @return $this - */ - public function setLifetime(int $lifetime): static - { - $this->lifetime = $lifetime; - - return $this; - } - - /** @phpstan-return Cache::MODE_*|null */ - public function getCacheMode(): int|null - { - return $this->cacheMode; - } - - /** - * @phpstan-param Cache::MODE_* $cacheMode - * - * @return $this - */ - public function setCacheMode(int $cacheMode): static - { - $this->cacheMode = $cacheMode; - - return $this; - } - - /** - * Gets the associated EntityManager for this query builder. - */ - public function getEntityManager(): EntityManagerInterface - { - return $this->em; - } - - /** - * Gets the complete DQL string formed by the current specifications of this QueryBuilder. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * echo $qb->getDql(); // SELECT u FROM User u - * - */ - public function getDQL(): string - { - return $this->dql ??= match ($this->type) { - QueryType::Select => $this->getDQLForSelect(), - QueryType::Delete => $this->getDQLForDelete(), - QueryType::Update => $this->getDQLForUpdate(), - }; - } - - /** - * Constructs a Query instance from the current specifications of the builder. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * $q = $qb->getQuery(); - * $results = $q->execute(); - * - */ - public function getQuery(): Query - { - $parameters = clone $this->parameters; - $query = $this->em->createQuery($this->getDQL()) - ->setParameters($parameters) - ->setFirstResult($this->firstResult) - ->setMaxResults($this->maxResults); - - if ($this->lifetime) { - $query->setLifetime($this->lifetime); - } - - if ($this->cacheMode) { - $query->setCacheMode($this->cacheMode); - } - - if ($this->cacheable) { - $query->setCacheable($this->cacheable); - } - - if ($this->cacheRegion) { - $query->setCacheRegion($this->cacheRegion); - } - - return $query; - } - - /** - * Finds the root entity alias of the joined entity. - * - * @param string $alias The alias of the new join entity - * @param string $parentAlias The parent entity alias of the join relationship - */ - private function findRootAlias(string $alias, string $parentAlias): string - { - if (in_array($parentAlias, $this->getRootAliases(), true)) { - $rootAlias = $parentAlias; - } elseif (isset($this->joinRootAliases[$parentAlias])) { - $rootAlias = $this->joinRootAliases[$parentAlias]; - } else { - // Should never happen with correct joining order. Might be - // thoughtful to throw exception instead. - // @phpstan-ignore method.deprecated - $rootAlias = $this->getRootAlias(); - } - - $this->joinRootAliases[$alias] = $rootAlias; - - return $rootAlias; - } - - /** - * Gets the FIRST root alias of the query. This is the first entity alias involved - * in the construction of the query. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * - * echo $qb->getRootAlias(); // u - * - * - * @deprecated Please use $qb->getRootAliases() instead. - * - * @throws RuntimeException - */ - public function getRootAlias(): string - { - $aliases = $this->getRootAliases(); - - if (! isset($aliases[0])) { - throw new RuntimeException('No alias was set before invoking getRootAlias().'); - } - - return $aliases[0]; - } - - /** - * Gets the root aliases of the query. This is the entity aliases involved - * in the construction of the query. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * - * $qb->getRootAliases(); // array('u') - * - * - * @return string[] - * @phpstan-return list - */ - public function getRootAliases(): array - { - $aliases = []; - - foreach ($this->dqlParts['from'] as &$fromClause) { - if (is_string($fromClause)) { - $spacePos = strrpos($fromClause, ' '); - - /** @phpstan-var class-string $from */ - $from = substr($fromClause, 0, $spacePos); - $alias = substr($fromClause, $spacePos + 1); - - $fromClause = new Query\Expr\From($from, $alias); - } - - $aliases[] = $fromClause->getAlias(); - } - - return $aliases; - } - - /** - * Gets all the aliases that have been used in the query. - * Including all select root aliases and join aliases - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->join('u.articles','a'); - * - * $qb->getAllAliases(); // array('u','a') - * - * - * @return string[] - * @phpstan-return list - */ - public function getAllAliases(): array - { - return [...$this->getRootAliases(), ...array_keys($this->joinRootAliases)]; - } - - /** - * Gets the root entities of the query. This is the entity classes involved - * in the construction of the query. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * - * $qb->getRootEntities(); // array('User') - * - * - * @return string[] - * @phpstan-return list - */ - public function getRootEntities(): array - { - $entities = []; - - foreach ($this->dqlParts['from'] as &$fromClause) { - if (is_string($fromClause)) { - $spacePos = strrpos($fromClause, ' '); - - /** @phpstan-var class-string $from */ - $from = substr($fromClause, 0, $spacePos); - $alias = substr($fromClause, $spacePos + 1); - - $fromClause = new Query\Expr\From($from, $alias); - } - - $entities[] = $fromClause->getFrom(); - } - - return $entities; - } - - /** - * Sets a query parameter for the query being constructed. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->where('u.id = :user_id') - * ->setParameter('user_id', 1); - * - * - * @param string|int $key The parameter position or name. - * @param ParameterType|ArrayParameterType|string|int|null $type ParameterType::*, ArrayParameterType::* or \Doctrine\DBAL\Types\Type::* constant - * - * @return $this - */ - public function setParameter(string|int $key, mixed $value, ParameterType|ArrayParameterType|string|int|null $type = null): static - { - $existingParameter = $this->getParameter($key); - - if ($existingParameter !== null) { - $existingParameter->setValue($value, $type); - - return $this; - } - - $this->parameters->add(new Parameter($key, $value, $type)); - - return $this; - } - - /** - * Sets a collection of query parameters for the query being constructed. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->where('u.id = :user_id1 OR u.id = :user_id2') - * ->setParameters(new ArrayCollection(array( - * new Parameter('user_id1', 1), - * new Parameter('user_id2', 2) - * ))); - * - * - * @phpstan-param ArrayCollection $parameters - * - * @return $this - */ - public function setParameters(ArrayCollection $parameters): static - { - $this->parameters = $parameters; - - return $this; - } - - /** - * Gets all defined query parameters for the query being constructed. - * - * @phpstan-return ArrayCollection - */ - public function getParameters(): ArrayCollection - { - return $this->parameters; - } - - /** - * Gets a (previously set) query parameter of the query being constructed. - */ - public function getParameter(string|int $key): Parameter|null - { - $key = Parameter::normalizeName($key); - - $filteredParameters = $this->parameters->filter( - static fn (Parameter $parameter): bool => $key === $parameter->getName(), - ); - - return ! $filteredParameters->isEmpty() ? $filteredParameters->first() : null; - } - - /** - * Sets the position of the first result to retrieve (the "offset"). - * - * @return $this - */ - public function setFirstResult(int|null $firstResult): static - { - $this->firstResult = (int) $firstResult; - - return $this; - } - - /** - * Gets the position of the first result the query object was set to retrieve (the "offset"). - */ - public function getFirstResult(): int - { - return $this->firstResult; - } - - /** - * Sets the maximum number of results to retrieve (the "limit"). - * - * @return $this - */ - public function setMaxResults(int|null $maxResults): static - { - $this->maxResults = $maxResults; - - return $this; - } - - /** - * Gets the maximum number of results the query object was set to retrieve (the "limit"). - * Returns NULL if {@link setMaxResults} was not applied to this query builder. - */ - public function getMaxResults(): int|null - { - return $this->maxResults; - } - - /** - * Either appends to or replaces a single, generic query part. - * - * The available parts are: 'select', 'from', 'join', 'set', 'where', - * 'groupBy', 'having' and 'orderBy'. - * - * @phpstan-param string|object|list|array{join: array} $dqlPart - * - * @return $this - */ - public function add(string $dqlPartName, string|object|array $dqlPart, bool $append = false): static - { - if ($append && ($dqlPartName === 'where' || $dqlPartName === 'having')) { - throw new InvalidArgumentException( - "Using \$append = true does not have an effect with 'where' or 'having' " . - 'parts. See QueryBuilder#andWhere() for an example for correct usage.', - ); - } - - $isMultiple = is_array($this->dqlParts[$dqlPartName]) - && ! ($dqlPartName === 'join' && ! $append); - - // Allow adding any part retrieved from self::getDQLParts(). - if (is_array($dqlPart) && $dqlPartName !== 'join') { - $dqlPart = reset($dqlPart); - } - - // This is introduced for backwards compatibility reasons. - // TODO: Remove for 3.0 - if ($dqlPartName === 'join') { - $newDqlPart = []; - - foreach ($dqlPart as $k => $v) { - // @phpstan-ignore method.deprecated - $k = is_numeric($k) ? $this->getRootAlias() : $k; - - $newDqlPart[$k] = $v; - } - - $dqlPart = $newDqlPart; - } - - if ($append && $isMultiple) { - if (is_array($dqlPart)) { - $key = key($dqlPart); - - $this->dqlParts[$dqlPartName][$key][] = $dqlPart[$key]; - } else { - $this->dqlParts[$dqlPartName][] = $dqlPart; - } - } else { - $this->dqlParts[$dqlPartName] = $isMultiple ? [$dqlPart] : $dqlPart; - } - - $this->dql = null; - - return $this; - } - - /** - * Specifies an item that is to be returned in the query result. - * Replaces any previously specified selections, if any. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u', 'p') - * ->from('User', 'u') - * ->leftJoin('u.Phonenumbers', 'p'); - * - * - * @return $this - */ - public function select(mixed ...$select): static - { - self::validateVariadicParameter($select); - - $this->type = QueryType::Select; - - if ($select === []) { - return $this; - } - - return $this->add('select', new Expr\Select($select), false); - } - - /** - * Adds a DISTINCT flag to this query. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->distinct() - * ->from('User', 'u'); - * - * - * @return $this - */ - public function distinct(bool $flag = true): static - { - if ($this->dqlParts['distinct'] !== $flag) { - $this->dqlParts['distinct'] = $flag; - $this->dql = null; - } - - return $this; - } - - /** - * Adds an item that is to be returned in the query result. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->addSelect('p') - * ->from('User', 'u') - * ->leftJoin('u.Phonenumbers', 'p'); - * - * - * @return $this - */ - public function addSelect(mixed ...$select): static - { - self::validateVariadicParameter($select); - - $this->type = QueryType::Select; - - if ($select === []) { - return $this; - } - - return $this->add('select', new Expr\Select($select), true); - } - - /** - * Turns the query being built into a bulk delete query that ranges over - * a certain entity type. - * - * - * $qb = $em->createQueryBuilder() - * ->delete('User', 'u') - * ->where('u.id = :user_id') - * ->setParameter('user_id', 1); - * - * - * @param class-string|null $delete The class/type whose instances are subject to the deletion. - * @param string|null $alias The class/type alias used in the constructed query. - * - * @return $this - */ - public function delete(string|null $delete = null, string|null $alias = null): static - { - $this->type = QueryType::Delete; - - if (! $delete) { - return $this; - } - - if (! $alias) { - throw new InvalidArgumentException(sprintf( - '%s(): The alias for entity %s must not be omitted.', - __METHOD__, - $delete, - )); - } - - return $this->add('from', new Expr\From($delete, $alias)); - } - - /** - * Turns the query being built into a bulk update query that ranges over - * a certain entity type. - * - * - * $qb = $em->createQueryBuilder() - * ->update('User', 'u') - * ->set('u.password', '?1') - * ->where('u.id = ?2'); - * - * - * @param class-string|null $update The class/type whose instances are subject to the update. - * @param string|null $alias The class/type alias used in the constructed query. - * - * @return $this - */ - public function update(string|null $update = null, string|null $alias = null): static - { - $this->type = QueryType::Update; - - if (! $update) { - return $this; - } - - if (! $alias) { - throw new InvalidArgumentException(sprintf( - '%s(): The alias for entity %s must not be omitted.', - __METHOD__, - $update, - )); - } - - return $this->add('from', new Expr\From($update, $alias)); - } - - /** - * Creates and adds a query root corresponding to the entity identified by the given alias, - * forming a cartesian product with any existing query roots. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u'); - * - * - * @param class-string $from The class name. - * @param string $alias The alias of the class. - * @param string|null $indexBy The index for the from. - * - * @return $this - */ - public function from(string $from, string $alias, string|null $indexBy = null): static - { - return $this->add('from', new Expr\From($from, $alias, $indexBy), true); - } - - /** - * Updates a query root corresponding to an entity setting its index by. This method is intended to be used with - * EntityRepository->createQueryBuilder(), which creates the initial FROM clause and do not allow you to update it - * setting an index by. - * - * - * $qb = $userRepository->createQueryBuilder('u') - * ->indexBy('u', 'u.id'); - * - * // Is equivalent to... - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u', 'u.id'); - * - * - * @return $this - * - * @throws Query\QueryException - */ - public function indexBy(string $alias, string $indexBy): static - { - $rootAliases = $this->getRootAliases(); - - if (! in_array($alias, $rootAliases, true)) { - throw new Query\QueryException( - sprintf('Specified root alias %s must be set before invoking indexBy().', $alias), - ); - } - - foreach ($this->dqlParts['from'] as &$fromClause) { - assert($fromClause instanceof Expr\From); - if ($fromClause->getAlias() !== $alias) { - continue; - } - - $fromClause = new Expr\From($fromClause->getFrom(), $fromClause->getAlias(), $indexBy); - } - - return $this; - } - - /** - * Creates and adds a join over an entity association to the query. - * - * The entities in the joined association will be fetched as part of the query - * result if the alias used for the joined association is placed in the select - * expressions. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->join('u.Phonenumbers', 'p', Expr\Join::WITH, 'p.is_primary = 1'); - * - * - * @phpstan-param Expr\Join::ON|Expr\Join::WITH|null $conditionType - * - * @return $this - */ - public function join( - string $join, - string $alias, - string|null $conditionType = null, - string|Expr\Composite|Expr\Comparison|Expr\Func|null $condition = null, - string|null $indexBy = null, - ): static { - return $this->innerJoin($join, $alias, $conditionType, $condition, $indexBy); - } - - /** - * Creates and adds a join over an entity association to the query. - * - * The entities in the joined association will be fetched as part of the query - * result if the alias used for the joined association is placed in the select - * expressions. - * - * [php] - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->innerJoin('u.Phonenumbers', 'p', Expr\Join::WITH, 'p.is_primary = 1'); - * - * @phpstan-param Expr\Join::ON|Expr\Join::WITH|null $conditionType - * - * @return $this - */ - public function innerJoin( - string $join, - string $alias, - string|null $conditionType = null, - string|Expr\Composite|Expr\Comparison|Expr\Func|null $condition = null, - string|null $indexBy = null, - ): static { - $parentAlias = substr($join, 0, (int) strpos($join, '.')); - - $rootAlias = $this->findRootAlias($alias, $parentAlias); - - $join = new Expr\Join( - Expr\Join::INNER_JOIN, - $join, - $alias, - $conditionType, - $condition, - $indexBy, - ); - - return $this->add('join', [$rootAlias => $join], true); - } - - /** - * Creates and adds a left join over an entity association to the query. - * - * The entities in the joined association will be fetched as part of the query - * result if the alias used for the joined association is placed in the select - * expressions. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->leftJoin('u.Phonenumbers', 'p', Expr\Join::WITH, 'p.is_primary = 1'); - * - * - * @phpstan-param Expr\Join::ON|Expr\Join::WITH|null $conditionType - * - * @return $this - */ - public function leftJoin( - string $join, - string $alias, - string|null $conditionType = null, - string|Expr\Composite|Expr\Comparison|Expr\Func|null $condition = null, - string|null $indexBy = null, - ): static { - $parentAlias = substr($join, 0, (int) strpos($join, '.')); - - $rootAlias = $this->findRootAlias($alias, $parentAlias); - - $join = new Expr\Join( - Expr\Join::LEFT_JOIN, - $join, - $alias, - $conditionType, - $condition, - $indexBy, - ); - - return $this->add('join', [$rootAlias => $join], true); - } - - /** - * Sets a new value for a field in a bulk update query. - * - * - * $qb = $em->createQueryBuilder() - * ->update('User', 'u') - * ->set('u.password', '?1') - * ->where('u.id = ?2'); - * - * - * @return $this - */ - public function set(string $key, mixed $value): static - { - return $this->add('set', new Expr\Comparison($key, Expr\Comparison::EQ, $value), true); - } - - /** - * Specifies one or more restrictions to the query result. - * Replaces any previously specified restrictions, if any. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->where('u.id = ?'); - * - * // You can optionally programmatically build and/or expressions - * $qb = $em->createQueryBuilder(); - * - * $or = $qb->expr()->orX(); - * $or->add($qb->expr()->eq('u.id', 1)); - * $or->add($qb->expr()->eq('u.id', 2)); - * - * $qb->update('User', 'u') - * ->set('u.password', '?') - * ->where($or); - * - * - * @return $this - */ - public function where(mixed ...$predicates): static - { - self::validateVariadicParameter($predicates); - - if (! (count($predicates) === 1 && $predicates[0] instanceof Expr\Composite)) { - $predicates = new Expr\Andx($predicates); - } - - return $this->add('where', $predicates); - } - - /** - * Adds one or more restrictions to the query results, forming a logical - * conjunction with any previously specified restrictions. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->where('u.username LIKE ?') - * ->andWhere('u.is_active = 1'); - * - * - * @see where() - * - * @return $this - */ - public function andWhere(mixed ...$where): static - { - self::validateVariadicParameter($where); - - $dql = $this->getDQLPart('where'); - - if ($dql instanceof Expr\Andx) { - $dql->addMultiple($where); - } else { - array_unshift($where, $dql); - $dql = new Expr\Andx($where); - } - - return $this->add('where', $dql); - } - - /** - * Adds one or more restrictions to the query results, forming a logical - * disjunction with any previously specified restrictions. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->where('u.id = 1') - * ->orWhere('u.id = 2'); - * - * - * @see where() - * - * @return $this - */ - public function orWhere(mixed ...$where): static - { - self::validateVariadicParameter($where); - - $dql = $this->getDQLPart('where'); - - if ($dql instanceof Expr\Orx) { - $dql->addMultiple($where); - } else { - array_unshift($where, $dql); - $dql = new Expr\Orx($where); - } - - return $this->add('where', $dql); - } - - /** - * Specifies a grouping over the results of the query. - * Replaces any previously specified groupings, if any. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->groupBy('u.id'); - * - * - * @return $this - */ - public function groupBy(string ...$groupBy): static - { - self::validateVariadicParameter($groupBy); - - return $this->add('groupBy', new Expr\GroupBy($groupBy)); - } - - /** - * Adds a grouping expression to the query. - * - * - * $qb = $em->createQueryBuilder() - * ->select('u') - * ->from('User', 'u') - * ->groupBy('u.lastLogin') - * ->addGroupBy('u.createdAt'); - * - * - * @return $this - */ - public function addGroupBy(string ...$groupBy): static - { - self::validateVariadicParameter($groupBy); - - return $this->add('groupBy', new Expr\GroupBy($groupBy), true); - } - - /** - * Specifies a restriction over the groups of the query. - * Replaces any previous having restrictions, if any. - * - * @return $this - */ - public function having(mixed ...$having): static - { - self::validateVariadicParameter($having); - - if (! (count($having) === 1 && ($having[0] instanceof Expr\Andx || $having[0] instanceof Expr\Orx))) { - $having = new Expr\Andx($having); - } - - return $this->add('having', $having); - } - - /** - * Adds a restriction over the groups of the query, forming a logical - * conjunction with any existing having restrictions. - * - * @return $this - */ - public function andHaving(mixed ...$having): static - { - self::validateVariadicParameter($having); - - $dql = $this->getDQLPart('having'); - - if ($dql instanceof Expr\Andx) { - $dql->addMultiple($having); - } else { - array_unshift($having, $dql); - $dql = new Expr\Andx($having); - } - - return $this->add('having', $dql); - } - - /** - * Adds a restriction over the groups of the query, forming a logical - * disjunction with any existing having restrictions. - * - * @return $this - */ - public function orHaving(mixed ...$having): static - { - self::validateVariadicParameter($having); - - $dql = $this->getDQLPart('having'); - - if ($dql instanceof Expr\Orx) { - $dql->addMultiple($having); - } else { - array_unshift($having, $dql); - $dql = new Expr\Orx($having); - } - - return $this->add('having', $dql); - } - - /** - * Specifies an ordering for the query results. - * Replaces any previously specified orderings, if any. - * - * @return $this - */ - public function orderBy(string|Expr\OrderBy $sort, string|null $order = null): static - { - $orderBy = $sort instanceof Expr\OrderBy ? $sort : new Expr\OrderBy($sort, $order); - - return $this->add('orderBy', $orderBy); - } - - /** - * Adds an ordering to the query results. - * - * @return $this - */ - public function addOrderBy(string|Expr\OrderBy $sort, string|null $order = null): static - { - $orderBy = $sort instanceof Expr\OrderBy ? $sort : new Expr\OrderBy($sort, $order); - - return $this->add('orderBy', $orderBy, true); - } - - /** - * Adds criteria to the query. - * - * Adds where expressions with AND operator. - * Adds orderings. - * Overrides firstResult and maxResults if they're set. - * - * @return $this - * - * @throws Query\QueryException - */ - public function addCriteria(Criteria $criteria): static - { - $allAliases = $this->getAllAliases(); - if (! isset($allAliases[0])) { - throw new Query\QueryException('No aliases are set before invoking addCriteria().'); - } - - $visitor = new QueryExpressionVisitor($this->getAllAliases()); - - $whereExpression = $criteria->getWhereExpression(); - if ($whereExpression) { - $this->andWhere($visitor->dispatch($whereExpression)); - foreach ($visitor->getParameters() as $parameter) { - $this->parameters->add($parameter); - } - } - - foreach ($criteria->orderings() as $sort => $order) { - $hasValidAlias = false; - foreach ($allAliases as $alias) { - if (str_starts_with($sort . '.', $alias . '.')) { - $hasValidAlias = true; - break; - } - } - - if (! $hasValidAlias) { - $sort = $allAliases[0] . '.' . $sort; - } - - $this->addOrderBy($sort, $order->value); - } - - // Overwrite limits only if they was set in criteria - $firstResult = $criteria->getFirstResult(); - if ($firstResult > 0) { - $this->setFirstResult($firstResult); - } - - $maxResults = $criteria->getMaxResults(); - if ($maxResults !== null) { - $this->setMaxResults($maxResults); - } - - return $this; - } - - /** - * Gets a query part by its name. - */ - public function getDQLPart(string $queryPartName): mixed - { - return $this->dqlParts[$queryPartName]; - } - - /** - * Gets all query parts. - * - * @phpstan-return array $dqlParts - */ - public function getDQLParts(): array - { - return $this->dqlParts; - } - - private function getDQLForDelete(): string - { - return 'DELETE' - . $this->getReducedDQLQueryPart('from', ['pre' => ' ', 'separator' => ', ']) - . $this->getReducedDQLQueryPart('where', ['pre' => ' WHERE ']) - . $this->getReducedDQLQueryPart('orderBy', ['pre' => ' ORDER BY ', 'separator' => ', ']); - } - - private function getDQLForUpdate(): string - { - return 'UPDATE' - . $this->getReducedDQLQueryPart('from', ['pre' => ' ', 'separator' => ', ']) - . $this->getReducedDQLQueryPart('set', ['pre' => ' SET ', 'separator' => ', ']) - . $this->getReducedDQLQueryPart('where', ['pre' => ' WHERE ']) - . $this->getReducedDQLQueryPart('orderBy', ['pre' => ' ORDER BY ', 'separator' => ', ']); - } - - private function getDQLForSelect(): string - { - $dql = 'SELECT' - . ($this->dqlParts['distinct'] === true ? ' DISTINCT' : '') - . $this->getReducedDQLQueryPart('select', ['pre' => ' ', 'separator' => ', ']); - - $fromParts = $this->getDQLPart('from'); - $joinParts = $this->getDQLPart('join'); - $fromClauses = []; - - // Loop through all FROM clauses - if (! empty($fromParts)) { - $dql .= ' FROM '; - - foreach ($fromParts as $from) { - $fromClause = (string) $from; - - if ($from instanceof Expr\From && isset($joinParts[$from->getAlias()])) { - foreach ($joinParts[$from->getAlias()] as $join) { - $fromClause .= ' ' . ((string) $join); - } - } - - $fromClauses[] = $fromClause; - } - } - - $dql .= implode(', ', $fromClauses) - . $this->getReducedDQLQueryPart('where', ['pre' => ' WHERE ']) - . $this->getReducedDQLQueryPart('groupBy', ['pre' => ' GROUP BY ', 'separator' => ', ']) - . $this->getReducedDQLQueryPart('having', ['pre' => ' HAVING ']) - . $this->getReducedDQLQueryPart('orderBy', ['pre' => ' ORDER BY ', 'separator' => ', ']); - - return $dql; - } - - /** @phpstan-param array $options */ - private function getReducedDQLQueryPart(string $queryPartName, array $options = []): string - { - $queryPart = $this->getDQLPart($queryPartName); - - if (empty($queryPart)) { - return $options['empty'] ?? ''; - } - - return ($options['pre'] ?? '') - . (is_array($queryPart) ? implode($options['separator'], $queryPart) : $queryPart) - . ($options['post'] ?? ''); - } - - /** - * Resets DQL parts. - * - * @param string[]|null $parts - * @phpstan-param list|null $parts - * - * @return $this - */ - public function resetDQLParts(array|null $parts = null): static - { - if ($parts === null) { - $parts = array_keys($this->dqlParts); - } - - foreach ($parts as $part) { - $this->resetDQLPart($part); - } - - return $this; - } - - /** - * Resets single DQL part. - * - * @return $this - */ - public function resetDQLPart(string $part): static - { - $this->dqlParts[$part] = is_array($this->dqlParts[$part]) ? [] : null; - $this->dql = null; - - return $this; - } - - /** - * Creates a new named parameter and bind the value $value to it. - * - * The parameter $value specifies the value that you want to bind. If - * $placeholder is not provided createNamedParameter() will automatically - * create a placeholder for you. An automatic placeholder will be of the - * name ':dcValue1', ':dcValue2' etc. - * - * Example: - * - * $qb = $em->createQueryBuilder(); - * $qb - * ->select('u') - * ->from('User', 'u') - * ->where('u.username = ' . $qb->createNamedParameter('Foo', Types::STRING)) - * ->orWhere('u.username = ' . $qb->createNamedParameter('Bar', Types::STRING)) - * - * - * @param ParameterType|ArrayParameterType|string|int|null $type ParameterType::*, ArrayParameterType::* or \Doctrine\DBAL\Types\Type::* constant - * @param non-empty-string|null $placeholder The name to bind with. The string must start with a colon ':'. - * - * @return non-empty-string the placeholder name used. - */ - public function createNamedParameter(mixed $value, ParameterType|ArrayParameterType|string|int|null $type = null, string|null $placeholder = null): string - { - if ($placeholder === null) { - $this->boundCounter++; - $placeholder = ':dcValue' . $this->boundCounter; - } - - $this->setParameter(substr($placeholder, 1), $value, $type); - - return $placeholder; - } - - /** - * Gets a string representation of this QueryBuilder which corresponds to - * the final DQL query being constructed. - */ - public function __toString(): string - { - return $this->getDQL(); - } - - /** - * Deep clones all expression objects in the DQL parts. - * - * @return void - */ - public function __clone() - { - foreach ($this->dqlParts as $part => $elements) { - if (is_array($this->dqlParts[$part])) { - foreach ($this->dqlParts[$part] as $idx => $element) { - if (is_object($element)) { - $this->dqlParts[$part][$idx] = clone $element; - } - } - } elseif (is_object($elements)) { - $this->dqlParts[$part] = clone $elements; - } - } - - $parameters = []; - - foreach ($this->parameters as $parameter) { - $parameters[] = clone $parameter; - } - - $this->parameters = new ArrayCollection($parameters); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/QueryType.php b/projects/priceservice/vendor/doctrine/orm/src/QueryType.php deleted file mode 100644 index 209bf56..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/QueryType.php +++ /dev/null @@ -1,12 +0,0 @@ - - */ - private array $repositoryList = []; - - public function getRepository(EntityManagerInterface $entityManager, string $entityName): EntityRepository - { - $repositoryHash = $entityManager->getClassMetadata($entityName)->getName() . spl_object_id($entityManager); - - return $this->repositoryList[$repositoryHash] ??= $this->createRepository($entityManager, $entityName); - } - - /** - * Create a new repository instance for an entity class. - * - * @param EntityManagerInterface $entityManager The EntityManager instance. - * @param string $entityName The name of the entity. - */ - private function createRepository( - EntityManagerInterface $entityManager, - string $entityName, - ): EntityRepository { - $metadata = $entityManager->getClassMetadata($entityName); - $repositoryClassName = $metadata->customRepositoryClassName - ?: $entityManager->getConfiguration()->getDefaultRepositoryClassName(); - - return new $repositoryClassName($entityManager, $metadata); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Repository/Exception/InvalidFindByCall.php b/projects/priceservice/vendor/doctrine/orm/src/Repository/Exception/InvalidFindByCall.php deleted file mode 100644 index c5dd015..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Repository/Exception/InvalidFindByCall.php +++ /dev/null @@ -1,21 +0,0 @@ - $entityName The name of the entity. - * - * @return EntityRepository - * - * @template T of object - */ - public function getRepository(EntityManagerInterface $entityManager, string $entityName): EntityRepository; -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/AttachEntityListenersListener.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/AttachEntityListenersListener.php deleted file mode 100644 index 9203cfe..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/AttachEntityListenersListener.php +++ /dev/null @@ -1,69 +0,0 @@ -> - */ - private array $entityListeners = []; - - /** - * Adds an entity listener for a specific entity. - * - * @param class-string $entityClass The entity to attach the listener. - * @param class-string $listenerClass The listener class. - * @param Events::*|null $eventName The entity lifecycle event. - * @param non-falsy-string|null $listenerCallback The listener callback method or NULL to use $eventName. - */ - public function addEntityListener( - string $entityClass, - string $listenerClass, - string|null $eventName = null, - string|null $listenerCallback = null, - ): void { - $this->entityListeners[ltrim($entityClass, '\\')][] = [ - 'event' => $eventName, - 'class' => $listenerClass, - 'method' => $listenerCallback ?? $eventName, - ]; - } - - /** - * Processes event and attach the entity listener. - */ - public function loadClassMetadata(LoadClassMetadataEventArgs $event): void - { - $metadata = $event->getClassMetadata(); - - if (! isset($this->entityListeners[$metadata->name])) { - return; - } - - foreach ($this->entityListeners[$metadata->name] as $listener) { - if ($listener['event'] === null) { - EntityListenerBuilder::bindEntityListener($metadata, $listener['class']); - } else { - assert($listener['method'] !== null); - $metadata->addEntityListener($listener['event'], $listener['class'], $listener['method']); - } - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ApplicationCompatibility.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ApplicationCompatibility.php deleted file mode 100644 index 54c2a76..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ApplicationCompatibility.php +++ /dev/null @@ -1,28 +0,0 @@ -addCommand($command); - } - - return $application->add($command); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/AbstractEntityManagerCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/AbstractEntityManagerCommand.php deleted file mode 100644 index 370f4fb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/AbstractEntityManagerCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -getOption('em') === null - ? $this->entityManagerProvider->getDefaultManager() - : $this->entityManagerProvider->getManager($input->getOption('em')); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/CollectionRegionCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/CollectionRegionCommand.php deleted file mode 100644 index b4c6efa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/CollectionRegionCommand.php +++ /dev/null @@ -1,119 +0,0 @@ -setName('orm:clear-cache:region:collection') - ->setDescription('Clear a second-level cache collection region') - ->addArgument('owner-class', InputArgument::OPTIONAL, 'The owner entity name.') - ->addArgument('association', InputArgument::OPTIONAL, 'The association collection name.') - ->addArgument('owner-id', InputArgument::OPTIONAL, 'The owner identifier.') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.') - ->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.') - ->setHelp(<<<'EOT' -The %command.name% command is meant to clear a second-level cache collection regions for an associated Entity Manager. -It is possible to delete/invalidate all collection region, a specific collection region or flushes the cache provider. - -The execution type differ on how you execute the command. -If you want to invalidate all entries for an collection region this command would do the work: - -%command.name% 'Entities\MyEntity' 'collectionName' - -To invalidate a specific entry you should use : - -%command.name% 'Entities\MyEntity' 'collectionName' 1 - -If you want to invalidate all entries for the all collection regions: - -%command.name% --all - -Alternatively, if you want to flush the configured cache provider for an collection region use this command: - -%command.name% 'Entities\MyEntity' 'collectionName' --flush - -Finally, be aware that if --flush option is passed, -not all cache providers are able to flush entries, because of a limitation of its execution nature. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $ownerClass = $input->getArgument('owner-class'); - $assoc = $input->getArgument('association'); - $ownerId = $input->getArgument('owner-id'); - $cache = $em->getCache(); - - if (! $cache instanceof Cache) { - throw new InvalidArgumentException('No second-level cache is configured on the given EntityManager.'); - } - - if (( ! $ownerClass || ! $assoc) && ! $input->getOption('all')) { - throw new InvalidArgumentException('Missing arguments "--owner-class" "--association"'); - } - - if ($input->getOption('flush')) { - $cache->getCollectionCacheRegion($ownerClass, $assoc) - ->evictAll(); - - $ui->comment( - sprintf( - 'Flushing cache provider configured for "%s#%s"', - $ownerClass, - $assoc, - ), - ); - - return 0; - } - - if ($input->getOption('all')) { - $ui->comment('Clearing all second-level cache collection regions'); - - $cache->evictEntityRegions(); - - return 0; - } - - if ($ownerId) { - $ui->comment( - sprintf( - 'Clearing second-level cache entry for collection "%s#%s" owner entity identified by "%s"', - $ownerClass, - $assoc, - $ownerId, - ), - ); - $cache->evictCollection($ownerClass, $assoc, $ownerId); - - return 0; - } - - $ui->comment(sprintf('Clearing second-level cache for collection "%s#%s"', $ownerClass, $assoc)); - $cache->evictCollectionRegion($ownerClass, $assoc); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/EntityRegionCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/EntityRegionCommand.php deleted file mode 100644 index c5f2d65..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/EntityRegionCommand.php +++ /dev/null @@ -1,110 +0,0 @@ -setName('orm:clear-cache:region:entity') - ->setDescription('Clear a second-level cache entity region') - ->addArgument('entity-class', InputArgument::OPTIONAL, 'The entity name.') - ->addArgument('entity-id', InputArgument::OPTIONAL, 'The entity identifier.') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all entity regions will be deleted/invalidated.') - ->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.') - ->setHelp(<<<'EOT' -The %command.name% command is meant to clear a second-level cache entity region for an associated Entity Manager. -It is possible to delete/invalidate all entity region, a specific entity region or flushes the cache provider. - -The execution type differ on how you execute the command. -If you want to invalidate all entries for an entity region this command would do the work: - -%command.name% 'Entities\MyEntity' - -To invalidate a specific entry you should use : - -%command.name% 'Entities\MyEntity' 1 - -If you want to invalidate all entries for the all entity regions: - -%command.name% --all - -Alternatively, if you want to flush the configured cache provider for an entity region use this command: - -%command.name% 'Entities\MyEntity' --flush - -Finally, be aware that if --flush option is passed, -not all cache providers are able to flush entries, because of a limitation of its execution nature. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $entityClass = $input->getArgument('entity-class'); - $entityId = $input->getArgument('entity-id'); - $cache = $em->getCache(); - - if (! $cache instanceof Cache) { - throw new InvalidArgumentException('No second-level cache is configured on the given EntityManager.'); - } - - if (! $entityClass && ! $input->getOption('all')) { - throw new InvalidArgumentException('Invalid argument "--entity-class"'); - } - - if ($input->getOption('flush')) { - $cache->getEntityCacheRegion($entityClass) - ->evictAll(); - - $ui->comment(sprintf('Flushing cache provider configured for entity named "%s"', $entityClass)); - - return 0; - } - - if ($input->getOption('all')) { - $ui->comment('Clearing all second-level cache entity regions'); - - $cache->evictEntityRegions(); - - return 0; - } - - if ($entityId) { - $ui->comment( - sprintf( - 'Clearing second-level cache entry for entity "%s" identified by "%s"', - $entityClass, - $entityId, - ), - ); - $cache->evictEntity($entityClass, $entityId); - - return 0; - } - - $ui->comment(sprintf('Clearing second-level cache for entity "%s"', $entityClass)); - $cache->evictEntityRegion($entityClass); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/MetadataCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/MetadataCommand.php deleted file mode 100644 index 147795b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/MetadataCommand.php +++ /dev/null @@ -1,52 +0,0 @@ -setName('orm:clear-cache:metadata') - ->setDescription('Clear all metadata cache of the various cache drivers') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, cache entries will be flushed instead of deleted/invalidated.') - ->setHelp(<<<'EOT' -The %command.name% command is meant to clear the metadata cache of associated Entity Manager. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $cacheDriver = $em->getConfiguration()->getMetadataCache(); - - if (! $cacheDriver) { - throw new InvalidArgumentException('No Metadata cache driver is configured on given EntityManager.'); - } - - $ui->comment('Clearing all Metadata cache entries'); - - $result = $cacheDriver->clear(); - $message = $result ? 'Successfully deleted cache entries.' : 'No cache entries were deleted.'; - - $ui->success($message); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryCommand.php deleted file mode 100644 index 83edd7a..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryCommand.php +++ /dev/null @@ -1,54 +0,0 @@ -setName('orm:clear-cache:query') - ->setDescription('Clear all query cache of the various cache drivers') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->setHelp('The %command.name% command is meant to clear the query cache of associated Entity Manager.'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $cache = $em->getConfiguration()->getQueryCache(); - - if (! $cache) { - throw new InvalidArgumentException('No Query cache driver is configured on given EntityManager.'); - } - - if ($cache instanceof ApcuAdapter) { - throw new LogicException('Cannot clear APCu Cache from Console, it\'s shared in the Webserver memory and not accessible from the CLI.'); - } - - $ui->comment('Clearing all Query cache entries'); - - $message = $cache->clear() ? 'Successfully deleted cache entries.' : 'No cache entries were deleted.'; - - $ui->success($message); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryRegionCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryRegionCommand.php deleted file mode 100644 index e80fb90..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/QueryRegionCommand.php +++ /dev/null @@ -1,101 +0,0 @@ -setName('orm:clear-cache:region:query') - ->setDescription('Clear a second-level cache query region') - ->addArgument('region-name', InputArgument::OPTIONAL, 'The query region to clear.') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('all', null, InputOption::VALUE_NONE, 'If defined, all query regions will be deleted/invalidated.') - ->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, all cache entries will be flushed.') - ->setHelp(<<<'EOT' -The %command.name% command is meant to clear a second-level cache query region for an associated Entity Manager. -It is possible to delete/invalidate all query region, a specific query region or flushes the cache provider. - -The execution type differ on how you execute the command. -If you want to invalidate all entries for the default query region this command would do the work: - -%command.name% - -To invalidate entries for a specific query region you should use : - -%command.name% my_region_name - -If you want to invalidate all entries for the all query region: - -%command.name% --all - -Alternatively, if you want to flush the configured cache provider use this command: - -%command.name% my_region_name --flush - -Finally, be aware that if --flush option is passed, -not all cache providers are able to flush entries, because of a limitation of its execution nature. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $name = $input->getArgument('region-name'); - $cache = $em->getCache(); - - if ($name === null) { - $name = Cache::DEFAULT_QUERY_REGION_NAME; - } - - if (! $cache instanceof Cache) { - throw new InvalidArgumentException('No second-level cache is configured on the given EntityManager.'); - } - - if ($input->getOption('flush')) { - $cache->getQueryCache($name) - ->getRegion() - ->evictAll(); - - $ui->comment( - sprintf( - 'Flushing cache provider configured for second-level cache query region named "%s"', - $name, - ), - ); - - return 0; - } - - if ($input->getOption('all')) { - $ui->comment('Clearing all second-level cache query regions'); - - $cache->evictQueryRegions(); - - return 0; - } - - $ui->comment(sprintf('Clearing second-level cache query region named "%s"', $name)); - $cache->evictQueryRegion($name); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/ResultCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/ResultCommand.php deleted file mode 100644 index 4f84e0b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ClearCache/ResultCommand.php +++ /dev/null @@ -1,65 +0,0 @@ -setName('orm:clear-cache:result') - ->setDescription('Clear all result cache of the various cache drivers') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('flush', null, InputOption::VALUE_NONE, 'If defined, cache entries will be flushed instead of deleted/invalidated.') - ->setHelp(<<<'EOT' -The %command.name% command is meant to clear the result cache of associated Entity Manager. -It is possible to invalidate all cache entries at once - called delete -, or flushes the cache provider -instance completely. - -The execution type differ on how you execute the command. -If you want to invalidate the entries (and not delete from cache instance), this command would do the work: - -%command.name% - -Alternatively, if you want to flush the cache provider using this command: - -%command.name% --flush - -Finally, be aware that if --flush option is passed, not all cache providers are able to flush entries, -because of a limitation of its execution nature. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $cache = $em->getConfiguration()->getResultCache(); - - if (! $cache) { - throw new InvalidArgumentException('No Result cache driver is configured on given EntityManager.'); - } - - $ui->comment('Clearing all Result cache entries'); - - $message = $cache->clear() ? 'Successfully deleted cache entries.' : 'No cache entries were deleted.'; - - $ui->success($message); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/GenerateProxiesCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/GenerateProxiesCommand.php deleted file mode 100644 index 246bae9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/GenerateProxiesCommand.php +++ /dev/null @@ -1,107 +0,0 @@ -setName('orm:generate-proxies') - ->setAliases(['orm:generate:proxies']) - ->setDescription('Generates proxy classes for entity classes') - ->addArgument('dest-path', InputArgument::OPTIONAL, 'The path to generate your proxy classes. If none is provided, it will attempt to grab from configuration.') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('filter', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'A string pattern used to match entities that should be processed.') - ->setHelp('Generates proxy classes for entity classes.'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - if (PHP_VERSION_ID >= 80400) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/12005', - 'Generating proxies is deprecated and will be impossible in Doctrine ORM 4.0.', - ); - } - - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - - $metadatas = $em->getMetadataFactory()->getAllMetadata(); - $metadatas = MetadataFilter::filter($metadatas, $input->getOption('filter')); - - // Process destination directory - $destPath = $input->getArgument('dest-path'); - if ($destPath === null) { - $destPath = $em->getConfiguration()->getProxyDir(); - - if ($destPath === null) { - throw new InvalidArgumentException('Proxy directory cannot be null'); - } - } - - if (! is_dir($destPath)) { - mkdir($destPath, 0775, true); - } - - $destPath = realpath($destPath); - - if (! file_exists($destPath)) { - throw new InvalidArgumentException( - sprintf("Proxies destination directory '%s' does not exist.", $em->getConfiguration()->getProxyDir()), - ); - } - - if (! is_writable($destPath)) { - throw new InvalidArgumentException( - sprintf("Proxies destination directory '%s' does not have write permissions.", $destPath), - ); - } - - if (empty($metadatas)) { - $ui->success('No Metadata Classes to process.'); - - return 0; - } - - foreach ($metadatas as $metadata) { - $ui->text(sprintf('Processing entity "%s"', $metadata->name)); - } - - // Generating Proxies - $em->getProxyFactory()->generateProxyClasses($metadatas, $destPath); - - // Outputting information message - $ui->newLine(); - $ui->text(sprintf('Proxy classes generated to "%s"', $destPath)); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/InfoCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/InfoCommand.php deleted file mode 100644 index 1e38a24..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/InfoCommand.php +++ /dev/null @@ -1,80 +0,0 @@ -setName('orm:info') - ->setDescription('Show basic information about all mapped entities') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->setHelp(<<<'EOT' -The %command.name% shows basic information about which -entities exist and possibly if their mapping information contains errors or -not. -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = new SymfonyStyle($input, $output); - - $entityManager = $this->getEntityManager($input); - - $entityClassNames = $entityManager->getConfiguration() - ->getMetadataDriverImpl() - ->getAllClassNames(); - - if (! $entityClassNames) { - $ui->getErrorStyle()->caution( - [ - 'You do not have any mapped Doctrine ORM entities according to the current configuration.', - 'If you have entities or mapping files you should check your mapping configuration for errors.', - ], - ); - - return 1; - } - - $ui->text(sprintf('Found %d mapped entities:', count($entityClassNames))); - $ui->newLine(); - - $failure = false; - - foreach ($entityClassNames as $entityClassName) { - try { - $entityManager->getClassMetadata($entityClassName); - $ui->text(sprintf('[OK] %s', $entityClassName)); - } catch (MappingException $e) { - $ui->text( - [ - sprintf('[FAIL] %s', $entityClassName), - sprintf('%s', $e->getMessage()), - '', - ], - ); - - $failure = true; - } - } - - return $failure ? 1 : 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/MappingDescribeCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/MappingDescribeCommand.php deleted file mode 100644 index f376398..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/MappingDescribeCommand.php +++ /dev/null @@ -1,296 +0,0 @@ -setName('orm:mapping:describe') - ->addArgument('entityName', InputArgument::REQUIRED, 'Full or partial name of entity') - ->setDescription('Display information about mapped objects') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->setHelp(<<<'EOT' -The %command.full_name% command describes the metadata for the given full or partial entity class name. - - %command.full_name% My\Namespace\Entity\MyEntity - -Or: - - %command.full_name% MyEntity -EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = new SymfonyStyle($input, $output); - - $entityManager = $this->getEntityManager($input); - - $this->displayEntity($input->getArgument('entityName'), $entityManager, $ui); - - return 0; - } - - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - if ($input->mustSuggestArgumentValuesFor('entityName')) { - $entityManager = $this->getEntityManager($input); - - $entities = array_map( - static fn (string $fqcn) => str_replace('\\', '\\\\', $fqcn), - $this->getMappedEntities($entityManager), - ); - - $suggestions->suggestValues(array_values($entities)); - } - } - - /** - * Display all the mapping information for a single Entity. - * - * @param string $entityName Full or partial entity class name - */ - private function displayEntity( - string $entityName, - EntityManagerInterface $entityManager, - SymfonyStyle $ui, - ): void { - $metadata = $this->getClassMetadata($entityName, $entityManager); - - $ui->table( - ['Field', 'Value'], - array_merge( - [ - $this->formatField('Name', $metadata->name), - $this->formatField('Root entity name', $metadata->rootEntityName), - $this->formatField('Custom generator definition', $metadata->customGeneratorDefinition), - $this->formatField('Custom repository class', $metadata->customRepositoryClassName), - $this->formatField('Mapped super class?', $metadata->isMappedSuperclass), - $this->formatField('Embedded class?', $metadata->isEmbeddedClass), - $this->formatField('Parent classes', $metadata->parentClasses), - $this->formatField('Sub classes', $metadata->subClasses), - $this->formatField('Embedded classes', $metadata->subClasses), - $this->formatField('Identifier', $metadata->identifier), - $this->formatField('Inheritance type', $metadata->inheritanceType), - $this->formatField('Discriminator column', $metadata->discriminatorColumn), - $this->formatField('Discriminator value', $metadata->discriminatorValue), - $this->formatField('Discriminator map', $metadata->discriminatorMap), - $this->formatField('Generator type', $metadata->generatorType), - $this->formatField('Table', $metadata->table), - $this->formatField('Composite identifier?', $metadata->isIdentifierComposite), - $this->formatField('Foreign identifier?', $metadata->containsForeignIdentifier), - $this->formatField('Enum identifier?', $metadata->containsEnumIdentifier), - $this->formatField('Sequence generator definition', $metadata->sequenceGeneratorDefinition), - $this->formatField('Change tracking policy', $metadata->changeTrackingPolicy), - $this->formatField('Versioned?', $metadata->isVersioned), - $this->formatField('Version field', $metadata->versionField), - $this->formatField('Read only?', $metadata->isReadOnly), - - $this->formatEntityListeners($metadata->entityListeners), - ], - [$this->formatField('Association mappings:', '')], - $this->formatMappings($metadata->associationMappings), - [$this->formatField('Field mappings:', '')], - $this->formatMappings($metadata->fieldMappings), - ), - ); - } - - /** - * Return all mapped entity class names - * - * @return class-string[] - */ - private function getMappedEntities(EntityManagerInterface $entityManager): array - { - $entityClassNames = $entityManager->getConfiguration() - ->getMetadataDriverImpl() - ->getAllClassNames(); - - if (! $entityClassNames) { - throw new InvalidArgumentException( - 'You do not have any mapped Doctrine ORM entities according to the current configuration. ' . - 'If you have entities or mapping files you should check your mapping configuration for errors.', - ); - } - - return $entityClassNames; - } - - /** - * Return the class metadata for the given entity - * name - * - * @param string $entityName Full or partial entity name - */ - private function getClassMetadata( - string $entityName, - EntityManagerInterface $entityManager, - ): ClassMetadata { - try { - return $entityManager->getClassMetadata($entityName); - } catch (MappingException) { - } - - $matches = array_filter( - $this->getMappedEntities($entityManager), - static fn ($mappedEntity) => preg_match('{' . preg_quote($entityName) . '}', $mappedEntity), - ); - - if (! $matches) { - throw new InvalidArgumentException(sprintf( - 'Could not find any mapped Entity classes matching "%s"', - $entityName, - )); - } - - if (count($matches) > 1) { - throw new InvalidArgumentException(sprintf( - 'Entity name "%s" is ambiguous, possible matches: "%s"', - $entityName, - implode(', ', $matches), - )); - } - - return $entityManager->getClassMetadata(current($matches)); - } - - /** - * Format the given value for console output - */ - private function formatValue(mixed $value): string - { - if ($value === '') { - return ''; - } - - if ($value === null) { - return 'Null'; - } - - if (is_bool($value)) { - return '' . ($value ? 'True' : 'False') . ''; - } - - if (empty($value)) { - return 'Empty'; - } - - if (is_array($value)) { - return json_encode( - $value, - JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR, - ); - } - - if (is_object($value)) { - return sprintf('<%s>', get_debug_type($value)); - } - - if (is_scalar($value)) { - return (string) $value; - } - - throw new InvalidArgumentException(sprintf('Do not know how to format value "%s"', print_r($value, true))); - } - - /** - * Add the given label and value to the two column table output - * - * @param string $label Label for the value - * @param mixed $value A Value to show - * - * @return string[] - * @phpstan-return array{0: string, 1: string} - */ - private function formatField(string $label, mixed $value): array - { - if ($value === null) { - $value = 'None'; - } - - return [sprintf('%s', $label), $this->formatValue($value)]; - } - - /** - * Format the association mappings - * - * @phpstan-param array $propertyMappings - * - * @return string[][] - * @phpstan-return list - */ - private function formatMappings(array $propertyMappings): array - { - $output = []; - - foreach ($propertyMappings as $propertyName => $mapping) { - $output[] = $this->formatField(sprintf(' %s', $propertyName), ''); - - foreach ((array) $mapping as $field => $value) { - $output[] = $this->formatField(sprintf(' %s', $field), $this->formatValue($value)); - } - } - - return $output; - } - - /** - * Format the entity listeners - * - * @phpstan-param list $entityListeners - * - * @return string[] - * @phpstan-return array{0: string, 1: string} - */ - private function formatEntityListeners(array $entityListeners): array - { - return $this->formatField('Entity listeners', array_map('get_class', $entityListeners)); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/RunDqlCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/RunDqlCommand.php deleted file mode 100644 index 252151e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/RunDqlCommand.php +++ /dev/null @@ -1,118 +0,0 @@ -setName('orm:run-dql') - ->setDescription('Executes arbitrary DQL directly from the command line') - ->addArgument('dql', InputArgument::REQUIRED, 'The DQL to execute.') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('hydrate', null, InputOption::VALUE_REQUIRED, 'Hydration mode of result set. Should be either: object, array, scalar or single-scalar.', 'object') - ->addOption('first-result', null, InputOption::VALUE_REQUIRED, 'The first result in the result set.') - ->addOption('max-result', null, InputOption::VALUE_REQUIRED, 'The maximum number of results in the result set.') - ->addOption('depth', null, InputOption::VALUE_REQUIRED, 'Dumping depth of Entity graph.', 7) - ->addOption('show-sql', null, InputOption::VALUE_NONE, 'Dump generated SQL instead of executing query') - ->setHelp(<<<'EOT' - The %command.name% command executes the given DQL query and - outputs the results: - - php %command.full_name% "SELECT u FROM App\Entity\User u" - - You can also optionally specify some additional options like what type of - hydration to use when executing the query: - - php %command.full_name% "SELECT u FROM App\Entity\User u" --hydrate=array - - Additionally you can specify the first result and maximum amount of results to - show: - - php %command.full_name% "SELECT u FROM App\Entity\User u" --first-result=0 --max-result=30 - EOT); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = new SymfonyStyle($input, $output); - - $em = $this->getEntityManager($input); - - $dql = $input->getArgument('dql'); - if ($dql === null) { - throw new RuntimeException("Argument 'dql' is required in order to execute this command correctly."); - } - - $depth = $input->getOption('depth'); - - if (! is_numeric($depth)) { - throw new LogicException("Option 'depth' must contain an integer value"); - } - - $hydrationModeName = (string) $input->getOption('hydrate'); - $hydrationMode = 'Doctrine\ORM\Query::HYDRATE_' . strtoupper(str_replace('-', '_', $hydrationModeName)); - - if (! defined($hydrationMode)) { - throw new RuntimeException(sprintf( - "Hydration mode '%s' does not exist. It should be either: object. array, scalar or single-scalar.", - $hydrationModeName, - )); - } - - $query = $em->createQuery($dql); - - $firstResult = $input->getOption('first-result'); - if ($firstResult !== null) { - if (! is_numeric($firstResult)) { - throw new LogicException("Option 'first-result' must contain an integer value"); - } - - $query->setFirstResult((int) $firstResult); - } - - $maxResult = $input->getOption('max-result'); - if ($maxResult !== null) { - if (! is_numeric($maxResult)) { - throw new LogicException("Option 'max-result' must contain an integer value"); - } - - $query->setMaxResults((int) $maxResult); - } - - if ($input->getOption('show-sql')) { - $ui->text($query->getSQL()); - - return 0; - } - - $resultSet = $query->execute([], constant($hydrationMode)); - - $ui->text(Debug::dump($resultSet, (int) $input->getOption('depth'))); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/AbstractCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/AbstractCommand.php deleted file mode 100644 index b1e4460..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/AbstractCommand.php +++ /dev/null @@ -1,39 +0,0 @@ -getEntityManager($input); - - $metadatas = $em->getMetadataFactory()->getAllMetadata(); - - if (empty($metadatas)) { - $ui->getErrorStyle()->success('No Metadata Classes to process.'); - - return 0; - } - - return $this->executeSchemaCommand($input, $output, new SchemaTool($em), $metadatas, $ui); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/CreateCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/CreateCommand.php deleted file mode 100644 index 69e20c6..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/CreateCommand.php +++ /dev/null @@ -1,75 +0,0 @@ -setName('orm:schema-tool:create') - ->setDescription('Processes the schema and either create it directly on EntityManager Storage Connection or generate the SQL output') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('dump-sql', null, InputOption::VALUE_NONE, 'Instead of trying to apply generated SQLs into EntityManager Storage Connection, output them.') - ->setHelp(<<<'EOT' -Processes the schema and either create it directly on EntityManager Storage Connection or generate the SQL output. - -Hint: If you have a database with tables that should not be managed -by the ORM, you can use a DBAL functionality to filter the tables and sequences down -on a global level: - - $config->setSchemaAssetsFilter(function (string|AbstractAsset $assetName): bool { - if ($assetName instanceof AbstractAsset) { - $assetName = $assetName->getName(); - } - - return !str_starts_with($assetName, 'audit_'); - }); -EOT); - } - - /** - * {@inheritDoc} - */ - protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas, SymfonyStyle $ui): int - { - $dumpSql = $input->getOption('dump-sql') === true; - - if ($dumpSql) { - $sqls = $schemaTool->getCreateSchemaSql($metadatas); - - foreach ($sqls as $sql) { - $ui->writeln(sprintf('%s;', $sql)); - } - - return 0; - } - - $notificationUi = $ui->getErrorStyle(); - - $notificationUi->caution('This operation should not be executed in a production environment!'); - - $notificationUi->text('Creating database schema...'); - $notificationUi->newLine(); - - $schemaTool->createSchema($metadatas); - - $notificationUi->success('Database schema created successfully!'); - - return 0; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/DropCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/DropCommand.php deleted file mode 100644 index 5c8253b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/DropCommand.php +++ /dev/null @@ -1,116 +0,0 @@ -setName('orm:schema-tool:drop') - ->setDescription('Drop the complete database schema of EntityManager Storage Connection or generate the corresponding SQL output') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('dump-sql', null, InputOption::VALUE_NONE, 'Instead of trying to apply generated SQLs into EntityManager Storage Connection, output them.') - ->addOption('force', 'f', InputOption::VALUE_NONE, "Don't ask for the deletion of the database, but force the operation to run.") - ->addOption('full-database', null, InputOption::VALUE_NONE, 'Instead of using the Class Metadata to detect the database table schema, drop ALL assets that the database contains.') - ->setHelp(<<<'EOT' -Processes the schema and either drop the database schema of EntityManager Storage Connection or generate the SQL output. -Beware that the complete database is dropped by this command, even tables that are not relevant to your metadata model. - -Hint: If you have a database with tables that should not be managed -by the ORM, you can use a DBAL functionality to filter the tables and sequences down -on a global level: - - $config->setSchemaAssetsFilter(function (string|AbstractAsset $assetName): bool { - if ($assetName instanceof AbstractAsset) { - $assetName = $assetName->getName(); - } - - return !str_starts_with($assetName, 'audit_'); - }); -EOT); - } - - /** - * {@inheritDoc} - */ - protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas, SymfonyStyle $ui): int - { - $isFullDatabaseDrop = $input->getOption('full-database'); - $dumpSql = $input->getOption('dump-sql') === true; - $force = $input->getOption('force') === true; - - if ($dumpSql) { - if ($isFullDatabaseDrop) { - $sqls = $schemaTool->getDropDatabaseSQL(); - } else { - $sqls = $schemaTool->getDropSchemaSQL($metadatas); - } - - foreach ($sqls as $sql) { - $ui->writeln(sprintf('%s;', $sql)); - } - - return 0; - } - - $notificationUi = $ui->getErrorStyle(); - - if ($force) { - $notificationUi->text('Dropping database schema...'); - $notificationUi->newLine(); - - if ($isFullDatabaseDrop) { - $schemaTool->dropDatabase(); - } else { - $schemaTool->dropSchema($metadatas); - } - - $notificationUi->success('Database schema dropped successfully!'); - - return 0; - } - - $notificationUi->caution('This operation should not be executed in a production environment!'); - - if ($isFullDatabaseDrop) { - $sqls = $schemaTool->getDropDatabaseSQL(); - } else { - $sqls = $schemaTool->getDropSchemaSQL($metadatas); - } - - if (empty($sqls)) { - $notificationUi->success('Nothing to drop. The database is empty!'); - - return 0; - } - - $notificationUi->text( - [ - sprintf('The Schema-Tool would execute "%s" queries to update the database.', count($sqls)), - '', - 'Please run the operation by passing one - or both - of the following options:', - '', - sprintf(' %s --force to execute the command', $this->getName()), - sprintf(' %s --dump-sql to dump the SQL statements to the screen', $this->getName()), - ], - ); - - return 1; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/UpdateCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/UpdateCommand.php deleted file mode 100644 index f35fc38..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/SchemaTool/UpdateCommand.php +++ /dev/null @@ -1,147 +0,0 @@ -setName($this->name) - ->setDescription('Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('complete', null, InputOption::VALUE_NONE, 'This option is a no-op, is deprecated and will be removed in 4.0') - ->addOption('dump-sql', null, InputOption::VALUE_NONE, 'Dumps the generated SQL statements to the screen (does not execute them).') - ->addOption('force', 'f', InputOption::VALUE_NONE, 'Causes the generated SQL statements to be physically executed against your database.') - ->setHelp(<<<'EOT' -The %command.name% command generates the SQL needed to -synchronize the database schema with the current mapping metadata of the -default entity manager. - -For example, if you add metadata for a new column to an entity, this command -would generate and output the SQL needed to add the new column to the database: - -%command.name% --dump-sql - -Alternatively, you can execute the generated queries: - -%command.name% --force - -If both options are specified, the queries are output and then executed: - -%command.name% --dump-sql --force - -Finally, be aware that this task will drop all database assets (e.g. tables, -etc) that are *not* described by the current metadata. In other words, without -this option, this task leaves untouched any "extra" tables that exist in the -database, but which aren't described by any metadata. - -Hint: If you have a database with tables that should not be managed -by the ORM, you can use a DBAL functionality to filter the tables and sequences down -on a global level: - - $config->setSchemaAssetsFilter(function (string|AbstractAsset $assetName): bool { - if ($assetName instanceof AbstractAsset) { - $assetName = $assetName->getName(); - } - - return !str_starts_with($assetName, 'audit_'); - }); -EOT); - } - - /** - * {@inheritDoc} - */ - protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas, SymfonyStyle $ui): int - { - $notificationUi = $ui->getErrorStyle(); - - if ($input->getOption('complete') === true) { - Deprecation::trigger( - 'doctrine/orm', - 'https://github.com/doctrine/orm/pull/11354', - 'The --complete option is a no-op, is deprecated and will be removed in Doctrine ORM 4.0.', - ); - $notificationUi->warning('The --complete option is a no-op, is deprecated and will be removed in Doctrine ORM 4.0.'); - } - - $sqls = $schemaTool->getUpdateSchemaSql($metadatas); - - if (empty($sqls)) { - $notificationUi->success('Nothing to update - your database is already in sync with the current entity metadata.'); - - return 0; - } - - $dumpSql = $input->getOption('dump-sql') === true; - $force = $input->getOption('force') === true; - - if ($dumpSql) { - foreach ($sqls as $sql) { - $ui->writeln(sprintf('%s;', $sql)); - } - } - - if ($force) { - if ($dumpSql) { - $notificationUi->newLine(); - } - - $notificationUi->text('Updating database schema...'); - $notificationUi->newLine(); - - $schemaTool->updateSchema($metadatas); - - $pluralization = count($sqls) === 1 ? 'query was' : 'queries were'; - - $notificationUi->text(sprintf(' %s %s executed', count($sqls), $pluralization)); - $notificationUi->success('Database schema updated successfully!'); - } - - if ($dumpSql || $force) { - return 0; - } - - $notificationUi->caution( - [ - 'This operation should not be executed in a production environment!', - '', - 'Use the incremental update to detect changes during development and use', - 'the SQL DDL provided to manually update your database in production.', - ], - ); - - $notificationUi->text( - [ - sprintf('The Schema-Tool would execute "%s" queries to update the database.', count($sqls)), - '', - 'Please run the operation by passing one - or both - of the following options:', - '', - sprintf(' %s --force to execute the command', $this->getName()), - sprintf(' %s --dump-sql to dump the SQL statements to the screen', $this->getName()), - ], - ); - - return 1; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ValidateSchemaCommand.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ValidateSchemaCommand.php deleted file mode 100644 index cffb4ce..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/Command/ValidateSchemaCommand.php +++ /dev/null @@ -1,89 +0,0 @@ -setName('orm:validate-schema') - ->setDescription('Validate the mapping files') - ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Name of the entity manager to operate on') - ->addOption('skip-mapping', null, InputOption::VALUE_NONE, 'Skip the mapping validation check') - ->addOption('skip-sync', null, InputOption::VALUE_NONE, 'Skip checking if the mapping is in sync with the database') - ->addOption('skip-property-types', null, InputOption::VALUE_NONE, 'Skip checking if property types match the Doctrine types') - ->setHelp('Validate that the mapping files are correct and in sync with the database.'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $ui = (new SymfonyStyle($input, $output))->getErrorStyle(); - - $em = $this->getEntityManager($input); - $validator = new SchemaValidator($em, ! $input->getOption('skip-property-types')); - $exit = 0; - - $ui->section('Mapping'); - - if ($input->getOption('skip-mapping')) { - $ui->text('[SKIPPED] The mapping was not checked.'); - } else { - $errors = $validator->validateMapping(); - if ($errors) { - foreach ($errors as $className => $errorMessages) { - $ui->text( - sprintf( - '[FAIL] The entity-class %s mapping is invalid:', - $className, - ), - ); - - $ui->listing($errorMessages); - $ui->newLine(); - } - - ++$exit; - } else { - $ui->success('The mapping files are correct.'); - } - } - - $ui->section('Database'); - - if ($input->getOption('skip-sync')) { - $ui->text('[SKIPPED] The database was not checked for synchronicity.'); - } elseif (! $validator->schemaInSyncWithMetadata()) { - $ui->error('The database schema is not in sync with the current mapping file.'); - - if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) { - $sqls = $validator->getUpdateSchemaList(); - $ui->comment(sprintf('%d schema diff(s) detected:', count($sqls))); - foreach ($sqls as $sql) { - $ui->text(sprintf(' %s;', $sql)); - } - } - - $exit += 2; - } else { - $ui->success('The database schema is in sync with the mapping files.'); - } - - return $exit; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ConsoleRunner.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ConsoleRunner.php deleted file mode 100644 index 21f639e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/ConsoleRunner.php +++ /dev/null @@ -1,93 +0,0 @@ -run(); - } - - /** - * Creates a console application with the given helperset and - * optional commands. - * - * @param SymfonyCommand[] $commands - * - * @throws OutOfBoundsException - */ - public static function createApplication( - EntityManagerProvider $entityManagerProvider, - array $commands = [], - ): Application { - $version = InstalledVersions::getVersion('doctrine/orm'); - assert($version !== null); - - $cli = new Application('Doctrine Command Line Interface', $version); - $cli->setCatchExceptions(true); - - self::addCommands($cli, $entityManagerProvider); - $cli->addCommands($commands); - - return $cli; - } - - public static function addCommands(Application $cli, EntityManagerProvider $entityManagerProvider): void - { - $connectionProvider = new ConnectionFromManagerProvider($entityManagerProvider); - - if (class_exists(DBALConsole\Command\ReservedWordsCommand::class)) { - self::addCommandToApplication( - $cli, - new DBALConsole\Command\ReservedWordsCommand($connectionProvider), - ); - } - - $cli->addCommands( - [ - // DBAL Commands - new DBALConsole\Command\RunSqlCommand($connectionProvider), - - // ORM Commands - new Command\ClearCache\CollectionRegionCommand($entityManagerProvider), - new Command\ClearCache\EntityRegionCommand($entityManagerProvider), - new Command\ClearCache\MetadataCommand($entityManagerProvider), - new Command\ClearCache\QueryCommand($entityManagerProvider), - new Command\ClearCache\QueryRegionCommand($entityManagerProvider), - new Command\ClearCache\ResultCommand($entityManagerProvider), - new Command\SchemaTool\CreateCommand($entityManagerProvider), - new Command\SchemaTool\UpdateCommand($entityManagerProvider), - new Command\SchemaTool\DropCommand($entityManagerProvider), - new Command\GenerateProxiesCommand($entityManagerProvider), - new Command\RunDqlCommand($entityManagerProvider), - new Command\ValidateSchemaCommand($entityManagerProvider), - new Command\InfoCommand($entityManagerProvider), - new Command\MappingDescribeCommand($entityManagerProvider), - ], - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider.php deleted file mode 100644 index 866589b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider.php +++ /dev/null @@ -1,14 +0,0 @@ -entityManagerProvider->getDefaultManager()->getConnection(); - } - - public function getConnection(string $name): Connection - { - return $this->entityManagerProvider->getManager($name)->getConnection(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/SingleManagerProvider.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/SingleManagerProvider.php deleted file mode 100644 index ebe60c9..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/SingleManagerProvider.php +++ /dev/null @@ -1,31 +0,0 @@ -entityManager; - } - - public function getManager(string $name): EntityManagerInterface - { - if ($name !== $this->defaultManagerName) { - throw UnknownManagerException::unknownManager($name, [$this->defaultManagerName]); - } - - return $this->entityManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/UnknownManagerException.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/UnknownManagerException.php deleted file mode 100644 index 46e842c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/EntityManagerProvider/UnknownManagerException.php +++ /dev/null @@ -1,23 +0,0 @@ - $knownManagers */ - public static function unknownManager(string $unknownManager, array $knownManagers = []): self - { - return new self(sprintf( - 'Requested unknown entity manager: %s, known managers: %s', - $unknownManager, - implode(', ', $knownManagers), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/MetadataFilter.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/MetadataFilter.php deleted file mode 100644 index 05e248c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Console/MetadataFilter.php +++ /dev/null @@ -1,92 +0,0 @@ -filter = (array) $filter; - - parent::__construct($metadata); - } - - public function accept(): bool - { - if (count($this->filter) === 0) { - return true; - } - - $it = $this->getInnerIterator(); - $metadata = $it->current(); - - foreach ($this->filter as $filter) { - $pregResult = preg_match('/' . $filter . '/', $metadata->getName()); - - if ($pregResult === false) { - throw new RuntimeException( - sprintf("Error while evaluating regex '/%s/'.", $filter), - ); - } - - if ($pregResult) { - return true; - } - } - - return false; - } - - /** @return ArrayIterator */ - public function getInnerIterator(): ArrayIterator - { - $innerIterator = parent::getInnerIterator(); - - assert($innerIterator instanceof ArrayIterator); - - return $innerIterator; - } - - public function count(): int - { - return count($this->getInnerIterator()); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Debug.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Debug.php deleted file mode 100644 index 8521e53..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Debug.php +++ /dev/null @@ -1,158 +0,0 @@ -toArray(); - } - - if (! $maxDepth) { - return is_object($var) ? $var::class - : (is_array($var) ? 'Array(' . count($var) . ')' : $var); - } - - if (is_array($var)) { - $return = []; - - foreach ($var as $k => $v) { - $return[$k] = self::export($v, $maxDepth - 1); - } - - return $return; - } - - if (! is_object($var)) { - return $var; - } - - $return = new stdClass(); - if ($var instanceof DateTimeInterface) { - $return->__CLASS__ = $var::class; - $return->date = $var->format('c'); - $return->timezone = $var->getTimezone()->getName(); - - return $return; - } - - $return->__CLASS__ = DefaultProxyClassNameResolver::getClass($var); - - if ($var instanceof Proxy) { - $return->__IS_PROXY__ = true; - $return->__PROXY_INITIALIZED__ = $var->__isInitialized(); - } - - if ($var instanceof ArrayObject || $var instanceof ArrayIterator) { - $return->__STORAGE__ = self::export($var->getArrayCopy(), $maxDepth - 1); - } - - return self::fillReturnWithClassAttributes($var, $return, $maxDepth); - } - - /** - * Fill the $return variable with class attributes - * Based on obj2array function from {@see https://secure.php.net/manual/en/function.get-object-vars.php#47075} - */ - private static function fillReturnWithClassAttributes(object $var, stdClass $return, int $maxDepth): stdClass - { - $clone = (array) $var; - - foreach (array_keys($clone) as $key) { - $aux = explode("\0", (string) $key); - $name = end($aux); - if ($aux[0] === '') { - $name .= ':' . ($aux[1] === '*' ? 'protected' : $aux[1] . ':private'); - } - - $return->$name = self::export($clone[$key], $maxDepth - 1); - } - - return $return; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/DebugUnitOfWorkListener.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/DebugUnitOfWorkListener.php deleted file mode 100644 index 71059f7..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/DebugUnitOfWorkListener.php +++ /dev/null @@ -1,144 +0,0 @@ -dumpIdentityMap($args->getObjectManager()); - } - - /** - * Dumps the contents of the identity map into a stream. - */ - public function dumpIdentityMap(EntityManagerInterface $em): void - { - $uow = $em->getUnitOfWork(); - $identityMap = $uow->getIdentityMap(); - - $fh = fopen($this->file, 'xb+'); - if (count($identityMap) === 0) { - fwrite($fh, 'Flush Operation [' . $this->context . "] - Empty identity map.\n"); - - return; - } - - fwrite($fh, 'Flush Operation [' . $this->context . "] - Dumping identity map:\n"); - foreach ($identityMap as $className => $map) { - fwrite($fh, 'Class: ' . $className . "\n"); - - foreach ($map as $entity) { - fwrite($fh, ' Entity: ' . $this->getIdString($entity, $uow) . ' ' . spl_object_id($entity) . "\n"); - fwrite($fh, " Associations:\n"); - - $cm = $em->getClassMetadata($className); - - foreach ($cm->associationMappings as $field => $assoc) { - fwrite($fh, ' ' . $field . ' '); - $value = $cm->getFieldValue($entity, $field); - - if ($assoc->isToOne()) { - if ($value === null) { - fwrite($fh, " NULL\n"); - } else { - if ($uow->isUninitializedObject($value)) { - fwrite($fh, '[PROXY] '); - } - - fwrite($fh, $this->getIdString($value, $uow) . ' ' . spl_object_id($value) . "\n"); - } - } else { - $initialized = ! ($value instanceof PersistentCollection) || $value->isInitialized(); - if ($value === null) { - fwrite($fh, " NULL\n"); - } elseif ($initialized) { - fwrite($fh, '[INITIALIZED] ' . $this->getType($value) . ' ' . count($value) . " elements\n"); - - foreach ($value as $obj) { - fwrite($fh, ' ' . $this->getIdString($obj, $uow) . ' ' . spl_object_id($obj) . "\n"); - } - } else { - fwrite($fh, '[PROXY] ' . $this->getType($value) . " unknown element size\n"); - foreach ($value->unwrap() as $obj) { - fwrite($fh, ' ' . $this->getIdString($obj, $uow) . ' ' . spl_object_id($obj) . "\n"); - } - } - } - } - } - } - - fclose($fh); - } - - private function getType(mixed $var): string - { - if (is_object($var)) { - $refl = new ReflectionObject($var); - - return $refl->getShortName(); - } - - return gettype($var); - } - - private function getIdString(object $entity, UnitOfWork $uow): string - { - if ($uow->isInIdentityMap($entity)) { - $ids = $uow->getEntityIdentifier($entity); - $idstring = ''; - - foreach ($ids as $k => $v) { - $idstring .= $k . '=' . $v; - } - } else { - $idstring = 'NEWOBJECT '; - } - - $state = $uow->getEntityState($entity); - - if ($state === UnitOfWork::STATE_NEW) { - $idstring .= ' [NEW]'; - } elseif ($state === UnitOfWork::STATE_REMOVED) { - $idstring .= ' [REMOVED]'; - } elseif ($state === UnitOfWork::STATE_MANAGED) { - $idstring .= ' [MANAGED]'; - } elseif ($state === UnitOfWork::STATE_DETACHED) { - $idstring .= ' [DETACHED]'; - } - - return $idstring; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaEventArgs.php deleted file mode 100644 index 3b0993e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaEventArgs.php +++ /dev/null @@ -1,33 +0,0 @@ -em; - } - - public function getSchema(): Schema - { - return $this->schema; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaTableEventArgs.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaTableEventArgs.php deleted file mode 100644 index a09aaae..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Event/GenerateSchemaTableEventArgs.php +++ /dev/null @@ -1,40 +0,0 @@ -classMetadata; - } - - public function getSchema(): Schema - { - return $this->schema; - } - - public function getClassTable(): Table - { - return $this->classTable; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Exception/MissingColumnException.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Exception/MissingColumnException.php deleted file mode 100644 index 764721e..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Exception/MissingColumnException.php +++ /dev/null @@ -1,23 +0,0 @@ - FROM ()) - * - * Works with composite keys but cannot deal with queries that have multiple - * root entities (e.g. `SELECT f, b from Foo, Bar`) - * - * Note that the ORDER BY clause is not removed. Many SQL implementations (e.g. MySQL) - * are able to cache subqueries. By keeping the ORDER BY clause intact, the limitSubQuery - * that will most likely be executed next can be read from the native SQL cache. - * - * @phpstan-import-type QueryComponent from Parser - */ -class CountOutputWalker extends SqlOutputWalker -{ - private readonly AbstractPlatform $platform; - private readonly ResultSetMapping $rsm; - - /** - * {@inheritDoc} - */ - public function __construct(Query $query, ParserResult $parserResult, array $queryComponents) - { - $this->platform = $query->getEntityManager()->getConnection()->getDatabasePlatform(); - $this->rsm = $parserResult->getResultSetMapping(); - - parent::__construct($query, $parserResult, $queryComponents); - } - - protected function createSqlForFinalizer(SelectStatement $selectStatement): string - { - if ($this->platform instanceof SQLServerPlatform) { - $selectStatement->orderByClause = null; - } - - $sql = parent::createSqlForFinalizer($selectStatement); - - if ($selectStatement->groupByClause) { - return sprintf( - 'SELECT COUNT(*) AS dctrn_count FROM (%s) dctrn_table', - $sql, - ); - } - - // Find out the SQL alias of the identifier column of the root entity - // It may be possible to make this work with multiple root entities but that - // would probably require issuing multiple queries or doing a UNION SELECT - // so for now, It's not supported. - - // Get the root entity and alias from the AST fromClause - $from = $selectStatement->fromClause->identificationVariableDeclarations; - if (count($from) > 1) { - throw new RuntimeException('Cannot count query which selects two FROM components, cannot make distinction'); - } - - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - $rootIdentifier = $rootClass->identifier; - - // For every identifier, find out the SQL alias by combing through the ResultSetMapping - $sqlIdentifier = []; - foreach ($rootIdentifier as $property) { - if (isset($rootClass->fieldMappings[$property])) { - foreach (array_keys($this->rsm->fieldMappings, $property, true) as $alias) { - if ($this->rsm->columnOwnerMap[$alias] === $rootAlias) { - $sqlIdentifier[$property] = $alias; - } - } - } - - if (isset($rootClass->associationMappings[$property])) { - $association = $rootClass->associationMappings[$property]; - assert($association->isToOneOwningSide()); - $joinColumn = $association->joinColumns[0]->name; - - foreach (array_keys($this->rsm->metaMappings, $joinColumn, true) as $alias) { - if ($this->rsm->columnOwnerMap[$alias] === $rootAlias) { - $sqlIdentifier[$property] = $alias; - } - } - } - } - - if (count($rootIdentifier) !== count($sqlIdentifier)) { - throw new RuntimeException(sprintf( - 'Not all identifier properties can be found in the ResultSetMapping: %s', - implode(', ', array_diff($rootIdentifier, array_keys($sqlIdentifier))), - )); - } - - // Build the counter query - return sprintf( - 'SELECT COUNT(*) AS dctrn_count FROM (SELECT DISTINCT %s FROM (%s) dctrn_result) dctrn_table', - implode(', ', $sqlIdentifier), - $sql, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/CountWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/CountWalker.php deleted file mode 100644 index f11b25d..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/CountWalker.php +++ /dev/null @@ -1,72 +0,0 @@ -havingClause) { - throw new RuntimeException('Cannot count query that uses a HAVING clause. Use the output walkers for pagination'); - } - - // Get the root entity and alias from the AST fromClause - $from = $selectStatement->fromClause->identificationVariableDeclarations; - - if (count($from) > 1) { - throw new RuntimeException('Cannot count query which selects two FROM components, cannot make distinction'); - } - - $distinct = $this->_getQuery()->getHint(self::HINT_DISTINCT); - - $countPathExpressionOrLiteral = '*'; - if ($distinct) { - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - $identifierFieldName = $rootClass->getSingleIdentifierFieldName(); - - $pathType = PathExpression::TYPE_STATE_FIELD; - if (isset($rootClass->associationMappings[$identifierFieldName])) { - $pathType = PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION; - } - - $countPathExpressionOrLiteral = new PathExpression( - PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, - $rootAlias, - $identifierFieldName, - ); - $countPathExpressionOrLiteral->type = $pathType; - } - - $selectStatement->selectClause->selectExpressions = [ - new SelectExpression( - new AggregateExpression('count', $countPathExpressionOrLiteral, $distinct), - null, - ), - ]; - - // ORDER BY is not needed, only increases query execution through unnecessary sorting. - $selectStatement->orderByClause = null; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Exception/RowNumberOverFunctionNotEnabled.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Exception/RowNumberOverFunctionNotEnabled.php deleted file mode 100644 index 0e3da93..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Exception/RowNumberOverFunctionNotEnabled.php +++ /dev/null @@ -1,16 +0,0 @@ - FROM () LIMIT x OFFSET y - * - * Works with composite keys but cannot deal with queries that have multiple - * root entities (e.g. `SELECT f, b from Foo, Bar`) - * - * @phpstan-import-type QueryComponent from Parser - */ -class LimitSubqueryOutputWalker extends SqlOutputWalker -{ - private const ORDER_BY_PATH_EXPRESSION = '/(? */ - private array $orderByPathExpressions = []; - - /** - * We don't want to add path expressions from sub-selects into the select clause of the containing query. - * This state flag simply keeps track on whether we are walking on a subquery or not - */ - private bool $inSubSelect = false; - - /** - * Stores various parameters that are otherwise unavailable - * because Doctrine\ORM\Query\SqlWalker keeps everything private without - * accessors. - * - * {@inheritDoc} - */ - public function __construct( - Query $query, - ParserResult $parserResult, - array $queryComponents, - ) { - $this->platform = $query->getEntityManager()->getConnection()->getDatabasePlatform(); - $this->rsm = $parserResult->getResultSetMapping(); - - $cloneQuery = clone $query; - - $cloneQuery->setParameters(clone $query->getParameters()); - $cloneQuery->setCacheable(false); - - foreach ($query->getHints() as $name => $value) { - $cloneQuery->setHint($name, $value); - } - - // Reset limit and offset - $this->firstResult = $cloneQuery->getFirstResult(); - $this->maxResults = $cloneQuery->getMaxResults(); - $cloneQuery->setFirstResult(0)->setMaxResults(null); - - $this->em = $cloneQuery->getEntityManager(); - $this->quoteStrategy = $this->em->getConfiguration()->getQuoteStrategy(); - - parent::__construct($cloneQuery, $parserResult, $queryComponents); - } - - /** - * Check if the platform supports the ROW_NUMBER window function. - */ - private function platformSupportsRowNumber(): bool - { - return $this->platform instanceof PostgreSQLPlatform - || $this->platform instanceof SQLServerPlatform - || $this->platform instanceof OraclePlatform - || $this->platform instanceof DB2Platform - || (method_exists($this->platform, 'supportsRowNumberFunction') - && $this->platform->supportsRowNumberFunction()); - } - - /** - * Rebuilds a select statement's order by clause for use in a - * ROW_NUMBER() OVER() expression. - */ - private function rebuildOrderByForRowNumber(SelectStatement $AST): void - { - $orderByClause = $AST->orderByClause; - $selectAliasToExpressionMap = []; - // Get any aliases that are available for select expressions. - foreach ($AST->selectClause->selectExpressions as $selectExpression) { - $selectAliasToExpressionMap[$selectExpression->fieldIdentificationVariable] = $selectExpression->expression; - } - - // Rebuild string orderby expressions to use the select expression they're referencing - foreach ($orderByClause->orderByItems as $orderByItem) { - if (is_string($orderByItem->expression) && isset($selectAliasToExpressionMap[$orderByItem->expression])) { - $orderByItem->expression = $selectAliasToExpressionMap[$orderByItem->expression]; - } - } - - $func = new RowNumberOverFunction('dctrn_rownum'); - $func->orderByClause = $AST->orderByClause; - $AST->selectClause->selectExpressions[] = new SelectExpression($func, 'dctrn_rownum', true); - - // No need for an order by clause, we'll order by rownum in the outer query. - $AST->orderByClause = null; - } - - public function walkSelectStatement(SelectStatement $selectStatement): string - { - $sqlFinalizer = $this->getFinalizer($selectStatement); - - $query = $this->getQuery(); - - $abstractSqlExecutor = $sqlFinalizer->createExecutor($query); - - return $abstractSqlExecutor->getSqlStatements(); - } - - public function getFinalizer(AST\DeleteStatement|AST\UpdateStatement|AST\SelectStatement $AST): SqlFinalizer - { - if (! $AST instanceof SelectStatement) { - throw new LogicException(self::class . ' is to be used on SelectStatements only'); - } - - if ($this->platformSupportsRowNumber()) { - $sql = $this->createSqlWithRowNumber($AST); - } else { - $sql = $this->createSqlWithoutRowNumber($AST); - } - - return new SingleSelectSqlFinalizer($sql); - } - - /** - * Walks down a SelectStatement AST node, wrapping it in a SELECT DISTINCT. - * This method is for use with platforms which support ROW_NUMBER. - * - * @throws RuntimeException - */ - public function walkSelectStatementWithRowNumber(SelectStatement $AST): string - { - // Apply the limit and offset. - return $this->platform->modifyLimitQuery( - $this->createSqlWithRowNumber($AST), - $this->maxResults, - $this->firstResult, - ); - } - - private function createSqlWithRowNumber(SelectStatement $AST): string - { - $hasOrderBy = false; - $outerOrderBy = ' ORDER BY dctrn_minrownum ASC'; - $orderGroupBy = ''; - if ($AST->orderByClause instanceof OrderByClause) { - $hasOrderBy = true; - $this->rebuildOrderByForRowNumber($AST); - } - - $innerSql = $this->getInnerSQL($AST); - - $sqlIdentifier = $this->getSQLIdentifier($AST); - - if ($hasOrderBy) { - $orderGroupBy = ' GROUP BY ' . implode(', ', $sqlIdentifier); - $sqlIdentifier[] = 'MIN(' . $this->walkResultVariable('dctrn_rownum') . ') AS dctrn_minrownum'; - } - - // Build the counter query - $sql = sprintf( - 'SELECT DISTINCT %s FROM (%s) dctrn_result', - implode(', ', $sqlIdentifier), - $innerSql, - ); - - if ($hasOrderBy) { - $sql .= $orderGroupBy . $outerOrderBy; - } - - // Add the columns to the ResultSetMapping. It's not really nice but - // it works. Preferably I'd clear the RSM or simply create a new one - // but that is not possible from inside the output walker, so we dirty - // up the one we have. - foreach ($sqlIdentifier as $property => $alias) { - $this->rsm->addScalarResult($alias, $property); - } - - return $sql; - } - - /** - * Walks down a SelectStatement AST node, wrapping it in a SELECT DISTINCT. - * This method is for platforms which DO NOT support ROW_NUMBER. - * - * @throws RuntimeException - */ - public function walkSelectStatementWithoutRowNumber(SelectStatement $AST, bool $addMissingItemsFromOrderByToSelect = true): string - { - // Apply the limit and offset. - return $this->platform->modifyLimitQuery( - $this->createSqlWithoutRowNumber($AST, $addMissingItemsFromOrderByToSelect), - $this->maxResults, - $this->firstResult, - ); - } - - private function createSqlWithoutRowNumber(SelectStatement $AST, bool $addMissingItemsFromOrderByToSelect = true): string - { - // We don't want to call this recursively! - if ($AST->orderByClause instanceof OrderByClause && $addMissingItemsFromOrderByToSelect) { - // In the case of ordering a query by columns from joined tables, we - // must add those columns to the select clause of the query BEFORE - // the SQL is generated. - $this->addMissingItemsFromOrderByToSelect($AST); - } - - // Remove order by clause from the inner query - // It will be re-appended in the outer select generated by this method - $orderByClause = $AST->orderByClause; - $AST->orderByClause = null; - - $innerSql = $this->getInnerSQL($AST); - - $sqlIdentifier = $this->getSQLIdentifier($AST); - - // Build the counter query - $sql = sprintf( - 'SELECT DISTINCT %s FROM (%s) dctrn_result', - implode(', ', $sqlIdentifier), - $innerSql, - ); - - // https://github.com/doctrine/orm/issues/2630 - $sql = $this->preserveSqlOrdering($sqlIdentifier, $innerSql, $sql, $orderByClause); - - // Add the columns to the ResultSetMapping. It's not really nice but - // it works. Preferably I'd clear the RSM or simply create a new one - // but that is not possible from inside the output walker, so we dirty - // up the one we have. - foreach ($sqlIdentifier as $property => $alias) { - $this->rsm->addScalarResult($alias, $property); - } - - // Restore orderByClause - $AST->orderByClause = $orderByClause; - - return $sql; - } - - /** - * Finds all PathExpressions in an AST's OrderByClause, and ensures that - * the referenced fields are present in the SelectClause of the passed AST. - */ - private function addMissingItemsFromOrderByToSelect(SelectStatement $AST): void - { - $this->orderByPathExpressions = []; - - // We need to do this in another walker because otherwise we'll end up - // polluting the state of this one. - $walker = clone $this; - - // This will populate $orderByPathExpressions via - // LimitSubqueryOutputWalker::walkPathExpression, which will be called - // as the select statement is walked. We'll end up with an array of all - // path expressions referenced in the query. - $walker->walkSelectStatementWithoutRowNumber($AST, false); - $orderByPathExpressions = $walker->getOrderByPathExpressions(); - - // Get a map of referenced identifiers to field names. - $selects = []; - foreach ($orderByPathExpressions as $pathExpression) { - assert($pathExpression->field !== null); - $idVar = $pathExpression->identificationVariable; - $field = $pathExpression->field; - if (! isset($selects[$idVar])) { - $selects[$idVar] = []; - } - - $selects[$idVar][$field] = true; - } - - // Loop the select clause of the AST and exclude items from $select - // that are already being selected in the query. - foreach ($AST->selectClause->selectExpressions as $selectExpression) { - if ($selectExpression instanceof SelectExpression) { - $idVar = $selectExpression->expression; - if (! is_string($idVar)) { - continue; - } - - $field = $selectExpression->fieldIdentificationVariable; - if ($field === null) { - // No need to add this select, as we're already fetching the whole object. - unset($selects[$idVar]); - } else { - unset($selects[$idVar][$field]); - } - } - } - - // Add select items which were not excluded to the AST's select clause. - foreach ($selects as $idVar => $fields) { - $AST->selectClause->selectExpressions[] = new SelectExpression($idVar, null, true); - } - } - - /** - * Generates new SQL for statements with an order by clause - * - * @param mixed[] $sqlIdentifier - */ - private function preserveSqlOrdering( - array $sqlIdentifier, - string $innerSql, - string $sql, - OrderByClause|null $orderByClause, - ): string { - // If the sql statement has an order by clause, we need to wrap it in a new select distinct statement - if (! $orderByClause) { - return $sql; - } - - // now only select distinct identifier - return sprintf( - 'SELECT DISTINCT %s FROM (%s) dctrn_result', - implode(', ', $sqlIdentifier), - $this->recreateInnerSql($orderByClause, $sqlIdentifier, $innerSql), - ); - } - - /** - * Generates a new SQL statement for the inner query to keep the correct sorting - * - * @param mixed[] $identifiers - */ - private function recreateInnerSql( - OrderByClause $orderByClause, - array $identifiers, - string $innerSql, - ): string { - [$searchPatterns, $replacements] = $this->generateSqlAliasReplacements(); - $orderByItems = []; - - foreach ($orderByClause->orderByItems as $orderByItem) { - // Walk order by item to get string representation of it and - // replace path expressions in the order by clause with their column alias - $orderByItemString = preg_replace( - $searchPatterns, - $replacements, - $this->walkOrderByItem($orderByItem), - ); - - $orderByItems[] = $orderByItemString; - $identifier = substr($orderByItemString, 0, strrpos($orderByItemString, ' ')); - - if (! in_array($identifier, $identifiers, true)) { - $identifiers[] = $identifier; - } - } - - return $sql = sprintf( - 'SELECT DISTINCT %s FROM (%s) dctrn_result_inner ORDER BY %s', - implode(', ', $identifiers), - $innerSql, - implode(', ', $orderByItems), - ); - } - - /** - * @return string[][] - * @phpstan-return array{0: list, 1: list} - */ - private function generateSqlAliasReplacements(): array - { - $aliasMap = $searchPatterns = $replacements = $metadataList = []; - - // Generate DQL alias -> SQL table alias mapping - foreach (array_keys($this->rsm->aliasMap) as $dqlAlias) { - $metadataList[$dqlAlias] = $class = $this->getMetadataForDqlAlias($dqlAlias); - $aliasMap[$dqlAlias] = $this->getSQLTableAlias($class->getTableName(), $dqlAlias); - } - - // Generate search patterns for each field's path expression in the order by clause - foreach ($this->rsm->fieldMappings as $fieldAlias => $fieldName) { - $dqlAliasForFieldAlias = $this->rsm->columnOwnerMap[$fieldAlias]; - $class = $metadataList[$dqlAliasForFieldAlias]; - - // If the field is from a joined child table, we won't be ordering on it. - if (! isset($class->fieldMappings[$fieldName])) { - continue; - } - - $fieldMapping = $class->fieldMappings[$fieldName]; - - // Get the proper column name as will appear in the select list - $columnName = $this->quoteStrategy->getColumnName( - $fieldName, - $metadataList[$dqlAliasForFieldAlias], - $this->em->getConnection()->getDatabasePlatform(), - ); - - // Get the SQL table alias for the entity and field - $sqlTableAliasForFieldAlias = $aliasMap[$dqlAliasForFieldAlias]; - - if (isset($fieldMapping->declared) && $fieldMapping->declared !== $class->name) { - // Field was declared in a parent class, so we need to get the proper SQL table alias - // for the joined parent table. - $otherClassMetadata = $this->em->getClassMetadata($fieldMapping->declared); - - if (! $otherClassMetadata->isMappedSuperclass) { - $sqlTableAliasForFieldAlias = $this->getSQLTableAlias($otherClassMetadata->getTableName(), $dqlAliasForFieldAlias); - } - } - - // Compose search and replace patterns - $searchPatterns[] = sprintf(self::ORDER_BY_PATH_EXPRESSION, $sqlTableAliasForFieldAlias, $columnName); - $replacements[] = $fieldAlias; - } - - return [$searchPatterns, $replacements]; - } - - /** - * getter for $orderByPathExpressions - * - * @return list - */ - public function getOrderByPathExpressions(): array - { - return $this->orderByPathExpressions; - } - - /** - * @throws OptimisticLockException - * @throws QueryException - */ - private function getInnerSQL(SelectStatement $AST): string - { - // Set every select expression as visible(hidden = false) to - // make $AST have scalar mappings properly - this is relevant for referencing selected - // fields from outside the subquery, for example in the ORDER BY segment - $hiddens = []; - - foreach ($AST->selectClause->selectExpressions as $idx => $expr) { - $hiddens[$idx] = $expr->hiddenAliasResultVariable; - $expr->hiddenAliasResultVariable = false; - } - - $innerSql = parent::walkSelectStatement($AST); - - // Restore hiddens - foreach ($AST->selectClause->selectExpressions as $idx => $expr) { - $expr->hiddenAliasResultVariable = $hiddens[$idx]; - } - - return $innerSql; - } - - /** @return string[] */ - private function getSQLIdentifier(SelectStatement $AST): array - { - // Find out the SQL alias of the identifier column of the root entity. - // It may be possible to make this work with multiple root entities but that - // would probably require issuing multiple queries or doing a UNION SELECT. - // So for now, it's not supported. - - // Get the root entity and alias from the AST fromClause. - $from = $AST->fromClause->identificationVariableDeclarations; - if (count($from) !== 1) { - throw new RuntimeException('Cannot count query which selects two FROM components, cannot make distinction'); - } - - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - $rootIdentifier = $rootClass->identifier; - - // For every identifier, find out the SQL alias by combing through the ResultSetMapping - $sqlIdentifier = []; - foreach ($rootIdentifier as $property) { - if (isset($rootClass->fieldMappings[$property])) { - foreach (array_keys($this->rsm->fieldMappings, $property, true) as $alias) { - if ($this->rsm->columnOwnerMap[$alias] === $rootAlias) { - $sqlIdentifier[$property] = $alias; - } - } - } - - if (isset($rootClass->associationMappings[$property])) { - $association = $rootClass->associationMappings[$property]; - assert($association->isToOneOwningSide()); - $joinColumn = $association->joinColumns[0]->name; - - foreach (array_keys($this->rsm->metaMappings, $joinColumn, true) as $alias) { - if ($this->rsm->columnOwnerMap[$alias] === $rootAlias) { - $sqlIdentifier[$property] = $alias; - } - } - } - } - - if (count($sqlIdentifier) === 0) { - throw new RuntimeException('The Paginator does not support Queries which only yield ScalarResults.'); - } - - if (count($rootIdentifier) !== count($sqlIdentifier)) { - throw new RuntimeException(sprintf( - 'Not all identifier properties can be found in the ResultSetMapping: %s', - implode(', ', array_diff($rootIdentifier, array_keys($sqlIdentifier))), - )); - } - - return $sqlIdentifier; - } - - public function walkPathExpression(PathExpression $pathExpr): string - { - if (! $this->inSubSelect && ! $this->platformSupportsRowNumber() && ! in_array($pathExpr, $this->orderByPathExpressions, true)) { - $this->orderByPathExpressions[] = $pathExpr; - } - - return parent::walkPathExpression($pathExpr); - } - - public function walkSubSelect(Subselect $subselect): string - { - $this->inSubSelect = true; - - $sql = parent::walkSubselect($subselect); - - $this->inSubSelect = false; - - return $sql; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryWalker.php deleted file mode 100644 index 3fb0eee..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryWalker.php +++ /dev/null @@ -1,155 +0,0 @@ -fromClause->identificationVariableDeclarations; - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - - $this->validate($selectStatement); - $identifier = $rootClass->getSingleIdentifierFieldName(); - - if (isset($rootClass->associationMappings[$identifier])) { - throw new RuntimeException('Paginating an entity with foreign key as identifier only works when using the Output Walkers. Call Paginator#setUseOutputWalkers(true) before iterating the paginator.'); - } - - $query = $this->_getQuery(); - - $query->setHint( - self::IDENTIFIER_TYPE, - Type::getType($rootClass->fieldMappings[$identifier]->type), - ); - - $query->setHint(self::FORCE_DBAL_TYPE_CONVERSION, true); - - $pathExpression = new PathExpression( - PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, - $rootAlias, - $identifier, - ); - - $pathExpression->type = PathExpression::TYPE_STATE_FIELD; - - $selectStatement->selectClause->selectExpressions = [new SelectExpression($pathExpression, '_dctrn_id')]; - $selectStatement->selectClause->isDistinct = ($query->getHints()[Paginator::HINT_ENABLE_DISTINCT] ?? true) === true; - - if (! isset($selectStatement->orderByClause)) { - return; - } - - $queryComponents = $this->getQueryComponents(); - foreach ($selectStatement->orderByClause->orderByItems as $item) { - if ($item->expression instanceof PathExpression) { - $selectStatement->selectClause->selectExpressions[] = new SelectExpression( - $this->createSelectExpressionItem($item->expression), - '_dctrn_ord' . $this->aliasCounter++, - ); - - continue; - } - - if (is_string($item->expression) && isset($queryComponents[$item->expression])) { - $qComp = $queryComponents[$item->expression]; - - if (isset($qComp['resultVariable'])) { - $selectStatement->selectClause->selectExpressions[] = new SelectExpression( - $qComp['resultVariable'], - $item->expression, - ); - } - } - } - } - - /** - * Validate the AST to ensure that this walker is able to properly manipulate it. - */ - private function validate(SelectStatement $AST): void - { - // Prevent LimitSubqueryWalker from being used with queries that include - // a limit, a fetched to-many join, and an order by condition that - // references a column from the fetch joined table. - $queryComponents = $this->getQueryComponents(); - $query = $this->_getQuery(); - $from = $AST->fromClause->identificationVariableDeclarations; - $fromRoot = reset($from); - - if ( - $query instanceof Query - && $query->getMaxResults() !== null - && $AST->orderByClause - && count($fromRoot->joins) - ) { - // Check each orderby item. - // TODO: check complex orderby items too... - foreach ($AST->orderByClause->orderByItems as $orderByItem) { - $expression = $orderByItem->expression; - if ( - $orderByItem->expression instanceof PathExpression - && isset($queryComponents[$expression->identificationVariable]) - ) { - $queryComponent = $queryComponents[$expression->identificationVariable]; - if ( - isset($queryComponent['parent']) - && isset($queryComponent['relation']) - && $queryComponent['relation']->isToMany() - ) { - throw new RuntimeException('Cannot select distinct identifiers from query with LIMIT and ORDER BY on a column from a fetch joined to-many association. Use output walkers.'); - } - } - } - } - } - - /** - * Retrieve either an IdentityFunction (IDENTITY(u.assoc)) or a state field (u.name). - * - * @return IdentityFunction|PathExpression - */ - private function createSelectExpressionItem(PathExpression $pathExpression): Node - { - if ($pathExpression->type === PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION) { - $identity = new IdentityFunction('identity'); - - $identity->pathExpression = clone $pathExpression; - - return $identity; - } - - return clone $pathExpression; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Paginator.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Paginator.php deleted file mode 100644 index d74ab6c..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/Paginator.php +++ /dev/null @@ -1,263 +0,0 @@ - - */ -class Paginator implements Countable, IteratorAggregate -{ - use SQLResultCasing; - - public const HINT_ENABLE_DISTINCT = 'paginator.distinct.enable'; - - private readonly Query $query; - private bool|null $useOutputWalkers = null; - private int|null $count = null; - - /** @param bool $fetchJoinCollection Whether the query joins a collection (true by default). */ - public function __construct( - Query|QueryBuilder $query, - private readonly bool $fetchJoinCollection = true, - ) { - if ($query instanceof QueryBuilder) { - $query = $query->getQuery(); - } - - $this->query = $query; - } - - /** - * Returns the query. - */ - public function getQuery(): Query - { - return $this->query; - } - - /** - * Returns whether the query joins a collection. - * - * @return bool Whether the query joins a collection. - */ - public function getFetchJoinCollection(): bool - { - return $this->fetchJoinCollection; - } - - /** - * Returns whether the paginator will use an output walker. - */ - public function getUseOutputWalkers(): bool|null - { - return $this->useOutputWalkers; - } - - /** - * Sets whether the paginator will use an output walker. - * - * @return $this - */ - public function setUseOutputWalkers(bool|null $useOutputWalkers): static - { - $this->useOutputWalkers = $useOutputWalkers; - - return $this; - } - - public function count(): int - { - if ($this->count === null) { - try { - $this->count = (int) array_sum(array_map('current', $this->getCountQuery()->getScalarResult())); - } catch (NoResultException) { - $this->count = 0; - } - } - - return $this->count; - } - - /** - * {@inheritDoc} - * - * @phpstan-return Traversable - */ - public function getIterator(): Traversable - { - $offset = $this->query->getFirstResult(); - $length = $this->query->getMaxResults(); - - if ($this->fetchJoinCollection && $length !== null) { - $subQuery = $this->cloneQuery($this->query); - - if ($this->useOutputWalker($subQuery)) { - $subQuery->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, LimitSubqueryOutputWalker::class); - } else { - $this->appendTreeWalker($subQuery, LimitSubqueryWalker::class); - $this->unbindUnusedQueryParams($subQuery); - } - - $subQuery->setFirstResult($offset)->setMaxResults($length); - - $foundIdRows = $subQuery->getScalarResult(); - - // don't do this for an empty id array - if ($foundIdRows === []) { - return new ArrayIterator([]); - } - - $whereInQuery = $this->cloneQuery($this->query); - $ids = array_map('current', $foundIdRows); - - $this->appendTreeWalker($whereInQuery, WhereInWalker::class); - $whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_HAS_IDS, true); - $whereInQuery->setFirstResult(0)->setMaxResults(null); - $whereInQuery->setCacheable($this->query->isCacheable()); - - $databaseIds = $this->convertWhereInIdentifiersToDatabaseValues($ids); - $whereInQuery->setParameter(WhereInWalker::PAGINATOR_ID_ALIAS, $databaseIds); - - $result = $whereInQuery->getResult($this->query->getHydrationMode()); - } else { - $result = $this->cloneQuery($this->query) - ->setMaxResults($length) - ->setFirstResult($offset) - ->setCacheable($this->query->isCacheable()) - ->getResult($this->query->getHydrationMode()); - } - - return new ArrayIterator($result); - } - - private function cloneQuery(Query $query): Query - { - $cloneQuery = clone $query; - - $cloneQuery->setParameters(clone $query->getParameters()); - $cloneQuery->setCacheable(false); - - foreach ($query->getHints() as $name => $value) { - $cloneQuery->setHint($name, $value); - } - - return $cloneQuery; - } - - /** - * Determines whether to use an output walker for the query. - */ - private function useOutputWalker(Query $query): bool - { - if ($this->useOutputWalkers === null) { - return (bool) $query->getHint(Query::HINT_CUSTOM_OUTPUT_WALKER) === false; - } - - return $this->useOutputWalkers; - } - - /** - * Appends a custom tree walker to the tree walkers hint. - * - * @param class-string $walkerClass - */ - private function appendTreeWalker(Query $query, string $walkerClass): void - { - $hints = $query->getHint(Query::HINT_CUSTOM_TREE_WALKERS); - - if ($hints === false) { - $hints = []; - } - - $hints[] = $walkerClass; - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, $hints); - } - - /** - * Returns Query prepared to count. - */ - private function getCountQuery(): Query - { - $countQuery = $this->cloneQuery($this->query); - - if (! $countQuery->hasHint(CountWalker::HINT_DISTINCT)) { - $countQuery->setHint(CountWalker::HINT_DISTINCT, true); - } - - if ($this->useOutputWalker($countQuery)) { - $platform = $countQuery->getEntityManager()->getConnection()->getDatabasePlatform(); // law of demeter win - - $rsm = new ResultSetMapping(); - $rsm->addScalarResult($this->getSQLResultCasing($platform, 'dctrn_count'), 'count'); - - $countQuery->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, CountOutputWalker::class); - $countQuery->setResultSetMapping($rsm); - } else { - $this->appendTreeWalker($countQuery, CountWalker::class); - $this->unbindUnusedQueryParams($countQuery); - } - - $countQuery->setFirstResult(0)->setMaxResults(null); - - return $countQuery; - } - - private function unbindUnusedQueryParams(Query $query): void - { - $parser = new Parser($query); - $parameterMappings = $parser->parse()->getParameterMappings(); - /** @var Collection|Parameter[] $parameters */ - $parameters = $query->getParameters(); - - foreach ($parameters as $key => $parameter) { - $parameterName = $parameter->getName(); - - if (! (isset($parameterMappings[$parameterName]) || array_key_exists($parameterName, $parameterMappings))) { - unset($parameters[$key]); - } - } - - $query->setParameters($parameters); - } - - /** - * @param mixed[] $identifiers - * - * @return mixed[] - */ - private function convertWhereInIdentifiersToDatabaseValues(array $identifiers): array - { - $query = $this->cloneQuery($this->query); - $query->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, RootTypeWalker::class); - - $connection = $this->query->getEntityManager()->getConnection(); - $type = $query->getSQL(); - assert(is_string($type)); - - return array_map(static fn ($id): mixed => $connection->convertToDatabaseValue($id, $type), $identifiers); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RootTypeWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RootTypeWalker.php deleted file mode 100644 index 82d52c2..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RootTypeWalker.php +++ /dev/null @@ -1,60 +0,0 @@ - root entity id type resolution can be cached in the query cache. - */ -final class RootTypeWalker extends SqlOutputWalker -{ - public function walkSelectStatement(AST\SelectStatement $selectStatement): string - { - // Get the root entity and alias from the AST fromClause - $from = $selectStatement->fromClause->identificationVariableDeclarations; - - if (count($from) > 1) { - throw new RuntimeException('Can only process queries that select only one FROM component'); - } - - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - $identifierFieldName = $rootClass->getSingleIdentifierFieldName(); - - return PersisterHelper::getTypeOfField( - $identifierFieldName, - $rootClass, - $this->getQuery() - ->getEntityManager(), - )[0]; - } - - public function getFinalizer(AST\DeleteStatement|AST\UpdateStatement|AST\SelectStatement $AST): SqlFinalizer - { - if (! $AST instanceof AST\SelectStatement) { - throw new RuntimeException(self::class . ' is to be used on SelectStatements only'); - } - - return new PreparedExecutorFinalizer(new FinalizedSelectExecutor($this->walkSelectStatement($AST))); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RowNumberOverFunction.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RowNumberOverFunction.php deleted file mode 100644 index a0fdd01..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/RowNumberOverFunction.php +++ /dev/null @@ -1,40 +0,0 @@ -walkOrderByClause( - $this->orderByClause, - )) . ')'; - } - - /** - * @throws RowNumberOverFunctionNotEnabled - * - * @inheritdoc - */ - public function parse(Parser $parser): void - { - throw RowNumberOverFunctionNotEnabled::create(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/WhereInWalker.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/WhereInWalker.php deleted file mode 100644 index 01741ca..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/Pagination/WhereInWalker.php +++ /dev/null @@ -1,116 +0,0 @@ -fromClause->identificationVariableDeclarations; - - if (count($from) > 1) { - throw new RuntimeException('Cannot count query which selects two FROM components, cannot make distinction'); - } - - $fromRoot = reset($from); - $rootAlias = $fromRoot->rangeVariableDeclaration->aliasIdentificationVariable; - $rootClass = $this->getMetadataForDqlAlias($rootAlias); - $identifierFieldName = $rootClass->getSingleIdentifierFieldName(); - - $pathType = PathExpression::TYPE_STATE_FIELD; - if (isset($rootClass->associationMappings[$identifierFieldName])) { - $pathType = PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION; - } - - $pathExpression = new PathExpression(PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $rootAlias, $identifierFieldName); - $pathExpression->type = $pathType; - - $hasIds = $this->_getQuery()->getHint(self::HINT_PAGINATOR_HAS_IDS); - - if ($hasIds) { - $arithmeticExpression = new ArithmeticExpression(); - $arithmeticExpression->simpleArithmeticExpression = new SimpleArithmeticExpression( - [$pathExpression], - ); - $expression = new InListExpression( - $arithmeticExpression, - [new InputParameter(':' . self::PAGINATOR_ID_ALIAS)], - ); - } else { - $expression = new NullComparisonExpression($pathExpression); - } - - $conditionalPrimary = new ConditionalPrimary(); - $conditionalPrimary->simpleConditionalExpression = $expression; - if ($selectStatement->whereClause) { - if ($selectStatement->whereClause->conditionalExpression instanceof ConditionalTerm) { - $selectStatement->whereClause->conditionalExpression->conditionalFactors[] = $conditionalPrimary; - } elseif ($selectStatement->whereClause->conditionalExpression instanceof ConditionalPrimary) { - $selectStatement->whereClause->conditionalExpression = new ConditionalExpression( - [ - new ConditionalTerm( - [ - $selectStatement->whereClause->conditionalExpression, - $conditionalPrimary, - ], - ), - ], - ); - } else { - $tmpPrimary = new ConditionalPrimary(); - $tmpPrimary->conditionalExpression = $selectStatement->whereClause->conditionalExpression; - $selectStatement->whereClause->conditionalExpression = new ConditionalTerm( - [ - $tmpPrimary, - $conditionalPrimary, - ], - ); - } - } else { - $selectStatement->whereClause = new WhereClause( - new ConditionalExpression( - [new ConditionalTerm([$conditionalPrimary])], - ), - ); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/ResolveTargetEntityListener.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/ResolveTargetEntityListener.php deleted file mode 100644 index 9760abf..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/ResolveTargetEntityListener.php +++ /dev/null @@ -1,117 +0,0 @@ - $mapping - */ - public function addResolveTargetEntity(string $originalEntity, string $newEntity, array $mapping): void - { - $mapping['targetEntity'] = ltrim($newEntity, '\\'); - $this->resolveTargetEntities[ltrim($originalEntity, '\\')] = $mapping; - } - - /** @internal this is an event callback, and should not be called directly */ - public function onClassMetadataNotFound(OnClassMetadataNotFoundEventArgs $args): void - { - if (array_key_exists($args->getClassName(), $this->resolveTargetEntities)) { - $args->setFoundMetadata( - $args - ->getObjectManager() - ->getClassMetadata($this->resolveTargetEntities[$args->getClassName()]['targetEntity']), - ); - } - } - - /** - * Processes event and resolves new target entity names. - * - * @internal this is an event callback, and should not be called directly - */ - public function loadClassMetadata(LoadClassMetadataEventArgs $args): void - { - $cm = $args->getClassMetadata(); - - foreach ($cm->associationMappings as $mapping) { - if (isset($this->resolveTargetEntities[$mapping->targetEntity])) { - $this->remapAssociation($cm, $mapping); - } - } - - foreach ($this->resolveTargetEntities as $interface => $data) { - if ($data['targetEntity'] === $cm->getName()) { - $args->getEntityManager()->getMetadataFactory()->setMetadataFor($interface, $cm); - } - } - - foreach ($cm->discriminatorMap as $value => $class) { - if (isset($this->resolveTargetEntities[$class])) { - $cm->addDiscriminatorMapClass($value, $this->resolveTargetEntities[$class]['targetEntity']); - } - } - } - - private function remapAssociation(ClassMetadata $classMetadata, AssociationMapping $mapping): void - { - $newMapping = $this->resolveTargetEntities[$mapping->targetEntity]; - $newMapping = array_replace_recursive( - $mapping->toArray(), - $newMapping, - ); - $newMapping['fieldName'] = $mapping->fieldName; - - unset($classMetadata->associationMappings[$mapping->fieldName]); - - switch ($mapping->type()) { - case ClassMetadata::MANY_TO_MANY: - $classMetadata->mapManyToMany($newMapping); - break; - case ClassMetadata::MANY_TO_ONE: - $classMetadata->mapManyToOne($newMapping); - break; - case ClassMetadata::ONE_TO_MANY: - $classMetadata->mapOneToMany($newMapping); - break; - case ClassMetadata::ONE_TO_ONE: - $classMetadata->mapOneToOne($newMapping); - break; - } - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaTool.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaTool.php deleted file mode 100644 index 775d9fd..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaTool.php +++ /dev/null @@ -1,997 +0,0 @@ -ClassMetadata class descriptors. - * - * @link www.doctrine-project.org - */ -class SchemaTool -{ - private const KNOWN_COLUMN_OPTIONS = ['comment', 'unsigned', 'fixed', 'default', 'values']; - - private readonly AbstractPlatform $platform; - private readonly QuoteStrategy $quoteStrategy; - private readonly AbstractSchemaManager $schemaManager; - - /** - * Initializes a new SchemaTool instance that uses the connection of the - * provided EntityManager. - */ - public function __construct(private readonly EntityManagerInterface $em) - { - $this->platform = $em->getConnection()->getDatabasePlatform(); - $this->quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - $this->schemaManager = $em->getConnection()->createSchemaManager(); - } - - /** - * Creates the database schema for the given array of ClassMetadata instances. - * - * @phpstan-param list $classes - * - * @throws ToolsException - */ - public function createSchema(array $classes): void - { - $createSchemaSql = $this->getCreateSchemaSql($classes); - $conn = $this->em->getConnection(); - - foreach ($createSchemaSql as $sql) { - try { - $conn->executeStatement($sql); - } catch (Throwable $e) { - throw ToolsException::schemaToolFailure($sql, $e); - } - } - } - - /** - * Gets the list of DDL statements that are required to create the database schema for - * the given list of ClassMetadata instances. - * - * @phpstan-param list $classes - * - * @return list The SQL statements needed to create the schema for the classes. - */ - public function getCreateSchemaSql(array $classes): array - { - $schema = $this->getSchemaFromMetadata($classes); - - return $schema->toSql($this->platform); - } - - /** - * Detects instances of ClassMetadata that don't need to be processed in the SchemaTool context. - * - * @phpstan-param array $processedClasses - */ - private function processingNotRequired( - ClassMetadata $class, - array $processedClasses, - ): bool { - return isset($processedClasses[$class->name]) || - $class->isMappedSuperclass || - $class->isEmbeddedClass || - ($class->isInheritanceTypeSingleTable() && $class->name !== $class->rootEntityName) || - in_array($class->name, $this->em->getConfiguration()->getSchemaIgnoreClasses()); - } - - /** - * Resolves fields in index mapping to column names - * - * @param mixed[] $indexData index or unique constraint data - * - * @return list Column names from combined fields and columns mappings - */ - private function getIndexColumns(ClassMetadata $class, array $indexData): array - { - $columns = []; - - if ( - isset($indexData['columns'], $indexData['fields']) - || ( - ! isset($indexData['columns']) - && ! isset($indexData['fields']) - ) - ) { - throw MappingException::invalidIndexConfiguration( - (string) $class, - $indexData['name'] ?? 'unnamed', - ); - } - - if (isset($indexData['columns'])) { - $columns = $indexData['columns']; - } - - if (isset($indexData['fields'])) { - foreach ($indexData['fields'] as $fieldName) { - if ($class->hasField($fieldName)) { - $columns[] = $this->quoteStrategy->getColumnName($fieldName, $class, $this->platform); - } elseif ($class->hasAssociation($fieldName)) { - $assoc = $class->getAssociationMapping($fieldName); - assert($assoc->isToOneOwningSide()); - foreach ($assoc->joinColumns as $joinColumn) { - $columns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - } - } - } - - return $columns; - } - - /** - * Creates a Schema instance from a given set of metadata classes. - * - * @phpstan-param list $classes - * - * @throws NotSupported - */ - public function getSchemaFromMetadata(array $classes): Schema - { - // Reminder for processed classes, used for hierarchies - $processedClasses = []; - $eventManager = $this->em->getEventManager(); - $metadataSchemaConfig = $this->schemaManager->createSchemaConfig(); - - $schema = new Schema([], [], $metadataSchemaConfig); - - $addedFks = []; - $blacklistedFks = []; - - foreach ($classes as $class) { - if ($this->processingNotRequired($class, $processedClasses)) { - continue; - } - - $table = $schema->createTable($this->quoteStrategy->getTableName($class, $this->platform)); - - if ($class->isInheritanceTypeSingleTable()) { - $this->gatherColumns($class, $table); - $this->gatherRelationsSql($class, $table, $schema, $addedFks, $blacklistedFks); - - // Add the discriminator column - $this->addDiscriminatorColumnDefinition($class, $table); - - // Aggregate all the information from all classes in the hierarchy - foreach ($class->parentClasses as $parentClassName) { - // Parent class information is already contained in this class - $processedClasses[$parentClassName] = true; - } - - foreach ($class->subClasses as $subClassName) { - $subClass = $this->em->getClassMetadata($subClassName); - $this->gatherColumns($subClass, $table); - $this->gatherRelationsSql($subClass, $table, $schema, $addedFks, $blacklistedFks); - $processedClasses[$subClassName] = true; - } - } elseif ($class->isInheritanceTypeJoined()) { - // Add all non-inherited fields as columns - foreach ($class->fieldMappings as $fieldName => $mapping) { - if (! isset($mapping->inherited)) { - $this->gatherColumn($class, $mapping, $table); - } - } - - $this->gatherRelationsSql($class, $table, $schema, $addedFks, $blacklistedFks); - - // Add the discriminator column only to the root table - if ($class->name === $class->rootEntityName) { - $this->addDiscriminatorColumnDefinition($class, $table); - } else { - // Add an ID FK column to child tables - $pkColumns = []; - $inheritedKeyColumns = []; - - foreach ($class->identifier as $identifierField) { - if (isset($class->fieldMappings[$identifierField]->inherited)) { - $idMapping = $class->fieldMappings[$identifierField]; - $this->gatherColumn($class, $idMapping, $table); - $columnName = $this->quoteStrategy->getColumnName( - $identifierField, - $class, - $this->platform, - ); - // TODO: This seems rather hackish, can we optimize it? - $table->getColumn($columnName)->setAutoincrement(false); - - $pkColumns[] = $columnName; - $inheritedKeyColumns[] = $columnName; - - continue; - } - - if (isset($class->associationMappings[$identifierField]->inherited)) { - $idMapping = $class->associationMappings[$identifierField]; - assert($idMapping->isToOneOwningSide()); - - $targetEntity = current( - array_filter( - $classes, - static fn (ClassMetadata $class): bool => $class->name === $idMapping->targetEntity, - ), - ); - - foreach ($idMapping->joinColumns as $joinColumn) { - if (isset($targetEntity->fieldMappings[$joinColumn->referencedColumnName])) { - $columnName = $this->quoteStrategy->getJoinColumnName( - $joinColumn, - $class, - $this->platform, - ); - - $pkColumns[] = $columnName; - $inheritedKeyColumns[] = $columnName; - } - } - } - } - - if ($inheritedKeyColumns !== []) { - // Add a FK constraint on the ID column - $table->addForeignKeyConstraint( - $this->quoteStrategy->getTableName( - $this->em->getClassMetadata($class->rootEntityName), - $this->platform, - ), - $inheritedKeyColumns, - $inheritedKeyColumns, - ['onDelete' => 'CASCADE'], - ); - } - - if ($pkColumns !== []) { - self::addPrimaryKeyConstraint($table, $pkColumns); - } - } - } else { - $this->gatherColumns($class, $table); - $this->gatherRelationsSql($class, $table, $schema, $addedFks, $blacklistedFks); - } - - $pkColumns = []; - - foreach ($class->identifier as $identifierField) { - if (isset($class->fieldMappings[$identifierField])) { - $pkColumns[] = $this->quoteStrategy->getColumnName($identifierField, $class, $this->platform); - } elseif (isset($class->associationMappings[$identifierField])) { - $assoc = $class->associationMappings[$identifierField]; - assert($assoc->isToOneOwningSide()); - - foreach ($assoc->joinColumns as $joinColumn) { - $pkColumns[] = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - } - } - } - - if (! $table->hasIndex('primary')) { - self::addPrimaryKeyConstraint($table, $pkColumns); - } - - // there can be unique indexes automatically created for join column - // if join column is also primary key we should keep only primary key on this column - // so, remove indexes overruled by primary key - $primaryKey = $table->getIndex('primary'); - - foreach ($table->getIndexes() as $idxKey => $existingIndex) { - if ($existingIndex !== $primaryKey && $primaryKey->spansColumns(self::getIndexedColumns($existingIndex))) { - $table->dropIndex($idxKey); - } - } - - if (isset($class->table['indexes'])) { - foreach ($class->table['indexes'] as $indexName => $indexData) { - if (! isset($indexData['flags'])) { - $indexData['flags'] = []; - } - - $table->addIndex( - $this->getIndexColumns($class, $indexData), - is_numeric($indexName) ? null : $indexName, - (array) $indexData['flags'], - $indexData['options'] ?? [], - ); - } - } - - if (isset($class->table['uniqueConstraints'])) { - foreach ($class->table['uniqueConstraints'] as $indexName => $indexData) { - $uniqIndex = new Index('tmp__' . $indexName, $this->getIndexColumns($class, $indexData), true, false, [], $indexData['options'] ?? []); - - foreach ($table->getIndexes() as $tableIndexName => $tableIndex) { - if ($tableIndex->isFulfilledBy($uniqIndex)) { - $table->dropIndex($tableIndexName); - break; - } - } - - $table->addUniqueIndex(self::getIndexedColumns($uniqIndex), is_numeric($indexName) ? null : $indexName, $indexData['options'] ?? []); - } - } - - if (isset($class->table['options'])) { - foreach ($class->table['options'] as $key => $val) { - $table->addOption($key, $val); - } - } - - $processedClasses[$class->name] = true; - - if ($class->isIdGeneratorSequence() && $class->name === $class->rootEntityName) { - $seqDef = $class->sequenceGeneratorDefinition; - $quotedName = $this->quoteStrategy->getSequenceName($seqDef, $class, $this->platform); - if (! $schema->hasSequence($quotedName)) { - $schema->createSequence( - $quotedName, - (int) $seqDef['allocationSize'], - (int) $seqDef['initialValue'], - ); - } - } - - if ($eventManager->hasListeners(ToolEvents::postGenerateSchemaTable)) { - $eventManager->dispatchEvent( - ToolEvents::postGenerateSchemaTable, - new GenerateSchemaTableEventArgs($class, $schema, $table), - ); - } - } - - if ($eventManager->hasListeners(ToolEvents::postGenerateSchema)) { - $eventManager->dispatchEvent( - ToolEvents::postGenerateSchema, - new GenerateSchemaEventArgs($this->em, $schema), - ); - } - - return $schema; - } - - /** - * Gets a portable column definition as required by the DBAL for the discriminator - * column of a class. - */ - private function addDiscriminatorColumnDefinition(ClassMetadata $class, Table $table): void - { - $discrColumn = $class->discriminatorColumn; - assert($discrColumn !== null); - - if (strtolower($discrColumn->type) === 'string' && ! isset($discrColumn->length)) { - $discrColumn->type = 'string'; - $discrColumn->length = 255; - } - - $options = [ - 'length' => $discrColumn->length ?? null, - 'notnull' => true, - ]; - - if (isset($discrColumn->columnDefinition)) { - $options['columnDefinition'] = $discrColumn->columnDefinition; - } - - $options = $this->gatherColumnOptions($discrColumn) + $options; - $table->addColumn($discrColumn->name, $discrColumn->type, $options); - } - - /** - * Gathers the column definitions as required by the DBAL of all field mappings - * found in the given class. - */ - private function gatherColumns(ClassMetadata $class, Table $table): void - { - foreach ($class->fieldMappings as $mapping) { - if ($class->isInheritanceTypeSingleTable() && isset($mapping->inherited)) { - continue; - } - - $this->gatherColumn($class, $mapping, $table); - } - } - - /** - * Creates a column definition as required by the DBAL from an ORM field mapping definition. - * - * @param ClassMetadata $class The class that owns the field mapping. - * @phpstan-param FieldMapping $mapping The field mapping. - */ - private function gatherColumn( - ClassMetadata $class, - FieldMapping $mapping, - Table $table, - ): void { - $columnName = $this->quoteStrategy->getColumnName($mapping->fieldName, $class, $this->platform); - $columnType = $mapping->type; - - $options = []; - $options['length'] = $mapping->length ?? null; - $options['notnull'] = isset($mapping->nullable) ? ! $mapping->nullable : true; - if ($class->isInheritanceTypeSingleTable() && $class->parentClasses) { - $options['notnull'] = false; - } - - $options['platformOptions'] = []; - $options['platformOptions']['version'] = $class->isVersioned && $class->versionField === $mapping->fieldName; - - if (strtolower($columnType) === 'string' && $options['length'] === null) { - $options['length'] = 255; - } - - if (isset($mapping->precision)) { - $options['precision'] = $mapping->precision; - } - - if (isset($mapping->scale)) { - $options['scale'] = $mapping->scale; - } - - if (isset($mapping->default)) { - $options['default'] = $mapping->default; - } - - if (isset($mapping->columnDefinition)) { - $options['columnDefinition'] = $mapping->columnDefinition; - } - - // the 'default' option can be overwritten here - $options = $this->gatherColumnOptions($mapping) + $options; - - if ($class->isIdGeneratorIdentity() && $class->getIdentifierFieldNames() === [$mapping->fieldName]) { - $options['autoincrement'] = true; - } - - if ($class->isInheritanceTypeJoined() && $class->name !== $class->rootEntityName) { - $options['autoincrement'] = false; - } - - if ($table->hasColumn($columnName)) { - // required in some inheritance scenarios - $table->modifyColumn($columnName, $options); - } else { - $table->addColumn($columnName, $columnType, $options); - } - - $isUnique = $mapping->unique ?? false; - if ($isUnique) { - $table->addUniqueIndex([$columnName]); - } - - $isIndex = $mapping->index ?? false; - if ($isIndex) { - $table->addIndex([$columnName]); - } - } - - /** - * Gathers the SQL for properly setting up the relations of the given class. - * This includes the SQL for foreign key constraints and join tables. - * - * @phpstan-param array - * }> $addedFks - * @phpstan-param array $blacklistedFks - * - * @throws NotSupported - */ - private function gatherRelationsSql( - ClassMetadata $class, - Table $table, - Schema $schema, - array &$addedFks, - array &$blacklistedFks, - ): void { - foreach ($class->associationMappings as $id => $mapping) { - if (isset($mapping->inherited) && ! in_array($id, $class->identifier, true)) { - continue; - } - - $foreignClass = $this->em->getClassMetadata($mapping->targetEntity); - - if ($mapping->isToOneOwningSide()) { - $primaryKeyColumns = []; // PK is unnecessary for this relation-type - - $this->gatherRelationJoinColumns( - $mapping->joinColumns, - $table, - $foreignClass, - $mapping, - $primaryKeyColumns, - $addedFks, - $blacklistedFks, - ); - } elseif ($mapping instanceof ManyToManyOwningSideMapping) { - // create join table - $joinTable = $mapping->joinTable; - - $theJoinTable = $schema->createTable( - $this->quoteStrategy->getJoinTableName($mapping, $foreignClass, $this->platform), - ); - - foreach ($joinTable->options as $key => $val) { - $theJoinTable->addOption($key, $val); - } - - $primaryKeyColumns = []; - - // Build first FK constraint (relation table => source table) - $this->gatherRelationJoinColumns( - $joinTable->joinColumns, - $theJoinTable, - $class, - $mapping, - $primaryKeyColumns, - $addedFks, - $blacklistedFks, - ); - - // Build second FK constraint (relation table => target table) - $this->gatherRelationJoinColumns( - $joinTable->inverseJoinColumns, - $theJoinTable, - $foreignClass, - $mapping, - $primaryKeyColumns, - $addedFks, - $blacklistedFks, - ); - - self::addPrimaryKeyConstraint($theJoinTable, $primaryKeyColumns); - } - } - } - - /** - * Gets the class metadata that is responsible for the definition of the referenced column name. - * - * Previously this was a simple task, but with DDC-117 this problem is actually recursive. If its - * not a simple field, go through all identifier field names that are associations recursively and - * find that referenced column name. - * - * TODO: Is there any way to make this code more pleasing? - * - * @phpstan-return array{ClassMetadata, string}|null - */ - private function getDefiningClass(ClassMetadata $class, string $referencedColumnName): array|null - { - $referencedFieldName = $class->getFieldName($referencedColumnName); - - if ($class->hasField($referencedFieldName)) { - return [$class, $referencedFieldName]; - } - - if (in_array($referencedColumnName, $class->getIdentifierColumnNames(), true)) { - // it seems to be an entity as foreign key - foreach ($class->getIdentifierFieldNames() as $fieldName) { - if ( - $class->hasAssociation($fieldName) - && $class->getSingleAssociationJoinColumnName($fieldName) === $referencedColumnName - ) { - return $this->getDefiningClass( - $this->em->getClassMetadata($class->associationMappings[$fieldName]->targetEntity), - $class->getSingleAssociationReferencedJoinColumnName($fieldName), - ); - } - } - } - - return null; - } - - /** - * Gathers columns and fk constraints that are required for one part of relationship. - * - * @phpstan-param list $joinColumns - * @phpstan-param list $primaryKeyColumns - * @phpstan-param array - * }> $addedFks - * @phpstan-param array $blacklistedFks - * - * @throws MissingColumnException - */ - private function gatherRelationJoinColumns( - array $joinColumns, - Table $theJoinTable, - ClassMetadata $class, - AssociationMapping $mapping, - array &$primaryKeyColumns, - array &$addedFks, - array &$blacklistedFks, - ): void { - $localColumns = []; - $foreignColumns = []; - $fkOptions = []; - $foreignTableName = $this->quoteStrategy->getTableName($class, $this->platform); - $uniqueConstraints = []; - - foreach ($joinColumns as $joinColumn) { - [$definingClass, $referencedFieldName] = $this->getDefiningClass( - $class, - $joinColumn->referencedColumnName, - ); - - if (! $definingClass) { - throw MissingColumnException::fromColumnSourceAndTarget( - $joinColumn->referencedColumnName, - $mapping->sourceEntity, - $mapping->targetEntity, - ); - } - - $quotedColumnName = $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); - $quotedRefColumnName = $this->quoteStrategy->getReferencedJoinColumnName( - $joinColumn, - $class, - $this->platform, - ); - - $primaryKeyColumns[] = $quotedColumnName; - $localColumns[] = $quotedColumnName; - $foreignColumns[] = $quotedRefColumnName; - - if (! $theJoinTable->hasColumn($quotedColumnName)) { - // Only add the column to the table if it does not exist already. - // It might exist already if the foreign key is mapped into a regular - // property as well. - - $fieldMapping = $definingClass->getFieldMapping($referencedFieldName); - - $columnOptions = ['notnull' => false]; - - if (isset($joinColumn->columnDefinition)) { - $columnOptions['columnDefinition'] = $joinColumn->columnDefinition; - } elseif (isset($fieldMapping->columnDefinition)) { - $columnOptions['columnDefinition'] = $fieldMapping->columnDefinition; - } - - if (isset($joinColumn->nullable)) { - $columnOptions['notnull'] = ! $joinColumn->nullable; - } - - $columnOptions += $this->gatherColumnOptions($fieldMapping); - - if (isset($fieldMapping->length)) { - $columnOptions['length'] = $fieldMapping->length; - } - - if ($fieldMapping->type === 'decimal') { - $columnOptions['scale'] = $fieldMapping->scale; - $columnOptions['precision'] = $fieldMapping->precision; - } - - $columnOptions = $this->gatherColumnOptions($joinColumn) + $columnOptions; - - $theJoinTable->addColumn($quotedColumnName, $fieldMapping->type, $columnOptions); - } - - if (isset($joinColumn->unique) && $joinColumn->unique === true) { - $uniqueConstraints[] = ['columns' => [$quotedColumnName]]; - } - - if (isset($joinColumn->onDelete)) { - $fkOptions['onDelete'] = $joinColumn->onDelete; - } - - if (isset($joinColumn->deferrable)) { - $fkOptions['deferrable'] = $joinColumn->deferrable; - } - } - - // Prefer unique constraints over implicit simple indexes created for foreign keys. - // Also avoids index duplication. - foreach ($uniqueConstraints as $indexName => $unique) { - $theJoinTable->addUniqueIndex($unique['columns'], is_numeric($indexName) ? null : $indexName); - } - - $compositeName = $theJoinTable->getName() . '.' . implode('', $localColumns); - if ( - isset($addedFks[$compositeName]) - && ($foreignTableName !== $addedFks[$compositeName]['foreignTableName'] - || 0 < count(array_diff($foreignColumns, $addedFks[$compositeName]['foreignColumns']))) - ) { - foreach ($theJoinTable->getForeignKeys() as $fkName => $key) { - if ( - class_exists(ForeignKeyConstraintEditor::class) - && count(array_diff(array_map(static fn (UnqualifiedName $name) => $name->toString(), $key->getReferencingColumnNames()), $localColumns)) === 0 - && (($key->getReferencedTableName()->toString() !== $foreignTableName) - || 0 < count(array_diff(array_map(static fn (UnqualifiedName $name) => $name->toString(), $key->getReferencedColumnNames()), $foreignColumns))) - ) { - $theJoinTable->dropForeignKey($fkName); - break; - } - - if ( - ! class_exists(ForeignKeyConstraintEditor::class) - && count(array_diff($key->getLocalColumns(), $localColumns)) === 0 - && (($key->getForeignTableName() !== $foreignTableName) - || 0 < count(array_diff($key->getForeignColumns(), $foreignColumns))) - ) { - $theJoinTable->removeForeignKey($fkName); - break; - } - } - - $blacklistedFks[$compositeName] = true; - } elseif (! isset($blacklistedFks[$compositeName])) { - $addedFks[$compositeName] = ['foreignTableName' => $foreignTableName, 'foreignColumns' => $foreignColumns]; - $theJoinTable->addForeignKeyConstraint( - $foreignTableName, - $localColumns, - $foreignColumns, - $fkOptions, - ); - } - } - - /** @return mixed[] */ - private function gatherColumnOptions(JoinColumnMapping|FieldMapping|DiscriminatorColumnMapping $mapping): array - { - $mappingOptions = $mapping->options ?? []; - - if (isset($mapping->enumType)) { - $mappingOptions['enumType'] = $mapping->enumType; - } - - if (($mappingOptions['default'] ?? null) instanceof BackedEnum) { - $mappingOptions['default'] = $mappingOptions['default']->value; - } - - if (empty($mappingOptions)) { - return []; - } - - $options = array_intersect_key($mappingOptions, array_flip(self::KNOWN_COLUMN_OPTIONS)); - $options['platformOptions'] = array_diff_key($mappingOptions, $options); - - return $options; - } - - /** - * Drops the database schema for the given classes. - * - * In any way when an exception is thrown it is suppressed since drop was - * issued for all classes of the schema and some probably just don't exist. - * - * @phpstan-param list $classes - */ - public function dropSchema(array $classes): void - { - $dropSchemaSql = $this->getDropSchemaSQL($classes); - $conn = $this->em->getConnection(); - - foreach ($dropSchemaSql as $sql) { - try { - $conn->executeStatement($sql); - } catch (Throwable) { - // ignored - } - } - } - - /** - * Drops all elements in the database of the current connection. - */ - public function dropDatabase(): void - { - $dropSchemaSql = $this->getDropDatabaseSQL(); - $conn = $this->em->getConnection(); - - foreach ($dropSchemaSql as $sql) { - $conn->executeStatement($sql); - } - } - - /** - * Gets the SQL needed to drop the database schema for the connections database. - * - * @return list - */ - public function getDropDatabaseSQL(): array - { - return $this->schemaManager - ->introspectSchema() - ->toDropSql($this->platform); - } - - /** - * Gets SQL to drop the tables defined by the passed classes. - * - * @phpstan-param list $classes - * - * @return list - */ - public function getDropSchemaSQL(array $classes): array - { - $schema = $this->getSchemaFromMetadata($classes); - - $deployedSchema = $this->schemaManager->introspectSchema(); - - foreach ($schema->getTables() as $table) { - if (! $deployedSchema->hasTable($table->getName())) { - $schema->dropTable($table->getName()); - } - } - - if ($this->platform->supportsSequences()) { - foreach ($schema->getSequences() as $sequence) { - if (! $deployedSchema->hasSequence($sequence->getName())) { - $schema->dropSequence($sequence->getName()); - } - } - - foreach ($schema->getTables() as $table) { - if (method_exists($table, 'getPrimaryKeyConstraint')) { - $primaryKey = $table->getPrimaryKeyConstraint(); - } else { - $primaryKey = $table->getPrimaryKey(); - } - - if ($primaryKey === null) { - continue; - } - - if ($primaryKey instanceof PrimaryKeyConstraint) { - $columns = array_map(static fn (UnqualifiedName $name) => $name->toString(), $primaryKey->getColumnNames()); - } else { - $columns = self::getIndexedColumns($primaryKey); - } - - if (count($columns) === 1) { - $checkSequence = $table->getName() . '_' . $columns[0] . '_seq'; - if ($deployedSchema->hasSequence($checkSequence) && ! $schema->hasSequence($checkSequence)) { - $schema->createSequence($checkSequence); - } - } - } - } - - return $schema->toDropSql($this->platform); - } - - /** - * Updates the database schema of the given classes by comparing the ClassMetadata - * instances to the current database schema that is inspected. - * - * @param mixed[] $classes - */ - public function updateSchema(array $classes): void - { - $conn = $this->em->getConnection(); - - foreach ($this->getUpdateSchemaSql($classes) as $sql) { - $conn->executeStatement($sql); - } - } - - /** - * Gets the sequence of SQL statements that need to be performed in order - * to bring the given class mappings in-synch with the relational schema. - * - * @param list $classes The classes to consider. - * - * @return list The sequence of SQL statements. - */ - public function getUpdateSchemaSql(array $classes): array - { - $toSchema = $this->getSchemaFromMetadata($classes); - $fromSchema = $this->createSchemaForComparison($toSchema); - - if (class_exists(ComparatorConfig::class)) { - $comparator = $this->schemaManager->createComparator((new ComparatorConfig())->withReportModifiedIndexes(false)); - } else { - $comparator = $this->schemaManager->createComparator(); - } - - $schemaDiff = $comparator->compareSchemas($fromSchema, $toSchema); - - return $this->platform->getAlterSchemaSQL($schemaDiff); - } - - /** - * Creates the schema from the database, ensuring tables from the target schema are whitelisted for comparison. - */ - private function createSchemaForComparison(Schema $toSchema): Schema - { - $connection = $this->em->getConnection(); - - // backup schema assets filter - $config = $connection->getConfiguration(); - $previousFilter = $config->getSchemaAssetsFilter(); - - if ($previousFilter === null) { - return $this->schemaManager->introspectSchema(); - } - - // whitelist assets we already know about in $toSchema, use the existing filter otherwise - $config->setSchemaAssetsFilter(static function ($asset) use ($previousFilter, $toSchema): bool { - $assetName = $asset instanceof AbstractAsset ? $asset->getName() : $asset; - - return $toSchema->hasTable($assetName) || $toSchema->hasSequence($assetName) || $previousFilter($asset); - }); - - try { - return $this->schemaManager->introspectSchema(); - } finally { - // restore schema assets filter - $config->setSchemaAssetsFilter($previousFilter); - } - } - - /** @param string[] $primaryKeyColumns */ - private function addPrimaryKeyConstraint(Table $table, array $primaryKeyColumns): void - { - if (class_exists(PrimaryKeyConstraint::class)) { - $primaryKeyColumnNames = []; - - foreach ($primaryKeyColumns as $primaryKeyColumn) { - $primaryKeyColumnNames[] = new UnqualifiedName(Identifier::unquoted($primaryKeyColumn)); - } - - $table->addPrimaryKeyConstraint(new PrimaryKeyConstraint(null, $primaryKeyColumnNames, true)); - } else { - $table->setPrimaryKey($primaryKeyColumns); - } - } - - /** @return string[] */ - private static function getIndexedColumns(Index $index): array - { - if (method_exists(Index::class, 'getIndexedColumns')) { - return array_map(static fn (IndexedColumn $indexedColumn) => $indexedColumn->getColumnName()->toString(), $index->getIndexedColumns()); - } - - return $index->getColumns(); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaValidator.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaValidator.php deleted file mode 100644 index e63e46b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/SchemaValidator.php +++ /dev/null @@ -1,441 +0,0 @@ - ['string'], - BigIntType::class => ['int', 'string'], - BooleanType::class => ['bool'], - DecimalType::class => ['string'], - FloatType::class => ['float'], - GuidType::class => ['string'], - IntegerType::class => ['int'], - JsonType::class => ['array'], - SimpleArrayType::class => ['array'], - SmallIntType::class => ['int'], - StringType::class => ['string'], - TextType::class => ['string'], - ]; - - public function __construct( - private readonly EntityManagerInterface $em, - private readonly bool $validatePropertyTypes = true, - ) { - } - - /** - * Checks the internal consistency of all mapping files. - * - * There are several checks that can't be done at runtime or are too expensive, which can be verified - * with this command. For example: - * - * 1. Check if a relation with "mappedBy" is actually connected to that specified field. - * 2. Check if "mappedBy" and "inversedBy" are consistent to each other. - * 3. Check if "referencedColumnName" attributes are really pointing to primary key columns. - * - * @phpstan-return array> - */ - public function validateMapping(): array - { - $errors = []; - $cmf = $this->em->getMetadataFactory(); - $classes = $cmf->getAllMetadata(); - - foreach ($classes as $class) { - $ce = $this->validateClass($class); - if ($ce) { - $errors[$class->name] = $ce; - } - } - - return $errors; - } - - /** - * Validates a single class of the current. - * - * @return string[] - * @phpstan-return list - */ - public function validateClass(ClassMetadata $class): array - { - $ce = []; - $cmf = $this->em->getMetadataFactory(); - - foreach ($class->fieldMappings as $fieldName => $mapping) { - if (! Type::hasType($mapping->type)) { - $ce[] = "The field '" . $class->name . '#' . $fieldName . "' uses a non-existent type '" . $mapping->type . "'."; - } - } - - if ($this->validatePropertyTypes) { - array_push($ce, ...$this->validatePropertiesTypes($class)); - } - - foreach ($class->associationMappings as $fieldName => $assoc) { - if (! class_exists($assoc->targetEntity) || $cmf->isTransient($assoc->targetEntity)) { - $ce[] = "The target entity '" . $assoc->targetEntity . "' specified on " . $class->name . '#' . $fieldName . ' is unknown or not an entity.'; - - return $ce; - } - - $targetMetadata = $cmf->getMetadataFor($assoc->targetEntity); - - if ($targetMetadata->isMappedSuperclass) { - $ce[] = "The target entity '" . $assoc->targetEntity . "' specified on " . $class->name . '#' . $fieldName . ' is a mapped superclass. This is not possible since there is no table that a foreign key could refer to.'; - - return $ce; - } - - if (isset($assoc->id) && $targetMetadata->containsForeignIdentifier) { - $ce[] = "Cannot map association '" . $class->name . '#' . $fieldName . ' as identifier, because ' . - "the target entity '" . $targetMetadata->name . "' also maps an association as identifier."; - } - - if (! $assoc->isOwningSide()) { - if ($targetMetadata->hasField($assoc->mappedBy)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' refers to the owning side ' . - 'field ' . $assoc->targetEntity . '#' . $assoc->mappedBy . ' which is not defined as association, but as field.'; - } - - if (! $targetMetadata->hasAssociation($assoc->mappedBy)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' refers to the owning side ' . - 'field ' . $assoc->targetEntity . '#' . $assoc->mappedBy . ' which does not exist.'; - } elseif ($targetMetadata->associationMappings[$assoc->mappedBy]->inversedBy === null) { - $ce[] = 'The field ' . $class->name . '#' . $fieldName . ' is on the inverse side of a ' . - 'bi-directional relationship, but the specified mappedBy association on the target-entity ' . - $assoc->targetEntity . '#' . $assoc->mappedBy . ' does not contain the required ' . - "'inversedBy=\"" . $fieldName . "\"' attribute."; - } elseif ($targetMetadata->associationMappings[$assoc->mappedBy]->inversedBy !== $fieldName) { - $ce[] = 'The mappings ' . $class->name . '#' . $fieldName . ' and ' . - $assoc->targetEntity . '#' . $assoc->mappedBy . ' are ' . - 'inconsistent with each other.'; - } - } - - if ($assoc->isOwningSide() && $assoc->inversedBy !== null) { - if ($targetMetadata->hasField($assoc->inversedBy)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' refers to the inverse side ' . - 'field ' . $assoc->targetEntity . '#' . $assoc->inversedBy . ' which is not defined as association.'; - } - - if (! $targetMetadata->hasAssociation($assoc->inversedBy)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' refers to the inverse side ' . - 'field ' . $assoc->targetEntity . '#' . $assoc->inversedBy . ' which does not exist.'; - } elseif ($targetMetadata->associationMappings[$assoc->inversedBy]->isOwningSide()) { - $ce[] = 'The field ' . $class->name . '#' . $fieldName . ' is on the owning side of a ' . - 'bi-directional relationship, but the specified inversedBy association on the target-entity ' . - $assoc->targetEntity . '#' . $assoc->inversedBy . ' does not contain the required ' . - "'mappedBy=\"" . $fieldName . "\"' attribute."; - } elseif ($targetMetadata->associationMappings[$assoc->inversedBy]->mappedBy !== $fieldName) { - $ce[] = 'The mappings ' . $class->name . '#' . $fieldName . ' and ' . - $assoc->targetEntity . '#' . $assoc->inversedBy . ' are ' . - 'inconsistent with each other.'; - } - - // Verify inverse side/owning side match each other - if (array_key_exists($assoc->inversedBy, $targetMetadata->associationMappings)) { - $targetAssoc = $targetMetadata->associationMappings[$assoc->inversedBy]; - if ($assoc->isOneToOne() && ! $targetAssoc->isOneToOne()) { - $ce[] = 'If association ' . $class->name . '#' . $fieldName . ' is one-to-one, then the inversed ' . - 'side ' . $targetMetadata->name . '#' . $assoc->inversedBy . ' has to be one-to-one as well.'; - } elseif ($assoc->isManyToOne() && ! $targetAssoc->isOneToMany()) { - $ce[] = 'If association ' . $class->name . '#' . $fieldName . ' is many-to-one, then the inversed ' . - 'side ' . $targetMetadata->name . '#' . $assoc->inversedBy . ' has to be one-to-many.'; - } elseif ($assoc->isManyToMany() && ! $targetAssoc->isManyToMany()) { - $ce[] = 'If association ' . $class->name . '#' . $fieldName . ' is many-to-many, then the inversed ' . - 'side ' . $targetMetadata->name . '#' . $assoc->inversedBy . ' has to be many-to-many as well.'; - } - } - } - - if ($assoc->isOwningSide()) { - if ($assoc->isManyToManyOwningSide()) { - $identifierColumns = $class->getIdentifierColumnNames(); - foreach ($assoc->joinTable->joinColumns as $joinColumn) { - if (! in_array($joinColumn->referencedColumnName, $identifierColumns, true)) { - $ce[] = "The referenced column name '" . $joinColumn->referencedColumnName . "' " . - "has to be a primary key column on the target entity class '" . $class->name . "'."; - break; - } - } - - $identifierColumns = $targetMetadata->getIdentifierColumnNames(); - foreach ($assoc->joinTable->inverseJoinColumns as $inverseJoinColumn) { - if (! in_array($inverseJoinColumn->referencedColumnName, $identifierColumns, true)) { - $ce[] = "The referenced column name '" . $inverseJoinColumn->referencedColumnName . "' " . - "has to be a primary key column on the target entity class '" . $targetMetadata->name . "'."; - break; - } - } - - if (count($targetMetadata->getIdentifierColumnNames()) !== count($assoc->joinTable->inverseJoinColumns)) { - $ce[] = "The inverse join columns of the many-to-many table '" . $assoc->joinTable->name . "' " . - "have to contain to ALL identifier columns of the target entity '" . $targetMetadata->name . "', " . - "however '" . implode(', ', array_diff($targetMetadata->getIdentifierColumnNames(), array_values($assoc->relationToTargetKeyColumns))) . - "' are missing."; - } - - if (count($class->getIdentifierColumnNames()) !== count($assoc->joinTable->joinColumns)) { - $ce[] = "The join columns of the many-to-many table '" . $assoc->joinTable->name . "' " . - "have to contain to ALL identifier columns of the source entity '" . $class->name . "', " . - "however '" . implode(', ', array_diff($class->getIdentifierColumnNames(), array_values($assoc->relationToSourceKeyColumns))) . - "' are missing."; - } - } elseif ($assoc->isToOneOwningSide()) { - $identifierColumns = $targetMetadata->getIdentifierColumnNames(); - foreach ($assoc->joinColumns as $joinColumn) { - if (! in_array($joinColumn->referencedColumnName, $identifierColumns, true)) { - $ce[] = "The referenced column name '" . $joinColumn->referencedColumnName . "' " . - "has to be a primary key column on the target entity class '" . $targetMetadata->name . "'."; - } - } - - if (count($identifierColumns) !== count($assoc->joinColumns)) { - $ids = []; - - foreach ($assoc->joinColumns as $joinColumn) { - $ids[] = $joinColumn->name; - } - - $ce[] = "The join columns of the association '" . $assoc->fieldName . "' " . - "have to match to ALL identifier columns of the target entity '" . $targetMetadata->name . "', " . - "however '" . implode(', ', array_diff($targetMetadata->getIdentifierColumnNames(), $ids)) . - "' are missing."; - } - } - } - - if ($assoc->isOrdered()) { - foreach ($assoc->orderBy() as $orderField => $orientation) { - if (! $targetMetadata->hasField($orderField) && ! $targetMetadata->hasAssociation($orderField)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' is ordered by a foreign field ' . - $orderField . ' that is not a field on the target entity ' . $targetMetadata->name . '.'; - continue; - } - - if ($targetMetadata->isCollectionValuedAssociation($orderField)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' is ordered by a field ' . - $orderField . ' on ' . $targetMetadata->name . ' that is a collection-valued association.'; - continue; - } - - if ($targetMetadata->isAssociationInverseSide($orderField)) { - $ce[] = 'The association ' . $class->name . '#' . $fieldName . ' is ordered by a field ' . - $orderField . ' on ' . $targetMetadata->name . ' that is the inverse side of an association.'; - continue; - } - } - } - } - - if ( - ! $class->isInheritanceTypeNone() - && ! $class->isRootEntity() - && ($class->reflClass !== null && ! $class->reflClass->isAbstract()) - && ! $class->isMappedSuperclass - && array_search($class->name, $class->discriminatorMap, true) === false - ) { - $ce[] = "Entity class '" . $class->name . "' is part of inheritance hierarchy, but is " . - "not mapped in the root entity '" . $class->rootEntityName . "' discriminator map. " . - 'All subclasses must be listed in the discriminator map.'; - } - - foreach ($class->subClasses as $subClass) { - if (! in_array($class->name, class_parents($subClass), true)) { - $ce[] = "According to the discriminator map class '" . $subClass . "' has to be a child " . - "of '" . $class->name . "' but these entities are not related through inheritance."; - } - } - - return $ce; - } - - /** - * Checks if the Database Schema is in sync with the current metadata state. - */ - public function schemaInSyncWithMetadata(): bool - { - return count($this->getUpdateSchemaList()) === 0; - } - - /** - * Returns the list of missing Database Schema updates. - * - * @return array - */ - public function getUpdateSchemaList(): array - { - $schemaTool = new SchemaTool($this->em); - - $allMetadata = $this->em->getMetadataFactory()->getAllMetadata(); - - return $schemaTool->getUpdateSchemaSql($allMetadata); - } - - /** @return list containing the found issues */ - private function validatePropertiesTypes(ClassMetadata $class): array - { - return array_values( - array_filter( - array_map( - function (FieldMapping $fieldMapping) use ($class): string|null { - $fieldName = $fieldMapping->fieldName; - $propertyType = $class->propertyAccessors[$fieldName]->getUnderlyingReflector()->getType(); - - // If the field type is not a built-in type, we cannot check it - if (! Type::hasType($fieldMapping->type)) { - return null; - } - - // If the property type is not a named type, we cannot check it - if (! ($propertyType instanceof ReflectionNamedType) || $propertyType->getName() === 'mixed') { - return null; - } - - $metadataFieldType = $this->findBuiltInType(Type::getType($fieldMapping->type)); - - //If the metadata field type is not a mapped built-in type, we cannot check it - if ($metadataFieldType === null) { - return null; - } - - $propertyType = $propertyType->getName(); - - // If the property type is the same as the metadata field type, we are ok - if (in_array($propertyType, $metadataFieldType, true)) { - return null; - } - - if (is_a($propertyType, BackedEnum::class, true)) { - $backingType = (string) (new ReflectionEnum($propertyType))->getBackingType(); - - if (! in_array($backingType, $metadataFieldType, true)) { - return sprintf( - "The field '%s#%s' has the property type '%s' with a backing type of '%s' that differs from the metadata field type '%s'.", - $class->name, - $fieldName, - $propertyType, - $backingType, - implode('|', $metadataFieldType), - ); - } - - if (! isset($fieldMapping->enumType) || $propertyType === $fieldMapping->enumType) { - return null; - } - - return sprintf( - "The field '%s#%s' has the property type '%s' that differs from the metadata enumType '%s'.", - $class->name, - $fieldName, - $propertyType, - $fieldMapping->enumType, - ); - } - - if ( - isset($fieldMapping->enumType) - && $propertyType !== $fieldMapping->enumType - && interface_exists($propertyType) - && is_a($fieldMapping->enumType, $propertyType, true) - ) { - $backingType = (string) (new ReflectionEnum($fieldMapping->enumType))->getBackingType(); - - if (in_array($backingType, $metadataFieldType, true)) { - return null; - } - - return sprintf( - "The field '%s#%s' has the metadata enumType '%s' with a backing type of '%s' that differs from the metadata field type '%s'.", - $class->name, - $fieldName, - $fieldMapping->enumType, - $backingType, - implode('|', $metadataFieldType), - ); - } - - if ( - $fieldMapping->type === 'json' - && in_array($propertyType, ['string', 'int', 'float', 'bool', 'true', 'false', 'null'], true) - ) { - return null; - } - - return sprintf( - "The field '%s#%s' has the property type '%s' that differs from the metadata field type '%s' returned by the '%s' DBAL type.", - $class->name, - $fieldName, - $propertyType, - implode('|', $metadataFieldType), - $fieldMapping->type, - ); - }, - $class->fieldMappings, - ), - ), - ); - } - - /** - * The exact DBAL type must be used (no subclasses), since consumers of doctrine/orm may have their own - * customization around field types. - * - * @return list|null - */ - private function findBuiltInType(Type $type): array|null - { - $typeName = $type::class; - - return self::BUILTIN_TYPES_MAP[$typeName] ?? null; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Tools/ToolEvents.php b/projects/priceservice/vendor/doctrine/orm/src/Tools/ToolEvents.php deleted file mode 100644 index fac37fa..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Tools/ToolEvents.php +++ /dev/null @@ -1,23 +0,0 @@ -getMessage() . "' while executing DDL: " . $sql, - 0, - $e, - ); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/TransactionRequiredException.php b/projects/priceservice/vendor/doctrine/orm/src/TransactionRequiredException.php deleted file mode 100644 index 6114544..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/TransactionRequiredException.php +++ /dev/null @@ -1,21 +0,0 @@ -> - */ - private array $identityMap = []; - - /** - * Map of all identifiers of managed entities. - * Keys are object ids (spl_object_id). - * - * @phpstan-var array> - */ - private array $entityIdentifiers = []; - - /** - * Map of the original entity data of managed entities. - * Keys are object ids (spl_object_id). This is used for calculating changesets - * at commit time. - * - * Internal note: Note that PHPs "copy-on-write" behavior helps a lot with memory usage. - * A value will only really be copied if the value in the entity is modified - * by the user. - * - * @phpstan-var array> - */ - private array $originalEntityData = []; - - /** - * Map of entity changes. Keys are object ids (spl_object_id). - * Filled at the beginning of a commit of the UnitOfWork and cleaned at the end. - * - * @phpstan-var array> - */ - private array $entityChangeSets = []; - - /** - * The (cached) states of any known entities. - * Keys are object ids (spl_object_id). - * - * @phpstan-var array - */ - private array $entityStates = []; - - /** - * Map of entities that are scheduled for dirty checking at commit time. - * This is only used for entities with a change tracking policy of DEFERRED_EXPLICIT. - * Keys are object ids (spl_object_id). - * - * @var array> - */ - private array $scheduledForSynchronization = []; - - /** - * A list of all pending entity insertions. - * - * @phpstan-var array - */ - private array $entityInsertions = []; - - /** - * A list of all pending entity updates. - * - * @phpstan-var array - */ - private array $entityUpdates = []; - - /** - * Any pending extra updates that have been scheduled by persisters. - * - * @phpstan-var array}> - */ - private array $extraUpdates = []; - - /** - * A list of all pending entity deletions. - * - * @phpstan-var array - */ - private array $entityDeletions = []; - - /** - * New entities that were discovered through relationships that were not - * marked as cascade-persist. During flush, this array is populated and - * then pruned of any entities that were discovered through a valid - * cascade-persist path. (Leftovers cause an error.) - * - * Keys are OIDs, payload is a two-item array describing the association - * and the entity. - * - * @var array indexed by respective object spl_object_id() - */ - private array $nonCascadedNewDetectedEntities = []; - - /** - * All pending collection deletions. - * - * @phpstan-var array> - */ - private array $collectionDeletions = []; - - /** - * All pending collection updates. - * - * @phpstan-var array> - */ - private array $collectionUpdates = []; - - /** - * List of collections visited during changeset calculation on a commit-phase of a UnitOfWork. - * At the end of the UnitOfWork all these collections will make new snapshots - * of their data. - * - * @phpstan-var array> - */ - private array $visitedCollections = []; - - /** - * List of collections visited during the changeset calculation that contain to-be-removed - * entities and need to have keys removed post commit. - * - * Indexed by Collection object ID, which also serves as the key in self::$visitedCollections; - * values are the key names that need to be removed. - * - * @phpstan-var array> - */ - private array $pendingCollectionElementRemovals = []; - - /** - * The entity persister instances used to persist entity instances. - * - * @phpstan-var array - */ - private array $persisters = []; - - /** - * The collection persister instances used to persist collections. - * - * @phpstan-var array - */ - private array $collectionPersisters = []; - - /** - * The EventManager used for dispatching events. - */ - private readonly EventManager $evm; - - /** - * The ListenersInvoker used for dispatching events. - */ - private readonly ListenersInvoker $listenersInvoker; - - /** - * The IdentifierFlattener used for manipulating identifiers - */ - private readonly IdentifierFlattener $identifierFlattener; - - /** - * Orphaned entities that are scheduled for removal. - * - * @phpstan-var array - */ - private array $orphanRemovals = []; - - /** - * Read-Only objects are never evaluated - * - * @var array - */ - private array $readOnlyObjects = []; - - /** - * Map of Entity Class-Names and corresponding IDs that should eager loaded when requested. - * - * @var array> - */ - private array $eagerLoadingEntities = []; - - /** @var array> */ - private array $eagerLoadingCollections = []; - - protected bool $hasCache = false; - - /** - * Helper for handling completion of hydration - */ - private readonly HydrationCompleteHandler $hydrationCompleteHandler; - - /** - * Initializes a new UnitOfWork instance, bound to the given EntityManager. - * - * @param EntityManagerInterface $em The EntityManager that "owns" this UnitOfWork instance. - */ - public function __construct( - private readonly EntityManagerInterface $em, - ) { - $this->evm = $em->getEventManager(); - $this->listenersInvoker = new ListenersInvoker($em); - $this->hasCache = $em->getConfiguration()->isSecondLevelCacheEnabled(); - $this->identifierFlattener = new IdentifierFlattener($this, $em->getMetadataFactory()); - $this->hydrationCompleteHandler = new HydrationCompleteHandler($this->listenersInvoker, $em); - } - - /** - * Commits the UnitOfWork, executing all operations that have been postponed - * up to this point. The state of all managed entities will be synchronized with - * the database. - * - * The operations are executed in the following order: - * - * 1) All entity insertions - * 2) All entity updates - * 3) All collection deletions - * 4) All collection updates - * 5) All entity deletions - * - * @throws Exception - */ - public function commit(): void - { - $connection = $this->em->getConnection(); - - if ($connection instanceof PrimaryReadReplicaConnection) { - $connection->ensureConnectedToPrimary(); - } - - // Raise preFlush - if ($this->evm->hasListeners(Events::preFlush)) { - $this->evm->dispatchEvent(Events::preFlush, new PreFlushEventArgs($this->em)); - } - - // Compute changes done since last commit. - $this->computeChangeSets(); - - if ( - ! ($this->entityInsertions || - $this->entityDeletions || - $this->entityUpdates || - $this->collectionUpdates || - $this->collectionDeletions || - $this->orphanRemovals) - ) { - $this->dispatchOnFlushEvent(); - $this->dispatchPostFlushEvent(); - - $this->postCommitCleanup(); - - return; // Nothing to do. - } - - $this->assertThatThereAreNoUnintentionallyNonPersistedAssociations(); - - if ($this->orphanRemovals) { - foreach ($this->orphanRemovals as $orphan) { - $this->remove($orphan); - } - } - - $this->dispatchOnFlushEvent(); - - $conn = $this->em->getConnection(); - $conn->beginTransaction(); - - $successful = false; - - try { - // Collection deletions (deletions of complete collections) - foreach ($this->collectionDeletions as $collectionToDelete) { - // Deferred explicit tracked collections can be removed only when owning relation was persisted - $owner = $collectionToDelete->getOwner(); - - if ($this->em->getClassMetadata($owner::class)->isChangeTrackingDeferredImplicit() || $this->isScheduledForDirtyCheck($owner)) { - $this->getCollectionPersister($collectionToDelete->getMapping())->delete($collectionToDelete); - } - } - - if ($this->entityInsertions) { - // Perform entity insertions first, so that all new entities have their rows in the database - // and can be referred to by foreign keys. The commit order only needs to take new entities - // into account (new entities referring to other new entities), since all other types (entities - // with updates or scheduled deletions) are currently not a problem, since they are already - // in the database. - $this->executeInserts(); - } - - if ($this->entityUpdates) { - // Updates do not need to follow a particular order - $this->executeUpdates(); - } - - // Extra updates that were requested by persisters. - // This may include foreign keys that could not be set when an entity was inserted, - // which may happen in the case of circular foreign key relationships. - if ($this->extraUpdates) { - $this->executeExtraUpdates(); - } - - // Collection updates (deleteRows, updateRows, insertRows) - // No particular order is necessary, since all entities themselves are already - // in the database - foreach ($this->collectionUpdates as $collectionToUpdate) { - $this->getCollectionPersister($collectionToUpdate->getMapping())->update($collectionToUpdate); - } - - // Entity deletions come last. Their order only needs to take care of other deletions - // (first delete entities depending upon others, before deleting depended-upon entities). - if ($this->entityDeletions) { - $this->executeDeletions(); - } - - $commitFailed = false; - try { - if ($conn->commit() === false) { - $commitFailed = true; - } - } catch (DBAL\Exception $e) { - $commitFailed = true; - } - - if ($commitFailed) { - throw new OptimisticLockException('Commit failed', null, $e ?? null); - } - - $successful = true; - } finally { - if (! $successful) { - $this->em->close(); - - if ($conn->isTransactionActive()) { - $conn->rollBack(); - } - - $this->afterTransactionRolledBack(); - } - } - - $this->afterTransactionComplete(); - - // Unset removed entities from collections, and take new snapshots from - // all visited collections. - foreach ($this->visitedCollections as $coid => $coll) { - if (isset($this->pendingCollectionElementRemovals[$coid])) { - foreach ($this->pendingCollectionElementRemovals[$coid] as $key => $valueIgnored) { - unset($coll[$key]); - } - } - - $coll->takeSnapshot(); - } - - $this->dispatchPostFlushEvent(); - - $this->postCommitCleanup(); - } - - private function postCommitCleanup(): void - { - $this->entityInsertions = - $this->entityUpdates = - $this->entityDeletions = - $this->extraUpdates = - $this->collectionUpdates = - $this->nonCascadedNewDetectedEntities = - $this->collectionDeletions = - $this->pendingCollectionElementRemovals = - $this->visitedCollections = - $this->orphanRemovals = - $this->entityChangeSets = - $this->scheduledForSynchronization = []; - } - - /** - * Computes the changesets of all entities scheduled for insertion. - */ - private function computeScheduleInsertsChangeSets(): void - { - foreach ($this->entityInsertions as $entity) { - $class = $this->em->getClassMetadata($entity::class); - - $this->computeChangeSet($class, $entity); - } - } - - /** - * Executes any extra updates that have been scheduled. - */ - private function executeExtraUpdates(): void - { - foreach ($this->extraUpdates as $oid => $update) { - [$entity, $changeset] = $update; - - $this->entityChangeSets[$oid] = $changeset; - $this->getEntityPersister($entity::class)->update($entity); - } - - $this->extraUpdates = []; - } - - /** - * Gets the changeset for an entity. - * - * @return mixed[][] - * @phpstan-return array - */ - public function & getEntityChangeSet(object $entity): array - { - $oid = spl_object_id($entity); - $data = []; - - if (! isset($this->entityChangeSets[$oid])) { - return $data; - } - - return $this->entityChangeSets[$oid]; - } - - /** - * Computes the changes that happened to a single entity. - * - * Modifies/populates the following properties: - * - * {@link _originalEntityData} - * If the entity is NEW or MANAGED but not yet fully persisted (only has an id) - * then it was not fetched from the database and therefore we have no original - * entity data yet. All of the current entity data is stored as the original entity data. - * - * {@link _entityChangeSets} - * The changes detected on all properties of the entity are stored there. - * A change is a tuple array where the first entry is the old value and the second - * entry is the new value of the property. Changesets are used by persisters - * to INSERT/UPDATE the persistent entity state. - * - * {@link _entityUpdates} - * If the entity is already fully MANAGED (has been fetched from the database before) - * and any changes to its properties are detected, then a reference to the entity is stored - * there to mark it for an update. - * - * {@link _collectionDeletions} - * If a PersistentCollection has been de-referenced in a fully MANAGED entity, - * then this collection is marked for deletion. - * - * @param ClassMetadata $class The class descriptor of the entity. - * @param object $entity The entity for which to compute the changes. - * @phpstan-param ClassMetadata $class - * @phpstan-param T $entity - * - * @template T of object - * - * @ignore - */ - public function computeChangeSet(ClassMetadata $class, object $entity): void - { - $oid = spl_object_id($entity); - - if (isset($this->readOnlyObjects[$oid])) { - return; - } - - if (! $class->isInheritanceTypeNone()) { - $class = $this->em->getClassMetadata($entity::class); - } - - $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::preFlush) & ~ListenersInvoker::INVOKE_MANAGER; - - if ($invoke !== ListenersInvoker::INVOKE_NONE) { - $this->listenersInvoker->invoke($class, Events::preFlush, $entity, new PreFlushEventArgs($this->em), $invoke); - } - - $actualData = []; - - foreach ($class->propertyAccessors as $name => $refProp) { - $value = $refProp->getValue($entity); - - if ($class->isCollectionValuedAssociation($name) && $value !== null) { - if ($value instanceof PersistentCollection) { - if ($value->getOwner() === $entity) { - $actualData[$name] = $value; - continue; - } - - $value = new ArrayCollection($value->getValues()); - } - - // If $value is not a Collection then use an ArrayCollection. - if (! $value instanceof Collection) { - $value = new ArrayCollection($value); - } - - $assoc = $class->associationMappings[$name]; - assert($assoc->isToMany()); - - // Inject PersistentCollection - $value = new PersistentCollection( - $this->em, - $this->em->getClassMetadata($assoc->targetEntity), - $value, - ); - $value->setOwner($entity, $assoc); - $value->setDirty(! $value->isEmpty()); - - $refProp->setValue($entity, $value); - - $actualData[$name] = $value; - - continue; - } - - if (( ! $class->isIdentifier($name) || ! $class->isIdGeneratorIdentity()) && ($name !== $class->versionField)) { - $actualData[$name] = $value; - } - } - - if (! isset($this->originalEntityData[$oid])) { - // Entity is either NEW or MANAGED but not yet fully persisted (only has an id). - // These result in an INSERT. - $this->originalEntityData[$oid] = $actualData; - $changeSet = []; - - foreach ($actualData as $propName => $actualValue) { - if (! isset($class->associationMappings[$propName])) { - $changeSet[$propName] = [null, $actualValue]; - - continue; - } - - $assoc = $class->associationMappings[$propName]; - - if ($assoc->isToOneOwningSide()) { - $changeSet[$propName] = [null, $actualValue]; - } - } - - $this->entityChangeSets[$oid] = $changeSet; - } else { - // Entity is "fully" MANAGED: it was already fully persisted before - // and we have a copy of the original data - $originalData = $this->originalEntityData[$oid]; - $changeSet = []; - - foreach ($actualData as $propName => $actualValue) { - // skip field, its a partially omitted one! - if (! (isset($originalData[$propName]) || array_key_exists($propName, $originalData))) { - continue; - } - - $orgValue = $originalData[$propName]; - - if (! empty($class->fieldMappings[$propName]->enumType)) { - if (is_array($orgValue)) { - foreach ($orgValue as $id => $val) { - if ($val instanceof BackedEnum) { - $orgValue[$id] = $val->value; - } - } - } else { - if ($orgValue instanceof BackedEnum) { - $orgValue = $orgValue->value; - } - } - } - - // skip if value haven't changed - if ($orgValue === $actualValue) { - continue; - } - - // if regular field - if (! isset($class->associationMappings[$propName])) { - $changeSet[$propName] = [$orgValue, $actualValue]; - - continue; - } - - $assoc = $class->associationMappings[$propName]; - - // Persistent collection was exchanged with the "originally" - // created one. This can only mean it was cloned and replaced - // on another entity. - if ($actualValue instanceof PersistentCollection) { - assert($assoc->isToMany()); - $owner = $actualValue->getOwner(); - if ($owner === null) { // cloned - $actualValue->setOwner($entity, $assoc); - } elseif ($owner !== $entity) { // no clone, we have to fix - if (! $actualValue->isInitialized()) { - $actualValue->initialize(); // we have to do this otherwise the cols share state - } - - $newValue = clone $actualValue; - $newValue->setOwner($entity, $assoc); - $class->propertyAccessors[$propName]->setValue($entity, $newValue); - } - } - - if ($orgValue instanceof PersistentCollection) { - // A PersistentCollection was de-referenced, so delete it. - $coid = spl_object_id($orgValue); - - if (isset($this->collectionDeletions[$coid])) { - continue; - } - - $this->collectionDeletions[$coid] = $orgValue; - $changeSet[$propName] = $orgValue; // Signal changeset, to-many assocs will be ignored. - - continue; - } - - if ($assoc->isToOne()) { - if ($assoc->isOwningSide()) { - $changeSet[$propName] = [$orgValue, $actualValue]; - } - - if ($orgValue !== null && $assoc->orphanRemoval) { - assert(is_object($orgValue)); - $this->scheduleOrphanRemoval($orgValue); - } - } - } - - if ($changeSet) { - $this->entityChangeSets[$oid] = $changeSet; - $this->originalEntityData[$oid] = $actualData; - $this->entityUpdates[$oid] = $entity; - } - } - - // Look for changes in associations of the entity - foreach ($class->associationMappings as $field => $assoc) { - $val = $class->propertyAccessors[$field]->getValue($entity); - if ($val === null) { - continue; - } - - $this->computeAssociationChanges($assoc, $val); - - if ( - ! isset($this->entityChangeSets[$oid]) && - $assoc->isManyToManyOwningSide() && - $val instanceof PersistentCollection && - $val->isDirty() - ) { - $this->entityChangeSets[$oid] = []; - $this->originalEntityData[$oid] = $actualData; - $this->entityUpdates[$oid] = $entity; - } - } - } - - /** - * Computes all the changes that have been done to entities and collections - * since the last commit and stores these changes in the _entityChangeSet map - * temporarily for access by the persisters, until the UoW commit is finished. - */ - public function computeChangeSets(): void - { - // Compute changes for INSERTed entities first. This must always happen. - $this->computeScheduleInsertsChangeSets(); - - // Compute changes for other MANAGED entities. Change tracking policies take effect here. - foreach ($this->identityMap as $className => $entities) { - $class = $this->em->getClassMetadata($className); - - // Skip class if instances are read-only - if ($class->isReadOnly) { - continue; - } - - $entitiesToProcess = match (true) { - $class->isChangeTrackingDeferredImplicit() => $entities, - isset($this->scheduledForSynchronization[$className]) => $this->scheduledForSynchronization[$className], - default => [], - }; - - foreach ($entitiesToProcess as $entity) { - // Ignore uninitialized proxy objects - if ($this->isUninitializedObject($entity)) { - continue; - } - - // Only MANAGED entities that are NOT SCHEDULED FOR INSERTION OR DELETION are processed here. - $oid = spl_object_id($entity); - - if (! isset($this->entityInsertions[$oid]) && ! isset($this->entityDeletions[$oid]) && isset($this->entityStates[$oid])) { - $this->computeChangeSet($class, $entity); - } - } - } - } - - /** - * Computes the changes of an association. - * - * @param mixed $value The value of the association. - * - * @throws ORMInvalidArgumentException - * @throws ORMException - */ - private function computeAssociationChanges(AssociationMapping $assoc, mixed $value): void - { - if ($this->isUninitializedObject($value)) { - return; - } - - // If this collection is dirty, schedule it for updates - if ($value instanceof PersistentCollection && $value->isDirty()) { - $coid = spl_object_id($value); - - $this->collectionUpdates[$coid] = $value; - $this->visitedCollections[$coid] = $value; - } - - // Look through the entities, and in any of their associations, - // for transient (new) entities, recursively. ("Persistence by reachability") - // Unwrap. Uninitialized collections will simply be empty. - $unwrappedValue = $assoc->isToOne() ? [$value] : $value->unwrap(); - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - foreach ($unwrappedValue as $key => $entry) { - if (! ($entry instanceof $targetClass->name)) { - throw ORMInvalidArgumentException::invalidAssociation($targetClass, $assoc, $entry); - } - - $state = $this->getEntityState($entry, self::STATE_NEW); - - if (! ($entry instanceof $assoc->targetEntity)) { - throw UnexpectedAssociationValue::create( - $assoc->sourceEntity, - $assoc->fieldName, - get_debug_type($entry), - $assoc->targetEntity, - ); - } - - switch ($state) { - case self::STATE_NEW: - if (! $assoc->isCascadePersist()) { - /* - * For now just record the details, because this may - * not be an issue if we later discover another pathway - * through the object-graph where cascade-persistence - * is enabled for this object. - */ - $this->nonCascadedNewDetectedEntities[spl_object_id($entry)] = [$assoc, $entry]; - - break; - } - - $this->persistNew($targetClass, $entry); - $this->computeChangeSet($targetClass, $entry); - - break; - - case self::STATE_REMOVED: - // Consume the $value as array (it's either an array or an ArrayAccess) - // and remove the element from Collection. - if (! $assoc->isToMany()) { - break; - } - - $coid = spl_object_id($value); - $this->visitedCollections[$coid] = $value; - - if (! isset($this->pendingCollectionElementRemovals[$coid])) { - $this->pendingCollectionElementRemovals[$coid] = []; - } - - $this->pendingCollectionElementRemovals[$coid][$key] = true; - break; - - case self::STATE_DETACHED: - // Can actually not happen right now as we assume STATE_NEW, - // so the exception will be raised from the DBAL layer (constraint violation). - throw ORMInvalidArgumentException::detachedEntityFoundThroughRelationship($assoc, $entry); - - default: - // MANAGED associated entities are already taken into account - // during changeset calculation anyway, since they are in the identity map. - } - } - } - - /** - * @phpstan-param ClassMetadata $class - * @phpstan-param T $entity - * - * @template T of object - */ - private function persistNew(ClassMetadata $class, object $entity): void - { - $oid = spl_object_id($entity); - $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::prePersist); - - if ($invoke !== ListenersInvoker::INVOKE_NONE) { - $this->listenersInvoker->invoke($class, Events::prePersist, $entity, new PrePersistEventArgs($entity, $this->em), $invoke); - } - - $idGen = $class->idGenerator; - - if (! $idGen->isPostInsertGenerator()) { - $idValue = $idGen->generateId($this->em, $entity); - - if (! $idGen instanceof AssignedGenerator) { - $idValue = [$class->getSingleIdentifierFieldName() => $this->convertSingleFieldIdentifierToPHPValue($class, $idValue)]; - - $class->setIdentifierValues($entity, $idValue); - } - - // Some identifiers may be foreign keys to new entities. - // In this case, we don't have the value yet and should treat it as if we have a post-insert generator - if (! $this->hasMissingIdsWhichAreForeignKeys($class, $idValue)) { - $this->entityIdentifiers[$oid] = $idValue; - } - } - - $this->entityStates[$oid] = self::STATE_MANAGED; - - $this->scheduleForInsert($entity); - } - - /** @param mixed[] $idValue */ - private function hasMissingIdsWhichAreForeignKeys(ClassMetadata $class, array $idValue): bool - { - foreach ($idValue as $idField => $idFieldValue) { - if ($idFieldValue === null && isset($class->associationMappings[$idField])) { - return true; - } - } - - return false; - } - - /** - * INTERNAL: - * Computes the changeset of an individual entity, independently of the - * computeChangeSets() routine that is used at the beginning of a UnitOfWork#commit(). - * - * The passed entity must be a managed entity. If the entity already has a change set - * because this method is invoked during a commit cycle then the change sets are added. - * whereby changes detected in this method prevail. - * - * @param ClassMetadata $class The class descriptor of the entity. - * @param object $entity The entity for which to (re)calculate the change set. - * @phpstan-param ClassMetadata $class - * @phpstan-param T $entity - * - * @throws ORMInvalidArgumentException If the passed entity is not MANAGED. - * - * @template T of object - * @ignore - */ - public function recomputeSingleEntityChangeSet(ClassMetadata $class, object $entity): void - { - $oid = spl_object_id($entity); - - if (! isset($this->entityStates[$oid]) || $this->entityStates[$oid] !== self::STATE_MANAGED) { - throw ORMInvalidArgumentException::entityNotManaged($entity); - } - - if (! $class->isInheritanceTypeNone()) { - $class = $this->em->getClassMetadata($entity::class); - } - - $actualData = []; - - foreach ($class->propertyAccessors as $name => $refProp) { - if ( - ( ! $class->isIdentifier($name) || ! $class->isIdGeneratorIdentity()) - && ($name !== $class->versionField) - && ! $class->isCollectionValuedAssociation($name) - ) { - $actualData[$name] = $refProp->getValue($entity); - } - } - - if (! isset($this->originalEntityData[$oid])) { - throw new RuntimeException('Cannot call recomputeSingleEntityChangeSet before computeChangeSet on an entity.'); - } - - $originalData = $this->originalEntityData[$oid]; - $changeSet = []; - - foreach ($actualData as $propName => $actualValue) { - $orgValue = $originalData[$propName] ?? null; - - if (isset($class->fieldMappings[$propName]->enumType)) { - if (is_array($orgValue)) { - foreach ($orgValue as $id => $val) { - if ($val instanceof BackedEnum) { - $orgValue[$id] = $val->value; - } - } - } else { - if ($orgValue instanceof BackedEnum) { - $orgValue = $orgValue->value; - } - } - } - - if ($orgValue !== $actualValue) { - $changeSet[$propName] = [$orgValue, $actualValue]; - } - } - - if ($changeSet) { - if (isset($this->entityChangeSets[$oid])) { - $this->entityChangeSets[$oid] = [...$this->entityChangeSets[$oid], ...$changeSet]; - } elseif (! isset($this->entityInsertions[$oid])) { - $this->entityChangeSets[$oid] = $changeSet; - $this->entityUpdates[$oid] = $entity; - } - - $this->originalEntityData[$oid] = $actualData; - } - } - - /** - * Executes entity insertions - */ - private function executeInserts(): void - { - $batchedByType = InsertBatch::batchByEntityType($this->em, $this->computeInsertExecutionOrder()); - $eventsToDispatch = []; - - foreach ($batchedByType as $batch) { - $class = $batch->class; - $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::postPersist); - $persister = $this->getEntityPersister($class->name); - - foreach ($batch->entities as $entity) { - $oid = spl_object_id($entity); - - $persister->addInsert($entity); - - unset($this->entityInsertions[$oid]); - } - - $persister->executeInserts(); - - foreach ($batch->entities as $entity) { - $oid = spl_object_id($entity); - - if (! isset($this->entityIdentifiers[$oid])) { - //entity was not added to identity map because some identifiers are foreign keys to new entities. - //add it now - $this->addToEntityIdentifiersAndEntityMap($class, $oid, $entity); - } - - if ($invoke !== ListenersInvoker::INVOKE_NONE) { - $eventsToDispatch[] = ['class' => $class, 'entity' => $entity, 'invoke' => $invoke]; - } - } - } - - // Defer dispatching `postPersist` events to until all entities have been inserted and post-insert - // IDs have been assigned. - foreach ($eventsToDispatch as $event) { - $this->listenersInvoker->invoke( - $event['class'], - Events::postPersist, - $event['entity'], - new PostPersistEventArgs($event['entity'], $this->em), - $event['invoke'], - ); - } - } - - /** - * @phpstan-param ClassMetadata $class - * @phpstan-param T $entity - * - * @template T of object - */ - private function addToEntityIdentifiersAndEntityMap( - ClassMetadata $class, - int $oid, - object $entity, - ): void { - $identifier = []; - - foreach ($class->getIdentifierFieldNames() as $idField) { - $origValue = $class->getFieldValue($entity, $idField); - - $value = null; - if (isset($class->associationMappings[$idField])) { - // NOTE: Single Columns as associated identifiers only allowed - this constraint it is enforced. - $value = $this->getSingleIdentifierValue($origValue); - } - - $identifier[$idField] = $value ?? $origValue; - $this->originalEntityData[$oid][$idField] = $origValue; - } - - $this->entityStates[$oid] = self::STATE_MANAGED; - $this->entityIdentifiers[$oid] = $identifier; - - $this->addToIdentityMap($entity); - } - - /** - * Executes all entity updates - */ - private function executeUpdates(): void - { - foreach ($this->entityUpdates as $oid => $entity) { - $class = $this->em->getClassMetadata($entity::class); - $persister = $this->getEntityPersister($class->name); - $preUpdateInvoke = $this->listenersInvoker->getSubscribedSystems($class, Events::preUpdate); - $postUpdateInvoke = $this->listenersInvoker->getSubscribedSystems($class, Events::postUpdate); - - if ($preUpdateInvoke !== ListenersInvoker::INVOKE_NONE) { - $this->listenersInvoker->invoke($class, Events::preUpdate, $entity, new PreUpdateEventArgs($entity, $this->em, $this->getEntityChangeSet($entity)), $preUpdateInvoke); - - $this->recomputeSingleEntityChangeSet($class, $entity); - } - - if (! empty($this->entityChangeSets[$oid])) { - $persister->update($entity); - } - - unset($this->entityUpdates[$oid]); - - if ($postUpdateInvoke !== ListenersInvoker::INVOKE_NONE) { - $this->listenersInvoker->invoke($class, Events::postUpdate, $entity, new PostUpdateEventArgs($entity, $this->em), $postUpdateInvoke); - } - } - } - - /** - * Executes all entity deletions - */ - private function executeDeletions(): void - { - $entities = $this->computeDeleteExecutionOrder(); - $eventsToDispatch = []; - - foreach ($entities as $entity) { - $this->removeFromIdentityMap($entity); - - $oid = spl_object_id($entity); - $class = $this->em->getClassMetadata($entity::class); - $persister = $this->getEntityPersister($class->name); - $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::postRemove); - - $persister->delete($entity); - - unset( - $this->entityDeletions[$oid], - $this->entityIdentifiers[$oid], - $this->originalEntityData[$oid], - $this->entityStates[$oid], - ); - - // Entity with this $oid after deletion treated as NEW, even if the $oid - // is obtained by a new entity because the old one went out of scope. - //$this->entityStates[$oid] = self::STATE_NEW; - if (! $class->isIdentifierNatural()) { - $class->propertyAccessors[$class->identifier[0]]->setValue($entity, null); - } - - if ($invoke !== ListenersInvoker::INVOKE_NONE) { - $eventsToDispatch[] = ['class' => $class, 'entity' => $entity, 'invoke' => $invoke]; - } - } - - // Defer dispatching `postRemove` events to until all entities have been removed. - foreach ($eventsToDispatch as $event) { - $this->listenersInvoker->invoke( - $event['class'], - Events::postRemove, - $event['entity'], - new PostRemoveEventArgs($event['entity'], $this->em), - $event['invoke'], - ); - } - } - - /** @return list */ - private function computeInsertExecutionOrder(): array - { - $sort = new TopologicalSort(); - - // First make sure we have all the nodes - foreach ($this->entityInsertions as $entity) { - $sort->addNode($entity); - } - - // Now add edges - foreach ($this->entityInsertions as $entity) { - $class = $this->em->getClassMetadata($entity::class); - - foreach ($class->associationMappings as $assoc) { - // We only need to consider the owning sides of to-one associations, - // since many-to-many associations are persisted at a later step and - // have no insertion order problems (all entities already in the database - // at that time). - if (! $assoc->isToOneOwningSide()) { - continue; - } - - $targetEntity = $class->getFieldValue($entity, $assoc->fieldName); - - // If there is no entity that we need to refer to, or it is already in the - // database (i. e. does not have to be inserted), no need to consider it. - if ($targetEntity === null || ! $sort->hasNode($targetEntity)) { - continue; - } - - // An entity that references back to itself _and_ uses an application-provided ID - // (the "NONE" generator strategy) can be exempted from commit order computation. - // See https://github.com/doctrine/orm/pull/10735/ for more details on this edge case. - // A non-NULLable self-reference would be a cycle in the graph. - if ($targetEntity === $entity && $class->isIdentifierNatural()) { - continue; - } - - // According to https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/annotations-reference.html#annref_joincolumn, - // the default for "nullable" is true. Unfortunately, it seems this default is not applied at the metadata driver, factory or other - // level, but in fact we may have an undefined 'nullable' key here, so we must assume that default here as well. - // - // Same in \Doctrine\ORM\Tools\EntityGenerator::isAssociationIsNullable or \Doctrine\ORM\Persisters\Entity\BasicEntityPersister::getJoinSQLForJoinColumns, - // to give two examples. - $joinColumns = reset($assoc->joinColumns); - $isNullable = ! isset($joinColumns->nullable) || $joinColumns->nullable; - - // Add dependency. The dependency direction implies that "$entity depends on $targetEntity". The - // topological sort result will output the depended-upon nodes first, which means we can insert - // entities in that order. - $sort->addEdge($entity, $targetEntity, $isNullable); - } - } - - return $sort->sort(); - } - - /** @return list */ - private function computeDeleteExecutionOrder(): array - { - $stronglyConnectedComponents = new StronglyConnectedComponents(); - $sort = new TopologicalSort(); - - foreach ($this->entityDeletions as $entity) { - $stronglyConnectedComponents->addNode($entity); - $sort->addNode($entity); - } - - // First, consider only "on delete cascade" associations between entities - // and find strongly connected groups. Once we delete any one of the entities - // in such a group, _all_ of the other entities will be removed as well. So, - // we need to treat those groups like a single entity when performing delete - // order topological sorting. - foreach ($this->entityDeletions as $entity) { - $class = $this->em->getClassMetadata($entity::class); - - foreach ($class->associationMappings as $assoc) { - // We only need to consider the owning sides of to-one associations, - // since many-to-many associations can always be (and have already been) - // deleted in a preceding step. - if (! $assoc->isToOneOwningSide()) { - continue; - } - - $joinColumns = reset($assoc->joinColumns); - if (! isset($joinColumns->onDelete)) { - continue; - } - - $onDeleteOption = strtolower($joinColumns->onDelete); - if ($onDeleteOption !== 'cascade') { - continue; - } - - $targetEntity = $class->getFieldValue($entity, $assoc->fieldName); - - // If the association does not refer to another entity or that entity - // is not to be deleted, there is no ordering problem and we can - // skip this particular association. - if ($targetEntity === null || ! $stronglyConnectedComponents->hasNode($targetEntity)) { - continue; - } - - $stronglyConnectedComponents->addEdge($entity, $targetEntity); - } - } - - $stronglyConnectedComponents->findStronglyConnectedComponents(); - - // Now do the actual topological sorting to find the delete order. - foreach ($this->entityDeletions as $entity) { - $class = $this->em->getClassMetadata($entity::class); - - // Get the entities representing the SCC - $entityComponent = $stronglyConnectedComponents->getNodeRepresentingStronglyConnectedComponent($entity); - - // When $entity is part of a non-trivial strongly connected component group - // (a group containing not only those entities alone), make sure we process it _after_ the - // entity representing the group. - // The dependency direction implies that "$entity depends on $entityComponent - // being deleted first". The topological sort will output the depended-upon nodes first. - if ($entityComponent !== $entity) { - $sort->addEdge($entity, $entityComponent, false); - } - - foreach ($class->associationMappings as $assoc) { - // We only need to consider the owning sides of to-one associations, - // since many-to-many associations can always be (and have already been) - // deleted in a preceding step. - if (! $assoc->isToOneOwningSide()) { - continue; - } - - // For associations that implement a database-level set null operation, - // we do not have to follow a particular order: If the referred-to entity is - // deleted first, the DBMS will temporarily set the foreign key to NULL (SET NULL). - // So, we can skip it in the computation. - $joinColumns = reset($assoc->joinColumns); - if (isset($joinColumns->onDelete)) { - $onDeleteOption = strtolower($joinColumns->onDelete); - if ($onDeleteOption === 'set null') { - continue; - } - } - - $targetEntity = $class->getFieldValue($entity, $assoc->fieldName); - - // If the association does not refer to another entity or that entity - // is not to be deleted, there is no ordering problem and we can - // skip this particular association. - if ($targetEntity === null || ! $sort->hasNode($targetEntity)) { - continue; - } - - // Get the entities representing the SCC - $targetEntityComponent = $stronglyConnectedComponents->getNodeRepresentingStronglyConnectedComponent($targetEntity); - - // When we have a dependency between two different groups of strongly connected nodes, - // add it to the computation. - // The dependency direction implies that "$targetEntityComponent depends on $entityComponent - // being deleted first". The topological sort will output the depended-upon nodes first, - // so we can work through the result in the returned order. - if ($targetEntityComponent !== $entityComponent) { - $sort->addEdge($targetEntityComponent, $entityComponent, false); - } - } - } - - return $sort->sort(); - } - - /** - * Schedules an entity for insertion into the database. - * If the entity already has an identifier, it will be added to the identity map. - * - * @throws ORMInvalidArgumentException - * @throws InvalidArgumentException - */ - public function scheduleForInsert(object $entity): void - { - $oid = spl_object_id($entity); - - if (isset($this->entityUpdates[$oid])) { - throw new InvalidArgumentException('Dirty entity can not be scheduled for insertion.'); - } - - if (isset($this->entityDeletions[$oid])) { - throw ORMInvalidArgumentException::scheduleInsertForRemovedEntity($entity); - } - - if (isset($this->originalEntityData[$oid]) && ! isset($this->entityInsertions[$oid])) { - throw ORMInvalidArgumentException::scheduleInsertForManagedEntity($entity); - } - - if (isset($this->entityInsertions[$oid])) { - throw ORMInvalidArgumentException::scheduleInsertTwice($entity); - } - - $this->entityInsertions[$oid] = $entity; - - if (isset($this->entityIdentifiers[$oid])) { - $this->addToIdentityMap($entity); - } - } - - /** - * Checks whether an entity is scheduled for insertion. - */ - public function isScheduledForInsert(object $entity): bool - { - return isset($this->entityInsertions[spl_object_id($entity)]); - } - - /** - * Schedules an entity for being updated. - * - * @throws ORMInvalidArgumentException - */ - public function scheduleForUpdate(object $entity): void - { - $oid = spl_object_id($entity); - - if (! isset($this->entityIdentifiers[$oid])) { - throw ORMInvalidArgumentException::entityHasNoIdentity($entity, 'scheduling for update'); - } - - if (isset($this->entityDeletions[$oid])) { - throw ORMInvalidArgumentException::entityIsRemoved($entity, 'schedule for update'); - } - - if (! isset($this->entityUpdates[$oid]) && ! isset($this->entityInsertions[$oid])) { - $this->entityUpdates[$oid] = $entity; - } - } - - /** - * INTERNAL: - * Schedules an extra update that will be executed immediately after the - * regular entity updates within the currently running commit cycle. - * - * Extra updates for entities are stored as (entity, changeset) tuples. - * - * @phpstan-param array $changeset The changeset of the entity (what to update). - * - * @ignore - */ - public function scheduleExtraUpdate(object $entity, array $changeset): void - { - $oid = spl_object_id($entity); - $extraUpdate = [$entity, $changeset]; - - if (isset($this->extraUpdates[$oid])) { - [, $changeset2] = $this->extraUpdates[$oid]; - - $extraUpdate = [$entity, $changeset + $changeset2]; - } - - $this->extraUpdates[$oid] = $extraUpdate; - } - - /** - * Checks whether an entity is registered as dirty in the unit of work. - * Note: Is not very useful currently as dirty entities are only registered - * at commit time. - */ - public function isScheduledForUpdate(object $entity): bool - { - return isset($this->entityUpdates[spl_object_id($entity)]); - } - - /** - * Checks whether an entity is registered to be checked in the unit of work. - */ - public function isScheduledForDirtyCheck(object $entity): bool - { - $rootEntityName = $this->em->getClassMetadata($entity::class)->rootEntityName; - - return isset($this->scheduledForSynchronization[$rootEntityName][spl_object_id($entity)]); - } - - /** - * INTERNAL: - * Schedules an entity for deletion. - */ - public function scheduleForDelete(object $entity): void - { - $oid = spl_object_id($entity); - - if (isset($this->entityInsertions[$oid])) { - if ($this->isInIdentityMap($entity)) { - $this->removeFromIdentityMap($entity); - } - - unset($this->entityInsertions[$oid], $this->entityStates[$oid]); - - return; // entity has not been persisted yet, so nothing more to do. - } - - if (! $this->isInIdentityMap($entity)) { - return; - } - - unset($this->entityUpdates[$oid]); - - if (! isset($this->entityDeletions[$oid])) { - $this->entityDeletions[$oid] = $entity; - $this->entityStates[$oid] = self::STATE_REMOVED; - } - } - - /** - * Checks whether an entity is registered as removed/deleted with the unit - * of work. - */ - public function isScheduledForDelete(object $entity): bool - { - return isset($this->entityDeletions[spl_object_id($entity)]); - } - - /** - * Checks whether an entity is scheduled for insertion, update or deletion. - */ - public function isEntityScheduled(object $entity): bool - { - $oid = spl_object_id($entity); - - return isset($this->entityInsertions[$oid]) - || isset($this->entityUpdates[$oid]) - || isset($this->entityDeletions[$oid]); - } - - /** - * INTERNAL: - * Registers an entity in the identity map. - * Note that entities in a hierarchy are registered with the class name of - * the root entity. - * - * @return bool TRUE if the registration was successful, FALSE if the identity of - * the entity in question is already managed. - * - * @throws ORMInvalidArgumentException - * @throws EntityIdentityCollisionException - * - * @ignore - */ - public function addToIdentityMap(object $entity): bool - { - $classMetadata = $this->em->getClassMetadata($entity::class); - $idHash = $this->getIdHashByEntity($entity); - $className = $classMetadata->rootEntityName; - - if (isset($this->identityMap[$className][$idHash])) { - if ($this->identityMap[$className][$idHash] !== $entity) { - throw EntityIdentityCollisionException::create($this->identityMap[$className][$idHash], $entity, $idHash); - } - - return false; - } - - $this->identityMap[$className][$idHash] = $entity; - - return true; - } - - /** - * Gets the id hash of an entity by its identifier. - * - * @param array $identifier The identifier of an entity - * - * @return string The entity id hash. - */ - final public static function getIdHashByIdentifier(array $identifier): string - { - foreach ($identifier as $k => $value) { - if ($value instanceof BackedEnum) { - $identifier[$k] = $value->value; - } - } - - return implode( - ' ', - $identifier, - ); - } - - /** - * Gets the id hash of an entity. - * - * @param object $entity The entity managed by Unit Of Work - * - * @return string The entity id hash. - */ - public function getIdHashByEntity(object $entity): string - { - $identifier = $this->entityIdentifiers[spl_object_id($entity)]; - - if (empty($identifier) || in_array(null, $identifier, true)) { - $classMetadata = $this->em->getClassMetadata($entity::class); - - throw ORMInvalidArgumentException::entityWithoutIdentity($classMetadata->name, $entity); - } - - return self::getIdHashByIdentifier($identifier); - } - - /** - * Gets the state of an entity with regard to the current unit of work. - * - * @param int|null $assume The state to assume if the state is not yet known (not MANAGED or REMOVED). - * This parameter can be set to improve performance of entity state detection - * by potentially avoiding a database lookup if the distinction between NEW and DETACHED - * is either known or does not matter for the caller of the method. - * @phpstan-param self::STATE_*|null $assume - * - * @phpstan-return self::STATE_* - */ - public function getEntityState(object $entity, int|null $assume = null): int - { - $oid = spl_object_id($entity); - - if (isset($this->entityStates[$oid])) { - return $this->entityStates[$oid]; - } - - if ($assume !== null) { - return $assume; - } - - // State can only be NEW or DETACHED, because MANAGED/REMOVED states are known. - // Note that you can not remember the NEW or DETACHED state in _entityStates since - // the UoW does not hold references to such objects and the object hash can be reused. - // More generally because the state may "change" between NEW/DETACHED without the UoW being aware of it. - $class = $this->em->getClassMetadata($entity::class); - $id = $class->getIdentifierValues($entity); - - if (! $id) { - return self::STATE_NEW; - } - - if ($class->containsForeignIdentifier || $class->containsEnumIdentifier) { - $id = $this->identifierFlattener->flattenIdentifier($class, $id); - } - - switch (true) { - case $class->isIdentifierNatural(): - // Check for a version field, if available, to avoid a db lookup. - if ($class->isVersioned) { - assert($class->versionField !== null); - - return $class->getFieldValue($entity, $class->versionField) - ? self::STATE_DETACHED - : self::STATE_NEW; - } - - // Last try before db lookup: check the identity map. - if ($this->tryGetById($id, $class->rootEntityName)) { - return self::STATE_DETACHED; - } - - // db lookup - if ($this->getEntityPersister($class->name)->exists($entity)) { - return self::STATE_DETACHED; - } - - return self::STATE_NEW; - - case ! $class->idGenerator->isPostInsertGenerator(): - // if we have a pre insert generator we can't be sure that having an id - // really means that the entity exists. We have to verify this through - // the last resort: a db lookup - - // Last try before db lookup: check the identity map. - if ($this->tryGetById($id, $class->rootEntityName)) { - return self::STATE_DETACHED; - } - - // db lookup - if ($this->getEntityPersister($class->name)->exists($entity)) { - return self::STATE_DETACHED; - } - - return self::STATE_NEW; - - default: - return self::STATE_DETACHED; - } - } - - /** - * INTERNAL: - * Removes an entity from the identity map. This effectively detaches the - * entity from the persistence management of Doctrine. - * - * @throws ORMInvalidArgumentException - * - * @ignore - */ - public function removeFromIdentityMap(object $entity): bool - { - $oid = spl_object_id($entity); - $classMetadata = $this->em->getClassMetadata($entity::class); - $idHash = self::getIdHashByIdentifier($this->entityIdentifiers[$oid]); - - if ($idHash === '') { - throw ORMInvalidArgumentException::entityHasNoIdentity($entity, 'remove from identity map'); - } - - $className = $classMetadata->rootEntityName; - - if (isset($this->identityMap[$className][$idHash])) { - unset($this->identityMap[$className][$idHash], $this->readOnlyObjects[$oid]); - - //$this->entityStates[$oid] = self::STATE_DETACHED; - - return true; - } - - return false; - } - - /** - * INTERNAL: - * Gets an entity in the identity map by its identifier hash. - * - * @ignore - */ - public function getByIdHash(string $idHash, string $rootClassName): object|null - { - return $this->identityMap[$rootClassName][$idHash]; - } - - /** - * INTERNAL: - * Tries to get an entity by its identifier hash. If no entity is found for - * the given hash, FALSE is returned. - * - * @param mixed $idHash (must be possible to cast it to string) - * - * @return false|object The found entity or FALSE. - * - * @ignore - */ - public function tryGetByIdHash(mixed $idHash, string $rootClassName): object|false - { - $stringIdHash = (string) $idHash; - - return $this->identityMap[$rootClassName][$stringIdHash] ?? false; - } - - /** - * Checks whether an entity is registered in the identity map of this UnitOfWork. - */ - public function isInIdentityMap(object $entity): bool - { - $oid = spl_object_id($entity); - - if (empty($this->entityIdentifiers[$oid])) { - return false; - } - - $classMetadata = $this->em->getClassMetadata($entity::class); - $idHash = self::getIdHashByIdentifier($this->entityIdentifiers[$oid]); - - return isset($this->identityMap[$classMetadata->rootEntityName][$idHash]); - } - - /** - * Persists an entity as part of the current unit of work. - */ - public function persist(object $entity): void - { - $visited = []; - - $this->doPersist($entity, $visited); - } - - /** - * Persists an entity as part of the current unit of work. - * - * This method is internally called during persist() cascades as it tracks - * the already visited entities to prevent infinite recursions. - * - * @phpstan-param array $visited The already visited entities. - * - * @throws ORMInvalidArgumentException - * @throws UnexpectedValueException - */ - private function doPersist(object $entity, array &$visited): void - { - $oid = spl_object_id($entity); - - if (isset($visited[$oid])) { - return; // Prevent infinite recursion - } - - $visited[$oid] = $entity; // Mark visited - - $class = $this->em->getClassMetadata($entity::class); - - // We assume NEW, so DETACHED entities result in an exception on flush (constraint violation). - // If we would detect DETACHED here we would throw an exception anyway with the same - // consequences (not recoverable/programming error), so just assuming NEW here - // lets us avoid some database lookups for entities with natural identifiers. - $entityState = $this->getEntityState($entity, self::STATE_NEW); - - switch ($entityState) { - case self::STATE_MANAGED: - // Nothing to do, except if policy is "deferred explicit" - if ($class->isChangeTrackingDeferredExplicit()) { - $this->scheduleForDirtyCheck($entity); - } - - break; - - case self::STATE_NEW: - $this->persistNew($class, $entity); - break; - - case self::STATE_REMOVED: - // Entity becomes managed again - unset($this->entityDeletions[$oid]); - $this->addToIdentityMap($entity); - - $this->entityStates[$oid] = self::STATE_MANAGED; - - if ($class->isChangeTrackingDeferredExplicit()) { - $this->scheduleForDirtyCheck($entity); - } - - break; - - case self::STATE_DETACHED: - // Can actually not happen right now since we assume STATE_NEW. - throw ORMInvalidArgumentException::detachedEntityCannot($entity, 'persisted'); - - default: - throw new UnexpectedValueException(sprintf( - 'Unexpected entity state: %s. %s', - $entityState, - self::objToStr($entity), - )); - } - - $this->cascadePersist($entity, $visited); - } - - /** - * Deletes an entity as part of the current unit of work. - */ - public function remove(object $entity): void - { - $visited = []; - - $this->doRemove($entity, $visited); - } - - /** - * Deletes an entity as part of the current unit of work. - * - * This method is internally called during delete() cascades as it tracks - * the already visited entities to prevent infinite recursions. - * - * @phpstan-param array $visited The map of the already visited entities. - * - * @throws ORMInvalidArgumentException If the instance is a detached entity. - * @throws UnexpectedValueException - */ - private function doRemove(object $entity, array &$visited): void - { - $oid = spl_object_id($entity); - - if (isset($visited[$oid])) { - return; // Prevent infinite recursion - } - - $visited[$oid] = $entity; // mark visited - - // Cascade first, because scheduleForDelete() removes the entity from the identity map, which - // can cause problems when a lazy proxy has to be initialized for the cascade operation. - $this->cascadeRemove($entity, $visited); - - $class = $this->em->getClassMetadata($entity::class); - $entityState = $this->getEntityState($entity); - - switch ($entityState) { - case self::STATE_NEW: - case self::STATE_REMOVED: - // nothing to do - break; - - case self::STATE_MANAGED: - $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::preRemove); - - if ($invoke !== ListenersInvoker::INVOKE_NONE) { - $this->listenersInvoker->invoke($class, Events::preRemove, $entity, new PreRemoveEventArgs($entity, $this->em), $invoke); - } - - $this->scheduleForDelete($entity); - break; - - case self::STATE_DETACHED: - throw ORMInvalidArgumentException::detachedEntityCannot($entity, 'removed'); - - default: - throw new UnexpectedValueException(sprintf( - 'Unexpected entity state: %s. %s', - $entityState, - self::objToStr($entity), - )); - } - } - - /** - * Detaches an entity from the persistence management. It's persistence will - * no longer be managed by Doctrine. - */ - public function detach(object $entity): void - { - $visited = []; - - $this->doDetach($entity, $visited); - } - - /** - * Executes a detach operation on the given entity. - * - * @param mixed[] $visited - * @param bool $noCascade if true, don't cascade detach operation. - */ - private function doDetach( - object $entity, - array &$visited, - bool $noCascade = false, - ): void { - $oid = spl_object_id($entity); - - if (isset($visited[$oid])) { - return; // Prevent infinite recursion - } - - $visited[$oid] = $entity; // mark visited - - switch ($this->getEntityState($entity, self::STATE_DETACHED)) { - case self::STATE_MANAGED: - if ($this->isInIdentityMap($entity)) { - $this->removeFromIdentityMap($entity); - } - - unset( - $this->entityInsertions[$oid], - $this->entityUpdates[$oid], - $this->entityDeletions[$oid], - $this->entityIdentifiers[$oid], - $this->entityStates[$oid], - $this->originalEntityData[$oid], - ); - break; - case self::STATE_NEW: - case self::STATE_DETACHED: - return; - } - - if (! $noCascade) { - $this->cascadeDetach($entity, $visited); - } - } - - /** - * Refreshes the state of the given entity from the database, overwriting - * any local, unpersisted changes. - * - * @phpstan-param LockMode::*|null $lockMode - * - * @throws InvalidArgumentException If the entity is not MANAGED. - * @throws TransactionRequiredException - */ - public function refresh(object $entity, LockMode|int|null $lockMode = null): void - { - $visited = []; - - $this->doRefresh($entity, $visited, $lockMode); - } - - /** - * Executes a refresh operation on an entity. - * - * @phpstan-param array $visited The already visited entities during cascades. - * @phpstan-param LockMode::*|null $lockMode - * - * @throws ORMInvalidArgumentException If the entity is not MANAGED. - * @throws TransactionRequiredException - */ - private function doRefresh(object $entity, array &$visited, LockMode|int|null $lockMode = null): void - { - switch (true) { - case $lockMode === LockMode::PESSIMISTIC_READ: - case $lockMode === LockMode::PESSIMISTIC_WRITE: - if (! $this->em->getConnection()->isTransactionActive()) { - throw TransactionRequiredException::transactionRequired(); - } - } - - $oid = spl_object_id($entity); - - if (isset($visited[$oid])) { - return; // Prevent infinite recursion - } - - $visited[$oid] = $entity; // mark visited - - $class = $this->em->getClassMetadata($entity::class); - - if ($this->getEntityState($entity) !== self::STATE_MANAGED) { - throw ORMInvalidArgumentException::entityNotManaged($entity); - } - - $this->cascadeRefresh($entity, $visited, $lockMode); - - $this->getEntityPersister($class->name)->refresh( - array_combine($class->getIdentifierFieldNames(), $this->entityIdentifiers[$oid]), - $entity, - $lockMode, - ); - } - - /** - * Cascades a refresh operation to associated entities. - * - * @phpstan-param array $visited - * @phpstan-param LockMode::*|null $lockMode - */ - private function cascadeRefresh(object $entity, array &$visited, LockMode|int|null $lockMode = null): void - { - $class = $this->em->getClassMetadata($entity::class); - - $associationMappings = array_filter( - $class->associationMappings, - static fn (AssociationMapping $assoc): bool => $assoc->isCascadeRefresh(), - ); - - foreach ($associationMappings as $assoc) { - $relatedEntities = $class->propertyAccessors[$assoc->fieldName]->getValue($entity); - - switch (true) { - case $relatedEntities instanceof PersistentCollection: - // Unwrap so that foreach() does not initialize - $relatedEntities = $relatedEntities->unwrap(); - // break; is commented intentionally! - - case $relatedEntities instanceof Collection: - case is_array($relatedEntities): - foreach ($relatedEntities as $relatedEntity) { - $this->doRefresh($relatedEntity, $visited, $lockMode); - } - - break; - - case $relatedEntities !== null: - $this->doRefresh($relatedEntities, $visited, $lockMode); - break; - - default: - // Do nothing - } - } - } - - /** - * Cascades a detach operation to associated entities. - * - * @param array $visited - */ - private function cascadeDetach(object $entity, array &$visited): void - { - $class = $this->em->getClassMetadata($entity::class); - - $associationMappings = array_filter( - $class->associationMappings, - static fn (AssociationMapping $assoc): bool => $assoc->isCascadeDetach(), - ); - - foreach ($associationMappings as $assoc) { - $relatedEntities = $class->propertyAccessors[$assoc->fieldName]->getValue($entity); - - switch (true) { - case $relatedEntities instanceof PersistentCollection: - // Unwrap so that foreach() does not initialize - $relatedEntities = $relatedEntities->unwrap(); - // break; is commented intentionally! - - case $relatedEntities instanceof Collection: - case is_array($relatedEntities): - foreach ($relatedEntities as $relatedEntity) { - $this->doDetach($relatedEntity, $visited); - } - - break; - - case $relatedEntities !== null: - $this->doDetach($relatedEntities, $visited); - break; - - default: - // Do nothing - } - } - } - - /** - * Cascades the save operation to associated entities. - * - * @phpstan-param array $visited - */ - private function cascadePersist(object $entity, array &$visited): void - { - if ($this->isUninitializedObject($entity)) { - // nothing to do - proxy is not initialized, therefore we don't do anything with it - return; - } - - $class = $this->em->getClassMetadata($entity::class); - - $associationMappings = array_filter( - $class->associationMappings, - static fn (AssociationMapping $assoc): bool => $assoc->isCascadePersist(), - ); - - foreach ($associationMappings as $assoc) { - $relatedEntities = $class->propertyAccessors[$assoc->fieldName]->getValue($entity); - - switch (true) { - case $relatedEntities instanceof PersistentCollection: - // Unwrap so that foreach() does not initialize - $relatedEntities = $relatedEntities->unwrap(); - // break; is commented intentionally! - - case $relatedEntities instanceof Collection: - case is_array($relatedEntities): - if ($assoc->isToMany() <= 0) { - throw ORMInvalidArgumentException::invalidAssociation( - $this->em->getClassMetadata($assoc->targetEntity), - $assoc, - $relatedEntities, - ); - } - - foreach ($relatedEntities as $relatedEntity) { - $this->doPersist($relatedEntity, $visited); - } - - break; - - case $relatedEntities !== null: - if (! $relatedEntities instanceof $assoc->targetEntity) { - throw ORMInvalidArgumentException::invalidAssociation( - $this->em->getClassMetadata($assoc->targetEntity), - $assoc, - $relatedEntities, - ); - } - - $this->doPersist($relatedEntities, $visited); - break; - - default: - // Do nothing - } - } - } - - /** - * Cascades the delete operation to associated entities. - * - * @phpstan-param array $visited - */ - private function cascadeRemove(object $entity, array &$visited): void - { - $class = $this->em->getClassMetadata($entity::class); - - $associationMappings = array_filter( - $class->associationMappings, - static fn (AssociationMapping $assoc): bool => $assoc->isCascadeRemove(), - ); - - if ($associationMappings) { - $this->initializeObject($entity); - } - - $entitiesToCascade = []; - - foreach ($associationMappings as $assoc) { - $relatedEntities = $class->propertyAccessors[$assoc->fieldName]->getValue($entity); - - switch (true) { - case $relatedEntities instanceof Collection: - case is_array($relatedEntities): - // If its a PersistentCollection initialization is intended! No unwrap! - foreach ($relatedEntities as $relatedEntity) { - $entitiesToCascade[] = $relatedEntity; - } - - break; - - case $relatedEntities !== null: - $entitiesToCascade[] = $relatedEntities; - break; - - default: - // Do nothing - } - } - - foreach ($entitiesToCascade as $relatedEntity) { - $this->doRemove($relatedEntity, $visited); - } - } - - /** - * Acquire a lock on the given entity. - * - * @phpstan-param LockMode::* $lockMode - * - * @throws ORMInvalidArgumentException - * @throws TransactionRequiredException - * @throws OptimisticLockException - */ - public function lock(object $entity, LockMode|int $lockMode, DateTimeInterface|int|null $lockVersion = null): void - { - if ($this->getEntityState($entity, self::STATE_DETACHED) !== self::STATE_MANAGED) { - throw ORMInvalidArgumentException::entityNotManaged($entity); - } - - $class = $this->em->getClassMetadata($entity::class); - - switch (true) { - case $lockMode === LockMode::OPTIMISTIC: - if (! $class->isVersioned) { - throw OptimisticLockException::notVersioned($class->name); - } - - if ($lockVersion === null) { - return; - } - - $this->initializeObject($entity); - - assert($class->versionField !== null); - $entityVersion = $class->propertyAccessors[$class->versionField]->getValue($entity); - - // phpcs:ignore SlevomatCodingStandard.Operators.DisallowEqualOperators.DisallowedNotEqualOperator - if ($entityVersion != $lockVersion) { - throw OptimisticLockException::lockFailedVersionMismatch($entity, $lockVersion, $entityVersion); - } - - break; - - case $lockMode === LockMode::NONE: - case $lockMode === LockMode::PESSIMISTIC_READ: - case $lockMode === LockMode::PESSIMISTIC_WRITE: - if (! $this->em->getConnection()->isTransactionActive()) { - throw TransactionRequiredException::transactionRequired(); - } - - $oid = spl_object_id($entity); - - $this->getEntityPersister($class->name)->lock( - array_combine($class->getIdentifierFieldNames(), $this->entityIdentifiers[$oid]), - $lockMode, - ); - break; - - default: - // Do nothing - } - } - - /** - * Clears the UnitOfWork. - */ - public function clear(): void - { - $this->identityMap = - $this->entityIdentifiers = - $this->originalEntityData = - $this->entityChangeSets = - $this->entityStates = - $this->scheduledForSynchronization = - $this->entityInsertions = - $this->entityUpdates = - $this->entityDeletions = - $this->nonCascadedNewDetectedEntities = - $this->collectionDeletions = - $this->collectionUpdates = - $this->extraUpdates = - $this->readOnlyObjects = - $this->pendingCollectionElementRemovals = - $this->visitedCollections = - $this->eagerLoadingEntities = - $this->eagerLoadingCollections = - $this->orphanRemovals = []; - - if ($this->evm->hasListeners(Events::onClear)) { - $this->evm->dispatchEvent(Events::onClear, new OnClearEventArgs($this->em)); - } - } - - /** - * INTERNAL: - * Schedules an orphaned entity for removal. The remove() operation will be - * invoked on that entity at the beginning of the next commit of this - * UnitOfWork. - * - * @ignore - */ - public function scheduleOrphanRemoval(object $entity): void - { - $this->orphanRemovals[spl_object_id($entity)] = $entity; - } - - /** - * INTERNAL: - * Cancels a previously scheduled orphan removal. - * - * @ignore - */ - public function cancelOrphanRemoval(object $entity): void - { - unset($this->orphanRemovals[spl_object_id($entity)]); - } - - /** - * INTERNAL: - * Schedules a complete collection for removal when this UnitOfWork commits. - */ - public function scheduleCollectionDeletion(PersistentCollection $coll): void - { - $coid = spl_object_id($coll); - - // TODO: if $coll is already scheduled for recreation ... what to do? - // Just remove $coll from the scheduled recreations? - unset($this->collectionUpdates[$coid]); - - $this->collectionDeletions[$coid] = $coll; - } - - public function isCollectionScheduledForDeletion(PersistentCollection $coll): bool - { - return isset($this->collectionDeletions[spl_object_id($coll)]); - } - - /** - * INTERNAL: - * Creates an entity. Used for reconstitution of persistent entities. - * - * Internal note: Highly performance-sensitive method. - * - * @param class-string $className The name of the entity class. - * @param mixed[] $data The data for the entity. - * @param array $hints Any hints to account for during reconstitution/lookup of the entity. - * - * @return object The managed entity instance. - * - * @ignore - * @todo Rename: getOrCreateEntity - */ - public function createEntity(string $className, array $data, array &$hints = []): object - { - $class = $this->em->getClassMetadata($className); - - $id = $this->identifierFlattener->flattenIdentifier($class, $data); - $idHash = self::getIdHashByIdentifier($id); - - if (isset($this->identityMap[$class->rootEntityName][$idHash])) { - $entity = $this->identityMap[$class->rootEntityName][$idHash]; - $oid = spl_object_id($entity); - - if ( - isset($hints[Query::HINT_REFRESH], $hints[Query::HINT_REFRESH_ENTITY]) - ) { - $unmanagedProxy = $hints[Query::HINT_REFRESH_ENTITY]; - if ( - $unmanagedProxy !== $entity - && $this->isIdentifierEquals($unmanagedProxy, $entity) - ) { - // We will hydrate the given un-managed proxy anyway: - // continue work, but consider it the entity from now on - $entity = $unmanagedProxy; - } - } - - if ($this->isUninitializedObject($entity)) { - if ($this->em->getConfiguration()->isNativeLazyObjectsEnabled()) { - $class->reflClass->markLazyObjectAsInitialized($entity); - } else { - $entity->__setInitialized(true); - - Hydrator::hydrate($entity, (array) $class->reflClass->newInstanceWithoutConstructor()); - } - } else { - if ( - ! isset($hints[Query::HINT_REFRESH]) - || (isset($hints[Query::HINT_REFRESH_ENTITY]) && $hints[Query::HINT_REFRESH_ENTITY] !== $entity) - ) { - return $entity; - } - } - - $this->originalEntityData[$oid] = $data; - } else { - $entity = $class->newInstance(); - $oid = spl_object_id($entity); - $this->registerManaged($entity, $id, $data); - - if (isset($hints[Query::HINT_READ_ONLY]) && $hints[Query::HINT_READ_ONLY] === true) { - $this->readOnlyObjects[$oid] = true; - } - } - - foreach ($data as $field => $value) { - if (isset($class->fieldMappings[$field])) { - $class->propertyAccessors[$field]->setValue($entity, $value); - } - } - - // Loading the entity right here, if its in the eager loading map get rid of it there. - unset($this->eagerLoadingEntities[$class->rootEntityName][$idHash]); - - if (isset($this->eagerLoadingEntities[$class->rootEntityName]) && ! $this->eagerLoadingEntities[$class->rootEntityName]) { - unset($this->eagerLoadingEntities[$class->rootEntityName]); - } - - foreach ($class->associationMappings as $field => $assoc) { - // Check if the association is not among the fetch-joined associations already. - if (isset($hints['fetchAlias'], $hints['fetched'][$hints['fetchAlias']][$field])) { - continue; - } - - if (! isset($hints['fetchMode'][$class->name][$field])) { - $hints['fetchMode'][$class->name][$field] = $assoc->fetch; - } - - $targetClass = $this->em->getClassMetadata($assoc->targetEntity); - - switch (true) { - case $assoc->isToOne(): - if (! $assoc->isOwningSide()) { - // use the given entity association - if (isset($data[$field]) && is_object($data[$field]) && isset($this->entityStates[spl_object_id($data[$field])])) { - $this->originalEntityData[$oid][$field] = $data[$field]; - - $class->propertyAccessors[$field]->setValue($entity, $data[$field]); - $targetClass->propertyAccessors[$assoc->mappedBy]->setValue($data[$field], $entity); - - continue 2; - } - - // Inverse side of x-to-one can never be lazy - $class->propertyAccessors[$field]->setValue($entity, $this->getEntityPersister($assoc->targetEntity)->loadOneToOneEntity($assoc, $entity)); - - continue 2; - } - - // use the entity association - if (isset($data[$field]) && is_object($data[$field]) && isset($this->entityStates[spl_object_id($data[$field])])) { - $class->propertyAccessors[$field]->setValue($entity, $data[$field]); - $this->originalEntityData[$oid][$field] = $data[$field]; - - break; - } - - $associatedId = []; - - assert($assoc->isToOneOwningSide()); - // TODO: Is this even computed right in all cases of composite keys? - foreach ($assoc->targetToSourceKeyColumns as $targetColumn => $srcColumn) { - $joinColumnValue = $data[$srcColumn] ?? null; - - if ($joinColumnValue !== null) { - if ($joinColumnValue instanceof BackedEnum) { - $joinColumnValue = $joinColumnValue->value; - } - - if ($targetClass->containsForeignIdentifier) { - $associatedId[$targetClass->getFieldForColumn($targetColumn)] = $joinColumnValue; - } else { - $associatedId[$targetClass->fieldNames[$targetColumn]] = $joinColumnValue; - } - } elseif (in_array($targetClass->getFieldForColumn($targetColumn), $targetClass->identifier, true)) { - // the missing key is part of target's entity primary key - $associatedId = []; - break; - } - } - - if (! $associatedId) { - // Foreign key is NULL - $class->propertyAccessors[$field]->setValue($entity, null); - $this->originalEntityData[$oid][$field] = null; - - break; - } - - // Foreign key is set - // Check identity map first - // FIXME: Can break easily with composite keys if join column values are in - // wrong order. The correct order is the one in ClassMetadata#identifier. - $relatedIdHash = self::getIdHashByIdentifier($associatedId); - - switch (true) { - case isset($this->identityMap[$targetClass->rootEntityName][$relatedIdHash]): - $newValue = $this->identityMap[$targetClass->rootEntityName][$relatedIdHash]; - - // If this is an uninitialized proxy, we are deferring eager loads, - // this association is marked as eager fetch, and its an uninitialized proxy (wtf!) - // then we can append this entity for eager loading! - if ( - $hints['fetchMode'][$class->name][$field] === ClassMetadata::FETCH_EAGER && - isset($hints[self::HINT_DEFEREAGERLOAD]) && - ! $targetClass->isIdentifierComposite && - $this->isUninitializedObject($newValue) - ) { - $this->eagerLoadingEntities[$targetClass->rootEntityName][$relatedIdHash] = current($associatedId); - } - - break; - - case $targetClass->subClasses: - // If it might be a subtype, it can not be lazy. There isn't even - // a way to solve this with deferred eager loading, which means putting - // an entity with subclasses at a *-to-one location is really bad! (performance-wise) - $newValue = $this->getEntityPersister($assoc->targetEntity)->loadOneToOneEntity($assoc, $entity, $associatedId); - break; - - default: - $normalizedAssociatedId = $this->normalizeIdentifier($targetClass, $associatedId); - - switch (true) { - // We are negating the condition here. Other cases will assume it is valid! - case $hints['fetchMode'][$class->name][$field] !== ClassMetadata::FETCH_EAGER: - $newValue = $this->em->getProxyFactory()->getProxy($assoc->targetEntity, $normalizedAssociatedId); - $this->registerManaged($newValue, $associatedId, []); - break; - - // Deferred eager load only works for single identifier classes - case isset($hints[self::HINT_DEFEREAGERLOAD]) && - $hints[self::HINT_DEFEREAGERLOAD] && - ! $targetClass->isIdentifierComposite: - // TODO: Is there a faster approach? - $this->eagerLoadingEntities[$targetClass->rootEntityName][$relatedIdHash] = current($normalizedAssociatedId); - - $newValue = $this->em->getProxyFactory()->getProxy($assoc->targetEntity, $normalizedAssociatedId); - $this->registerManaged($newValue, $associatedId, []); - break; - - default: - // TODO: This is very imperformant, ignore it? - $newValue = $this->em->find($assoc->targetEntity, $normalizedAssociatedId); - break; - } - } - - $this->originalEntityData[$oid][$field] = $newValue; - $class->propertyAccessors[$field]->setValue($entity, $newValue); - - if ($assoc->inversedBy !== null && $assoc->isOneToOne() && $newValue !== null) { - $inverseAssoc = $targetClass->associationMappings[$assoc->inversedBy]; - $targetClass->propertyAccessors[$inverseAssoc->fieldName]->setValue($newValue, $entity); - } - - break; - - default: - assert($assoc->isToMany()); - // Ignore if its a cached collection - if (isset($hints[Query::HINT_CACHE_ENABLED]) && $class->getFieldValue($entity, $field) instanceof PersistentCollection) { - break; - } - - // use the given collection - if (isset($data[$field]) && $data[$field] instanceof PersistentCollection) { - $data[$field]->setOwner($entity, $assoc); - - $class->propertyAccessors[$field]->setValue($entity, $data[$field]); - $this->originalEntityData[$oid][$field] = $data[$field]; - - break; - } - - // Inject collection - $pColl = new PersistentCollection($this->em, $targetClass, new ArrayCollection()); - $pColl->setOwner($entity, $assoc); - $pColl->setInitialized(false); - - $reflField = $class->propertyAccessors[$field]; - $reflField->setValue($entity, $pColl); - - if ($hints['fetchMode'][$class->name][$field] === ClassMetadata::FETCH_EAGER) { - $isIteration = isset($hints[Query::HINT_INTERNAL_ITERATION]) && $hints[Query::HINT_INTERNAL_ITERATION]; - if (! $isIteration && $assoc->isOneToMany() && ! $targetClass->isIdentifierComposite && ! $assoc->isIndexed()) { - $this->scheduleCollectionForBatchLoading($pColl, $class); - } else { - $this->loadCollection($pColl); - $pColl->takeSnapshot(); - } - } - - $this->originalEntityData[$oid][$field] = $pColl; - break; - } - } - - // defer invoking of postLoad event to hydration complete step - $this->hydrationCompleteHandler->deferPostLoadInvoking($class, $entity); - - return $entity; - } - - public function triggerEagerLoads(): void - { - if (! $this->eagerLoadingEntities && ! $this->eagerLoadingCollections) { - return; - } - - // avoid infinite recursion - $eagerLoadingEntities = $this->eagerLoadingEntities; - $this->eagerLoadingEntities = []; - - foreach ($eagerLoadingEntities as $entityName => $ids) { - if (! $ids) { - continue; - } - - $class = $this->em->getClassMetadata($entityName); - $batches = array_chunk($ids, $this->em->getConfiguration()->getEagerFetchBatchSize()); - - foreach ($batches as $batchedIds) { - $this->getEntityPersister($entityName)->loadAll( - array_combine($class->identifier, [$batchedIds]), - ); - } - } - - $eagerLoadingCollections = $this->eagerLoadingCollections; // avoid recursion - $this->eagerLoadingCollections = []; - - foreach ($eagerLoadingCollections as $group) { - $this->eagerLoadCollections($group['items'], $group['mapping']); - } - } - - /** - * Load all data into the given collections, according to the specified mapping - * - * @param PersistentCollection[] $collections - */ - private function eagerLoadCollections(array $collections, ToManyInverseSideMapping $mapping): void - { - $targetEntity = $mapping->targetEntity; - $class = $this->em->getClassMetadata($mapping->sourceEntity); - $mappedBy = $mapping->mappedBy; - - $batches = array_chunk($collections, $this->em->getConfiguration()->getEagerFetchBatchSize(), true); - - foreach ($batches as $collectionBatch) { - $entities = []; - - foreach ($collectionBatch as $collection) { - $entities[] = $collection->getOwner(); - } - - $found = $this->getEntityPersister($targetEntity)->loadAll([$mappedBy => $entities], $mapping->orderBy); - - $targetClass = $this->em->getClassMetadata($targetEntity); - $targetProperty = $targetClass->getPropertyAccessor($mappedBy); - assert($targetProperty !== null); - - foreach ($found as $targetValue) { - $sourceEntity = $targetProperty->getValue($targetValue); - - if ($sourceEntity === null && isset($targetClass->associationMappings[$mappedBy]->joinColumns)) { - // case where the hydration $targetValue itself has not yet fully completed, for example - // in case a bi-directional association is being hydrated and deferring eager loading is - // not possible due to subclassing. - $data = $this->getOriginalEntityData($targetValue); - $id = []; - foreach ($targetClass->associationMappings[$mappedBy]->joinColumns as $joinColumn) { - $id[] = $data[$joinColumn->name]; - } - } else { - $id = $this->identifierFlattener->flattenIdentifier($class, $class->getIdentifierValues($sourceEntity)); - } - - $idHash = implode(' ', $id); - - if ($mapping->indexBy !== null) { - $indexByProperty = $targetClass->getPropertyAccessor($mapping->indexBy); - assert($indexByProperty !== null); - $collectionBatch[$idHash]->hydrateSet($indexByProperty->getValue($targetValue), $targetValue); - } else { - $collectionBatch[$idHash]->add($targetValue); - } - } - } - - foreach ($collections as $association) { - $association->setInitialized(true); - $association->takeSnapshot(); - } - } - - /** - * Initializes (loads) an uninitialized persistent collection of an entity. - * - * @todo Maybe later move to EntityManager#initialize($proxyOrCollection). See DDC-733. - */ - public function loadCollection(PersistentCollection $collection): void - { - $assoc = $collection->getMapping(); - $persister = $this->getEntityPersister($assoc->targetEntity); - - switch ($assoc->type()) { - case ClassMetadata::ONE_TO_MANY: - $persister->loadOneToManyCollection($assoc, $collection->getOwner(), $collection); - break; - - case ClassMetadata::MANY_TO_MANY: - $persister->loadManyToManyCollection($assoc, $collection->getOwner(), $collection); - break; - } - - $collection->setInitialized(true); - } - - /** - * Schedule this collection for batch loading at the end of the UnitOfWork - */ - private function scheduleCollectionForBatchLoading(PersistentCollection $collection, ClassMetadata $sourceClass): void - { - $mapping = $collection->getMapping(); - $name = $mapping->sourceEntity . '#' . $mapping->fieldName; - - if (! isset($this->eagerLoadingCollections[$name])) { - $this->eagerLoadingCollections[$name] = [ - 'items' => [], - 'mapping' => $mapping, - ]; - } - - $owner = $collection->getOwner(); - assert($owner !== null); - - $id = $this->identifierFlattener->flattenIdentifier( - $sourceClass, - $sourceClass->getIdentifierValues($owner), - ); - $idHash = implode(' ', $id); - - $this->eagerLoadingCollections[$name]['items'][$idHash] = $collection; - } - - /** - * Gets the identity map of the UnitOfWork. - * - * @return array> - */ - public function getIdentityMap(): array - { - return $this->identityMap; - } - - /** - * Gets the original data of an entity. The original data is the data that was - * present at the time the entity was reconstituted from the database. - * - * @phpstan-return array - */ - public function getOriginalEntityData(object $entity): array - { - $oid = spl_object_id($entity); - - return $this->originalEntityData[$oid] ?? []; - } - - /** - * @param mixed[] $data - * - * @ignore - */ - public function setOriginalEntityData(object $entity, array $data): void - { - $this->originalEntityData[spl_object_id($entity)] = $data; - } - - /** - * INTERNAL: - * Sets a property value of the original data array of an entity. - * - * @ignore - */ - public function setOriginalEntityProperty(int $oid, string $property, mixed $value): void - { - $this->originalEntityData[$oid][$property] = $value; - } - - /** - * Gets the identifier of an entity. - * The returned value is always an array of identifier values. If the entity - * has a composite identifier then the identifier values are in the same - * order as the identifier field names as returned by ClassMetadata#getIdentifierFieldNames(). - * - * @return mixed[] The identifier values. - */ - public function getEntityIdentifier(object $entity): array - { - return $this->entityIdentifiers[spl_object_id($entity)] - ?? throw EntityNotFoundException::noIdentifierFound(get_debug_type($entity)); - } - - /** - * Processes an entity instance to extract their identifier values. - * - * @return mixed A scalar value. - * - * @throws ORMInvalidArgumentException - */ - public function getSingleIdentifierValue(object $entity): mixed - { - $class = $this->em->getClassMetadata($entity::class); - - if ($class->isIdentifierComposite) { - throw ORMInvalidArgumentException::invalidCompositeIdentifier(); - } - - $values = $this->isInIdentityMap($entity) - ? $this->getEntityIdentifier($entity) - : $class->getIdentifierValues($entity); - - return $values[$class->identifier[0]] ?? null; - } - - /** - * Tries to find an entity with the given identifier in the identity map of - * this UnitOfWork. - * - * @param mixed $id The entity identifier to look for. - * @param class-string $rootClassName The name of the root class of the mapped entity hierarchy. - * - * @return object|false Returns the entity with the specified identifier if it exists in - * this UnitOfWork, FALSE otherwise. - */ - public function tryGetById(mixed $id, string $rootClassName): object|false - { - $idHash = self::getIdHashByIdentifier((array) $id); - - return $this->identityMap[$rootClassName][$idHash] ?? false; - } - - /** - * Schedules an entity for dirty-checking at commit-time. - * - * @todo Rename: scheduleForSynchronization - */ - public function scheduleForDirtyCheck(object $entity): void - { - $rootClassName = $this->em->getClassMetadata($entity::class)->rootEntityName; - - $this->scheduledForSynchronization[$rootClassName][spl_object_id($entity)] = $entity; - } - - /** - * Checks whether the UnitOfWork has any pending insertions. - */ - public function hasPendingInsertions(): bool - { - return ! empty($this->entityInsertions); - } - - /** - * Calculates the size of the UnitOfWork. The size of the UnitOfWork is the - * number of entities in the identity map. - */ - public function size(): int - { - return array_sum(array_map('count', $this->identityMap)); - } - - /** - * Gets the EntityPersister for an Entity. - * - * @param class-string $entityName The name of the Entity. - */ - public function getEntityPersister(string $entityName): EntityPersister - { - if (isset($this->persisters[$entityName])) { - return $this->persisters[$entityName]; - } - - $class = $this->em->getClassMetadata($entityName); - - $persister = match (true) { - $class->isInheritanceTypeNone() => new BasicEntityPersister($this->em, $class), - $class->isInheritanceTypeSingleTable() => new SingleTablePersister($this->em, $class), - $class->isInheritanceTypeJoined() => new JoinedSubclassPersister($this->em, $class), - default => throw new RuntimeException('No persister found for entity.'), - }; - - if ($this->hasCache && $class->cache !== null) { - $persister = $this->em->getConfiguration() - ->getSecondLevelCacheConfiguration() - ->getCacheFactory() - ->buildCachedEntityPersister($this->em, $persister, $class); - } - - $this->persisters[$entityName] = $persister; - - return $this->persisters[$entityName]; - } - - /** Gets a collection persister for a collection-valued association. */ - public function getCollectionPersister(AssociationMapping $association): CollectionPersister - { - $role = isset($association->cache) - ? $association->sourceEntity . '::' . $association->fieldName - : $association->type(); - - if (isset($this->collectionPersisters[$role])) { - return $this->collectionPersisters[$role]; - } - - $persister = $association->type() === ClassMetadata::ONE_TO_MANY - ? new OneToManyPersister($this->em) - : new ManyToManyPersister($this->em); - - if ($this->hasCache && isset($association->cache)) { - $persister = $this->em->getConfiguration() - ->getSecondLevelCacheConfiguration() - ->getCacheFactory() - ->buildCachedCollectionPersister($this->em, $persister, $association); - } - - $this->collectionPersisters[$role] = $persister; - - return $this->collectionPersisters[$role]; - } - - /** - * INTERNAL: - * Registers an entity as managed. - * - * @param mixed[] $id The identifier values. - * @param mixed[] $data The original entity data. - */ - public function registerManaged(object $entity, array $id, array $data): void - { - $oid = spl_object_id($entity); - - $this->entityIdentifiers[$oid] = $id; - $this->entityStates[$oid] = self::STATE_MANAGED; - $this->originalEntityData[$oid] = $data; - - $this->addToIdentityMap($entity); - } - - /* PropertyChangedListener implementation */ - - /** - * Notifies this UnitOfWork of a property change in an entity. - * - * {@inheritDoc} - */ - public function propertyChanged(object $sender, string $propertyName, mixed $oldValue, mixed $newValue): void - { - $oid = spl_object_id($sender); - $class = $this->em->getClassMetadata($sender::class); - - $isAssocField = isset($class->associationMappings[$propertyName]); - - if (! $isAssocField && ! isset($class->fieldMappings[$propertyName])) { - return; // ignore non-persistent fields - } - - // Update changeset and mark entity for synchronization - $this->entityChangeSets[$oid][$propertyName] = [$oldValue, $newValue]; - - if (! isset($this->scheduledForSynchronization[$class->rootEntityName][$oid])) { - $this->scheduleForDirtyCheck($sender); - } - } - - /** - * Gets the currently scheduled entity insertions in this UnitOfWork. - * - * @phpstan-return array - */ - public function getScheduledEntityInsertions(): array - { - return $this->entityInsertions; - } - - /** - * Gets the currently scheduled entity updates in this UnitOfWork. - * - * @phpstan-return array - */ - public function getScheduledEntityUpdates(): array - { - return $this->entityUpdates; - } - - /** - * Gets the currently scheduled entity deletions in this UnitOfWork. - * - * @phpstan-return array - */ - public function getScheduledEntityDeletions(): array - { - return $this->entityDeletions; - } - - /** - * Gets the currently scheduled complete collection deletions - * - * @phpstan-return array> - */ - public function getScheduledCollectionDeletions(): array - { - return $this->collectionDeletions; - } - - /** - * Gets the currently scheduled collection inserts, updates and deletes. - * - * @phpstan-return array> - */ - public function getScheduledCollectionUpdates(): array - { - return $this->collectionUpdates; - } - - /** - * Helper method to initialize a lazy loading proxy or persistent collection. - */ - public function initializeObject(object $obj): void - { - if ($obj instanceof InternalProxy) { - $obj->__load(); - - return; - } - - if ($obj instanceof PersistentCollection) { - $obj->initialize(); - - return; - } - - if ($this->em->getConfiguration()->isNativeLazyObjectsEnabled()) { - $reflection = $this->em->getClassMetadata($obj::class)->getReflectionClass(); - $reflection->initializeLazyObject($obj); - } - } - - /** Tests if a value is an uninitialized entity. */ - public function isUninitializedObject(mixed $obj): bool - { - if ($this->em->getConfiguration()->isNativeLazyObjectsEnabled() && ! ($obj instanceof Collection) && is_object($obj)) { - return $this->em->getClassMetadata($obj::class)->reflClass->isUninitializedLazyObject($obj); - } - - return $obj instanceof InternalProxy && ! $obj->__isInitialized(); - } - - /** - * Helper method to show an object as string. - */ - private static function objToStr(object $obj): string - { - return $obj instanceof Stringable ? (string) $obj : get_debug_type($obj) . '@' . spl_object_id($obj); - } - - /** - * Marks an entity as read-only so that it will not be considered for updates during UnitOfWork#commit(). - * - * This operation cannot be undone as some parts of the UnitOfWork now keep gathering information - * on this object that might be necessary to perform a correct update. - * - * @throws ORMInvalidArgumentException - */ - public function markReadOnly(object $object): void - { - if (! $this->isInIdentityMap($object)) { - throw ORMInvalidArgumentException::readOnlyRequiresManagedEntity($object); - } - - $this->readOnlyObjects[spl_object_id($object)] = true; - } - - /** - * Is this entity read only? - * - * @throws ORMInvalidArgumentException - */ - public function isReadOnly(object $object): bool - { - return isset($this->readOnlyObjects[spl_object_id($object)]); - } - - /** - * Perform whatever processing is encapsulated here after completion of the transaction. - */ - private function afterTransactionComplete(): void - { - $this->performCallbackOnCachedPersister(static function (CachedPersister $persister): void { - $persister->afterTransactionComplete(); - }); - } - - /** - * Perform whatever processing is encapsulated here after completion of the rolled-back. - */ - private function afterTransactionRolledBack(): void - { - $this->performCallbackOnCachedPersister(static function (CachedPersister $persister): void { - $persister->afterTransactionRolledBack(); - }); - } - - /** - * Performs an action after the transaction. - */ - private function performCallbackOnCachedPersister(callable $callback): void - { - if (! $this->hasCache) { - return; - } - - foreach ([...$this->persisters, ...$this->collectionPersisters] as $persister) { - if ($persister instanceof CachedPersister) { - $callback($persister); - } - } - } - - private function dispatchOnFlushEvent(): void - { - if ($this->evm->hasListeners(Events::onFlush)) { - $this->evm->dispatchEvent(Events::onFlush, new OnFlushEventArgs($this->em)); - } - } - - private function dispatchPostFlushEvent(): void - { - if ($this->evm->hasListeners(Events::postFlush)) { - $this->evm->dispatchEvent(Events::postFlush, new PostFlushEventArgs($this->em)); - } - } - - /** - * Verifies if two given entities actually are the same based on identifier comparison - */ - private function isIdentifierEquals(object $entity1, object $entity2): bool - { - if ($entity1 === $entity2) { - return true; - } - - $class = $this->em->getClassMetadata($entity1::class); - - if ($class !== $this->em->getClassMetadata($entity2::class)) { - return false; - } - - $oid1 = spl_object_id($entity1); - $oid2 = spl_object_id($entity2); - - $id1 = $this->entityIdentifiers[$oid1] ?? $this->identifierFlattener->flattenIdentifier($class, $class->getIdentifierValues($entity1)); - $id2 = $this->entityIdentifiers[$oid2] ?? $this->identifierFlattener->flattenIdentifier($class, $class->getIdentifierValues($entity2)); - - return $id1 === $id2 || self::getIdHashByIdentifier($id1) === self::getIdHashByIdentifier($id2); - } - - /** @throws ORMInvalidArgumentException */ - private function assertThatThereAreNoUnintentionallyNonPersistedAssociations(): void - { - $entitiesNeedingCascadePersist = array_diff_key($this->nonCascadedNewDetectedEntities, $this->entityInsertions); - - $this->nonCascadedNewDetectedEntities = []; - - if ($entitiesNeedingCascadePersist) { - throw ORMInvalidArgumentException::newEntitiesFoundThroughRelationships( - array_values($entitiesNeedingCascadePersist), - ); - } - } - - /** - * This method called by hydrators, and indicates that hydrator totally completed current hydration cycle. - * Unit of work able to fire deferred events, related to loading events here. - * - * @internal should be called internally from object hydrators - */ - public function hydrationComplete(): void - { - $this->hydrationCompleteHandler->hydrationComplete(); - } - - /** @throws MappingException if the entity has more than a single identifier. */ - private function convertSingleFieldIdentifierToPHPValue(ClassMetadata $class, mixed $identifierValue): mixed - { - return $this->em->getConnection()->convertToPHPValue( - $identifierValue, - $class->getTypeOfField($class->getSingleIdentifierFieldName()), - ); - } - - /** - * Given a flat identifier, this method will produce another flat identifier, but with all - * association fields that are mapped as identifiers replaced by entity references, recursively. - * - * @param mixed[] $flatIdentifier - * - * @return array - */ - private function normalizeIdentifier(ClassMetadata $targetClass, array $flatIdentifier): array - { - $normalizedAssociatedId = []; - - foreach ($targetClass->getIdentifierFieldNames() as $name) { - if (! array_key_exists($name, $flatIdentifier)) { - continue; - } - - if (! $targetClass->isSingleValuedAssociation($name)) { - $normalizedAssociatedId[$name] = $flatIdentifier[$name]; - continue; - } - - $targetIdMetadata = $this->em->getClassMetadata($targetClass->getAssociationTargetClass($name)); - - // Note: the ORM prevents using an entity with a composite identifier as an identifier association - // therefore, reset($targetIdMetadata->identifier) is always correct - $normalizedAssociatedId[$name] = $this->em->getReference( - $targetIdMetadata->getName(), - $this->normalizeIdentifier( - $targetIdMetadata, - [(string) reset($targetIdMetadata->identifier) => $flatIdentifier[$name]], - ), - ); - } - - return $normalizedAssociatedId; - } - - /** - * Assign a post-insert generated ID to an entity - * - * This is used by EntityPersisters after they inserted entities into the database. - * It will place the assigned ID values in the entity's fields and start tracking - * the entity in the identity map. - */ - final public function assignPostInsertId(object $entity, mixed $generatedId): void - { - $class = $this->em->getClassMetadata($entity::class); - $idField = $class->getSingleIdentifierFieldName(); - $idValue = $this->convertSingleFieldIdentifierToPHPValue($class, $generatedId); - $oid = spl_object_id($entity); - - $class->propertyAccessors[$idField]->setValue($entity, $idValue); - - $this->entityIdentifiers[$oid] = [$idField => $idValue]; - $this->entityStates[$oid] = self::STATE_MANAGED; - $this->originalEntityData[$oid][$idField] = $idValue; - - $this->addToIdentityMap($entity); - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Utility/HierarchyDiscriminatorResolver.php b/projects/priceservice/vendor/doctrine/orm/src/Utility/HierarchyDiscriminatorResolver.php deleted file mode 100644 index 0949f7b..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Utility/HierarchyDiscriminatorResolver.php +++ /dev/null @@ -1,44 +0,0 @@ - - */ - public static function resolveDiscriminatorsForClass( - ClassMetadata $rootClassMetadata, - EntityManagerInterface $entityManager, - ): array { - $hierarchyClasses = $rootClassMetadata->subClasses; - $hierarchyClasses[] = $rootClassMetadata->name; - - $discriminators = []; - - foreach ($hierarchyClasses as $class) { - $currentMetadata = $entityManager->getClassMetadata($class); - $currentDiscriminator = $currentMetadata->discriminatorValue; - - if ($currentDiscriminator !== null) { - $discriminators[$currentDiscriminator] = null; - } - } - - return $discriminators; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Utility/IdentifierFlattener.php b/projects/priceservice/vendor/doctrine/orm/src/Utility/IdentifierFlattener.php deleted file mode 100644 index 2f16e56..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Utility/IdentifierFlattener.php +++ /dev/null @@ -1,83 +0,0 @@ - - */ - public function flattenIdentifier(ClassMetadata $class, array $id): array - { - $flatId = []; - - foreach ($class->identifier as $field) { - if (isset($class->associationMappings[$field]) && isset($id[$field]) && is_a($id[$field], $class->associationMappings[$field]->targetEntity)) { - $targetClassMetadata = $this->metadataFactory->getMetadataFor( - $class->associationMappings[$field]->targetEntity, - ); - assert($targetClassMetadata instanceof ClassMetadata); - - if ($this->unitOfWork->isInIdentityMap($id[$field])) { - $associatedId = $this->flattenIdentifier($targetClassMetadata, $this->unitOfWork->getEntityIdentifier($id[$field])); - } else { - $associatedId = $this->flattenIdentifier($targetClassMetadata, $targetClassMetadata->getIdentifierValues($id[$field])); - } - - $flatId[$field] = implode(' ', $associatedId); - } elseif (isset($class->associationMappings[$field])) { - assert($class->associationMappings[$field]->isToOneOwningSide()); - $associatedId = []; - - foreach ($class->associationMappings[$field]->joinColumns as $joinColumn) { - $associatedId[] = $id[$joinColumn->name]; - } - - $flatId[$field] = implode(' ', $associatedId); - } else { - if ($id[$field] instanceof BackedEnum) { - $flatId[$field] = $id[$field]->value; - } else { - $flatId[$field] = $id[$field]; - } - } - } - - return $flatId; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Utility/LockSqlHelper.php b/projects/priceservice/vendor/doctrine/orm/src/Utility/LockSqlHelper.php deleted file mode 100644 index 7d135eb..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Utility/LockSqlHelper.php +++ /dev/null @@ -1,35 +0,0 @@ - 'LOCK IN SHARE MODE', - $platform instanceof PostgreSQLPlatform => 'FOR SHARE', - default => $this->getWriteLockSQL($platform), - }; - } - - private function getWriteLockSQL(AbstractPlatform $platform): string - { - return match (true) { - $platform instanceof DB2Platform => 'WITH RR USE AND KEEP UPDATE LOCKS', - $platform instanceof SQLitePlatform, - $platform instanceof SQLServerPlatform => '', - default => 'FOR UPDATE', - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/orm/src/Utility/PersisterHelper.php b/projects/priceservice/vendor/doctrine/orm/src/Utility/PersisterHelper.php deleted file mode 100644 index 76e9242..0000000 --- a/projects/priceservice/vendor/doctrine/orm/src/Utility/PersisterHelper.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * @throws QueryException - */ - public static function getTypeOfField(string $fieldName, ClassMetadata $class, EntityManagerInterface $em): array - { - if (isset($class->fieldMappings[$fieldName])) { - return [$class->fieldMappings[$fieldName]->type]; - } - - if (! isset($class->associationMappings[$fieldName])) { - return []; - } - - $assoc = $class->associationMappings[$fieldName]; - - if (! $assoc->isOwningSide()) { - return self::getTypeOfField($assoc->mappedBy, $em->getClassMetadata($assoc->targetEntity), $em); - } - - if ($assoc->isManyToManyOwningSide()) { - $joinData = $assoc->joinTable; - } else { - $joinData = $assoc; - } - - $types = []; - $targetClass = $em->getClassMetadata($assoc->targetEntity); - - foreach ($joinData->joinColumns as $joinColumn) { - $types[] = self::getTypeOfColumn($joinColumn->referencedColumnName, $targetClass, $em); - } - - return $types; - } - - /** @throws RuntimeException */ - public static function getTypeOfColumn(string $columnName, ClassMetadata $class, EntityManagerInterface $em): string - { - if (isset($class->fieldNames[$columnName])) { - $fieldName = $class->fieldNames[$columnName]; - - if (isset($class->fieldMappings[$fieldName])) { - return $class->fieldMappings[$fieldName]->type; - } - } - - // iterate over to-one association mappings - foreach ($class->associationMappings as $assoc) { - if (! $assoc->isToOneOwningSide()) { - continue; - } - - foreach ($assoc->joinColumns as $joinColumn) { - if ($joinColumn->name === $columnName) { - $targetColumnName = $joinColumn->referencedColumnName; - $targetClass = $em->getClassMetadata($assoc->targetEntity); - - return self::getTypeOfColumn($targetColumnName, $targetClass, $em); - } - } - } - - // iterate over to-many association mappings - foreach ($class->associationMappings as $assoc) { - if (! $assoc->isManyToManyOwningSide()) { - continue; - } - - foreach ($assoc->joinTable->joinColumns as $joinColumn) { - if ($joinColumn->name === $columnName) { - $targetColumnName = $joinColumn->referencedColumnName; - $targetClass = $em->getClassMetadata($assoc->targetEntity); - - return self::getTypeOfColumn($targetColumnName, $targetClass, $em); - } - } - } - - throw new RuntimeException(sprintf( - 'Could not resolve type of column "%s" of class "%s"', - $columnName, - $class->getName(), - )); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/LICENSE b/projects/priceservice/vendor/doctrine/persistence/LICENSE deleted file mode 100644 index 8c38cc1..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2015 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/persistence/README.md b/projects/priceservice/vendor/doctrine/persistence/README.md deleted file mode 100644 index 42ca74d..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Doctrine Persistence - -[![GitHub Actions][GA 3.4 image]][GA 3.4] -[![Code Coverage][Coverage 3.4 image]][CodeCov 3.4] - -The Doctrine Persistence project is a library that provides common abstractions for object mapper persistence. - -## More resources: - -* [Website](https://www.doctrine-project.org/) -* [Documentation](https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/index.html) -* [Downloads](https://github.com/doctrine/persistence/releases) - - [Coverage 3.4 image]: https://codecov.io/gh/doctrine/persistence/branch/3.4.x/graph/badge.svg - [CodeCov 3.4]: https://codecov.io/gh/doctrine/persistence/branch/3.4.x - [GA 3.4 image]: https://github.com/doctrine/persistence/actions/workflows/continuous-integration.yml/badge.svg?branch=3.4.x - [GA 3.4]: https://github.com/doctrine/persistence/actions/workflows/continuous-integration.yml?branch=3.4.x diff --git a/projects/priceservice/vendor/doctrine/persistence/UPGRADE.md b/projects/priceservice/vendor/doctrine/persistence/UPGRADE.md deleted file mode 100644 index 5bf1ef0..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/UPGRADE.md +++ /dev/null @@ -1,195 +0,0 @@ -Note about upgrading: Doctrine uses static and runtime mechanisms to raise -awareness about deprecated code. - -- Use of `@deprecated` docblock that is detected by IDEs (like PHPStorm) or - Static Analysis tools (like Psalm, phpstan) -- Use of our low-overhead runtime deprecation API, details: - https://github.com/doctrine/deprecations/ - -# Upgrade to 4.0 - -## BC Break: Removed `StaticReflectionService` - -The class `Doctrine\Persistence\Mapping\StaticReflectionService` is removed -without replacement. - -## BC Break: Narrowed `ReflectionService::getClass()` return type - -The return type of `ReflectionService::getClass()` has been narrowed so that -`null` is no longer a valid return value. - -## BC Break: Added `ObjectManager::isUninitializedObject()` - -Classes implementing `Doctrine\Persistence\ObjectManager` must implement this -new method. - -## BC Break: Added type declarations - -The code base is now fully typed, meaning properties, parameters and return -type declarations have been added to all types. - -## BC Break: Dropped support for Common proxies - -Proxy objects implementing the `Doctrine\Common\Proxy\Proxy` interface are not -supported anymore. Implement `Doctrine\Persistence\Proxy` instead. - -## BC Break: Removed deprecated ReflectionProperty overrides - -Deprecated classes have been removed: - -- `Doctrine\Persistence\Reflection\RuntimePublicReflectionProperty` -- `Doctrine\Persistence\Reflection\TypedNoDefaultRuntimePublicReflectionProperty` - -# Upgrade to 3.4 - -## Deprecated `StaticReflectionService` - -The class `Doctrine\Persistence\Mapping\StaticReflectionService` is deprecated -without replacement. - -# Upgrade to 3.3 - -## Added method `ObjectManager::isUninitializedObject()` - -Classes implementing `Doctrine\Persistence\ObjectManager` should implement the new -method. This method will be added to the interface in 4.0. - -# Upgrade to 3.1 - -## Deprecated `RuntimePublicReflectionProperty` - -Use `RuntimeReflectionProperty` instead. - -# Upgrade to 3.0 - -## Removed `OnClearEventArgs::clearsAllEntities()` and `OnClearEventArgs::getEntityClass()` - -These methods only make sense when partially clearing the object manager, which -is no longer possible. -The second argument of the constructor of `OnClearEventArgs` is removed as well. - -## BC Break: removed `ObjectManagerAware` - -Implement active record style functionality directly in your application, by -using a `postLoad` event. - -## BC Break: removed `AnnotationDriver` - -Use `ColocatedMappingDriver` instead. - -## BC Break: Removed `MappingException::pathRequired()` - -Use `MappingException::pathRequiredForDriver()` instead. - -## BC Break: removed `LifecycleEventArgs::getEntity()` - -Use `LifecycleEventArgs::getObject()` instead. - -## BC Break: removed support for short namespace aliases - -- `AbstractClassMetadataFactory::getFqcnFromAlias()` is removed. -- `ClassMetadataFactory` methods now require their `$className` argument to be an -actual FQCN. - -## BC Break: removed `ObjectManager::merge()` - -`ObjectManagerDecorator::merge()` is removed without replacement. - -## BC Break: removed support for `doctrine/cache` - -Removed support for using doctrine/cache for metadata caching. The -`setCacheDriver` and `getCacheDriver` methods have been removed from -`Doctrine\Persistence\Mapping\AbstractMetadata`. Please use `getCache` and -`setCache` with a PSR-6 implementation instead. - -## BC Break: changed signatures - -`$objectName` has been dropped from the signature of `ObjectManager::clear()`. - -```diff -- public function clear($objectName = null) -+ public function clear(): void -``` - -Also, native parameter type declarations have been added on all public APIs. -Native return type declarations have not been added so that it is possible to -implement types compatible with both 2.x and 3.x. - -## BC Break: Removed `PersistentObject` - -Please implement this functionality directly in your application if you want -ActiveRecord style functionality. - -# Upgrade to 2.5 - -## Deprecated `OnClearEventArgs::clearsAllEntities()` and `OnClearEventArgs::getEntityClass()` - -These methods only make sense when partially clearing the object manager, which -is deprecated. -Passing a second argument to the constructor of `OnClearEventArgs` is -deprecated as well. - -## Deprecated `ObjectManagerAware` - -Along with deprecating `PersistentObject`, deprecating `ObjectManagerAware` -means deprecating support for active record, which already came with a word of -warning. Please implement this directly in your application with a `postLoad` -event if you need active record style functionality. - -## Deprecated `MappingException::pathRequired()` - -`MappingException::pathRequiredForDriver()` should be used instead. - -# Upgrade to 2.4 - -## Deprecated `AnnotationDriver` - -Since attributes were introduced in PHP 8.0, annotations are deprecated. -`AnnotationDriver` is an abstract class that is used when implementing concrete -annotation drivers in dependent packages. It is deprecated in favor of using -`ColocatedMappingDriver` to implement both annotation and attribute based -drivers. This will involve implementing `isTransient()` as well as -`__construct()` and `getReader()` to retain backward compatibility. - -# Upgrade to 2.3 - -## Deprecated using short namespace alias syntax in favor of `::class` syntax. - -Before: - -```php -$objectManager->find('MyPackage:MyClass', $id); -$objectManager->createQuery('SELECT u FROM MyPackage:MyClass'); -``` - -After: - -```php -$objectManager->find(MyClass::class, $id); -$objectManager->createQuery('SELECT u FROM '. MyClass::class); -``` - -# Upgrade to 2.2 - -## Deprecated `doctrine/cache` usage for metadata caching - -The `setCacheDriver` and `getCacheDriver` methods in -`Doctrine\Persistence\Mapping\AbstractMetadata` have been deprecated. Please -use `getCache` and `setCache` with a PSR-6 implementation instead. Note that -even after switching to PSR-6, `getCacheDriver` will return a cache instance -that wraps the PSR-6 cache. Note that if you use a custom implementation of -doctrine/cache, the library may not be able to provide a forward compatibility -layer. The cache implementation MUST extend the -`Doctrine\Common\Cache\CacheProvider` class. - -# Upgrade to 1.2 - -## Deprecated `ObjectManager::merge()` and `ObjectManager::detach()` - -Please handle merge operations in your application, and use -`ObjectManager::clear()` instead. - -## Deprecated `PersistentObject` - -Please implement this functionality directly in your application if you want -ActiveRecord style functionality. diff --git a/projects/priceservice/vendor/doctrine/persistence/composer.json b/projects/priceservice/vendor/doctrine/persistence/composer.json deleted file mode 100644 index d6e35a1..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/composer.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "doctrine/persistence", - "type": "library", - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "keywords": [ - "persistence", - "object", - "mapper", - "orm", - "odm" - ], - "homepage": "https://www.doctrine-project.org/projects/persistence.html", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}, - {"name": "Marco Pivetta", "email": "ocramius@gmail.com"} - ], - "require": { - "php": "^8.1", - "doctrine/event-manager": "^1 || ^2", - "psr/cache": "^1.0 || ^2.0 || ^3.0" - }, - "require-dev": { - "phpstan/phpstan": "1.12.7", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "doctrine/coding-standard": "^12", - "phpunit/phpunit": "^9.6", - "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0" - }, - "conflict": { - "doctrine/common": "<2.10" - }, - "autoload": { - "psr-4": { - "Doctrine\\Persistence\\": "src/Persistence" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\Tests\\": "tests" - } - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, - "composer/package-versions-deprecated": true - } - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/AbstractManagerRegistry.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/AbstractManagerRegistry.php deleted file mode 100644 index 68049cc..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/AbstractManagerRegistry.php +++ /dev/null @@ -1,218 +0,0 @@ - $connections - * @param array $managers - * @phpstan-param class-string $proxyInterfaceName - */ - public function __construct( - private readonly string $name, - private array $connections, - private array $managers, - private readonly string $defaultConnection, - private readonly string $defaultManager, - private readonly string $proxyInterfaceName, - ) { - } - - /** - * Fetches/creates the given services. - * - * A service in this context is connection or a manager instance. - * - * @param string $name The name of the service. - * - * @return object The instance of the given service. - */ - abstract protected function getService(string $name): object; - - /** - * Resets the given services. - * - * A service in this context is connection or a manager instance. - * - * @param string $name The name of the service. - */ - abstract protected function resetService(string $name): void; - - /** Gets the name of the registry. */ - public function getName(): string - { - return $this->name; - } - - public function getConnection(string|null $name = null): object - { - if ($name === null) { - $name = $this->defaultConnection; - } - - if (! isset($this->connections[$name])) { - throw new InvalidArgumentException( - sprintf('Doctrine %s Connection named "%s" does not exist.', $this->name, $name), - ); - } - - return $this->getService($this->connections[$name]); - } - - /** - * {@inheritDoc} - */ - public function getConnectionNames(): array - { - return $this->connections; - } - - /** - * {@inheritDoc} - */ - public function getConnections(): array - { - $connections = []; - foreach ($this->connections as $name => $id) { - $connections[$name] = $this->getService($id); - } - - return $connections; - } - - public function getDefaultConnectionName(): string - { - return $this->defaultConnection; - } - - public function getDefaultManagerName(): string - { - return $this->defaultManager; - } - - /** - * {@inheritDoc} - * - * @throws InvalidArgumentException - */ - public function getManager(string|null $name = null): ObjectManager - { - if ($name === null) { - $name = $this->defaultManager; - } - - if (! isset($this->managers[$name])) { - throw new InvalidArgumentException( - sprintf('Doctrine %s Manager named "%s" does not exist.', $this->name, $name), - ); - } - - $service = $this->getService($this->managers[$name]); - assert($service instanceof ObjectManager); - - return $service; - } - - public function getManagerForClass(string $class): ObjectManager|null - { - $proxyClass = new ReflectionClass($class); - if ($proxyClass->isAnonymous()) { - return null; - } - - if ($proxyClass->implementsInterface($this->proxyInterfaceName)) { - $parentClass = $proxyClass->getParentClass(); - - if ($parentClass === false) { - return null; - } - - $class = $parentClass->getName(); - } - - foreach ($this->managers as $id) { - $manager = $this->getService($id); - assert($manager instanceof ObjectManager); - - if (! $manager->getMetadataFactory()->isTransient($class)) { - return $manager; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getManagerNames(): array - { - return $this->managers; - } - - /** - * {@inheritDoc} - */ - public function getManagers(): array - { - $managers = []; - - foreach ($this->managers as $name => $id) { - $manager = $this->getService($id); - assert($manager instanceof ObjectManager); - $managers[$name] = $manager; - } - - return $managers; - } - - public function getRepository( - string $persistentObject, - string|null $persistentManagerName = null, - ): ObjectRepository { - return $this - ->selectManager($persistentObject, $persistentManagerName) - ->getRepository($persistentObject); - } - - public function resetManager(string|null $name = null): ObjectManager - { - if ($name === null) { - $name = $this->defaultManager; - } - - if (! isset($this->managers[$name])) { - throw new InvalidArgumentException(sprintf('Doctrine %s Manager named "%s" does not exist.', $this->name, $name)); - } - - // force the creation of a new document manager - // if the current one is closed - $this->resetService($this->managers[$name]); - - return $this->getManager($name); - } - - /** @phpstan-param class-string $persistentObject */ - private function selectManager( - string $persistentObject, - string|null $persistentManagerName = null, - ): ObjectManager { - if ($persistentManagerName !== null) { - return $this->getManager($persistentManagerName); - } - - return $this->getManagerForClass($persistentObject) ?? $this->getManager(); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ConnectionRegistry.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ConnectionRegistry.php deleted file mode 100644 index ee1f302..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ConnectionRegistry.php +++ /dev/null @@ -1,39 +0,0 @@ - An array of Connection instances. - */ - public function getConnections(): array; - - /** - * Gets all connection names. - * - * @return array An array of connection names. - */ - public function getConnectionNames(): array; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LifecycleEventArgs.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LifecycleEventArgs.php deleted file mode 100644 index b187a11..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LifecycleEventArgs.php +++ /dev/null @@ -1,40 +0,0 @@ -object; - } - - /** - * Retrieves the associated ObjectManager. - * - * @phpstan-return TObjectManager - */ - public function getObjectManager(): ObjectManager - { - return $this->objectManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LoadClassMetadataEventArgs.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LoadClassMetadataEventArgs.php deleted file mode 100644 index 70e2bd6..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/LoadClassMetadataEventArgs.php +++ /dev/null @@ -1,48 +0,0 @@ - - * @template-covariant TObjectManager of ObjectManager - */ -class LoadClassMetadataEventArgs extends EventArgs -{ - /** - * @phpstan-param TClassMetadata $classMetadata - * @phpstan-param TObjectManager $objectManager - */ - public function __construct( - private readonly ClassMetadata $classMetadata, - private readonly ObjectManager $objectManager, - ) { - } - - /** - * Retrieves the associated ClassMetadata. - * - * @phpstan-return TClassMetadata - */ - public function getClassMetadata(): ClassMetadata - { - return $this->classMetadata; - } - - /** - * Retrieves the associated ObjectManager. - * - * @phpstan-return TObjectManager - */ - public function getObjectManager(): ObjectManager - { - return $this->objectManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/ManagerEventArgs.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/ManagerEventArgs.php deleted file mode 100644 index 72bf44e..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/ManagerEventArgs.php +++ /dev/null @@ -1,32 +0,0 @@ -objectManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/OnClearEventArgs.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/OnClearEventArgs.php deleted file mode 100644 index 7ec9552..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/OnClearEventArgs.php +++ /dev/null @@ -1,34 +0,0 @@ -objectManager; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/PreUpdateEventArgs.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/PreUpdateEventArgs.php deleted file mode 100644 index b013467..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Event/PreUpdateEventArgs.php +++ /dev/null @@ -1,89 +0,0 @@ - - */ -class PreUpdateEventArgs extends LifecycleEventArgs -{ - /** @var array> */ - private array $entityChangeSet; - - /** - * @param array> $changeSet - * @phpstan-param TObjectManager $objectManager - */ - public function __construct(object $entity, ObjectManager $objectManager, array &$changeSet) - { - parent::__construct($entity, $objectManager); - - $this->entityChangeSet = &$changeSet; - } - - /** - * Retrieves the entity changeset. - * - * @return array> - */ - public function getEntityChangeSet(): array - { - return $this->entityChangeSet; - } - - /** Checks if field has a changeset. */ - public function hasChangedField(string $field): bool - { - return isset($this->entityChangeSet[$field]); - } - - /** Gets the old value of the changeset of the changed field. */ - public function getOldValue(string $field): mixed - { - $this->assertValidField($field); - - return $this->entityChangeSet[$field][0]; - } - - /** Gets the new value of the changeset of the changed field. */ - public function getNewValue(string $field): mixed - { - $this->assertValidField($field); - - return $this->entityChangeSet[$field][1]; - } - - /** Sets the new value of this field. */ - public function setNewValue(string $field, mixed $value): void - { - $this->assertValidField($field); - - $this->entityChangeSet[$field][1] = $value; - } - - /** - * Asserts the field exists in changeset. - * - * @throws InvalidArgumentException - */ - private function assertValidField(string $field): void - { - if (! isset($this->entityChangeSet[$field])) { - throw new InvalidArgumentException(sprintf( - 'Field "%s" is not a valid field of the entity "%s" in PreUpdateEventArgs.', - $field, - $this->getObject()::class, - )); - } - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ManagerRegistry.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ManagerRegistry.php deleted file mode 100644 index 2e0a389..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ManagerRegistry.php +++ /dev/null @@ -1,82 +0,0 @@ - An array of ObjectManager instances - */ - public function getManagers(): array; - - /** - * Resets a named object manager. - * - * This method is useful when an object manager has been closed - * because of a rollbacked transaction AND when you think that - * it makes sense to get a new one to replace the closed one. - * - * Be warned that you will get a brand new object manager as - * the existing one is not useable anymore. This means that any - * other object with a dependency on this object manager will - * hold an obsolete reference. You can inject the registry instead - * to avoid this problem. - * - * @param string|null $name The object manager name (null for the default one). - */ - public function resetManager(string|null $name = null): ObjectManager; - - /** - * Gets all object manager names and associated service IDs. A service ID - * is a string that allows to obtain an object manager, typically from a - * PSR-11 container. - * - * @return array An array with object manager names as keys, - * and service IDs as values. - */ - public function getManagerNames(): array; - - /** - * Gets the ObjectRepository for a persistent object. - * - * @param string $persistentObject The name of the persistent object. - * @param string|null $persistentManagerName The object manager name (null for the default one). - * @phpstan-param class-string $persistentObject - * - * @phpstan-return ObjectRepository - * - * @template T of object - */ - public function getRepository( - string $persistentObject, - string|null $persistentManagerName = null, - ): ObjectRepository; - - /** - * Gets the object manager associated with a given class. - * - * @param class-string $class A persistent object class name. - */ - public function getManagerForClass(string $class): ObjectManager|null; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/AbstractClassMetadataFactory.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/AbstractClassMetadataFactory.php deleted file mode 100644 index b2f0573..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/AbstractClassMetadataFactory.php +++ /dev/null @@ -1,460 +0,0 @@ - - */ -abstract class AbstractClassMetadataFactory implements ClassMetadataFactory -{ - /** Salt used by specific Object Manager implementation. */ - protected string $cacheSalt = '__CLASSMETADATA__'; - - private CacheItemPoolInterface|null $cache = null; - - /** - * @var array - * @phpstan-var CMTemplate[] - */ - private array $loadedMetadata = []; - - protected bool $initialized = false; - - private ReflectionService|null $reflectionService = null; - - private ProxyClassNameResolver|null $proxyClassNameResolver = null; - - public function setCache(CacheItemPoolInterface $cache): void - { - $this->cache = $cache; - } - - final protected function getCache(): CacheItemPoolInterface|null - { - return $this->cache; - } - - /** - * Returns an array of all the loaded metadata currently in memory. - * - * @return ClassMetadata[] - * @phpstan-return CMTemplate[] - */ - public function getLoadedMetadata(): array - { - return $this->loadedMetadata; - } - - /** - * {@inheritDoc} - */ - public function getAllMetadata(): array - { - if (! $this->initialized) { - $this->initialize(); - } - - $driver = $this->getDriver(); - $metadata = []; - foreach ($driver->getAllClassNames() as $className) { - $metadata[] = $this->getMetadataFor($className); - } - - return $metadata; - } - - public function setProxyClassNameResolver(ProxyClassNameResolver $resolver): void - { - $this->proxyClassNameResolver = $resolver; - } - - /** - * Lazy initialization of this stuff, especially the metadata driver, - * since these are not needed at all when a metadata cache is active. - */ - abstract protected function initialize(): void; - - /** Returns the mapping driver implementation. */ - abstract protected function getDriver(): MappingDriver; - - /** - * Wakes up reflection after ClassMetadata gets unserialized from cache. - * - * @phpstan-param CMTemplate $class - */ - abstract protected function wakeupReflection( - ClassMetadata $class, - ReflectionService $reflService, - ): void; - - /** - * Initializes Reflection after ClassMetadata was constructed. - * - * @phpstan-param CMTemplate $class - */ - abstract protected function initializeReflection( - ClassMetadata $class, - ReflectionService $reflService, - ): void; - - /** - * Checks whether the class metadata is an entity. - * - * This method should return false for mapped superclasses or embedded classes. - * - * @phpstan-param CMTemplate $class - */ - abstract protected function isEntity(ClassMetadata $class): bool; - - /** - * Removes the prepended backslash of a class string to conform with how php outputs class names - * - * @phpstan-param class-string $className - * - * @phpstan-return class-string - */ - private function normalizeClassName(string $className): string - { - return ltrim($className, '\\'); - } - - /** - * {@inheritDoc} - * - * @throws ReflectionException - * @throws MappingException - */ - public function getMetadataFor(string $className): ClassMetadata - { - $className = $this->normalizeClassName($className); - - if (isset($this->loadedMetadata[$className])) { - return $this->loadedMetadata[$className]; - } - - if (class_exists($className, false) && (new ReflectionClass($className))->isAnonymous()) { - throw MappingException::classIsAnonymous($className); - } - - if (! class_exists($className, false) && str_contains($className, ':')) { - throw MappingException::nonExistingClass($className); - } - - $realClassName = $this->getRealClass($className); - - if (isset($this->loadedMetadata[$realClassName])) { - // We do not have the alias name in the map, include it - return $this->loadedMetadata[$className] = $this->loadedMetadata[$realClassName]; - } - - try { - if ($this->cache !== null) { - $cached = $this->cache->getItem($this->getCacheKey($realClassName))->get(); - if ($cached instanceof ClassMetadata) { - /** @phpstan-var CMTemplate $cached */ - $this->loadedMetadata[$realClassName] = $cached; - - $this->wakeupReflection($cached, $this->getReflectionService()); - } else { - $loadedMetadata = $this->loadMetadata($realClassName); - $classNames = array_combine( - array_map($this->getCacheKey(...), $loadedMetadata), - $loadedMetadata, - ); - - foreach ($this->cache->getItems(array_keys($classNames)) as $item) { - if (! isset($classNames[$item->getKey()])) { - continue; - } - - $item->set($this->loadedMetadata[$classNames[$item->getKey()]]); - $this->cache->saveDeferred($item); - } - - $this->cache->commit(); - } - } else { - $this->loadMetadata($realClassName); - } - } catch (MappingException $loadingException) { - $fallbackMetadataResponse = $this->onNotFoundMetadata($realClassName); - - if ($fallbackMetadataResponse === null) { - throw $loadingException; - } - - $this->loadedMetadata[$realClassName] = $fallbackMetadataResponse; - } - - if ($className !== $realClassName) { - // We do not have the alias name in the map, include it - $this->loadedMetadata[$className] = $this->loadedMetadata[$realClassName]; - } - - return $this->loadedMetadata[$className]; - } - - public function hasMetadataFor(string $className): bool - { - $className = $this->normalizeClassName($className); - - return isset($this->loadedMetadata[$className]); - } - - /** - * Sets the metadata descriptor for a specific class. - * - * NOTE: This is only useful in very special cases, like when generating proxy classes. - * - * @phpstan-param class-string $className - * @phpstan-param CMTemplate $class - */ - public function setMetadataFor(string $className, ClassMetadata $class): void - { - $this->loadedMetadata[$this->normalizeClassName($className)] = $class; - } - - /** - * Gets an array of parent classes for the given entity class. - * - * @phpstan-param class-string $name - * - * @return string[] - * @phpstan-return list - */ - protected function getParentClasses(string $name): array - { - // Collect parent classes, ignoring transient (not-mapped) classes. - $parentClasses = []; - - foreach (array_reverse($this->getReflectionService()->getParentClasses($name)) as $parentClass) { - if ($this->getDriver()->isTransient($parentClass)) { - continue; - } - - $parentClasses[] = $parentClass; - } - - return $parentClasses; - } - - /** - * Loads the metadata of the class in question and all it's ancestors whose metadata - * is still not loaded. - * - * Important: The class $name does not necessarily exist at this point here. - * Scenarios in a code-generation setup might have access to XML/YAML - * Mapping files without the actual PHP code existing here. That is why the - * {@see \Doctrine\Persistence\Mapping\ReflectionService} interface - * should be used for reflection. - * - * @param string $name The name of the class for which the metadata should get loaded. - * @phpstan-param class-string $name - * - * @return array - * @phpstan-return list - */ - protected function loadMetadata(string $name): array - { - if (! $this->initialized) { - $this->initialize(); - } - - $loaded = []; - - $parentClasses = $this->getParentClasses($name); - $parentClasses[] = $name; - - // Move down the hierarchy of parent classes, starting from the topmost class - $parent = null; - $rootEntityFound = false; - $visited = []; - $reflService = $this->getReflectionService(); - - foreach ($parentClasses as $className) { - if (isset($this->loadedMetadata[$className])) { - $parent = $this->loadedMetadata[$className]; - - if ($this->isEntity($parent)) { - $rootEntityFound = true; - - array_unshift($visited, $className); - } - - continue; - } - - $class = $this->newClassMetadataInstance($className); - $this->initializeReflection($class, $reflService); - - $this->doLoadMetadata($class, $parent, $rootEntityFound, $visited); - - $this->loadedMetadata[$className] = $class; - - $parent = $class; - - if ($this->isEntity($class)) { - $rootEntityFound = true; - - array_unshift($visited, $className); - } - - $this->wakeupReflection($class, $reflService); - - $loaded[] = $className; - } - - return $loaded; - } - - /** - * Provides a fallback hook for loading metadata when loading failed due to reflection/mapping exceptions - * - * Override this method to implement a fallback strategy for failed metadata loading - * - * @phpstan-return CMTemplate|null - */ - protected function onNotFoundMetadata(string $className): ClassMetadata|null - { - return null; - } - - /** - * Actually loads the metadata from the underlying metadata. - * - * @param bool $rootEntityFound True when there is another entity (non-mapped superclass) class above the current class in the PHP class hierarchy. - * @param list $nonSuperclassParents All parent class names that are not marked as mapped superclasses, with the direct parent class being the first and the root entity class the last element. - * @phpstan-param CMTemplate $class - * @phpstan-param CMTemplate|null $parent - */ - abstract protected function doLoadMetadata( - ClassMetadata $class, - ClassMetadata|null $parent, - bool $rootEntityFound, - array $nonSuperclassParents, - ): void; - - /** - * Creates a new ClassMetadata instance for the given class name. - * - * @phpstan-param class-string $className - * - * @return ClassMetadata - * @phpstan-return CMTemplate - * - * @template T of object - */ - abstract protected function newClassMetadataInstance(string $className): ClassMetadata; - - public function isTransient(string $className): bool - { - if (! $this->initialized) { - $this->initialize(); - } - - if (class_exists($className, false) && (new ReflectionClass($className))->isAnonymous()) { - return false; - } - - if (! class_exists($className, false) && str_contains($className, ':')) { - throw MappingException::nonExistingClass($className); - } - - /** @phpstan-var class-string $className */ - return $this->getDriver()->isTransient($className); - } - - /** Sets the reflectionService. */ - public function setReflectionService(ReflectionService $reflectionService): void - { - $this->reflectionService = $reflectionService; - } - - /** Gets the reflection service associated with this metadata factory. */ - public function getReflectionService(): ReflectionService - { - if ($this->reflectionService === null) { - $this->reflectionService = new RuntimeReflectionService(); - } - - return $this->reflectionService; - } - - protected function getCacheKey(string $realClassName): string - { - return str_replace('\\', '__', $realClassName) . $this->cacheSalt; - } - - /** - * Gets the real class name of a class name that could be a proxy. - * - * @phpstan-param class-string>|class-string $class - * - * @phpstan-return class-string - * - * @template T of object - */ - private function getRealClass(string $class): string - { - if ($this->proxyClassNameResolver === null) { - $this->createDefaultProxyClassNameResolver(); - } - - assert($this->proxyClassNameResolver !== null); - - return $this->proxyClassNameResolver->resolveClassName($class); - } - - private function createDefaultProxyClassNameResolver(): void - { - $this->proxyClassNameResolver = new class implements ProxyClassNameResolver { - /** - * @phpstan-param class-string>|class-string $className - * - * @phpstan-return class-string - * - * @template T of object - */ - public function resolveClassName(string $className): string - { - $pos = strrpos($className, '\\' . Proxy::MARKER . '\\'); - - if ($pos === false) { - /** @phpstan-var class-string */ - return $className; - } - - /** @phpstan-var class-string */ - return substr($className, $pos + Proxy::MARKER_LENGTH + 2); - } - }; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadata.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadata.php deleted file mode 100644 index 1d0345c..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadata.php +++ /dev/null @@ -1,109 +0,0 @@ - - */ - public function getName(): string; - - /** - * Gets the mapped identifier field name. - * - * The returned structure is an array of the identifier field names. - * - * @return array - * @phpstan-return list - */ - public function getIdentifier(): array; - - /** - * Gets the ReflectionClass instance for this mapped class. - * - * @return ReflectionClass - */ - public function getReflectionClass(): ReflectionClass; - - /** Checks if the given field name is a mapped identifier for this class. */ - public function isIdentifier(string $fieldName): bool; - - /** Checks if the given field is a mapped property for this class. */ - public function hasField(string $fieldName): bool; - - /** Checks if the given field is a mapped association for this class. */ - public function hasAssociation(string $fieldName): bool; - - /** Checks if the given field is a mapped single valued association for this class. */ - public function isSingleValuedAssociation(string $fieldName): bool; - - /** Checks if the given field is a mapped collection valued association for this class. */ - public function isCollectionValuedAssociation(string $fieldName): bool; - - /** - * A numerically indexed list of field names of this persistent class. - * - * This array includes identifier fields if present on this class. - * - * @return array - */ - public function getFieldNames(): array; - - /** - * Returns an array of identifier field names numerically indexed. - * - * @return array - */ - public function getIdentifierFieldNames(): array; - - /** - * Returns a numerically indexed list of association names of this persistent class. - * - * This array includes identifier associations if present on this class. - * - * @return array - */ - public function getAssociationNames(): array; - - /** - * Returns a type name of this field. - * - * This type names can be implementation specific but should at least include the php types: - * integer, string, boolean, float/double, datetime. - */ - public function getTypeOfField(string $fieldName): string|null; - - /** - * Returns the target class name of the given association. - * - * @phpstan-return class-string|null - */ - public function getAssociationTargetClass(string $assocName): string|null; - - /** Checks if the association is the inverse side of a bidirectional association. */ - public function isAssociationInverseSide(string $assocName): bool; - - /** Returns the target field of the owning side of the association. */ - public function getAssociationMappedByTargetField(string $assocName): string; - - /** - * Returns the identifier of this object as an array with field name as key. - * - * Has to return an empty array if no identifier isset. - * - * @return array - */ - public function getIdentifierValues(object $object): array; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadataFactory.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadataFactory.php deleted file mode 100644 index 68e4595..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ClassMetadataFactory.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ - public function getAllMetadata(): array; - - /** - * Gets the class metadata descriptor for a class. - * - * @param class-string $className The name of the class. - * - * @phpstan-return T - */ - public function getMetadataFor(string $className): ClassMetadata; - - /** - * Checks whether the factory has the metadata for a class loaded already. - * - * @param class-string $className - * - * @return bool TRUE if the metadata of the class in question is already loaded, FALSE otherwise. - */ - public function hasMetadataFor(string $className): bool; - - /** - * Sets the metadata descriptor for a specific class. - * - * @param class-string $className - * @phpstan-param T $class - */ - public function setMetadataFor(string $className, ClassMetadata $class): void; - - /** - * Returns whether the class with the specified name should have its metadata loaded. - * This is only the case if it is either mapped directly or as a MappedSuperclass. - * - * @phpstan-param class-string $className - */ - public function isTransient(string $className): bool; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/ColocatedMappingDriver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/ColocatedMappingDriver.php deleted file mode 100644 index 2e95569..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/ColocatedMappingDriver.php +++ /dev/null @@ -1,194 +0,0 @@ - - */ - protected array $paths = []; - - /** - * The paths excluded from path where to look for mapping files. - * - * @var array - */ - protected array $excludePaths = []; - - /** The file extension of mapping documents. */ - protected string $fileExtension = '.php'; - - /** - * Cache for getAllClassNames(). - * - * @var array|null - * @phpstan-var list|null - */ - protected array|null $classNames = null; - - /** - * Appends lookup paths to metadata driver. - * - * @param array $paths - */ - public function addPaths(array $paths): void - { - $this->paths = array_unique(array_merge($this->paths, $paths)); - } - - /** - * Retrieves the defined metadata lookup paths. - * - * @return array - */ - public function getPaths(): array - { - return $this->paths; - } - - /** - * Append exclude lookup paths to metadata driver. - * - * @param string[] $paths - */ - public function addExcludePaths(array $paths): void - { - $this->excludePaths = array_unique(array_merge($this->excludePaths, $paths)); - } - - /** - * Retrieve the defined metadata lookup exclude paths. - * - * @return array - */ - public function getExcludePaths(): array - { - return $this->excludePaths; - } - - /** Gets the file extension used to look for mapping files under. */ - public function getFileExtension(): string - { - return $this->fileExtension; - } - - /** Sets the file extension used to look for mapping files under. */ - public function setFileExtension(string $fileExtension): void - { - $this->fileExtension = $fileExtension; - } - - /** - * {@inheritDoc} - * - * Returns whether the class with the specified name is transient. Only non-transient - * classes, that is entities and mapped superclasses, should have their metadata loaded. - * - * @phpstan-param class-string $className - */ - abstract public function isTransient(string $className): bool; - - /** - * Gets the names of all mapped classes known to this driver. - * - * @return string[] The names of all mapped classes known to this driver. - * @phpstan-return list - */ - public function getAllClassNames(): array - { - if ($this->classNames !== null) { - return $this->classNames; - } - - if ($this->paths === []) { - throw MappingException::pathRequiredForDriver(static::class); - } - - $classes = []; - $includedFiles = []; - - foreach ($this->paths as $path) { - if (! is_dir($path)) { - throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path); - } - - $iterator = new RegexIterator( - new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), - RecursiveIteratorIterator::LEAVES_ONLY, - ), - '/^.+' . preg_quote($this->fileExtension) . '$/i', - RecursiveRegexIterator::GET_MATCH, - ); - - foreach ($iterator as $file) { - $sourceFile = $file[0]; - - if (preg_match('(^phar:)i', $sourceFile) === 0) { - $sourceFile = realpath($sourceFile); - } - - foreach ($this->excludePaths as $excludePath) { - $realExcludePath = realpath($excludePath); - assert($realExcludePath !== false); - $exclude = str_replace('\\', '/', $realExcludePath); - $current = str_replace('\\', '/', $sourceFile); - - if (str_contains($current, $exclude)) { - continue 2; - } - } - - require_once $sourceFile; - - $includedFiles[] = $sourceFile; - } - } - - $declared = get_declared_classes(); - - foreach ($declared as $className) { - $rc = new ReflectionClass($className); - - $sourceFile = $rc->getFileName(); - - if (! in_array($sourceFile, $includedFiles, true) || $this->isTransient($className)) { - continue; - } - - $classes[] = $className; - } - - $this->classNames = $classes; - - return $classes; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/DefaultFileLocator.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/DefaultFileLocator.php deleted file mode 100644 index ef046f4..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/DefaultFileLocator.php +++ /dev/null @@ -1,156 +0,0 @@ - - */ - protected array $paths = []; - - /** The file extension of mapping documents. */ - protected string|null $fileExtension; - - /** - * Initializes a new FileDriver that looks in the given path(s) for mapping - * documents and operates in the specified operating mode. - * - * @param string|array $paths One or multiple paths where mapping documents - * can be found. - * @param string|null $fileExtension The file extension of mapping documents, - * usually prefixed with a dot. - */ - public function __construct(string|array $paths, string|null $fileExtension = null) - { - $this->addPaths((array) $paths); - $this->fileExtension = $fileExtension; - } - - /** - * Appends lookup paths to metadata driver. - * - * @param array $paths - */ - public function addPaths(array $paths): void - { - $this->paths = array_unique([...$this->paths, ...$paths]); - } - - /** - * Retrieves the defined metadata lookup paths. - * - * @return array - */ - public function getPaths(): array - { - return $this->paths; - } - - /** Gets the file extension used to look for mapping files under. */ - public function getFileExtension(): string|null - { - return $this->fileExtension; - } - - /** - * Sets the file extension used to look for mapping files under. - * - * @param string|null $fileExtension The file extension to set. - */ - public function setFileExtension(string|null $fileExtension): void - { - $this->fileExtension = $fileExtension; - } - - public function findMappingFile(string $className): string - { - $fileName = str_replace('\\', '.', $className) . $this->fileExtension; - - // Check whether file exists - foreach ($this->paths as $path) { - if (is_file($path . DIRECTORY_SEPARATOR . $fileName)) { - return $path . DIRECTORY_SEPARATOR . $fileName; - } - } - - throw MappingException::mappingFileNotFound($className, $fileName); - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames(string $globalBasename): array - { - if ($this->paths === []) { - return []; - } - - $classes = []; - - foreach ($this->paths as $path) { - if (! is_dir($path)) { - throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path); - } - - $iterator = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path), - RecursiveIteratorIterator::LEAVES_ONLY, - ); - - foreach ($iterator as $file) { - $fileName = $file->getBasename($this->fileExtension); - - if ($fileName === $file->getBasename() || $fileName === $globalBasename) { - continue; - } - - // NOTE: All files found here means classes are not transient! - - assert(is_string($fileName)); - /** @phpstan-var class-string */ - $class = str_replace('.', '\\', $fileName); - $classes[] = $class; - } - } - - return $classes; - } - - public function fileExists(string $className): bool - { - $fileName = str_replace('\\', '.', $className) . $this->fileExtension; - - // Check whether file exists - foreach ($this->paths as $path) { - if (is_file($path . DIRECTORY_SEPARATOR . $fileName)) { - return true; - } - } - - return false; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileDriver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileDriver.php deleted file mode 100644 index f31ec12..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileDriver.php +++ /dev/null @@ -1,182 +0,0 @@ -|null - */ - protected array|null $classCache = null; - protected string $globalBasename = ''; - - /** - * Initializes a new FileDriver that looks in the given path(s) for mapping - * documents and operates in the specified operating mode. - * - * @param string|array|FileLocator $locator A FileLocator or one/multiple paths - * where mapping documents can be found. - */ - public function __construct(string|array|FileLocator $locator, string|null $fileExtension = null) - { - if ($locator instanceof FileLocator) { - $this->locator = $locator; - } else { - $this->locator = new DefaultFileLocator((array) $locator, $fileExtension); - } - } - - /** Sets the global basename. */ - public function setGlobalBasename(string $file): void - { - $this->globalBasename = $file; - } - - /** Retrieves the global basename. */ - public function getGlobalBasename(): string - { - return $this->globalBasename; - } - - /** - * Gets the element of schema meta data for the class from the mapping file. - * This will lazily load the mapping file if it is not loaded yet. - * - * @phpstan-param class-string $className - * - * @return T The element of schema meta data. - * - * @throws MappingException - */ - public function getElement(string $className): mixed - { - if ($this->classCache === null) { - $this->initialize(); - } - - if (isset($this->classCache[$className])) { - return $this->classCache[$className]; - } - - $result = $this->loadMappingFile($this->locator->findMappingFile($className)); - - if (! isset($result[$className])) { - throw MappingException::invalidMappingFile( - $className, - str_replace('\\', '.', $className) . $this->locator->getFileExtension(), - ); - } - - $this->classCache[$className] = $result[$className]; - - return $result[$className]; - } - - public function isTransient(string $className): bool - { - if ($this->classCache === null) { - $this->initialize(); - } - - if (isset($this->classCache[$className])) { - return false; - } - - return ! $this->locator->fileExists($className); - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames(): array - { - if ($this->classCache === null) { - $this->initialize(); - } - - if ($this->classCache === []) { - return $this->locator->getAllClassNames($this->globalBasename); - } - - /** @phpstan-var array> $classCache */ - $classCache = $this->classCache; - - /** @var list $keys */ - $keys = array_keys($classCache); - - return array_values(array_unique([...$keys, ...$this->locator->getAllClassNames($this->globalBasename)])); - } - - /** - * Loads a mapping file with the given name and returns a map - * from class/entity names to their corresponding file driver elements. - * - * @param string $file The mapping file to load. - * - * @return mixed[] - * @phpstan-return array - */ - abstract protected function loadMappingFile(string $file): array; - - /** - * Initializes the class cache from all the global files. - * - * Using this feature adds a substantial performance hit to file drivers as - * more metadata has to be loaded into memory than might actually be - * necessary. This may not be relevant to scenarios where caching of - * metadata is in place, however hits very hard in scenarios where no - * caching is used. - */ - protected function initialize(): void - { - $this->classCache = []; - if ($this->globalBasename === '') { - return; - } - - foreach ($this->locator->getPaths() as $path) { - $file = $path . '/' . $this->globalBasename . $this->locator->getFileExtension(); - if (! is_file($file)) { - continue; - } - - $this->classCache = [...$this->classCache, ...$this->loadMappingFile($file)]; - } - } - - /** Retrieves the locator used to discover mapping files by className. */ - public function getLocator(): FileLocator - { - return $this->locator; - } - - /** Sets the locator used to discover mapping files by className. */ - public function setLocator(FileLocator $locator): void - { - $this->locator = $locator; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileLocator.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileLocator.php deleted file mode 100644 index b438a75..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/FileLocator.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @phpstan-return list - */ - public function getAllClassNames(string $globalBasename): array; - - /** Checks if a file can be found for this class name. */ - public function fileExists(string $className): bool; - - /** - * Gets all the paths that this file locator looks for mapping files. - * - * @return array - */ - public function getPaths(): array; - - /** Gets the file extension that mapping files are suffixed with. */ - public function getFileExtension(): string|null; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriver.php deleted file mode 100644 index 55b2086..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriver.php +++ /dev/null @@ -1,39 +0,0 @@ - $className - * @phpstan-param ClassMetadata $metadata - * - * @template T of object - */ - public function loadMetadataForClass(string $className, ClassMetadata $metadata): void; - - /** - * Gets the names of all mapped classes known to this driver. - * - * @return array The names of all mapped classes known to this driver. - * @phpstan-return list - */ - public function getAllClassNames(): array; - - /** - * Returns whether the class with the specified name should have its metadata loaded. - * This is only the case if it is either mapped as an Entity or a MappedSuperclass. - * - * @phpstan-param class-string $className - */ - public function isTransient(string $className): bool; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriverChain.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriverChain.php deleted file mode 100644 index 6bd1a7c..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/MappingDriverChain.php +++ /dev/null @@ -1,122 +0,0 @@ - */ - private array $drivers = []; - - /** Gets the default driver. */ - public function getDefaultDriver(): MappingDriver|null - { - return $this->defaultDriver; - } - - /** Set the default driver. */ - public function setDefaultDriver(MappingDriver $driver): void - { - $this->defaultDriver = $driver; - } - - /** Adds a nested driver. */ - public function addDriver(MappingDriver $nestedDriver, string $namespace): void - { - $this->drivers[$namespace] = $nestedDriver; - } - - /** - * Gets the array of nested drivers. - * - * @return array $drivers - */ - public function getDrivers(): array - { - return $this->drivers; - } - - public function loadMetadataForClass(string $className, ClassMetadata $metadata): void - { - foreach ($this->drivers as $namespace => $driver) { - if (str_starts_with($className, $namespace)) { - $driver->loadMetadataForClass($className, $metadata); - - return; - } - } - - if ($this->defaultDriver !== null) { - $this->defaultDriver->loadMetadataForClass($className, $metadata); - - return; - } - - throw MappingException::classNotFoundInNamespaces($className, array_keys($this->drivers)); - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames(): array - { - $classNames = []; - $driverClasses = []; - - foreach ($this->drivers as $namespace => $driver) { - $oid = spl_object_hash($driver); - - if (! isset($driverClasses[$oid])) { - $driverClasses[$oid] = $driver->getAllClassNames(); - } - - foreach ($driverClasses[$oid] as $className) { - if (! str_starts_with($className, $namespace)) { - continue; - } - - $classNames[$className] = true; - } - } - - if ($this->defaultDriver !== null) { - foreach ($this->defaultDriver->getAllClassNames() as $className) { - $classNames[$className] = true; - } - } - - return array_keys($classNames); - } - - public function isTransient(string $className): bool - { - foreach ($this->drivers as $namespace => $driver) { - if (str_starts_with($className, $namespace)) { - return $driver->isTransient($className); - } - } - - if ($this->defaultDriver !== null) { - return $this->defaultDriver->isTransient($className); - } - - return true; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php deleted file mode 100644 index 10061b8..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/PHPDriver.php +++ /dev/null @@ -1,43 +0,0 @@ -> - */ -class PHPDriver extends FileDriver -{ - /** @phpstan-var ClassMetadata */ - protected ClassMetadata $metadata; - - /** @param string|array|FileLocator $locator */ - public function __construct(string|array|FileLocator $locator) - { - parent::__construct($locator, '.php'); - } - - public function loadMetadataForClass(string $className, ClassMetadata $metadata): void - { - $this->metadata = $metadata; - - $this->loadMappingFile($this->locator->findMappingFile($className)); - } - - /** - * {@inheritDoc} - */ - protected function loadMappingFile(string $file): array - { - $metadata = $this->metadata; - include $file; - - return [$metadata->getName() => $metadata]; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/StaticPHPDriver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/StaticPHPDriver.php deleted file mode 100644 index 4bf1ee4..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/StaticPHPDriver.php +++ /dev/null @@ -1,121 +0,0 @@ - - */ - private array $paths = []; - - /** - * Map of all class names. - * - * @var array - * @phpstan-var list - */ - private array|null $classNames = null; - - /** @param array|string $paths */ - public function __construct(array|string $paths) - { - $this->addPaths((array) $paths); - } - - /** @param array $paths */ - public function addPaths(array $paths): void - { - $this->paths = array_unique([...$this->paths, ...$paths]); - } - - public function loadMetadataForClass(string $className, ClassMetadata $metadata): void - { - $className::loadMetadata($metadata); - } - - /** - * {@inheritDoc} - * - * @todo Same code exists in ColocatedMappingDriver, should we re-use it - * somehow or not worry about it? - */ - public function getAllClassNames(): array - { - if ($this->classNames !== null) { - return $this->classNames; - } - - if ($this->paths === []) { - throw MappingException::pathRequiredForDriver(static::class); - } - - $classes = []; - $includedFiles = []; - - foreach ($this->paths as $path) { - if (! is_dir($path)) { - throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path); - } - - $iterator = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path), - RecursiveIteratorIterator::LEAVES_ONLY, - ); - - foreach ($iterator as $file) { - if ($file->getBasename('.php') === $file->getBasename()) { - continue; - } - - $sourceFile = realpath($file->getPathName()); - require_once $sourceFile; - $includedFiles[] = $sourceFile; - } - } - - $declared = get_declared_classes(); - - foreach ($declared as $className) { - $rc = new ReflectionClass($className); - - $sourceFile = $rc->getFileName(); - - if (! in_array($sourceFile, $includedFiles, true) || $this->isTransient($className)) { - continue; - } - - $classes[] = $className; - } - - $this->classNames = $classes; - - return $classes; - } - - public function isTransient(string $className): bool - { - return ! method_exists($className, 'loadMetadata'); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/SymfonyFileLocator.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/SymfonyFileLocator.php deleted file mode 100644 index 17d2944..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/Driver/SymfonyFileLocator.php +++ /dev/null @@ -1,245 +0,0 @@ - - */ - protected array $paths = []; - - /** - * A map of mapping directory path to namespace prefix used to expand class shortnames. - * - * @var array - */ - protected array $prefixes = []; - - /** File extension that is searched for. */ - protected string|null $fileExtension; - - /** - * Represents PHP namespace delimiters when looking for files - */ - private readonly string $nsSeparator; - - /** - * @param array $prefixes - * @param string $nsSeparator String which would be used when converting FQCN - * to filename and vice versa. Should not be empty - */ - public function __construct( - array $prefixes, - string $fileExtension = '', - string $nsSeparator = '.', - ) { - $this->addNamespacePrefixes($prefixes); - $this->fileExtension = $fileExtension; - - if ($nsSeparator === '') { - throw new InvalidArgumentException('Namespace separator should not be empty'); - } - - $this->nsSeparator = $nsSeparator; - } - - /** - * Adds Namespace Prefixes. - * - * @param array $prefixes - */ - public function addNamespacePrefixes(array $prefixes): void - { - $this->prefixes = [...$this->prefixes, ...$prefixes]; - $this->paths = [...$this->paths, ...array_keys($prefixes)]; - } - - /** - * Gets Namespace Prefixes. - * - * @return string[] - */ - public function getNamespacePrefixes(): array - { - return $this->prefixes; - } - - /** - * {@inheritDoc} - */ - public function getPaths(): array - { - return $this->paths; - } - - public function getFileExtension(): string|null - { - return $this->fileExtension; - } - - /** - * Sets the file extension used to look for mapping files under. - * - * @param string $fileExtension The file extension to set. - */ - public function setFileExtension(string $fileExtension): void - { - $this->fileExtension = $fileExtension; - } - - public function fileExists(string $className): bool - { - $defaultFileName = str_replace('\\', $this->nsSeparator, $className) . $this->fileExtension; - foreach ($this->paths as $path) { - if (! isset($this->prefixes[$path])) { - // global namespace class - if (is_file($path . DIRECTORY_SEPARATOR . $defaultFileName)) { - return true; - } - - continue; - } - - $prefix = $this->prefixes[$path]; - - if (! str_starts_with($className, $prefix . '\\')) { - continue; - } - - $filename = $path . '/' . strtr(substr($className, strlen($prefix) + 1), '\\', $this->nsSeparator) . $this->fileExtension; - - if (is_file($filename)) { - return true; - } - } - - return false; - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames(string|null $globalBasename = null): array - { - if ($this->paths === []) { - return []; - } - - $classes = []; - - foreach ($this->paths as $path) { - if (! is_dir($path)) { - throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path); - } - - $iterator = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path), - RecursiveIteratorIterator::LEAVES_ONLY, - ); - - foreach ($iterator as $file) { - $fileName = $file->getBasename($this->fileExtension); - - if ($fileName === $file->getBasename() || $fileName === $globalBasename) { - continue; - } - - // NOTE: All files found here means classes are not transient! - if (isset($this->prefixes[$path])) { - // Calculate namespace suffix for given prefix as a relative path from basepath to file path - $nsSuffix = strtr( - substr($this->realpath($file->getPath()), strlen($this->realpath($path))), - $this->nsSeparator, - '\\', - ); - - /** @phpstan-var class-string */ - $class = $this->prefixes[$path] . str_replace(DIRECTORY_SEPARATOR, '\\', $nsSuffix) . '\\' . str_replace($this->nsSeparator, '\\', $fileName); - } else { - /** @phpstan-var class-string */ - $class = str_replace($this->nsSeparator, '\\', $fileName); - } - - $classes[] = $class; - } - } - - return $classes; - } - - public function findMappingFile(string $className): string - { - $defaultFileName = str_replace('\\', $this->nsSeparator, $className) . $this->fileExtension; - foreach ($this->paths as $path) { - if (! isset($this->prefixes[$path])) { - if (is_file($path . DIRECTORY_SEPARATOR . $defaultFileName)) { - return $path . DIRECTORY_SEPARATOR . $defaultFileName; - } - - continue; - } - - $prefix = $this->prefixes[$path]; - - if (! str_starts_with($className, $prefix . '\\')) { - continue; - } - - $filename = $path . '/' . strtr(substr($className, strlen($prefix) + 1), '\\', $this->nsSeparator) . $this->fileExtension; - if (is_file($filename)) { - return $filename; - } - } - - $pos = strrpos($className, '\\'); - assert(is_int($pos)); - - throw MappingException::mappingFileNotFound( - $className, - substr($className, $pos + 1) . $this->fileExtension, - ); - } - - private function realpath(string $path): string - { - $realpath = realpath($path); - - if ($realpath === false) { - throw new RuntimeException(sprintf('Could not get realpath for %s', $path)); - } - - return $realpath; - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/MappingException.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/MappingException.php deleted file mode 100644 index 7a25fdf..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/MappingException.php +++ /dev/null @@ -1,80 +0,0 @@ - $namespaces */ - public static function classNotFoundInNamespaces( - string $className, - array $namespaces, - ): self { - return new self(sprintf( - "The class '%s' was not found in the chain configured namespaces %s", - $className, - implode(', ', $namespaces), - )); - } - - /** @param class-string $driverClassName */ - public static function pathRequiredForDriver(string $driverClassName): self - { - return new self(sprintf( - 'Specifying the paths to your entities is required when using %s to retrieve all class names.', - $driverClassName, - )); - } - - public static function fileMappingDriversRequireConfiguredDirectoryPath( - string|null $path = null, - ): self { - if ($path !== null) { - $path = '[' . $path . ']'; - } - - return new self(sprintf( - 'File mapping drivers must have a valid directory path, ' . - 'however the given path %s seems to be incorrect!', - (string) $path, - )); - } - - public static function mappingFileNotFound(string $entityName, string $fileName): self - { - return new self(sprintf( - "No mapping file found named '%s' for class '%s'.", - $fileName, - $entityName, - )); - } - - public static function invalidMappingFile(string $entityName, string $fileName): self - { - return new self(sprintf( - "Invalid mapping file '%s' for class '%s'.", - $fileName, - $entityName, - )); - } - - public static function nonExistingClass(string $className): self - { - return new self(sprintf("Class '%s' does not exist", $className)); - } - - /** @param class-string $className */ - public static function classIsAnonymous(string $className): self - { - return new self(sprintf('Class "%s" is anonymous', $className)); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ProxyClassNameResolver.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ProxyClassNameResolver.php deleted file mode 100644 index 59b8c98..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ProxyClassNameResolver.php +++ /dev/null @@ -1,19 +0,0 @@ ->|class-string $className - * - * @phpstan-return class-string - * - * @template T of object - */ - public function resolveClassName(string $className): string; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ReflectionService.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ReflectionService.php deleted file mode 100644 index 3648657..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/ReflectionService.php +++ /dev/null @@ -1,64 +0,0 @@ - $class - * - * @phpstan-return ReflectionClass - * - * @template T of object - */ - public function getClass(string $class): ReflectionClass; - - /** - * Returns an accessible property (setAccessible(true)) or null. - * - * @phpstan-param class-string $class - */ - public function getAccessibleProperty(string $class, string $property): ReflectionProperty|null; - - /** - * Checks if the class have a public method with the given name. - * - * @phpstan-param class-string $class - */ - public function hasPublicMethod(string $class, string $method): bool; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/RuntimeReflectionService.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/RuntimeReflectionService.php deleted file mode 100644 index ac840dc..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Mapping/RuntimeReflectionService.php +++ /dev/null @@ -1,97 +0,0 @@ -supportsTypedPropertiesWorkaround = version_compare(phpversion(), '7.4.0') >= 0; - } - - /** - * {@inheritDoc} - */ - public function getParentClasses(string $class): array - { - if (! class_exists($class)) { - throw MappingException::nonExistingClass($class); - } - - $parents = class_parents($class); - - assert($parents !== false); - - return $parents; - } - - public function getClassShortName(string $class): string - { - $reflectionClass = new ReflectionClass($class); - - return $reflectionClass->getShortName(); - } - - public function getClassNamespace(string $class): string - { - $reflectionClass = new ReflectionClass($class); - - return $reflectionClass->getNamespaceName(); - } - - /** - * @phpstan-param class-string $class - * - * @phpstan-return ReflectionClass - * - * @template T of object - */ - public function getClass(string $class): ReflectionClass - { - return new ReflectionClass($class); - } - - public function getAccessibleProperty(string $class, string $property): RuntimeReflectionProperty - { - $reflectionProperty = new RuntimeReflectionProperty($class, $property); - - if ($this->supportsTypedPropertiesWorkaround && ! array_key_exists($property, $this->getClass($class)->getDefaultProperties())) { - $reflectionProperty = new TypedNoDefaultReflectionProperty($class, $property); - } - - $reflectionProperty->setAccessible(true); - - return $reflectionProperty; - } - - public function hasPublicMethod(string $class, string $method): bool - { - try { - $reflectionMethod = new ReflectionMethod($class, $method); - } catch (ReflectionException) { - return false; - } - - return $reflectionMethod->isPublic(); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/NotifyPropertyChanged.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/NotifyPropertyChanged.php deleted file mode 100644 index 86819c8..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/NotifyPropertyChanged.php +++ /dev/null @@ -1,18 +0,0 @@ -find($id). - * - * @param string $className The class name of the object to find. - * @param mixed $id The identity of the object to find. - * @phpstan-param class-string $className - * - * @return object|null The found object. - * @phpstan-return T|null - * - * @template T of object - */ - public function find(string $className, mixed $id): object|null; - - /** - * Tells the ObjectManager to make an instance managed and persistent. - * - * The object will be entered into the database as a result of the flush operation. - * - * NOTE: The persist operation always considers objects that are not yet known to - * this ObjectManager as NEW. Do not pass detached objects to the persist operation. - * - * @param object $object The instance to make managed and persistent. - */ - public function persist(object $object): void; - - /** - * Removes an object instance. - * - * A removed object will be removed from the database as a result of the flush operation. - * - * @param object $object The object instance to remove. - */ - public function remove(object $object): void; - - /** - * Clears the ObjectManager. All objects that are currently managed - * by this ObjectManager become detached. - */ - public function clear(): void; - - /** - * Detaches an object from the ObjectManager, causing a managed object to - * become detached. Unflushed changes made to the object if any - * (including removal of the object), will not be synchronized to the database. - * Objects which previously referenced the detached object will continue to - * reference it. - * - * @param object $object The object to detach. - */ - public function detach(object $object): void; - - /** - * Refreshes the persistent state of an object from the database, - * overriding any local changes that have not yet been persisted. - * - * @param object $object The object to refresh. - */ - public function refresh(object $object): void; - - /** - * Flushes all changes to objects that have been queued up to now to the database. - * This effectively synchronizes the in-memory state of managed objects with the - * database. - */ - public function flush(): void; - - /** - * Gets the repository for a class. - * - * @phpstan-param class-string $className - * - * @phpstan-return ObjectRepository - * - * @template T of object - */ - public function getRepository(string $className): ObjectRepository; - - /** - * Returns the ClassMetadata descriptor for a class. - * - * The class name must be the fully-qualified class name without a leading backslash - * (as it is returned by get_class($obj)). - * - * @phpstan-param class-string $className - * - * @phpstan-return ClassMetadata - * - * @template T of object - */ - public function getClassMetadata(string $className): ClassMetadata; - - /** - * Gets the metadata factory used to gather the metadata of classes. - * - * @phpstan-return ClassMetadataFactory> - */ - public function getMetadataFactory(): ClassMetadataFactory; - - /** - * Helper method to initialize a lazy loading proxy or persistent collection. - * - * This method is a no-op for other objects. - */ - public function initializeObject(object $obj): void; - - /** Helper method to check whether a lazy loading proxy or persistent collection has been initialized. */ - public function isUninitializedObject(mixed $value): bool; - - /** - * Checks if the object is part of the current UnitOfWork and therefore managed. - */ - public function contains(object $object): bool; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectManagerDecorator.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectManagerDecorator.php deleted file mode 100644 index dabdcdb..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectManagerDecorator.php +++ /dev/null @@ -1,88 +0,0 @@ -wrapped->find($className, $id); - } - - public function persist(object $object): void - { - $this->wrapped->persist($object); - } - - public function remove(object $object): void - { - $this->wrapped->remove($object); - } - - public function clear(): void - { - $this->wrapped->clear(); - } - - public function detach(object $object): void - { - $this->wrapped->detach($object); - } - - public function refresh(object $object): void - { - $this->wrapped->refresh($object); - } - - public function flush(): void - { - $this->wrapped->flush(); - } - - public function getRepository(string $className): ObjectRepository - { - return $this->wrapped->getRepository($className); - } - - public function getClassMetadata(string $className): ClassMetadata - { - return $this->wrapped->getClassMetadata($className); - } - - /** @phpstan-return ClassMetadataFactory> */ - public function getMetadataFactory(): ClassMetadataFactory - { - return $this->wrapped->getMetadataFactory(); - } - - public function initializeObject(object $obj): void - { - $this->wrapped->initializeObject($obj); - } - - public function isUninitializedObject(mixed $value): bool - { - return $this->wrapped->isUninitializedObject($value); - } - - public function contains(object $object): bool - { - return $this->wrapped->contains($object); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectRepository.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectRepository.php deleted file mode 100644 index e3a4dc3..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/ObjectRepository.php +++ /dev/null @@ -1,73 +0,0 @@ - The objects. - * @phpstan-return T[] - */ - public function findAll(): array; - - /** - * Finds objects by a set of criteria. - * - * Optionally sorting and limiting details can be passed. An implementation may throw - * an UnexpectedValueException if certain values of the sorting or limiting details are - * not supported. - * - * @param array $criteria - * @param array|null $orderBy - * @phpstan-param array|null $orderBy - * - * @return array The objects. - * @phpstan-return T[] - * - * @throws UnexpectedValueException - */ - public function findBy( - array $criteria, - array|null $orderBy = null, - int|null $limit = null, - int|null $offset = null, - ): array; - - /** - * Finds a single object by a set of criteria. - * - * @param array $criteria The criteria. - * - * @return object|null The object. - * @phpstan-return T|null - */ - public function findOneBy(array $criteria): object|null; - - /** - * Returns the class name of the object managed by the repository. - * - * @phpstan-return class-string - */ - public function getClassName(): string; -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/PropertyChangedListener.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/PropertyChangedListener.php deleted file mode 100644 index a01c645..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/PropertyChangedListener.php +++ /dev/null @@ -1,22 +0,0 @@ - $enumType */ - public function __construct(private readonly ReflectionProperty $originalReflectionProperty, private readonly string $enumType) - { - } - - public function getDeclaringClass(): ReflectionClass - { - return $this->originalReflectionProperty->getDeclaringClass(); - } - - public function getName(): string - { - return $this->originalReflectionProperty->getName(); - } - - public function getType(): ReflectionType|null - { - return $this->originalReflectionProperty->getType(); - } - - /** - * {@inheritDoc} - */ - public function getAttributes(string|null $name = null, int $flags = 0): array - { - return $this->originalReflectionProperty->getAttributes($name, $flags); - } - - /** - * {@inheritDoc} - * - * Converts enum instance to its value. - * - * @param object|null $object - * - * @return int|string|int[]|string[]|null - */ - public function getValue($object = null): int|string|array|null - { - if ($object === null) { - return null; - } - - $enum = $this->originalReflectionProperty->getValue($object); - - if ($enum === null) { - return null; - } - - return $this->fromEnum($enum); - } - - /** - * Converts enum value to enum instance. - * - * @param object|null $object - */ - public function setValue(mixed $object, mixed $value = null): void - { - if ($value !== null) { - $value = $this->toEnum($value); - } - - $this->originalReflectionProperty->setValue($object, $value); - } - - /** - * @param BackedEnum|BackedEnum[] $enum - * - * @return ($enum is BackedEnum ? (string|int) : (string[]|int[])) - */ - private function fromEnum(BackedEnum|array $enum) - { - if (is_array($enum)) { - return array_map(static fn (BackedEnum $enum) => $enum->value, $enum); - } - - return $enum->value; - } - - /** - * @param int|string|int[]|string[]|BackedEnum|BackedEnum[] $value - * - * @return ($value is int|string|BackedEnum ? BackedEnum : BackedEnum[]) - */ - private function toEnum(int|string|array|BackedEnum $value) - { - if ($value instanceof BackedEnum) { - return $value; - } - - if (is_array($value)) { - $v = reset($value); - if ($v instanceof BackedEnum) { - return $value; - } - - return array_map([$this->enumType, 'from'], $value); - } - - return $this->enumType::from($value); - } - - public function getModifiers(): int - { - return $this->originalReflectionProperty->getModifiers(); - } - - public function getDocComment(): string|false - { - return $this->originalReflectionProperty->getDocComment(); - } - - public function isPrivate(): bool - { - return $this->originalReflectionProperty->isPrivate(); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/RuntimeReflectionProperty.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/RuntimeReflectionProperty.php deleted file mode 100644 index 7568737..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/RuntimeReflectionProperty.php +++ /dev/null @@ -1,63 +0,0 @@ -key = $this->isPrivate() ? "\0" . ltrim($class, '\\') . "\0" . $name : ($this->isProtected() ? "\0*\0" . $name : $name); - } - - public function getValue(object|null $object = null): mixed - { - if ($object === null) { - return parent::getValue($object); - } - - return ((array) $object)[$this->key] ?? null; - } - - /** - * {@inheritDoc} - * - * @param object|null $object - */ - public function setValue(mixed $object, mixed $value = null): void - { - if (! ($object instanceof Proxy && ! $object->__isInitialized())) { - parent::setValue($object, $value); - - return; - } - - if (! method_exists($object, '__setInitialized')) { - return; - } - - $object->__setInitialized(true); - - parent::setValue($object, $value); - - $object->__setInitialized(false); - } -} diff --git a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/TypedNoDefaultReflectionProperty.php b/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/TypedNoDefaultReflectionProperty.php deleted file mode 100644 index 50f8bb4..0000000 --- a/projects/priceservice/vendor/doctrine/persistence/src/Persistence/Reflection/TypedNoDefaultReflectionProperty.php +++ /dev/null @@ -1,57 +0,0 @@ -isInitialized($object) ? parent::getValue($object) : null; - } - - /** - * {@inheritDoc} - * - * Works around the problem with setting typed no default properties to - * NULL which is not supported, instead unset() to uninitialize. - * - * @link https://github.com/doctrine/orm/issues/7999 - * - * @param object|null $object - */ - public function setValue(mixed $object, mixed $value = null): void - { - if ($value === null && $this->hasType() && ! $this->getType()->allowsNull()) { - $propertyName = $this->getName(); - - $unsetter = function () use ($propertyName): void { - unset($this->$propertyName); - }; - $unsetter = $unsetter->bindTo($object, $this->getDeclaringClass()->getName()); - - assert($unsetter instanceof Closure); - - $unsetter(); - - return; - } - - parent::setValue($object, $value); - } -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/CONTRIBUTING.md b/projects/priceservice/vendor/doctrine/sql-formatter/CONTRIBUTING.md deleted file mode 100644 index a7a6ce7..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/CONTRIBUTING.md +++ /dev/null @@ -1,22 +0,0 @@ -# CONTRIBUTING - -Make sure you read our [contributing guide][contributing guide on the website]. - -[contributing guide on the website]:https://www.doctrine-project.org/contribute - -## Installing dependencies - -```shell -composer install -``` - -## Running checks locally - -Here is a script to run all checks, you can use it as a git hook: - -```shell -#!/bin/bash -eu -vendor/bin/phpunit --testdox -echo '' | vendor/bin/phpcs -vendor/bin/phpstan analyze -``` diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/LICENSE.txt b/projects/priceservice/vendor/doctrine/sql-formatter/LICENSE.txt deleted file mode 100644 index e822279..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Jeremy Dorn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/README.md b/projects/priceservice/vendor/doctrine/sql-formatter/README.md deleted file mode 100644 index 62b42e4..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# SqlFormatter - -A lightweight php package for formatting sql statements. - -It can automatically indent and add line breaks in addition to syntax -highlighting. - -## History - -This package is a fork from https://github.com/jdorn/sql-formatter -Here is what the original History section says: - -> I found myself having to debug auto-generated SQL statements all the time and -> wanted some way to easily output formatted HTML without having to include a -> huge library or copy and paste into online formatters. - -> I was originally planning to extract the formatting code from PhpMyAdmin, -> but that was 10,000+ lines of code and used global variables. - -> I saw that other people had the same problem and used Stack Overflow user -> losif's answer as a starting point. http://stackoverflow.com/a/3924147 - -― @jdorn - -## Usage - -The `SqlFormatter` class has a method `format` which takes an SQL string as -input and returns a formatted block. - -Sample usage: - -```php -= NOW()) ) - GROUP BY Column1 ORDER BY Column3 DESC LIMIT 5,10"; - -echo (new SqlFormatter())->format($query); -``` - -Output: - -formatted output with HTML Highlight - -When you run php under cli and instantiated `SqlFormatter` without argument, highlighted with `CliHighlighter`. - -SqlFormatter constructor takes `Highlighter` implementations. `HtmlHighlighter` etc. - - -### Formatting Only - -If you don't want syntax highlighting and only want the indentations and -line breaks, pass in a `NullHighlighter` instance as the second parameter. - -This is useful for outputting to error logs or other non-html formats. - -```php -format($query); -``` - -Output: - -``` -SELECT - count(*), - `Column1`, - `Testing`, - `Testing Three` -FROM - `Table1` -WHERE - Column1 = 'testing' - AND ( - ( - `Column2` = `Column3` - OR Column4 >= NOW() - ) - ) -GROUP BY - Column1 -ORDER BY - Column3 DESC -LIMIT - 5, 10 -``` - -### Syntax Highlighting Only - -There is a separate method `highlight` that preserves all original whitespace -and just adds syntax highlighting. - -This is useful for sql that is already well formatted and just needs to be a -little easier to read. - -```php -highlight($query); -``` - -Output: - -HTML Highlight output - -### Compress Query - -The `compress` method removes all comments and compresses whitespace. - -This is useful for outputting queries that can be copy pasted to the command -line easily. - -```sql --- This is a comment - SELECT - /* This is another comment - On more than one line */ - Id #This is one final comment - as temp, DateCreated as Created FROM MyTable; -``` - -```php -echo (new SqlFormatter())->compress($query); -``` - -Output: - -```sql -SELECT Id as temp, DateCreated as Created FROM MyTable; -``` diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/bin/sql-formatter b/projects/priceservice/vendor/doctrine/sql-formatter/bin/sql-formatter deleted file mode 100755 index d3079ef..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/bin/sql-formatter +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -Run this PHP script from the command line to see CLI syntax highlighting and formatting. It supports Unix pipes or command line argument style.

"; - echo "
php bin/sql-formatter \"SELECT * FROM MyTable WHERE (id>5 AND \\`name\\` LIKE \\"testing\\");\"
"; - echo "
echo \"SELECT * FROM MyTable WHERE (id>5 AND \\`name\\` LIKE \\"testing\\");\" | php bin/sql-formatter
"; - exit; -} - -if(isset($argv[1])) { - $sql = $argv[1]; -} -else { - $sql = stream_get_contents(fopen('php://stdin', 'r')); -} - -$autoloadFiles = [ - __DIR__ . '/../vendor/autoload.php', - __DIR__ . '/../../../autoload.php' -]; - -foreach ($autoloadFiles as $autoloadFile) { - if (file_exists($autoloadFile)) { - require_once $autoloadFile; - break; - } -} - -echo (new \Doctrine\SqlFormatter\SqlFormatter())->format($sql); diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/composer.json b/projects/priceservice/vendor/doctrine/sql-formatter/composer.json deleted file mode 100644 index d02639a..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "doctrine/sql-formatter", - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", - "keywords": ["sql", "highlight"], - "license": "MIT", - "type": "library", - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ergebnis/phpunit-slow-test-detector": "^2.14", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5" - }, - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "https://jeremydorn.com/" - } - ], - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Doctrine\\SqlFormatter\\Tests\\": "tests" - } - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, - "bin": ["bin/sql-formatter"] -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/CliHighlighter.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/CliHighlighter.php deleted file mode 100644 index 524b3ba..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/src/CliHighlighter.php +++ /dev/null @@ -1,77 +0,0 @@ - */ - private array $escapeSequences; - - /** @param array $escapeSequences */ - public function __construct(array $escapeSequences = []) - { - $this->escapeSequences = $escapeSequences + [ - self::HIGHLIGHT_QUOTE => "\x1b[34;1m", - self::HIGHLIGHT_BACKTICK_QUOTE => "\x1b[35;1m", - self::HIGHLIGHT_RESERVED => "\x1b[37m", - self::HIGHLIGHT_BOUNDARY => '', - self::HIGHLIGHT_NUMBER => "\x1b[32;1m", - self::HIGHLIGHT_WORD => '', - self::HIGHLIGHT_ERROR => "\x1b[31;1;7m", - self::HIGHLIGHT_COMMENT => "\x1b[30;1m", - self::HIGHLIGHT_VARIABLE => "\x1b[36;1m", - self::HIGHLIGHT_FUNCTIONS => "\x1b[37m", - ]; - } - - public function highlightToken(int $type, string $value): string - { - if ($type === Token::TOKEN_TYPE_BOUNDARY && ($value === '(' || $value === ')')) { - return $value; - } - - $prefix = $this->prefix($type); - if ($prefix === null) { - return $value; - } - - return $prefix . $value . "\x1b[0m"; - } - - /** @param Token::TOKEN_TYPE_* $type */ - private function prefix(int $type): string|null - { - if (! isset(self::TOKEN_TYPE_TO_HIGHLIGHT[$type])) { - return null; - } - - return $this->escapeSequences[self::TOKEN_TYPE_TO_HIGHLIGHT[$type]]; - } - - public function highlightError(string $value): string - { - return sprintf( - '%s%s%s%s', - "\n", - $this->escapeSequences[self::HIGHLIGHT_ERROR], - $value, - "\x1b[0m", - ); - } - - public function highlightErrorMessage(string $value): string - { - return $this->highlightError($value); - } - - public function output(string $string): string - { - return $string . "\n"; - } -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/Cursor.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/Cursor.php deleted file mode 100644 index 1b203db..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/src/Cursor.php +++ /dev/null @@ -1,52 +0,0 @@ - $tokens */ - public function __construct( - private readonly array $tokens, - ) { - } - - /** @param Token::TOKEN_TYPE_* $exceptTokenType */ - public function next(int|null $exceptTokenType = null): Token|null - { - while ($token = $this->tokens[++$this->position] ?? null) { - if ($exceptTokenType !== null && $token->isOfType($exceptTokenType)) { - continue; - } - - return $token; - } - - return null; - } - - /** @param Token::TOKEN_TYPE_* $exceptTokenType */ - public function previous(int|null $exceptTokenType = null): Token|null - { - while ($token = $this->tokens[--$this->position] ?? null) { - if ($exceptTokenType !== null && $token->isOfType($exceptTokenType)) { - continue; - } - - return $token; - } - - return null; - } - - public function subCursor(): self - { - $cursor = new self($this->tokens); - $cursor->position = $this->position; - - return $cursor; - } -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/Highlighter.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/Highlighter.php deleted file mode 100644 index c232883..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/src/Highlighter.php +++ /dev/null @@ -1,58 +0,0 @@ - self::HIGHLIGHT_BOUNDARY, - Token::TOKEN_TYPE_WORD => self::HIGHLIGHT_WORD, - Token::TOKEN_TYPE_BACKTICK_QUOTE => self::HIGHLIGHT_BACKTICK_QUOTE, - Token::TOKEN_TYPE_QUOTE => self::HIGHLIGHT_QUOTE, - Token::TOKEN_TYPE_RESERVED => self::HIGHLIGHT_RESERVED, - Token::TOKEN_TYPE_RESERVED_TOPLEVEL => self::HIGHLIGHT_RESERVED, - Token::TOKEN_TYPE_RESERVED_NEWLINE => self::HIGHLIGHT_RESERVED, - Token::TOKEN_TYPE_NUMBER => self::HIGHLIGHT_NUMBER, - Token::TOKEN_TYPE_VARIABLE => self::HIGHLIGHT_VARIABLE, - Token::TOKEN_TYPE_COMMENT => self::HIGHLIGHT_COMMENT, - Token::TOKEN_TYPE_BLOCK_COMMENT => self::HIGHLIGHT_COMMENT, - ]; - - public const HIGHLIGHT_BOUNDARY = 'boundary'; - public const HIGHLIGHT_WORD = 'word'; - public const HIGHLIGHT_BACKTICK_QUOTE = 'backtickQuote'; - public const HIGHLIGHT_QUOTE = 'quote'; - public const HIGHLIGHT_RESERVED = 'reserved'; - public const HIGHLIGHT_NUMBER = 'number'; - public const HIGHLIGHT_VARIABLE = 'variable'; - public const HIGHLIGHT_COMMENT = 'comment'; - public const HIGHLIGHT_ERROR = 'error'; - - /** - * Highlights a token depending on its type. - * - * @param Token::TOKEN_TYPE_* $type - */ - public function highlightToken(int $type, string $value): string; - - /** - * Highlights a token which causes an issue - */ - public function highlightError(string $value): string; - - /** - * Highlights an error message - */ - public function highlightErrorMessage(string $value): string; - - /** - * Helper function for building string output - * - * @param string $string The string to be quoted - * - * @return string The quoted string - */ - public function output(string $string): string; -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/HtmlHighlighter.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/HtmlHighlighter.php deleted file mode 100644 index 71f5933..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/src/HtmlHighlighter.php +++ /dev/null @@ -1,93 +0,0 @@ - */ - private readonly array $htmlAttributes; - - /** - * @param array $htmlAttributes - * @param bool $usePre This flag tells us if queries need to be enclosed in
 tags
-     */
-    public function __construct(
-        array $htmlAttributes = [],
-        private readonly bool $usePre = true,
-    ) {
-        $this->htmlAttributes = $htmlAttributes + [
-            self::HIGHLIGHT_QUOTE => 'style="color: blue;"',
-            self::HIGHLIGHT_BACKTICK_QUOTE => 'style="color: purple;"',
-            self::HIGHLIGHT_RESERVED => 'style="font-weight:bold;"',
-            self::HIGHLIGHT_BOUNDARY => '',
-            self::HIGHLIGHT_NUMBER => 'style="color: green;"',
-            self::HIGHLIGHT_WORD => 'style="color: #333;"',
-            self::HIGHLIGHT_ERROR => 'style="background-color: red;"',
-            self::HIGHLIGHT_COMMENT => 'style="color: #aaa;"',
-            self::HIGHLIGHT_VARIABLE => 'style="color: orange;"',
-            self::HIGHLIGHT_PRE => 'style="color: black; background-color: white;"',
-        ];
-    }
-
-    public function highlightToken(int $type, string $value): string
-    {
-        $value = htmlentities($value, ENT_COMPAT | ENT_IGNORE, 'UTF-8');
-
-        if ($type === Token::TOKEN_TYPE_BOUNDARY && ($value === '(' || $value === ')')) {
-            return $value;
-        }
-
-        $attributes = $this->attributes($type);
-        if ($attributes === null) {
-            return $value;
-        }
-
-        return '' . $value . '';
-    }
-
-    /** @param Token::TOKEN_TYPE_* $type */
-    public function attributes(int $type): string|null
-    {
-        if (! isset(self::TOKEN_TYPE_TO_HIGHLIGHT[$type])) {
-            return null;
-        }
-
-        return $this->htmlAttributes[self::TOKEN_TYPE_TO_HIGHLIGHT[$type]];
-    }
-
-    public function highlightError(string $value): string
-    {
-        return sprintf(
-            '%s%s',
-            "\n",
-            $this->htmlAttributes[self::HIGHLIGHT_ERROR],
-            $value,
-        );
-    }
-
-    public function highlightErrorMessage(string $value): string
-    {
-        return $this->highlightError($value);
-    }
-
-    public function output(string $string): string
-    {
-        $string = trim($string);
-        if (! $this->usePre) {
-            return $string;
-        }
-
-        return '
htmlAttributes[self::HIGHLIGHT_PRE] . '>' . $string . '
'; - } -} diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/NullHighlighter.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/NullHighlighter.php deleted file mode 100644 index b62c998..0000000 --- a/projects/priceservice/vendor/doctrine/sql-formatter/src/NullHighlighter.php +++ /dev/null @@ -1,28 +0,0 @@ -tokenizer = new Tokenizer(); - $this->highlighter = $highlighter ?? (PHP_SAPI === 'cli' ? new CliHighlighter() : new HtmlHighlighter()); - } - - /** - * Format the whitespace in a SQL string to make it easier to read. - * - * @param string $string The SQL string - * - * @return string The SQL string with HTML styles and formatting wrapped in a
 tag
-     */
-    public function format(string $string, string $indentString = '  '): string
-    {
-        // This variable will be populated with formatted html
-        $return = '';
-
-        // Use an actual tab while formatting and then switch out with $indentString at the end
-        $tab = "\t";
-
-        $indentLevel           = 0;
-        $newline               = false;
-        $inlineParentheses     = false;
-        $increaseSpecialIndent = false;
-        $increaseBlockIndent   = false;
-        $indentTypes           = [];
-        $addedNewline          = false;
-        $inlineCount           = 0;
-        $inlineIndented        = false;
-        $clauseLimit           = false;
-
-        $appendNewLineIfNotAddedFx  = static function () use (&$addedNewline, &$return, $tab, &$indentLevel): void {
-            // Add a newline if not already added
-            if ($addedNewline) { // @phpstan-ignore if.alwaysFalse
-                return;
-            }
-
-            $return  = rtrim($return, ' ' . $tab);
-            $return .= "\n" . str_repeat($tab, $indentLevel);
-        };
-        $decreaseIndentationLevelFx = static function () use (&$return, &$indentTypes, $tab, &$indentLevel): void {
-            array_pop($indentTypes);
-            $indentLevel--;
-
-            // Redo the indentation since it may be different now
-            $lastPossiblyIndentLine = substr($return, -($indentLevel + 2));
-            if (rtrim($lastPossiblyIndentLine, $tab) !== "\n") {
-                return;
-            }
-
-            $rtrimLength = $indentLevel + 1;
-            while (substr($return, -($rtrimLength + 2), 1) === "\n") {
-                $rtrimLength++;
-            }
-
-            $return = substr($return, 0, -$rtrimLength) . str_repeat($tab, $indentLevel);
-        };
-
-        // Tokenize String
-        $cursor = $this->tokenizer->tokenize($string);
-
-        // Format token by token
-        while ($token = $cursor->next(Token::TOKEN_TYPE_WHITESPACE)) {
-            $prevNotWhitespaceToken = $cursor->subCursor()->previous(Token::TOKEN_TYPE_WHITESPACE);
-            $tokenValueUpper        = strtoupper($token->value());
-            if ($prevNotWhitespaceToken !== null && $prevNotWhitespaceToken->value() === '.') {
-                $tokenValueUpper = false;
-            }
-
-            $highlighted = $this->highlighter->highlightToken(
-                $token->type(),
-                $token->value(),
-            );
-
-            // If we are increasing the special indent level now
-            if ($increaseSpecialIndent) {
-                $indentLevel++;
-                $increaseSpecialIndent = false;
-                $indentTypes[]         = self::INDENT_TYPE_SPECIAL;
-            }
-
-            // If we are increasing the block indent level now
-            if ($increaseBlockIndent) {
-                $indentLevel++;
-                $increaseBlockIndent = false;
-                $indentTypes[]       = self::INDENT_TYPE_BLOCK;
-            }
-
-            // If we need a new line before the token
-            if ($newline) {
-                $return = rtrim($return, ' ');
-
-                if ($prevNotWhitespaceToken !== null && $prevNotWhitespaceToken->value() === ';') {
-                    $return .= "\n";
-                }
-
-                $return      .= "\n" . str_repeat($tab, $indentLevel);
-                $newline      = false;
-                $addedNewline = true;
-            } else {
-                $addedNewline = false;
-            }
-
-            // Display comments directly where they appear in the source
-            if ($token->isOfType(Token::TOKEN_TYPE_COMMENT, Token::TOKEN_TYPE_BLOCK_COMMENT)) {
-                if ($token->isOfType(Token::TOKEN_TYPE_BLOCK_COMMENT)) {
-                    $indent      = str_repeat($tab, $indentLevel);
-                    $return      = rtrim($return, ' ' . $tab);
-                    $return     .= "\n" . $indent;
-                    $highlighted = str_replace("\n", "\n" . $indent, $highlighted);
-                }
-
-                $return .= $highlighted;
-                $newline = true;
-                continue;
-            }
-
-            if ($inlineParentheses) {
-                // End of inline parentheses
-                if ($token->value() === ')') {
-                    $return = rtrim($return, ' ');
-
-                    if ($inlineIndented) {
-                        $decreaseIndentationLevelFx();
-
-                        $return  = rtrim($return, ' ');
-                        $return .= "\n" . str_repeat($tab, $indentLevel);
-                    }
-
-                    $inlineParentheses = false;
-
-                    $return .= $highlighted . ' ';
-                    continue;
-                }
-
-                if ($token->value() === ',') {
-                    if ($inlineCount >= 30) {
-                        $inlineCount = 0;
-                        $newline     = true;
-                    }
-                }
-
-                $inlineCount += strlen($token->value());
-            }
-
-            // Opening parentheses increase the block indent level and start a new line
-            if ($token->value() === '(') {
-                // First check if this should be an inline parentheses block
-                // Examples are "NOW()", "COUNT(*)", "int(10)", key(`somecolumn`), DECIMAL(7,2)
-                // Allow up to 3 non-whitespace tokens inside inline parentheses
-                $length    = 0;
-                $subCursor = $cursor->subCursor();
-                for ($j = 1; $j <= 250; $j++) {
-                    // Reached end of string
-                    $next = $subCursor->next(Token::TOKEN_TYPE_WHITESPACE);
-                    if ($next === null) {
-                        break;
-                    }
-
-                    // Reached closing parentheses, able to inline it
-                    if ($next->value() === ')') {
-                        $inlineParentheses = true;
-                        $inlineCount       = 0;
-                        $inlineIndented    = false;
-                        break;
-                    }
-
-                    // Reached an invalid token for inline parentheses
-                    if ($next->value() === ';' || $next->value() === '(') {
-                        break;
-                    }
-
-                    // Reached an invalid token type for inline parentheses
-                    if (
-                        $next->isOfType(
-                            Token::TOKEN_TYPE_RESERVED_TOPLEVEL,
-                            Token::TOKEN_TYPE_RESERVED_NEWLINE,
-                            Token::TOKEN_TYPE_COMMENT,
-                            Token::TOKEN_TYPE_BLOCK_COMMENT,
-                        )
-                    ) {
-                        break;
-                    }
-
-                    $length += strlen($next->value());
-                }
-
-                if ($inlineParentheses && $length > 30) {
-                    $increaseBlockIndent = true;
-                    $inlineIndented      = true;
-                    $newline             = true;
-                }
-
-                // Take out the preceding space unless there was whitespace there in the original query
-                $prevToken = $cursor->subCursor()->previous();
-                if ($prevToken !== null && ! $prevToken->isOfType(Token::TOKEN_TYPE_WHITESPACE)) {
-                    $return = rtrim($return, ' ');
-                }
-
-                if (! $inlineParentheses) {
-                    $increaseBlockIndent = true;
-                    // Add a newline after the parentheses
-                    $newline = true;
-                }
-            } elseif ($token->value() === ')') {
-                // Closing parentheses decrease the block indent level
-                // Remove whitespace before the closing parentheses
-                $return = rtrim($return, ' ');
-
-                while (end($indentTypes) === self::INDENT_TYPE_SPECIAL) {
-                    $decreaseIndentationLevelFx();
-                }
-
-                $decreaseIndentationLevelFx();
-
-                if ($indentLevel < 0) {
-                    // This is an error
-                    $indentLevel = 0;
-
-                    $return .= $this->highlighter->highlightError($token->value());
-                    continue;
-                }
-
-                $appendNewLineIfNotAddedFx();
-            } elseif ($token->isOfType(Token::TOKEN_TYPE_RESERVED_TOPLEVEL)) {
-                // Top level reserved words start a new line and increase the special indent level
-                $increaseSpecialIndent = true;
-
-                // If the last indent type was special, decrease the special indent for this round
-                if (end($indentTypes) === self::INDENT_TYPE_SPECIAL) {
-                    $decreaseIndentationLevelFx();
-                }
-
-                // Add a newline after the top level reserved word
-                $newline = true;
-
-                $appendNewLineIfNotAddedFx();
-
-                if ($token->hasExtraWhitespace()) {
-                    $highlighted = preg_replace('/\s+/', ' ', $highlighted);
-                }
-
-                // if SQL 'LIMIT' clause, start variable to reset newline
-                if ($tokenValueUpper === 'LIMIT' && ! $inlineParentheses) {
-                    $clauseLimit = true;
-                }
-            } elseif ($token->value() === ';') {
-                // If the last indent type was special, decrease the special indent for this round
-                if (end($indentTypes) === self::INDENT_TYPE_SPECIAL) {
-                    $decreaseIndentationLevelFx();
-                }
-
-                $newline = true;
-            } elseif ($tokenValueUpper === 'CASE') {
-                $increaseBlockIndent = true;
-            } elseif ($tokenValueUpper === 'BEGIN') {
-                $newline             = true;
-                $increaseBlockIndent = true;
-            } elseif ($tokenValueUpper === 'LOOP') {
-                // https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/basic-LOOP-statement.html
-
-                if ($prevNotWhitespaceToken !== null && strtoupper($prevNotWhitespaceToken->value()) !== 'END') {
-                    $newline             = true;
-                    $increaseBlockIndent = true;
-                }
-            } elseif (in_array($tokenValueUpper, ['WHEN', 'THEN', 'ELSE', 'END'], true)) {
-                if ($tokenValueUpper !== 'THEN') {
-                    $decreaseIndentationLevelFx();
-
-                    if ($prevNotWhitespaceToken !== null && strtoupper($prevNotWhitespaceToken->value()) !== 'CASE') {
-                        $appendNewLineIfNotAddedFx();
-                    }
-                }
-
-                if ($tokenValueUpper === 'THEN' || $tokenValueUpper === 'ELSE') {
-                    $newline             = true;
-                    $increaseBlockIndent = true;
-                }
-            } elseif (
-                $clauseLimit &&
-                $token->value() !== ',' &&
-                ! $token->isOfType(Token::TOKEN_TYPE_NUMBER, Token::TOKEN_TYPE_WHITESPACE)
-            ) {
-                // Checks if we are out of the limit clause
-                $clauseLimit = false;
-            } elseif ($token->value() === ',' && ! $inlineParentheses) {
-                // Commas start a new line (unless within inline parentheses or SQL 'LIMIT' clause)
-                // If the previous TOKEN_VALUE is 'LIMIT', resets new line
-                if ($clauseLimit === true) {
-                    $newline     = false;
-                    $clauseLimit = false;
-                } else {
-                    // All other cases of commas
-                    $newline = true;
-                }
-            } elseif ($token->isOfType(Token::TOKEN_TYPE_RESERVED_NEWLINE)) {
-                // Newline reserved words start a new line
-
-                $appendNewLineIfNotAddedFx();
-
-                if ($token->hasExtraWhitespace()) {
-                    $highlighted = preg_replace('/\s+/', ' ', $highlighted);
-                }
-            } elseif ($token->isOfType(Token::TOKEN_TYPE_BOUNDARY)) {
-                // Multiple boundary characters in a row should not have spaces between them (not including parentheses)
-                if ($prevNotWhitespaceToken !== null && $prevNotWhitespaceToken->isOfType(Token::TOKEN_TYPE_BOUNDARY)) {
-                    $prevToken = $cursor->subCursor()->previous();
-                    if ($prevToken !== null && ! $prevToken->isOfType(Token::TOKEN_TYPE_WHITESPACE)) {
-                        $return = rtrim($return, ' ');
-                    }
-                }
-            }
-
-            // If the token shouldn't have a space before it
-            if (
-                $token->value() === '.' ||
-                $token->value() === ',' ||
-                $token->value() === ';'
-            ) {
-                $return = rtrim($return, ' ');
-            }
-
-            $return .= $highlighted . ' ';
-
-            // If the token shouldn't have a space after it
-            if ($token->value() === '(' || $token->value() === '.') {
-                $return = rtrim($return, ' ');
-            }
-
-            // If this is the "-" of a negative number, it shouldn't have a space after it
-            if ($token->value() !== '-') {
-                continue;
-            }
-
-            $nextNotWhitespace = $cursor->subCursor()->next(Token::TOKEN_TYPE_WHITESPACE);
-            if ($nextNotWhitespace === null || ! $nextNotWhitespace->isOfType(Token::TOKEN_TYPE_NUMBER)) {
-                continue;
-            }
-
-            $prev = $cursor->subCursor()->previous(Token::TOKEN_TYPE_WHITESPACE);
-            if ($prev === null) {
-                continue;
-            }
-
-            if (
-                $prev->isOfType(
-                    Token::TOKEN_TYPE_QUOTE,
-                    Token::TOKEN_TYPE_BACKTICK_QUOTE,
-                    Token::TOKEN_TYPE_WORD,
-                    Token::TOKEN_TYPE_NUMBER,
-                )
-            ) {
-                continue;
-            }
-
-            $return = rtrim($return, ' ');
-        }
-
-        // If there are unmatched parentheses
-        if (array_search(self::INDENT_TYPE_BLOCK, $indentTypes) !== false) {
-            $return  = rtrim($return, ' ');
-            $return .= $this->highlighter->highlightErrorMessage(
-                'WARNING: unclosed parentheses or section',
-            );
-        }
-
-        // Replace tab characters with the configuration tab character
-        $return = trim(str_replace($tab, $indentString, $return));
-
-        return $this->highlighter->output($return);
-    }
-
-    /**
-     * Add syntax highlighting to a SQL string
-     *
-     * @param string $string The SQL string
-     *
-     * @return string The SQL string with HTML styles applied
-     */
-    public function highlight(string $string): string
-    {
-        $cursor = $this->tokenizer->tokenize($string);
-
-        $return = '';
-
-        while ($token = $cursor->next()) {
-            $return .= $this->highlighter->highlightToken(
-                $token->type(),
-                $token->value(),
-            );
-        }
-
-        return $this->highlighter->output($return);
-    }
-
-    /**
-     * Compress a query by collapsing white space and removing comments
-     *
-     * @param string $string The SQL string
-     *
-     * @return string The SQL string without comments
-     */
-    public function compress(string $string): string
-    {
-        $result = '';
-        $cursor = $this->tokenizer->tokenize($string);
-
-        $whitespace = true;
-        while ($token = $cursor->next()) {
-            // Skip comment tokens
-            if ($token->isOfType(Token::TOKEN_TYPE_COMMENT, Token::TOKEN_TYPE_BLOCK_COMMENT)) {
-                continue;
-            }
-
-            // Remove extra whitespace in reserved words (e.g "OUTER     JOIN" becomes "OUTER JOIN")
-
-            if (
-                $token->isOfType(
-                    Token::TOKEN_TYPE_RESERVED,
-                    Token::TOKEN_TYPE_RESERVED_NEWLINE,
-                    Token::TOKEN_TYPE_RESERVED_TOPLEVEL,
-                )
-            ) {
-                $newValue = preg_replace('/\s+/', ' ', $token->value());
-                assert($newValue !== null);
-                $token = $token->withValue($newValue);
-            }
-
-            if ($token->isOfType(Token::TOKEN_TYPE_WHITESPACE)) {
-                // If the last token was whitespace, don't add another one
-                if ($whitespace) {
-                    continue;
-                }
-
-                $whitespace = true;
-                // Convert all whitespace to a single space
-                $token = $token->withValue(' ');
-            } else {
-                $whitespace = false;
-            }
-
-            $result .= $token->value();
-        }
-
-        return rtrim($result);
-    }
-}
diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/Token.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/Token.php
deleted file mode 100644
index a0d2a04..0000000
--- a/projects/priceservice/vendor/doctrine/sql-formatter/src/Token.php
+++ /dev/null
@@ -1,63 +0,0 @@
-value;
-    }
-
-    /** @return self::TOKEN_TYPE_* */
-    public function type(): int
-    {
-        return $this->type;
-    }
-
-    /** @param self::TOKEN_TYPE_* ...$types */
-    public function isOfType(int ...$types): bool
-    {
-        return in_array($this->type, $types, true);
-    }
-
-    public function hasExtraWhitespace(): bool
-    {
-        return str_contains($this->value(), ' ') ||
-            str_contains($this->value(), "\n") ||
-            str_contains($this->value(), "\t");
-    }
-
-    public function withValue(string $value): self
-    {
-        return new self($this->type(), $value);
-    }
-}
diff --git a/projects/priceservice/vendor/doctrine/sql-formatter/src/Tokenizer.php b/projects/priceservice/vendor/doctrine/sql-formatter/src/Tokenizer.php
deleted file mode 100644
index f8f35a6..0000000
--- a/projects/priceservice/vendor/doctrine/sql-formatter/src/Tokenizer.php
+++ /dev/null
@@ -1,930 +0,0 @@
-
-     */
-    private array $reserved = [
-        'ACCESSIBLE',
-        'ACTION',
-        'ADD',
-        'AFTER',
-        'AGAINST',
-        'AGGREGATE',
-        'ALGORITHM',
-        'ALL',
-        'ALTER',
-        'ANALYSE',
-        'ANALYZE',
-        'AND',
-        'AS',
-        'ASC',
-        'AUTOCOMMIT',
-        'AUTO_INCREMENT',
-        'BACKUP',
-        'BEGIN',
-        'BETWEEN',
-        'BIGINT',
-        'BINARY',
-        'BINLOG',
-        'BLOB',
-        'BOTH',
-        'BY',
-        'CASCADE',
-        'CASE',
-        'CHANGE',
-        'CHANGED',
-        'CHAR',
-        'CHARACTER',
-        'CHARSET',
-        'CHECK',
-        'CHECKSUM',
-        'COLLATE',
-        'COLLATION',
-        'COLUMN',
-        'COLUMNS',
-        'COMMENT',
-        'COMMIT',
-        'COMMITTED',
-        'COMPRESSED',
-        'CONCURRENT',
-        'CONSTRAINT',
-        'CONTAINS',
-        'CONVERT',
-        'CREATE',
-        'CROSS',
-        'CURRENT',
-        'CURRENT_TIMESTAMP',
-        'DATABASE',
-        'DATABASES',
-        'DAY',
-        'DAY_HOUR',
-        'DAY_MINUTE',
-        'DAY_SECOND',
-        'DECIMAL',
-        'DEFAULT',
-        'DEFINER',
-        'DELAYED',
-        'DELETE',
-        'DESC',
-        'DESCRIBE',
-        'DETERMINISTIC',
-        'DISTINCT',
-        'DISTINCTROW',
-        'DIV',
-        'DO',
-        'DOUBLE',
-        'DROP',
-        'DUMPFILE',
-        'DUPLICATE',
-        'DYNAMIC',
-        'ELSE',
-        'ENCLOSED',
-        'END',
-        'ENGINE',
-        'ENGINES',
-        'ENGINE_TYPE',
-        'ESCAPE',
-        'ESCAPED',
-        'EVENTS',
-        'EXCEPT',
-        'EXCLUDE',
-        'EXEC',
-        'EXECUTE',
-        'EXISTS',
-        'EXPLAIN',
-        'EXTENDED',
-        'FALSE',
-        'FAST',
-        'FETCH',
-        'FIELDS',
-        'FILE',
-        'FILTER',
-        'FIRST',
-        'FIXED',
-        'FLOAT',
-        'FLOAT4',
-        'FLOAT8',
-        'FLUSH',
-        'FOLLOWING',
-        'FOR',
-        'FORCE',
-        'FOREIGN',
-        'FROM',
-        'FULL',
-        'FULLTEXT',
-        'FUNCTION',
-        'GLOBAL',
-        'GRANT',
-        'GRANTS',
-        'GROUP',
-        'GROUPS',
-        'HAVING',
-        'HEAP',
-        'HIGH_PRIORITY',
-        'HOSTS',
-        'HOUR',
-        'HOUR_MINUTE',
-        'HOUR_SECOND',
-        'IDENTIFIED',
-        'IF',
-        'IFNULL',
-        'IGNORE',
-        'IN',
-        'INDEX',
-        'INDEXES',
-        'INFILE',
-        'INNER',
-        'INSERT',
-        'INSERT_ID',
-        'INSERT_METHOD',
-        'INT',
-        'INT1',
-        'INT2',
-        'INT3',
-        'INT4',
-        'INT8',
-        'INTEGER',
-        'INTERSECT',
-        'INTERVAL',
-        'INTO',
-        'INVOKER',
-        'IS',
-        'ISOLATION',
-        'JOIN',
-        'KEY',
-        'KEYS',
-        'KILL',
-        'LAST_INSERT_ID',
-        'LEADING',
-        'LEFT',
-        'LEVEL',
-        'LIKE',
-        'LIMIT',
-        'LINEAR',
-        'LINES',
-        'LOAD',
-        'LOCAL',
-        'LOCK',
-        'LOCKS',
-        'LOGS',
-        'LONG',
-        'LONGBLOB',
-        'LONGTEXT',
-        'LOW_PRIORITY',
-        'MARIA',
-        'MASTER',
-        'MASTER_CONNECT_RETRY',
-        'MASTER_HOST',
-        'MASTER_LOG_FILE',
-        'MATCH',
-        'MAX_CONNECTIONS_PER_HOUR',
-        'MAX_QUERIES_PER_HOUR',
-        'MAX_ROWS',
-        'MAX_UPDATES_PER_HOUR',
-        'MAX_USER_CONNECTIONS',
-        'MEDIUM',
-        'MEDIUMBLOB',
-        'MEDIUMINT',
-        'MEDIUMTEXT',
-        'MERGE',
-        'MINUTE',
-        'MINUTE_SECOND',
-        'MIN_ROWS',
-        'MODE',
-        'MODIFY',
-        'MONTH',
-        'MRG_MYISAM',
-        'MYISAM',
-        'NAMES',
-        'NATURAL',
-        'NOT',
-        'NULL',
-        'NUMERIC',
-        'OFFSET',
-        'ON',
-        'OPEN',
-        'OPTIMIZE',
-        'OPTION',
-        'OPTIONALLY',
-        'OR',
-        'ORDER',
-        'OUTER',
-        'OUTFILE',
-        'OVER',
-        'PACK_KEYS',
-        'PAGE',
-        'PARTIAL',
-        'PARTITION',
-        'PARTITIONS',
-        'PASSWORD',
-        'PRECEDING',
-        'PRIMARY',
-        'PRIVILEGES',
-        'PROCEDURE',
-        'PROCESS',
-        'PROCESSLIST',
-        'PURGE',
-        'QUICK',
-        'RAID0',
-        'RAID_CHUNKS',
-        'RAID_CHUNKSIZE',
-        'RAID_TYPE',
-        'RANGE',
-        'READ',
-        'READ_ONLY',
-        'READ_WRITE',
-        'REAL',
-        'RECURSIVE',
-        'REFERENCES',
-        'REGEXP',
-        'RELOAD',
-        'RENAME',
-        'REPAIR',
-        'REPEATABLE',
-        'REPLACE',
-        'REPLICATION',
-        'RESET',
-        'RESTORE',
-        'RESTRICT',
-        'RETURN',
-        'RETURNS',
-        'REVOKE',
-        'RIGHT',
-        'RLIKE',
-        'ROLLBACK',
-        'ROW',
-        'ROWS',
-        'ROW_FORMAT',
-        'SECOND',
-        'SECURITY',
-        'SELECT',
-        'SEPARATOR',
-        'SERIALIZABLE',
-        'SESSION',
-        'SET',
-        'SHARE',
-        'SHOW',
-        'SHUTDOWN',
-        'SLAVE',
-        'SMALLINT',
-        'SONAME',
-        'SOUNDS',
-        'SQL',
-        'SQL_AUTO_IS_NULL',
-        'SQL_BIG_RESULT',
-        'SQL_BIG_SELECTS',
-        'SQL_BIG_TABLES',
-        'SQL_BUFFER_RESULT',
-        'SQL_CACHE',
-        'SQL_CALC_FOUND_ROWS',
-        'SQL_LOG_BIN',
-        'SQL_LOG_OFF',
-        'SQL_LOG_UPDATE',
-        'SQL_LOW_PRIORITY_UPDATES',
-        'SQL_MAX_JOIN_SIZE',
-        'SQL_NO_CACHE',
-        'SQL_QUOTE_SHOW_CREATE',
-        'SQL_SAFE_UPDATES',
-        'SQL_SELECT_LIMIT',
-        'SQL_SLAVE_SKIP_COUNTER',
-        'SQL_SMALL_RESULT',
-        'SQL_WARNINGS',
-        'START',
-        'STARTING',
-        'STATUS',
-        'STOP',
-        'STORAGE',
-        'STRAIGHT_JOIN',
-        'STRING',
-        'STRIPED',
-        'SUPER',
-        'TABLE',
-        'TABLES',
-        'TEMPORARY',
-        'TERMINATED',
-        'THEN',
-        'TIES',
-        'TINYBLOB',
-        'TINYINT',
-        'TINYTEXT',
-        'TO',
-        'TRAILING',
-        'TRANSACTIONAL',
-        'TRUE',
-        'TRUNCATE',
-        'TYPE',
-        'TYPES',
-        'UNBOUNDED',
-        'UNCOMMITTED',
-        'UNION',
-        'UNIQUE',
-        'UNLOCK',
-        'UNSIGNED',
-        'UPDATE',
-        'USAGE',
-        'USE',
-        'USING',
-        'VALUES',
-        'VARBINARY',
-        'VARCHAR',
-        'VARCHARACTER',
-        'VARIABLES',
-        'VIEW',
-        'WHEN',
-        'WHERE',
-        'WINDOW',
-        'WITH',
-        'WORK',
-        'WRITE',
-        'XOR',
-        'YEAR_MONTH',
-    ];
-
-    /**
-     * For SQL formatting
-     * These keywords will all be on their own line
-     *
-     * @var list
-     */
-    private array $reservedToplevel = [
-        'ADD',
-        'ALTER TABLE',
-        'CHANGE',
-        'DELETE FROM',
-        'DROP',
-        'EXCEPT',
-        'FETCH',
-        'FROM',
-        'GROUP BY',
-        'GROUPS',
-        'HAVING',
-        'INTERSECT',
-        'LIMIT',
-        'MODIFY',
-        'OFFSET',
-        'ORDER BY',
-        'PARTITION BY',
-        'RANGE',
-        'ROWS',
-        'SELECT',
-        'SET',
-        'UNION',
-        'UNION ALL',
-        'UPDATE',
-        'VALUES',
-        'WHERE',
-        'WINDOW',
-        'WITH',
-    ];
-
-    /** @var list */
-    private array $reservedNewline = [
-        'AND',
-        'EXCLUDE',
-        'INNER JOIN',
-        'JOIN',
-        'LEFT JOIN',
-        'LEFT OUTER JOIN',
-        'OR',
-        'OUTER JOIN',
-        'RIGHT JOIN',
-        'RIGHT OUTER JOIN',
-        'STRAIGHT_JOIN',
-        'XOR',
-    ];
-
-    /** @var list */
-    private array $functions = [
-        'ABS',
-        'ACOS',
-        'ADDDATE',
-        'ADDTIME',
-        'AES_DECRYPT',
-        'AES_ENCRYPT',
-        'APPROX_COUNT_DISTINCT',
-        'AREA',
-        'ASBINARY',
-        'ASCII',
-        'ASIN',
-        'ASTEXT',
-        'ATAN',
-        'ATAN2',
-        'AVG',
-        'BDMPOLYFROMTEXT',
-        'BDMPOLYFROMWKB',
-        'BDPOLYFROMTEXT',
-        'BDPOLYFROMWKB',
-        'BENCHMARK',
-        'BIN',
-        'BIT_AND',
-        'BIT_COUNT',
-        'BIT_LENGTH',
-        'BIT_OR',
-        'BIT_XOR',
-        'BOUNDARY',
-        'BUFFER',
-        'CAST',
-        'CEIL',
-        'CEILING',
-        'CENTROID',
-        'CHARACTER_LENGTH',
-        'CHAR_LENGTH',
-        'CHECKSUM_AGG',
-        'COALESCE',
-        'COERCIBILITY',
-        'COMPRESS',
-        'CONCAT',
-        'CONCAT_WS',
-        'CONNECTION_ID',
-        'CONV',
-        'CONVERT_TZ',
-        'CONVEXHULL',
-        'COS',
-        'COT',
-        'COUNT',
-        'COUNT_BIG',
-        'CRC32',
-        'CROSSES',
-        'CUME_DIST',
-        'CURDATE',
-        'CURRENT_DATE',
-        'CURRENT_TIME',
-        'CURRENT_USER',
-        'CURTIME',
-        'DATE',
-        'DATEDIFF',
-        'DATE_ADD',
-        'DATE_DIFF',
-        'DATE_FORMAT',
-        'DATE_SUB',
-        'DAYNAME',
-        'DAYOFMONTH',
-        'DAYOFWEEK',
-        'DAYOFYEAR',
-        'DECODE',
-        'DEGREES',
-        'DENSE_RANK',
-        'DES_DECRYPT',
-        'DES_ENCRYPT',
-        'DIFFERENCE',
-        'DIMENSION',
-        'DISJOINT',
-        'DISTANCE',
-        'ELT',
-        'ENCODE',
-        'ENCRYPT',
-        'ENDPOINT',
-        'ENVELOPE',
-        'EQUALS',
-        'EXP',
-        'EXPORT_SET',
-        'EXTERIORRING',
-        'EXTRACT',
-        'EXTRACTVALUE',
-        'FIELD',
-        'FIND_IN_SET',
-        'FIRST_VALUE',
-        'FLOOR',
-        'FORMAT',
-        'FOUND_ROWS',
-        'FROM_DAYS',
-        'FROM_UNIXTIME',
-        'GEOMCOLLFROMTEXT',
-        'GEOMCOLLFROMWKB',
-        'GEOMETRYCOLLECTION',
-        'GEOMETRYCOLLECTIONFROMTEXT',
-        'GEOMETRYCOLLECTIONFROMWKB',
-        'GEOMETRYFROMTEXT',
-        'GEOMETRYFROMWKB',
-        'GEOMETRYN',
-        'GEOMETRYTYPE',
-        'GEOMFROMTEXT',
-        'GEOMFROMWKB',
-        'GET_FORMAT',
-        'GET_LOCK',
-        'GLENGTH',
-        'GREATEST',
-        'GROUPING',
-        'GROUPING_ID',
-        'GROUP_CONCAT',
-        'GROUP_UNIQUE_USERS',
-        'HEX',
-        'INET_ATON',
-        'INET_NTOA',
-        'INSTR',
-        'INTERIORRINGN',
-        'INTERSECTION',
-        'INTERSECTS',
-        'ISCLOSED',
-        'ISEMPTY',
-        'ISNULL',
-        'ISRING',
-        'ISSIMPLE',
-        'IS_FREE_LOCK',
-        'IS_USED_LOCK',
-        'LAG',
-        'LAST_DAY',
-        'LAST_VALUE',
-        'LCASE',
-        'LEAD',
-        'LEAST',
-        'LENGTH',
-        'LINEFROMTEXT',
-        'LINEFROMWKB',
-        'LINESTRING',
-        'LINESTRINGFROMTEXT',
-        'LINESTRINGFROMWKB',
-        'LISTAGG',
-        'LN',
-        'LOAD_FILE',
-        'LOCALTIME',
-        'LOCALTIMESTAMP',
-        'LOCATE',
-        'LOG',
-        'LOG10',
-        'LOG2',
-        'LOWER',
-        'LPAD',
-        'LTRIM',
-        'MAKEDATE',
-        'MAKETIME',
-        'MAKE_SET',
-        'MASTER_POS_WAIT',
-        'MAX',
-        'MBRCONTAINS',
-        'MBRDISJOINT',
-        'MBREQUAL',
-        'MBRINTERSECTS',
-        'MBROVERLAPS',
-        'MBRTOUCHES',
-        'MBRWITHIN',
-        'MD5',
-        'MICROSECOND',
-        'MID',
-        'MIN',
-        'MLINEFROMTEXT',
-        'MLINEFROMWKB',
-        'MOD',
-        'MONTHNAME',
-        'MPOINTFROMTEXT',
-        'MPOINTFROMWKB',
-        'MPOLYFROMTEXT',
-        'MPOLYFROMWKB',
-        'MULTILINESTRING',
-        'MULTILINESTRINGFROMTEXT',
-        'MULTILINESTRINGFROMWKB',
-        'MULTIPOINT',
-        'MULTIPOINTFROMTEXT',
-        'MULTIPOINTFROMWKB',
-        'MULTIPOLYGON',
-        'MULTIPOLYGONFROMTEXT',
-        'MULTIPOLYGONFROMWKB',
-        'NAME_CONST',
-        'NOW',
-        'NTH_VALUE',
-        'NTILE',
-        'NULLIF',
-        'NUMGEOMETRIES',
-        'NUMINTERIORRINGS',
-        'NUMPOINTS',
-        'OCT',
-        'OCTET_LENGTH',
-        'OLD_PASSWORD',
-        'ORD',
-        'OVERLAPS',
-        'PERCENTILE_CONT',
-        'PERCENTILE_DISC',
-        'PERCENT_RANK',
-        'PERIOD_ADD',
-        'PERIOD_DIFF',
-        'PI',
-        'POINT',
-        'POINTFROMTEXT',
-        'POINTFROMWKB',
-        'POINTN',
-        'POINTONSURFACE',
-        'POLYFROMTEXT',
-        'POLYFROMWKB',
-        'POLYGON',
-        'POLYGONFROMTEXT',
-        'POLYGONFROMWKB',
-        'POSITION',
-        'POW',
-        'POWER',
-        'QUARTER',
-        'QUOTE',
-        'RADIANS',
-        'RAND',
-        'RANK',
-        'RELATED',
-        'RELEASE_LOCK',
-        'REPEAT',
-        'REVERSE',
-        'ROUND',
-        'ROW_COUNT',
-        'ROW_NUMBER',
-        'RPAD',
-        'RTRIM',
-        'SCHEMA',
-        'SEC_TO_TIME',
-        'SESSION_USER',
-        'SHA',
-        'SHA1',
-        'SIGN',
-        'SIN',
-        'SLEEP',
-        'SOUNDEX',
-        'SPACE',
-        'SQRT',
-        'SRID',
-        'STARTPOINT',
-        'STD',
-        'STDDEV',
-        'STDDEV_POP',
-        'STDDEV_SAMP',
-        'STDEV',
-        'STDEVP',
-        'STRCMP',
-        'STRING_AGG',
-        'STR_TO_DATE',
-        'SUBDATE',
-        'SUBSTR',
-        'SUBSTRING',
-        'SUBSTRING_INDEX',
-        'SUBTIME',
-        'SUM',
-        'SYMDIFFERENCE',
-        'SYSDATE',
-        'SYSTEM_USER',
-        'TAN',
-        'TIME',
-        'TIMEDIFF',
-        'TIMESTAMP',
-        'TIMESTAMPADD',
-        'TIMESTAMPDIFF',
-        'TIME_FORMAT',
-        'TIME_TO_SEC',
-        'TOUCHES',
-        'TO_DAYS',
-        'TRIM',
-        'UCASE',
-        'UNCOMPRESS',
-        'UNCOMPRESSED_LENGTH',
-        'UNHEX',
-        'UNIQUE_USERS',
-        'UNIX_TIMESTAMP',
-        'UPDATEXML',
-        'UPPER',
-        'USER',
-        'UTC_DATE',
-        'UTC_TIME',
-        'UTC_TIMESTAMP',
-        'UUID',
-        'VAR',
-        'VARIANCE',
-        'VARP',
-        'VAR_POP',
-        'VAR_SAMP',
-        'VERSION',
-        'WEEK',
-        'WEEKDAY',
-        'WEEKOFYEAR',
-        'WITHIN',
-        'X',
-        'Y',
-        'YEAR',
-        'YEARWEEK',
-    ];
-
-    /** Regular expression for tokenizing. */
-    private readonly string $tokenizeRegex;
-
-    /**
-     * Punctuation that can be used as a boundary between other tokens
-     *
-     * @var list
-     */
-    private array $boundaries = [
-        ',',
-        ';',
-        '::', // PostgreSQL cast operator
-        ':',
-        ')',
-        '(',
-        '.',
-        '=',
-        '<',
-        '>',
-        '+',
-        '-',
-        '*',
-        '/',
-        '!',
-        '^',
-        '%',
-        '|',
-        '&',
-        '#',
-    ];
-
-    /**
-     * Stuff that only needs to be done once. Builds tokenizing regular expression.
-     */
-    public function __construct()
-    {
-        $this->tokenizeRegex = $this->makeTokenizeRegex($this->makeTokenizeRegexes());
-    }
-
-    /**
-     * Make regex from a list of values matching longest value first.
-     *
-     * Optimized for speed by matching alternative branch only once
-     * https://github.com/PCRE2Project/pcre2/issues/411 .
-     *
-     * @param list $values
-     */
-    private function makeRegexFromList(array $values, bool $sorted = false): string
-    {
-        // sort list alphabetically and from longest word to shortest
-        if (! $sorted) {
-            usort($values, static function (string $a, string $b) {
-                return str_starts_with($a, $b) || str_starts_with($b, $a)
-                    ? strlen($b) <=> strlen($a)
-                    : $a <=> $b;
-            });
-        }
-
-        /** @var array> $valuesBySharedPrefix */
-        $valuesBySharedPrefix = [];
-        $items                = [];
-        $prefix               = null;
-
-        foreach ($values as $v) {
-            if ($prefix !== null && ! str_starts_with($v, substr($prefix, 0, 1))) {
-                $valuesBySharedPrefix[$prefix] = $items;
-                $items                         = [];
-                $prefix                        = null;
-            }
-
-            $items[] = $v;
-
-            if ($prefix === null) {
-                $prefix = $v;
-            } else {
-                while (! str_starts_with($v, $prefix)) {
-                    $prefix = substr($prefix, 0, -1);
-                }
-            }
-        }
-
-        if ($items !== []) {
-            $valuesBySharedPrefix[$prefix] = $items;
-            $items                         = [];
-            $prefix                        = null;
-        }
-
-        $regex = '(?>';
-
-        foreach ($valuesBySharedPrefix as $prefix => $items) {
-            if ($regex !== '(?>') {
-                $regex .= '|';
-            }
-
-            if (is_int($prefix)) {
-                $prefix = (string) $prefix;
-            }
-
-            $regex .= preg_quote($prefix, '/');
-
-            $regex .= count($items) === 1
-                ? preg_quote(substr(reset($items), strlen($prefix)), '/')
-                : $this->makeRegexFromList(array_map(static fn ($v) => substr($v, strlen($prefix)), $items), true);
-        }
-
-        return $regex . ')';
-    }
-
-    /** @return array */
-    private function makeTokenizeRegexes(): array
-    {
-        // Set up regular expressions
-        $regexBoundaries       = $this->makeRegexFromList($this->boundaries);
-        $regexReserved         = $this->makeRegexFromList($this->reserved);
-        $regexReservedToplevel = str_replace(' ', '\s+', $this->makeRegexFromList($this->reservedToplevel));
-        $regexReservedNewline  = str_replace(' ', '\s+', $this->makeRegexFromList($this->reservedNewline));
-        $regexFunction         = $this->makeRegexFromList($this->functions);
-
-        return [
-            Token::TOKEN_TYPE_WHITESPACE => '\s+',
-            Token::TOKEN_TYPE_COMMENT => '(?:--|#)[^\n]*+',
-            Token::TOKEN_TYPE_BLOCK_COMMENT => '/\*(?:[^*]+|\*(?!/))*+(?:\*|$)(?:/|$)',
-            // 1. backtick quoted string using `` to escape
-            // 2. square bracket quoted string (SQL Server) using ]] to escape
-            Token::TOKEN_TYPE_BACKTICK_QUOTE => <<<'EOD'
-                (?>(?x)
-                    `(?:[^`]+|`(?:`|$))*+(?:`|$)
-                    |\[(?:[^\]]+|\](?:\]|$))*+(?:\]|$)
-                )
-                EOD,
-            // 3. double quoted string using "" or \" to escape
-            // 4. single quoted string using '' or \' to escape
-            Token::TOKEN_TYPE_QUOTE => <<<'EOD'
-                (?>(?sx)
-                    '(?:[^'\\]+|\\(?:.|$)|'(?:'|$))*+(?:'|$)
-                    |"(?:[^"\\]+|\\(?:.|$)|"(?:"|$))*+(?:"|$)
-                )
-                EOD,
-            // User-defined variable, possibly with quoted name
-            Token::TOKEN_TYPE_VARIABLE => '[@:](?:[\w.$]++|(?&t_' . Token::TOKEN_TYPE_BACKTICK_QUOTE . ')|(?&t_' . Token::TOKEN_TYPE_QUOTE . '))',
-            // decimal, binary, or hex
-            Token::TOKEN_TYPE_NUMBER => '(?:\d+(?:\.\d+)?|0x[\da-fA-F]+|0b[01]+)(?=$|\s|"\'`|' . $regexBoundaries . ')',
-            // punctuation and symbols
-            Token::TOKEN_TYPE_BOUNDARY => $regexBoundaries,
-            // A reserved word cannot be preceded by a '.'
-            // this makes it so in "mytable.from", "from" is not considered a reserved word
-            Token::TOKEN_TYPE_RESERVED_TOPLEVEL => '(? '(? '(? '.*?(?=$|\s|["\'`]|' . $regexBoundaries . ')',
-        ];
-    }
-
-    /** @param array $regexes */
-    private function makeTokenizeRegex(array $regexes): string
-    {
-        $parts = [];
-
-        foreach ($regexes as $type => $regex) {
-            $parts[] = '(?' . $regex . ')';
-        }
-
-        return '~\G(?:' . implode('|', $parts) . ')~';
-    }
-
-    /**
-     * Takes a SQL string and breaks it into tokens.
-     * Each token is an associative array with type and value.
-     *
-     * @param string $string The SQL string
-     */
-    public function tokenize(string $string): Cursor
-    {
-        $tokenizeRegex = $this->tokenizeRegex;
-        $upper         = strtoupper($string);
-
-        $tokens = [];
-        $offset = 0;
-
-        while ($offset < strlen($string)) {
-            // Get the next token and the token type
-            preg_match($tokenizeRegex, $upper, $matches, 0, $offset);
-            assert(($matches[0] ?? '') !== '');
-
-            while (is_int($lastMatchesKey = array_key_last($matches))) {
-                array_pop($matches);
-            }
-
-            assert(str_starts_with($lastMatchesKey, 't_'));
-
-            /** @var Token::TOKEN_TYPE_* $tokenType */
-            $tokenType = (int) substr($lastMatchesKey, 2);
-
-            $token = new Token($tokenType, substr($string, $offset, strlen($matches[0])));
-
-            $offset += strlen($token->value());
-
-            $tokens[] = $token;
-        }
-
-        return new Cursor($tokens);
-    }
-}
diff --git a/projects/priceservice/vendor/monolog/monolog/CHANGELOG.md b/projects/priceservice/vendor/monolog/monolog/CHANGELOG.md
deleted file mode 100644
index 4cd4c6b..0000000
--- a/projects/priceservice/vendor/monolog/monolog/CHANGELOG.md
+++ /dev/null
@@ -1,794 +0,0 @@
-### 3.9.0 (2025-03-24)
-
-  * BC Warning: Fixed SendGridHandler to use the V3 API as V2 is now shut down, but this requires a new API key (#1952)
-  * Deprecated Monolog\Test\TestCase in favor of Monolog\Test\MonologTestCase (#1953)
-  * Added extension point for NativeMailerHandler::mail (#1948)
-  * Added setHandler method to BufferHandler to modify the nested handler at runtime (#1946)
-  * Fixed date format in ElasticsearchFormatter to use +00:00 vs +0000 tz identifiers (#1942)
-  * Fixed GelfMessageFormatter handling numeric context/extra keys (#1932)
-
-### 3.8.1 (2024-12-05)
-
-  * Deprecated Monolog\DateTimeImmutable in favor of Monolog\JsonSerializableDateTimeImmutable (#1928)
-  * Fixed gelf keys not being valid when context/extra data keys have spaces in them (#1927)
-  * Fixed empty lines appearing in the stack traces when a custom formatter returned null (#1925)
-
-### 3.8.0 (2024-11-12)
-
-  * Added `$fileOpenMode` param to `StreamHandler` to define a custom fopen mode to open the log file (#1913)
-  * Fixed PHP 8.4 deprecation notices (#1903)
-  * Added ability to extend/override `IntrospectionProcessor` (#1899)
-  * Added `$timeout` param to `ProcessHandler` to configure the stream_select() timeout to avoid blocking too long (default is 1.0 sec) (#1916)
-  * Fixed JsonFormatter batch handling to normalize records individually to make sure they look the same as if they were handled one by one (#1906)
-  * Fixed `StreamHandler` handling of write failures so that it now closes/reopens the stream and retries the write once before failing (#1882)
-  * Fixed `StreamHandler` error handler causing issues if a stream handler triggers an error (#1866)
-  * Fixed `StreamHandler::reset` not closing the stream, so that it would fail to write in some cases with long running processes (#1862)
-  * Fixed `RotatingFileHandler` issue where rotation does not happen in some long running processes (#1905)
-  * Fixed `JsonFormatter` handling of incomplete classes (#1834)
-  * Fixed `RotatingFileHandler` bug where rotation could sometimes not happen correctly (#1905)
-
-### 3.7.0 (2024-06-28)
-
-  * Added `NormalizerFormatter->setBasePath(...)` (and `JsonFormatter` by extension) that allows removing the project's path from the stack trace output (47e301d3e)
-  * Fixed JsonFormatter handling of incomplete classes (#1834)
-  * Fixed private error handlers causing problems with custom StreamHandler implementations (#1866)
-
-### 3.6.0 (2024-04-12)
-
-  * Added `LineFormatter->setBasePath(...)` that allows removing the project's path from the stack trace output (#1873)
-  * Added `$includeExtra` option in `PsrHandler` to also use extra data to replace placeholder values in the message (#1852)
-  * Added ability to customize what is a duplicated message by extending the `DeduplicationHandler` (#1879)
-  * Added handling for using `GelfMessageFormatter` together with the `AmqpHandler` (#1869)
-  * Added ability to extend `GoogleCloudLoggingFormatter` (#1859)
-  * Fixed `__toString` failures in context data crashing the normalization process (#1868)
-  * Fixed PHP 8.4 deprecation warnings (#1874)
-
-### 3.5.0 (2023-10-27)
-
-  * Added ability to indent stack traces in LineFormatter via e.g. `indentStacktraces('  ')` (#1835)
-  * Added ability to configure a max level name length in LineFormatter via e.g. `setMaxLevelNameLength(3)` (#1850)
-  * Added support for indexed arrays (i.e. `[]` and not `{}` arrays once json serialized) containing inline linebreaks in LineFormatter (#1818)
-  * Added `WithMonologChannel` attribute for integrators to use to configure autowiring (#1847)
-  * Fixed log record `extra` data leaking between handlers that have handler-specific processors set (#1819)
-  * Fixed LogglyHandler issue with record level filtering (#1841)
-  * Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
-  * Fixed bug where the previous error handler would not be restored in some cases where StreamHandler fails (#1815)
-  * Fixed normalization error when normalizing incomplete classes (#1833)
-
-### 3.4.0 (2023-06-21)
-
-  * Added `LoadAverageProcessor` to track one of the 1, 5 or 15min load averages (#1803)
-  * Added support for priority to the `AsMonologProcessor` attribute (#1797)
-  * Added `TelegramBotHandler` `topic`/`message_thread_id` support (#1802)
-  * Fixed `FingersCrossedHandler` passthruLevel checking (#1801)
-  * Fixed support of yearly and monthly rotation log file to rotate only once a month/year (#1805)
-  * Fixed `TestHandler` method docs (#1794)
-  * Fixed handling of falsey `display_errors` string values (#1804)
-
-### 3.3.1 (2023-02-06)
-
-  * Fixed Logger not being serializable anymore (#1792)
-
-### 3.3.0 (2023-02-06)
-
-  * Deprecated FlowdockHandler & Formatter as the flowdock service was shutdown (#1748)
-  * Added `ClosureContextProcessor` to allow delaying the creation of context data by setting a Closure in context which is called when the log record is used (#1745)
-  * Added an ElasticsearchHandler option to set the `op_type` to `create` instead of the default `index` (#1766)
-  * Added support for enum context values in PsrLogMessageProcessor (#1773)
-  * Added graylog2/gelf-php 2.x support (#1747)
-  * Improved `BrowserConsoleHandler` logging to use more appropriate methods than just console.log in the browser (#1739)
-  * Fixed GitProcessor not filtering correctly based on Level (#1749)
-  * Fixed `WhatFailureGroupHandler` not catching errors happening inside `close()` (#1791)
-  * Fixed datetime field in `GoogleCloudLoggingFormatter` (#1758)
-  * Fixed infinite loop detection within Fibers (#1753)
-  * Fixed `AmqpHandler->setExtraAttributes` not working with buffering handler wrappers (#1781)
-
-### 3.2.0 (2022-07-24)
-
-  * Deprecated `CubeHandler` and `PHPConsoleHandler` as both projects are abandoned and those should not be used anymore (#1734)
-  * Marked `Logger` `@final` as it should not be extended, prefer composition or talk to us if you are missing something
-  * Added RFC 5424 level (`7` to `0`) support to `Logger::log` and `Logger::addRecord` to increase interoperability (#1723)
-  * Added `SyslogFormatter` to output syslog-like files which can be consumed by tools like [lnav](https://lnav.org/) (#1689)
-  * Added support for `__toString` for objects which are not json serializable in `JsonFormatter` (#1733)
-  * Added `GoogleCloudLoggingFormatter` (#1719)
-  * Added support for Predis 2.x (#1732)
-  * Added `AmqpHandler->setExtraAttributes` to allow configuring attributes when using an AMQPExchange (#1724)
-  * Fixed serialization/unserialization of handlers to make sure private properties are included (#1727)
-  * Fixed allowInlineLineBreaks in LineFormatter causing issues with windows paths containing `\n` or `\r` sequences (#1720)
-  * Fixed max normalization depth not being taken into account when formatting exceptions with a deep chain of previous exceptions (#1726)
-  * Fixed PHP 8.2 deprecation warnings (#1722)
-  * Fixed rare race condition or filesystem issue where StreamHandler is unable to create the directory the log should go into yet it exists already (#1678)
-
-### 3.1.0 (2022-06-09)
-
-  * Added `$datetime` parameter to `Logger::addRecord` as low level API to allow logging into the past or future (#1682)
-  * Added `Logger::useLoggingLoopDetection` to allow disabling cyclic logging detection in concurrent frameworks (#1681)
-  * Fixed handling of fatal errors if callPrevious is disabled in ErrorHandler (#1670)
-  * Fixed interop issue by removing the need for a return type in ProcessorInterface (#1680)
-  * Marked the reusable `Monolog\Test\TestCase` class as `@internal` to make sure PHPStorm does not show it above PHPUnit, you may still use it to test your own handlers/etc though (#1677)
-  * Fixed RotatingFileHandler issue when the date format contained slashes (#1671)
-
-### 3.0.0 (2022-05-10)
-
-Changes from RC1
-
-- The `Monolog\LevelName` enum does not exist anymore, use `Monolog\Level->getName()` instead.
-
-### 3.0.0-RC1 (2022-05-08)
-
-This is mostly a cleanup release offering stronger type guarantees for integrators with the
-array->object/enum changes, but there is no big new feature for end users.
-
-See [UPGRADE notes](UPGRADE.md#300) for details on all breaking changes especially if you are extending/implementing Monolog classes/interfaces.
-
-Noteworthy BC Breaks:
-
-- The minimum supported PHP version is now `8.1.0`.
-- Log records have been converted from an array to a [`Monolog\LogRecord` object](src/Monolog/LogRecord.php)
-  with public (and mostly readonly) properties. e.g. instead of doing
-  `$record['context']` use `$record->context`.
-  In formatters or handlers if you rather need an array to work with you can use `$record->toArray()`
-  to get back a Monolog 1/2 style record array. This will contain the enum values instead of enum cases
-  in the `level` and `level_name` keys to be more backwards compatible and use simpler data types.
-- `FormatterInterface`, `HandlerInterface`, `ProcessorInterface`, etc. changed to contain `LogRecord $record`
-  instead of `array $record` parameter types. If you want to support multiple Monolog versions this should
-  be possible by type-hinting nothing, or `array|LogRecord` if you support PHP 8.0+. You can then code
-  against the $record using Monolog 2 style as LogRecord implements ArrayAccess for BC.
-  The interfaces do not require a `LogRecord` return type even where it would be applicable, but if you only
-  support Monolog 3 in integration code I would recommend you use `LogRecord` return types wherever fitting
-  to ensure forward compatibility as it may be added in Monolog 4.
-- Log levels are now enums [`Monolog\Level`](src/Monolog/Level.php) and [`Monolog\LevelName`](src/Monolog/LevelName.php)
-- Removed deprecated SwiftMailerHandler, migrate to SymfonyMailerHandler instead.
-- `ResettableInterface::reset()` now requires a void return type.
-- All properties have had types added, which may require you to do so as well if you extended
-  a Monolog class and declared the same property.
-
-New deprecations:
-
-- `Logger::DEBUG`, `Logger::ERROR`, etc. are now deprecated in favor of the `Monolog\Level` enum.
-  e.g. instead of `Logger::WARNING` use `Level::Warning` if you need to pass the enum case
-  to Monolog or one of its handlers, or `Level::Warning->value` if you need the integer
-  value equal to what `Logger::WARNING` was giving you.
-- `Logger::getLevelName()` is now deprecated.
-
-### 2.10.0 (2024-11-12)
-
-  * Added `$fileOpenMode` to `StreamHandler` to define a custom fopen mode to open the log file (#1913)
-  * Fixed `StreamHandler` handling of write failures so that it now closes/reopens the stream and retries the write once before failing (#1882)
-  * Fixed `StreamHandler` error handler causing issues if a stream handler triggers an error (#1866)
-  * Fixed `JsonFormatter` handling of incomplete classes (#1834)
-  * Fixed `RotatingFileHandler` bug where rotation could sometimes not happen correctly (#1905)
-
-### 2.9.3 (2024-04-12)
-
-  * Fixed PHP 8.4 deprecation warnings (#1874)
-
-### 2.9.2 (2023-10-27)
-
-  * Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
-  * Fixed bug where the previous error handler would not be restored in some cases where StreamHandler fails (#1815)
-  * Fixed normalization error when normalizing incomplete classes (#1833)
-
-### 2.9.1 (2023-02-06)
-
-  * Fixed Logger not being serializable anymore (#1792)
-
-### 2.9.0 (2023-02-05)
-
-  * Deprecated FlowdockHandler & Formatter as the flowdock service was shutdown (#1748)
-  * Added support for enum context values in PsrLogMessageProcessor (#1773)
-  * Added graylog2/gelf-php 2.x support (#1747)
-  * Improved `BrowserConsoleHandler` logging to use more appropriate methods than just console.log in the browser (#1739)
-  * Fixed `WhatFailureGroupHandler` not catching errors happening inside `close()` (#1791)
-  * Fixed datetime field in `GoogleCloudLoggingFormatter` (#1758)
-  * Fixed infinite loop detection within Fibers (#1753)
-  * Fixed `AmqpHandler->setExtraAttributes` not working with buffering handler wrappers (#1781)
-
-### 2.8.0 (2022-07-24)
-
-  * Deprecated `CubeHandler` and `PHPConsoleHandler` as both projects are abandoned and those should not be used anymore (#1734)
-  * Added RFC 5424 level (`7` to `0`) support to `Logger::log` and `Logger::addRecord` to increase interoperability (#1723)
-  * Added support for `__toString` for objects which are not json serializable in `JsonFormatter` (#1733)
-  * Added `GoogleCloudLoggingFormatter` (#1719)
-  * Added support for Predis 2.x (#1732)
-  * Added `AmqpHandler->setExtraAttributes` to allow configuring attributes when using an AMQPExchange (#1724)
-  * Fixed serialization/unserialization of handlers to make sure private properties are included (#1727)
-  * Fixed allowInlineLineBreaks in LineFormatter causing issues with windows paths containing `\n` or `\r` sequences (#1720)
-  * Fixed max normalization depth not being taken into account when formatting exceptions with a deep chain of previous exceptions (#1726)
-  * Fixed PHP 8.2 deprecation warnings (#1722)
-  * Fixed rare race condition or filesystem issue where StreamHandler is unable to create the directory the log should go into yet it exists already (#1678)
-
-### 2.7.0 (2022-06-09)
-
-  * Added `$datetime` parameter to `Logger::addRecord` as low level API to allow logging into the past or future (#1682)
-  * Added `Logger::useLoggingLoopDetection` to allow disabling cyclic logging detection in concurrent frameworks (#1681)
-  * Fixed handling of fatal errors if callPrevious is disabled in ErrorHandler (#1670)
-  * Marked the reusable `Monolog\Test\TestCase` class as `@internal` to make sure PHPStorm does not show it above PHPUnit, you may still use it to test your own handlers/etc though (#1677)
-  * Fixed RotatingFileHandler issue when the date format contained slashes (#1671)
-
-### 2.6.0 (2022-05-10)
-
-  * Deprecated `SwiftMailerHandler`, use `SymfonyMailerHandler` instead
-  * Added `SymfonyMailerHandler` (#1663)
-  * Added ElasticSearch 8.x support to the ElasticsearchHandler (#1662)
-  * Added a way to filter/modify stack traces in LineFormatter (#1665)
-  * Fixed UdpSocket not being able to reopen/reconnect after close()
-  * Fixed infinite loops if a Handler is triggering logging while handling log records
-
-### 2.5.0 (2022-04-08)
-
-  * Added `callType` to IntrospectionProcessor (#1612)
-  * Fixed AsMonologProcessor syntax to be compatible with PHP 7.2 (#1651)
-
-### 2.4.0 (2022-03-14)
-
-  * Added [`Monolog\LogRecord`](src/Monolog/LogRecord.php) interface that can be used to type-hint records like `array|\Monolog\LogRecord $record` to be forward compatible with the upcoming Monolog 3 changes
-  * Added `includeStacktraces` constructor params to LineFormatter & JsonFormatter (#1603)
-  * Added `persistent`, `timeout`, `writingTimeout`, `connectionTimeout`, `chunkSize` constructor params to SocketHandler and derivatives (#1600)
-  * Added `AsMonologProcessor` PHP attribute which can help autowiring / autoconfiguration of processors if frameworks / integrations decide to make use of it. This is useless when used purely with Monolog (#1637)
-  * Added support for keeping native BSON types as is in MongoDBFormatter (#1620)
-  * Added support for a `user_agent` key in WebProcessor, disabled by default but you can use it by configuring the $extraFields you want (#1613)
-  * Added support for username/userIcon in SlackWebhookHandler (#1617)
-  * Added extension points to BrowserConsoleHandler (#1593)
-  * Added record message/context/extra info to exceptions thrown when a StreamHandler cannot open its stream to avoid completely losing the data logged (#1630)
-  * Fixed error handler signature to accept a null $context which happens with internal PHP errors (#1614)
-  * Fixed a few setter methods not returning `self` (#1609)
-  * Fixed handling of records going over the max Telegram message length (#1616)
-
-### 2.3.5 (2021-10-01)
-
-  * Fixed regression in StreamHandler since 2.3.3 on systems with the memory_limit set to >=20GB (#1592)
-
-### 2.3.4 (2021-09-15)
-
-  * Fixed support for psr/log 3.x (#1589)
-
-### 2.3.3 (2021-09-14)
-
-  * Fixed memory usage when using StreamHandler and calling stream_get_contents on the resource you passed to it (#1578, #1577)
-  * Fixed support for psr/log 2.x (#1587)
-  * Fixed some type annotations
-
-### 2.3.2 (2021-07-23)
-
-  * Fixed compatibility with PHP 7.2 - 7.4 when experiencing PCRE errors (#1568)
-
-### 2.3.1 (2021-07-14)
-
-  * Fixed Utils::getClass handling of anonymous classes not being fully compatible with PHP 8 (#1563)
-  * Fixed some `@inheritDoc` annotations having the wrong case
-
-### 2.3.0 (2021-07-05)
-
-  * Added a ton of PHPStan type annotations as well as type aliases on Monolog\Logger for Record, Level and LevelName that you can import (#1557)
-  * Added ability to customize date format when using JsonFormatter (#1561)
-  * Fixed FilterHandler not calling reset on its internal handler when reset() is called on it (#1531)
-  * Fixed SyslogUdpHandler not setting the timezone correctly on DateTimeImmutable instances (#1540)
-  * Fixed StreamHandler thread safety - chunk size set to 2GB now to avoid interlacing when doing concurrent writes (#1553)
-
-### 2.2.0 (2020-12-14)
-
-  * Added JSON_PARTIAL_OUTPUT_ON_ERROR to default json encoding flags, to avoid dropping entire context data or even records due to an invalid subset of it somewhere
-  * Added setDateFormat to NormalizerFormatter (and Line/Json formatters by extension) to allow changing this after object creation
-  * Added RedisPubSubHandler to log records to a Redis channel using PUBLISH
-  * Added support for Elastica 7, and deprecated the $type argument of ElasticaFormatter which is not in use anymore as of Elastica 7
-  * Added support for millisecond write timeouts in SocketHandler, you can now pass floats to setWritingTimeout, e.g. 0.2 is 200ms
-  * Added support for unix sockets in SyslogUdpHandler (set $port to 0 to make the $host a unix socket)
-  * Added handleBatch support for TelegramBotHandler
-  * Added RFC5424e extended date format including milliseconds to SyslogUdpHandler
-  * Added support for configuring handlers with numeric level values in strings (coming from e.g. env vars)
-  * Fixed Wildfire/FirePHP/ChromePHP handling of unicode characters
-  * Fixed PHP 8 issues in SyslogUdpHandler
-  * Fixed internal type error when mbstring is missing
-
-### 2.1.1 (2020-07-23)
-
-  * Fixed removing of json encoding options
-  * Fixed type hint of $level not accepting strings in SendGridHandler and OverflowHandler
-  * Fixed SwiftMailerHandler not accepting email templates with an empty subject
-  * Fixed array access on null in RavenHandler
-  * Fixed unique_id in WebProcessor not being disableable
-
-### 2.1.0 (2020-05-22)
-
-  * Added `JSON_INVALID_UTF8_SUBSTITUTE` to default json flags, so that invalid UTF8 characters now get converted to [�](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character) instead of being converted from ISO-8859-15 to UTF8 as it was before, which was hardly a comprehensive solution
-  * Added `$ignoreEmptyContextAndExtra` option to JsonFormatter to skip empty context/extra entirely from the output
-  * Added `$parseMode`, `$disableWebPagePreview` and `$disableNotification` options to TelegramBotHandler
-  * Added tentative support for PHP 8
-  * NormalizerFormatter::addJsonEncodeOption and removeJsonEncodeOption are now public to allow modifying default json flags
-  * Fixed GitProcessor type error when there is no git repo present
-  * Fixed normalization of SoapFault objects containing deeply nested objects as "detail"
-  * Fixed support for relative paths in RotatingFileHandler
-
-### 2.0.2 (2019-12-20)
-
-  * Fixed ElasticsearchHandler swallowing exceptions details when failing to index log records
-  * Fixed normalization of SoapFault objects containing non-strings as "detail" in LineFormatter
-  * Fixed formatting of resources in JsonFormatter
-  * Fixed RedisHandler failing to use MULTI properly when passed a proxied Redis instance (e.g. in Symfony with lazy services)
-  * Fixed FilterHandler triggering a notice when handleBatch was filtering all records passed to it
-  * Fixed Turkish locale messing up the conversion of level names to their constant values
-
-### 2.0.1 (2019-11-13)
-
-  * Fixed normalization of Traversables to avoid traversing them as not all of them are rewindable
-  * Fixed setFormatter/getFormatter to forward to the nested handler in FilterHandler, FingersCrossedHandler, BufferHandler, OverflowHandler and SamplingHandler
-  * Fixed BrowserConsoleHandler formatting when using multiple styles
-  * Fixed normalization of exception codes to be always integers even for PDOException which have them as numeric strings
-  * Fixed normalization of SoapFault objects containing non-strings as "detail"
-  * Fixed json encoding across all handlers to always attempt recovery of non-UTF-8 strings instead of failing the whole encoding
-  * Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB).
-  * Fixed type error in BrowserConsoleHandler when the context array of log records was not associative.
-
-### 2.0.0 (2019-08-30)
-
-  * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release
-  * BC Break: Logger methods log/debug/info/notice/warning/error/critical/alert/emergency now have explicit void return types
-  * Added FallbackGroupHandler which works like the WhatFailureGroupHandler but stops dispatching log records as soon as one handler accepted it
-  * Fixed support for UTF-8 when cutting strings to avoid cutting a multibyte-character in half
-  * Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases
-  * Fixed date timezone handling in SyslogUdpHandler
-
-### 2.0.0-beta2 (2019-07-06)
-
-  * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release
-  * BC Break: PHP 7.2 is now the minimum required PHP version.
-  * BC Break: Removed SlackbotHandler, RavenHandler and HipChatHandler, see [UPGRADE.md](UPGRADE.md) for details
-  * Added OverflowHandler which will only flush log records to its nested handler when reaching a certain amount of logs (i.e. only pass through when things go really bad)
-  * Added TelegramBotHandler to log records to a [Telegram](https://core.telegram.org/bots/api) bot account
-  * Added support for JsonSerializable when normalizing exceptions
-  * Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler
-  * Added SoapFault details to formatted exceptions
-  * Fixed DeduplicationHandler silently failing to start when file could not be opened
-  * Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records
-  * Fixed GelfFormatter losing some data when one attachment was too long
-  * Fixed issue in SignalHandler restarting syscalls functionality
-  * Improved performance of LogglyHandler when sending multiple logs in a single request
-
-### 2.0.0-beta1 (2018-12-08)
-
-  * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release
-  * BC Break: PHP 7.1 is now the minimum required PHP version.
-  * BC Break: Quite a few interface changes, only relevant if you implemented your own handlers/processors/formatters
-  * BC Break: Removed non-PSR-3 methods to add records, all the `add*` (e.g. `addWarning`) methods as well as `emerg`, `crit`, `err` and `warn`
-  * BC Break: The record timezone is now set per Logger instance and not statically anymore
-  * BC Break: There is no more default handler configured on empty Logger instances
-  * BC Break: ElasticSearchHandler renamed to ElasticaHandler
-  * BC Break: Various handler-specific breaks, see [UPGRADE.md](UPGRADE.md) for details
-  * Added scalar type hints and return hints in all the places it was possible. Switched strict_types on for more reliability.
-  * Added DateTimeImmutable support, all record datetime are now immutable, and will toString/json serialize with the correct date format, including microseconds (unless disabled)
-  * Added timezone and microseconds to the default date format
-  * Added SendGridHandler to use the SendGrid API to send emails
-  * Added LogmaticHandler to use the Logmatic.io API to store log records
-  * Added SqsHandler to send log records to an AWS SQS queue
-  * Added ElasticsearchHandler to send records via the official ES library. Elastica users should now use ElasticaHandler instead of ElasticSearchHandler
-  * Added NoopHandler which is similar to the NullHandle but does not prevent the bubbling of log records to handlers further down the configuration, useful for temporarily disabling a handler in configuration files
-  * Added ProcessHandler to write log output to the STDIN of a given process
-  * Added HostnameProcessor that adds the machine's hostname to log records
-  * Added a `$dateFormat` option to the PsrLogMessageProcessor which lets you format DateTime instances nicely
-  * Added support for the PHP 7.x `mongodb` extension in the MongoDBHandler
-  * Fixed many minor issues in various handlers, and probably added a few regressions too
-
-### 1.26.1 (2021-05-28)
-
-  * Fixed PHP 8.1 deprecation warning
-
-### 1.26.0 (2020-12-14)
-
-  * Added $dateFormat and $removeUsedContextFields arguments to PsrLogMessageProcessor (backport from 2.x)
-
-### 1.25.5 (2020-07-23)
-
-  * Fixed array access on null in RavenHandler
-  * Fixed unique_id in WebProcessor not being disableable
-
-### 1.25.4 (2020-05-22)
-
-  * Fixed GitProcessor type error when there is no git repo present
-  * Fixed normalization of SoapFault objects containing deeply nested objects as "detail"
-  * Fixed support for relative paths in RotatingFileHandler
-
-### 1.25.3 (2019-12-20)
-
-  * Fixed formatting of resources in JsonFormatter
-  * Fixed RedisHandler failing to use MULTI properly when passed a proxied Redis instance (e.g. in Symfony with lazy services)
-  * Fixed FilterHandler triggering a notice when handleBatch was filtering all records passed to it
-  * Fixed Turkish locale messing up the conversion of level names to their constant values
-
-### 1.25.2 (2019-11-13)
-
-  * Fixed normalization of Traversables to avoid traversing them as not all of them are rewindable
-  * Fixed setFormatter/getFormatter to forward to the nested handler in FilterHandler, FingersCrossedHandler, BufferHandler and SamplingHandler
-  * Fixed BrowserConsoleHandler formatting when using multiple styles
-  * Fixed normalization of exception codes to be always integers even for PDOException which have them as numeric strings
-  * Fixed normalization of SoapFault objects containing non-strings as "detail"
-  * Fixed json encoding across all handlers to always attempt recovery of non-UTF-8 strings instead of failing the whole encoding
-
-### 1.25.1 (2019-09-06)
-
-  * Fixed forward-compatible interfaces to be compatible with Monolog 1.x too.
-
-### 1.25.0 (2019-09-06)
-
-  * Deprecated SlackbotHandler, use SlackWebhookHandler or SlackHandler instead
-  * Deprecated RavenHandler, use sentry/sentry 2.x and their Sentry\Monolog\Handler instead
-  * Deprecated HipChatHandler, migrate to Slack and use SlackWebhookHandler or SlackHandler instead
-  * Added forward-compatible interfaces and traits FormattableHandlerInterface, FormattableHandlerTrait, ProcessableHandlerInterface, ProcessableHandlerTrait. If you use modern PHP and want to make code compatible with Monolog 1 and 2 this can help. You will have to require at least Monolog 1.25 though.
-  * Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler
-  * Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records
-  * Fixed issue in SignalHandler restarting syscalls functionality
-  * Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases
-  * Fixed ZendMonitorHandler to work with the latest Zend Server versions
-  * Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB).
-
-### 1.24.0 (2018-11-05)
-
-  * BC Notice: If you are extending any of the Monolog's Formatters' `normalize` method, make sure you add the new `$depth = 0` argument to your function signature to avoid strict PHP warnings.
-  * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors
-  * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)
-  * Added a way to log signals being received using Monolog\SignalHandler
-  * Added ability to customize error handling at the Logger level using Logger::setExceptionHandler
-  * Added InsightOpsHandler to migrate users of the LogEntriesHandler
-  * Added protection to NormalizerFormatter against circular and very deep structures, it now stops normalizing at a depth of 9
-  * Added capture of stack traces to ErrorHandler when logging PHP errors
-  * Added RavenHandler support for a `contexts` context or extra key to forward that to Sentry's contexts
-  * Added forwarding of context info to FluentdFormatter
-  * Added SocketHandler::setChunkSize to override the default chunk size in case you must send large log lines to rsyslog for example
-  * Added ability to extend/override BrowserConsoleHandler
-  * Added SlackWebhookHandler::getWebhookUrl and SlackHandler::getToken to enable class extensibility
-  * Added SwiftMailerHandler::getSubjectFormatter to enable class extensibility
-  * Dropped official support for HHVM in test builds
-  * Fixed normalization of exception traces when call_user_func is used to avoid serializing objects and the data they contain
-  * Fixed naming of fields in Slack handler, all field names are now capitalized in all cases
-  * Fixed HipChatHandler bug where slack dropped messages randomly
-  * Fixed normalization of objects in Slack handlers
-  * Fixed support for PHP7's Throwable in NewRelicHandler
-  * Fixed race bug when StreamHandler sometimes incorrectly reported it failed to create a directory
-  * Fixed table row styling issues in HtmlFormatter
-  * Fixed RavenHandler dropping the message when logging exception
-  * Fixed WhatFailureGroupHandler skipping processors when using handleBatch
-    and implement it where possible
-  * Fixed display of anonymous class names
-
-### 1.23.0 (2017-06-19)
-
-  * Improved SyslogUdpHandler's support for RFC5424 and added optional `$ident` argument
-  * Fixed GelfHandler truncation to be per field and not per message
-  * Fixed compatibility issue with PHP <5.3.6
-  * Fixed support for headless Chrome in ChromePHPHandler
-  * Fixed support for latest Aws SDK in DynamoDbHandler
-  * Fixed support for SwiftMailer 6.0+ in SwiftMailerHandler
-
-### 1.22.1 (2017-03-13)
-
-  * Fixed lots of minor issues in the new Slack integrations
-  * Fixed support for allowInlineLineBreaks in LineFormatter when formatting exception backtraces
-
-### 1.22.0 (2016-11-26)
-
-  * Added SlackbotHandler and SlackWebhookHandler to set up Slack integration more easily
-  * Added MercurialProcessor to add mercurial revision and branch names to log records
-  * Added support for AWS SDK v3 in DynamoDbHandler
-  * Fixed fatal errors occurring when normalizing generators that have been fully consumed
-  * Fixed RollbarHandler to include a level (rollbar level), monolog_level (original name), channel and datetime (unix)
-  * Fixed RollbarHandler not flushing records automatically, calling close() explicitly is not necessary anymore
-  * Fixed SyslogUdpHandler to avoid sending empty frames
-  * Fixed a few PHP 7.0 and 7.1 compatibility issues
-
-### 1.21.0 (2016-07-29)
-
-  * Break: Reverted the addition of $context when the ErrorHandler handles regular php errors from 1.20.0 as it was causing issues
-  * Added support for more formats in RotatingFileHandler::setFilenameFormat as long as they have Y, m and d in order
-  * Added ability to format the main line of text the SlackHandler sends by explicitly setting a formatter on the handler
-  * Added information about SoapFault instances in NormalizerFormatter
-  * Added $handleOnlyReportedErrors option on ErrorHandler::registerErrorHandler (default true) to allow logging of all errors no matter the error_reporting level
-
-### 1.20.0 (2016-07-02)
-
-  * Added FingersCrossedHandler::activate() to manually trigger the handler regardless of the activation policy
-  * Added StreamHandler::getUrl to retrieve the stream's URL
-  * Added ability to override addRow/addTitle in HtmlFormatter
-  * Added the $context to context information when the ErrorHandler handles a regular php error
-  * Deprecated RotatingFileHandler::setFilenameFormat to only support 3 formats: Y, Y-m and Y-m-d
-  * Fixed WhatFailureGroupHandler to work with PHP7 throwables
-  * Fixed a few minor bugs
-
-### 1.19.0 (2016-04-12)
-
-  * Break: StreamHandler will not close streams automatically that it does not own. If you pass in a stream (not a path/url), then it will not close it for you. You can retrieve those using getStream() if needed
-  * Added DeduplicationHandler to remove duplicate records from notifications across multiple requests, useful for email or other notifications on errors
-  * Added ability to use `%message%` and other LineFormatter replacements in the subject line of emails sent with NativeMailHandler and SwiftMailerHandler
-  * Fixed HipChatHandler handling of long messages
-
-### 1.18.2 (2016-04-02)
-
-  * Fixed ElasticaFormatter to use more precise dates
-  * Fixed GelfMessageFormatter sending too long messages
-
-### 1.18.1 (2016-03-13)
-
-  * Fixed SlackHandler bug where slack dropped messages randomly
-  * Fixed RedisHandler issue when using with the PHPRedis extension
-  * Fixed AmqpHandler content-type being incorrectly set when using with the AMQP extension
-  * Fixed BrowserConsoleHandler regression
-
-### 1.18.0 (2016-03-01)
-
-  * Added optional reduction of timestamp precision via `Logger->useMicrosecondTimestamps(false)`, disabling it gets you a bit of performance boost but reduces the precision to the second instead of microsecond
-  * Added possibility to skip some extra stack frames in IntrospectionProcessor if you have some library wrapping Monolog that is always adding frames
-  * Added `Logger->withName` to clone a logger (keeping all handlers) with a new name
-  * Added FluentdFormatter for the Fluentd unix socket protocol
-  * Added HandlerWrapper base class to ease the creation of handler wrappers, just extend it and override as needed
-  * Added support for replacing context sub-keys using `%context.*%` in LineFormatter
-  * Added support for `payload` context value in RollbarHandler
-  * Added setRelease to RavenHandler to describe the application version, sent with every log
-  * Added support for `fingerprint` context value in RavenHandler
-  * Fixed JSON encoding errors that would gobble up the whole log record, we now handle those more gracefully by dropping chars as needed
-  * Fixed write timeouts in SocketHandler and derivatives, set to 10sec by default, lower it with `setWritingTimeout()`
-  * Fixed PHP7 compatibility with regard to Exception/Throwable handling in a few places
-
-### 1.17.2 (2015-10-14)
-
-  * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers
-  * Fixed SlackHandler handling to use slack functionalities better
-  * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id
-  * Fixed 5.3 compatibility regression
-
-### 1.17.1 (2015-08-31)
-
-  * Fixed RollbarHandler triggering PHP notices
-
-### 1.17.0 (2015-08-30)
-
-  * Added support for `checksum` and `release` context/extra values in RavenHandler
-  * Added better support for exceptions in RollbarHandler
-  * Added UidProcessor::getUid
-  * Added support for showing the resource type in NormalizedFormatter
-  * Fixed IntrospectionProcessor triggering PHP notices
-
-### 1.16.0 (2015-08-09)
-
-  * Added IFTTTHandler to notify ifttt.com triggers
-  * Added Logger::setHandlers() to allow setting/replacing all handlers
-  * Added $capSize in RedisHandler to cap the log size
-  * Fixed StreamHandler creation of directory to only trigger when the first log write happens
-  * Fixed bug in the handling of curl failures
-  * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler
-  * Fixed missing fatal errors records with handlers that need to be closed to flush log records
-  * Fixed TagProcessor::addTags support for associative arrays
-
-### 1.15.0 (2015-07-12)
-
-  * Added addTags and setTags methods to change a TagProcessor
-  * Added automatic creation of directories if they are missing for a StreamHandler to open a log file
-  * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure
-  * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used
-  * Fixed HTML/JS escaping in BrowserConsoleHandler
-  * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only)
-
-### 1.14.0 (2015-06-19)
-
-  * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library
-  * Added support for objects implementing __toString in the NormalizerFormatter
-  * Added support for HipChat's v2 API in HipChatHandler
-  * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app
-  * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true)
-  * Fixed curl errors being silently suppressed
-
-### 1.13.1 (2015-03-09)
-
-  * Fixed regression in HipChat requiring a new token to be created
-
-### 1.13.0 (2015-03-05)
-
-  * Added Registry::hasLogger to check for the presence of a logger instance
-  * Added context.user support to RavenHandler
-  * Added HipChat API v2 support in the HipChatHandler
-  * Added NativeMailerHandler::addParameter to pass params to the mail() process
-  * Added context data to SlackHandler when $includeContextAndExtra is true
-  * Added ability to customize the Swift_Message per-email in SwiftMailerHandler
-  * Fixed SwiftMailerHandler to lazily create message instances if a callback is provided
-  * Fixed serialization of INF and NaN values in Normalizer and LineFormatter
-
-### 1.12.0 (2014-12-29)
-
-  * Break: HandlerInterface::isHandling now receives a partial record containing only a level key. This was always the intent and does not break any Monolog handler but is strictly speaking a BC break and you should check if you relied on any other field in your own handlers.
-  * Added PsrHandler to forward records to another PSR-3 logger
-  * Added SamplingHandler to wrap around a handler and include only every Nth record
-  * Added MongoDBFormatter to support better storage with MongoDBHandler (it must be enabled manually for now)
-  * Added exception codes in the output of most formatters
-  * Added LineFormatter::includeStacktraces to enable exception stack traces in logs (uses more than one line)
-  * Added $useShortAttachment to SlackHandler to minify attachment size and $includeExtra to append extra data
-  * Added $host to HipChatHandler for users of private instances
-  * Added $transactionName to NewRelicHandler and support for a transaction_name context value
-  * Fixed MandrillHandler to avoid outputting API call responses
-  * Fixed some non-standard behaviors in SyslogUdpHandler
-
-### 1.11.0 (2014-09-30)
-
-  * Break: The NewRelicHandler extra and context data are now prefixed with extra_ and context_ to avoid clashes. Watch out if you have scripts reading those from the API and rely on names
-  * Added WhatFailureGroupHandler to suppress any exception coming from the wrapped handlers and avoid chain failures if a logging service fails
-  * Added MandrillHandler to send emails via the Mandrillapp.com API
-  * Added SlackHandler to log records to a Slack.com account
-  * Added FleepHookHandler to log records to a Fleep.io account
-  * Added LogglyHandler::addTag to allow adding tags to an existing handler
-  * Added $ignoreEmptyContextAndExtra to LineFormatter to avoid empty [] at the end
-  * Added $useLocking to StreamHandler and RotatingFileHandler to enable flock() while writing
-  * Added support for PhpAmqpLib in the AmqpHandler
-  * Added FingersCrossedHandler::clear and BufferHandler::clear to reset them between batches in long running jobs
-  * Added support for adding extra fields from $_SERVER in the WebProcessor
-  * Fixed support for non-string values in PrsLogMessageProcessor
-  * Fixed SwiftMailer messages being sent with the wrong date in long running scripts
-  * Fixed minor PHP 5.6 compatibility issues
-  * Fixed BufferHandler::close being called twice
-
-### 1.10.0 (2014-06-04)
-
-  * Added Logger::getHandlers() and Logger::getProcessors() methods
-  * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached
-  * Added support for extra data in NewRelicHandler
-  * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines
-
-### 1.9.1 (2014-04-24)
-
-  * Fixed regression in RotatingFileHandler file permissions
-  * Fixed initialization of the BufferHandler to make sure it gets flushed after receiving records
-  * Fixed ChromePHPHandler and FirePHPHandler's activation strategies to be more conservative
-
-### 1.9.0 (2014-04-20)
-
-  * Added LogEntriesHandler to send logs to a LogEntries account
-  * Added $filePermissions to tweak file mode on StreamHandler and RotatingFileHandler
-  * Added $useFormatting flag to MemoryProcessor to make it send raw data in bytes
-  * Added support for table formatting in FirePHPHandler via the table context key
-  * Added a TagProcessor to add tags to records, and support for tags in RavenHandler
-  * Added $appendNewline flag to the JsonFormatter to enable using it when logging to files
-  * Added sound support to the PushoverHandler
-  * Fixed multi-threading support in StreamHandler
-  * Fixed empty headers issue when ChromePHPHandler received no records
-  * Fixed default format of the ErrorLogHandler
-
-### 1.8.0 (2014-03-23)
-
-  * Break: the LineFormatter now strips newlines by default because this was a bug, set $allowInlineLineBreaks to true if you need them
-  * Added BrowserConsoleHandler to send logs to any browser's console via console.log() injection in the output
-  * Added FilterHandler to filter records and only allow those of a given list of levels through to the wrapped handler
-  * Added FlowdockHandler to send logs to a Flowdock account
-  * Added RollbarHandler to send logs to a Rollbar account
-  * Added HtmlFormatter to send prettier log emails with colors for each log level
-  * Added GitProcessor to add the current branch/commit to extra record data
-  * Added a Monolog\Registry class to allow easier global access to pre-configured loggers
-  * Added support for the new official graylog2/gelf-php lib for GelfHandler, upgrade if you can by replacing the mlehner/gelf-php requirement
-  * Added support for HHVM
-  * Added support for Loggly batch uploads
-  * Added support for tweaking the content type and encoding in NativeMailerHandler
-  * Added $skipClassesPartials to tweak the ignored classes in the IntrospectionProcessor
-  * Fixed batch request support in GelfHandler
-
-### 1.7.0 (2013-11-14)
-
-  * Added ElasticSearchHandler to send logs to an Elastic Search server
-  * Added DynamoDbHandler and ScalarFormatter to send logs to Amazon's Dynamo DB
-  * Added SyslogUdpHandler to send logs to a remote syslogd server
-  * Added LogglyHandler to send logs to a Loggly account
-  * Added $level to IntrospectionProcessor so it only adds backtraces when needed
-  * Added $version to LogstashFormatter to allow using the new v1 Logstash format
-  * Added $appName to NewRelicHandler
-  * Added configuration of Pushover notification retries/expiry
-  * Added $maxColumnWidth to NativeMailerHandler to change the 70 chars default
-  * Added chainability to most setters for all handlers
-  * Fixed RavenHandler batch processing so it takes the message from the record with highest priority
-  * Fixed HipChatHandler batch processing so it sends all messages at once
-  * Fixed issues with eAccelerator
-  * Fixed and improved many small things
-
-### 1.6.0 (2013-07-29)
-
-  * Added HipChatHandler to send logs to a HipChat chat room
-  * Added ErrorLogHandler to send logs to PHP's error_log function
-  * Added NewRelicHandler to send logs to NewRelic's service
-  * Added Monolog\ErrorHandler helper class to register a Logger as exception/error/fatal handler
-  * Added ChannelLevelActivationStrategy for the FingersCrossedHandler to customize levels by channel
-  * Added stack traces output when normalizing exceptions (json output & co)
-  * Added Monolog\Logger::API constant (currently 1)
-  * Added support for ChromePHP's v4.0 extension
-  * Added support for message priorities in PushoverHandler, see $highPriorityLevel and $emergencyLevel
-  * Added support for sending messages to multiple users at once with the PushoverHandler
-  * Fixed RavenHandler's support for batch sending of messages (when behind a Buffer or FingersCrossedHandler)
-  * Fixed normalization of Traversables with very large data sets, only the first 1000 items are shown now
-  * Fixed issue in RotatingFileHandler when an open_basedir restriction is active
-  * Fixed minor issues in RavenHandler and bumped the API to Raven 0.5.0
-  * Fixed SyslogHandler issue when many were used concurrently with different facilities
-
-### 1.5.0 (2013-04-23)
-
-  * Added ProcessIdProcessor to inject the PID in log records
-  * Added UidProcessor to inject a unique identifier to all log records of one request/run
-  * Added support for previous exceptions in the LineFormatter exception serialization
-  * Added Monolog\Logger::getLevels() to get all available levels
-  * Fixed ChromePHPHandler so it avoids sending headers larger than Chrome can handle
-
-### 1.4.1 (2013-04-01)
-
-  * Fixed exception formatting in the LineFormatter to be more minimalistic
-  * Fixed RavenHandler's handling of context/extra data, requires Raven client >0.1.0
-  * Fixed log rotation in RotatingFileHandler to work with long running scripts spanning multiple days
-  * Fixed WebProcessor array access so it checks for data presence
-  * Fixed Buffer, Group and FingersCrossed handlers to make use of their processors
-
-### 1.4.0 (2013-02-13)
-
-  * Added RedisHandler to log to Redis via the Predis library or the phpredis extension
-  * Added ZendMonitorHandler to log to the Zend Server monitor
-  * Added the possibility to pass arrays of handlers and processors directly in the Logger constructor
-  * Added `$useSSL` option to the PushoverHandler which is enabled by default
-  * Fixed ChromePHPHandler and FirePHPHandler issue when multiple instances are used simultaneously
-  * Fixed header injection capability in the NativeMailHandler
-
-### 1.3.1 (2013-01-11)
-
-  * Fixed LogstashFormatter to be usable with stream handlers
-  * Fixed GelfMessageFormatter levels on Windows
-
-### 1.3.0 (2013-01-08)
-
-  * Added PSR-3 compliance, the `Monolog\Logger` class is now an instance of `Psr\Log\LoggerInterface`
-  * Added PsrLogMessageProcessor that you can selectively enable for full PSR-3 compliance
-  * Added LogstashFormatter (combine with SocketHandler or StreamHandler to send logs to Logstash)
-  * Added PushoverHandler to send mobile notifications
-  * Added CouchDBHandler and DoctrineCouchDBHandler
-  * Added RavenHandler to send data to Sentry servers
-  * Added support for the new MongoClient class in MongoDBHandler
-  * Added microsecond precision to log records' timestamps
-  * Added `$flushOnOverflow` param to BufferHandler to flush by batches instead of losing
-    the oldest entries
-  * Fixed normalization of objects with cyclic references
-
-### 1.2.1 (2012-08-29)
-
-  * Added new $logopts arg to SyslogHandler to provide custom openlog options
-  * Fixed fatal error in SyslogHandler
-
-### 1.2.0 (2012-08-18)
-
-  * Added AmqpHandler (for use with AMQP servers)
-  * Added CubeHandler
-  * Added NativeMailerHandler::addHeader() to send custom headers in mails
-  * Added the possibility to specify more than one recipient in NativeMailerHandler
-  * Added the possibility to specify float timeouts in SocketHandler
-  * Added NOTICE and EMERGENCY levels to conform with RFC 5424
-  * Fixed the log records to use the php default timezone instead of UTC
-  * Fixed BufferHandler not being flushed properly on PHP fatal errors
-  * Fixed normalization of exotic resource types
-  * Fixed the default format of the SyslogHandler to avoid duplicating datetimes in syslog
-
-### 1.1.0 (2012-04-23)
-
-  * Added Monolog\Logger::isHandling() to check if a handler will
-    handle the given log level
-  * Added ChromePHPHandler
-  * Added MongoDBHandler
-  * Added GelfHandler (for use with Graylog2 servers)
-  * Added SocketHandler (for use with syslog-ng for example)
-  * Added NormalizerFormatter
-  * Added the possibility to change the activation strategy of the FingersCrossedHandler
-  * Added possibility to show microseconds in logs
-  * Added `server` and `referer` to WebProcessor output
-
-### 1.0.2 (2011-10-24)
-
-  * Fixed bug in IE with large response headers and FirePHPHandler
-
-### 1.0.1 (2011-08-25)
-
-  * Added MemoryPeakUsageProcessor and MemoryUsageProcessor
-  * Added Monolog\Logger::getName() to get a logger's channel name
-
-### 1.0.0 (2011-07-06)
-
-  * Added IntrospectionProcessor to get info from where the logger was called
-  * Fixed WebProcessor in CLI
-
-### 1.0.0-RC1 (2011-07-01)
-
-  * Initial release
diff --git a/projects/priceservice/vendor/monolog/monolog/LICENSE b/projects/priceservice/vendor/monolog/monolog/LICENSE
deleted file mode 100644
index aa2a042..0000000
--- a/projects/priceservice/vendor/monolog/monolog/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011-2020 Jordi Boggiano
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/projects/priceservice/vendor/monolog/monolog/README.md b/projects/priceservice/vendor/monolog/monolog/README.md
deleted file mode 100644
index da44eb1..0000000
--- a/projects/priceservice/vendor/monolog/monolog/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-![Monolog](logo.jpg)
-
-# Monolog - Logging for PHP [![Continuous Integration](https://github.com/Seldaek/monolog/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/Seldaek/monolog/actions)
-
-[![Total Downloads](https://img.shields.io/packagist/dt/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)
-[![Latest Stable Version](https://img.shields.io/packagist/v/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)
-
->**Note** This is the **documentation for Monolog 3.x**, if you are using older releases
->see the documentation for [Monolog 2.x](https://github.com/Seldaek/monolog/blob/2.x/README.md) or [Monolog 1.x](https://github.com/Seldaek/monolog/blob/1.x/README.md)
-
-Monolog sends your logs to files, sockets, inboxes, databases and various
-web services. See the complete list of handlers below. Special handlers
-allow you to build advanced logging strategies.
-
-This library implements the [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
-interface that you can type-hint against in your own libraries to keep
-a maximum of interoperability. You can also use it in your applications to
-make sure you can always use another compatible logger at a later time.
-As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels.
-Internally Monolog still uses its own level scheme since it predates PSR-3.
-
-
-
-## Installation
-
-Install the latest version with
-
-```bash
-composer require monolog/monolog
-```
-
-## Basic Usage
-
-```php
-pushHandler(new StreamHandler('path/to/your.log', Level::Warning));
-
-// add records to the log
-$log->warning('Foo');
-$log->error('Bar');
-```
-
-## Documentation
-
-- [Usage Instructions](doc/01-usage.md)
-- [Handlers, Formatters and Processors](doc/02-handlers-formatters-processors.md)
-- [Utility Classes](doc/03-utilities.md)
-- [Extending Monolog](doc/04-extending.md)
-- [Log Record Structure](doc/message-structure.md)
-
-## Support Monolog Financially
-
-Get supported Monolog and help fund the project with the [Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-monolog-monolog?utm_source=packagist-monolog-monolog&utm_medium=referral&utm_campaign=enterprise) or via [GitHub sponsorship](https://github.com/sponsors/Seldaek).
-
-Tidelift delivers commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.
-
-## Third Party Packages
-
-Third party handlers, formatters and processors are
-[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You
-can also add your own there if you publish one.
-
-## About
-
-### Requirements
-
-- Monolog `^3.0` works with PHP 8.1 or above.
-- Monolog `^2.5` works with PHP 7.2 or above.
-- Monolog `^1.25` works with PHP 5.3 up to 8.1, but is not very maintained anymore and will not receive PHP support fixes anymore.
-
-### Support
-
-Monolog 1.x support is somewhat limited at this point and only important fixes will be done. You should migrate to Monolog 2 or 3 where possible to benefit from all the latest features and fixes.
-
-### Submitting bugs and feature requests
-
-Bugs and feature request are tracked on [GitHub](https://github.com/Seldaek/monolog/issues)
-
-### Framework Integrations
-
-- Frameworks and libraries using [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
-  can be used very easily with Monolog since it implements the interface.
-- [Symfony](http://symfony.com) comes out of the box with Monolog.
-- [Laravel](http://laravel.com/) comes out of the box with Monolog.
-- [Lumen](http://lumen.laravel.com/) comes out of the box with Monolog.
-- [PPI](https://github.com/ppi/framework) comes out of the box with Monolog.
-- [CakePHP](http://cakephp.org/) is usable with Monolog via the [cakephp-monolog](https://github.com/jadb/cakephp-monolog) plugin.
-- [XOOPS 2.6](http://xoops.org/) comes out of the box with Monolog.
-- [Aura.Web_Project](https://github.com/auraphp/Aura.Web_Project) comes out of the box with Monolog.
-- [Nette Framework](http://nette.org/en/) is usable with Monolog via the [contributte/monolog](https://github.com/contributte/monolog) or [orisai/nette-monolog](https://github.com/orisai/nette-monolog) extensions.
-- [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog.
-- [FuelPHP](http://fuelphp.com/) comes out of the box with Monolog.
-- [Equip Framework](https://github.com/equip/framework) comes out of the box with Monolog.
-- [Yii 2](http://www.yiiframework.com/) is usable with Monolog via the [yii2-monolog](https://github.com/merorafael/yii2-monolog) or [yii2-psr-log-target](https://github.com/samdark/yii2-psr-log-target) plugins.
-- [Hawkbit Micro Framework](https://github.com/HawkBitPhp/hawkbit) comes out of the box with Monolog.
-- [SilverStripe 4](https://www.silverstripe.org/) comes out of the box with Monolog.
-- [Drupal](https://www.drupal.org/) is usable with Monolog via the [monolog](https://www.drupal.org/project/monolog) module.
-- [Aimeos ecommerce framework](https://aimeos.org/) is usable with Monolog via the [ai-monolog](https://github.com/aimeos/ai-monolog) extension.
-- [Magento](https://magento.com/) comes out of the box with Monolog.
-- [Spiral Framework](https://spiral.dev) comes out of the box with Monolog bridge.
-
-### Author
-
-Jordi Boggiano -  - 
-See also the list of [contributors](https://github.com/Seldaek/monolog/contributors) who participated in this project. - -### License - -Monolog is licensed under the MIT License - see the [LICENSE](LICENSE) file for details - -### Acknowledgements - -This library is heavily inspired by Python's [Logbook](https://logbook.readthedocs.io/en/stable/) -library, although most concepts have been adjusted to fit to the PHP world. diff --git a/projects/priceservice/vendor/monolog/monolog/composer.json b/projects/priceservice/vendor/monolog/monolog/composer.json deleted file mode 100644 index 9574a1b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/composer.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "monolog/monolog", - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "keywords": ["log", "logging", "psr-3"], - "homepage": "https://github.com/Seldaek/monolog", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "require": { - "php": ">=8.1", - "psr/log": "^2.0 || ^3.0" - }, - "require-dev": { - "ext-json": "*", - "aws/aws-sdk-php": "^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "graylog2/gelf-php": "^1.4.2 || ^2.0", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "php-console/php-console": "^3.1.8", - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^10.5.17 || ^11.0.7", - "predis/predis": "^1.1 || ^2", - "rollbar/rollbar": "^4.0", - "ruflin/elastica": "^7 || ^8", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" - }, - "suggest": { - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-openssl": "Required to send log messages using SSL" - }, - "autoload": { - "psr-4": {"Monolog\\": "src/Monolog"} - }, - "autoload-dev": { - "psr-4": {"Monolog\\": "tests/Monolog"} - }, - "provide": { - "psr/log-implementation": "3.0.0" - }, - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "scripts": { - "test": "@php vendor/bin/phpunit", - "phpstan": "@php vendor/bin/phpstan analyse" - }, - "config": { - "lock": false, - "sort-packages": true, - "platform-check": false, - "allow-plugins": { - "php-http/discovery": false - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php deleted file mode 100644 index c519e05..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Attribute; - -/** - * A reusable attribute to help configure a class or a method as a processor. - * - * Using it offers no guarantee: it needs to be leveraged by a Monolog third-party consumer. - * - * Using it with the Monolog library only has no effect at all: processors should still be turned into a callable if - * needed and manually pushed to the loggers and to the processable handlers. - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] -class AsMonologProcessor -{ - /** - * @param string|null $channel The logging channel the processor should be pushed to. - * @param string|null $handler The handler the processor should be pushed to. - * @param string|null $method The method that processes the records (if the attribute is used at the class level). - * @param int|null $priority The priority of the processor so the order can be determined. - */ - public function __construct( - public readonly ?string $channel = null, - public readonly ?string $handler = null, - public readonly ?string $method = null, - public readonly ?int $priority = null - ) { - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/WithMonologChannel.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/WithMonologChannel.php deleted file mode 100644 index 862e05b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Attribute/WithMonologChannel.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Attribute; - -/** - * A reusable attribute to help configure a class as expecting a given logger channel. - * - * Using it offers no guarantee: it needs to be leveraged by a Monolog third-party consumer. - * - * Using it with the Monolog library only has no effect at all: wiring the logger instance into - * other classes is not managed by Monolog. - */ -#[\Attribute(\Attribute::TARGET_CLASS)] -final class WithMonologChannel -{ - public function __construct( - public readonly string $channel - ) { - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php deleted file mode 100644 index 3cb7086..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -class_alias(JsonSerializableDateTimeImmutable::class, 'Monolog\DateTimeImmutable'); - -// @phpstan-ignore-next-line -if (false) { - /** - * @deprecated Use \Monolog\JsonSerializableDateTimeImmutable instead. - */ - class DateTimeImmutable extends JsonSerializableDateTimeImmutable - { - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/ErrorHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/ErrorHandler.php deleted file mode 100644 index 805f2df..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/ErrorHandler.php +++ /dev/null @@ -1,279 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Closure; -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; - -/** - * Monolog error handler - * - * A facility to enable logging of runtime errors, exceptions and fatal errors. - * - * Quick setup: ErrorHandler::register($logger); - * - * @author Jordi Boggiano - */ -class ErrorHandler -{ - private Closure|null $previousExceptionHandler = null; - - /** @var array an array of class name to LogLevel::* constant mapping */ - private array $uncaughtExceptionLevelMap = []; - - /** @var Closure|true|null */ - private Closure|bool|null $previousErrorHandler = null; - - /** @var array an array of E_* constant to LogLevel::* constant mapping */ - private array $errorLevelMap = []; - - private bool $handleOnlyReportedErrors = true; - - private bool $hasFatalErrorHandler = false; - - private string $fatalLevel = LogLevel::ALERT; - - private string|null $reservedMemory = null; - - /** @var ?array{type: int, message: string, file: string, line: int, trace: mixed} */ - private array|null $lastFatalData = null; - - private const FATAL_ERRORS = [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR]; - - public function __construct( - private LoggerInterface $logger - ) { - } - - /** - * Registers a new ErrorHandler for a given Logger - * - * By default it will handle errors, exceptions and fatal errors - * - * @param array|false $errorLevelMap an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling - * @param array|false $exceptionLevelMap an array of class name to LogLevel::* constant mapping, or false to disable exception handling - * @param LogLevel::*|null|false $fatalLevel a LogLevel::* constant, null to use the default LogLevel::ALERT or false to disable fatal error handling - * @return static - */ - public static function register(LoggerInterface $logger, $errorLevelMap = [], $exceptionLevelMap = [], $fatalLevel = null): self - { - /** @phpstan-ignore-next-line */ - $handler = new static($logger); - if ($errorLevelMap !== false) { - $handler->registerErrorHandler($errorLevelMap); - } - if ($exceptionLevelMap !== false) { - $handler->registerExceptionHandler($exceptionLevelMap); - } - if ($fatalLevel !== false) { - $handler->registerFatalHandler($fatalLevel); - } - - return $handler; - } - - /** - * @param array $levelMap an array of class name to LogLevel::* constant mapping - * @return $this - */ - public function registerExceptionHandler(array $levelMap = [], bool $callPrevious = true): self - { - $prev = set_exception_handler(function (\Throwable $e): void { - $this->handleException($e); - }); - $this->uncaughtExceptionLevelMap = $levelMap; - foreach ($this->defaultExceptionLevelMap() as $class => $level) { - if (!isset($this->uncaughtExceptionLevelMap[$class])) { - $this->uncaughtExceptionLevelMap[$class] = $level; - } - } - if ($callPrevious && null !== $prev) { - $this->previousExceptionHandler = $prev(...); - } - - return $this; - } - - /** - * @param array $levelMap an array of E_* constant to LogLevel::* constant mapping - * @return $this - */ - public function registerErrorHandler(array $levelMap = [], bool $callPrevious = true, int $errorTypes = -1, bool $handleOnlyReportedErrors = true): self - { - $prev = set_error_handler($this->handleError(...), $errorTypes); - $this->errorLevelMap = array_replace($this->defaultErrorLevelMap(), $levelMap); - if ($callPrevious) { - $this->previousErrorHandler = $prev !== null ? $prev(...) : true; - } else { - $this->previousErrorHandler = null; - } - - $this->handleOnlyReportedErrors = $handleOnlyReportedErrors; - - return $this; - } - - /** - * @param LogLevel::*|null $level a LogLevel::* constant, null to use the default LogLevel::ALERT - * @param int $reservedMemorySize Amount of KBs to reserve in memory so that it can be freed when handling fatal errors giving Monolog some room in memory to get its job done - * @return $this - */ - public function registerFatalHandler($level = null, int $reservedMemorySize = 20): self - { - register_shutdown_function($this->handleFatalError(...)); - - $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize); - $this->fatalLevel = null === $level ? LogLevel::ALERT : $level; - $this->hasFatalErrorHandler = true; - - return $this; - } - - /** - * @return array - */ - protected function defaultExceptionLevelMap(): array - { - return [ - 'ParseError' => LogLevel::CRITICAL, - 'Throwable' => LogLevel::ERROR, - ]; - } - - /** - * @return array - */ - protected function defaultErrorLevelMap(): array - { - return [ - E_ERROR => LogLevel::CRITICAL, - E_WARNING => LogLevel::WARNING, - E_PARSE => LogLevel::ALERT, - E_NOTICE => LogLevel::NOTICE, - E_CORE_ERROR => LogLevel::CRITICAL, - E_CORE_WARNING => LogLevel::WARNING, - E_COMPILE_ERROR => LogLevel::ALERT, - E_COMPILE_WARNING => LogLevel::WARNING, - E_USER_ERROR => LogLevel::ERROR, - E_USER_WARNING => LogLevel::WARNING, - E_USER_NOTICE => LogLevel::NOTICE, - 2048 => LogLevel::NOTICE, // E_STRICT - E_RECOVERABLE_ERROR => LogLevel::ERROR, - E_DEPRECATED => LogLevel::NOTICE, - E_USER_DEPRECATED => LogLevel::NOTICE, - ]; - } - - private function handleException(\Throwable $e): never - { - $level = LogLevel::ERROR; - foreach ($this->uncaughtExceptionLevelMap as $class => $candidate) { - if ($e instanceof $class) { - $level = $candidate; - break; - } - } - - $this->logger->log( - $level, - sprintf('Uncaught Exception %s: "%s" at %s line %s', Utils::getClass($e), $e->getMessage(), $e->getFile(), $e->getLine()), - ['exception' => $e] - ); - - if (null !== $this->previousExceptionHandler) { - ($this->previousExceptionHandler)($e); - } - - if (!headers_sent() && \in_array(strtolower((string) \ini_get('display_errors')), ['0', '', 'false', 'off', 'none', 'no'], true)) { - http_response_code(500); - } - - exit(255); - } - - private function handleError(int $code, string $message, string $file = '', int $line = 0): bool - { - if ($this->handleOnlyReportedErrors && 0 === (error_reporting() & $code)) { - return false; - } - - // fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries - if (!$this->hasFatalErrorHandler || !\in_array($code, self::FATAL_ERRORS, true)) { - $level = $this->errorLevelMap[$code] ?? LogLevel::CRITICAL; - $this->logger->log($level, self::codeToString($code).': '.$message, ['code' => $code, 'message' => $message, 'file' => $file, 'line' => $line]); - } else { - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - array_shift($trace); // Exclude handleError from trace - $this->lastFatalData = ['type' => $code, 'message' => $message, 'file' => $file, 'line' => $line, 'trace' => $trace]; - } - - if ($this->previousErrorHandler === true) { - return false; - } - if ($this->previousErrorHandler instanceof Closure) { - return (bool) ($this->previousErrorHandler)($code, $message, $file, $line); - } - - return true; - } - - /** - * @private - */ - public function handleFatalError(): void - { - $this->reservedMemory = ''; - - if (\is_array($this->lastFatalData)) { - $lastError = $this->lastFatalData; - } else { - $lastError = error_get_last(); - } - if (\is_array($lastError) && \in_array($lastError['type'], self::FATAL_ERRORS, true)) { - $trace = $lastError['trace'] ?? null; - $this->logger->log( - $this->fatalLevel, - 'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'], - ['code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line'], 'trace' => $trace] - ); - - if ($this->logger instanceof Logger) { - foreach ($this->logger->getHandlers() as $handler) { - $handler->close(); - } - } - } - } - - private static function codeToString(int $code): string - { - return match ($code) { - E_ERROR => 'E_ERROR', - E_WARNING => 'E_WARNING', - E_PARSE => 'E_PARSE', - E_NOTICE => 'E_NOTICE', - E_CORE_ERROR => 'E_CORE_ERROR', - E_CORE_WARNING => 'E_CORE_WARNING', - E_COMPILE_ERROR => 'E_COMPILE_ERROR', - E_COMPILE_WARNING => 'E_COMPILE_WARNING', - E_USER_ERROR => 'E_USER_ERROR', - E_USER_WARNING => 'E_USER_WARNING', - E_USER_NOTICE => 'E_USER_NOTICE', - 2048 => 'E_STRICT', - E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR', - E_DEPRECATED => 'E_DEPRECATED', - E_USER_DEPRECATED => 'E_USER_DEPRECATED', - default => 'Unknown PHP error', - }; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php deleted file mode 100644 index beb5106..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Formats a log message according to the ChromePHP array format - * - * @author Christophe Coevoet - */ -class ChromePHPFormatter implements FormatterInterface -{ - /** - * Translates Monolog log levels to Wildfire levels. - * - * @return 'log'|'info'|'warn'|'error' - */ - private function toWildfireLevel(Level $level): string - { - return match ($level) { - Level::Debug => 'log', - Level::Info => 'info', - Level::Notice => 'info', - Level::Warning => 'warn', - Level::Error => 'error', - Level::Critical => 'error', - Level::Alert => 'error', - Level::Emergency => 'error', - }; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $backtrace = 'unknown'; - if (isset($record->extra['file'], $record->extra['line'])) { - $backtrace = $record->extra['file'].' : '.$record->extra['line']; - unset($record->extra['file'], $record->extra['line']); - } - - $message = ['message' => $record->message]; - if (\count($record->context) > 0) { - $message['context'] = $record->context; - } - if (\count($record->extra) > 0) { - $message['extra'] = $record->extra; - } - if (\count($message) === 1) { - $message = reset($message); - } - - return [ - $record->channel, - $message, - $backtrace, - $this->toWildfireLevel($record->level), - ]; - } - - /** - * @inheritDoc - */ - public function formatBatch(array $records) - { - $formatted = []; - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php deleted file mode 100644 index a0fa4a9..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Elastica\Document; -use Monolog\LogRecord; - -/** - * Format a log message into an Elastica Document - * - * @author Jelle Vink - */ -class ElasticaFormatter extends NormalizerFormatter -{ - /** - * @var string Elastic search index name - */ - protected string $index; - - /** - * @var string|null Elastic search document type - */ - protected string|null $type; - - /** - * @param string $index Elastic Search index name - * @param ?string $type Elastic Search document type, deprecated as of Elastica 7 - */ - public function __construct(string $index, ?string $type) - { - // elasticsearch requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\TH:i:s.uP'); - - $this->index = $index; - $this->type = $type; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record) - { - $record = parent::format($record); - - return $this->getDocument($record); - } - - public function getIndex(): string - { - return $this->index; - } - - /** - * @deprecated since Elastica 7 type has no effect - */ - public function getType(): string - { - /** @phpstan-ignore-next-line */ - return $this->type; - } - - /** - * Convert a log message into an Elastica Document - * - * @param mixed[] $record - */ - protected function getDocument(array $record): Document - { - $document = new Document(); - $document->setData($record); - $document->setIndex($this->index); - - return $document; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php deleted file mode 100644 index 6326cf5..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use DateTimeInterface; -use Monolog\LogRecord; - -/** - * Format a log message into an Elasticsearch record - * - * @author Avtandil Kikabidze - */ -class ElasticsearchFormatter extends NormalizerFormatter -{ - /** - * @var string Elasticsearch index name - */ - protected string $index; - - /** - * @var string Elasticsearch record type - */ - protected string $type; - - /** - * @param string $index Elasticsearch index name - * @param string $type Elasticsearch record type - */ - public function __construct(string $index, string $type) - { - // Elasticsearch requires an ISO 8601 format date with optional millisecond precision. - parent::__construct(DateTimeInterface::ATOM); - - $this->index = $index; - $this->type = $type; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record) - { - $record = parent::format($record); - - return $this->getDocument($record); - } - - /** - * Getter index - */ - public function getIndex(): string - { - return $this->index; - } - - /** - * Getter type - */ - public function getType(): string - { - return $this->type; - } - - /** - * Convert a log message into an Elasticsearch record - * - * @param mixed[] $record Log message - * @return mixed[] - */ - protected function getDocument(array $record): array - { - $record['_index'] = $this->index; - $record['_type'] = $this->type; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php deleted file mode 100644 index cc805c8..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * formats the record to be used in the FlowdockHandler - * - * @author Dominik Liebler - * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 - */ -class FlowdockFormatter implements FormatterInterface -{ - private string $source; - - private string $sourceEmail; - - public function __construct(string $source, string $sourceEmail) - { - $this->source = $source; - $this->sourceEmail = $sourceEmail; - } - - /** - * @inheritDoc - * - * @return mixed[] - */ - public function format(LogRecord $record): array - { - $tags = [ - '#logs', - '#' . $record->level->toPsrLogLevel(), - '#' . $record->channel, - ]; - - foreach ($record->extra as $value) { - $tags[] = '#' . $value; - } - - $subject = sprintf( - 'in %s: %s - %s', - $this->source, - $record->level->getName(), - $this->getShortMessage($record->message) - ); - - return [ - 'source' => $this->source, - 'from_address' => $this->sourceEmail, - 'subject' => $subject, - 'content' => $record->message, - 'tags' => $tags, - 'project' => $this->source, - ]; - } - - /** - * @inheritDoc - * - * @return mixed[][] - */ - public function formatBatch(array $records): array - { - $formatted = []; - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } - - public function getShortMessage(string $message): string - { - static $hasMbString; - - if (null === $hasMbString) { - $hasMbString = \function_exists('mb_strlen'); - } - - $maxLength = 45; - - if ($hasMbString) { - if (mb_strlen($message, 'UTF-8') > $maxLength) { - $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...'; - } - } else { - if (\strlen($message) > $maxLength) { - $message = substr($message, 0, $maxLength - 4) . ' ...'; - } - } - - return $message; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php deleted file mode 100644 index 5f78117..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Class FluentdFormatter - * - * Serializes a log message to Fluentd unix socket protocol - * - * Fluentd config: - * - * - * type unix - * path /var/run/td-agent/td-agent.sock - * - * - * Monolog setup: - * - * $logger = new Monolog\Logger('fluent.tag'); - * $fluentHandler = new Monolog\Handler\SocketHandler('unix:///var/run/td-agent/td-agent.sock'); - * $fluentHandler->setFormatter(new Monolog\Formatter\FluentdFormatter()); - * $logger->pushHandler($fluentHandler); - * - * @author Andrius Putna - */ -class FluentdFormatter implements FormatterInterface -{ - /** - * @var bool $levelTag should message level be a part of the fluentd tag - */ - protected bool $levelTag = false; - - public function __construct(bool $levelTag = false) - { - $this->levelTag = $levelTag; - } - - public function isUsingLevelsInTag(): bool - { - return $this->levelTag; - } - - public function format(LogRecord $record): string - { - $tag = $record->channel; - if ($this->levelTag) { - $tag .= '.' . $record->level->toPsrLogLevel(); - } - - $message = [ - 'message' => $record->message, - 'context' => $record->context, - 'extra' => $record->extra, - ]; - - if (!$this->levelTag) { - $message['level'] = $record->level->value; - $message['level_name'] = $record->level->getName(); - } - - return Utils::jsonEncode([$tag, $record->datetime->getTimestamp(), $message]); - } - - public function formatBatch(array $records): string - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php deleted file mode 100644 index 3413a4b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * Interface for formatters - * - * @author Jordi Boggiano - */ -interface FormatterInterface -{ - /** - * Formats a log record. - * - * @param LogRecord $record A record to format - * @return mixed The formatted record - */ - public function format(LogRecord $record); - - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records); -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php deleted file mode 100644 index 12a3b0a..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Level; -use Gelf\Message; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Serializes a log message to GELF - * @see http://docs.graylog.org/en/latest/pages/gelf.html - * - * @author Matt Lehner - */ -class GelfMessageFormatter extends NormalizerFormatter -{ - protected const DEFAULT_MAX_LENGTH = 32766; - - /** - * @var string the name of the system for the Gelf log message - */ - protected string $systemName; - - /** - * @var string a prefix for 'extra' fields from the Monolog record (optional) - */ - protected string $extraPrefix; - - /** - * @var string a prefix for 'context' fields from the Monolog record (optional) - */ - protected string $contextPrefix; - - /** - * @var int max length per field - */ - protected int $maxLength; - - /** - * Translates Monolog log levels to Graylog2 log priorities. - */ - private function getGraylog2Priority(Level $level): int - { - return match ($level) { - Level::Debug => 7, - Level::Info => 6, - Level::Notice => 5, - Level::Warning => 4, - Level::Error => 3, - Level::Critical => 2, - Level::Alert => 1, - Level::Emergency => 0, - }; - } - - /** - * @throws \RuntimeException - */ - public function __construct(?string $systemName = null, ?string $extraPrefix = null, string $contextPrefix = 'ctxt_', ?int $maxLength = null) - { - if (!class_exists(Message::class)) { - throw new \RuntimeException('Composer package graylog2/gelf-php is required to use Monolog\'s GelfMessageFormatter'); - } - - parent::__construct('U.u'); - - $this->systemName = (null === $systemName || $systemName === '') ? (string) gethostname() : $systemName; - - $this->extraPrefix = null === $extraPrefix ? '' : $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->maxLength = null === $maxLength ? self::DEFAULT_MAX_LENGTH : $maxLength; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record): Message - { - $context = $extra = []; - if (isset($record->context)) { - /** @var array|bool|float|int|string|null> $context */ - $context = parent::normalize($record->context); - } - if (isset($record->extra)) { - /** @var array|bool|float|int|string|null> $extra */ - $extra = parent::normalize($record->extra); - } - - $message = new Message(); - $message - ->setTimestamp($record->datetime) - ->setShortMessage($record->message) - ->setHost($this->systemName) - ->setLevel($this->getGraylog2Priority($record->level)); - - // message length + system name length + 200 for padding / metadata - $len = 200 + \strlen($record->message) + \strlen($this->systemName); - - if ($len > $this->maxLength) { - $message->setShortMessage(Utils::substr($record->message, 0, $this->maxLength)); - } - - if (isset($record->channel)) { - $message->setAdditional('facility', $record->channel); - } - - foreach ($extra as $key => $val) { - $key = (string) preg_replace('#[^\w.-]#', '-', (string) $key); - $val = \is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = \strlen($this->extraPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->extraPrefix . $key, Utils::substr((string) $val, 0, $this->maxLength)); - - continue; - } - $message->setAdditional($this->extraPrefix . $key, $val); - } - - foreach ($context as $key => $val) { - $key = (string) preg_replace('#[^\w.-]#', '-', (string) $key); - $val = \is_scalar($val) || null === $val ? $val : $this->toJson($val); - $len = \strlen($this->contextPrefix . $key . $val); - if ($len > $this->maxLength) { - $message->setAdditional($this->contextPrefix . $key, Utils::substr((string) $val, 0, $this->maxLength)); - - continue; - } - $message->setAdditional($this->contextPrefix . $key, $val); - } - - if (!$message->hasAdditional('file') && isset($context['exception']['file'])) { - if (1 === preg_match("/^(.+):([0-9]+)$/", $context['exception']['file'], $matches)) { - $message->setAdditional('file', $matches[1]); - $message->setAdditional('line', $matches[2]); - } - } - - return $message; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php deleted file mode 100644 index c97b912..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use DateTimeInterface; -use Monolog\LogRecord; - -/** - * Encodes message information into JSON in a format compatible with Cloud logging. - * - * @see https://cloud.google.com/logging/docs/structured-logging - * @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry - * - * @author Luís Cobucci - */ -class GoogleCloudLoggingFormatter extends JsonFormatter -{ - protected function normalizeRecord(LogRecord $record): array - { - $normalized = parent::normalizeRecord($record); - - // Re-key level for GCP logging - $normalized['severity'] = $normalized['level_name']; - $normalized['time'] = $record->datetime->format(DateTimeInterface::RFC3339_EXTENDED); - - // Remove keys that are not used by GCP - unset($normalized['level'], $normalized['level_name'], $normalized['datetime']); - - return $normalized; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php deleted file mode 100644 index 09cbea9..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php +++ /dev/null @@ -1,142 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Formats incoming records into an HTML table - * - * This is especially useful for html email logging - * - * @author Tiago Brito - */ -class HtmlFormatter extends NormalizerFormatter -{ - /** - * Translates Monolog log levels to html color priorities. - */ - protected function getLevelColor(Level $level): string - { - return match ($level) { - Level::Debug => '#CCCCCC', - Level::Info => '#28A745', - Level::Notice => '#17A2B8', - Level::Warning => '#FFC107', - Level::Error => '#FD7E14', - Level::Critical => '#DC3545', - Level::Alert => '#821722', - Level::Emergency => '#000000', - }; - } - - /** - * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct(?string $dateFormat = null) - { - parent::__construct($dateFormat); - } - - /** - * Creates an HTML table row - * - * @param string $th Row header content - * @param string $td Row standard cell content - * @param bool $escapeTd false if td content must not be html escaped - */ - protected function addRow(string $th, string $td = ' ', bool $escapeTd = true): string - { - $th = htmlspecialchars($th, ENT_NOQUOTES, 'UTF-8'); - if ($escapeTd) { - $td = '
'.htmlspecialchars($td, ENT_NOQUOTES, 'UTF-8').'
'; - } - - return "
\n\n\n"; - } - - /** - * Create a HTML h1 tag - * - * @param string $title Text to be in the h1 - */ - protected function addTitle(string $title, Level $level): string - { - $title = htmlspecialchars($title, ENT_NOQUOTES, 'UTF-8'); - - return '

'.$title.'

'; - } - - /** - * Formats a log record. - * - * @return string The formatted record - */ - public function format(LogRecord $record): string - { - $output = $this->addTitle($record->level->getName(), $record->level); - $output .= '
$th:".$td."
'; - - $output .= $this->addRow('Message', $record->message); - $output .= $this->addRow('Time', $this->formatDate($record->datetime)); - $output .= $this->addRow('Channel', $record->channel); - if (\count($record->context) > 0) { - $embeddedTable = '
'; - foreach ($record->context as $key => $value) { - $embeddedTable .= $this->addRow((string) $key, $this->convertToString($value)); - } - $embeddedTable .= '
'; - $output .= $this->addRow('Context', $embeddedTable, false); - } - if (\count($record->extra) > 0) { - $embeddedTable = ''; - foreach ($record->extra as $key => $value) { - $embeddedTable .= $this->addRow((string) $key, $this->convertToString($value)); - } - $embeddedTable .= '
'; - $output .= $this->addRow('Extra', $embeddedTable, false); - } - - return $output.''; - } - - /** - * Formats a set of log records. - * - * @return string The formatted set of records - */ - public function formatBatch(array $records): string - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - /** - * @param mixed $data - */ - protected function convertToString($data): string - { - if (null === $data || \is_scalar($data)) { - return (string) $data; - } - - $data = $this->normalize($data); - - return Utils::jsonEncode($data, JSON_PRETTY_PRINT | Utils::DEFAULT_JSON_FLAGS, true); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php deleted file mode 100644 index b59639e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +++ /dev/null @@ -1,230 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Stringable; -use Throwable; -use Monolog\LogRecord; - -/** - * Encodes whatever record data is passed to it as json - * - * This can be useful to log to databases or remote APIs - * - * @author Jordi Boggiano - */ -class JsonFormatter extends NormalizerFormatter -{ - public const BATCH_MODE_JSON = 1; - public const BATCH_MODE_NEWLINES = 2; - - /** @var self::BATCH_MODE_* */ - protected int $batchMode; - - protected bool $appendNewline; - - protected bool $ignoreEmptyContextAndExtra; - - protected bool $includeStacktraces = false; - - /** - * @param self::BATCH_MODE_* $batchMode - */ - public function __construct(int $batchMode = self::BATCH_MODE_JSON, bool $appendNewline = true, bool $ignoreEmptyContextAndExtra = false, bool $includeStacktraces = false) - { - $this->batchMode = $batchMode; - $this->appendNewline = $appendNewline; - $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra; - $this->includeStacktraces = $includeStacktraces; - - parent::__construct(); - } - - /** - * The batch mode option configures the formatting style for - * multiple records. By default, multiple records will be - * formatted as a JSON-encoded array. However, for - * compatibility with some API endpoints, alternative styles - * are available. - */ - public function getBatchMode(): int - { - return $this->batchMode; - } - - /** - * True if newlines are appended to every formatted record - */ - public function isAppendingNewlines(): bool - { - return $this->appendNewline; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record): string - { - $normalized = $this->normalizeRecord($record); - - return $this->toJson($normalized, true) . ($this->appendNewline ? "\n" : ''); - } - - /** - * @inheritDoc - */ - public function formatBatch(array $records): string - { - return match ($this->batchMode) { - static::BATCH_MODE_NEWLINES => $this->formatBatchNewlines($records), - default => $this->formatBatchJson($records), - }; - } - - /** - * @return $this - */ - public function includeStacktraces(bool $include = true): self - { - $this->includeStacktraces = $include; - - return $this; - } - - /** - * @return array|bool|float|int|\stdClass|string|null> - */ - protected function normalizeRecord(LogRecord $record): array - { - $normalized = parent::normalizeRecord($record); - - if (isset($normalized['context']) && $normalized['context'] === []) { - if ($this->ignoreEmptyContextAndExtra) { - unset($normalized['context']); - } else { - $normalized['context'] = new \stdClass; - } - } - if (isset($normalized['extra']) && $normalized['extra'] === []) { - if ($this->ignoreEmptyContextAndExtra) { - unset($normalized['extra']); - } else { - $normalized['extra'] = new \stdClass; - } - } - - return $normalized; - } - - /** - * Return a JSON-encoded array of records. - * - * @phpstan-param LogRecord[] $records - */ - protected function formatBatchJson(array $records): string - { - $formatted = array_map(fn (LogRecord $record) => $this->normalizeRecord($record), $records); - - return $this->toJson($formatted, true); - } - - /** - * Use new lines to separate records instead of a - * JSON-encoded array. - * - * @phpstan-param LogRecord[] $records - */ - protected function formatBatchNewlines(array $records): string - { - $oldNewline = $this->appendNewline; - $this->appendNewline = false; - $formatted = array_map(fn (LogRecord $record) => $this->format($record), $records); - $this->appendNewline = $oldNewline; - - return implode("\n", $formatted); - } - - /** - * Normalizes given $data. - * - * @return null|scalar|array|object - */ - protected function normalize(mixed $data, int $depth = 0): mixed - { - if ($depth > $this->maxNormalizeDepth) { - return 'Over '.$this->maxNormalizeDepth.' levels deep, aborting normalization'; - } - - if (\is_array($data)) { - $normalized = []; - - $count = 1; - foreach ($data as $key => $value) { - if ($count++ > $this->maxNormalizeItemCount) { - $normalized['...'] = 'Over '.$this->maxNormalizeItemCount.' items ('.\count($data).' total), aborting normalization'; - break; - } - - $normalized[$key] = $this->normalize($value, $depth + 1); - } - - return $normalized; - } - - if (\is_object($data)) { - if ($data instanceof \DateTimeInterface) { - return $this->formatDate($data); - } - - if ($data instanceof Throwable) { - return $this->normalizeException($data, $depth); - } - - // if the object has specific json serializability we want to make sure we skip the __toString treatment below - if ($data instanceof \JsonSerializable) { - return $data; - } - - if ($data instanceof Stringable) { - return $data->__toString(); - } - - if (\get_class($data) === '__PHP_Incomplete_Class') { - return new \ArrayObject($data); - } - - return $data; - } - - if (\is_resource($data)) { - return parent::normalize($data); - } - - return $data; - } - - /** - * Normalizes given exception with or without its own stack trace based on - * `includeStacktraces` property. - * - * @return array>> - */ - protected function normalizeException(Throwable $e, int $depth = 0): array - { - $data = parent::normalizeException($e, $depth); - if (!$this->includeStacktraces) { - unset($data['trace']); - } - - return $data; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php deleted file mode 100644 index fd9dc5b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php +++ /dev/null @@ -1,313 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Closure; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Formats incoming records into a one-line string - * - * This is especially useful for logging to files - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -class LineFormatter extends NormalizerFormatter -{ - public const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; - - protected string $format; - protected bool $allowInlineLineBreaks; - protected bool $ignoreEmptyContextAndExtra; - protected bool $includeStacktraces; - protected ?int $maxLevelNameLength = null; - protected string $indentStacktraces = ''; - protected Closure|null $stacktracesParser = null; - protected string $basePath = ''; - - /** - * @param string|null $format The format of the message - * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format - * @param bool $allowInlineLineBreaks Whether to allow inline line breaks in log entries - */ - public function __construct(?string $format = null, ?string $dateFormat = null, bool $allowInlineLineBreaks = false, bool $ignoreEmptyContextAndExtra = false, bool $includeStacktraces = false) - { - $this->format = $format === null ? static::SIMPLE_FORMAT : $format; - $this->allowInlineLineBreaks = $allowInlineLineBreaks; - $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra; - $this->includeStacktraces($includeStacktraces); - parent::__construct($dateFormat); - } - - /** - * Setting a base path will hide the base path from exception and stack trace file names to shorten them - * @return $this - */ - public function setBasePath(string $path = ''): self - { - if ($path !== '') { - $path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - } - - $this->basePath = $path; - - return $this; - } - - /** - * @return $this - */ - public function includeStacktraces(bool $include = true, ?Closure $parser = null): self - { - $this->includeStacktraces = $include; - if ($this->includeStacktraces) { - $this->allowInlineLineBreaks = true; - $this->stacktracesParser = $parser; - } - - return $this; - } - - /** - * Indent stack traces to separate them a bit from the main log record messages - * - * @param string $indent The string used to indent, for example " " - * @return $this - */ - public function indentStacktraces(string $indent): self - { - $this->indentStacktraces = $indent; - - return $this; - } - - /** - * @return $this - */ - public function allowInlineLineBreaks(bool $allow = true): self - { - $this->allowInlineLineBreaks = $allow; - - return $this; - } - - /** - * @return $this - */ - public function ignoreEmptyContextAndExtra(bool $ignore = true): self - { - $this->ignoreEmptyContextAndExtra = $ignore; - - return $this; - } - - /** - * Allows cutting the level name to get fixed-length levels like INF for INFO, ERR for ERROR if you set this to 3 for example - * - * @param int|null $maxLevelNameLength Maximum characters for the level name. Set null for infinite length (default) - * @return $this - */ - public function setMaxLevelNameLength(?int $maxLevelNameLength = null): self - { - $this->maxLevelNameLength = $maxLevelNameLength; - - return $this; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record): string - { - $vars = parent::format($record); - - if ($this->maxLevelNameLength !== null) { - $vars['level_name'] = substr($vars['level_name'], 0, $this->maxLevelNameLength); - } - - $output = $this->format; - foreach ($vars['extra'] as $var => $val) { - if (false !== strpos($output, '%extra.'.$var.'%')) { - $output = str_replace('%extra.'.$var.'%', $this->stringify($val), $output); - unset($vars['extra'][$var]); - } - } - - foreach ($vars['context'] as $var => $val) { - if (false !== strpos($output, '%context.'.$var.'%')) { - $output = str_replace('%context.'.$var.'%', $this->stringify($val), $output); - unset($vars['context'][$var]); - } - } - - if ($this->ignoreEmptyContextAndExtra) { - if (\count($vars['context']) === 0) { - unset($vars['context']); - $output = str_replace('%context%', '', $output); - } - - if (\count($vars['extra']) === 0) { - unset($vars['extra']); - $output = str_replace('%extra%', '', $output); - } - } - - foreach ($vars as $var => $val) { - if (false !== strpos($output, '%'.$var.'%')) { - $output = str_replace('%'.$var.'%', $this->stringify($val), $output); - } - } - - // remove leftover %extra.xxx% and %context.xxx% if any - if (false !== strpos($output, '%')) { - $output = preg_replace('/%(?:extra|context)\..+?%/', '', $output); - if (null === $output) { - $pcreErrorCode = preg_last_error(); - - throw new \RuntimeException('Failed to run preg_replace: ' . $pcreErrorCode . ' / ' . preg_last_error_msg()); - } - } - - return $output; - } - - public function formatBatch(array $records): string - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - /** - * @param mixed $value - */ - public function stringify($value): string - { - return $this->replaceNewlines($this->convertToString($value)); - } - - protected function normalizeException(\Throwable $e, int $depth = 0): string - { - $str = $this->formatException($e); - - $previous = $e->getPrevious(); - while ($previous instanceof \Throwable) { - $depth++; - if ($depth > $this->maxNormalizeDepth) { - $str .= "\n[previous exception] Over " . $this->maxNormalizeDepth . ' levels deep, aborting normalization'; - break; - } - $str .= "\n[previous exception] " . $this->formatException($previous); - $previous = $previous->getPrevious(); - } - - return $str; - } - - /** - * @param mixed $data - */ - protected function convertToString($data): string - { - if (null === $data || \is_bool($data)) { - return var_export($data, true); - } - - if (\is_scalar($data)) { - return (string) $data; - } - - return $this->toJson($data, true); - } - - protected function replaceNewlines(string $str): string - { - if ($this->allowInlineLineBreaks) { - if (0 === strpos($str, '{') || 0 === strpos($str, '[')) { - $str = preg_replace('/(?getCode(); - if ($e instanceof \SoapFault) { - if (isset($e->faultcode)) { - $str .= ' faultcode: ' . $e->faultcode; - } - - if (isset($e->faultactor)) { - $str .= ' faultactor: ' . $e->faultactor; - } - - if (isset($e->detail)) { - if (\is_string($e->detail)) { - $str .= ' detail: ' . $e->detail; - } elseif (\is_object($e->detail) || \is_array($e->detail)) { - $str .= ' detail: ' . $this->toJson($e->detail, true); - } - } - } - - $file = $e->getFile(); - if ($this->basePath !== '') { - $file = preg_replace('{^'.preg_quote($this->basePath).'}', '', $file); - } - - $str .= '): ' . $e->getMessage() . ' at ' . $file . ':' . $e->getLine() . ')'; - - if ($this->includeStacktraces) { - $str .= $this->stacktracesParser($e); - } - - return $str; - } - - private function stacktracesParser(\Throwable $e): string - { - $trace = $e->getTraceAsString(); - - if ($this->basePath !== '') { - $trace = preg_replace('{^(#\d+ )' . preg_quote($this->basePath) . '}m', '$1', $trace) ?? $trace; - } - - if ($this->stacktracesParser !== null) { - $trace = $this->stacktracesParserCustom($trace); - } - - if ($this->indentStacktraces !== '') { - $trace = str_replace("\n", "\n{$this->indentStacktraces}", $trace); - } - - return "\n{$this->indentStacktraces}[stacktrace]\n{$this->indentStacktraces}" . $trace . "\n"; - } - - private function stacktracesParserCustom(string $trace): string - { - return implode("\n", array_filter(array_map($this->stacktracesParser, explode("\n", $trace)), fn ($line) => is_string($line) && trim($line) !== '')); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php deleted file mode 100644 index 5f0b6a4..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * Encodes message information into JSON in a format compatible with Loggly. - * - * @author Adam Pancutt - */ -class LogglyFormatter extends JsonFormatter -{ - /** - * Overrides the default batch mode to new lines for compatibility with the - * Loggly bulk API. - */ - public function __construct(int $batchMode = self::BATCH_MODE_NEWLINES, bool $appendNewline = false) - { - parent::__construct($batchMode, $appendNewline); - } - - /** - * Appends the 'timestamp' parameter for indexing by Loggly. - * - * @see https://www.loggly.com/docs/automated-parsing/#json - * @see \Monolog\Formatter\JsonFormatter::format() - */ - protected function normalizeRecord(LogRecord $record): array - { - $recordData = parent::normalizeRecord($record); - - $recordData["timestamp"] = $record->datetime->format("Y-m-d\TH:i:s.uO"); - unset($recordData["datetime"]); - - return $recordData; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php deleted file mode 100644 index 9e44c19..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * Encodes message information into JSON in a format compatible with Logmatic. - * - * @author Julien Breux - */ -class LogmaticFormatter extends JsonFormatter -{ - protected const MARKERS = ["sourcecode", "php"]; - - protected string $hostname = ''; - - protected string $appName = ''; - - /** - * @return $this - */ - public function setHostname(string $hostname): self - { - $this->hostname = $hostname; - - return $this; - } - - /** - * @return $this - */ - public function setAppName(string $appName): self - { - $this->appName = $appName; - - return $this; - } - - /** - * Appends the 'hostname' and 'appname' parameter for indexing by Logmatic. - * - * @see http://doc.logmatic.io/docs/basics-to-send-data - * @see \Monolog\Formatter\JsonFormatter::format() - */ - public function normalizeRecord(LogRecord $record): array - { - $record = parent::normalizeRecord($record); - - if ($this->hostname !== '') { - $record["hostname"] = $this->hostname; - } - if ($this->appName !== '') { - $record["appname"] = $this->appName; - } - - $record["@marker"] = static::MARKERS; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php deleted file mode 100644 index d0e8749..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * Serializes a log message to Logstash Event Format - * - * @see https://www.elastic.co/products/logstash - * @see https://github.com/elastic/logstash/blob/master/logstash-core/src/main/java/org/logstash/Event.java - * - * @author Tim Mower - */ -class LogstashFormatter extends NormalizerFormatter -{ - /** - * @var string the name of the system for the Logstash log message, used to fill the @source field - */ - protected string $systemName; - - /** - * @var string an application name for the Logstash log message, used to fill the @type field - */ - protected string $applicationName; - - /** - * @var string the key for 'extra' fields from the Monolog record - */ - protected string $extraKey; - - /** - * @var string the key for 'context' fields from the Monolog record - */ - protected string $contextKey; - - /** - * @param string $applicationName The application that sends the data, used as the "type" field of logstash - * @param string|null $systemName The system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine - * @param string $extraKey The key for extra keys inside logstash "fields", defaults to extra - * @param string $contextKey The key for context keys inside logstash "fields", defaults to context - */ - public function __construct(string $applicationName, ?string $systemName = null, string $extraKey = 'extra', string $contextKey = 'context') - { - // logstash requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\TH:i:s.uP'); - - $this->systemName = $systemName === null ? (string) gethostname() : $systemName; - $this->applicationName = $applicationName; - $this->extraKey = $extraKey; - $this->contextKey = $contextKey; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record): string - { - $recordData = parent::format($record); - - $message = [ - '@timestamp' => $recordData['datetime'], - '@version' => 1, - 'host' => $this->systemName, - ]; - if (isset($recordData['message'])) { - $message['message'] = $recordData['message']; - } - if (isset($recordData['channel'])) { - $message['type'] = $recordData['channel']; - $message['channel'] = $recordData['channel']; - } - if (isset($recordData['level_name'])) { - $message['level'] = $recordData['level_name']; - } - if (isset($recordData['level'])) { - $message['monolog_level'] = $recordData['level']; - } - if ('' !== $this->applicationName) { - $message['type'] = $this->applicationName; - } - if (\count($recordData['extra']) > 0) { - $message[$this->extraKey] = $recordData['extra']; - } - if (\count($recordData['context']) > 0) { - $message[$this->contextKey] = $recordData['context']; - } - - return $this->toJson($message) . "\n"; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php deleted file mode 100644 index 129f048..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php +++ /dev/null @@ -1,159 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use MongoDB\BSON\Type; -use MongoDB\BSON\UTCDateTime; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Formats a record for use with the MongoDBHandler. - * - * @author Florian Plattner - */ -class MongoDBFormatter implements FormatterInterface -{ - private bool $exceptionTraceAsString; - private int $maxNestingLevel; - private bool $isLegacyMongoExt; - - /** - * @param int $maxNestingLevel 0 means infinite nesting, the $record itself is level 1, $record->context is 2 - * @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings - */ - public function __construct(int $maxNestingLevel = 3, bool $exceptionTraceAsString = true) - { - $this->maxNestingLevel = max($maxNestingLevel, 0); - $this->exceptionTraceAsString = $exceptionTraceAsString; - - $this->isLegacyMongoExt = \extension_loaded('mongodb') && version_compare((string) phpversion('mongodb'), '1.1.9', '<='); - } - - /** - * @inheritDoc - * - * @return mixed[] - */ - public function format(LogRecord $record): array - { - /** @var mixed[] $res */ - $res = $this->formatArray($record->toArray()); - - return $res; - } - - /** - * @inheritDoc - * - * @return array - */ - public function formatBatch(array $records): array - { - $formatted = []; - foreach ($records as $key => $record) { - $formatted[$key] = $this->format($record); - } - - return $formatted; - } - - /** - * @param mixed[] $array - * @return mixed[]|string Array except when max nesting level is reached then a string "[...]" - */ - protected function formatArray(array $array, int $nestingLevel = 0) - { - if ($this->maxNestingLevel > 0 && $nestingLevel > $this->maxNestingLevel) { - return '[...]'; - } - - foreach ($array as $name => $value) { - if ($value instanceof \DateTimeInterface) { - $array[$name] = $this->formatDate($value, $nestingLevel + 1); - } elseif ($value instanceof \Throwable) { - $array[$name] = $this->formatException($value, $nestingLevel + 1); - } elseif (\is_array($value)) { - $array[$name] = $this->formatArray($value, $nestingLevel + 1); - } elseif (\is_object($value) && !$value instanceof Type) { - $array[$name] = $this->formatObject($value, $nestingLevel + 1); - } - } - - return $array; - } - - /** - * @param mixed $value - * @return mixed[]|string - */ - protected function formatObject($value, int $nestingLevel) - { - $objectVars = get_object_vars($value); - $objectVars['class'] = Utils::getClass($value); - - return $this->formatArray($objectVars, $nestingLevel); - } - - /** - * @return mixed[]|string - */ - protected function formatException(\Throwable $exception, int $nestingLevel) - { - $formattedException = [ - 'class' => Utils::getClass($exception), - 'message' => $exception->getMessage(), - 'code' => (int) $exception->getCode(), - 'file' => $exception->getFile() . ':' . $exception->getLine(), - ]; - - if ($this->exceptionTraceAsString === true) { - $formattedException['trace'] = $exception->getTraceAsString(); - } else { - $formattedException['trace'] = $exception->getTrace(); - } - - return $this->formatArray($formattedException, $nestingLevel); - } - - protected function formatDate(\DateTimeInterface $value, int $nestingLevel): UTCDateTime - { - if ($this->isLegacyMongoExt) { - return $this->legacyGetMongoDbDateTime($value); - } - - return $this->getMongoDbDateTime($value); - } - - private function getMongoDbDateTime(\DateTimeInterface $value): UTCDateTime - { - return new UTCDateTime((int) floor(((float) $value->format('U.u')) * 1000)); - } - - /** - * This is needed to support MongoDB Driver v1.19 and below - * - * See https://github.com/mongodb/mongo-php-driver/issues/426 - * - * It can probably be removed in 2.1 or later once MongoDB's 1.2 is released and widely adopted - */ - private function legacyGetMongoDbDateTime(\DateTimeInterface $value): UTCDateTime - { - $milliseconds = floor(((float) $value->format('U.u')) * 1000); - - $milliseconds = (PHP_INT_SIZE === 8) //64-bit OS? - ? (int) $milliseconds - : (string) $milliseconds; - - return new UTCDateTime($milliseconds); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php deleted file mode 100644 index 60da29c..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +++ /dev/null @@ -1,353 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\JsonSerializableDateTimeImmutable; -use Monolog\Utils; -use Throwable; -use Monolog\LogRecord; - -/** - * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets - * - * @author Jordi Boggiano - */ -class NormalizerFormatter implements FormatterInterface -{ - public const SIMPLE_DATE = "Y-m-d\TH:i:sP"; - - protected string $dateFormat; - protected int $maxNormalizeDepth = 9; - protected int $maxNormalizeItemCount = 1000; - - private int $jsonEncodeOptions = Utils::DEFAULT_JSON_FLAGS; - - protected string $basePath = ''; - - /** - * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct(?string $dateFormat = null) - { - $this->dateFormat = null === $dateFormat ? static::SIMPLE_DATE : $dateFormat; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record) - { - return $this->normalizeRecord($record); - } - - /** - * Normalize an arbitrary value to a scalar|array|null - * - * @return null|scalar|array - */ - public function normalizeValue(mixed $data): mixed - { - return $this->normalize($data); - } - - /** - * @inheritDoc - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - - return $records; - } - - public function getDateFormat(): string - { - return $this->dateFormat; - } - - /** - * @return $this - */ - public function setDateFormat(string $dateFormat): self - { - $this->dateFormat = $dateFormat; - - return $this; - } - - /** - * The maximum number of normalization levels to go through - */ - public function getMaxNormalizeDepth(): int - { - return $this->maxNormalizeDepth; - } - - /** - * @return $this - */ - public function setMaxNormalizeDepth(int $maxNormalizeDepth): self - { - $this->maxNormalizeDepth = $maxNormalizeDepth; - - return $this; - } - - /** - * The maximum number of items to normalize per level - */ - public function getMaxNormalizeItemCount(): int - { - return $this->maxNormalizeItemCount; - } - - /** - * @return $this - */ - public function setMaxNormalizeItemCount(int $maxNormalizeItemCount): self - { - $this->maxNormalizeItemCount = $maxNormalizeItemCount; - - return $this; - } - - /** - * Enables `json_encode` pretty print. - * - * @return $this - */ - public function setJsonPrettyPrint(bool $enable): self - { - if ($enable) { - $this->jsonEncodeOptions |= JSON_PRETTY_PRINT; - } else { - $this->jsonEncodeOptions &= ~JSON_PRETTY_PRINT; - } - - return $this; - } - - /** - * Setting a base path will hide the base path from exception and stack trace file names to shorten them - * @return $this - */ - public function setBasePath(string $path = ''): self - { - if ($path !== '') { - $path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - } - - $this->basePath = $path; - - return $this; - } - - /** - * Provided as extension point - * - * Because normalize is called with sub-values of context data etc, normalizeRecord can be - * extended when data needs to be appended on the record array but not to other normalized data. - * - * @return array - */ - protected function normalizeRecord(LogRecord $record): array - { - /** @var array $normalized */ - $normalized = $this->normalize($record->toArray()); - - return $normalized; - } - - /** - * @return null|scalar|array - */ - protected function normalize(mixed $data, int $depth = 0): mixed - { - if ($depth > $this->maxNormalizeDepth) { - return 'Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization'; - } - - if (null === $data || \is_scalar($data)) { - if (\is_float($data)) { - if (is_infinite($data)) { - return ($data > 0 ? '' : '-') . 'INF'; - } - if (is_nan($data)) { - return 'NaN'; - } - } - - return $data; - } - - if (\is_array($data)) { - $normalized = []; - - $count = 1; - foreach ($data as $key => $value) { - if ($count++ > $this->maxNormalizeItemCount) { - $normalized['...'] = 'Over ' . $this->maxNormalizeItemCount . ' items ('.\count($data).' total), aborting normalization'; - break; - } - - $normalized[$key] = $this->normalize($value, $depth + 1); - } - - return $normalized; - } - - if ($data instanceof \DateTimeInterface) { - return $this->formatDate($data); - } - - if (\is_object($data)) { - if ($data instanceof Throwable) { - return $this->normalizeException($data, $depth); - } - - if ($data instanceof \JsonSerializable) { - /** @var null|scalar|array $value */ - $value = $data->jsonSerialize(); - } elseif (\get_class($data) === '__PHP_Incomplete_Class') { - $accessor = new \ArrayObject($data); - $value = (string) $accessor['__PHP_Incomplete_Class_Name']; - } elseif (method_exists($data, '__toString')) { - try { - /** @var string $value */ - $value = $data->__toString(); - } catch (\Throwable) { - // if the toString method is failing, use the default behavior - /** @var null|scalar|array $value */ - $value = json_decode($this->toJson($data, true), true); - } - } else { - // the rest is normalized by json encoding and decoding it - /** @var null|scalar|array $value */ - $value = json_decode($this->toJson($data, true), true); - } - - return [Utils::getClass($data) => $value]; - } - - if (\is_resource($data)) { - return sprintf('[resource(%s)]', get_resource_type($data)); - } - - return '[unknown('.\gettype($data).')]'; - } - - /** - * @return array>> - */ - protected function normalizeException(Throwable $e, int $depth = 0) - { - if ($depth > $this->maxNormalizeDepth) { - return ['Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization']; - } - - if ($e instanceof \JsonSerializable) { - return (array) $e->jsonSerialize(); - } - - $file = $e->getFile(); - if ($this->basePath !== '') { - $file = preg_replace('{^'.preg_quote($this->basePath).'}', '', $file); - } - - $data = [ - 'class' => Utils::getClass($e), - 'message' => $e->getMessage(), - 'code' => (int) $e->getCode(), - 'file' => $file.':'.$e->getLine(), - ]; - - if ($e instanceof \SoapFault) { - if (isset($e->faultcode)) { - $data['faultcode'] = $e->faultcode; - } - - if (isset($e->faultactor)) { - $data['faultactor'] = $e->faultactor; - } - - if (isset($e->detail)) { - if (\is_string($e->detail)) { - $data['detail'] = $e->detail; - } elseif (\is_object($e->detail) || \is_array($e->detail)) { - $data['detail'] = $this->toJson($e->detail, true); - } - } - } - - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'], $frame['line'])) { - $file = $frame['file']; - if ($this->basePath !== '') { - $file = preg_replace('{^'.preg_quote($this->basePath).'}', '', $file); - } - $data['trace'][] = $file.':'.$frame['line']; - } - } - - if (($previous = $e->getPrevious()) instanceof \Throwable) { - $data['previous'] = $this->normalizeException($previous, $depth + 1); - } - - return $data; - } - - /** - * Return the JSON representation of a value - * - * @param mixed $data - * @throws \RuntimeException if encoding fails and errors are not ignored - * @return string if encoding fails and ignoreErrors is true 'null' is returned - */ - protected function toJson($data, bool $ignoreErrors = false): string - { - return Utils::jsonEncode($data, $this->jsonEncodeOptions, $ignoreErrors); - } - - protected function formatDate(\DateTimeInterface $date): string - { - // in case the date format isn't custom then we defer to the custom JsonSerializableDateTimeImmutable - // formatting logic, which will pick the right format based on whether useMicroseconds is on - if ($this->dateFormat === self::SIMPLE_DATE && $date instanceof JsonSerializableDateTimeImmutable) { - return (string) $date; - } - - return $date->format($this->dateFormat); - } - - /** - * @return $this - */ - public function addJsonEncodeOption(int $option): self - { - $this->jsonEncodeOptions |= $option; - - return $this; - } - - /** - * @return $this - */ - public function removeJsonEncodeOption(int $option): self - { - $this->jsonEncodeOptions &= ~$option; - - return $this; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php deleted file mode 100644 index ec73a0e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\LogRecord; - -/** - * Formats data into an associative array of scalar (+ null) values. - * Objects and arrays will be JSON encoded. - * - * @author Andrew Lawson - */ -class ScalarFormatter extends NormalizerFormatter -{ - /** - * @inheritDoc - * - * @phpstan-return array $record - */ - public function format(LogRecord $record): array - { - $result = []; - foreach ($record->toArray() as $key => $value) { - $result[$key] = $this->toScalar($value); - } - - return $result; - } - - protected function toScalar(mixed $value): string|int|float|bool|null - { - $normalized = $this->normalize($value); - - if (\is_array($normalized)) { - return $this->toJson($normalized, true); - } - - return $normalized; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/SyslogFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/SyslogFormatter.php deleted file mode 100644 index ccaddf7..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/SyslogFormatter.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Serializes a log message according to RFC 5424 - * - * @author Dalibor Karlović - * @author Renat Gabdullin - */ -class SyslogFormatter extends LineFormatter -{ - private const SYSLOG_FACILITY_USER = 1; - private const FORMAT = "<%extra.priority%>1 %datetime% %extra.hostname% %extra.app-name% %extra.procid% %channel% %extra.structured-data% %level_name%: %message% %context% %extra%\n"; - private const NILVALUE = '-'; - - private string $hostname; - private int $procid; - - public function __construct(private string $applicationName = self::NILVALUE) - { - parent::__construct(self::FORMAT, 'Y-m-d\TH:i:s.uP', true, true); - $this->hostname = (string) gethostname(); - $this->procid = (int) getmypid(); - } - - public function format(LogRecord $record): string - { - $record->extra = $this->formatExtra($record); - - return parent::format($record); - } - - /** - * @return array - */ - private function formatExtra(LogRecord $record): array - { - $extra = $record->extra; - $extra['app-name'] = $this->applicationName; - $extra['hostname'] = $this->hostname; - $extra['procid'] = $this->procid; - $extra['priority'] = self::calculatePriority($record->level); - $extra['structured-data'] = self::NILVALUE; - - return $extra; - } - - private static function calculatePriority(Level $level): int - { - return (self::SYSLOG_FACILITY_USER * 8) + $level->toRFC5424Level(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php deleted file mode 100644 index 5e93e01..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Serializes a log message according to Wildfire's header requirements - * - * @author Eric Clemmons (@ericclemmons) - * @author Christophe Coevoet - * @author Kirill chEbba Chebunin - */ -class WildfireFormatter extends NormalizerFormatter -{ - /** - * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct(?string $dateFormat = null) - { - parent::__construct($dateFormat); - - // http headers do not like non-ISO-8559-1 characters - $this->removeJsonEncodeOption(JSON_UNESCAPED_UNICODE); - } - - /** - * Translates Monolog log levels to Wildfire levels. - * - * @return 'LOG'|'INFO'|'WARN'|'ERROR' - */ - private function toWildfireLevel(Level $level): string - { - return match ($level) { - Level::Debug => 'LOG', - Level::Info => 'INFO', - Level::Notice => 'INFO', - Level::Warning => 'WARN', - Level::Error => 'ERROR', - Level::Critical => 'ERROR', - Level::Alert => 'ERROR', - Level::Emergency => 'ERROR', - }; - } - - /** - * @inheritDoc - */ - public function format(LogRecord $record): string - { - // Retrieve the line and file if set and remove them from the formatted extra - $file = $line = ''; - if (isset($record->extra['file'])) { - $file = $record->extra['file']; - unset($record->extra['file']); - } - if (isset($record->extra['line'])) { - $line = $record->extra['line']; - unset($record->extra['line']); - } - - $message = ['message' => $record->message]; - $handleError = false; - if (\count($record->context) > 0) { - $message['context'] = $this->normalize($record->context); - $handleError = true; - } - if (\count($record->extra) > 0) { - $message['extra'] = $this->normalize($record->extra); - $handleError = true; - } - if (\count($message) === 1) { - $message = reset($message); - } - - if (\is_array($message) && isset($message['context']['table'])) { - $type = 'TABLE'; - $label = $record->channel .': '. $record->message; - $message = $message['context']['table']; - } else { - $type = $this->toWildfireLevel($record->level); - $label = $record->channel; - } - - // Create JSON object describing the appearance of the message in the console - $json = $this->toJson([ - [ - 'Type' => $type, - 'File' => $file, - 'Line' => $line, - 'Label' => $label, - ], - $message, - ], $handleError); - - // The message itself is a serialization of the above JSON object + it's length - return sprintf( - '%d|%s|', - \strlen($json), - $json - ); - } - - /** - * @inheritDoc - * - * @phpstan-return never - */ - public function formatBatch(array $records) - { - throw new \BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter'); - } - - /** - * @inheritDoc - * - * @return null|scalar|array|object - */ - protected function normalize(mixed $data, int $depth = 0): mixed - { - if (\is_object($data) && !$data instanceof \DateTimeInterface) { - return $data; - } - - return parent::normalize($data, $depth); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php deleted file mode 100644 index 61d45d5..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Logger; -use Monolog\ResettableInterface; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Base Handler class providing basic level/bubble support - * - * @author Jordi Boggiano - */ -abstract class AbstractHandler extends Handler implements ResettableInterface -{ - protected Level $level = Level::Debug; - protected bool $bubble = true; - - /** - * @param int|string|Level|LogLevel::* $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function __construct(int|string|Level $level = Level::Debug, bool $bubble = true) - { - $this->setLevel($level); - $this->bubble = $bubble; - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return $record->level->value >= $this->level->value; - } - - /** - * Sets minimum logging level at which this handler will be triggered. - * - * @param Level|LogLevel::* $level Level or level name - * @return $this - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function setLevel(int|string|Level $level): self - { - $this->level = Logger::toMonologLevel($level); - - return $this; - } - - /** - * Gets minimum logging level at which this handler will be triggered. - */ - public function getLevel(): Level - { - return $this->level; - } - - /** - * Sets the bubbling behavior. - * - * @param bool $bubble true means that this handler allows bubbling. - * false means that bubbling is not permitted. - * @return $this - */ - public function setBubble(bool $bubble): self - { - $this->bubble = $bubble; - - return $this; - } - - /** - * Gets the bubbling behavior. - * - * @return bool true means that this handler allows bubbling. - * false means that bubbling is not permitted. - */ - public function getBubble(): bool - { - return $this->bubble; - } - - /** - * @inheritDoc - */ - public function reset(): void - { - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php deleted file mode 100644 index de13a76..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\LogRecord; - -/** - * Base Handler class providing the Handler structure, including processors and formatters - * - * Classes extending it should (in most cases) only implement write($record) - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -abstract class AbstractProcessingHandler extends AbstractHandler implements ProcessableHandlerInterface, FormattableHandlerInterface -{ - use ProcessableHandlerTrait; - use FormattableHandlerTrait; - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (!$this->isHandling($record)) { - return false; - } - - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - $record->formatted = $this->getFormatter()->format($record); - - $this->write($record); - - return false === $this->bubble; - } - - /** - * Writes the (already formatted) record down to the log of the implementing handler - */ - abstract protected function write(LogRecord $record): void; - - public function reset(): void - { - parent::reset(); - - $this->resetProcessors(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php deleted file mode 100644 index 4a70317..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; - -/** - * Common syslog functionality - */ -abstract class AbstractSyslogHandler extends AbstractProcessingHandler -{ - protected int $facility; - - /** - * List of valid log facility names. - * @var array - */ - protected array $facilities = [ - 'auth' => \LOG_AUTH, - 'authpriv' => \LOG_AUTHPRIV, - 'cron' => \LOG_CRON, - 'daemon' => \LOG_DAEMON, - 'kern' => \LOG_KERN, - 'lpr' => \LOG_LPR, - 'mail' => \LOG_MAIL, - 'news' => \LOG_NEWS, - 'syslog' => \LOG_SYSLOG, - 'user' => \LOG_USER, - 'uucp' => \LOG_UUCP, - ]; - - /** - * Translates Monolog log levels to syslog log priorities. - */ - protected function toSyslogPriority(Level $level): int - { - return $level->toRFC5424Level(); - } - - /** - * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant - */ - public function __construct(string|int $facility = \LOG_USER, int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - - if (!\defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->facilities['local0'] = \LOG_LOCAL0; - $this->facilities['local1'] = \LOG_LOCAL1; - $this->facilities['local2'] = \LOG_LOCAL2; - $this->facilities['local3'] = \LOG_LOCAL3; - $this->facilities['local4'] = \LOG_LOCAL4; - $this->facilities['local5'] = \LOG_LOCAL5; - $this->facilities['local6'] = \LOG_LOCAL6; - $this->facilities['local7'] = \LOG_LOCAL7; - } else { - $this->facilities['local0'] = 128; // LOG_LOCAL0 - $this->facilities['local1'] = 136; // LOG_LOCAL1 - $this->facilities['local2'] = 144; // LOG_LOCAL2 - $this->facilities['local3'] = 152; // LOG_LOCAL3 - $this->facilities['local4'] = 160; // LOG_LOCAL4 - $this->facilities['local5'] = 168; // LOG_LOCAL5 - $this->facilities['local6'] = 176; // LOG_LOCAL6 - $this->facilities['local7'] = 184; // LOG_LOCAL7 - } - - // convert textual description of facility to syslog constant - if (\is_string($facility) && \array_key_exists(strtolower($facility), $this->facilities)) { - $facility = $this->facilities[strtolower($facility)]; - } elseif (!\in_array($facility, array_values($this->facilities), true)) { - throw new \UnexpectedValueException('Unknown facility value "'.$facility.'" given'); - } - - $this->facility = $facility; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter('%channel%.%level_name%: %message% %context% %extra%'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php deleted file mode 100644 index 119f339..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\Message as GelfMessage; -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\JsonFormatter; -use PhpAmqpLib\Message\AMQPMessage; -use PhpAmqpLib\Channel\AMQPChannel; -use AMQPExchange; -use Monolog\LogRecord; - -class AmqpHandler extends AbstractProcessingHandler -{ - protected AMQPExchange|AMQPChannel $exchange; - - /** @var array */ - private array $extraAttributes = []; - - protected string $exchangeName; - - /** - * @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use - * @param string|null $exchangeName Optional exchange name, for AMQPChannel (PhpAmqpLib) only - */ - public function __construct(AMQPExchange|AMQPChannel $exchange, ?string $exchangeName = null, int|string|Level $level = Level::Debug, bool $bubble = true) - { - if ($exchange instanceof AMQPChannel) { - $this->exchangeName = (string) $exchangeName; - } elseif ($exchangeName !== null) { - @trigger_error('The $exchangeName parameter can only be passed when using PhpAmqpLib, if using an AMQPExchange instance configure it beforehand', E_USER_DEPRECATED); - } - $this->exchange = $exchange; - - parent::__construct($level, $bubble); - } - - /** - * @return array - */ - public function getExtraAttributes(): array - { - return $this->extraAttributes; - } - - /** - * Configure extra attributes to pass to the AMQPExchange (if you are using the amqp extension) - * - * @param array $extraAttributes One of content_type, content_encoding, - * message_id, user_id, app_id, delivery_mode, - * priority, timestamp, expiration, type - * or reply_to, headers. - * @return $this - */ - public function setExtraAttributes(array $extraAttributes): self - { - $this->extraAttributes = $extraAttributes; - - return $this; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $data = $record->formatted; - $routingKey = $this->getRoutingKey($record); - - if($data instanceof GelfMessage) { - $data = json_encode($data->toArray()); - } - - if ($this->exchange instanceof AMQPExchange) { - $attributes = [ - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ]; - if (\count($this->extraAttributes) > 0) { - $attributes = array_merge($attributes, $this->extraAttributes); - } - $this->exchange->publish( - $data, - $routingKey, - 0, - $attributes - ); - } else { - $this->exchange->basic_publish( - $this->createAmqpMessage($data), - $this->exchangeName, - $routingKey - ); - } - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - if ($this->exchange instanceof AMQPExchange) { - parent::handleBatch($records); - - return; - } - - foreach ($records as $record) { - if (!$this->isHandling($record)) { - continue; - } - - $record = $this->processRecord($record); - $data = $this->getFormatter()->format($record); - - if($data instanceof GelfMessage) { - $data = json_encode($data->toArray()); - } - - $this->exchange->batch_basic_publish( - $this->createAmqpMessage($data), - $this->exchangeName, - $this->getRoutingKey($record) - ); - } - - $this->exchange->publish_batch(); - } - - /** - * Gets the routing key for the AMQP exchange - */ - protected function getRoutingKey(LogRecord $record): string - { - $routingKey = sprintf('%s.%s', $record->level->name, $record->channel); - - return strtolower($routingKey); - } - - private function createAmqpMessage(string $data): AMQPMessage - { - $attributes = [ - 'delivery_mode' => 2, - 'content_type' => 'application/json', - ]; - if (\count($this->extraAttributes) > 0) { - $attributes = array_merge($attributes, $this->extraAttributes); - } - - return new AMQPMessage($data, $attributes); - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php deleted file mode 100644 index 788d7d0..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php +++ /dev/null @@ -1,300 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; -use Monolog\Utils; -use Monolog\LogRecord; -use Monolog\Level; - -use function headers_list; -use function stripos; - -/** - * Handler sending logs to browser's javascript console with no browser extension required - * - * @author Olivier Poitrey - */ -class BrowserConsoleHandler extends AbstractProcessingHandler -{ - protected static bool $initialized = false; - - /** @var LogRecord[] */ - protected static array $records = []; - - protected const FORMAT_HTML = 'html'; - protected const FORMAT_JS = 'js'; - protected const FORMAT_UNKNOWN = 'unknown'; - - /** - * @inheritDoc - * - * Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format. - * - * Example of formatted string: - * - * You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white} - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%'); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - // Accumulate records - static::$records[] = $record; - - // Register shutdown handler if not already done - if (!static::$initialized) { - static::$initialized = true; - $this->registerShutdownFunction(); - } - } - - /** - * Convert records to javascript console commands and send it to the browser. - * This method is automatically called on PHP shutdown if output is HTML or Javascript. - */ - public static function send(): void - { - $format = static::getResponseFormat(); - if ($format === self::FORMAT_UNKNOWN) { - return; - } - - if (\count(static::$records) > 0) { - if ($format === self::FORMAT_HTML) { - static::writeOutput(''); - } else { // js format - static::writeOutput(self::generateScript()); - } - static::resetStatic(); - } - } - - public function close(): void - { - self::resetStatic(); - } - - public function reset(): void - { - parent::reset(); - - self::resetStatic(); - } - - /** - * Forget all logged records - */ - public static function resetStatic(): void - { - static::$records = []; - } - - /** - * Wrapper for register_shutdown_function to allow overriding - */ - protected function registerShutdownFunction(): void - { - if (PHP_SAPI !== 'cli') { - register_shutdown_function(['Monolog\Handler\BrowserConsoleHandler', 'send']); - } - } - - /** - * Wrapper for echo to allow overriding - */ - protected static function writeOutput(string $str): void - { - echo $str; - } - - /** - * Checks the format of the response - * - * If Content-Type is set to application/javascript or text/javascript -> js - * If Content-Type is set to text/html, or is unset -> html - * If Content-Type is anything else -> unknown - * - * @return string One of 'js', 'html' or 'unknown' - * @phpstan-return self::FORMAT_* - */ - protected static function getResponseFormat(): string - { - // Check content type - foreach (headers_list() as $header) { - if (stripos($header, 'content-type:') === 0) { - return static::getResponseFormatFromContentType($header); - } - } - - return self::FORMAT_HTML; - } - - /** - * @return string One of 'js', 'html' or 'unknown' - * @phpstan-return self::FORMAT_* - */ - protected static function getResponseFormatFromContentType(string $contentType): string - { - // This handler only works with HTML and javascript outputs - // text/javascript is obsolete in favour of application/javascript, but still used - if (stripos($contentType, 'application/javascript') !== false || stripos($contentType, 'text/javascript') !== false) { - return self::FORMAT_JS; - } - - if (stripos($contentType, 'text/html') !== false) { - return self::FORMAT_HTML; - } - - return self::FORMAT_UNKNOWN; - } - - private static function generateScript(): string - { - $script = []; - foreach (static::$records as $record) { - $context = self::dump('Context', $record->context); - $extra = self::dump('Extra', $record->extra); - - if (\count($context) === 0 && \count($extra) === 0) { - $script[] = self::call_array(self::getConsoleMethodForLevel($record->level), self::handleStyles($record->formatted)); - } else { - $script = array_merge( - $script, - [self::call_array('groupCollapsed', self::handleStyles($record->formatted))], - $context, - $extra, - [self::call('groupEnd')] - ); - } - } - - return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; - } - - private static function getConsoleMethodForLevel(Level $level): string - { - return match ($level) { - Level::Debug => 'debug', - Level::Info, Level::Notice => 'info', - Level::Warning => 'warn', - Level::Error, Level::Critical, Level::Alert, Level::Emergency => 'error', - }; - } - - /** - * @return string[] - */ - private static function handleStyles(string $formatted): array - { - $args = []; - $format = '%c' . $formatted; - preg_match_all('/\[\[(.*?)\]\]\{([^}]*)\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); - - foreach (array_reverse($matches) as $match) { - $args[] = '"font-weight: normal"'; - $args[] = self::quote(self::handleCustomStyles($match[2][0], $match[1][0])); - - $pos = $match[0][1]; - $format = Utils::substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . Utils::substr($format, $pos + \strlen($match[0][0])); - } - - $args[] = self::quote('font-weight: normal'); - $args[] = self::quote($format); - - return array_reverse($args); - } - - private static function handleCustomStyles(string $style, string $string): string - { - static $colors = ['blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey']; - static $labels = []; - - $style = preg_replace_callback('/macro\s*:(.*?)(?:;|$)/', function (array $m) use ($string, &$colors, &$labels) { - if (trim($m[1]) === 'autolabel') { - // Format the string as a label with consistent auto assigned background color - if (!isset($labels[$string])) { - $labels[$string] = $colors[\count($labels) % \count($colors)]; - } - $color = $labels[$string]; - - return "background-color: $color; color: white; border-radius: 3px; padding: 0 2px 0 2px"; - } - - return $m[1]; - }, $style); - - if (null === $style) { - $pcreErrorCode = preg_last_error(); - - throw new \RuntimeException('Failed to run preg_replace_callback: ' . $pcreErrorCode . ' / ' . preg_last_error_msg()); - } - - return $style; - } - - /** - * @param mixed[] $dict - * @return mixed[] - */ - private static function dump(string $title, array $dict): array - { - $script = []; - $dict = array_filter($dict, fn ($value) => $value !== null); - if (\count($dict) === 0) { - return $script; - } - $script[] = self::call('log', self::quote('%c%s'), self::quote('font-weight: bold'), self::quote($title)); - foreach ($dict as $key => $value) { - $value = json_encode($value); - if (false === $value) { - $value = self::quote(''); - } - $script[] = self::call('log', self::quote('%s: %o'), self::quote((string) $key), $value); - } - - return $script; - } - - private static function quote(string $arg): string - { - return '"' . addcslashes($arg, "\"\n\\") . '"'; - } - - /** - * @param mixed $args - */ - private static function call(...$args): string - { - $method = array_shift($args); - if (!\is_string($method)) { - throw new \UnexpectedValueException('Expected the first arg to be a string, got: '.var_export($method, true)); - } - - return self::call_array($method, $args); - } - - /** - * @param mixed[] $args - */ - private static function call_array(string $method, array $args): string - { - return 'c.' . $method . '(' . implode(', ', $args) . ');'; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php deleted file mode 100644 index c799b6b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\ResettableInterface; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Buffers all records until closing the handler and then pass them as batch. - * - * This is useful for a MailHandler to send only one mail per request instead of - * sending one per log message. - * - * @author Christophe Coevoet - */ -class BufferHandler extends AbstractHandler implements ProcessableHandlerInterface, FormattableHandlerInterface -{ - use ProcessableHandlerTrait; - - protected HandlerInterface $handler; - - protected int $bufferSize = 0; - - protected int $bufferLimit; - - protected bool $flushOnOverflow; - - /** @var LogRecord[] */ - protected array $buffer = []; - - protected bool $initialized = false; - - /** - * @param HandlerInterface $handler Handler. - * @param int $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param bool $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded - */ - public function __construct(HandlerInterface $handler, int $bufferLimit = 0, int|string|Level $level = Level::Debug, bool $bubble = true, bool $flushOnOverflow = false) - { - parent::__construct($level, $bubble); - $this->handler = $handler; - $this->bufferLimit = $bufferLimit; - $this->flushOnOverflow = $flushOnOverflow; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if ($record->level->isLowerThan($this->level)) { - return false; - } - - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - register_shutdown_function([$this, 'close']); - $this->initialized = true; - } - - if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) { - if ($this->flushOnOverflow) { - $this->flush(); - } else { - array_shift($this->buffer); - $this->bufferSize--; - } - } - - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - $this->buffer[] = $record; - $this->bufferSize++; - - return false === $this->bubble; - } - - public function flush(): void - { - if ($this->bufferSize === 0) { - return; - } - - $this->handler->handleBatch($this->buffer); - $this->clear(); - } - - public function __destruct() - { - // suppress the parent behavior since we already have register_shutdown_function() - // to call close(), and the reference contained there will prevent this from being - // GC'd until the end of the request - } - - /** - * @inheritDoc - */ - public function close(): void - { - $this->flush(); - - $this->handler->close(); - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - */ - public function clear(): void - { - $this->bufferSize = 0; - $this->buffer = []; - } - - public function reset(): void - { - $this->flush(); - - parent::reset(); - - $this->resetProcessors(); - - if ($this->handler instanceof ResettableInterface) { - $this->handler->reset(); - } - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - $this->handler->setFormatter($formatter); - - return $this; - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($this->handler).' does not support formatters.'); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - return $this->handler->getFormatter(); - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($this->handler).' does not support formatters.'); - } - - public function setHandler(HandlerInterface $handler): void - { - $this->handler = $handler; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php deleted file mode 100644 index 6598e82..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ /dev/null @@ -1,186 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\ChromePHPFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; -use Monolog\JsonSerializableDateTimeImmutable; - -/** - * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) - * - * This also works out of the box with Firefox 43+ - * - * @author Christophe Coevoet - */ -class ChromePHPHandler extends AbstractProcessingHandler -{ - use WebRequestRecognizerTrait; - - /** - * Version of the extension - */ - protected const VERSION = '4.0'; - - /** - * Header name - */ - protected const HEADER_NAME = 'X-ChromeLogger-Data'; - - /** - * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+) - */ - protected const USER_AGENT_REGEX = '{\b(?:Chrome/\d+(?:\.\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\d|\d{3,})(?:\.\d)*)\b}'; - - protected static bool $initialized = false; - - /** - * Tracks whether we sent too much data - * - * Chrome limits the headers to 4KB, so when we sent 3KB we stop sending - */ - protected static bool $overflowed = false; - - /** @var mixed[] */ - protected static array $json = [ - 'version' => self::VERSION, - 'columns' => ['label', 'log', 'backtrace', 'type'], - 'rows' => [], - ]; - - protected static bool $sendHeaders = true; - - public function __construct(int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - if (!$this->isWebRequest()) { - return; - } - - $messages = []; - - foreach ($records as $record) { - if ($record->level < $this->level) { - continue; - } - - $message = $this->processRecord($record); - $messages[] = $message; - } - - if (\count($messages) > 0) { - $messages = $this->getFormatter()->formatBatch($messages); - self::$json['rows'] = array_merge(self::$json['rows'], $messages); - $this->send(); - } - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new ChromePHPFormatter(); - } - - /** - * Creates & sends header for a record - * - * @see sendHeader() - * @see send() - */ - protected function write(LogRecord $record): void - { - if (!$this->isWebRequest()) { - return; - } - - self::$json['rows'][] = $record->formatted; - - $this->send(); - } - - /** - * Sends the log header - * - * @see sendHeader() - */ - protected function send(): void - { - if (self::$overflowed || !self::$sendHeaders) { - return; - } - - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - self::$json['request_uri'] = $_SERVER['REQUEST_URI'] ?? ''; - } - - $json = Utils::jsonEncode(self::$json, Utils::DEFAULT_JSON_FLAGS & ~JSON_UNESCAPED_UNICODE, true); - $data = base64_encode($json); - if (\strlen($data) > 3 * 1024) { - self::$overflowed = true; - - $record = new LogRecord( - message: 'Incomplete logs, chrome header size limit reached', - level: Level::Warning, - channel: 'monolog', - datetime: new JsonSerializableDateTimeImmutable(true), - ); - self::$json['rows'][\count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = Utils::jsonEncode(self::$json, Utils::DEFAULT_JSON_FLAGS & ~JSON_UNESCAPED_UNICODE, true); - $data = base64_encode($json); - } - - if (trim($data) !== '') { - $this->sendHeader(static::HEADER_NAME, $data); - } - } - - /** - * Send header string to the client - */ - protected function sendHeader(string $header, string $content): void - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - */ - protected function headersAccepted(): bool - { - if (!isset($_SERVER['HTTP_USER_AGENT'])) { - return false; - } - - return preg_match(static::USER_AGENT_REGEX, $_SERVER['HTTP_USER_AGENT']) === 1; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php deleted file mode 100644 index 8d9c10e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\JsonFormatter; -use Monolog\Level; -use Monolog\LogRecord; - -/** - * CouchDB handler - * - * @author Markus Bachmann - * @phpstan-type Options array{ - * host: string, - * port: int, - * dbname: string, - * username: string|null, - * password: string|null - * } - * @phpstan-type InputOptions array{ - * host?: string, - * port?: int, - * dbname?: string, - * username?: string|null, - * password?: string|null - * } - */ -class CouchDBHandler extends AbstractProcessingHandler -{ - /** - * @var mixed[] - * @phpstan-var Options - */ - private array $options; - - /** - * @param mixed[] $options - * - * @phpstan-param InputOptions $options - */ - public function __construct(array $options = [], int|string|Level $level = Level::Debug, bool $bubble = true) - { - $this->options = array_merge([ - 'host' => 'localhost', - 'port' => 5984, - 'dbname' => 'logger', - 'username' => null, - 'password' => null, - ], $options); - - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $basicAuth = null; - if (null !== $this->options['username'] && null !== $this->options['password']) { - $basicAuth = sprintf('%s:%s@', $this->options['username'], $this->options['password']); - } - - $url = 'http://'.$basicAuth.$this->options['host'].':'.$this->options['port'].'/'.$this->options['dbname']; - $context = stream_context_create([ - 'http' => [ - 'method' => 'POST', - 'content' => $record->formatted, - 'ignore_errors' => true, - 'max_redirects' => 0, - 'header' => 'Content-type: application/json', - ], - ]); - - if (false === @file_get_contents($url, false, $context)) { - throw new \RuntimeException(sprintf('Could not connect to %s', $url)); - } - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php deleted file mode 100644 index a76bf40..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ /dev/null @@ -1,167 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Logs to Cube. - * - * @link https://github.com/square/cube/wiki - * @author Wan Chen - * @deprecated Since 2.8.0 and 3.2.0, Cube appears abandoned and thus we will drop this handler in Monolog 4 - */ -class CubeHandler extends AbstractProcessingHandler -{ - private ?\Socket $udpConnection = null; - private ?\CurlHandle $httpConnection = null; - private string $scheme; - private string $host; - private int $port; - /** @var string[] */ - private array $acceptedSchemes = ['http', 'udp']; - - /** - * Create a Cube handler - * - * @throws \UnexpectedValueException when given url is not a valid url. - * A valid url must consist of three parts : protocol://host:port - * Only valid protocols used by Cube are http and udp - */ - public function __construct(string $url, int|string|Level $level = Level::Debug, bool $bubble = true) - { - $urlInfo = parse_url($url); - - if ($urlInfo === false || !isset($urlInfo['scheme'], $urlInfo['host'], $urlInfo['port'])) { - throw new \UnexpectedValueException('URL "'.$url.'" is not valid'); - } - - if (!\in_array($urlInfo['scheme'], $this->acceptedSchemes, true)) { - throw new \UnexpectedValueException( - 'Invalid protocol (' . $urlInfo['scheme'] . ').' - . ' Valid options are ' . implode(', ', $this->acceptedSchemes) - ); - } - - $this->scheme = $urlInfo['scheme']; - $this->host = $urlInfo['host']; - $this->port = $urlInfo['port']; - - parent::__construct($level, $bubble); - } - - /** - * Establish a connection to an UDP socket - * - * @throws \LogicException when unable to connect to the socket - * @throws MissingExtensionException when there is no socket extension - */ - protected function connectUdp(): void - { - if (!\extension_loaded('sockets')) { - throw new MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler'); - } - - $udpConnection = socket_create(AF_INET, SOCK_DGRAM, 0); - if (false === $udpConnection) { - throw new \LogicException('Unable to create a socket'); - } - - $this->udpConnection = $udpConnection; - if (!socket_connect($this->udpConnection, $this->host, $this->port)) { - throw new \LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port); - } - } - - /** - * Establish a connection to an http server - * - * @throws \LogicException when unable to connect to the socket - * @throws MissingExtensionException when no curl extension - */ - protected function connectHttp(): void - { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is required to use http URLs with the CubeHandler'); - } - - $httpConnection = curl_init('http://'.$this->host.':'.$this->port.'/1.0/event/put'); - if (false === $httpConnection) { - throw new \LogicException('Unable to connect to ' . $this->host . ':' . $this->port); - } - - $this->httpConnection = $httpConnection; - curl_setopt($this->httpConnection, CURLOPT_CUSTOMREQUEST, "POST"); - curl_setopt($this->httpConnection, CURLOPT_RETURNTRANSFER, true); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $date = $record->datetime; - - $data = ['time' => $date->format('Y-m-d\TH:i:s.uO')]; - $context = $record->context; - - if (isset($context['type'])) { - $data['type'] = $context['type']; - unset($context['type']); - } else { - $data['type'] = $record->channel; - } - - $data['data'] = $context; - $data['data']['level'] = $record->level; - - if ($this->scheme === 'http') { - $this->writeHttp(Utils::jsonEncode($data)); - } else { - $this->writeUdp(Utils::jsonEncode($data)); - } - } - - private function writeUdp(string $data): void - { - if (null === $this->udpConnection) { - $this->connectUdp(); - } - - if (null === $this->udpConnection) { - throw new \LogicException('No UDP socket could be opened'); - } - - socket_send($this->udpConnection, $data, \strlen($data), 0); - } - - private function writeHttp(string $data): void - { - if (null === $this->httpConnection) { - $this->connectHttp(); - } - - if (null === $this->httpConnection) { - throw new \LogicException('No connection could be established'); - } - - curl_setopt($this->httpConnection, CURLOPT_POSTFIELDS, '['.$data.']'); - curl_setopt($this->httpConnection, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/json', - 'Content-Length: ' . \strlen('['.$data.']'), - ]); - - Curl\Util::execute($this->httpConnection, 5, false); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php deleted file mode 100644 index 6d78cb1..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\Curl; - -use CurlHandle; - -/** - * This class is marked as internal and it is not under the BC promise of the package. - * - * @internal - */ -final class Util -{ - /** @var array */ - private static array $retriableErrorCodes = [ - CURLE_COULDNT_RESOLVE_HOST, - CURLE_COULDNT_CONNECT, - CURLE_HTTP_NOT_FOUND, - CURLE_READ_ERROR, - CURLE_OPERATION_TIMEOUTED, - CURLE_HTTP_POST_ERROR, - CURLE_SSL_CONNECT_ERROR, - ]; - - /** - * Executes a CURL request with optional retries and exception on failure - * - * @param CurlHandle $ch curl handler - * @return bool|string @see curl_exec - */ - public static function execute(CurlHandle $ch, int $retries = 5, bool $closeAfterDone = true): bool|string - { - while ($retries > 0) { - $retries--; - $curlResponse = curl_exec($ch); - if ($curlResponse === false) { - $curlErrno = curl_errno($ch); - - if (false === \in_array($curlErrno, self::$retriableErrorCodes, true) || $retries === 0) { - $curlError = curl_error($ch); - - if ($closeAfterDone) { - curl_close($ch); - } - - throw new \RuntimeException(sprintf('Curl error (code %d): %s', $curlErrno, $curlError)); - } - continue; - } - - if ($closeAfterDone) { - curl_close($ch); - } - - return $curlResponse; - } - return false; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php deleted file mode 100644 index 873a4b8..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php +++ /dev/null @@ -1,174 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Simple handler wrapper that deduplicates log records across multiple requests - * - * It also includes the BufferHandler functionality and will buffer - * all messages until the end of the request or flush() is called. - * - * This works by storing all log records' messages above $deduplicationLevel - * to the file specified by $deduplicationStore. When further logs come in at the end of the - * request (or when flush() is called), all those above $deduplicationLevel are checked - * against the existing stored logs. If they match and the timestamps in the stored log is - * not older than $time seconds, the new log record is discarded. If no log record is new, the - * whole data set is discarded. - * - * This is mainly useful in combination with Mail handlers or things like Slack or HipChat handlers - * that send messages to people, to avoid spamming with the same message over and over in case of - * a major component failure like a database server being down which makes all requests fail in the - * same way. - * - * @author Jordi Boggiano - */ -class DeduplicationHandler extends BufferHandler -{ - protected string $deduplicationStore; - - protected Level $deduplicationLevel; - - protected int $time; - protected bool $gc = false; - - /** - * @param HandlerInterface $handler Handler. - * @param string|null $deduplicationStore The file/path where the deduplication log should be kept - * @param int|string|Level|LogLevel::* $deduplicationLevel The minimum logging level for log records to be looked at for deduplication purposes - * @param int $time The period (in seconds) during which duplicate entries should be suppressed after a given log is sent through - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $deduplicationLevel - */ - public function __construct(HandlerInterface $handler, ?string $deduplicationStore = null, int|string|Level $deduplicationLevel = Level::Error, int $time = 60, bool $bubble = true) - { - parent::__construct($handler, 0, Level::Debug, $bubble, false); - - $this->deduplicationStore = $deduplicationStore === null ? sys_get_temp_dir() . '/monolog-dedup-' . substr(md5(__FILE__), 0, 20) .'.log' : $deduplicationStore; - $this->deduplicationLevel = Logger::toMonologLevel($deduplicationLevel); - $this->time = $time; - } - - public function flush(): void - { - if ($this->bufferSize === 0) { - return; - } - - $store = null; - - if (file_exists($this->deduplicationStore)) { - $store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - } - - $passthru = null; - - foreach ($this->buffer as $record) { - if ($record->level->value >= $this->deduplicationLevel->value) { - $passthru = $passthru === true || !\is_array($store) || !$this->isDuplicate($store, $record); - if ($passthru) { - $line = $this->buildDeduplicationStoreEntry($record); - file_put_contents($this->deduplicationStore, $line . "\n", FILE_APPEND); - if (!\is_array($store)) { - $store = []; - } - $store[] = $line; - } - } - } - - // default of null is valid as well as if no record matches duplicationLevel we just pass through - if ($passthru === true || $passthru === null) { - $this->handler->handleBatch($this->buffer); - } - - $this->clear(); - - if ($this->gc) { - $this->collectLogs(); - } - } - - /** - * If there is a store entry older than e.g. a day, this method should set `$this->gc` to `true` to trigger garbage collection. - * @param string[] $store The deduplication store - */ - protected function isDuplicate(array $store, LogRecord $record): bool - { - $timestampValidity = $record->datetime->getTimestamp() - $this->time; - $expectedMessage = preg_replace('{[\r\n].*}', '', $record->message); - $yesterday = time() - 86400; - - for ($i = \count($store) - 1; $i >= 0; $i--) { - list($timestamp, $level, $message) = explode(':', $store[$i], 3); - - if ($level === $record->level->getName() && $message === $expectedMessage && $timestamp > $timestampValidity) { - return true; - } - - if ($timestamp < $yesterday) { - $this->gc = true; - } - } - - return false; - } - - /** - * @return string The given record serialized as a single line of text - */ - protected function buildDeduplicationStoreEntry(LogRecord $record): string - { - return $record->datetime->getTimestamp() . ':' . $record->level->getName() . ':' . preg_replace('{[\r\n].*}', '', $record->message); - } - - private function collectLogs(): void - { - if (!file_exists($this->deduplicationStore)) { - return; - } - - $handle = fopen($this->deduplicationStore, 'rw+'); - - if (false === $handle) { - throw new \RuntimeException('Failed to open file for reading and writing: ' . $this->deduplicationStore); - } - - flock($handle, LOCK_EX); - $validLogs = []; - - $timestampValidity = time() - $this->time; - - while (!feof($handle)) { - $log = fgets($handle); - if (\is_string($log) && '' !== $log && substr($log, 0, 10) >= $timestampValidity) { - $validLogs[] = $log; - } - } - - ftruncate($handle, 0); - rewind($handle); - foreach ($validLogs as $log) { - fwrite($handle, $log); - } - - flock($handle, LOCK_UN); - fclose($handle); - - $this->gc = false; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php deleted file mode 100644 index eab9f10..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Formatter\FormatterInterface; -use Doctrine\CouchDB\CouchDBClient; -use Monolog\LogRecord; - -/** - * CouchDB handler for Doctrine CouchDB ODM - * - * @author Markus Bachmann - */ -class DoctrineCouchDBHandler extends AbstractProcessingHandler -{ - private CouchDBClient $client; - - public function __construct(CouchDBClient $client, int|string|Level $level = Level::Debug, bool $bubble = true) - { - $this->client = $client; - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->client->postDocument($record->formatted); - } - - protected function getDefaultFormatter(): FormatterInterface - { - return new NormalizerFormatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php deleted file mode 100644 index f1c5a95..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Aws\Sdk; -use Aws\DynamoDb\DynamoDbClient; -use Monolog\Formatter\FormatterInterface; -use Aws\DynamoDb\Marshaler; -use Monolog\Formatter\ScalarFormatter; -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) - * - * @link https://github.com/aws/aws-sdk-php/ - * @author Andrew Lawson - */ -class DynamoDbHandler extends AbstractProcessingHandler -{ - public const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; - - protected DynamoDbClient $client; - - protected string $table; - - protected Marshaler $marshaler; - - public function __construct(DynamoDbClient $client, string $table, int|string|Level $level = Level::Debug, bool $bubble = true) - { - $this->marshaler = new Marshaler; - - $this->client = $client; - $this->table = $table; - - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $filtered = $this->filterEmptyFields($record->formatted); - $formatted = $this->marshaler->marshalItem($filtered); - - $this->client->putItem([ - 'TableName' => $this->table, - 'Item' => $formatted, - ]); - } - - /** - * @param mixed[] $record - * @return mixed[] - */ - protected function filterEmptyFields(array $record): array - { - return array_filter($record, function ($value) { - return [] !== $value; - }); - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new ScalarFormatter(self::DATE_FORMAT); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php deleted file mode 100644 index 4a184b3..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php +++ /dev/null @@ -1,143 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Elastic\Transport\Exception\TransportException; -use Elastica\Document; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\ElasticaFormatter; -use Monolog\Level; -use Elastica\Client; -use Elastica\Exception\ExceptionInterface; -use Monolog\LogRecord; - -/** - * Elastic Search handler - * - * Usage example: - * - * $client = new \Elastica\Client(); - * $options = array( - * 'index' => 'elastic_index_name', - * 'type' => 'elastic_doc_type', Types have been removed in Elastica 7 - * ); - * $handler = new ElasticaHandler($client, $options); - * $log = new Logger('application'); - * $log->pushHandler($handler); - * - * @author Jelle Vink - * @phpstan-type Options array{ - * index: string, - * type: string, - * ignore_error: bool - * } - * @phpstan-type InputOptions array{ - * index?: string, - * type?: string, - * ignore_error?: bool - * } - */ -class ElasticaHandler extends AbstractProcessingHandler -{ - protected Client $client; - - /** - * @var mixed[] Handler config options - * @phpstan-var Options - */ - protected array $options; - - /** - * @param Client $client Elastica Client object - * @param mixed[] $options Handler configuration - * - * @phpstan-param InputOptions $options - */ - public function __construct(Client $client, array $options = [], int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - $this->client = $client; - $this->options = array_merge( - [ - 'index' => 'monolog', // Elastic index name - 'type' => 'record', // Elastic document type - 'ignore_error' => false, // Suppress Elastica exceptions - ], - $options - ); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->bulkSend([$record->formatted]); - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if ($formatter instanceof ElasticaFormatter) { - return parent::setFormatter($formatter); - } - - throw new \InvalidArgumentException('ElasticaHandler is only compatible with ElasticaFormatter'); - } - - /** - * @return mixed[] - * - * @phpstan-return Options - */ - public function getOptions(): array - { - return $this->options; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new ElasticaFormatter($this->options['index'], $this->options['type']); - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $documents = $this->getFormatter()->formatBatch($records); - $this->bulkSend($documents); - } - - /** - * Use Elasticsearch bulk API to send list of documents - * - * @param Document[] $documents - * - * @throws \RuntimeException - */ - protected function bulkSend(array $documents): void - { - try { - $this->client->addDocuments($documents); - } catch (ExceptionInterface | TransportException $e) { - if (!$this->options['ignore_error']) { - throw new \RuntimeException("Error sending messages to Elasticsearch", 0, $e); - } - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php deleted file mode 100644 index 6fd705d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php +++ /dev/null @@ -1,238 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Elastic\Elasticsearch\Response\Elasticsearch; -use Throwable; -use RuntimeException; -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\ElasticsearchFormatter; -use InvalidArgumentException; -use Elasticsearch\Common\Exceptions\RuntimeException as ElasticsearchRuntimeException; -use Elasticsearch\Client; -use Monolog\LogRecord; -use Elastic\Elasticsearch\Exception\InvalidArgumentException as ElasticInvalidArgumentException; -use Elastic\Elasticsearch\Client as Client8; - -/** - * Elasticsearch handler - * - * @link https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html - * - * Simple usage example: - * - * $client = \Elasticsearch\ClientBuilder::create() - * ->setHosts($hosts) - * ->build(); - * - * $options = array( - * 'index' => 'elastic_index_name', - * 'type' => 'elastic_doc_type', - * ); - * $handler = new ElasticsearchHandler($client, $options); - * $log = new Logger('application'); - * $log->pushHandler($handler); - * - * @author Avtandil Kikabidze - * @phpstan-type Options array{ - * index: string, - * type: string, - * ignore_error: bool, - * op_type: 'index'|'create' - * } - * @phpstan-type InputOptions array{ - * index?: string, - * type?: string, - * ignore_error?: bool, - * op_type?: 'index'|'create' - * } - */ -class ElasticsearchHandler extends AbstractProcessingHandler -{ - protected Client|Client8 $client; - - /** - * @var mixed[] Handler config options - * @phpstan-var Options - */ - protected array $options; - - /** - * @var bool - */ - private $needsType; - - /** - * @param Client|Client8 $client Elasticsearch Client object - * @param mixed[] $options Handler configuration - * - * @phpstan-param InputOptions $options - */ - public function __construct(Client|Client8 $client, array $options = [], int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - $this->client = $client; - $this->options = array_merge( - [ - 'index' => 'monolog', // Elastic index name - 'type' => '_doc', // Elastic document type - 'ignore_error' => false, // Suppress Elasticsearch exceptions - 'op_type' => 'index', // Elastic op_type (index or create) (https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#docs-index-api-op_type) - ], - $options - ); - - if ($client instanceof Client8 || $client::VERSION[0] === '7') { - $this->needsType = false; - // force the type to _doc for ES8/ES7 - $this->options['type'] = '_doc'; - } else { - $this->needsType = true; - } - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->bulkSend([$record->formatted]); - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if ($formatter instanceof ElasticsearchFormatter) { - return parent::setFormatter($formatter); - } - - throw new InvalidArgumentException('ElasticsearchHandler is only compatible with ElasticsearchFormatter'); - } - - /** - * Getter options - * - * @return mixed[] - * - * @phpstan-return Options - */ - public function getOptions(): array - { - return $this->options; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new ElasticsearchFormatter($this->options['index'], $this->options['type']); - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $documents = $this->getFormatter()->formatBatch($records); - $this->bulkSend($documents); - } - - /** - * Use Elasticsearch bulk API to send list of documents - * - * @param array> $records Records + _index/_type keys - * @throws \RuntimeException - */ - protected function bulkSend(array $records): void - { - try { - $params = [ - 'body' => [], - ]; - - foreach ($records as $record) { - $params['body'][] = [ - $this->options['op_type'] => $this->needsType ? [ - '_index' => $record['_index'], - '_type' => $record['_type'], - ] : [ - '_index' => $record['_index'], - ], - ]; - unset($record['_index'], $record['_type']); - - $params['body'][] = $record; - } - - /** @var Elasticsearch */ - $responses = $this->client->bulk($params); - - if ($responses['errors'] === true) { - throw $this->createExceptionFromResponses($responses); - } - } catch (Throwable $e) { - if (! $this->options['ignore_error']) { - throw new RuntimeException('Error sending messages to Elasticsearch', 0, $e); - } - } - } - - /** - * Creates elasticsearch exception from responses array - * - * Only the first error is converted into an exception. - * - * @param mixed[]|Elasticsearch $responses returned by $this->client->bulk() - */ - protected function createExceptionFromResponses($responses): Throwable - { - foreach ($responses['items'] ?? [] as $item) { - if (isset($item['index']['error'])) { - return $this->createExceptionFromError($item['index']['error']); - } - } - - if (class_exists(ElasticInvalidArgumentException::class)) { - return new ElasticInvalidArgumentException('Elasticsearch failed to index one or more records.'); - } - - if (class_exists(ElasticsearchRuntimeException::class)) { - return new ElasticsearchRuntimeException('Elasticsearch failed to index one or more records.'); - } - - throw new \LogicException('Unsupported elastic search client version'); - } - - /** - * Creates elasticsearch exception from error array - * - * @param mixed[] $error - */ - protected function createExceptionFromError(array $error): Throwable - { - $previous = isset($error['caused_by']) ? $this->createExceptionFromError($error['caused_by']) : null; - - if (class_exists(ElasticInvalidArgumentException::class)) { - return new ElasticInvalidArgumentException($error['type'] . ': ' . $error['reason'], 0, $previous); - } - - if (class_exists(ElasticsearchRuntimeException::class)) { - return new ElasticsearchRuntimeException($error['type'].': '.$error['reason'], 0, $previous); - } - - throw new \LogicException('Unsupported elastic search client version'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php deleted file mode 100644 index cd28ff6..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Stores to PHP error_log() handler. - * - * @author Elan Ruusamäe - */ -class ErrorLogHandler extends AbstractProcessingHandler -{ - public const OPERATING_SYSTEM = 0; - public const SAPI = 4; - - /** @var 0|4 */ - protected int $messageType; - protected bool $expandNewlines; - - /** - * @param 0|4 $messageType Says where the error should go. - * @param bool $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries - * - * @throws \InvalidArgumentException If an unsupported message type is set - */ - public function __construct(int $messageType = self::OPERATING_SYSTEM, int|string|Level $level = Level::Debug, bool $bubble = true, bool $expandNewlines = false) - { - parent::__construct($level, $bubble); - - if (false === \in_array($messageType, self::getAvailableTypes(), true)) { - $message = sprintf('The given message type "%s" is not supported', print_r($messageType, true)); - - throw new \InvalidArgumentException($message); - } - - $this->messageType = $messageType; - $this->expandNewlines = $expandNewlines; - } - - /** - * @return int[] With all available types - */ - public static function getAvailableTypes(): array - { - return [ - self::OPERATING_SYSTEM, - self::SAPI, - ]; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%'); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if (!$this->expandNewlines) { - error_log((string) $record->formatted, $this->messageType); - - return; - } - - $lines = preg_split('{[\r\n]+}', (string) $record->formatted); - if ($lines === false) { - $pcreErrorCode = preg_last_error(); - - throw new \RuntimeException('Failed to preg_split formatted string: ' . $pcreErrorCode . ' / '. preg_last_error_msg()); - } - foreach ($lines as $line) { - error_log($line, $this->messageType); - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php deleted file mode 100644 index 58318be..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Throwable; -use Monolog\LogRecord; - -/** - * Forwards records to at most one handler - * - * If a handler fails, the exception is suppressed and the record is forwarded to the next handler. - * - * As soon as one handler handles a record successfully, the handling stops there. - */ -class FallbackGroupHandler extends GroupHandler -{ - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - foreach ($this->handlers as $handler) { - try { - $handler->handle(clone $record); - break; - } catch (Throwable $e) { - // What throwable? - } - } - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - if (\count($this->processors) > 0) { - $processed = []; - foreach ($records as $record) { - $processed[] = $this->processRecord($record); - } - $records = $processed; - } - - foreach ($this->handlers as $handler) { - try { - $handler->handleBatch(array_map(fn ($record) => clone $record, $records)); - break; - } catch (Throwable $e) { - // What throwable? - } - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php deleted file mode 100644 index 6653fa1..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Closure; -use Monolog\Level; -use Monolog\Logger; -use Monolog\ResettableInterface; -use Monolog\Formatter\FormatterInterface; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Simple handler wrapper that filters records based on a list of levels - * - * It can be configured with an exact list of levels to allow, or a min/max level. - * - * @author Hennadiy Verkh - * @author Jordi Boggiano - */ -class FilterHandler extends Handler implements ProcessableHandlerInterface, ResettableInterface, FormattableHandlerInterface -{ - use ProcessableHandlerTrait; - - /** - * Handler or factory Closure($record, $this) - * - * @phpstan-var (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface - */ - protected Closure|HandlerInterface $handler; - - /** - * Minimum level for logs that are passed to handler - * - * @var bool[] Map of Level value => true - * @phpstan-var array, true> - */ - protected array $acceptedLevels; - - /** - * Whether the messages that are handled can bubble up the stack or not - */ - protected bool $bubble; - - /** - * @phpstan-param (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface $handler - * - * @param Closure|HandlerInterface $handler Handler or factory Closure($record|null, $filterHandler). - * @param int|string|Level|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided - * @param int|string|Level|LogLevel::* $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @phpstan-param value-of|value-of|Level|LogLevel::*|array|value-of|Level|LogLevel::*> $minLevelOrList - * @phpstan-param value-of|value-of|Level|LogLevel::* $maxLevel - */ - public function __construct(Closure|HandlerInterface $handler, int|string|Level|array $minLevelOrList = Level::Debug, int|string|Level $maxLevel = Level::Emergency, bool $bubble = true) - { - $this->handler = $handler; - $this->bubble = $bubble; - $this->setAcceptedLevels($minLevelOrList, $maxLevel); - } - - /** - * @phpstan-return list List of levels - */ - public function getAcceptedLevels(): array - { - return array_map(fn (int $level) => Level::from($level), array_keys($this->acceptedLevels)); - } - - /** - * @param int|string|Level|LogLevel::*|array $minLevelOrList A list of levels to accept or a minimum level or level name if maxLevel is provided - * @param int|string|Level|LogLevel::* $maxLevel Maximum level or level name to accept, only used if $minLevelOrList is not an array - * @return $this - * - * @phpstan-param value-of|value-of|Level|LogLevel::*|array|value-of|Level|LogLevel::*> $minLevelOrList - * @phpstan-param value-of|value-of|Level|LogLevel::* $maxLevel - */ - public function setAcceptedLevels(int|string|Level|array $minLevelOrList = Level::Debug, int|string|Level $maxLevel = Level::Emergency): self - { - if (\is_array($minLevelOrList)) { - $acceptedLevels = array_map(Logger::toMonologLevel(...), $minLevelOrList); - } else { - $minLevelOrList = Logger::toMonologLevel($minLevelOrList); - $maxLevel = Logger::toMonologLevel($maxLevel); - $acceptedLevels = array_values(array_filter(Level::cases(), fn (Level $level) => $level->value >= $minLevelOrList->value && $level->value <= $maxLevel->value)); - } - $this->acceptedLevels = []; - foreach ($acceptedLevels as $level) { - $this->acceptedLevels[$level->value] = true; - } - - return $this; - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return isset($this->acceptedLevels[$record->level->value]); - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (!$this->isHandling($record)) { - return false; - } - - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - $this->getHandler($record)->handle($record); - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $filtered = []; - foreach ($records as $record) { - if ($this->isHandling($record)) { - $filtered[] = $record; - } - } - - if (\count($filtered) > 0) { - $this->getHandler($filtered[\count($filtered) - 1])->handleBatch($filtered); - } - } - - /** - * Return the nested handler - * - * If the handler was provided as a factory, this will trigger the handler's instantiation. - */ - public function getHandler(LogRecord|null $record = null): HandlerInterface - { - if (!$this->handler instanceof HandlerInterface) { - $handler = ($this->handler)($record, $this); - if (!$handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory Closure should return a HandlerInterface"); - } - $this->handler = $handler; - } - - return $this->handler; - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - $handler->setFormatter($formatter); - - return $this; - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - return $handler->getFormatter(); - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } - - public function reset(): void - { - $this->resetProcessors(); - - if ($this->getHandler() instanceof ResettableInterface) { - $this->getHandler()->reset(); - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php deleted file mode 100644 index e8a1b0b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\LogRecord; - -/** - * Interface for activation strategies for the FingersCrossedHandler. - * - * @author Johannes M. Schmitt - */ -interface ActivationStrategyInterface -{ - /** - * Returns whether the given record activates the handler. - */ - public function isHandlerActivated(LogRecord $record): bool; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php deleted file mode 100644 index 383e19a..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Channel and Error level based monolog activation strategy. Allows to trigger activation - * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except - * for records of the 'sql' channel; those should trigger activation on level 'WARN'. - * - * Example: - * - * - * $activationStrategy = new ChannelLevelActivationStrategy( - * Level::Critical, - * array( - * 'request' => Level::Alert, - * 'sensitive' => Level::Error, - * ) - * ); - * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); - * - * - * @author Mike Meessen - */ -class ChannelLevelActivationStrategy implements ActivationStrategyInterface -{ - private Level $defaultActionLevel; - - /** - * @var array - */ - private array $channelToActionLevel; - - /** - * @param int|string|Level|LogLevel::* $defaultActionLevel The default action level to be used if the record's category doesn't match any - * @param array $channelToActionLevel An array that maps channel names to action levels. - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $defaultActionLevel - * @phpstan-param array|value-of|Level|LogLevel::*> $channelToActionLevel - */ - public function __construct(int|string|Level $defaultActionLevel, array $channelToActionLevel = []) - { - $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel); - $this->channelToActionLevel = array_map(Logger::toMonologLevel(...), $channelToActionLevel); - } - - public function isHandlerActivated(LogRecord $record): bool - { - if (isset($this->channelToActionLevel[$record->channel])) { - return $record->level->value >= $this->channelToActionLevel[$record->channel]->value; - } - - return $record->level->value >= $this->defaultActionLevel->value; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php deleted file mode 100644 index c3ca296..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Level; -use Monolog\LogRecord; -use Monolog\Logger; -use Psr\Log\LogLevel; - -/** - * Error level based activation strategy. - * - * @author Johannes M. Schmitt - */ -class ErrorLevelActivationStrategy implements ActivationStrategyInterface -{ - private Level $actionLevel; - - /** - * @param int|string|Level $actionLevel Level or name or value - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $actionLevel - */ - public function __construct(int|string|Level $actionLevel) - { - $this->actionLevel = Logger::toMonologLevel($actionLevel); - } - - public function isHandlerActivated(LogRecord $record): bool - { - return $record->level->value >= $this->actionLevel->value; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php deleted file mode 100644 index 1ce64e8..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ /dev/null @@ -1,242 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Closure; -use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; -use Monolog\Handler\FingersCrossed\ActivationStrategyInterface; -use Monolog\Level; -use Monolog\Logger; -use Monolog\ResettableInterface; -use Monolog\Formatter\FormatterInterface; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Buffers all records until a certain level is reached - * - * The advantage of this approach is that you don't get any clutter in your log files. - * Only requests which actually trigger an error (or whatever your actionLevel is) will be - * in the logs, but they will contain all records, not only those above the level threshold. - * - * You can then have a passthruLevel as well which means that at the end of the request, - * even if it did not get activated, it will still send through log records of e.g. at least a - * warning level. - * - * You can find the various activation strategies in the - * Monolog\Handler\FingersCrossed\ namespace. - * - * @author Jordi Boggiano - */ -class FingersCrossedHandler extends Handler implements ProcessableHandlerInterface, ResettableInterface, FormattableHandlerInterface -{ - use ProcessableHandlerTrait; - - /** - * Handler or factory Closure($record, $this) - * - * @phpstan-var (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface - */ - protected Closure|HandlerInterface $handler; - - protected ActivationStrategyInterface $activationStrategy; - - protected bool $buffering = true; - - protected int $bufferSize; - - /** @var LogRecord[] */ - protected array $buffer = []; - - protected bool $stopBuffering; - - protected Level|null $passthruLevel = null; - - protected bool $bubble; - - /** - * @phpstan-param (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface $handler - * - * @param Closure|HandlerInterface $handler Handler or factory Closure($record|null, $fingersCrossedHandler). - * @param int|string|Level|LogLevel::*|null $activationStrategy Strategy which determines when this handler takes action, or a level name/value at which the handler is activated - * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $stopBuffering Whether the handler should stop buffering after being triggered (default true) - * @param int|string|Level|LogLevel::*|null $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered - * - * @phpstan-param value-of|value-of|Level|LogLevel::*|ActivationStrategyInterface|null $activationStrategy - * @phpstan-param value-of|value-of|Level|LogLevel::*|null $passthruLevel - */ - public function __construct(Closure|HandlerInterface $handler, int|string|Level|ActivationStrategyInterface|null $activationStrategy = null, int $bufferSize = 0, bool $bubble = true, bool $stopBuffering = true, int|string|Level|null $passthruLevel = null) - { - if (null === $activationStrategy) { - $activationStrategy = new ErrorLevelActivationStrategy(Level::Warning); - } - - // convert simple int activationStrategy to an object - if (!$activationStrategy instanceof ActivationStrategyInterface) { - $activationStrategy = new ErrorLevelActivationStrategy($activationStrategy); - } - - $this->handler = $handler; - $this->activationStrategy = $activationStrategy; - $this->bufferSize = $bufferSize; - $this->bubble = $bubble; - $this->stopBuffering = $stopBuffering; - - if ($passthruLevel !== null) { - $this->passthruLevel = Logger::toMonologLevel($passthruLevel); - } - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return true; - } - - /** - * Manually activate this logger regardless of the activation strategy - */ - public function activate(): void - { - if ($this->stopBuffering) { - $this->buffering = false; - } - - $this->getHandler(end($this->buffer) ?: null)->handleBatch($this->buffer); - $this->buffer = []; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - if ($this->buffering) { - $this->buffer[] = $record; - if ($this->bufferSize > 0 && \count($this->buffer) > $this->bufferSize) { - array_shift($this->buffer); - } - if ($this->activationStrategy->isHandlerActivated($record)) { - $this->activate(); - } - } else { - $this->getHandler($record)->handle($record); - } - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function close(): void - { - $this->flushBuffer(); - - $this->getHandler()->close(); - } - - public function reset(): void - { - $this->flushBuffer(); - - $this->resetProcessors(); - - if ($this->getHandler() instanceof ResettableInterface) { - $this->getHandler()->reset(); - } - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - * - * It also resets the handler to its initial buffering state. - */ - public function clear(): void - { - $this->buffer = []; - $this->reset(); - } - - /** - * Resets the state of the handler. Stops forwarding records to the wrapped handler. - */ - private function flushBuffer(): void - { - if (null !== $this->passthruLevel) { - $passthruLevel = $this->passthruLevel; - $this->buffer = array_filter($this->buffer, static function ($record) use ($passthruLevel) { - return $passthruLevel->includes($record->level); - }); - if (\count($this->buffer) > 0) { - $this->getHandler(end($this->buffer))->handleBatch($this->buffer); - } - } - - $this->buffer = []; - $this->buffering = true; - } - - /** - * Return the nested handler - * - * If the handler was provided as a factory, this will trigger the handler's instantiation. - */ - public function getHandler(LogRecord|null $record = null): HandlerInterface - { - if (!$this->handler instanceof HandlerInterface) { - $handler = ($this->handler)($record, $this); - if (!$handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory Closure should return a HandlerInterface"); - } - $this->handler = $handler; - } - - return $this->handler; - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - $handler->setFormatter($formatter); - - return $this; - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - return $handler->getFormatter(); - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php deleted file mode 100644 index 6b9e510..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php +++ /dev/null @@ -1,174 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\WildfireFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. - * - * @author Eric Clemmons (@ericclemmons) - */ -class FirePHPHandler extends AbstractProcessingHandler -{ - use WebRequestRecognizerTrait; - - /** - * WildFire JSON header message format - */ - protected const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; - - /** - * FirePHP structure for parsing messages & their presentation - */ - protected const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'; - - /** - * Must reference a "known" plugin, otherwise headers won't display in FirePHP - */ - protected const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; - - /** - * Header prefix for Wildfire to recognize & parse headers - */ - protected const HEADER_PREFIX = 'X-Wf'; - - /** - * Whether or not Wildfire vendor-specific headers have been generated & sent yet - */ - protected static bool $initialized = false; - - /** - * Shared static message index between potentially multiple handlers - */ - protected static int $messageIndex = 1; - - protected static bool $sendHeaders = true; - - /** - * Base header creation function used by init headers & record headers - * - * @param array $meta Wildfire Plugin, Protocol & Structure Indexes - * @param string $message Log message - * - * @return array Complete header string ready for the client as key and message as value - * - * @phpstan-return non-empty-array - */ - protected function createHeader(array $meta, string $message): array - { - $header = sprintf('%s-%s', static::HEADER_PREFIX, join('-', $meta)); - - return [$header => $message]; - } - - /** - * Creates message header from record - * - * @return array - * - * @phpstan-return non-empty-array - * - * @see createHeader() - */ - protected function createRecordHeader(LogRecord $record): array - { - // Wildfire is extensible to support multiple protocols & plugins in a single request, - // but we're not taking advantage of that (yet), so we're using "1" for simplicity's sake. - return $this->createHeader( - [1, 1, 1, self::$messageIndex++], - $record->formatted - ); - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new WildfireFormatter(); - } - - /** - * Wildfire initialization headers to enable message parsing - * - * @see createHeader() - * @see sendHeader() - * - * @return array - */ - protected function getInitHeaders(): array - { - // Initial payload consists of required headers for Wildfire - return array_merge( - $this->createHeader(['Protocol', 1], static::PROTOCOL_URI), - $this->createHeader([1, 'Structure', 1], static::STRUCTURE_URI), - $this->createHeader([1, 'Plugin', 1], static::PLUGIN_URI) - ); - } - - /** - * Send header string to the client - */ - protected function sendHeader(string $header, string $content): void - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Creates & sends header for a record, ensuring init headers have been sent prior - * - * @see sendHeader() - * @see sendInitHeaders() - */ - protected function write(LogRecord $record): void - { - if (!self::$sendHeaders || !$this->isWebRequest()) { - return; - } - - // WildFire-specific headers must be sent prior to any messages - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - foreach ($this->getInitHeaders() as $header => $content) { - $this->sendHeader($header, $content); - } - } - - $header = $this->createRecordHeader($record); - if (trim(current($header)) !== '') { - $this->sendHeader(key($header), current($header)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - */ - protected function headersAccepted(): bool - { - if (isset($_SERVER['HTTP_USER_AGENT']) && 1 === preg_match('{\bFirePHP/\d+\.\d+\b}', $_SERVER['HTTP_USER_AGENT'])) { - return true; - } - - return isset($_SERVER['HTTP_X_FIREPHP_VERSION']); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php deleted file mode 100644 index 46ebfc0..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Sends logs to Fleep.io using Webhook integrations - * - * You'll need a Fleep.io account to use this handler. - * - * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation - * @author Ando Roots - */ -class FleepHookHandler extends SocketHandler -{ - protected const FLEEP_HOST = 'fleep.io'; - - protected const FLEEP_HOOK_URI = '/hook/'; - - /** - * @var string Webhook token (specifies the conversation where logs are sent) - */ - protected string $token; - - /** - * Construct a new Fleep.io Handler. - * - * For instructions on how to create a new web hook in your conversations - * see https://fleep.io/integrations/webhooks/ - * - * @param string $token Webhook token - * @throws MissingExtensionException if OpenSSL is missing - */ - public function __construct( - string $token, - $level = Level::Debug, - bool $bubble = true, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if (!\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); - } - - $this->token = $token; - - $connectionString = 'ssl://' . static::FLEEP_HOST . ':443'; - parent::__construct( - $connectionString, - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - } - - /** - * Returns the default formatter to use with this handler - * - * Overloaded to remove empty context and extra arrays from the end of the log message. - * - * @return LineFormatter - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter(null, null, true, true); - } - - /** - * Handles a log record - */ - public function write(LogRecord $record): void - { - parent::write($record); - $this->closeSocket(); - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the header of the API Call - */ - private function buildHeader(string $content): string - { - $header = "POST " . static::FLEEP_HOOK_URI . $this->token . " HTTP/1.1\r\n"; - $header .= "Host: " . static::FLEEP_HOST . "\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * Builds the body of API call - */ - private function buildContent(LogRecord $record): string - { - $dataArray = [ - 'message' => $record->formatted, - ]; - - return http_build_query($dataArray); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php deleted file mode 100644 index 27c6c15..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\Formatter\FlowdockFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Sends notifications through the Flowdock push API - * - * This must be configured with a FlowdockFormatter instance via setFormatter() - * - * Notes: - * API token - Flowdock API token - * - * @author Dominik Liebler - * @see https://www.flowdock.com/api/push - * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 - */ -class FlowdockHandler extends SocketHandler -{ - protected string $apiToken; - - /** - * @throws MissingExtensionException if OpenSSL is missing - */ - public function __construct( - string $apiToken, - $level = Level::Debug, - bool $bubble = true, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if (!\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); - } - - parent::__construct( - 'ssl://api.flowdock.com:443', - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - $this->apiToken = $apiToken; - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if (!$formatter instanceof FlowdockFormatter) { - throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); - } - - return parent::setFormatter($formatter); - } - - /** - * Gets the default formatter. - */ - protected function getDefaultFormatter(): FormatterInterface - { - throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - parent::write($record); - - $this->closeSocket(); - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - */ - private function buildContent(LogRecord $record): string - { - return Utils::jsonEncode($record->formatted); - } - - /** - * Builds the header of the API Call - */ - private function buildHeader(string $content): string - { - $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; - $header .= "Host: api.flowdock.com\r\n"; - $header .= "Content-Type: application/json\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php deleted file mode 100644 index 72da59e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; - -/** - * Interface to describe loggers that have a formatter - * - * @author Jordi Boggiano - */ -interface FormattableHandlerInterface -{ - /** - * Sets the formatter. - * - * @return HandlerInterface self - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface; - - /** - * Gets the formatter. - */ - public function getFormatter(): FormatterInterface; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php deleted file mode 100644 index c044e07..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; - -/** - * Helper trait for implementing FormattableInterface - * - * @author Jordi Boggiano - */ -trait FormattableHandlerTrait -{ - protected FormatterInterface|null $formatter = null; - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - $this->formatter = $formatter; - - return $this; - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - if (null === $this->formatter) { - $this->formatter = $this->getDefaultFormatter(); - } - - return $this->formatter; - } - - /** - * Gets the default formatter. - * - * Overwrite this if the LineFormatter is not a good default for your handler. - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php deleted file mode 100644 index ba5bb97..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\PublisherInterface; -use Monolog\Level; -use Monolog\Formatter\GelfMessageFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Handler to send messages to a Graylog2 (http://www.graylog2.org) server - * - * @author Matt Lehner - * @author Benjamin Zikarsky - */ -class GelfHandler extends AbstractProcessingHandler -{ - /** - * @var PublisherInterface the publisher object that sends the message to the server - */ - protected PublisherInterface $publisher; - - /** - * @param PublisherInterface $publisher a gelf publisher object - */ - public function __construct(PublisherInterface $publisher, int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - - $this->publisher = $publisher; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->publisher->publish($record->formatted); - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new GelfMessageFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php deleted file mode 100644 index 0423dc3..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php +++ /dev/null @@ -1,130 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\ResettableInterface; -use Monolog\LogRecord; - -/** - * Forwards records to multiple handlers - * - * @author Lenar Lõhmus - */ -class GroupHandler extends Handler implements ProcessableHandlerInterface, ResettableInterface -{ - use ProcessableHandlerTrait; - - /** @var HandlerInterface[] */ - protected array $handlers; - protected bool $bubble; - - /** - * @param HandlerInterface[] $handlers Array of Handlers. - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @throws \InvalidArgumentException if an unsupported handler is set - */ - public function __construct(array $handlers, bool $bubble = true) - { - foreach ($handlers as $handler) { - if (!$handler instanceof HandlerInterface) { - throw new \InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.'); - } - } - - $this->handlers = $handlers; - $this->bubble = $bubble; - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - foreach ($this->handlers as $handler) { - $handler->handle(clone $record); - } - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - if (\count($this->processors) > 0) { - $processed = []; - foreach ($records as $record) { - $processed[] = $this->processRecord($record); - } - $records = $processed; - } - - foreach ($this->handlers as $handler) { - $handler->handleBatch(array_map(fn ($record) => clone $record, $records)); - } - } - - public function reset(): void - { - $this->resetProcessors(); - - foreach ($this->handlers as $handler) { - if ($handler instanceof ResettableInterface) { - $handler->reset(); - } - } - } - - public function close(): void - { - parent::close(); - - foreach ($this->handlers as $handler) { - $handler->close(); - } - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - foreach ($this->handlers as $handler) { - if ($handler instanceof FormattableHandlerInterface) { - $handler->setFormatter($formatter); - } - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Handler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Handler.php deleted file mode 100644 index e89f969..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Handler.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Base Handler class providing basic close() support as well as handleBatch - * - * @author Jordi Boggiano - */ -abstract class Handler implements HandlerInterface -{ - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - foreach ($records as $record) { - $this->handle($record); - } - } - - /** - * @inheritDoc - */ - public function close(): void - { - } - - public function __destruct() - { - try { - $this->close(); - } catch (\Throwable $e) { - // do nothing - } - } - - public function __sleep() - { - $this->close(); - - $reflClass = new \ReflectionClass($this); - - $keys = []; - foreach ($reflClass->getProperties() as $reflProp) { - if (!$reflProp->isStatic()) { - $keys[] = $reflProp->getName(); - } - } - - return $keys; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php deleted file mode 100644 index 93306d9..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\LogRecord; - -/** - * Interface that all Monolog Handlers must implement - * - * @author Jordi Boggiano - */ -interface HandlerInterface -{ - /** - * Checks whether the given record will be handled by this handler. - * - * This is mostly done for performance reasons, to avoid calling processors for nothing. - * - * Handlers should still check the record levels within handle(), returning false in isHandling() - * is no guarantee that handle() will not be called, and isHandling() might not be called - * for a given record. - * - * @param LogRecord $record Partial log record having only a level initialized - */ - public function isHandling(LogRecord $record): bool; - - /** - * Handles a record. - * - * All records may be passed to this method, and the handler should discard - * those that it does not want to handle. - * - * The return value of this function controls the bubbling process of the handler stack. - * Unless the bubbling is interrupted (by returning true), the Logger class will keep on - * calling further handlers in the stack with a given log record. - * - * @param LogRecord $record The record to handle - * @return bool true means that this handler handled the record, and that bubbling is not permitted. - * false means the record was either not processed or that this handler allows bubbling. - */ - public function handle(LogRecord $record): bool; - - /** - * Handles a set of records at once. - * - * @param array $records The records to handle - */ - public function handleBatch(array $records): void; - - /** - * Closes the handler. - * - * Ends a log cycle and frees all resources used by the handler. - * - * Closing a Handler means flushing all buffers and freeing any open resources/handles. - * - * Implementations have to be idempotent (i.e. it should be possible to call close several times without breakage) - * and ideally handlers should be able to reopen themselves on handle() after they have been closed. - * - * This is useful at the end of a request and will be called automatically when the object - * is destroyed if you extend Monolog\Handler\Handler. - * - * If you are thinking of calling this method yourself, most likely you should be - * calling ResettableInterface::reset instead. Have a look. - */ - public function close(): void; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php deleted file mode 100644 index 541ec25..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\ResettableInterface; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * This simple wrapper class can be used to extend handlers functionality. - * - * Example: A custom filtering that can be applied to any handler. - * - * Inherit from this class and override handle() like this: - * - * public function handle(LogRecord $record) - * { - * if ($record meets certain conditions) { - * return false; - * } - * return $this->handler->handle($record); - * } - * - * @author Alexey Karapetov - */ -class HandlerWrapper implements HandlerInterface, ProcessableHandlerInterface, FormattableHandlerInterface, ResettableInterface -{ - protected HandlerInterface $handler; - - public function __construct(HandlerInterface $handler) - { - $this->handler = $handler; - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return $this->handler->isHandling($record); - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - return $this->handler->handle($record); - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $this->handler->handleBatch($records); - } - - /** - * @inheritDoc - */ - public function close(): void - { - $this->handler->close(); - } - - /** - * @inheritDoc - */ - public function pushProcessor(callable $callback): HandlerInterface - { - if ($this->handler instanceof ProcessableHandlerInterface) { - $this->handler->pushProcessor($callback); - - return $this; - } - - throw new \LogicException('The wrapped handler does not implement ' . ProcessableHandlerInterface::class); - } - - /** - * @inheritDoc - */ - public function popProcessor(): callable - { - if ($this->handler instanceof ProcessableHandlerInterface) { - return $this->handler->popProcessor(); - } - - throw new \LogicException('The wrapped handler does not implement ' . ProcessableHandlerInterface::class); - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - $this->handler->setFormatter($formatter); - - return $this; - } - - throw new \LogicException('The wrapped handler does not implement ' . FormattableHandlerInterface::class); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - return $this->handler->getFormatter(); - } - - throw new \LogicException('The wrapped handler does not implement ' . FormattableHandlerInterface::class); - } - - public function reset(): void - { - if ($this->handler instanceof ResettableInterface) { - $this->handler->reset(); - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php deleted file mode 100644 index b9c7ba8..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * IFTTTHandler uses cURL to trigger IFTTT Maker actions - * - * Register a secret key and trigger/event name at https://ifttt.com/maker - * - * value1 will be the channel from monolog's Logger constructor, - * value2 will be the level name (ERROR, WARNING, ..) - * value3 will be the log record's message - * - * @author Nehal Patel - */ -class IFTTTHandler extends AbstractProcessingHandler -{ - private string $eventName; - private string $secretKey; - - /** - * @param string $eventName The name of the IFTTT Maker event that should be triggered - * @param string $secretKey A valid IFTTT secret key - * - * @throws MissingExtensionException If the curl extension is missing - */ - public function __construct(string $eventName, string $secretKey, int|string|Level $level = Level::Error, bool $bubble = true) - { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is needed to use the IFTTTHandler'); - } - - $this->eventName = $eventName; - $this->secretKey = $secretKey; - - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - public function write(LogRecord $record): void - { - $postData = [ - "value1" => $record->channel, - "value2" => $record["level_name"], - "value3" => $record->message, - ]; - $postString = Utils::jsonEncode($postData); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, "https://maker.ifttt.com/trigger/" . $this->eventName . "/with/key/" . $this->secretKey); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - "Content-Type: application/json", - ]); - - Curl\Util::execute($ch); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php deleted file mode 100644 index 4b558bd..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Inspired on LogEntriesHandler. - * - * @author Robert Kaufmann III - * @author Gabriel Machado - */ -class InsightOpsHandler extends SocketHandler -{ - protected string $logToken; - - /** - * @param string $token Log token supplied by InsightOps - * @param string $region Region where InsightOps account is hosted. Could be 'us' or 'eu'. - * @param bool $useSSL Whether or not SSL encryption should be used - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct( - string $token, - string $region = 'us', - bool $useSSL = true, - $level = Level::Debug, - bool $bubble = true, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if ($useSSL && !\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for InsightOpsHandler'); - } - - $endpoint = $useSSL - ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443' - : $region . '.data.logs.insight.rapid7.com:80'; - - parent::__construct( - $endpoint, - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - $this->logToken = $token; - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - return $this->logToken . ' ' . $record->formatted; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php deleted file mode 100644 index 8c12898..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * @author Robert Kaufmann III - */ -class LogEntriesHandler extends SocketHandler -{ - protected string $logToken; - - /** - * @param string $token Log token supplied by LogEntries - * @param bool $useSSL Whether or not SSL encryption should be used. - * @param string $host Custom hostname to send the data to if needed - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct( - string $token, - bool $useSSL = true, - $level = Level::Debug, - bool $bubble = true, - string $host = 'data.logentries.com', - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if ($useSSL && !\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); - } - - $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; - parent::__construct( - $endpoint, - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - $this->logToken = $token; - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - return $this->logToken . ' ' . $record->formatted; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php deleted file mode 100644 index ff298c6..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php +++ /dev/null @@ -1,156 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LogglyFormatter; -use CurlHandle; -use Monolog\LogRecord; - -/** - * Sends errors to Loggly. - * - * @author Przemek Sobstel - * @author Adam Pancutt - * @author Gregory Barchard - */ -class LogglyHandler extends AbstractProcessingHandler -{ - protected const HOST = 'logs-01.loggly.com'; - protected const ENDPOINT_SINGLE = 'inputs'; - protected const ENDPOINT_BATCH = 'bulk'; - - /** - * Caches the curl handlers for every given endpoint. - * - * @var CurlHandle[] - */ - protected array $curlHandlers = []; - - protected string $token; - - /** @var string[] */ - protected array $tag = []; - - /** - * @param string $token API token supplied by Loggly - * - * @throws MissingExtensionException If the curl extension is missing - */ - public function __construct(string $token, int|string|Level $level = Level::Debug, bool $bubble = true) - { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is needed to use the LogglyHandler'); - } - - $this->token = $token; - - parent::__construct($level, $bubble); - } - - /** - * Loads and returns the shared curl handler for the given endpoint. - */ - protected function getCurlHandler(string $endpoint): CurlHandle - { - if (!\array_key_exists($endpoint, $this->curlHandlers)) { - $this->curlHandlers[$endpoint] = $this->loadCurlHandle($endpoint); - } - - return $this->curlHandlers[$endpoint]; - } - - /** - * Starts a fresh curl session for the given endpoint and returns its handler. - */ - private function loadCurlHandle(string $endpoint): CurlHandle - { - $url = sprintf("https://%s/%s/%s/", static::HOST, $endpoint, $this->token); - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - - return $ch; - } - - /** - * @param string[]|string $tag - * @return $this - */ - public function setTag(string|array $tag): self - { - if ('' === $tag || [] === $tag) { - $this->tag = []; - } else { - $this->tag = \is_array($tag) ? $tag : [$tag]; - } - - return $this; - } - - /** - * @param string[]|string $tag - * @return $this - */ - public function addTag(string|array $tag): self - { - if ('' !== $tag) { - $tag = \is_array($tag) ? $tag : [$tag]; - $this->tag = array_unique(array_merge($this->tag, $tag)); - } - - return $this; - } - - protected function write(LogRecord $record): void - { - $this->send($record->formatted, static::ENDPOINT_SINGLE); - } - - public function handleBatch(array $records): void - { - $level = $this->level; - - $records = array_filter($records, function ($record) use ($level) { - return ($record->level->value >= $level->value); - }); - - if (\count($records) > 0) { - $this->send($this->getFormatter()->formatBatch($records), static::ENDPOINT_BATCH); - } - } - - protected function send(string $data, string $endpoint): void - { - $ch = $this->getCurlHandler($endpoint); - - $headers = ['Content-Type: application/json']; - - if (\count($this->tag) > 0) { - $headers[] = 'X-LOGGLY-TAG: '.implode(',', $this->tag); - } - - curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); - - Curl\Util::execute($ch, 5, false); - } - - protected function getDefaultFormatter(): FormatterInterface - { - return new LogglyFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php deleted file mode 100644 index 6aa1b31..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LogmaticFormatter; -use Monolog\LogRecord; - -/** - * @author Julien Breux - */ -class LogmaticHandler extends SocketHandler -{ - private string $logToken; - - private string $hostname; - - private string $appName; - - /** - * @param string $token Log token supplied by Logmatic. - * @param string $hostname Host name supplied by Logmatic. - * @param string $appName Application name supplied by Logmatic. - * @param bool $useSSL Whether or not SSL encryption should be used. - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct( - string $token, - string $hostname = '', - string $appName = '', - bool $useSSL = true, - $level = Level::Debug, - bool $bubble = true, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if ($useSSL && !\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use SSL encrypted connection for LogmaticHandler'); - } - - $endpoint = $useSSL ? 'ssl://api.logmatic.io:10515' : 'api.logmatic.io:10514'; - $endpoint .= '/v1/'; - - parent::__construct( - $endpoint, - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - - $this->logToken = $token; - $this->hostname = $hostname; - $this->appName = $appName; - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - return $this->logToken . ' ' . $record->formatted; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - $formatter = new LogmaticFormatter(); - - if ($this->hostname !== '') { - $formatter->setHostname($this->hostname); - } - if ($this->appName !== '') { - $formatter->setAppName($this->appName); - } - - return $formatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php deleted file mode 100644 index b6c8227..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\HtmlFormatter; -use Monolog\LogRecord; - -/** - * Base class for all mail handlers - * - * @author Gyula Sallai - */ -abstract class MailHandler extends AbstractProcessingHandler -{ - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $messages = []; - - foreach ($records as $record) { - if ($record->level->isLowerThan($this->level)) { - continue; - } - - $message = $this->processRecord($record); - $messages[] = $message; - } - - if (\count($messages) > 0) { - $this->send((string) $this->getFormatter()->formatBatch($messages), $messages); - } - } - - /** - * Send a mail with the given content - * - * @param string $content formatted email body to be sent - * @param array $records the array of log records that formed this content - * - * @phpstan-param non-empty-array $records - */ - abstract protected function send(string $content, array $records): void; - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->send((string) $record->formatted, [$record]); - } - - /** - * @phpstan-param non-empty-array $records - */ - protected function getHighestRecord(array $records): LogRecord - { - $highestRecord = null; - foreach ($records as $record) { - if ($highestRecord === null || $record->level->isHigherThan($highestRecord->level)) { - $highestRecord = $record; - } - } - - return $highestRecord; - } - - protected function isHtmlBody(string $body): bool - { - return ($body[0] ?? null) === '<'; - } - - /** - * Gets the default formatter. - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new HtmlFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php deleted file mode 100644 index 477ac34..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Swift; -use Swift_Message; - -/** - * MandrillHandler uses cURL to send the emails to the Mandrill API - * - * @author Adam Nicholson - */ -class MandrillHandler extends MailHandler -{ - protected Swift_Message $message; - protected string $apiKey; - - /** - * @phpstan-param (Swift_Message|callable(): Swift_Message) $message - * - * @param string $apiKey A valid Mandrill API key - * @param callable|Swift_Message $message An example message for real messages, only the body will be replaced - * - * @throws \InvalidArgumentException if not a Swift Message is set - */ - public function __construct(string $apiKey, callable|Swift_Message $message, int|string|Level $level = Level::Error, bool $bubble = true) - { - parent::__construct($level, $bubble); - - if (!$message instanceof Swift_Message) { - $message = $message(); - } - if (!$message instanceof Swift_Message) { - throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it'); - } - $this->message = $message; - $this->apiKey = $apiKey; - } - - /** - * @inheritDoc - */ - protected function send(string $content, array $records): void - { - $mime = 'text/plain'; - if ($this->isHtmlBody($content)) { - $mime = 'text/html'; - } - - $message = clone $this->message; - $message->setBody($content, $mime); - /** @phpstan-ignore-next-line */ - if (version_compare(Swift::VERSION, '6.0.0', '>=')) { - $message->setDate(new \DateTimeImmutable()); - } else { - /** @phpstan-ignore-next-line */ - $message->setDate(time()); - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json'); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'key' => $this->apiKey, - 'raw_message' => (string) $message, - 'async' => false, - ])); - - Curl\Util::execute($ch); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php deleted file mode 100644 index 3965aee..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Exception can be thrown if an extension for a handler is missing - * - * @author Christian Bergau - */ -class MissingExtensionException extends \Exception -{ -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php deleted file mode 100644 index 33ab68c..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use MongoDB\Driver\BulkWrite; -use MongoDB\Driver\Manager; -use MongoDB\Client; -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\MongoDBFormatter; -use Monolog\LogRecord; - -/** - * Logs to a MongoDB database. - * - * Usage example: - * - * $log = new \Monolog\Logger('application'); - * $client = new \MongoDB\Client('mongodb://localhost:27017'); - * $mongodb = new \Monolog\Handler\MongoDBHandler($client, 'logs', 'prod'); - * $log->pushHandler($mongodb); - * - * The above examples uses the MongoDB PHP library's client class; however, the - * MongoDB\Driver\Manager class from ext-mongodb is also supported. - */ -class MongoDBHandler extends AbstractProcessingHandler -{ - private \MongoDB\Collection $collection; - - private Client|Manager $manager; - - private string|null $namespace = null; - - /** - * Constructor. - * - * @param Client|Manager $mongodb MongoDB library or driver client - * @param string $database Database name - * @param string $collection Collection name - */ - public function __construct(Client|Manager $mongodb, string $database, string $collection, int|string|Level $level = Level::Debug, bool $bubble = true) - { - if ($mongodb instanceof Client) { - $this->collection = $mongodb->selectCollection($database, $collection); - } else { - $this->manager = $mongodb; - $this->namespace = $database . '.' . $collection; - } - - parent::__construct($level, $bubble); - } - - protected function write(LogRecord $record): void - { - if (isset($this->collection)) { - $this->collection->insertOne($record->formatted); - } - - if (isset($this->manager, $this->namespace)) { - $bulk = new BulkWrite; - $bulk->insert($record->formatted); - $this->manager->executeBulkWrite($this->namespace, $bulk); - } - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new MongoDBFormatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php deleted file mode 100644 index a5d1a97..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php +++ /dev/null @@ -1,179 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\LineFormatter; - -/** - * NativeMailerHandler uses the mail() function to send the emails - * - * @author Christophe Coevoet - * @author Mark Garrett - */ -class NativeMailerHandler extends MailHandler -{ - /** - * The email addresses to which the message will be sent - * @var string[] - */ - protected array $to; - - /** - * The subject of the email - */ - protected string $subject; - - /** - * Optional headers for the message - * @var string[] - */ - protected array $headers = []; - - /** - * Optional parameters for the message - * @var string[] - */ - protected array $parameters = []; - - /** - * The wordwrap length for the message - */ - protected int $maxColumnWidth; - - /** - * The Content-type for the message - */ - protected string|null $contentType = null; - - /** - * The encoding for the message - */ - protected string $encoding = 'utf-8'; - - /** - * @param string|string[] $to The receiver of the mail - * @param string $subject The subject of the mail - * @param string $from The sender of the mail - * @param int $maxColumnWidth The maximum column width that the message lines will have - */ - public function __construct(string|array $to, string $subject, string $from, int|string|Level $level = Level::Error, bool $bubble = true, int $maxColumnWidth = 70) - { - parent::__construct($level, $bubble); - $this->to = (array) $to; - $this->subject = $subject; - $this->addHeader(sprintf('From: %s', $from)); - $this->maxColumnWidth = $maxColumnWidth; - } - - /** - * Add headers to the message - * - * @param string|string[] $headers Custom added headers - * @return $this - */ - public function addHeader($headers): self - { - foreach ((array) $headers as $header) { - if (strpos($header, "\n") !== false || strpos($header, "\r") !== false) { - throw new \InvalidArgumentException('Headers can not contain newline characters for security reasons'); - } - $this->headers[] = $header; - } - - return $this; - } - - /** - * Add parameters to the message - * - * @param string|string[] $parameters Custom added parameters - * @return $this - */ - public function addParameter($parameters): self - { - $this->parameters = array_merge($this->parameters, (array) $parameters); - - return $this; - } - - /** - * @inheritDoc - */ - protected function send(string $content, array $records): void - { - $contentType = $this->getContentType() ?? ($this->isHtmlBody($content) ? 'text/html' : 'text/plain'); - - if ($contentType !== 'text/html') { - $content = wordwrap($content, $this->maxColumnWidth); - } - - $headers = ltrim(implode("\r\n", $this->headers) . "\r\n", "\r\n"); - $headers .= 'Content-type: ' . $contentType . '; charset=' . $this->getEncoding() . "\r\n"; - if ($contentType === 'text/html' && false === strpos($headers, 'MIME-Version:')) { - $headers .= 'MIME-Version: 1.0' . "\r\n"; - } - - $subjectFormatter = new LineFormatter($this->subject); - $subject = $subjectFormatter->format($this->getHighestRecord($records)); - - $parameters = implode(' ', $this->parameters); - foreach ($this->to as $to) { - $this->mail($to, $subject, $content, $headers, $parameters); - } - } - - public function getContentType(): ?string - { - return $this->contentType; - } - - public function getEncoding(): string - { - return $this->encoding; - } - - /** - * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML messages. - * @return $this - */ - public function setContentType(string $contentType): self - { - if (strpos($contentType, "\n") !== false || strpos($contentType, "\r") !== false) { - throw new \InvalidArgumentException('The content type can not contain newline characters to prevent email header injection'); - } - - $this->contentType = $contentType; - - return $this; - } - - /** - * @return $this - */ - public function setEncoding(string $encoding): self - { - if (strpos($encoding, "\n") !== false || strpos($encoding, "\r") !== false) { - throw new \InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection'); - } - - $this->encoding = $encoding; - - return $this; - } - - - protected function mail(string $to, string $subject, string $content, string $headers, string $parameters): void - { - mail($to, $subject, $content, $headers, $parameters); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php deleted file mode 100644 index 4f28dd4..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ /dev/null @@ -1,180 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Class to record a log on a NewRelic application. - * Enabling New Relic High Security mode may prevent capture of useful information. - * - * This handler requires a NormalizerFormatter to function and expects an array in $record->formatted - * - * @see https://docs.newrelic.com/docs/agents/php-agent - * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security - */ -class NewRelicHandler extends AbstractProcessingHandler -{ - /** - * @inheritDoc - */ - public function __construct( - int|string|Level $level = Level::Error, - bool $bubble = true, - - /** - * Name of the New Relic application that will receive logs from this handler. - */ - protected string|null $appName = null, - - /** - * Some context and extra data is passed into the handler as arrays of values. Do we send them as is - * (useful if we are using the API), or explode them for display on the NewRelic RPM website? - */ - protected bool $explodeArrays = false, - - /** - * Name of the current transaction - */ - protected string|null $transactionName = null - ) { - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if (!$this->isNewRelicEnabled()) { - throw new MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler'); - } - - if (null !== ($appName = $this->getAppName($record->context))) { - $this->setNewRelicAppName($appName); - } - - if (null !== ($transactionName = $this->getTransactionName($record->context))) { - $this->setNewRelicTransactionName($transactionName); - unset($record->formatted['context']['transaction_name']); - } - - if (isset($record->context['exception']) && $record->context['exception'] instanceof \Throwable) { - newrelic_notice_error($record->message, $record->context['exception']); - unset($record->formatted['context']['exception']); - } else { - newrelic_notice_error($record->message); - } - - if (isset($record->formatted['context']) && \is_array($record->formatted['context'])) { - foreach ($record->formatted['context'] as $key => $parameter) { - if (\is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('context_' . $key, $parameter); - } - } - } - - if (isset($record->formatted['extra']) && \is_array($record->formatted['extra'])) { - foreach ($record->formatted['extra'] as $key => $parameter) { - if (\is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue); - } - } else { - $this->setNewRelicParameter('extra_' . $key, $parameter); - } - } - } - } - - /** - * Checks whether the NewRelic extension is enabled in the system. - */ - protected function isNewRelicEnabled(): bool - { - return \extension_loaded('newrelic'); - } - - /** - * Returns the appname where this log should be sent. Each log can override the default appname, set in this - * handler's constructor, by providing the appname in it's context. - * - * @param mixed[] $context - */ - protected function getAppName(array $context): ?string - { - if (isset($context['appname'])) { - return $context['appname']; - } - - return $this->appName; - } - - /** - * Returns the name of the current transaction. Each log can override the default transaction name, set in this - * handler's constructor, by providing the transaction_name in it's context - * - * @param mixed[] $context - */ - protected function getTransactionName(array $context): ?string - { - if (isset($context['transaction_name'])) { - return $context['transaction_name']; - } - - return $this->transactionName; - } - - /** - * Sets the NewRelic application that should receive this log. - */ - protected function setNewRelicAppName(string $appName): void - { - newrelic_set_appname($appName); - } - - /** - * Overwrites the name of the current transaction - */ - protected function setNewRelicTransactionName(string $transactionName): void - { - newrelic_name_transaction($transactionName); - } - - /** - * @param mixed $value - */ - protected function setNewRelicParameter(string $key, $value): void - { - if (null === $value || \is_scalar($value)) { - newrelic_add_custom_parameter($key, $value); - } else { - newrelic_add_custom_parameter($key, Utils::jsonEncode($value, null, true)); - } - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new NormalizerFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NoopHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NoopHandler.php deleted file mode 100644 index d9fea18..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NoopHandler.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\LogRecord; - -/** - * No-op - * - * This handler handles anything, but does nothing, and does not stop bubbling to the rest of the stack. - * This can be used for testing, or to disable a handler when overriding a configuration without - * influencing the rest of the stack. - * - * @author Roel Harbers - */ -class NoopHandler extends Handler -{ - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return true; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - return false; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php deleted file mode 100644 index 1aa84e4..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Psr\Log\LogLevel; -use Monolog\Logger; -use Monolog\LogRecord; - -/** - * Blackhole - * - * Any record it can handle will be thrown away. This can be used - * to put on top of an existing stack to override it temporarily. - * - * @author Jordi Boggiano - */ -class NullHandler extends Handler -{ - private Level $level; - - /** - * @param string|int|Level $level The minimum logging level at which this handler will be triggered - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function __construct(string|int|Level $level = Level::Debug) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @inheritDoc - */ - public function isHandling(LogRecord $record): bool - { - return $record->level->value >= $this->level->value; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - return $record->level->value >= $this->level->value; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/OverflowHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/OverflowHandler.php deleted file mode 100644 index adc0eb1..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/OverflowHandler.php +++ /dev/null @@ -1,139 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Handler to only pass log messages when a certain threshold of number of messages is reached. - * - * This can be useful in cases of processing a batch of data, but you're for example only interested - * in case it fails catastrophically instead of a warning for 1 or 2 events. Worse things can happen, right? - * - * Usage example: - * - * ``` - * $log = new Logger('application'); - * $handler = new SomeHandler(...) - * - * // Pass all warnings to the handler when more than 10 & all error messages when more then 5 - * $overflow = new OverflowHandler($handler, [Level::Warning->value => 10, Level::Error->value => 5]); - * - * $log->pushHandler($overflow); - *``` - * - * @author Kris Buist - */ -class OverflowHandler extends AbstractHandler implements FormattableHandlerInterface -{ - private HandlerInterface $handler; - - /** @var array */ - private array $thresholdMap = []; - - /** - * Buffer of all messages passed to the handler before the threshold was reached - * - * @var mixed[][] - */ - private array $buffer = []; - - /** - * @param array $thresholdMap Dictionary of log level value => threshold - */ - public function __construct( - HandlerInterface $handler, - array $thresholdMap = [], - $level = Level::Debug, - bool $bubble = true - ) { - $this->handler = $handler; - foreach ($thresholdMap as $thresholdLevel => $threshold) { - $this->thresholdMap[$thresholdLevel] = $threshold; - } - parent::__construct($level, $bubble); - } - - /** - * Handles a record. - * - * All records may be passed to this method, and the handler should discard - * those that it does not want to handle. - * - * The return value of this function controls the bubbling process of the handler stack. - * Unless the bubbling is interrupted (by returning true), the Logger class will keep on - * calling further handlers in the stack with a given log record. - * - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if ($record->level->isLowerThan($this->level)) { - return false; - } - - $level = $record->level->value; - - if (!isset($this->thresholdMap[$level])) { - $this->thresholdMap[$level] = 0; - } - - if ($this->thresholdMap[$level] > 0) { - // The overflow threshold is not yet reached, so we're buffering the record and lowering the threshold by 1 - $this->thresholdMap[$level]--; - $this->buffer[$level][] = $record; - - return false === $this->bubble; - } - - if ($this->thresholdMap[$level] === 0) { - // This current message is breaking the threshold. Flush the buffer and continue handling the current record - foreach ($this->buffer[$level] ?? [] as $buffered) { - $this->handler->handle($buffered); - } - $this->thresholdMap[$level]--; - unset($this->buffer[$level]); - } - - $this->handler->handle($record); - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - $this->handler->setFormatter($formatter); - - return $this; - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($this->handler).' does not support formatters.'); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - if ($this->handler instanceof FormattableHandlerInterface) { - return $this->handler->getFormatter(); - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($this->handler).' does not support formatters.'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php deleted file mode 100644 index b37266d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +++ /dev/null @@ -1,303 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\Utils; -use PhpConsole\Connector; -use PhpConsole\Handler as VendorPhpConsoleHandler; -use PhpConsole\Helper; -use Monolog\LogRecord; -use PhpConsole\Storage; - -/** - * Monolog handler for Google Chrome extension "PHP Console" - * - * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely - * - * Usage: - * 1. Install Google Chrome extension [now dead and removed from the chrome store] - * 2. See overview https://github.com/barbushin/php-console#overview - * 3. Install PHP Console library https://github.com/barbushin/php-console#installation - * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) - * - * $logger = new \Monolog\Logger('all', array(new \Monolog\Handler\PHPConsoleHandler())); - * \Monolog\ErrorHandler::register($logger); - * echo $undefinedVar; - * $logger->debug('SELECT * FROM users', array('db', 'time' => 0.012)); - * PC::debug($_SERVER); // PHP Console debugger for any type of vars - * - * @author Sergey Barbushin https://www.linkedin.com/in/barbushin - * @phpstan-type Options array{ - * enabled: bool, - * classesPartialsTraceIgnore: string[], - * debugTagsKeysInContext: array, - * useOwnErrorsHandler: bool, - * useOwnExceptionsHandler: bool, - * sourcesBasePath: string|null, - * registerHelper: bool, - * serverEncoding: string|null, - * headersLimit: int|null, - * password: string|null, - * enableSslOnlyMode: bool, - * ipMasks: string[], - * enableEvalListener: bool, - * dumperDetectCallbacks: bool, - * dumperLevelLimit: int, - * dumperItemsCountLimit: int, - * dumperItemSizeLimit: int, - * dumperDumpSizeLimit: int, - * detectDumpTraceAndSource: bool, - * dataStorage: Storage|null - * } - * @phpstan-type InputOptions array{ - * enabled?: bool, - * classesPartialsTraceIgnore?: string[], - * debugTagsKeysInContext?: array, - * useOwnErrorsHandler?: bool, - * useOwnExceptionsHandler?: bool, - * sourcesBasePath?: string|null, - * registerHelper?: bool, - * serverEncoding?: string|null, - * headersLimit?: int|null, - * password?: string|null, - * enableSslOnlyMode?: bool, - * ipMasks?: string[], - * enableEvalListener?: bool, - * dumperDetectCallbacks?: bool, - * dumperLevelLimit?: int, - * dumperItemsCountLimit?: int, - * dumperItemSizeLimit?: int, - * dumperDumpSizeLimit?: int, - * detectDumpTraceAndSource?: bool, - * dataStorage?: Storage|null - * } - * - * @deprecated Since 2.8.0 and 3.2.0, PHPConsole is abandoned and thus we will drop this handler in Monolog 4 - */ -class PHPConsoleHandler extends AbstractProcessingHandler -{ - /** - * @phpstan-var Options - */ - private array $options = [ - 'enabled' => true, // bool Is PHP Console server enabled - 'classesPartialsTraceIgnore' => ['Monolog\\'], // array Hide calls of classes started with... - 'debugTagsKeysInContext' => [0, 'tag'], // bool Is PHP Console server enabled - 'useOwnErrorsHandler' => false, // bool Enable errors handling - 'useOwnExceptionsHandler' => false, // bool Enable exceptions handling - 'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths - 'registerHelper' => true, // bool Register PhpConsole\Helper that allows short debug calls like PC::debug($var, 'ta.g.s') - 'serverEncoding' => null, // string|null Server internal encoding - 'headersLimit' => null, // int|null Set headers size limit for your web-server - 'password' => null, // string|null Protect PHP Console connection by password - 'enableSslOnlyMode' => false, // bool Force connection by SSL for clients with PHP Console installed - 'ipMasks' => [], // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1') - 'enableEvalListener' => false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required) - 'dumperDetectCallbacks' => false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings - 'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level - 'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number - 'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item - 'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON - 'detectDumpTraceAndSource' => false, // bool Autodetect and append trace data to debug - 'dataStorage' => null, // \PhpConsole\Storage|null Fixes problem with custom $_SESSION handler (see https://github.com/barbushin/php-console#troubleshooting-with-_session-handler-overridden-in-some-frameworks) - ]; - - private Connector $connector; - - /** - * @param array $options See \Monolog\Handler\PHPConsoleHandler::$options for more details - * @param Connector|null $connector Instance of \PhpConsole\Connector class (optional) - * @throws \RuntimeException - * @phpstan-param InputOptions $options - */ - public function __construct(array $options = [], ?Connector $connector = null, int|string|Level $level = Level::Debug, bool $bubble = true) - { - if (!class_exists('PhpConsole\Connector')) { - throw new \RuntimeException('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); - } - parent::__construct($level, $bubble); - $this->options = $this->initOptions($options); - $this->connector = $this->initConnector($connector); - } - - /** - * @param array $options - * @return array - * - * @phpstan-param InputOptions $options - * @phpstan-return Options - */ - private function initOptions(array $options): array - { - $wrongOptions = array_diff(array_keys($options), array_keys($this->options)); - if (\count($wrongOptions) > 0) { - throw new \RuntimeException('Unknown options: ' . implode(', ', $wrongOptions)); - } - - return array_replace($this->options, $options); - } - - private function initConnector(?Connector $connector = null): Connector - { - if (null === $connector) { - if ($this->options['dataStorage'] instanceof Storage) { - Connector::setPostponeStorage($this->options['dataStorage']); - } - $connector = Connector::getInstance(); - } - - if ($this->options['registerHelper'] && !Helper::isRegistered()) { - Helper::register(); - } - - if ($this->options['enabled'] && $connector->isActiveClient()) { - if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) { - $handler = VendorPhpConsoleHandler::getInstance(); - $handler->setHandleErrors($this->options['useOwnErrorsHandler']); - $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']); - $handler->start(); - } - if (null !== $this->options['sourcesBasePath']) { - $connector->setSourcesBasePath($this->options['sourcesBasePath']); - } - if (null !== $this->options['serverEncoding']) { - $connector->setServerEncoding($this->options['serverEncoding']); - } - if (null !== $this->options['password']) { - $connector->setPassword($this->options['password']); - } - if ($this->options['enableSslOnlyMode']) { - $connector->enableSslOnlyMode(); - } - if (\count($this->options['ipMasks']) > 0) { - $connector->setAllowedIpMasks($this->options['ipMasks']); - } - if (null !== $this->options['headersLimit'] && $this->options['headersLimit'] > 0) { - $connector->setHeadersLimit($this->options['headersLimit']); - } - if ($this->options['detectDumpTraceAndSource']) { - $connector->getDebugDispatcher()->detectTraceAndSource = true; - } - $dumper = $connector->getDumper(); - $dumper->levelLimit = $this->options['dumperLevelLimit']; - $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit']; - $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit']; - $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit']; - $dumper->detectCallbacks = $this->options['dumperDetectCallbacks']; - if ($this->options['enableEvalListener']) { - $connector->startEvalRequestsListener(); - } - } - - return $connector; - } - - public function getConnector(): Connector - { - return $this->connector; - } - - /** - * @return array - */ - public function getOptions(): array - { - return $this->options; - } - - public function handle(LogRecord $record): bool - { - if ($this->options['enabled'] && $this->connector->isActiveClient()) { - return parent::handle($record); - } - - return !$this->bubble; - } - - /** - * Writes the record down to the log of the implementing handler - */ - protected function write(LogRecord $record): void - { - if ($record->level->isLowerThan(Level::Notice)) { - $this->handleDebugRecord($record); - } elseif (isset($record->context['exception']) && $record->context['exception'] instanceof \Throwable) { - $this->handleExceptionRecord($record); - } else { - $this->handleErrorRecord($record); - } - } - - private function handleDebugRecord(LogRecord $record): void - { - [$tags, $filteredContext] = $this->getRecordTags($record); - $message = $record->message; - if (\count($filteredContext) > 0) { - $message .= ' ' . Utils::jsonEncode($this->connector->getDumper()->dump(array_filter($filteredContext)), null, true); - } - $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']); - } - - private function handleExceptionRecord(LogRecord $record): void - { - $this->connector->getErrorsDispatcher()->dispatchException($record->context['exception']); - } - - private function handleErrorRecord(LogRecord $record): void - { - $context = $record->context; - - $this->connector->getErrorsDispatcher()->dispatchError( - $context['code'] ?? null, - $context['message'] ?? $record->message, - $context['file'] ?? null, - $context['line'] ?? null, - $this->options['classesPartialsTraceIgnore'] - ); - } - - /** - * @return array{string, mixed[]} - */ - private function getRecordTags(LogRecord $record): array - { - $tags = null; - $filteredContext = []; - if ($record->context !== []) { - $filteredContext = $record->context; - foreach ($this->options['debugTagsKeysInContext'] as $key) { - if (isset($filteredContext[$key])) { - $tags = $filteredContext[$key]; - if ($key === 0) { - array_shift($filteredContext); - } else { - unset($filteredContext[$key]); - } - break; - } - } - } - - return [$tags ?? $record->level->toPsrLogLevel(), $filteredContext]; - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter('%message%'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessHandler.php deleted file mode 100644 index 96649aa..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessHandler.php +++ /dev/null @@ -1,191 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Stores to STDIN of any process, specified by a command. - * - * Usage example: - *
- * $log = new Logger('myLogger');
- * $log->pushHandler(new ProcessHandler('/usr/bin/php /var/www/monolog/someScript.php'));
- * 
- * - * @author Kolja Zuelsdorf - */ -class ProcessHandler extends AbstractProcessingHandler -{ - /** - * Holds the process to receive data on its STDIN. - * - * @var resource|bool|null - */ - private $process; - - private string $command; - - private ?string $cwd; - - /** - * @var resource[] - */ - private array $pipes = []; - - private float $timeout; - - /** - * @var array - */ - protected const DESCRIPTOR_SPEC = [ - 0 => ['pipe', 'r'], // STDIN is a pipe that the child will read from - 1 => ['pipe', 'w'], // STDOUT is a pipe that the child will write to - 2 => ['pipe', 'w'], // STDERR is a pipe to catch the any errors - ]; - - /** - * @param string $command Command for the process to start. Absolute paths are recommended, - * especially if you do not use the $cwd parameter. - * @param string|null $cwd "Current working directory" (CWD) for the process to be executed in. - * @param float $timeout The maximum timeout (in seconds) for the stream_select() function. - * @throws \InvalidArgumentException - */ - public function __construct(string $command, int|string|Level $level = Level::Debug, bool $bubble = true, ?string $cwd = null, float $timeout = 1.0) - { - if ($command === '') { - throw new \InvalidArgumentException('The command argument must be a non-empty string.'); - } - if ($cwd === '') { - throw new \InvalidArgumentException('The optional CWD argument must be a non-empty string or null.'); - } - - parent::__construct($level, $bubble); - - $this->command = $command; - $this->cwd = $cwd; - $this->timeout = $timeout; - } - - /** - * Writes the record down to the log of the implementing handler - * - * @throws \UnexpectedValueException - */ - protected function write(LogRecord $record): void - { - $this->ensureProcessIsStarted(); - - $this->writeProcessInput($record->formatted); - - $errors = $this->readProcessErrors(); - if ($errors !== '') { - throw new \UnexpectedValueException(sprintf('Errors while writing to process: %s', $errors)); - } - } - - /** - * Makes sure that the process is actually started, and if not, starts it, - * assigns the stream pipes, and handles startup errors, if any. - */ - private function ensureProcessIsStarted(): void - { - if (\is_resource($this->process) === false) { - $this->startProcess(); - - $this->handleStartupErrors(); - } - } - - /** - * Starts the actual process and sets all streams to non-blocking. - */ - private function startProcess(): void - { - $this->process = proc_open($this->command, static::DESCRIPTOR_SPEC, $this->pipes, $this->cwd); - - foreach ($this->pipes as $pipe) { - stream_set_blocking($pipe, false); - } - } - - /** - * Selects the STDERR stream, handles upcoming startup errors, and throws an exception, if any. - * - * @throws \UnexpectedValueException - */ - private function handleStartupErrors(): void - { - $selected = $this->selectErrorStream(); - if (false === $selected) { - throw new \UnexpectedValueException('Something went wrong while selecting a stream.'); - } - - $errors = $this->readProcessErrors(); - - if (\is_resource($this->process) === false || $errors !== '') { - throw new \UnexpectedValueException( - sprintf('The process "%s" could not be opened: ' . $errors, $this->command) - ); - } - } - - /** - * Selects the STDERR stream. - * - * @return int|bool - */ - protected function selectErrorStream() - { - $empty = []; - $errorPipes = [$this->pipes[2]]; - - $seconds = (int) $this->timeout; - return stream_select($errorPipes, $empty, $empty, $seconds, (int) (($this->timeout - $seconds) * 1000000)); - } - - /** - * Reads the errors of the process, if there are any. - * - * @codeCoverageIgnore - * @return string Empty string if there are no errors. - */ - protected function readProcessErrors(): string - { - return (string) stream_get_contents($this->pipes[2]); - } - - /** - * Writes to the input stream of the opened process. - * - * @codeCoverageIgnore - */ - protected function writeProcessInput(string $string): void - { - fwrite($this->pipes[0], $string); - } - - /** - * @inheritDoc - */ - public function close(): void - { - if (\is_resource($this->process)) { - foreach ($this->pipes as $pipe) { - fclose($pipe); - } - proc_close($this->process); - $this->process = null; - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php deleted file mode 100644 index 9fb290f..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Processor\ProcessorInterface; -use Monolog\LogRecord; - -/** - * Interface to describe loggers that have processors - * - * @author Jordi Boggiano - */ -interface ProcessableHandlerInterface -{ - /** - * Adds a processor in the stack. - * - * @phpstan-param ProcessorInterface|(callable(LogRecord): LogRecord) $callback - * - * @param ProcessorInterface|callable $callback - * @return HandlerInterface self - */ - public function pushProcessor(callable $callback): HandlerInterface; - - /** - * Removes the processor on top of the stack and returns it. - * - * @phpstan-return ProcessorInterface|(callable(LogRecord): LogRecord) $callback - * - * @throws \LogicException In case the processor stack is empty - * @return callable|ProcessorInterface - */ - public function popProcessor(): callable; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php deleted file mode 100644 index 74eeddd..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\ResettableInterface; -use Monolog\Processor\ProcessorInterface; -use Monolog\LogRecord; - -/** - * Helper trait for implementing ProcessableInterface - * - * @author Jordi Boggiano - */ -trait ProcessableHandlerTrait -{ - /** - * @var callable[] - * @phpstan-var array<(callable(LogRecord): LogRecord)|ProcessorInterface> - */ - protected array $processors = []; - - /** - * @inheritDoc - */ - public function pushProcessor(callable $callback): HandlerInterface - { - array_unshift($this->processors, $callback); - - return $this; - } - - /** - * @inheritDoc - */ - public function popProcessor(): callable - { - if (\count($this->processors) === 0) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - protected function processRecord(LogRecord $record): LogRecord - { - foreach ($this->processors as $processor) { - $record = $processor($record); - } - - return $record; - } - - protected function resetProcessors(): void - { - foreach ($this->processors as $processor) { - if ($processor instanceof ResettableInterface) { - $processor->reset(); - } - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php deleted file mode 100644 index 100e8e4..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Psr\Log\LoggerInterface; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Proxies log messages to an existing PSR-3 compliant logger. - * - * If a formatter is configured, the formatter's output MUST be a string and the - * formatted message will be fed to the wrapped PSR logger instead of the original - * log record's message. - * - * @author Michael Moussa - */ -class PsrHandler extends AbstractHandler implements FormattableHandlerInterface -{ - /** - * PSR-3 compliant logger - */ - protected LoggerInterface $logger; - - protected FormatterInterface|null $formatter = null; - private bool $includeExtra; - - /** - * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied - */ - public function __construct(LoggerInterface $logger, int|string|Level $level = Level::Debug, bool $bubble = true, bool $includeExtra = false) - { - parent::__construct($level, $bubble); - - $this->logger = $logger; - $this->includeExtra = $includeExtra; - } - - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (!$this->isHandling($record)) { - return false; - } - - $message = $this->formatter !== null - ? (string) $this->formatter->format($record) - : $record->message; - - $context = $this->includeExtra - ? [...$record->extra, ...$record->context] - : $record->context; - - $this->logger->log($record->level->toPsrLogLevel(), $message, $context); - - return false === $this->bubble; - } - - /** - * Sets the formatter. - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - $this->formatter = $formatter; - - return $this; - } - - /** - * Gets the formatter. - */ - public function getFormatter(): FormatterInterface - { - if ($this->formatter === null) { - throw new \LogicException('No formatter has been set and this handler does not have a default formatter'); - } - - return $this->formatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php deleted file mode 100644 index b2a7895..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php +++ /dev/null @@ -1,246 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Logger; -use Monolog\Utils; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Sends notifications through the pushover api to mobile phones - * - * @author Sebastian Göttschkes - * @see https://www.pushover.net/api - */ -class PushoverHandler extends SocketHandler -{ - private string $token; - - /** @var array */ - private array $users; - - private string $title; - - private string|int|null $user = null; - - private int $retry; - - private int $expire; - - private Level $highPriorityLevel; - - private Level $emergencyLevel; - - private bool $useFormattedMessage = false; - - /** - * All parameters that can be sent to Pushover - * @see https://pushover.net/api - * @var array - */ - private array $parameterNames = [ - 'token' => true, - 'user' => true, - 'message' => true, - 'device' => true, - 'title' => true, - 'url' => true, - 'url_title' => true, - 'priority' => true, - 'timestamp' => true, - 'sound' => true, - 'retry' => true, - 'expire' => true, - 'callback' => true, - ]; - - /** - * Sounds the api supports by default - * @see https://pushover.net/api#sounds - * @var string[] - */ - private array $sounds = [ - 'pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming', - 'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb', - 'persistent', 'echo', 'updown', 'none', - ]; - - /** - * @param string $token Pushover api token - * @param string|array $users Pushover user id or array of ids the message will be sent to - * @param string|null $title Title sent to the Pushover API - * @param bool $useSSL Whether to connect via SSL. Required when pushing messages to users that are not - * the pushover.net app owner. OpenSSL is required for this option. - * @param int $retry The retry parameter specifies how often (in seconds) the Pushover servers will - * send the same notification to the user. - * @param int $expire The expire parameter specifies how many seconds your notification will continue - * to be retried for (every retry seconds). - * - * @param int|string|Level|LogLevel::* $highPriorityLevel The minimum logging level at which this handler will start - * sending "high priority" requests to the Pushover API - * @param int|string|Level|LogLevel::* $emergencyLevel The minimum logging level at which this handler will start - * sending "emergency" requests to the Pushover API - * - * - * @phpstan-param string|array $users - * @phpstan-param value-of|value-of|Level|LogLevel::* $highPriorityLevel - * @phpstan-param value-of|value-of|Level|LogLevel::* $emergencyLevel - */ - public function __construct( - string $token, - $users, - ?string $title = null, - int|string|Level $level = Level::Critical, - bool $bubble = true, - bool $useSSL = true, - int|string|Level $highPriorityLevel = Level::Critical, - int|string|Level $emergencyLevel = Level::Emergency, - int $retry = 30, - int $expire = 25200, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; - parent::__construct( - $connectionString, - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - - $this->token = $token; - $this->users = (array) $users; - $this->title = $title ?? (string) gethostname(); - $this->highPriorityLevel = Logger::toMonologLevel($highPriorityLevel); - $this->emergencyLevel = Logger::toMonologLevel($emergencyLevel); - $this->retry = $retry; - $this->expire = $expire; - } - - protected function generateDataStream(LogRecord $record): string - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - private function buildContent(LogRecord $record): string - { - // Pushover has a limit of 512 characters on title and message combined. - $maxMessageLength = 512 - \strlen($this->title); - - $message = ($this->useFormattedMessage) ? $record->formatted : $record->message; - $message = Utils::substr($message, 0, $maxMessageLength); - - $timestamp = $record->datetime->getTimestamp(); - - $dataArray = [ - 'token' => $this->token, - 'user' => $this->user, - 'message' => $message, - 'title' => $this->title, - 'timestamp' => $timestamp, - ]; - - if ($record->level->value >= $this->emergencyLevel->value) { - $dataArray['priority'] = 2; - $dataArray['retry'] = $this->retry; - $dataArray['expire'] = $this->expire; - } elseif ($record->level->value >= $this->highPriorityLevel->value) { - $dataArray['priority'] = 1; - } - - // First determine the available parameters - $context = array_intersect_key($record->context, $this->parameterNames); - $extra = array_intersect_key($record->extra, $this->parameterNames); - - // Least important info should be merged with subsequent info - $dataArray = array_merge($extra, $context, $dataArray); - - // Only pass sounds that are supported by the API - if (isset($dataArray['sound']) && !\in_array($dataArray['sound'], $this->sounds, true)) { - unset($dataArray['sound']); - } - - return http_build_query($dataArray); - } - - private function buildHeader(string $content): string - { - $header = "POST /1/messages.json HTTP/1.1\r\n"; - $header .= "Host: api.pushover.net\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - protected function write(LogRecord $record): void - { - foreach ($this->users as $user) { - $this->user = $user; - - parent::write($record); - $this->closeSocket(); - } - - $this->user = null; - } - - /** - * @param int|string|Level|LogLevel::* $level - * @return $this - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function setHighPriorityLevel(int|string|Level $level): self - { - $this->highPriorityLevel = Logger::toMonologLevel($level); - - return $this; - } - - /** - * @param int|string|Level|LogLevel::* $level - * @return $this - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function setEmergencyLevel(int|string|Level $level): self - { - $this->emergencyLevel = Logger::toMonologLevel($level); - - return $this; - } - - /** - * Use the formatted message? - * - * @return $this - */ - public function useFormattedMessage(bool $useFormattedMessage): self - { - $this->useFormattedMessage = $useFormattedMessage; - - return $this; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php deleted file mode 100644 index c40d97c..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\LogRecord; -use Predis\Client as Predis; -use Redis; - -/** - * Logs to a Redis key using rpush - * - * usage example: - * - * $log = new Logger('application'); - * $redis = new RedisHandler(new Predis\Client("tcp://localhost:6379"), "logs"); - * $log->pushHandler($redis); - * - * @author Thomas Tourlourat - */ -class RedisHandler extends AbstractProcessingHandler -{ - /** @var Predis|Redis */ - private Predis|Redis $redisClient; - private string $redisKey; - protected int $capSize; - - /** - * @param Predis|Redis $redis The redis instance - * @param string $key The key name to push records to - * @param int $capSize Number of entries to limit list size to, 0 = unlimited - */ - public function __construct(Predis|Redis $redis, string $key, int|string|Level $level = Level::Debug, bool $bubble = true, int $capSize = 0) - { - $this->redisClient = $redis; - $this->redisKey = $key; - $this->capSize = $capSize; - - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if ($this->capSize > 0) { - $this->writeCapped($record); - } else { - $this->redisClient->rpush($this->redisKey, $record->formatted); - } - } - - /** - * Write and cap the collection - * Writes the record to the redis list and caps its - */ - protected function writeCapped(LogRecord $record): void - { - if ($this->redisClient instanceof Redis) { - $mode = \defined('Redis::MULTI') ? Redis::MULTI : 1; - $this->redisClient->multi($mode) - ->rPush($this->redisKey, $record->formatted) - ->ltrim($this->redisKey, -$this->capSize, -1) - ->exec(); - } else { - $redisKey = $this->redisKey; - $capSize = $this->capSize; - $this->redisClient->transaction(function ($tx) use ($record, $redisKey, $capSize) { - $tx->rpush($redisKey, $record->formatted); - $tx->ltrim($redisKey, -$capSize, -1); - }); - } - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php deleted file mode 100644 index fa8e9e9..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\LogRecord; -use Predis\Client as Predis; -use Redis; - -/** - * Sends the message to a Redis Pub/Sub channel using PUBLISH - * - * usage example: - * - * $log = new Logger('application'); - * $redis = new RedisPubSubHandler(new Predis\Client("tcp://localhost:6379"), "logs", Level::Warning); - * $log->pushHandler($redis); - * - * @author Gaëtan Faugère - */ -class RedisPubSubHandler extends AbstractProcessingHandler -{ - /** @var Predis|Redis */ - private Predis|Redis $redisClient; - private string $channelKey; - - /** - * @param Predis|Redis $redis The redis instance - * @param string $key The channel key to publish records to - */ - public function __construct(Predis|Redis $redis, string $key, int|string|Level $level = Level::Debug, bool $bubble = true) - { - $this->redisClient = $redis; - $this->channelKey = $key; - - parent::__construct($level, $bubble); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->redisClient->publish($this->channelKey, $record->formatted); - } - - /** - * @inheritDoc - */ - protected function getDefaultFormatter(): FormatterInterface - { - return new LineFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php deleted file mode 100644 index 6b99432..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Rollbar\RollbarLogger; -use Throwable; -use Monolog\LogRecord; - -/** - * Sends errors to Rollbar - * - * If the context data contains a `payload` key, that is used as an array - * of payload options to RollbarLogger's log method. - * - * Rollbar's context info will contain the context + extra keys from the log record - * merged, and then on top of that a few keys: - * - * - level (rollbar level name) - * - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8) - * - channel - * - datetime (unix timestamp) - * - * @author Paul Statezny - */ -class RollbarHandler extends AbstractProcessingHandler -{ - protected RollbarLogger $rollbarLogger; - - /** - * Records whether any log records have been added since the last flush of the rollbar notifier - */ - private bool $hasRecords = false; - - protected bool $initialized = false; - - /** - * @param RollbarLogger $rollbarLogger RollbarLogger object constructed with valid token - */ - public function __construct(RollbarLogger $rollbarLogger, int|string|Level $level = Level::Error, bool $bubble = true) - { - $this->rollbarLogger = $rollbarLogger; - - parent::__construct($level, $bubble); - } - - /** - * Translates Monolog log levels to Rollbar levels. - * - * @return 'debug'|'info'|'warning'|'error'|'critical' - */ - protected function toRollbarLevel(Level $level): string - { - return match ($level) { - Level::Debug => 'debug', - Level::Info => 'info', - Level::Notice => 'info', - Level::Warning => 'warning', - Level::Error => 'error', - Level::Critical => 'critical', - Level::Alert => 'critical', - Level::Emergency => 'critical', - }; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - register_shutdown_function([$this, 'close']); - $this->initialized = true; - } - - $context = $record->context; - $context = array_merge($context, $record->extra, [ - 'level' => $this->toRollbarLevel($record->level), - 'monolog_level' => $record->level->getName(), - 'channel' => $record->channel, - 'datetime' => $record->datetime->format('U'), - ]); - - if (isset($context['exception']) && $context['exception'] instanceof Throwable) { - $exception = $context['exception']; - unset($context['exception']); - $toLog = $exception; - } else { - $toLog = $record->message; - } - - $this->rollbarLogger->log($context['level'], $toLog, $context); - - $this->hasRecords = true; - } - - public function flush(): void - { - if ($this->hasRecords) { - $this->rollbarLogger->flush(); - $this->hasRecords = false; - } - } - - /** - * @inheritDoc - */ - public function close(): void - { - $this->flush(); - } - - /** - * @inheritDoc - */ - public function reset(): void - { - $this->flush(); - - parent::reset(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php deleted file mode 100644 index f3e0455..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ /dev/null @@ -1,218 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use InvalidArgumentException; -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Stores logs to files that are rotated every day and a limited number of files are kept. - * - * This rotation is only intended to be used as a workaround. Using logrotate to - * handle the rotation is strongly encouraged when you can use it. - * - * @author Christophe Coevoet - * @author Jordi Boggiano - */ -class RotatingFileHandler extends StreamHandler -{ - public const FILE_PER_DAY = 'Y-m-d'; - public const FILE_PER_MONTH = 'Y-m'; - public const FILE_PER_YEAR = 'Y'; - - protected string $filename; - protected int $maxFiles; - protected bool|null $mustRotate = null; - protected \DateTimeImmutable $nextRotation; - protected string $filenameFormat; - protected string $dateFormat; - - /** - * @param int $maxFiles The maximal amount of files to keep (0 means unlimited) - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param bool $useLocking Try to lock log file before doing any writes - */ - public function __construct(string $filename, int $maxFiles = 0, int|string|Level $level = Level::Debug, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false, string $dateFormat = self::FILE_PER_DAY, string $filenameFormat = '{filename}-{date}') - { - $this->filename = Utils::canonicalizePath($filename); - $this->maxFiles = $maxFiles; - $this->setFilenameFormat($filenameFormat, $dateFormat); - $this->nextRotation = $this->getNextRotation(); - - parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking); - } - - /** - * @inheritDoc - */ - public function close(): void - { - parent::close(); - - if (true === $this->mustRotate) { - $this->rotate(); - } - } - - /** - * @inheritDoc - */ - public function reset(): void - { - parent::reset(); - } - - /** - * @return $this - */ - public function setFilenameFormat(string $filenameFormat, string $dateFormat): self - { - $this->setDateFormat($dateFormat); - if (substr_count($filenameFormat, '{date}') === 0) { - throw new InvalidArgumentException( - 'Invalid filename format - format must contain at least `{date}`, because otherwise rotating is impossible.' - ); - } - $this->filenameFormat = $filenameFormat; - $this->url = $this->getTimedFilename(); - $this->close(); - - return $this; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - // on the first record written, if the log is new, we rotate (once per day) after the log has been written so that the new file exists - if (null === $this->mustRotate) { - $this->mustRotate = null === $this->url || !file_exists($this->url); - } - - // if the next rotation is expired, then we rotate immediately - if ($this->nextRotation <= $record->datetime) { - $this->mustRotate = true; - $this->close(); // triggers rotation - } - - parent::write($record); - - if (true === $this->mustRotate) { - $this->close(); // triggers rotation - } - } - - /** - * Rotates the files. - */ - protected function rotate(): void - { - // update filename - $this->url = $this->getTimedFilename(); - $this->nextRotation = $this->getNextRotation(); - - $this->mustRotate = false; - - // skip GC of old logs if files are unlimited - if (0 === $this->maxFiles) { - return; - } - - $logFiles = glob($this->getGlobPattern()); - if (false === $logFiles) { - // failed to glob - return; - } - - if ($this->maxFiles >= \count($logFiles)) { - // no files to remove - return; - } - - // Sorting the files by name to remove the older ones - usort($logFiles, function ($a, $b) { - return strcmp($b, $a); - }); - - foreach (\array_slice($logFiles, $this->maxFiles) as $file) { - if (is_writable($file)) { - // suppress errors here as unlink() might fail if two processes - // are cleaning up/rotating at the same time - set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline): bool { - return false; - }); - unlink($file); - restore_error_handler(); - } - } - } - - protected function getTimedFilename(): string - { - $fileInfo = pathinfo($this->filename); - $timedFilename = str_replace( - ['{filename}', '{date}'], - [$fileInfo['filename'], date($this->dateFormat)], - ($fileInfo['dirname'] ?? '') . '/' . $this->filenameFormat - ); - - if (isset($fileInfo['extension'])) { - $timedFilename .= '.'.$fileInfo['extension']; - } - - return $timedFilename; - } - - protected function getGlobPattern(): string - { - $fileInfo = pathinfo($this->filename); - $glob = str_replace( - ['{filename}', '{date}'], - [$fileInfo['filename'], str_replace( - ['Y', 'y', 'm', 'd'], - ['[0-9][0-9][0-9][0-9]', '[0-9][0-9]', '[0-9][0-9]', '[0-9][0-9]'], - $this->dateFormat - )], - ($fileInfo['dirname'] ?? '') . '/' . $this->filenameFormat - ); - if (isset($fileInfo['extension'])) { - $glob .= '.'.$fileInfo['extension']; - } - - return $glob; - } - - protected function setDateFormat(string $dateFormat): void - { - if (0 === preg_match('{^[Yy](([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) { - throw new InvalidArgumentException( - 'Invalid date format - format must be one of '. - 'RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), RotatingFileHandler::FILE_PER_MONTH ("Y-m") '. - 'or RotatingFileHandler::FILE_PER_YEAR ("Y"), or you can set one of the '. - 'date formats using slashes, underscores and/or dots instead of dashes.' - ); - } - $this->dateFormat = $dateFormat; - } - - protected function getNextRotation(): \DateTimeImmutable - { - return match (str_replace(['/','_','.'], '-', $this->dateFormat)) { - self::FILE_PER_MONTH => (new \DateTimeImmutable('first day of next month'))->setTime(0, 0, 0), - self::FILE_PER_YEAR => (new \DateTimeImmutable('first day of January next year'))->setTime(0, 0, 0), - default => (new \DateTimeImmutable('tomorrow'))->setTime(0, 0, 0), - }; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php deleted file mode 100644 index 1b10580..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +++ /dev/null @@ -1,121 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Closure; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Sampling handler - * - * A sampled event stream can be useful for logging high frequency events in - * a production environment where you only need an idea of what is happening - * and are not concerned with capturing every occurrence. Since the decision to - * handle or not handle a particular event is determined randomly, the - * resulting sampled log is not guaranteed to contain 1/N of the events that - * occurred in the application, but based on the Law of large numbers, it will - * tend to be close to this ratio with a large number of attempts. - * - * @author Bryan Davis - * @author Kunal Mehta - */ -class SamplingHandler extends AbstractHandler implements ProcessableHandlerInterface, FormattableHandlerInterface -{ - use ProcessableHandlerTrait; - - /** - * Handler or factory Closure($record, $this) - * - * @phpstan-var (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface - */ - protected Closure|HandlerInterface $handler; - - protected int $factor; - - /** - * @phpstan-param (Closure(LogRecord|null, HandlerInterface): HandlerInterface)|HandlerInterface $handler - * - * @param Closure|HandlerInterface $handler Handler or factory Closure($record|null, $samplingHandler). - * @param int $factor Sample factor (e.g. 10 means every ~10th record is sampled) - */ - public function __construct(Closure|HandlerInterface $handler, int $factor) - { - parent::__construct(); - $this->handler = $handler; - $this->factor = $factor; - } - - public function isHandling(LogRecord $record): bool - { - return $this->getHandler($record)->isHandling($record); - } - - public function handle(LogRecord $record): bool - { - if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) { - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - $this->getHandler($record)->handle($record); - } - - return false === $this->bubble; - } - - /** - * Return the nested handler - * - * If the handler was provided as a factory, this will trigger the handler's instantiation. - */ - public function getHandler(LogRecord|null $record = null): HandlerInterface - { - if (!$this->handler instanceof HandlerInterface) { - $handler = ($this->handler)($record, $this); - if (!$handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory Closure should return a HandlerInterface"); - } - $this->handler = $handler; - } - - return $this->handler; - } - - /** - * @inheritDoc - */ - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - $handler->setFormatter($formatter); - - return $this; - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } - - /** - * @inheritDoc - */ - public function getFormatter(): FormatterInterface - { - $handler = $this->getHandler(); - if ($handler instanceof FormattableHandlerInterface) { - return $handler->getFormatter(); - } - - throw new \UnexpectedValueException('The nested handler of type '.\get_class($handler).' does not support formatters.'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SendGridHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SendGridHandler.php deleted file mode 100644 index 5847a58..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SendGridHandler.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; - -/** - * SendGridHandler uses the SendGrid API v3 function to send Log emails, more information in https://www.twilio.com/docs/sendgrid/for-developers/sending-email/api-getting-started - * - * @author Ricardo Fontanelli - */ -class SendGridHandler extends MailHandler -{ - /** - * The SendGrid API User - * @deprecated this is not used anymore as of SendGrid API v3 - */ - protected string $apiUser; - /** - * The email addresses to which the message will be sent - * @var string[] - */ - protected array $to; - - /** - * @param string|null $apiUser Unused user as of SendGrid API v3, you can pass null or any string - * @param list|string $to - * @param non-empty-string $apiHost Allows you to use another endpoint (e.g. api.eu.sendgrid.com) - * @throws MissingExtensionException If the curl extension is missing - */ - public function __construct( - string|null $apiUser, - protected string $apiKey, - protected string $from, - array|string $to, - protected string $subject, - int|string|Level $level = Level::Error, - bool $bubble = true, - /** @var non-empty-string */ - private readonly string $apiHost = 'api.sendgrid.com', - ) { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is needed to use the SendGridHandler'); - } - - $this->to = (array) $to; - // @phpstan-ignore property.deprecated - $this->apiUser = $apiUser ?? ''; - parent::__construct($level, $bubble); - } - - protected function send(string $content, array $records): void - { - $body = []; - $body['personalizations'] = []; - $body['from']['email'] = $this->from; - foreach ($this->to as $recipient) { - $body['personalizations'][]['to'][]['email'] = $recipient; - } - $body['subject'] = $this->subject; - - if ($this->isHtmlBody($content)) { - $body['content'][] = [ - 'type' => 'text/html', - 'value' => $content, - ]; - } else { - $body['content'][] = [ - 'type' => 'text/plain', - 'value' => $content, - ]; - } - $ch = curl_init(); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/json', - 'Authorization: Bearer '.$this->apiKey, - ]); - curl_setopt($ch, CURLOPT_URL, 'https://'.$this->apiHost.'/v3/mail/send'); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, Utils::jsonEncode($body)); - - Curl\Util::execute($ch, 2); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php deleted file mode 100644 index 0e46c2d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +++ /dev/null @@ -1,381 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\Slack; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\LogRecord; - -/** - * Slack record utility helping to log to Slack webhooks or API. - * - * @author Greg Kedzierski - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - * @see https://api.slack.com/docs/message-attachments - */ -class SlackRecord -{ - public const COLOR_DANGER = 'danger'; - - public const COLOR_WARNING = 'warning'; - - public const COLOR_GOOD = 'good'; - - public const COLOR_DEFAULT = '#e3e4e6'; - - /** - * Slack channel (encoded ID or name) - */ - private string|null $channel; - - /** - * Name of a bot - */ - private string|null $username; - - /** - * User icon e.g. 'ghost', 'http://example.com/user.png' - */ - private string|null $userIcon; - - /** - * Whether the message should be added to Slack as attachment (plain text otherwise) - */ - private bool $useAttachment; - - /** - * Whether the the context/extra messages added to Slack as attachments are in a short style - */ - private bool $useShortAttachment; - - /** - * Whether the attachment should include context and extra data - */ - private bool $includeContextAndExtra; - - /** - * Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - * @var string[] - */ - private array $excludeFields; - - private FormatterInterface|null $formatter; - - private NormalizerFormatter $normalizerFormatter; - - /** - * @param string[] $excludeFields - */ - public function __construct( - ?string $channel = null, - ?string $username = null, - bool $useAttachment = true, - ?string $userIcon = null, - bool $useShortAttachment = false, - bool $includeContextAndExtra = false, - array $excludeFields = [], - FormatterInterface|null $formatter = null - ) { - $this - ->setChannel($channel) - ->setUsername($username) - ->useAttachment($useAttachment) - ->setUserIcon($userIcon) - ->useShortAttachment($useShortAttachment) - ->includeContextAndExtra($includeContextAndExtra) - ->excludeFields($excludeFields) - ->setFormatter($formatter); - - if ($this->includeContextAndExtra) { - $this->normalizerFormatter = new NormalizerFormatter(); - } - } - - /** - * Returns required data in format that Slack - * is expecting. - * - * @phpstan-return mixed[] - */ - public function getSlackData(LogRecord $record): array - { - $dataArray = []; - - if ($this->username !== null) { - $dataArray['username'] = $this->username; - } - - if ($this->channel !== null) { - $dataArray['channel'] = $this->channel; - } - - if ($this->formatter !== null && !$this->useAttachment) { - $message = $this->formatter->format($record); - } else { - $message = $record->message; - } - - $recordData = $this->removeExcludedFields($record); - - if ($this->useAttachment) { - $attachment = [ - 'fallback' => $message, - 'text' => $message, - 'color' => $this->getAttachmentColor($record->level), - 'fields' => [], - 'mrkdwn_in' => ['fields'], - 'ts' => $recordData['datetime']->getTimestamp(), - 'footer' => $this->username, - 'footer_icon' => $this->userIcon, - ]; - - if ($this->useShortAttachment) { - $attachment['title'] = $recordData['level_name']; - } else { - $attachment['title'] = 'Message'; - $attachment['fields'][] = $this->generateAttachmentField('Level', $recordData['level_name']); - } - - if ($this->includeContextAndExtra) { - foreach (['extra', 'context'] as $key) { - if (!isset($recordData[$key]) || \count($recordData[$key]) === 0) { - continue; - } - - if ($this->useShortAttachment) { - $attachment['fields'][] = $this->generateAttachmentField( - $key, - $recordData[$key] - ); - } else { - // Add all extra fields as individual fields in attachment - $attachment['fields'] = array_merge( - $attachment['fields'], - $this->generateAttachmentFields($recordData[$key]) - ); - } - } - } - - $dataArray['attachments'] = [$attachment]; - } else { - $dataArray['text'] = $message; - } - - if ($this->userIcon !== null) { - if (false !== ($iconUrl = filter_var($this->userIcon, FILTER_VALIDATE_URL))) { - $dataArray['icon_url'] = $iconUrl; - } else { - $dataArray['icon_emoji'] = ":{$this->userIcon}:"; - } - } - - return $dataArray; - } - - /** - * Returns a Slack message attachment color associated with - * provided level. - */ - public function getAttachmentColor(Level $level): string - { - return match ($level) { - Level::Error, Level::Critical, Level::Alert, Level::Emergency => static::COLOR_DANGER, - Level::Warning => static::COLOR_WARNING, - Level::Info, Level::Notice => static::COLOR_GOOD, - Level::Debug => static::COLOR_DEFAULT - }; - } - - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param mixed[] $fields - */ - public function stringify(array $fields): string - { - /** @var array|bool|float|int|string|null> $normalized */ - $normalized = $this->normalizerFormatter->normalizeValue($fields); - - $hasSecondDimension = \count(array_filter($normalized, 'is_array')) > 0; - $hasOnlyNonNumericKeys = \count(array_filter(array_keys($normalized), 'is_numeric')) === 0; - - return $hasSecondDimension || $hasOnlyNonNumericKeys - ? Utils::jsonEncode($normalized, JSON_PRETTY_PRINT|Utils::DEFAULT_JSON_FLAGS) - : Utils::jsonEncode($normalized, Utils::DEFAULT_JSON_FLAGS); - } - - /** - * Channel used by the bot when posting - * - * @param ?string $channel - * @return $this - */ - public function setChannel(?string $channel = null): self - { - $this->channel = $channel; - - return $this; - } - - /** - * Username used by the bot when posting - * - * @param ?string $username - * @return $this - */ - public function setUsername(?string $username = null): self - { - $this->username = $username; - - return $this; - } - - /** - * @return $this - */ - public function useAttachment(bool $useAttachment = true): self - { - $this->useAttachment = $useAttachment; - - return $this; - } - - /** - * @return $this - */ - public function setUserIcon(?string $userIcon = null): self - { - $this->userIcon = $userIcon; - - if (\is_string($userIcon)) { - $this->userIcon = trim($userIcon, ':'); - } - - return $this; - } - - /** - * @return $this - */ - public function useShortAttachment(bool $useShortAttachment = false): self - { - $this->useShortAttachment = $useShortAttachment; - - return $this; - } - - /** - * @return $this - */ - public function includeContextAndExtra(bool $includeContextAndExtra = false): self - { - $this->includeContextAndExtra = $includeContextAndExtra; - - if ($this->includeContextAndExtra) { - $this->normalizerFormatter = new NormalizerFormatter(); - } - - return $this; - } - - /** - * @param string[] $excludeFields - * @return $this - */ - public function excludeFields(array $excludeFields = []): self - { - $this->excludeFields = $excludeFields; - - return $this; - } - - /** - * @return $this - */ - public function setFormatter(?FormatterInterface $formatter = null): self - { - $this->formatter = $formatter; - - return $this; - } - - /** - * Generates attachment field - * - * @param string|mixed[] $value - * - * @return array{title: string, value: string, short: false} - */ - private function generateAttachmentField(string $title, $value): array - { - $value = \is_array($value) - ? sprintf('```%s```', substr($this->stringify($value), 0, 1990)) - : $value; - - return [ - 'title' => ucfirst($title), - 'value' => $value, - 'short' => false, - ]; - } - - /** - * Generates a collection of attachment fields from array - * - * @param mixed[] $data - * - * @return array - */ - private function generateAttachmentFields(array $data): array - { - /** @var array|string> $normalized */ - $normalized = $this->normalizerFormatter->normalizeValue($data); - - $fields = []; - foreach ($normalized as $key => $value) { - $fields[] = $this->generateAttachmentField((string) $key, $value); - } - - return $fields; - } - - /** - * Get a copy of record with fields excluded according to $this->excludeFields - * - * @return mixed[] - */ - private function removeExcludedFields(LogRecord $record): array - { - $recordData = $record->toArray(); - foreach ($this->excludeFields as $field) { - $keys = explode('.', $field); - $node = &$recordData; - $lastKey = end($keys); - foreach ($keys as $key) { - if (!isset($node[$key])) { - break; - } - if ($lastKey === $key) { - unset($node[$key]); - break; - } - $node = &$node[$key]; - } - } - - return $recordData; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php deleted file mode 100644 index 2a34dda..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ /dev/null @@ -1,267 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\Utils; -use Monolog\Handler\Slack\SlackRecord; -use Monolog\LogRecord; - -/** - * Sends notifications through Slack API - * - * @author Greg Kedzierski - * @see https://api.slack.com/ - */ -class SlackHandler extends SocketHandler -{ - /** - * Slack API token - */ - private string $token; - - /** - * Instance of the SlackRecord util class preparing data for Slack API. - */ - private SlackRecord $slackRecord; - - /** - * @param string $token Slack API token - * @param string $channel Slack channel (encoded ID or name) - * @param string|null $username Name of a bot - * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) - * @param string|null $iconEmoji The emoji name to use (or null) - * @param bool $useShortAttachment Whether the context/extra messages added to Slack as attachments are in a short style - * @param bool $includeContextAndExtra Whether the attachment should include context and extra data - * @param string[] $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - * @throws MissingExtensionException If no OpenSSL PHP extension configured - */ - public function __construct( - string $token, - string $channel, - ?string $username = null, - bool $useAttachment = true, - ?string $iconEmoji = null, - $level = Level::Critical, - bool $bubble = true, - bool $useShortAttachment = false, - bool $includeContextAndExtra = false, - array $excludeFields = [], - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - if (!\extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); - } - - parent::__construct( - 'ssl://slack.com:443', - $level, - $bubble, - $persistent, - $timeout, - $writingTimeout, - $connectionTimeout, - $chunkSize - ); - - $this->slackRecord = new SlackRecord( - $channel, - $username, - $useAttachment, - $iconEmoji, - $useShortAttachment, - $includeContextAndExtra, - $excludeFields - ); - - $this->token = $token; - } - - public function getSlackRecord(): SlackRecord - { - return $this->slackRecord; - } - - public function getToken(): string - { - return $this->token; - } - - /** - * @inheritDoc - */ - protected function generateDataStream(LogRecord $record): string - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - */ - private function buildContent(LogRecord $record): string - { - $dataArray = $this->prepareContentData($record); - - return http_build_query($dataArray); - } - - /** - * @return string[] - */ - protected function prepareContentData(LogRecord $record): array - { - $dataArray = $this->slackRecord->getSlackData($record); - $dataArray['token'] = $this->token; - - if (isset($dataArray['attachments']) && \is_array($dataArray['attachments']) && \count($dataArray['attachments']) > 0) { - $dataArray['attachments'] = Utils::jsonEncode($dataArray['attachments']); - } - - return $dataArray; - } - - /** - * Builds the header of the API Call - */ - private function buildHeader(string $content): string - { - $header = "POST /api/chat.postMessage HTTP/1.1\r\n"; - $header .= "Host: slack.com\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . \strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - parent::write($record); - $this->finalizeWrite(); - } - - /** - * Finalizes the request by reading some bytes and then closing the socket - * - * If we do not read some but close the socket too early, slack sometimes - * drops the request entirely. - */ - protected function finalizeWrite(): void - { - $res = $this->getResource(); - if (\is_resource($res)) { - @fread($res, 2048); - } - $this->closeSocket(); - } - - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - - return $this; - } - - public function getFormatter(): FormatterInterface - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - - return $formatter; - } - - /** - * Channel used by the bot when posting - * - * @return $this - */ - public function setChannel(string $channel): self - { - $this->slackRecord->setChannel($channel); - - return $this; - } - - /** - * Username used by the bot when posting - * - * @return $this - */ - public function setUsername(string $username): self - { - $this->slackRecord->setUsername($username); - - return $this; - } - - /** - * @return $this - */ - public function useAttachment(bool $useAttachment): self - { - $this->slackRecord->useAttachment($useAttachment); - - return $this; - } - - /** - * @return $this - */ - public function setIconEmoji(string $iconEmoji): self - { - $this->slackRecord->setUserIcon($iconEmoji); - - return $this; - } - - /** - * @return $this - */ - public function useShortAttachment(bool $useShortAttachment): self - { - $this->slackRecord->useShortAttachment($useShortAttachment); - - return $this; - } - - /** - * @return $this - */ - public function includeContextAndExtra(bool $includeContextAndExtra): self - { - $this->slackRecord->includeContextAndExtra($includeContextAndExtra); - - return $this; - } - - /** - * @param string[] $excludeFields - * @return $this - */ - public function excludeFields(array $excludeFields): self - { - $this->slackRecord->excludeFields($excludeFields); - - return $this; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php deleted file mode 100644 index eac51cc..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Level; -use Monolog\Utils; -use Monolog\Handler\Slack\SlackRecord; -use Monolog\LogRecord; - -/** - * Sends notifications through Slack Webhooks - * - * @author Haralan Dobrev - * @see https://api.slack.com/incoming-webhooks - */ -class SlackWebhookHandler extends AbstractProcessingHandler -{ - /** - * Slack Webhook token - */ - private string $webhookUrl; - - /** - * Instance of the SlackRecord util class preparing data for Slack API. - */ - private SlackRecord $slackRecord; - - /** - * @param string $webhookUrl Slack Webhook URL - * @param string|null $channel Slack channel (encoded ID or name) - * @param string|null $username Name of a bot - * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) - * @param string|null $iconEmoji The emoji name to use (or null) - * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style - * @param bool $includeContextAndExtra Whether the attachment should include context and extra data - * @param string[] $excludeFields Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2'] - * - * @throws MissingExtensionException If the curl extension is missing - */ - public function __construct( - string $webhookUrl, - ?string $channel = null, - ?string $username = null, - bool $useAttachment = true, - ?string $iconEmoji = null, - bool $useShortAttachment = false, - bool $includeContextAndExtra = false, - $level = Level::Critical, - bool $bubble = true, - array $excludeFields = [] - ) { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is needed to use the SlackWebhookHandler'); - } - - parent::__construct($level, $bubble); - - $this->webhookUrl = $webhookUrl; - - $this->slackRecord = new SlackRecord( - $channel, - $username, - $useAttachment, - $iconEmoji, - $useShortAttachment, - $includeContextAndExtra, - $excludeFields - ); - } - - public function getSlackRecord(): SlackRecord - { - return $this->slackRecord; - } - - public function getWebhookUrl(): string - { - return $this->webhookUrl; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $postData = $this->slackRecord->getSlackData($record); - $postString = Utils::jsonEncode($postData); - - $ch = curl_init(); - $options = [ - CURLOPT_URL => $this->webhookUrl, - CURLOPT_POST => true, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_HTTPHEADER => ['Content-type: application/json'], - CURLOPT_POSTFIELDS => $postString, - ]; - - curl_setopt_array($ch, $options); - - Curl\Util::execute($ch); - } - - public function setFormatter(FormatterInterface $formatter): HandlerInterface - { - parent::setFormatter($formatter); - $this->slackRecord->setFormatter($formatter); - - return $this; - } - - public function getFormatter(): FormatterInterface - { - $formatter = parent::getFormatter(); - $this->slackRecord->setFormatter($formatter); - - return $formatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php deleted file mode 100644 index 36d46bf..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php +++ /dev/null @@ -1,436 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Stores to any socket - uses fsockopen() or pfsockopen(). - * - * @author Pablo de Leon Belloc - * @see http://php.net/manual/en/function.fsockopen.php - */ -class SocketHandler extends AbstractProcessingHandler -{ - private string $connectionString; - private float $connectionTimeout; - /** @var resource|null */ - private $resource; - private float $timeout; - private float $writingTimeout; - private int|null $lastSentBytes = null; - private int|null $chunkSize; - private bool $persistent; - private int|null $errno = null; - private string|null $errstr = null; - private float|null $lastWritingAt = null; - - /** - * @param string $connectionString Socket connection string - * @param bool $persistent Flag to enable/disable persistent connections - * @param float $timeout Socket timeout to wait until the request is being aborted - * @param float $writingTimeout Socket timeout to wait until the request should've been sent/written - * @param float|null $connectionTimeout Socket connect timeout to wait until the connection should've been - * established - * @param int|null $chunkSize Sets the chunk size. Only has effect during connection in the writing cycle - * - * @throws \InvalidArgumentException If an invalid timeout value (less than 0) is passed. - */ - public function __construct( - string $connectionString, - $level = Level::Debug, - bool $bubble = true, - bool $persistent = false, - float $timeout = 0.0, - float $writingTimeout = 10.0, - ?float $connectionTimeout = null, - ?int $chunkSize = null - ) { - parent::__construct($level, $bubble); - $this->connectionString = $connectionString; - - if ($connectionTimeout !== null) { - $this->validateTimeout($connectionTimeout); - } - - $this->connectionTimeout = $connectionTimeout ?? (float) \ini_get('default_socket_timeout'); - $this->persistent = $persistent; - $this->validateTimeout($timeout); - $this->timeout = $timeout; - $this->validateTimeout($writingTimeout); - $this->writingTimeout = $writingTimeout; - $this->chunkSize = $chunkSize; - } - - /** - * Connect (if necessary) and write to the socket - * - * @inheritDoc - * - * @throws \UnexpectedValueException - * @throws \RuntimeException - */ - protected function write(LogRecord $record): void - { - $this->connectIfNotConnected(); - $data = $this->generateDataStream($record); - $this->writeToSocket($data); - } - - /** - * We will not close a PersistentSocket instance so it can be reused in other requests. - */ - public function close(): void - { - if (!$this->isPersistent()) { - $this->closeSocket(); - } - } - - /** - * Close socket, if open - */ - public function closeSocket(): void - { - if (\is_resource($this->resource)) { - fclose($this->resource); - $this->resource = null; - } - } - - /** - * Set socket connection to be persistent. It only has effect before the connection is initiated. - * - * @return $this - */ - public function setPersistent(bool $persistent): self - { - $this->persistent = $persistent; - - return $this; - } - - /** - * Set connection timeout. Only has effect before we connect. - * - * @see http://php.net/manual/en/function.fsockopen.php - * @return $this - */ - public function setConnectionTimeout(float $seconds): self - { - $this->validateTimeout($seconds); - $this->connectionTimeout = $seconds; - - return $this; - } - - /** - * Set write timeout. Only has effect before we connect. - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - * @return $this - */ - public function setTimeout(float $seconds): self - { - $this->validateTimeout($seconds); - $this->timeout = $seconds; - - return $this; - } - - /** - * Set writing timeout. Only has effect during connection in the writing cycle. - * - * @param float $seconds 0 for no timeout - * @return $this - */ - public function setWritingTimeout(float $seconds): self - { - $this->validateTimeout($seconds); - $this->writingTimeout = $seconds; - - return $this; - } - - /** - * Set chunk size. Only has effect during connection in the writing cycle. - * - * @return $this - */ - public function setChunkSize(int $bytes): self - { - $this->chunkSize = $bytes; - - return $this; - } - - /** - * Get current connection string - */ - public function getConnectionString(): string - { - return $this->connectionString; - } - - /** - * Get persistent setting - */ - public function isPersistent(): bool - { - return $this->persistent; - } - - /** - * Get current connection timeout setting - */ - public function getConnectionTimeout(): float - { - return $this->connectionTimeout; - } - - /** - * Get current in-transfer timeout - */ - public function getTimeout(): float - { - return $this->timeout; - } - - /** - * Get current local writing timeout - */ - public function getWritingTimeout(): float - { - return $this->writingTimeout; - } - - /** - * Get current chunk size - */ - public function getChunkSize(): ?int - { - return $this->chunkSize; - } - - /** - * Check to see if the socket is currently available. - * - * UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details. - */ - public function isConnected(): bool - { - return \is_resource($this->resource) - && !feof($this->resource); // on TCP - other party can close connection. - } - - /** - * Wrapper to allow mocking - * - * @return resource|false - */ - protected function pfsockopen() - { - return @pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - * - * @return resource|false - */ - protected function fsockopen() - { - return @fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - protected function streamSetTimeout(): bool - { - $seconds = floor($this->timeout); - $microseconds = round(($this->timeout - $seconds) * 1e6); - - if (!\is_resource($this->resource)) { - throw new \LogicException('streamSetTimeout called but $this->resource is not a resource'); - } - - return stream_set_timeout($this->resource, (int) $seconds, (int) $microseconds); - } - - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-chunk-size.php - * - * @return int|false - */ - protected function streamSetChunkSize(): int|bool - { - if (!\is_resource($this->resource)) { - throw new \LogicException('streamSetChunkSize called but $this->resource is not a resource'); - } - - if (null === $this->chunkSize) { - throw new \LogicException('streamSetChunkSize called but $this->chunkSize is not set'); - } - - return stream_set_chunk_size($this->resource, $this->chunkSize); - } - - /** - * Wrapper to allow mocking - * - * @return int|false - */ - protected function fwrite(string $data): int|bool - { - if (!\is_resource($this->resource)) { - throw new \LogicException('fwrite called but $this->resource is not a resource'); - } - - return @fwrite($this->resource, $data); - } - - /** - * Wrapper to allow mocking - * - * @return mixed[]|bool - */ - protected function streamGetMetadata(): array|bool - { - if (!\is_resource($this->resource)) { - throw new \LogicException('streamGetMetadata called but $this->resource is not a resource'); - } - - return stream_get_meta_data($this->resource); - } - - private function validateTimeout(float $value): void - { - if ($value < 0) { - throw new \InvalidArgumentException("Timeout must be 0 or a positive float (got $value)"); - } - } - - private function connectIfNotConnected(): void - { - if ($this->isConnected()) { - return; - } - $this->connect(); - } - - protected function generateDataStream(LogRecord $record): string - { - return (string) $record->formatted; - } - - /** - * @return resource|null - */ - protected function getResource() - { - return $this->resource; - } - - private function connect(): void - { - $this->createSocketResource(); - $this->setSocketTimeout(); - $this->setStreamChunkSize(); - } - - private function createSocketResource(): void - { - if ($this->isPersistent()) { - $resource = $this->pfsockopen(); - } else { - $resource = $this->fsockopen(); - } - if (\is_bool($resource)) { - throw new \UnexpectedValueException("Failed connecting to $this->connectionString ($this->errno: $this->errstr)"); - } - $this->resource = $resource; - } - - private function setSocketTimeout(): void - { - if (!$this->streamSetTimeout()) { - throw new \UnexpectedValueException("Failed setting timeout with stream_set_timeout()"); - } - } - - private function setStreamChunkSize(): void - { - if (null !== $this->chunkSize && false === $this->streamSetChunkSize()) { - throw new \UnexpectedValueException("Failed setting chunk size with stream_set_chunk_size()"); - } - } - - private function writeToSocket(string $data): void - { - $length = \strlen($data); - $sent = 0; - $this->lastSentBytes = $sent; - while ($this->isConnected() && $sent < $length) { - if (0 === $sent) { - $chunk = $this->fwrite($data); - } else { - $chunk = $this->fwrite(substr($data, $sent)); - } - if ($chunk === false) { - throw new \RuntimeException("Could not write to socket"); - } - $sent += $chunk; - $socketInfo = $this->streamGetMetadata(); - if (\is_array($socketInfo) && (bool) $socketInfo['timed_out']) { - throw new \RuntimeException("Write timed-out"); - } - - if ($this->writingIsTimedOut($sent)) { - throw new \RuntimeException("Write timed-out, no data sent for `{$this->writingTimeout}` seconds, probably we got disconnected (sent $sent of $length)"); - } - } - if (!$this->isConnected() && $sent < $length) { - throw new \RuntimeException("End-of-file reached, probably we got disconnected (sent $sent of $length)"); - } - } - - private function writingIsTimedOut(int $sent): bool - { - // convert to ms - if (0.0 === $this->writingTimeout) { - return false; - } - - if ($sent !== $this->lastSentBytes) { - $this->lastWritingAt = microtime(true); - $this->lastSentBytes = $sent; - - return false; - } else { - usleep(100); - } - - if ((microtime(true) - (float) $this->lastWritingAt) >= $this->writingTimeout) { - $this->closeSocket(); - - return true; - } - - return false; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php deleted file mode 100644 index 1d28b65..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Aws\Sqs\SqsClient; -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Writes to any sqs queue. - * - * @author Martijn van Calker - */ -class SqsHandler extends AbstractProcessingHandler -{ - /** 256 KB in bytes - maximum message size in SQS */ - protected const MAX_MESSAGE_SIZE = 262144; - /** 100 KB in bytes - head message size for new error log */ - protected const HEAD_MESSAGE_SIZE = 102400; - - private SqsClient $client; - private string $queueUrl; - - public function __construct(SqsClient $sqsClient, string $queueUrl, int|string|Level $level = Level::Debug, bool $bubble = true) - { - parent::__construct($level, $bubble); - - $this->client = $sqsClient; - $this->queueUrl = $queueUrl; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if (!isset($record->formatted) || 'string' !== \gettype($record->formatted)) { - throw new \InvalidArgumentException('SqsHandler accepts only formatted records as a string' . Utils::getRecordMessageForException($record)); - } - - $messageBody = $record->formatted; - if (\strlen($messageBody) >= static::MAX_MESSAGE_SIZE) { - $messageBody = Utils::substr($messageBody, 0, static::HEAD_MESSAGE_SIZE); - } - - $this->client->sendMessage([ - 'QueueUrl' => $this->queueUrl, - 'MessageBody' => $messageBody, - ]); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php deleted file mode 100644 index 6153cc2..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +++ /dev/null @@ -1,246 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Stores to any stream resource - * - * Can be used to store into php://stderr, remote and local files, etc. - * - * @author Jordi Boggiano - */ -class StreamHandler extends AbstractProcessingHandler -{ - protected const MAX_CHUNK_SIZE = 2147483647; - /** 10MB */ - protected const DEFAULT_CHUNK_SIZE = 10 * 1024 * 1024; - protected int $streamChunkSize; - /** @var resource|null */ - protected $stream; - protected string|null $url = null; - private string|null $errorMessage = null; - protected int|null $filePermission; - protected bool $useLocking; - protected string $fileOpenMode; - /** @var true|null */ - private bool|null $dirCreated = null; - private bool $retrying = false; - - /** - * @param resource|string $stream If a missing path can't be created, an UnexpectedValueException will be thrown on first write - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param bool $useLocking Try to lock log file before doing any writes - * @param string $fileOpenMode The fopen() mode used when opening a file, if $stream is a file path - * - * @throws \InvalidArgumentException If stream is not a resource or string - */ - public function __construct($stream, int|string|Level $level = Level::Debug, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false, string $fileOpenMode = 'a') - { - parent::__construct($level, $bubble); - - if (($phpMemoryLimit = Utils::expandIniShorthandBytes(\ini_get('memory_limit'))) !== false) { - if ($phpMemoryLimit > 0) { - // use max 10% of allowed memory for the chunk size, and at least 100KB - $this->streamChunkSize = min(static::MAX_CHUNK_SIZE, max((int) ($phpMemoryLimit / 10), 100 * 1024)); - } else { - // memory is unlimited, set to the default 10MB - $this->streamChunkSize = static::DEFAULT_CHUNK_SIZE; - } - } else { - // no memory limit information, set to the default 10MB - $this->streamChunkSize = static::DEFAULT_CHUNK_SIZE; - } - - if (\is_resource($stream)) { - $this->stream = $stream; - - stream_set_chunk_size($this->stream, $this->streamChunkSize); - } elseif (\is_string($stream)) { - $this->url = Utils::canonicalizePath($stream); - } else { - throw new \InvalidArgumentException('A stream must either be a resource or a string.'); - } - - $this->fileOpenMode = $fileOpenMode; - $this->filePermission = $filePermission; - $this->useLocking = $useLocking; - } - - /** - * @inheritDoc - */ - public function reset(): void - { - parent::reset(); - - // auto-close on reset to make sure we periodically close the file in long running processes - // as long as they correctly call reset() between jobs - if ($this->url !== null && $this->url !== 'php://memory') { - $this->close(); - } - } - - /** - * @inheritDoc - */ - public function close(): void - { - if (null !== $this->url && \is_resource($this->stream)) { - fclose($this->stream); - } - $this->stream = null; - $this->dirCreated = null; - } - - /** - * Return the currently active stream if it is open - * - * @return resource|null - */ - public function getStream() - { - return $this->stream; - } - - /** - * Return the stream URL if it was configured with a URL and not an active resource - */ - public function getUrl(): ?string - { - return $this->url; - } - - public function getStreamChunkSize(): int - { - return $this->streamChunkSize; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - if (!\is_resource($this->stream)) { - $url = $this->url; - if (null === $url || '' === $url) { - throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().' . Utils::getRecordMessageForException($record)); - } - $this->createDir($url); - $this->errorMessage = null; - set_error_handler($this->customErrorHandler(...)); - - try { - $stream = fopen($url, $this->fileOpenMode); - if ($this->filePermission !== null) { - @chmod($url, $this->filePermission); - } - } finally { - restore_error_handler(); - } - if (!\is_resource($stream)) { - $this->stream = null; - - throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $url) . Utils::getRecordMessageForException($record)); - } - stream_set_chunk_size($stream, $this->streamChunkSize); - $this->stream = $stream; - } - - $stream = $this->stream; - if ($this->useLocking) { - // ignoring errors here, there's not much we can do about them - flock($stream, LOCK_EX); - } - - $this->errorMessage = null; - set_error_handler($this->customErrorHandler(...)); - try { - $this->streamWrite($stream, $record); - } finally { - restore_error_handler(); - } - if ($this->errorMessage !== null) { - $error = $this->errorMessage; - // close the resource if possible to reopen it, and retry the failed write - if (!$this->retrying && $this->url !== null && $this->url !== 'php://memory') { - $this->retrying = true; - $this->close(); - $this->write($record); - - return; - } - - throw new \UnexpectedValueException('Writing to the log file failed: '.$error . Utils::getRecordMessageForException($record)); - } - - $this->retrying = false; - if ($this->useLocking) { - flock($stream, LOCK_UN); - } - } - - /** - * Write to stream - * @param resource $stream - */ - protected function streamWrite($stream, LogRecord $record): void - { - fwrite($stream, (string) $record->formatted); - } - - private function customErrorHandler(int $code, string $msg): bool - { - $this->errorMessage = preg_replace('{^(fopen|mkdir|fwrite)\(.*?\): }', '', $msg); - - return true; - } - - private function getDirFromStream(string $stream): ?string - { - $pos = strpos($stream, '://'); - if ($pos === false) { - return \dirname($stream); - } - - if ('file://' === substr($stream, 0, 7)) { - return \dirname(substr($stream, 7)); - } - - return null; - } - - private function createDir(string $url): void - { - // Do not try to create dir if it has already been tried. - if (true === $this->dirCreated) { - return; - } - - $dir = $this->getDirFromStream($url); - if (null !== $dir && !is_dir($dir)) { - $this->errorMessage = null; - set_error_handler(function (...$args) { - return $this->customErrorHandler(...$args); - }); - $status = mkdir($dir, 0777, true); - restore_error_handler(); - if (false === $status && !is_dir($dir) && strpos((string) $this->errorMessage, 'File exists') === false) { - throw new \UnexpectedValueException(sprintf('There is no existing directory at "%s" and it could not be created: '.$this->errorMessage, $dir)); - } - } - $this->dirCreated = true; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php deleted file mode 100644 index 33aa4fd..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Closure; -use Monolog\Level; -use Monolog\LogRecord; -use Monolog\Utils; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; -use Symfony\Component\Mailer\MailerInterface; -use Symfony\Component\Mailer\Transport\TransportInterface; -use Symfony\Component\Mime\Email; - -/** - * SymfonyMailerHandler uses Symfony's Mailer component to send the emails - * - * @author Jordi Boggiano - */ -class SymfonyMailerHandler extends MailHandler -{ - protected MailerInterface|TransportInterface $mailer; - /** @var Email|Closure(string, LogRecord[]): Email */ - private Email|Closure $emailTemplate; - - /** - * @phpstan-param Email|Closure(string, LogRecord[]): Email $email - * - * @param MailerInterface|TransportInterface $mailer The mailer to use - * @param Closure|Email $email An email template, the subject/body will be replaced - */ - public function __construct($mailer, Email|Closure $email, int|string|Level $level = Level::Error, bool $bubble = true) - { - parent::__construct($level, $bubble); - - $this->mailer = $mailer; - $this->emailTemplate = $email; - } - - /** - * {@inheritDoc} - */ - protected function send(string $content, array $records): void - { - $this->mailer->send($this->buildMessage($content, $records)); - } - - /** - * Gets the formatter for the Swift_Message subject. - * - * @param string|null $format The format of the subject - */ - protected function getSubjectFormatter(?string $format): FormatterInterface - { - return new LineFormatter($format); - } - - /** - * Creates instance of Email to be sent - * - * @param string $content formatted email body to be sent - * @param LogRecord[] $records Log records that formed the content - */ - protected function buildMessage(string $content, array $records): Email - { - $message = null; - if ($this->emailTemplate instanceof Email) { - $message = clone $this->emailTemplate; - } elseif (\is_callable($this->emailTemplate)) { - $message = ($this->emailTemplate)($content, $records); - } - - if (!$message instanceof Email) { - $record = reset($records); - - throw new \InvalidArgumentException('Could not resolve message as instance of Email or a callable returning it' . ($record instanceof LogRecord ? Utils::getRecordMessageForException($record) : '')); - } - - if (\count($records) > 0) { - $subjectFormatter = $this->getSubjectFormatter($message->getSubject()); - $message->subject($subjectFormatter->format($this->getHighestRecord($records))); - } - - if ($this->isHtmlBody($content)) { - if (null !== ($charset = $message->getHtmlCharset())) { - $message->html($content, $charset); - } else { - $message->html($content); - } - } else { - if (null !== ($charset = $message->getTextCharset())) { - $message->text($content, $charset); - } else { - $message->text($content); - } - } - - return $message->date(new \DateTimeImmutable()); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php deleted file mode 100644 index f3d7674..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Logs to syslog service. - * - * usage example: - * - * $log = new Logger('application'); - * $syslog = new SyslogHandler('myfacility', 'local6'); - * $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); - * $syslog->setFormatter($formatter); - * $log->pushHandler($syslog); - * - * @author Sven Paulus - */ -class SyslogHandler extends AbstractSyslogHandler -{ - protected string $ident; - protected int $logopts; - - /** - * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant - * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID - */ - public function __construct(string $ident, string|int $facility = LOG_USER, int|string|Level $level = Level::Debug, bool $bubble = true, int $logopts = LOG_PID) - { - parent::__construct($facility, $level, $bubble); - - $this->ident = $ident; - $this->logopts = $logopts; - } - - /** - * @inheritDoc - */ - public function close(): void - { - closelog(); - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - openlog($this->ident, $this->logopts, $this->facility); - syslog($this->toSyslogPriority($record->level), (string) $record->formatted); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php deleted file mode 100644 index 3ff0bce..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\SyslogUdp; - -use Monolog\Utils; -use Socket; - -class UdpSocket -{ - protected const DATAGRAM_MAX_LENGTH = 65023; - - protected string $ip; - protected int $port; - protected ?Socket $socket = null; - - public function __construct(string $ip, int $port = 514) - { - $this->ip = $ip; - $this->port = $port; - } - - public function write(string $line, string $header = ""): void - { - $this->send($this->assembleMessage($line, $header)); - } - - public function close(): void - { - if ($this->socket instanceof Socket) { - socket_close($this->socket); - $this->socket = null; - } - } - - protected function getSocket(): Socket - { - if (null !== $this->socket) { - return $this->socket; - } - - $domain = AF_INET; - $protocol = SOL_UDP; - // Check if we are using unix sockets. - if ($this->port === 0) { - $domain = AF_UNIX; - $protocol = IPPROTO_IP; - } - - $socket = socket_create($domain, SOCK_DGRAM, $protocol); - if ($socket instanceof Socket) { - return $this->socket = $socket; - } - - throw new \RuntimeException('The UdpSocket to '.$this->ip.':'.$this->port.' could not be opened via socket_create'); - } - - protected function send(string $chunk): void - { - socket_sendto($this->getSocket(), $chunk, \strlen($chunk), $flags = 0, $this->ip, $this->port); - } - - protected function assembleMessage(string $line, string $header): string - { - $chunkSize = static::DATAGRAM_MAX_LENGTH - \strlen($header); - - return $header . Utils::substr($line, 0, $chunkSize); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php deleted file mode 100644 index b5e4674..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use DateTimeInterface; -use Monolog\Handler\SyslogUdp\UdpSocket; -use Monolog\Level; -use Monolog\LogRecord; -use Monolog\Utils; - -/** - * A Handler for logging to a remote syslogd server. - * - * @author Jesper Skovgaard Nielsen - * @author Dominik Kukacka - */ -class SyslogUdpHandler extends AbstractSyslogHandler -{ - const RFC3164 = 0; - const RFC5424 = 1; - const RFC5424e = 2; - - /** @var array */ - private array $dateFormats = [ - self::RFC3164 => 'M d H:i:s', - self::RFC5424 => \DateTime::RFC3339, - self::RFC5424e => \DateTime::RFC3339_EXTENDED, - ]; - - protected UdpSocket $socket; - protected string $ident; - /** @var self::RFC* */ - protected int $rfc; - - /** - * @param string $host Either IP/hostname or a path to a unix socket (port must be 0 then) - * @param int $port Port number, or 0 if $host is a unix socket - * @param string|int $facility Either one of the names of the keys in $this->facilities, or a LOG_* facility constant - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param string $ident Program name or tag for each log message. - * @param int $rfc RFC to format the message for. - * @throws MissingExtensionException when there is no socket extension - * - * @phpstan-param self::RFC* $rfc - */ - public function __construct(string $host, int $port = 514, string|int $facility = LOG_USER, int|string|Level $level = Level::Debug, bool $bubble = true, string $ident = 'php', int $rfc = self::RFC5424) - { - if (!\extension_loaded('sockets')) { - throw new MissingExtensionException('The sockets extension is required to use the SyslogUdpHandler'); - } - - parent::__construct($facility, $level, $bubble); - - $this->ident = $ident; - $this->rfc = $rfc; - - $this->socket = new UdpSocket($host, $port); - } - - protected function write(LogRecord $record): void - { - $lines = $this->splitMessageIntoLines($record->formatted); - - $header = $this->makeCommonSyslogHeader($this->toSyslogPriority($record->level), $record->datetime); - - foreach ($lines as $line) { - $this->socket->write($line, $header); - } - } - - public function close(): void - { - $this->socket->close(); - } - - /** - * @param string|string[] $message - * @return string[] - */ - private function splitMessageIntoLines($message): array - { - if (\is_array($message)) { - $message = implode("\n", $message); - } - - $lines = preg_split('/$\R?^/m', (string) $message, -1, PREG_SPLIT_NO_EMPTY); - if (false === $lines) { - $pcreErrorCode = preg_last_error(); - - throw new \RuntimeException('Could not preg_split: ' . $pcreErrorCode . ' / ' . preg_last_error_msg()); - } - - return $lines; - } - - /** - * Make common syslog header (see rfc5424 or rfc3164) - */ - protected function makeCommonSyslogHeader(int $severity, DateTimeInterface $datetime): string - { - $priority = $severity + $this->facility; - - $pid = getmypid(); - if (false === $pid) { - $pid = '-'; - } - - $hostname = gethostname(); - if (false === $hostname) { - $hostname = '-'; - } - - if ($this->rfc === self::RFC3164) { - // see https://github.com/phpstan/phpstan/issues/5348 - // @phpstan-ignore-next-line - $dateNew = $datetime->setTimezone(new \DateTimeZone('UTC')); - $date = $dateNew->format($this->dateFormats[$this->rfc]); - - return "<$priority>" . - $date . " " . - $hostname . " " . - $this->ident . "[" . $pid . "]: "; - } - - $date = $datetime->format($this->dateFormats[$this->rfc]); - - return "<$priority>1 " . - $date . " " . - $hostname . " " . - $this->ident . " " . - $pid . " - - "; - } - - /** - * Inject your own socket, mainly used for testing - * - * @return $this - */ - public function setSocket(UdpSocket $socket): self - { - $this->socket = $socket; - - return $this; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php deleted file mode 100644 index dcca5d6..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php +++ /dev/null @@ -1,297 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use RuntimeException; -use Monolog\Level; -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Handler sends logs to Telegram using Telegram Bot API. - * - * How to use: - * 1) Create a Telegram bot with https://telegram.me/BotFather; - * 2) Create a Telegram channel or a group where logs will be recorded; - * 3) Add the created bot from step 1 to the created channel/group from step 2. - * - * In order to create an instance of TelegramBotHandler use - * 1. The Telegram bot API key from step 1 - * 2. The channel name with the `@` prefix if you created a public channel (e.g. `@my_public_channel`), - * or the channel ID with the `-100` prefix if you created a private channel (e.g. `-1001234567890`), - * or the group ID from step 2 (e.g. `-1234567890`). - * - * @link https://core.telegram.org/bots/api - * - * @author Mazur Alexandr - */ -class TelegramBotHandler extends AbstractProcessingHandler -{ - private const BOT_API = 'https://api.telegram.org/bot'; - - /** - * The available values of parseMode according to the Telegram api documentation - */ - private const AVAILABLE_PARSE_MODES = [ - 'HTML', - 'MarkdownV2', - 'Markdown', // legacy mode without underline and strikethrough, use MarkdownV2 instead - ]; - - /** - * The maximum number of characters allowed in a message according to the Telegram api documentation - */ - private const MAX_MESSAGE_LENGTH = 4096; - - /** - * Telegram bot access token provided by BotFather. - * Create telegram bot with https://telegram.me/BotFather and use access token from it. - */ - private string $apiKey; - - /** - * Telegram channel name. - * Since to start with '@' symbol as prefix. - */ - private string $channel; - - /** - * The kind of formatting that is used for the message. - * See available options at https://core.telegram.org/bots/api#formatting-options - * or in AVAILABLE_PARSE_MODES - */ - private string|null $parseMode; - - /** - * Disables link previews for links in the message. - */ - private bool|null $disableWebPagePreview; - - /** - * Sends the message silently. Users will receive a notification with no sound. - */ - private bool|null $disableNotification; - - /** - * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. - * False - truncates a message that is too long. - */ - private bool $splitLongMessages; - - /** - * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). - */ - private bool $delayBetweenMessages; - - /** - * Telegram message thread id, unique identifier for the target message thread (topic) of the forum; for forum supergroups only - * See how to get the `message_thread_id` https://stackoverflow.com/a/75178418 - */ - private int|null $topic; - - /** - * @param string $apiKey Telegram bot access token provided by BotFather - * @param string $channel Telegram channel name - * @param bool $splitLongMessages Split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages - * @param bool $delayBetweenMessages Adds delay between sending a split message according to Telegram API - * @param int $topic Telegram message thread id, unique identifier for the target message thread (topic) of the forum - * @throws MissingExtensionException If the curl extension is missing - */ - public function __construct( - string $apiKey, - string $channel, - $level = Level::Debug, - bool $bubble = true, - ?string $parseMode = null, - ?bool $disableWebPagePreview = null, - ?bool $disableNotification = null, - bool $splitLongMessages = false, - bool $delayBetweenMessages = false, - ?int $topic = null - ) { - if (!\extension_loaded('curl')) { - throw new MissingExtensionException('The curl extension is needed to use the TelegramBotHandler'); - } - - parent::__construct($level, $bubble); - - $this->apiKey = $apiKey; - $this->channel = $channel; - $this->setParseMode($parseMode); - $this->disableWebPagePreview($disableWebPagePreview); - $this->disableNotification($disableNotification); - $this->splitLongMessages($splitLongMessages); - $this->delayBetweenMessages($delayBetweenMessages); - $this->setTopic($topic); - } - - /** - * @return $this - */ - public function setParseMode(string|null $parseMode = null): self - { - if ($parseMode !== null && !\in_array($parseMode, self::AVAILABLE_PARSE_MODES, true)) { - throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.'); - } - - $this->parseMode = $parseMode; - - return $this; - } - - /** - * @return $this - */ - public function disableWebPagePreview(bool|null $disableWebPagePreview = null): self - { - $this->disableWebPagePreview = $disableWebPagePreview; - - return $this; - } - - /** - * @return $this - */ - public function disableNotification(bool|null $disableNotification = null): self - { - $this->disableNotification = $disableNotification; - - return $this; - } - - /** - * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. - * False - truncates a message that is too long. - * - * @return $this - */ - public function splitLongMessages(bool $splitLongMessages = false): self - { - $this->splitLongMessages = $splitLongMessages; - - return $this; - } - - /** - * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). - * - * @return $this - */ - public function delayBetweenMessages(bool $delayBetweenMessages = false): self - { - $this->delayBetweenMessages = $delayBetweenMessages; - - return $this; - } - - /** - * @return $this - */ - public function setTopic(?int $topic = null): self - { - $this->topic = $topic; - - return $this; - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - $messages = []; - - foreach ($records as $record) { - if (!$this->isHandling($record)) { - continue; - } - - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - $messages[] = $record; - } - - if (\count($messages) > 0) { - $this->send((string) $this->getFormatter()->formatBatch($messages)); - } - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->send($record->formatted); - } - - /** - * Send request to @link https://api.telegram.org/bot on SendMessage action. - */ - protected function send(string $message): void - { - $messages = $this->handleMessageLength($message); - - foreach ($messages as $key => $msg) { - if ($this->delayBetweenMessages && $key > 0) { - sleep(1); - } - - $this->sendCurl($msg); - } - } - - protected function sendCurl(string $message): void - { - $ch = curl_init(); - $url = self::BOT_API . $this->apiKey . '/SendMessage'; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); - $params = [ - 'text' => $message, - 'chat_id' => $this->channel, - 'parse_mode' => $this->parseMode, - 'disable_web_page_preview' => $this->disableWebPagePreview, - 'disable_notification' => $this->disableNotification, - ]; - if ($this->topic !== null) { - $params['message_thread_id'] = $this->topic; - } - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); - - $result = Curl\Util::execute($ch); - if (!\is_string($result)) { - throw new RuntimeException('Telegram API error. Description: No response'); - } - $result = json_decode($result, true); - - if ($result['ok'] === false) { - throw new RuntimeException('Telegram API error. Description: ' . $result['description']); - } - } - - /** - * Handle a message that is too long: truncates or splits into several - * @return string[] - */ - private function handleMessageLength(string $message): array - { - $truncatedMarker = ' (...truncated)'; - if (!$this->splitLongMessages && \strlen($message) > self::MAX_MESSAGE_LENGTH) { - return [Utils::substr($message, 0, self::MAX_MESSAGE_LENGTH - \strlen($truncatedMarker)) . $truncatedMarker]; - } - - return str_split($message, self::MAX_MESSAGE_LENGTH); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php deleted file mode 100644 index eb5fb44..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php +++ /dev/null @@ -1,195 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Used for testing purposes. - * - * It records all records and gives you access to them for verification. - * - * @author Jordi Boggiano - * - * @method bool hasEmergency(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasAlert(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasCritical(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasError(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasWarning(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasNotice(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasInfo(array{message: string, context?: mixed[]}|string $recordAssertions) - * @method bool hasDebug(array{message: string, context?: mixed[]}|string $recordAssertions) - * - * @method bool hasEmergencyRecords() - * @method bool hasAlertRecords() - * @method bool hasCriticalRecords() - * @method bool hasErrorRecords() - * @method bool hasWarningRecords() - * @method bool hasNoticeRecords() - * @method bool hasInfoRecords() - * @method bool hasDebugRecords() - * - * @method bool hasEmergencyThatContains(string $message) - * @method bool hasAlertThatContains(string $message) - * @method bool hasCriticalThatContains(string $message) - * @method bool hasErrorThatContains(string $message) - * @method bool hasWarningThatContains(string $message) - * @method bool hasNoticeThatContains(string $message) - * @method bool hasInfoThatContains(string $message) - * @method bool hasDebugThatContains(string $message) - * - * @method bool hasEmergencyThatMatches(string $regex) - * @method bool hasAlertThatMatches(string $regex) - * @method bool hasCriticalThatMatches(string $regex) - * @method bool hasErrorThatMatches(string $regex) - * @method bool hasWarningThatMatches(string $regex) - * @method bool hasNoticeThatMatches(string $regex) - * @method bool hasInfoThatMatches(string $regex) - * @method bool hasDebugThatMatches(string $regex) - * - * @method bool hasEmergencyThatPasses(callable $predicate) - * @method bool hasAlertThatPasses(callable $predicate) - * @method bool hasCriticalThatPasses(callable $predicate) - * @method bool hasErrorThatPasses(callable $predicate) - * @method bool hasWarningThatPasses(callable $predicate) - * @method bool hasNoticeThatPasses(callable $predicate) - * @method bool hasInfoThatPasses(callable $predicate) - * @method bool hasDebugThatPasses(callable $predicate) - */ -class TestHandler extends AbstractProcessingHandler -{ - /** @var LogRecord[] */ - protected array $records = []; - /** @phpstan-var array, LogRecord[]> */ - protected array $recordsByLevel = []; - private bool $skipReset = false; - - /** - * @return array - */ - public function getRecords(): array - { - return $this->records; - } - - public function clear(): void - { - $this->records = []; - $this->recordsByLevel = []; - } - - public function reset(): void - { - if (!$this->skipReset) { - $this->clear(); - } - } - - public function setSkipReset(bool $skipReset): void - { - $this->skipReset = $skipReset; - } - - /** - * @param int|string|Level|LogLevel::* $level Logging level value or name - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function hasRecords(int|string|Level $level): bool - { - return isset($this->recordsByLevel[Logger::toMonologLevel($level)->value]); - } - - /** - * @param string|array $recordAssertions Either a message string or an array containing message and optionally context keys that will be checked against all records - * - * @phpstan-param array{message: string, context?: mixed[]}|string $recordAssertions - */ - public function hasRecord(string|array $recordAssertions, Level $level): bool - { - if (\is_string($recordAssertions)) { - $recordAssertions = ['message' => $recordAssertions]; - } - - return $this->hasRecordThatPasses(function (LogRecord $rec) use ($recordAssertions) { - if ($rec->message !== $recordAssertions['message']) { - return false; - } - if (isset($recordAssertions['context']) && $rec->context !== $recordAssertions['context']) { - return false; - } - - return true; - }, $level); - } - - public function hasRecordThatContains(string $message, Level $level): bool - { - return $this->hasRecordThatPasses(fn (LogRecord $rec) => str_contains($rec->message, $message), $level); - } - - public function hasRecordThatMatches(string $regex, Level $level): bool - { - return $this->hasRecordThatPasses(fn (LogRecord $rec) => preg_match($regex, $rec->message) > 0, $level); - } - - /** - * @phpstan-param callable(LogRecord, int): mixed $predicate - */ - public function hasRecordThatPasses(callable $predicate, Level $level): bool - { - $level = Logger::toMonologLevel($level); - - if (!isset($this->recordsByLevel[$level->value])) { - return false; - } - - foreach ($this->recordsByLevel[$level->value] as $i => $rec) { - if ((bool) $predicate($rec, $i)) { - return true; - } - } - - return false; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->recordsByLevel[$record->level->value][] = $record; - $this->records[] = $record; - } - - /** - * @param mixed[] $args - */ - public function __call(string $method, array $args): bool - { - if ((bool) preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches)) { - $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3]; - $level = \constant(Level::class.'::' . $matches[2]); - $callback = [$this, $genericMethod]; - if (\is_callable($callback)) { - $args[] = $level; - - return \call_user_func_array($callback, $args); - } - } - - throw new \BadMethodCallException('Call to undefined method ' . \get_class($this) . '::' . $method . '()'); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php deleted file mode 100644 index 9c12c3d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -trait WebRequestRecognizerTrait -{ - /** - * Checks if PHP's serving a web request - */ - protected function isWebRequest(): bool - { - return 'cli' !== \PHP_SAPI && 'phpdbg' !== \PHP_SAPI; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php deleted file mode 100644 index 932fa70..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\LogRecord; -use Throwable; - -/** - * Forwards records to multiple handlers suppressing failures of each handler - * and continuing through to give every handler a chance to succeed. - * - * @author Craig D'Amelio - */ -class WhatFailureGroupHandler extends GroupHandler -{ - /** - * @inheritDoc - */ - public function handle(LogRecord $record): bool - { - if (\count($this->processors) > 0) { - $record = $this->processRecord($record); - } - - foreach ($this->handlers as $handler) { - try { - $handler->handle(clone $record); - } catch (Throwable) { - // What failure? - } - } - - return false === $this->bubble; - } - - /** - * @inheritDoc - */ - public function handleBatch(array $records): void - { - if (\count($this->processors) > 0) { - $processed = []; - foreach ($records as $record) { - $processed[] = $this->processRecord($record); - } - $records = $processed; - } - - foreach ($this->handlers as $handler) { - try { - $handler->handleBatch(array_map(fn ($record) => clone $record, $records)); - } catch (Throwable) { - // What failure? - } - } - } - - /** - * {@inheritDoc} - */ - public function close(): void - { - foreach ($this->handlers as $handler) { - try { - $handler->close(); - } catch (\Throwable $e) { - // What failure? - } - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php deleted file mode 100644 index 8841f2f..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Level; -use Monolog\LogRecord; - -/** - * Handler sending logs to Zend Monitor - * - * @author Christian Bergau - * @author Jason Davis - */ -class ZendMonitorHandler extends AbstractProcessingHandler -{ - /** - * @throws MissingExtensionException - */ - public function __construct(int|string|Level $level = Level::Debug, bool $bubble = true) - { - if (!\function_exists('zend_monitor_custom_event')) { - throw new MissingExtensionException( - 'You must have Zend Server installed with Zend Monitor enabled in order to use this handler' - ); - } - - parent::__construct($level, $bubble); - } - - /** - * Translates Monolog log levels to ZendMonitor levels. - */ - protected function toZendMonitorLevel(Level $level): int - { - return match ($level) { - Level::Debug => \ZEND_MONITOR_EVENT_SEVERITY_INFO, - Level::Info => \ZEND_MONITOR_EVENT_SEVERITY_INFO, - Level::Notice => \ZEND_MONITOR_EVENT_SEVERITY_INFO, - Level::Warning => \ZEND_MONITOR_EVENT_SEVERITY_WARNING, - Level::Error => \ZEND_MONITOR_EVENT_SEVERITY_ERROR, - Level::Critical => \ZEND_MONITOR_EVENT_SEVERITY_ERROR, - Level::Alert => \ZEND_MONITOR_EVENT_SEVERITY_ERROR, - Level::Emergency => \ZEND_MONITOR_EVENT_SEVERITY_ERROR, - }; - } - - /** - * @inheritDoc - */ - protected function write(LogRecord $record): void - { - $this->writeZendMonitorCustomEvent( - $record->level->getName(), - $record->message, - $record->formatted, - $this->toZendMonitorLevel($record->level) - ); - } - - /** - * Write to Zend Monitor Events - * @param string $type Text displayed in "Class Name (custom)" field - * @param string $message Text displayed in "Error String" - * @param array $formatted Displayed in Custom Variables tab - * @param int $severity Set the event severity level (-1,0,1) - */ - protected function writeZendMonitorCustomEvent(string $type, string $message, array $formatted, int $severity): void - { - zend_monitor_custom_event($type, $message, $formatted, $severity); - } - - /** - * @inheritDoc - */ - public function getDefaultFormatter(): FormatterInterface - { - return new NormalizerFormatter(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/JsonSerializableDateTimeImmutable.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/JsonSerializableDateTimeImmutable.php deleted file mode 100644 index de2cc5e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/JsonSerializableDateTimeImmutable.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use DateTimeZone; - -/** - * Overrides default json encoding of date time objects - * - * @author Menno Holtkamp - * @author Jordi Boggiano - */ -class JsonSerializableDateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable -{ - private bool $useMicroseconds; - - public function __construct(bool $useMicroseconds, ?DateTimeZone $timezone = null) - { - $this->useMicroseconds = $useMicroseconds; - - // if you like to use a custom time to pass to Logger::addRecord directly, - // call modify() or setTimestamp() on this instance to change the date after creating it - parent::__construct('now', $timezone); - } - - public function jsonSerialize(): string - { - if ($this->useMicroseconds) { - return $this->format('Y-m-d\TH:i:s.uP'); - } - - return $this->format('Y-m-d\TH:i:sP'); - } - - public function __toString(): string - { - return $this->jsonSerialize(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Level.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Level.php deleted file mode 100644 index 38a74fb..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Level.php +++ /dev/null @@ -1,209 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Psr\Log\LogLevel; - -/** - * Represents the log levels - * - * Monolog supports the logging levels described by RFC 5424 {@see https://datatracker.ietf.org/doc/html/rfc5424} - * but due to BC the severity values used internally are not 0-7. - * - * To get the level name/value out of a Level there are several options: - * - * - Use ->getName() to get the standard Monolog name which is full uppercased (e.g. "DEBUG") - * - Use ->toPsrLogLevel() to get the standard PSR-3 name which is full lowercased (e.g. "debug") - * - Use ->toRFC5424Level() to get the standard RFC 5424 value (e.g. 7 for debug, 0 for emergency) - * - Use ->name to get the enum case's name which is capitalized (e.g. "Debug") - * - * To get the internal value for filtering, if the includes/isLowerThan/isHigherThan methods are - * not enough, you can use ->value to get the enum case's integer value. - */ -enum Level: int -{ - /** - * Detailed debug information - */ - case Debug = 100; - - /** - * Interesting events - * - * Examples: User logs in, SQL logs. - */ - case Info = 200; - - /** - * Uncommon events - */ - case Notice = 250; - - /** - * Exceptional occurrences that are not errors - * - * Examples: Use of deprecated APIs, poor use of an API, - * undesirable things that are not necessarily wrong. - */ - case Warning = 300; - - /** - * Runtime errors - */ - case Error = 400; - - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - */ - case Critical = 500; - - /** - * Action must be taken immediately - * - * Example: Entire website down, database unavailable, etc. - * This should trigger the SMS alerts and wake you up. - */ - case Alert = 550; - - /** - * Urgent alert. - */ - case Emergency = 600; - - /** - * @param value-of|LogLevel::*|'Debug'|'Info'|'Notice'|'Warning'|'Error'|'Critical'|'Alert'|'Emergency' $name - * @return static - */ - public static function fromName(string $name): self - { - return match (strtolower($name)) { - 'debug' => self::Debug, - 'info' => self::Info, - 'notice' => self::Notice, - 'warning' => self::Warning, - 'error' => self::Error, - 'critical' => self::Critical, - 'alert' => self::Alert, - 'emergency' => self::Emergency, - }; - } - - /** - * @param value-of $value - * @return static - */ - public static function fromValue(int $value): self - { - return self::from($value); - } - - /** - * Returns true if the passed $level is higher or equal to $this - */ - public function includes(Level $level): bool - { - return $this->value <= $level->value; - } - - public function isHigherThan(Level $level): bool - { - return $this->value > $level->value; - } - - public function isLowerThan(Level $level): bool - { - return $this->value < $level->value; - } - - /** - * Returns the monolog standardized all-capitals name of the level - * - * Use this instead of $level->name which returns the enum case name (e.g. Debug vs DEBUG if you use getName()) - * - * @return value-of - */ - public function getName(): string - { - return match ($this) { - self::Debug => 'DEBUG', - self::Info => 'INFO', - self::Notice => 'NOTICE', - self::Warning => 'WARNING', - self::Error => 'ERROR', - self::Critical => 'CRITICAL', - self::Alert => 'ALERT', - self::Emergency => 'EMERGENCY', - }; - } - - /** - * Returns the PSR-3 level matching this instance - * - * @phpstan-return \Psr\Log\LogLevel::* - */ - public function toPsrLogLevel(): string - { - return match ($this) { - self::Debug => LogLevel::DEBUG, - self::Info => LogLevel::INFO, - self::Notice => LogLevel::NOTICE, - self::Warning => LogLevel::WARNING, - self::Error => LogLevel::ERROR, - self::Critical => LogLevel::CRITICAL, - self::Alert => LogLevel::ALERT, - self::Emergency => LogLevel::EMERGENCY, - }; - } - - /** - * Returns the RFC 5424 level matching this instance - * - * @phpstan-return int<0, 7> - */ - public function toRFC5424Level(): int - { - return match ($this) { - self::Debug => 7, - self::Info => 6, - self::Notice => 5, - self::Warning => 4, - self::Error => 3, - self::Critical => 2, - self::Alert => 1, - self::Emergency => 0, - }; - } - - public const VALUES = [ - 100, - 200, - 250, - 300, - 400, - 500, - 550, - 600, - ]; - - public const NAMES = [ - 'DEBUG', - 'INFO', - 'NOTICE', - 'WARNING', - 'ERROR', - 'CRITICAL', - 'ALERT', - 'EMERGENCY', - ]; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/LogRecord.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/LogRecord.php deleted file mode 100644 index 14c82f3..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/LogRecord.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use ArrayAccess; - -/** - * Monolog log record - * - * @author Jordi Boggiano - * @template-implements ArrayAccess<'message'|'level'|'context'|'level_name'|'channel'|'datetime'|'extra'|'formatted', int|string|\DateTimeImmutable|array> - */ -class LogRecord implements ArrayAccess -{ - private const MODIFIABLE_FIELDS = [ - 'extra' => true, - 'formatted' => true, - ]; - - public function __construct( - public readonly \DateTimeImmutable $datetime, - public readonly string $channel, - public readonly Level $level, - public readonly string $message, - /** @var array */ - public readonly array $context = [], - /** @var array */ - public array $extra = [], - public mixed $formatted = null, - ) { - } - - public function offsetSet(mixed $offset, mixed $value): void - { - if ($offset === 'extra') { - if (!\is_array($value)) { - throw new \InvalidArgumentException('extra must be an array'); - } - - $this->extra = $value; - - return; - } - - if ($offset === 'formatted') { - $this->formatted = $value; - - return; - } - - throw new \LogicException('Unsupported operation: setting '.$offset); - } - - public function offsetExists(mixed $offset): bool - { - if ($offset === 'level_name') { - return true; - } - - return isset($this->{$offset}); - } - - public function offsetUnset(mixed $offset): void - { - throw new \LogicException('Unsupported operation'); - } - - public function &offsetGet(mixed $offset): mixed - { - // handle special cases for the level enum - if ($offset === 'level_name') { - // avoid returning readonly props by ref as this is illegal - $copy = $this->level->getName(); - - return $copy; - } - if ($offset === 'level') { - // avoid returning readonly props by ref as this is illegal - $copy = $this->level->value; - - return $copy; - } - - if (isset(self::MODIFIABLE_FIELDS[$offset])) { - return $this->{$offset}; - } - - // avoid returning readonly props by ref as this is illegal - $copy = $this->{$offset}; - - return $copy; - } - - /** - * @phpstan-return array{message: string, context: mixed[], level: value-of, level_name: value-of, channel: string, datetime: \DateTimeImmutable, extra: mixed[]} - */ - public function toArray(): array - { - return [ - 'message' => $this->message, - 'context' => $this->context, - 'level' => $this->level->value, - 'level_name' => $this->level->getName(), - 'channel' => $this->channel, - 'datetime' => $this->datetime, - 'extra' => $this->extra, - ]; - } - - public function with(mixed ...$args): self - { - foreach (['message', 'context', 'level', 'channel', 'datetime', 'extra'] as $prop) { - $args[$prop] ??= $this->{$prop}; - } - - return new self(...$args); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Logger.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Logger.php deleted file mode 100644 index e545c44..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Logger.php +++ /dev/null @@ -1,751 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Closure; -use DateTimeZone; -use Fiber; -use Monolog\Handler\HandlerInterface; -use Monolog\Processor\ProcessorInterface; -use Psr\Log\LoggerInterface; -use Psr\Log\InvalidArgumentException; -use Psr\Log\LogLevel; -use Throwable; -use Stringable; -use WeakMap; - -/** - * Monolog log channel - * - * It contains a stack of Handlers and a stack of Processors, - * and uses them to store records that are added to it. - * - * @author Jordi Boggiano - * @final - */ -class Logger implements LoggerInterface, ResettableInterface -{ - /** - * Detailed debug information - * - * @deprecated Use \Monolog\Level::Debug - */ - public const DEBUG = 100; - - /** - * Interesting events - * - * Examples: User logs in, SQL logs. - * - * @deprecated Use \Monolog\Level::Info - */ - public const INFO = 200; - - /** - * Uncommon events - * - * @deprecated Use \Monolog\Level::Notice - */ - public const NOTICE = 250; - - /** - * Exceptional occurrences that are not errors - * - * Examples: Use of deprecated APIs, poor use of an API, - * undesirable things that are not necessarily wrong. - * - * @deprecated Use \Monolog\Level::Warning - */ - public const WARNING = 300; - - /** - * Runtime errors - * - * @deprecated Use \Monolog\Level::Error - */ - public const ERROR = 400; - - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - * - * @deprecated Use \Monolog\Level::Critical - */ - public const CRITICAL = 500; - - /** - * Action must be taken immediately - * - * Example: Entire website down, database unavailable, etc. - * This should trigger the SMS alerts and wake you up. - * - * @deprecated Use \Monolog\Level::Alert - */ - public const ALERT = 550; - - /** - * Urgent alert. - * - * @deprecated Use \Monolog\Level::Emergency - */ - public const EMERGENCY = 600; - - /** - * Monolog API version - * - * This is only bumped when API breaks are done and should - * follow the major version of the library - */ - public const API = 3; - - /** - * Mapping between levels numbers defined in RFC 5424 and Monolog ones - * - * @phpstan-var array $rfc_5424_levels - */ - private const RFC_5424_LEVELS = [ - 7 => Level::Debug, - 6 => Level::Info, - 5 => Level::Notice, - 4 => Level::Warning, - 3 => Level::Error, - 2 => Level::Critical, - 1 => Level::Alert, - 0 => Level::Emergency, - ]; - - protected string $name; - - /** - * The handler stack - * - * @var list - */ - protected array $handlers; - - /** - * Processors that will process all log records - * - * To process records of a single handler instead, add the processor on that specific handler - * - * @var array<(callable(LogRecord): LogRecord)|ProcessorInterface> - */ - protected array $processors; - - protected bool $microsecondTimestamps = true; - - protected DateTimeZone $timezone; - - protected Closure|null $exceptionHandler = null; - - /** - * Keeps track of depth to prevent infinite logging loops - */ - private int $logDepth = 0; - - /** - * @var WeakMap, int> Keeps track of depth inside fibers to prevent infinite logging loops - */ - private WeakMap $fiberLogDepth; - - /** - * Whether to detect infinite logging loops - * This can be disabled via {@see useLoggingLoopDetection} if you have async handlers that do not play well with this - */ - private bool $detectCycles = true; - - /** - * @param string $name The logging channel, a simple descriptive name that is attached to all log records - * @param list $handlers Optional stack of handlers, the first one in the array is called first, etc. - * @param callable[] $processors Optional array of processors - * @param DateTimeZone|null $timezone Optional timezone, if not provided date_default_timezone_get() will be used - * - * @phpstan-param array<(callable(LogRecord): LogRecord)|ProcessorInterface> $processors - */ - public function __construct(string $name, array $handlers = [], array $processors = [], DateTimeZone|null $timezone = null) - { - $this->name = $name; - $this->setHandlers($handlers); - $this->processors = $processors; - $this->timezone = $timezone ?? new DateTimeZone(date_default_timezone_get()); - $this->fiberLogDepth = new \WeakMap(); - } - - public function getName(): string - { - return $this->name; - } - - /** - * Return a new cloned instance with the name changed - * - * @return static - */ - public function withName(string $name): self - { - $new = clone $this; - $new->name = $name; - - return $new; - } - - /** - * Pushes a handler on to the stack. - * - * @return $this - */ - public function pushHandler(HandlerInterface $handler): self - { - array_unshift($this->handlers, $handler); - - return $this; - } - - /** - * Pops a handler from the stack - * - * @throws \LogicException If empty handler stack - */ - public function popHandler(): HandlerInterface - { - if (0 === \count($this->handlers)) { - throw new \LogicException('You tried to pop from an empty handler stack.'); - } - - return array_shift($this->handlers); - } - - /** - * Set handlers, replacing all existing ones. - * - * If a map is passed, keys will be ignored. - * - * @param list $handlers - * @return $this - */ - public function setHandlers(array $handlers): self - { - $this->handlers = []; - foreach (array_reverse($handlers) as $handler) { - $this->pushHandler($handler); - } - - return $this; - } - - /** - * @return list - */ - public function getHandlers(): array - { - return $this->handlers; - } - - /** - * Adds a processor on to the stack. - * - * @phpstan-param ProcessorInterface|(callable(LogRecord): LogRecord) $callback - * @return $this - */ - public function pushProcessor(ProcessorInterface|callable $callback): self - { - array_unshift($this->processors, $callback); - - return $this; - } - - /** - * Removes the processor on top of the stack and returns it. - * - * @phpstan-return ProcessorInterface|(callable(LogRecord): LogRecord) - * @throws \LogicException If empty processor stack - */ - public function popProcessor(): callable - { - if (0 === \count($this->processors)) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - /** - * @return callable[] - * @phpstan-return array - */ - public function getProcessors(): array - { - return $this->processors; - } - - /** - * Control the use of microsecond resolution timestamps in the 'datetime' - * member of new records. - * - * As of PHP7.1 microseconds are always included by the engine, so - * there is no performance penalty and Monolog 2 enabled microseconds - * by default. This function lets you disable them though in case you want - * to suppress microseconds from the output. - * - * @param bool $micro True to use microtime() to create timestamps - * @return $this - */ - public function useMicrosecondTimestamps(bool $micro): self - { - $this->microsecondTimestamps = $micro; - - return $this; - } - - /** - * @return $this - */ - public function useLoggingLoopDetection(bool $detectCycles): self - { - $this->detectCycles = $detectCycles; - - return $this; - } - - /** - * Adds a log record. - * - * @param int $level The logging level (a Monolog or RFC 5424 level) - * @param string $message The log message - * @param mixed[] $context The log context - * @param JsonSerializableDateTimeImmutable|null $datetime Optional log date to log into the past or future - * - * @return bool Whether the record has been processed - * - * @phpstan-param value-of|Level $level - */ - public function addRecord(int|Level $level, string $message, array $context = [], JsonSerializableDateTimeImmutable|null $datetime = null): bool - { - if (\is_int($level) && isset(self::RFC_5424_LEVELS[$level])) { - $level = self::RFC_5424_LEVELS[$level]; - } - - if ($this->detectCycles) { - if (null !== ($fiber = Fiber::getCurrent())) { - $logDepth = $this->fiberLogDepth[$fiber] = ($this->fiberLogDepth[$fiber] ?? 0) + 1; - } else { - $logDepth = ++$this->logDepth; - } - } else { - $logDepth = 0; - } - - if ($logDepth === 3) { - $this->warning('A possible infinite logging loop was detected and aborted. It appears some of your handler code is triggering logging, see the previous log record for a hint as to what may be the cause.'); - - return false; - } elseif ($logDepth >= 5) { // log depth 4 is let through, so we can log the warning above - return false; - } - - try { - $recordInitialized = \count($this->processors) === 0; - - $record = new LogRecord( - datetime: $datetime ?? new JsonSerializableDateTimeImmutable($this->microsecondTimestamps, $this->timezone), - channel: $this->name, - level: self::toMonologLevel($level), - message: $message, - context: $context, - extra: [], - ); - $handled = false; - - foreach ($this->handlers as $handler) { - if (false === $recordInitialized) { - // skip initializing the record as long as no handler is going to handle it - if (!$handler->isHandling($record)) { - continue; - } - - try { - foreach ($this->processors as $processor) { - $record = $processor($record); - } - $recordInitialized = true; - } catch (Throwable $e) { - $this->handleException($e, $record); - - return true; - } - } - - // once the record is initialized, send it to all handlers as long as the bubbling chain is not interrupted - try { - $handled = true; - if (true === $handler->handle(clone $record)) { - break; - } - } catch (Throwable $e) { - $this->handleException($e, $record); - - return true; - } - } - - return $handled; - } finally { - if ($this->detectCycles) { - if (isset($fiber)) { - $this->fiberLogDepth[$fiber]--; - } else { - $this->logDepth--; - } - } - } - } - - /** - * Ends a log cycle and frees all resources used by handlers. - * - * Closing a Handler means flushing all buffers and freeing any open resources/handles. - * Handlers that have been closed should be able to accept log records again and re-open - * themselves on demand, but this may not always be possible depending on implementation. - * - * This is useful at the end of a request and will be called automatically on every handler - * when they get destructed. - */ - public function close(): void - { - foreach ($this->handlers as $handler) { - $handler->close(); - } - } - - /** - * Ends a log cycle and resets all handlers and processors to their initial state. - * - * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal - * state, and getting it back to a state in which it can receive log records again. - * - * This is useful in case you want to avoid logs leaking between two requests or jobs when you - * have a long running process like a worker or an application server serving multiple requests - * in one process. - */ - public function reset(): void - { - foreach ($this->handlers as $handler) { - if ($handler instanceof ResettableInterface) { - $handler->reset(); - } - } - - foreach ($this->processors as $processor) { - if ($processor instanceof ResettableInterface) { - $processor->reset(); - } - } - } - - /** - * Gets the name of the logging level as a string. - * - * This still returns a string instead of a Level for BC, but new code should not rely on this method. - * - * @throws \Psr\Log\InvalidArgumentException If level is not defined - * - * @phpstan-param value-of|Level $level - * @phpstan-return value-of - * - * @deprecated Since 3.0, use {@see toMonologLevel} or {@see \Monolog\Level->getName()} instead - */ - public static function getLevelName(int|Level $level): string - { - return self::toMonologLevel($level)->getName(); - } - - /** - * Converts PSR-3 levels to Monolog ones if necessary - * - * @param int|string|Level|LogLevel::* $level Level number (monolog) or name (PSR-3) - * @throws \Psr\Log\InvalidArgumentException If level is not defined - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public static function toMonologLevel(string|int|Level $level): Level - { - if ($level instanceof Level) { - return $level; - } - - if (\is_string($level)) { - if (is_numeric($level)) { - $levelEnum = Level::tryFrom((int) $level); - if ($levelEnum === null) { - throw new InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', Level::NAMES + Level::VALUES)); - } - - return $levelEnum; - } - - // Contains first char of all log levels and avoids using strtoupper() which may have - // strange results depending on locale (for example, "i" will become "İ" in Turkish locale) - $upper = strtr(substr($level, 0, 1), 'dinweca', 'DINWECA') . strtolower(substr($level, 1)); - if (\defined(Level::class.'::'.$upper)) { - return \constant(Level::class . '::' . $upper); - } - - throw new InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', Level::NAMES + Level::VALUES)); - } - - $levelEnum = Level::tryFrom($level); - if ($levelEnum === null) { - throw new InvalidArgumentException('Level "'.var_export($level, true).'" is not defined, use one of: '.implode(', ', Level::NAMES + Level::VALUES)); - } - - return $levelEnum; - } - - /** - * Checks whether the Logger has a handler that listens on the given level - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function isHandling(int|string|Level $level): bool - { - $record = new LogRecord( - datetime: new JsonSerializableDateTimeImmutable($this->microsecondTimestamps, $this->timezone), - channel: $this->name, - message: '', - level: self::toMonologLevel($level), - ); - - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * Set a custom exception handler that will be called if adding a new record fails - * - * The Closure will receive an exception object and the record that failed to be logged - * - * @return $this - */ - public function setExceptionHandler(Closure|null $callback): self - { - $this->exceptionHandler = $callback; - - return $this; - } - - public function getExceptionHandler(): Closure|null - { - return $this->exceptionHandler; - } - - /** - * Adds a log record at an arbitrary level. - * - * This method allows for compatibility with common interfaces. - * - * @param mixed $level The log level (a Monolog, PSR-3 or RFC 5424 level) - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - * - * @phpstan-param Level|LogLevel::* $level - */ - public function log($level, string|\Stringable $message, array $context = []): void - { - if (!$level instanceof Level) { - if (!\is_string($level) && !\is_int($level)) { - throw new \InvalidArgumentException('$level is expected to be a string, int or '.Level::class.' instance'); - } - - if (isset(self::RFC_5424_LEVELS[$level])) { - $level = self::RFC_5424_LEVELS[$level]; - } - - $level = static::toMonologLevel($level); - } - - $this->addRecord($level, (string) $message, $context); - } - - /** - * Adds a log record at the DEBUG level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function debug(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Debug, (string) $message, $context); - } - - /** - * Adds a log record at the INFO level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function info(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Info, (string) $message, $context); - } - - /** - * Adds a log record at the NOTICE level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function notice(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Notice, (string) $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function warning(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Warning, (string) $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function error(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Error, (string) $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function critical(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Critical, (string) $message, $context); - } - - /** - * Adds a log record at the ALERT level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function alert(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Alert, (string) $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string|Stringable $message The log message - * @param mixed[] $context The log context - */ - public function emergency(string|\Stringable $message, array $context = []): void - { - $this->addRecord(Level::Emergency, (string) $message, $context); - } - - /** - * Sets the timezone to be used for the timestamp of log records. - * - * @return $this - */ - public function setTimezone(DateTimeZone $tz): self - { - $this->timezone = $tz; - - return $this; - } - - /** - * Returns the timezone to be used for the timestamp of log records. - */ - public function getTimezone(): DateTimeZone - { - return $this->timezone; - } - - /** - * Delegates exception management to the custom exception handler, - * or throws the exception if no custom handler is set. - */ - protected function handleException(Throwable $e, LogRecord $record): void - { - if (null === $this->exceptionHandler) { - throw $e; - } - - ($this->exceptionHandler)($e, $record); - } - - /** - * @return array - */ - public function __serialize(): array - { - return [ - 'name' => $this->name, - 'handlers' => $this->handlers, - 'processors' => $this->processors, - 'microsecondTimestamps' => $this->microsecondTimestamps, - 'timezone' => $this->timezone, - 'exceptionHandler' => $this->exceptionHandler, - 'logDepth' => $this->logDepth, - 'detectCycles' => $this->detectCycles, - ]; - } - - /** - * @param array $data - */ - public function __unserialize(array $data): void - { - foreach (['name', 'handlers', 'processors', 'microsecondTimestamps', 'timezone', 'exceptionHandler', 'logDepth', 'detectCycles'] as $property) { - if (isset($data[$property])) { - $this->$property = $data[$property]; - } - } - - $this->fiberLogDepth = new \WeakMap(); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ClosureContextProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ClosureContextProcessor.php deleted file mode 100644 index 514b354..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ClosureContextProcessor.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Generates a context from a Closure if the Closure is the only value - * in the context - * - * It helps reduce the performance impact of debug logs if they do - * need to create lots of context information. If this processor is added - * on the correct handler the context data will only be generated - * when the logs are actually logged to that handler, which is useful when - * using FingersCrossedHandler or other filtering handlers to conditionally - * log records. - */ -class ClosureContextProcessor implements ProcessorInterface -{ - public function __invoke(LogRecord $record): LogRecord - { - $context = $record->context; - if (isset($context[0]) && 1 === \count($context) && $context[0] instanceof \Closure) { - try { - $context = $context[0](); - } catch (\Throwable $e) { - $context = [ - 'error_on_context_generation' => $e->getMessage(), - 'exception' => $e, - ]; - } - - if (!\is_array($context)) { - $context = [$context]; - } - - $record = $record->with(context: $context); - } - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php deleted file mode 100644 index 6b25505..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Injects Git branch and Git commit SHA in all records - * - * @author Nick Otter - * @author Jordi Boggiano - */ -class GitProcessor implements ProcessorInterface -{ - private Level $level; - /** @var array{branch: string, commit: string}|array|null */ - private static $cache = null; - - /** - * @param int|string|Level|LogLevel::* $level The minimum logging level at which this Processor will be triggered - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function __construct(int|string|Level $level = Level::Debug) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - // return if the level is not high enough - if ($record->level->isLowerThan($this->level)) { - return $record; - } - - $record->extra['git'] = self::getGitInfo(); - - return $record; - } - - /** - * @return array{branch: string, commit: string}|array - */ - private static function getGitInfo(): array - { - if (self::$cache !== null) { - return self::$cache; - } - - $branches = shell_exec('git branch -v --no-abbrev'); - if (\is_string($branches) && 1 === preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) { - return self::$cache = [ - 'branch' => $matches[1], - 'commit' => $matches[2], - ]; - } - - return self::$cache = []; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php deleted file mode 100644 index cba6e09..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/HostnameProcessor.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Injects value of gethostname in all records - */ -class HostnameProcessor implements ProcessorInterface -{ - private static string $host; - - public function __construct() - { - self::$host = (string) gethostname(); - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $record->extra['hostname'] = self::$host; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php deleted file mode 100644 index b942dc0..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php +++ /dev/null @@ -1,126 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Injects line/file:class/function where the log message came from - * - * Warning: This only works if the handler processes the logs directly. - * If you put the processor on a handler that is behind a FingersCrossedHandler - * for example, the processor will only be called once the trigger level is reached, - * and all the log records will have the same file/line/.. data from the call that - * triggered the FingersCrossedHandler. - * - * @author Jordi Boggiano - */ -class IntrospectionProcessor implements ProcessorInterface -{ - protected Level $level; - - /** @var string[] */ - protected array $skipClassesPartials; - - protected int $skipStackFramesCount; - - protected const SKIP_FUNCTIONS = [ - 'call_user_func', - 'call_user_func_array', - ]; - - protected const SKIP_CLASSES = [ - 'Monolog\\', - ]; - - /** - * @param string|int|Level $level The minimum logging level at which this Processor will be triggered - * @param string[] $skipClassesPartials - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function __construct(int|string|Level $level = Level::Debug, array $skipClassesPartials = [], int $skipStackFramesCount = 0) - { - $this->level = Logger::toMonologLevel($level); - $this->skipClassesPartials = array_merge(static::SKIP_CLASSES, $skipClassesPartials); - $this->skipStackFramesCount = $skipStackFramesCount; - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - // return if the level is not high enough - if ($record->level->isLowerThan($this->level)) { - return $record; - } - - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - - // skip first since it's always the current method - array_shift($trace); - // the call_user_func call is also skipped - array_shift($trace); - - $i = 0; - - while ($this->isTraceClassOrSkippedFunction($trace, $i)) { - if (isset($trace[$i]['class'])) { - foreach ($this->skipClassesPartials as $part) { - if (strpos($trace[$i]['class'], $part) !== false) { - $i++; - - continue 2; - } - } - } elseif (\in_array($trace[$i]['function'], self::SKIP_FUNCTIONS, true)) { - $i++; - - continue; - } - - break; - } - - $i += $this->skipStackFramesCount; - - // we should have the call source now - $record->extra = array_merge( - $record->extra, - [ - 'file' => $trace[$i - 1]['file'] ?? null, - 'line' => $trace[$i - 1]['line'] ?? null, - 'class' => $trace[$i]['class'] ?? null, - 'callType' => $trace[$i]['type'] ?? null, - 'function' => $trace[$i]['function'] ?? null, - ] - ); - - return $record; - } - - /** - * @param array $trace - */ - private function isTraceClassOrSkippedFunction(array $trace, int $index): bool - { - if (!isset($trace[$index])) { - return false; - } - - return isset($trace[$index]['class']) || \in_array($trace[$index]['function'], self::SKIP_FUNCTIONS, true); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/LoadAverageProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/LoadAverageProcessor.php deleted file mode 100644 index 762ed91..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/LoadAverageProcessor.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Injects sys_getloadavg in all records @see https://www.php.net/manual/en/function.sys-getloadavg.php - * - * @author Johan Vlaar - */ -class LoadAverageProcessor implements ProcessorInterface -{ - public const LOAD_1_MINUTE = 0; - public const LOAD_5_MINUTE = 1; - public const LOAD_15_MINUTE = 2; - - private const AVAILABLE_LOAD = [ - self::LOAD_1_MINUTE, - self::LOAD_5_MINUTE, - self::LOAD_15_MINUTE, - ]; - - /** - * @var int - */ - protected $avgSystemLoad; - - /** - * @param self::LOAD_* $avgSystemLoad - */ - public function __construct(int $avgSystemLoad = self::LOAD_1_MINUTE) - { - if (!\in_array($avgSystemLoad, self::AVAILABLE_LOAD, true)) { - throw new \InvalidArgumentException(sprintf('Invalid average system load: `%s`', $avgSystemLoad)); - } - $this->avgSystemLoad = $avgSystemLoad; - } - - /** - * {@inheritDoc} - */ - public function __invoke(LogRecord $record): LogRecord - { - if (!\function_exists('sys_getloadavg')) { - return $record; - } - $usage = sys_getloadavg(); - if (false === $usage) { - return $record; - } - - $record->extra['load_average'] = $usage[$this->avgSystemLoad]; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php deleted file mode 100644 index adc32c6..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Injects memory_get_peak_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryPeakUsageProcessor extends MemoryProcessor -{ - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $usage = memory_get_peak_usage($this->realUsage); - - if ($this->useFormatting) { - $usage = $this->formatBytes($usage); - } - - $record->extra['memory_peak_usage'] = $usage; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php deleted file mode 100644 index f808e51..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Some methods that are common for all memory processors - * - * @author Rob Jensen - */ -abstract class MemoryProcessor implements ProcessorInterface -{ - /** - * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. - */ - protected bool $realUsage; - - /** - * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - protected bool $useFormatting; - - /** - * @param bool $realUsage Set this to true to get the real size of memory allocated from system. - * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - public function __construct(bool $realUsage = true, bool $useFormatting = true) - { - $this->realUsage = $realUsage; - $this->useFormatting = $useFormatting; - } - - /** - * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is - * - * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as int - */ - protected function formatBytes(int $bytes) - { - if (!$this->useFormatting) { - return $bytes; - } - - if ($bytes > 1024 * 1024) { - return round($bytes / 1024 / 1024, 2).' MB'; - } elseif ($bytes > 1024) { - return round($bytes / 1024, 2).' KB'; - } - - return $bytes . ' B'; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php deleted file mode 100644 index a814b1d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Injects memory_get_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryUsageProcessor extends MemoryProcessor -{ - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $usage = memory_get_usage($this->realUsage); - - if ($this->useFormatting) { - $usage = $this->formatBytes($usage); - } - - $record->extra['memory_usage'] = $usage; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php deleted file mode 100644 index 3076a3d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Level; -use Monolog\Logger; -use Psr\Log\LogLevel; -use Monolog\LogRecord; - -/** - * Injects Hg branch and Hg revision number in all records - * - * @author Jonathan A. Schweder - */ -class MercurialProcessor implements ProcessorInterface -{ - private Level $level; - /** @var array{branch: string, revision: string}|array|null */ - private static $cache = null; - - /** - * @param int|string|Level $level The minimum logging level at which this Processor will be triggered - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function __construct(int|string|Level $level = Level::Debug) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - // return if the level is not high enough - if ($record->level->isLowerThan($this->level)) { - return $record; - } - - $record->extra['hg'] = self::getMercurialInfo(); - - return $record; - } - - /** - * @return array{branch: string, revision: string}|array - */ - private static function getMercurialInfo(): array - { - if (self::$cache !== null) { - return self::$cache; - } - - $result = explode(' ', trim((string) shell_exec('hg id -nb'))); - if (\count($result) >= 3) { - return self::$cache = [ - 'branch' => $result[1], - 'revision' => $result[2], - ]; - } - if (\count($result) === 2) { - return self::$cache = [ - 'branch' => $result[1], - 'revision' => $result[0], - ]; - } - - return self::$cache = []; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php deleted file mode 100644 index bb9a522..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Adds value of getmypid into records - * - * @author Andreas Hörnicke - */ -class ProcessIdProcessor implements ProcessorInterface -{ - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $record->extra['process_id'] = getmypid(); - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php deleted file mode 100644 index ebe41fc..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * An optional interface to allow labelling Monolog processors. - * - * @author Nicolas Grekas - */ -interface ProcessorInterface -{ - /** - * @return LogRecord The processed record - */ - public function __invoke(LogRecord $record); -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php deleted file mode 100644 index 291361d..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Utils; -use Monolog\LogRecord; - -/** - * Processes a record's message according to PSR-3 rules - * - * It replaces {foo} with the value from $context['foo'] - * - * @author Jordi Boggiano - */ -class PsrLogMessageProcessor implements ProcessorInterface -{ - public const SIMPLE_DATE = "Y-m-d\TH:i:s.uP"; - - private ?string $dateFormat; - - private bool $removeUsedContextFields; - - /** - * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format - * @param bool $removeUsedContextFields If set to true the fields interpolated into message gets unset - */ - public function __construct(?string $dateFormat = null, bool $removeUsedContextFields = false) - { - $this->dateFormat = $dateFormat; - $this->removeUsedContextFields = $removeUsedContextFields; - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - if (false === strpos($record->message, '{')) { - return $record; - } - - $replacements = []; - $context = $record->context; - - foreach ($context as $key => $val) { - $placeholder = '{' . $key . '}'; - if (strpos($record->message, $placeholder) === false) { - continue; - } - - if (null === $val || \is_scalar($val) || (\is_object($val) && method_exists($val, "__toString"))) { - $replacements[$placeholder] = $val; - } elseif ($val instanceof \DateTimeInterface) { - if (null === $this->dateFormat && $val instanceof \Monolog\JsonSerializableDateTimeImmutable) { - // handle monolog dates using __toString if no specific dateFormat was asked for - // so that it follows the useMicroseconds flag - $replacements[$placeholder] = (string) $val; - } else { - $replacements[$placeholder] = $val->format($this->dateFormat ?? static::SIMPLE_DATE); - } - } elseif ($val instanceof \UnitEnum) { - $replacements[$placeholder] = $val instanceof \BackedEnum ? $val->value : $val->name; - } elseif (\is_object($val)) { - $replacements[$placeholder] = '[object '.Utils::getClass($val).']'; - } elseif (\is_array($val)) { - $replacements[$placeholder] = 'array'.Utils::jsonEncode($val, null, true); - } else { - $replacements[$placeholder] = '['.\gettype($val).']'; - } - - if ($this->removeUsedContextFields) { - unset($context[$key]); - } - } - - return $record->with(message: strtr($record->message, $replacements), context: $context); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php deleted file mode 100644 index f4e41ce..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\LogRecord; - -/** - * Adds a tags array into record - * - * @author Martijn Riemers - */ -class TagProcessor implements ProcessorInterface -{ - /** @var string[] */ - private array $tags; - - /** - * @param string[] $tags - */ - public function __construct(array $tags = []) - { - $this->setTags($tags); - } - - /** - * @param string[] $tags - * @return $this - */ - public function addTags(array $tags = []): self - { - $this->tags = array_merge($this->tags, $tags); - - return $this; - } - - /** - * @param string[] $tags - * @return $this - */ - public function setTags(array $tags = []): self - { - $this->tags = $tags; - - return $this; - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $record->extra['tags'] = $this->tags; - - return $record; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php deleted file mode 100644 index 261e653..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\ResettableInterface; -use Monolog\LogRecord; - -/** - * Adds a unique identifier into records - * - * @author Simon Mönch - */ -class UidProcessor implements ProcessorInterface, ResettableInterface -{ - /** @var non-empty-string */ - private string $uid; - - /** - * @param int<1, 32> $length - */ - public function __construct(int $length = 7) - { - if ($length > 32 || $length < 1) { - throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); - } - - $this->uid = $this->generateUid($length); - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - $record->extra['uid'] = $this->uid; - - return $record; - } - - public function getUid(): string - { - return $this->uid; - } - - public function reset(): void - { - $this->uid = $this->generateUid(\strlen($this->uid)); - } - - /** - * @param positive-int $length - * @return non-empty-string - */ - private function generateUid(int $length): string - { - return substr(bin2hex(random_bytes((int) ceil($length / 2))), 0, $length); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php deleted file mode 100644 index b78385e..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use ArrayAccess; -use Monolog\LogRecord; - -/** - * Injects url/method and remote IP of the current web request in all records - * - * @author Jordi Boggiano - */ -class WebProcessor implements ProcessorInterface -{ - /** - * @var array|ArrayAccess - */ - protected array|ArrayAccess $serverData; - - /** - * Default fields - * - * Array is structured as [key in record.extra => key in $serverData] - * - * @var array - */ - protected array $extraFields = [ - 'url' => 'REQUEST_URI', - 'ip' => 'REMOTE_ADDR', - 'http_method' => 'REQUEST_METHOD', - 'server' => 'SERVER_NAME', - 'referrer' => 'HTTP_REFERER', - 'user_agent' => 'HTTP_USER_AGENT', - ]; - - /** - * @param array|ArrayAccess|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data - * @param array|array|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data - */ - public function __construct(array|ArrayAccess|null $serverData = null, array|null $extraFields = null) - { - if (null === $serverData) { - $this->serverData = &$_SERVER; - } else { - $this->serverData = $serverData; - } - - $defaultEnabled = ['url', 'ip', 'http_method', 'server', 'referrer']; - if (isset($this->serverData['UNIQUE_ID'])) { - $this->extraFields['unique_id'] = 'UNIQUE_ID'; - $defaultEnabled[] = 'unique_id'; - } - - if (null === $extraFields) { - $extraFields = $defaultEnabled; - } - if (isset($extraFields[0])) { - foreach (array_keys($this->extraFields) as $fieldName) { - if (!\in_array($fieldName, $extraFields, true)) { - unset($this->extraFields[$fieldName]); - } - } - } else { - $this->extraFields = $extraFields; - } - } - - /** - * @inheritDoc - */ - public function __invoke(LogRecord $record): LogRecord - { - // skip processing if for some reason request data - // is not present (CLI or wonky SAPIs) - if (!isset($this->serverData['REQUEST_URI'])) { - return $record; - } - - $record->extra = $this->appendExtraFields($record->extra); - - return $record; - } - - /** - * @return $this - */ - public function addExtraField(string $extraName, string $serverName): self - { - $this->extraFields[$extraName] = $serverName; - - return $this; - } - - /** - * @param mixed[] $extra - * @return mixed[] - */ - private function appendExtraFields(array $extra): array - { - foreach ($this->extraFields as $extraName => $serverName) { - $extra[$extraName] = $this->serverData[$serverName] ?? null; - } - - return $extra; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Registry.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Registry.php deleted file mode 100644 index 2ef2edc..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Registry.php +++ /dev/null @@ -1,133 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use InvalidArgumentException; - -/** - * Monolog log registry - * - * Allows to get `Logger` instances in the global scope - * via static method calls on this class. - * - * - * $application = new Monolog\Logger('application'); - * $api = new Monolog\Logger('api'); - * - * Monolog\Registry::addLogger($application); - * Monolog\Registry::addLogger($api); - * - * function testLogger() - * { - * Monolog\Registry::api()->error('Sent to $api Logger instance'); - * Monolog\Registry::application()->error('Sent to $application Logger instance'); - * } - * - * - * @author Tomas Tatarko - */ -class Registry -{ - /** - * List of all loggers in the registry (by named indexes) - * - * @var Logger[] - */ - private static array $loggers = []; - - /** - * Adds new logging channel to the registry - * - * @param Logger $logger Instance of the logging channel - * @param string|null $name Name of the logging channel ($logger->getName() by default) - * @param bool $overwrite Overwrite instance in the registry if the given name already exists? - * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists - */ - public static function addLogger(Logger $logger, ?string $name = null, bool $overwrite = false): void - { - $name = $name ?? $logger->getName(); - - if (isset(self::$loggers[$name]) && !$overwrite) { - throw new InvalidArgumentException('Logger with the given name already exists'); - } - - self::$loggers[$name] = $logger; - } - - /** - * Checks if such logging channel exists by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function hasLogger($logger): bool - { - if ($logger instanceof Logger) { - $index = array_search($logger, self::$loggers, true); - - return false !== $index; - } - - return isset(self::$loggers[$logger]); - } - - /** - * Removes instance from registry by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function removeLogger($logger): void - { - if ($logger instanceof Logger) { - if (false !== ($idx = array_search($logger, self::$loggers, true))) { - unset(self::$loggers[$idx]); - } - } else { - unset(self::$loggers[$logger]); - } - } - - /** - * Clears the registry - */ - public static function clear(): void - { - self::$loggers = []; - } - - /** - * Gets Logger instance from the registry - * - * @param string $name Name of the requested Logger instance - * @throws \InvalidArgumentException If named Logger instance is not in the registry - */ - public static function getInstance(string $name): Logger - { - if (!isset(self::$loggers[$name])) { - throw new InvalidArgumentException(sprintf('Requested "%s" logger instance is not in the registry', $name)); - } - - return self::$loggers[$name]; - } - - /** - * Gets Logger instance from the registry via static method call - * - * @param string $name Name of the requested Logger instance - * @param mixed[] $arguments Arguments passed to static method call - * @throws \InvalidArgumentException If named Logger instance is not in the registry - * @return Logger Requested instance of Logger - */ - public static function __callStatic(string $name, array $arguments): Logger - { - return self::getInstance($name); - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/ResettableInterface.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/ResettableInterface.php deleted file mode 100644 index 4983a6b..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/ResettableInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -/** - * Handler or Processor implementing this interface will be reset when Logger::reset() is called. - * - * Resetting ends a log cycle gets them back to their initial state. - * - * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal - * state, and getting it back to a state in which it can receive log records again. - * - * This is useful in case you want to avoid logs leaking between two requests or jobs when you - * have a long running process like a worker or an application server serving multiple requests - * in one process. - * - * @author Grégoire Pineau - */ -interface ResettableInterface -{ - public function reset(): void; -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/SignalHandler.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/SignalHandler.php deleted file mode 100644 index b6a69fc..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/SignalHandler.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; -use ReflectionExtension; - -/** - * Monolog POSIX signal handler - * - * @author Robert Gust-Bardon - */ -class SignalHandler -{ - private LoggerInterface $logger; - - /** @var array SIG_DFL, SIG_IGN or previous callable */ - private array $previousSignalHandler = []; - /** @var array */ - private array $signalLevelMap = []; - /** @var array */ - private array $signalRestartSyscalls = []; - - public function __construct(LoggerInterface $logger) - { - $this->logger = $logger; - } - - /** - * @param int|string|Level $level Level or level name - * @return $this - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - public function registerSignalHandler(int $signo, int|string|Level $level = LogLevel::CRITICAL, bool $callPrevious = true, bool $restartSyscalls = true, ?bool $async = true): self - { - if (!\extension_loaded('pcntl') || !\function_exists('pcntl_signal')) { - return $this; - } - - $level = Logger::toMonologLevel($level)->toPsrLogLevel(); - - if ($callPrevious) { - $handler = pcntl_signal_get_handler($signo); - $this->previousSignalHandler[$signo] = $handler; - } else { - unset($this->previousSignalHandler[$signo]); - } - $this->signalLevelMap[$signo] = $level; - $this->signalRestartSyscalls[$signo] = $restartSyscalls; - - if ($async !== null) { - pcntl_async_signals($async); - } - - pcntl_signal($signo, [$this, 'handleSignal'], $restartSyscalls); - - return $this; - } - - /** - * @param mixed $siginfo - */ - public function handleSignal(int $signo, $siginfo = null): void - { - /** @var array $signals */ - static $signals = []; - - if (\count($signals) === 0 && \extension_loaded('pcntl')) { - $pcntl = new ReflectionExtension('pcntl'); - foreach ($pcntl->getConstants() as $name => $value) { - if (substr($name, 0, 3) === 'SIG' && $name[3] !== '_' && \is_int($value)) { - $signals[$value] = $name; - } - } - } - - $level = $this->signalLevelMap[$signo] ?? LogLevel::CRITICAL; - $signal = $signals[$signo] ?? $signo; - $context = $siginfo ?? []; - $this->logger->log($level, sprintf('Program received signal %s', $signal), $context); - - if (!isset($this->previousSignalHandler[$signo])) { - return; - } - - if ($this->previousSignalHandler[$signo] === SIG_DFL) { - if (\extension_loaded('pcntl') && \function_exists('pcntl_signal') && \function_exists('pcntl_sigprocmask') && \function_exists('pcntl_signal_dispatch') - && \extension_loaded('posix') && \function_exists('posix_getpid') && \function_exists('posix_kill') - ) { - $restartSyscalls = $this->signalRestartSyscalls[$signo] ?? true; - pcntl_signal($signo, SIG_DFL, $restartSyscalls); - pcntl_sigprocmask(SIG_UNBLOCK, [$signo], $oldset); - posix_kill(posix_getpid(), $signo); - pcntl_signal_dispatch(); - pcntl_sigprocmask(SIG_SETMASK, $oldset); - pcntl_signal($signo, [$this, 'handleSignal'], $restartSyscalls); - } - } elseif (\is_callable($this->previousSignalHandler[$signo])) { - $this->previousSignalHandler[$signo]($signo, $siginfo); - } - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/MonologTestCase.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/MonologTestCase.php deleted file mode 100644 index 34c7724..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/MonologTestCase.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Test; - -use Monolog\Level; -use Monolog\Logger; -use Monolog\LogRecord; -use Monolog\JsonSerializableDateTimeImmutable; -use Monolog\Formatter\FormatterInterface; -use Psr\Log\LogLevel; - -/** - * Lets you easily generate log records and a dummy formatter for testing purposes - * - * @author Jordi Boggiano - */ -class MonologTestCase extends \PHPUnit\Framework\TestCase -{ - /** - * @param array $context - * @param array $extra - * - * @phpstan-param value-of|value-of|Level|LogLevel::* $level - */ - protected function getRecord(int|string|Level $level = Level::Warning, string|\Stringable $message = 'test', array $context = [], string $channel = 'test', \DateTimeImmutable $datetime = new JsonSerializableDateTimeImmutable(true), array $extra = []): LogRecord - { - return new LogRecord( - message: (string) $message, - context: $context, - level: Logger::toMonologLevel($level), - channel: $channel, - datetime: $datetime, - extra: $extra, - ); - } - - /** - * @phpstan-return list - */ - protected function getMultipleRecords(): array - { - return [ - $this->getRecord(Level::Debug, 'debug message 1'), - $this->getRecord(Level::Debug, 'debug message 2'), - $this->getRecord(Level::Info, 'information'), - $this->getRecord(Level::Warning, 'warning'), - $this->getRecord(Level::Error, 'error'), - ]; - } - - protected function getIdentityFormatter(): FormatterInterface - { - $formatter = $this->createMock(FormatterInterface::class); - $formatter->expects(self::any()) - ->method('format') - ->willReturnCallback(function ($record) { - return $record->message; - }); - - return $formatter; - } -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/TestCase.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/TestCase.php deleted file mode 100644 index bf40b31..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Test/TestCase.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Test; - -/** - * Lets you easily generate log records and a dummy formatter for testing purposes - * - * @author Jordi Boggiano - * - * @deprecated use MonologTestCase instead. - */ -class TestCase extends MonologTestCase -{ -} diff --git a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Utils.php b/projects/priceservice/vendor/monolog/monolog/src/Monolog/Utils.php deleted file mode 100644 index 1538015..0000000 --- a/projects/priceservice/vendor/monolog/monolog/src/Monolog/Utils.php +++ /dev/null @@ -1,257 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -final class Utils -{ - const DEFAULT_JSON_FLAGS = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION | JSON_INVALID_UTF8_SUBSTITUTE | JSON_PARTIAL_OUTPUT_ON_ERROR; - - public static function getClass(object $object): string - { - $class = \get_class($object); - - if (false === ($pos = strpos($class, "@anonymous\0"))) { - return $class; - } - - if (false === ($parent = get_parent_class($class))) { - return substr($class, 0, $pos + 10); - } - - return $parent . '@anonymous'; - } - - public static function substr(string $string, int $start, ?int $length = null): string - { - if (\extension_loaded('mbstring')) { - return mb_strcut($string, $start, $length); - } - - return substr($string, $start, (null === $length) ? \strlen($string) : $length); - } - - /** - * Makes sure if a relative path is passed in it is turned into an absolute path - * - * @param string $streamUrl stream URL or path without protocol - */ - public static function canonicalizePath(string $streamUrl): string - { - $prefix = ''; - if ('file://' === substr($streamUrl, 0, 7)) { - $streamUrl = substr($streamUrl, 7); - $prefix = 'file://'; - } - - // other type of stream, not supported - if (false !== strpos($streamUrl, '://')) { - return $streamUrl; - } - - // already absolute - if (substr($streamUrl, 0, 1) === '/' || substr($streamUrl, 1, 1) === ':' || substr($streamUrl, 0, 2) === '\\\\') { - return $prefix.$streamUrl; - } - - $streamUrl = getcwd() . '/' . $streamUrl; - - return $prefix.$streamUrl; - } - - /** - * Return the JSON representation of a value - * - * @param mixed $data - * @param int $encodeFlags flags to pass to json encode, defaults to DEFAULT_JSON_FLAGS - * @param bool $ignoreErrors whether to ignore encoding errors or to throw on error, when ignored and the encoding fails, "null" is returned which is valid json for null - * @throws \RuntimeException if encoding fails and errors are not ignored - * @return string when errors are ignored and the encoding fails, "null" is returned which is valid json for null - */ - public static function jsonEncode($data, ?int $encodeFlags = null, bool $ignoreErrors = false): string - { - if (null === $encodeFlags) { - $encodeFlags = self::DEFAULT_JSON_FLAGS; - } - - if ($ignoreErrors) { - $json = @json_encode($data, $encodeFlags); - if (false === $json) { - return 'null'; - } - - return $json; - } - - $json = json_encode($data, $encodeFlags); - if (false === $json) { - $json = self::handleJsonError(json_last_error(), $data); - } - - return $json; - } - - /** - * Handle a json_encode failure. - * - * If the failure is due to invalid string encoding, try to clean the - * input and encode again. If the second encoding attempt fails, the - * initial error is not encoding related or the input can't be cleaned then - * raise a descriptive exception. - * - * @param int $code return code of json_last_error function - * @param mixed $data data that was meant to be encoded - * @param int $encodeFlags flags to pass to json encode, defaults to JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION - * @throws \RuntimeException if failure can't be corrected - * @return string JSON encoded data after error correction - */ - public static function handleJsonError(int $code, $data, ?int $encodeFlags = null): string - { - if ($code !== JSON_ERROR_UTF8) { - self::throwEncodeError($code, $data); - } - - if (\is_string($data)) { - self::detectAndCleanUtf8($data); - } elseif (\is_array($data)) { - array_walk_recursive($data, ['Monolog\Utils', 'detectAndCleanUtf8']); - } else { - self::throwEncodeError($code, $data); - } - - if (null === $encodeFlags) { - $encodeFlags = self::DEFAULT_JSON_FLAGS; - } - - $json = json_encode($data, $encodeFlags); - - if ($json === false) { - self::throwEncodeError(json_last_error(), $data); - } - - return $json; - } - - /** - * Throws an exception according to a given code with a customized message - * - * @param int $code return code of json_last_error function - * @param mixed $data data that was meant to be encoded - * @throws \RuntimeException - */ - private static function throwEncodeError(int $code, $data): never - { - $msg = match ($code) { - JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', - JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch', - JSON_ERROR_CTRL_CHAR => 'Unexpected control character found', - JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded', - default => 'Unknown error', - }; - - throw new \RuntimeException('JSON encoding failed: '.$msg.'. Encoding: '.var_export($data, true)); - } - - /** - * Detect invalid UTF-8 string characters and convert to valid UTF-8. - * - * Valid UTF-8 input will be left unmodified, but strings containing - * invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed - * original encoding of ISO-8859-15. This conversion may result in - * incorrect output if the actual encoding was not ISO-8859-15, but it - * will be clean UTF-8 output and will not rely on expensive and fragile - * detection algorithms. - * - * Function converts the input in place in the passed variable so that it - * can be used as a callback for array_walk_recursive. - * - * @param mixed $data Input to check and convert if needed, passed by ref - */ - private static function detectAndCleanUtf8(&$data): void - { - if (\is_string($data) && preg_match('//u', $data) !== 1) { - $data = preg_replace_callback( - '/[\x80-\xFF]+/', - function (array $m): string { - return \function_exists('mb_convert_encoding') - ? mb_convert_encoding($m[0], 'UTF-8', 'ISO-8859-1') - : (\function_exists('utf8_encode') ? utf8_encode($m[0]) : ''); - }, - $data - ); - if (!\is_string($data)) { - $pcreErrorCode = preg_last_error(); - - throw new \RuntimeException('Failed to preg_replace_callback: ' . $pcreErrorCode . ' / ' . preg_last_error_msg()); - } - $data = str_replace( - ['¤', '¦', '¨', '´', '¸', '¼', '½', '¾'], - ['€', 'Š', 'š', 'Ž', 'ž', 'Œ', 'œ', 'Ÿ'], - $data - ); - } - } - - /** - * Converts a string with a valid 'memory_limit' format, to bytes. - * - * @param string|false $val - * @return int|false Returns an integer representing bytes. Returns FALSE in case of error. - */ - public static function expandIniShorthandBytes($val) - { - if (!\is_string($val)) { - return false; - } - - // support -1 - if ((int) $val < 0) { - return (int) $val; - } - - if (!(bool) preg_match('/^\s*(?\d+)(?:\.\d+)?\s*(?[gmk]?)\s*$/i', $val, $match)) { - return false; - } - - $val = (int) $match['val']; - switch (strtolower($match['unit'])) { - case 'g': - $val *= 1024; - // no break - case 'm': - $val *= 1024; - // no break - case 'k': - $val *= 1024; - } - - return $val; - } - - public static function getRecordMessageForException(LogRecord $record): string - { - $context = ''; - $extra = ''; - - try { - if (\count($record->context) > 0) { - $context = "\nContext: " . json_encode($record->context, JSON_THROW_ON_ERROR); - } - if (\count($record->extra) > 0) { - $extra = "\nExtra: " . json_encode($record->extra, JSON_THROW_ON_ERROR); - } - } catch (\Throwable $e) { - // noop - } - - return "\nThe exception occurred while attempting to log: " . $record->message . $context . $extra; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/.php-cs-fixer.dist.php b/projects/priceservice/vendor/nikic/php-parser/.php-cs-fixer.dist.php deleted file mode 100644 index 314307e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/.php-cs-fixer.dist.php +++ /dev/null @@ -1,31 +0,0 @@ -exclude('PhpParser/Parser') - ->in(__DIR__ . '/lib') - ->in(__DIR__ . '/test') - ->in(__DIR__ . '/grammar') -; - -$config = new PhpCsFixer\Config(); -return $config->setRiskyAllowed(true) - ->setRules([ - '@PSR12' => true, - // We use PSR12 with consistent brace placement. - 'curly_braces_position' => [ - 'functions_opening_brace' => 'same_line', - 'classes_opening_brace' => 'same_line', - ], - // declare(strict_types=1) on the same line as false, - 'declare_strict_types' => true, - // Keep argument formatting for now. - 'method_argument_space' => ['on_multiline' => 'ignore'], - 'phpdoc_align' => ['align' => 'left'], - 'phpdoc_trim' => true, - 'no_empty_phpdoc' => true, - 'no_superfluous_phpdoc_tags' => ['allow_mixed' => true], - 'no_extra_blank_lines' => true, - ]) - ->setFinder($finder) -; diff --git a/projects/priceservice/vendor/nikic/php-parser/LICENSE b/projects/priceservice/vendor/nikic/php-parser/LICENSE deleted file mode 100644 index 2e56718..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2011, Nikita Popov -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/projects/priceservice/vendor/nikic/php-parser/Makefile b/projects/priceservice/vendor/nikic/php-parser/Makefile deleted file mode 100644 index 9a7bdf2..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -.PHONY: phpstan php-cs-fixer - -tools/vendor: - composer install -d tools - -phpstan: tools/vendor - tools/vendor/bin/phpstan - -php-cs-fixer: tools/vendor - tools/vendor/bin/php-cs-fixer fix diff --git a/projects/priceservice/vendor/nikic/php-parser/README.md b/projects/priceservice/vendor/nikic/php-parser/README.md deleted file mode 100644 index 7555838..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/README.md +++ /dev/null @@ -1,233 +0,0 @@ -PHP Parser -========== - -[![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master) - -This is a PHP parser written in PHP. Its purpose is to simplify static code analysis and -manipulation. - -[**Documentation for version 5.x**][doc_master] (current; for running on PHP >= 7.4; for parsing PHP 7.0 to PHP 8.3, with limited support for parsing PHP 5.x). - -[Documentation for version 4.x][doc_4_x] (supported; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.3). - -Features --------- - -The main features provided by this library are: - - * Parsing PHP 7, and PHP 8 code into an abstract syntax tree (AST). - * Invalid code can be parsed into a partial AST. - * The AST contains accurate location information. - * Dumping the AST in human-readable form. - * Converting an AST back to PHP code. - * Formatting can be preserved for partially changed ASTs. - * Infrastructure to traverse and modify ASTs. - * Resolution of namespaced names. - * Evaluation of constant expressions. - * Builders to simplify AST construction for code generation. - * Converting an AST into JSON and back. - -Quick Start ------------ - -Install the library using [composer](https://getcomposer.org): - - php composer.phar require nikic/php-parser - -Parse some PHP code into an AST and dump the result in human-readable form: - -```php -createForNewestSupportedVersion(); -try { - $ast = $parser->parse($code); -} catch (Error $error) { - echo "Parse error: {$error->getMessage()}\n"; - return; -} - -$dumper = new NodeDumper; -echo $dumper->dump($ast) . "\n"; -``` - -This dumps an AST looking something like this: - -``` -array( - 0: Stmt_Function( - attrGroups: array( - ) - byRef: false - name: Identifier( - name: test - ) - params: array( - 0: Param( - attrGroups: array( - ) - flags: 0 - type: null - byRef: false - variadic: false - var: Expr_Variable( - name: foo - ) - default: null - ) - ) - returnType: null - stmts: array( - 0: Stmt_Expression( - expr: Expr_FuncCall( - name: Name( - name: var_dump - ) - args: array( - 0: Arg( - name: null - value: Expr_Variable( - name: foo - ) - byRef: false - unpack: false - ) - ) - ) - ) - ) - ) -) -``` - -Let's traverse the AST and perform some kind of modification. For example, drop all function bodies: - -```php -use PhpParser\Node; -use PhpParser\Node\Stmt\Function_; -use PhpParser\NodeTraverser; -use PhpParser\NodeVisitorAbstract; - -$traverser = new NodeTraverser(); -$traverser->addVisitor(new class extends NodeVisitorAbstract { - public function enterNode(Node $node) { - if ($node instanceof Function_) { - // Clean out the function body - $node->stmts = []; - } - } -}); - -$ast = $traverser->traverse($ast); -echo $dumper->dump($ast) . "\n"; -``` - -This gives us an AST where the `Function_::$stmts` are empty: - -``` -array( - 0: Stmt_Function( - attrGroups: array( - ) - byRef: false - name: Identifier( - name: test - ) - params: array( - 0: Param( - attrGroups: array( - ) - type: null - byRef: false - variadic: false - var: Expr_Variable( - name: foo - ) - default: null - ) - ) - returnType: null - stmts: array( - ) - ) -) -``` - -Finally, we can convert the new AST back to PHP code: - -```php -use PhpParser\PrettyPrinter; - -$prettyPrinter = new PrettyPrinter\Standard; -echo $prettyPrinter->prettyPrintFile($ast); -``` - -This gives us our original code, minus the `var_dump()` call inside the function: - -```php -createForVersion($attributes['version']); -$dumper = new PhpParser\NodeDumper([ - 'dumpComments' => true, - 'dumpPositions' => $attributes['with-positions'], -]); -$prettyPrinter = new PhpParser\PrettyPrinter\Standard; - -$traverser = new PhpParser\NodeTraverser(); -$traverser->addVisitor(new PhpParser\NodeVisitor\NameResolver); - -foreach ($files as $file) { - if ($file === '-') { - $code = file_get_contents('php://stdin'); - fwrite(STDERR, "====> Stdin:\n"); - } else if (strpos($file, ' Code $code\n"); - } else { - if (!file_exists($file)) { - fwrite(STDERR, "File $file does not exist.\n"); - exit(1); - } - - $code = file_get_contents($file); - fwrite(STDERR, "====> File $file:\n"); - } - - if ($attributes['with-recovery']) { - $errorHandler = new PhpParser\ErrorHandler\Collecting; - $stmts = $parser->parse($code, $errorHandler); - foreach ($errorHandler->getErrors() as $error) { - $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - fwrite(STDERR, $message . "\n"); - } - if (null === $stmts) { - continue; - } - } else { - try { - $stmts = $parser->parse($code); - } catch (PhpParser\Error $error) { - $message = formatErrorMessage($error, $code, $attributes['with-column-info']); - fwrite(STDERR, $message . "\n"); - exit(1); - } - } - - foreach ($operations as $operation) { - if ('dump' === $operation) { - fwrite(STDERR, "==> Node dump:\n"); - echo $dumper->dump($stmts, $code), "\n"; - } elseif ('pretty-print' === $operation) { - fwrite(STDERR, "==> Pretty print:\n"); - echo $prettyPrinter->prettyPrintFile($stmts), "\n"; - } elseif ('json-dump' === $operation) { - fwrite(STDERR, "==> JSON dump:\n"); - echo json_encode($stmts, JSON_PRETTY_PRINT), "\n"; - } elseif ('var-dump' === $operation) { - fwrite(STDERR, "==> var_dump():\n"); - var_dump($stmts); - } elseif ('resolve-names' === $operation) { - fwrite(STDERR, "==> Resolved names.\n"); - $stmts = $traverser->traverse($stmts); - } - } -} - -function formatErrorMessage(PhpParser\Error $e, $code, $withColumnInfo) { - if ($withColumnInfo && $e->hasColumnInfo()) { - return $e->getMessageWithColumnInfo($code); - } else { - return $e->getMessage(); - } -} - -function showHelp($error = '') { - if ($error) { - fwrite(STDERR, $error . "\n\n"); - } - fwrite($error ? STDERR : STDOUT, <<<'OUTPUT' -Usage: php-parse [operations] file1.php [file2.php ...] - or: php-parse [operations] " false, - 'with-positions' => false, - 'with-recovery' => false, - 'version' => PhpParser\PhpVersion::getNewestSupported(), - ]; - - array_shift($args); - $parseOptions = true; - foreach ($args as $arg) { - if (!$parseOptions) { - $files[] = $arg; - continue; - } - - switch ($arg) { - case '--dump': - case '-d': - $operations[] = 'dump'; - break; - case '--pretty-print': - case '-p': - $operations[] = 'pretty-print'; - break; - case '--json-dump': - case '-j': - $operations[] = 'json-dump'; - break; - case '--var-dump': - $operations[] = 'var-dump'; - break; - case '--resolve-names': - case '-N'; - $operations[] = 'resolve-names'; - break; - case '--with-column-info': - case '-c'; - $attributes['with-column-info'] = true; - break; - case '--with-positions': - case '-P': - $attributes['with-positions'] = true; - break; - case '--with-recovery': - case '-r': - $attributes['with-recovery'] = true; - break; - case '--help': - case '-h'; - showHelp(); - break; - case '--': - $parseOptions = false; - break; - default: - if (preg_match('/^--version=(.*)$/', $arg, $matches)) { - $attributes['version'] = PhpParser\PhpVersion::fromString($matches[1]); - } elseif ($arg[0] === '-' && \strlen($arg[0]) > 1) { - showHelp("Invalid operation $arg."); - } else { - $files[] = $arg; - } - } - } - - return [$operations, $files, $attributes]; -} diff --git a/projects/priceservice/vendor/nikic/php-parser/composer.json b/projects/priceservice/vendor/nikic/php-parser/composer.json deleted file mode 100644 index b4b1bca..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/composer.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "nikic/php-parser", - "type": "library", - "description": "A PHP parser written in PHP", - "keywords": [ - "php", - "parser" - ], - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Nikita Popov" - } - ], - "require": { - "php": ">=7.4", - "ext-tokenizer": "*", - "ext-json": "*", - "ext-ctype": "*" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "ircmaxell/php-yacc": "^0.0.7" - }, - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "autoload-dev": { - "psr-4": { - "PhpParser\\": "test/PhpParser/" - } - }, - "bin": [ - "bin/php-parse" - ] -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder.php deleted file mode 100644 index d6aa124..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder.php +++ /dev/null @@ -1,12 +0,0 @@ - */ - protected array $attributes = []; - /** @var list */ - protected array $constants = []; - - /** @var list */ - protected array $attributeGroups = []; - /** @var Identifier|Node\Name|Node\ComplexType|null */ - protected ?Node $type = null; - - /** - * Creates a class constant builder - * - * @param string|Identifier $name Name - * @param Node\Expr|bool|null|int|float|string|array $value Value - */ - public function __construct($name, $value) { - $this->constants = [new Const_($name, BuilderHelpers::normalizeValue($value))]; - } - - /** - * Add another constant to const group - * - * @param string|Identifier $name Name - * @param Node\Expr|bool|null|int|float|string|array $value Value - * - * @return $this The builder instance (for fluid interface) - */ - public function addConst($name, $value) { - $this->constants[] = new Const_($name, BuilderHelpers::normalizeValue($value)); - - return $this; - } - - /** - * Makes the constant public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC); - - return $this; - } - - /** - * Makes the constant protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED); - - return $this; - } - - /** - * Makes the constant private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE); - - return $this; - } - - /** - * Makes the constant final. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeFinal() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::FINAL); - - return $this; - } - - /** - * Sets doc comment for the constant. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes = [ - 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] - ]; - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Sets the constant type. - * - * @param string|Node\Name|Identifier|Node\ComplexType $type - * - * @return $this - */ - public function setType($type) { - $this->type = BuilderHelpers::normalizeType($type); - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\ClassConst The built constant node - */ - public function getNode(): PhpParser\Node { - return new Stmt\ClassConst( - $this->constants, - $this->flags, - $this->attributes, - $this->attributeGroups, - $this->type - ); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php deleted file mode 100644 index 6f39431..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php +++ /dev/null @@ -1,151 +0,0 @@ - */ - protected array $implements = []; - protected int $flags = 0; - /** @var list */ - protected array $uses = []; - /** @var list */ - protected array $constants = []; - /** @var list */ - protected array $properties = []; - /** @var list */ - protected array $methods = []; - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates a class builder. - * - * @param string $name Name of the class - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Extends a class. - * - * @param Name|string $class Name of class to extend - * - * @return $this The builder instance (for fluid interface) - */ - public function extend($class) { - $this->extends = BuilderHelpers::normalizeName($class); - - return $this; - } - - /** - * Implements one or more interfaces. - * - * @param Name|string ...$interfaces Names of interfaces to implement - * - * @return $this The builder instance (for fluid interface) - */ - public function implement(...$interfaces) { - foreach ($interfaces as $interface) { - $this->implements[] = BuilderHelpers::normalizeName($interface); - } - - return $this; - } - - /** - * Makes the class abstract. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeAbstract() { - $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::ABSTRACT); - - return $this; - } - - /** - * Makes the class final. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeFinal() { - $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::FINAL); - - return $this; - } - - /** - * Makes the class readonly. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeReadonly() { - $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::READONLY); - - return $this; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = BuilderHelpers::normalizeNode($stmt); - - if ($stmt instanceof Stmt\Property) { - $this->properties[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassMethod) { - $this->methods[] = $stmt; - } elseif ($stmt instanceof Stmt\TraitUse) { - $this->uses[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassConst) { - $this->constants[] = $stmt; - } else { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); - } - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\Class_ The built class node - */ - public function getNode(): PhpParser\Node { - return new Stmt\Class_($this->name, [ - 'flags' => $this->flags, - 'extends' => $this->extends, - 'implements' => $this->implements, - 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods), - 'attrGroups' => $this->attributeGroups, - ], $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php deleted file mode 100644 index 488b721..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +++ /dev/null @@ -1,50 +0,0 @@ - */ - protected array $attributes = []; - - /** - * Adds a statement. - * - * @param PhpParser\Node\Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - abstract public function addStmt($stmt); - - /** - * Adds multiple statements. - * - * @param (PhpParser\Node\Stmt|PhpParser\Builder)[] $stmts The statements to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmts(array $stmts) { - foreach ($stmts as $stmt) { - $this->addStmt($stmt); - } - - return $this; - } - - /** - * Sets doc comment for the declaration. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes['comments'] = [ - BuilderHelpers::normalizeDocComment($docComment) - ]; - - return $this; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php deleted file mode 100644 index 04058bf..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +++ /dev/null @@ -1,87 +0,0 @@ - */ - protected array $attributes = []; - - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates an enum case builder. - * - * @param string|Identifier $name Name - */ - public function __construct($name) { - $this->name = $name; - } - - /** - * Sets the value. - * - * @param Node\Expr|string|int $value - * - * @return $this - */ - public function setValue($value) { - $this->value = BuilderHelpers::normalizeValue($value); - - return $this; - } - - /** - * Sets doc comment for the constant. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes = [ - 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] - ]; - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built enum case node. - * - * @return Stmt\EnumCase The built constant node - */ - public function getNode(): PhpParser\Node { - return new Stmt\EnumCase( - $this->name, - $this->value, - $this->attributeGroups, - $this->attributes - ); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php deleted file mode 100644 index c00df03..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +++ /dev/null @@ -1,116 +0,0 @@ - */ - protected array $implements = []; - /** @var list */ - protected array $uses = []; - /** @var list */ - protected array $enumCases = []; - /** @var list */ - protected array $constants = []; - /** @var list */ - protected array $methods = []; - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates an enum builder. - * - * @param string $name Name of the enum - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Sets the scalar type. - * - * @param string|Identifier $scalarType - * - * @return $this - */ - public function setScalarType($scalarType) { - $this->scalarType = BuilderHelpers::normalizeType($scalarType); - - return $this; - } - - /** - * Implements one or more interfaces. - * - * @param Name|string ...$interfaces Names of interfaces to implement - * - * @return $this The builder instance (for fluid interface) - */ - public function implement(...$interfaces) { - foreach ($interfaces as $interface) { - $this->implements[] = BuilderHelpers::normalizeName($interface); - } - - return $this; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = BuilderHelpers::normalizeNode($stmt); - - if ($stmt instanceof Stmt\EnumCase) { - $this->enumCases[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassMethod) { - $this->methods[] = $stmt; - } elseif ($stmt instanceof Stmt\TraitUse) { - $this->uses[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassConst) { - $this->constants[] = $stmt; - } else { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); - } - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\Enum_ The built enum node - */ - public function getNode(): PhpParser\Node { - return new Stmt\Enum_($this->name, [ - 'scalarType' => $this->scalarType, - 'implements' => $this->implements, - 'stmts' => array_merge($this->uses, $this->enumCases, $this->constants, $this->methods), - 'attrGroups' => $this->attributeGroups, - ], $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php deleted file mode 100644 index ff79cb6..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +++ /dev/null @@ -1,73 +0,0 @@ -returnByRef = true; - - return $this; - } - - /** - * Adds a parameter. - * - * @param Node\Param|Param $param The parameter to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addParam($param) { - $param = BuilderHelpers::normalizeNode($param); - - if (!$param instanceof Node\Param) { - throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType())); - } - - $this->params[] = $param; - - return $this; - } - - /** - * Adds multiple parameters. - * - * @param (Node\Param|Param)[] $params The parameters to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addParams(array $params) { - foreach ($params as $param) { - $this->addParam($param); - } - - return $this; - } - - /** - * Sets the return type for PHP 7. - * - * @param string|Node\Name|Node\Identifier|Node\ComplexType $type - * - * @return $this The builder instance (for fluid interface) - */ - public function setReturnType($type) { - $this->returnType = BuilderHelpers::normalizeType($type); - - return $this; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php deleted file mode 100644 index 48f5f69..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php +++ /dev/null @@ -1,67 +0,0 @@ - */ - protected array $stmts = []; - - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates a function builder. - * - * @param string $name Name of the function - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built function node. - * - * @return Stmt\Function_ The built function node - */ - public function getNode(): Node { - return new Stmt\Function_($this->name, [ - 'byRef' => $this->returnByRef, - 'params' => $this->params, - 'returnType' => $this->returnType, - 'stmts' => $this->stmts, - 'attrGroups' => $this->attributeGroups, - ], $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php deleted file mode 100644 index 13dd3f7..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +++ /dev/null @@ -1,94 +0,0 @@ - */ - protected array $extends = []; - /** @var list */ - protected array $constants = []; - /** @var list */ - protected array $methods = []; - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates an interface builder. - * - * @param string $name Name of the interface - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Extends one or more interfaces. - * - * @param Name|string ...$interfaces Names of interfaces to extend - * - * @return $this The builder instance (for fluid interface) - */ - public function extend(...$interfaces) { - foreach ($interfaces as $interface) { - $this->extends[] = BuilderHelpers::normalizeName($interface); - } - - return $this; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = BuilderHelpers::normalizeNode($stmt); - - if ($stmt instanceof Stmt\ClassConst) { - $this->constants[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassMethod) { - // we erase all statements in the body of an interface method - $stmt->stmts = null; - $this->methods[] = $stmt; - } else { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); - } - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built interface node. - * - * @return Stmt\Interface_ The built interface node - */ - public function getNode(): PhpParser\Node { - return new Stmt\Interface_($this->name, [ - 'extends' => $this->extends, - 'stmts' => array_merge($this->constants, $this->methods), - 'attrGroups' => $this->attributeGroups, - ], $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php deleted file mode 100644 index 8358dbe..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php +++ /dev/null @@ -1,147 +0,0 @@ -|null */ - protected ?array $stmts = []; - - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates a method builder. - * - * @param string $name Name of the method - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Makes the method public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC); - - return $this; - } - - /** - * Makes the method protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED); - - return $this; - } - - /** - * Makes the method private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE); - - return $this; - } - - /** - * Makes the method static. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeStatic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::STATIC); - - return $this; - } - - /** - * Makes the method abstract. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeAbstract() { - if (!empty($this->stmts)) { - throw new \LogicException('Cannot make method with statements abstract'); - } - - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::ABSTRACT); - $this->stmts = null; // abstract methods don't have statements - - return $this; - } - - /** - * Makes the method final. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeFinal() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::FINAL); - - return $this; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - if (null === $this->stmts) { - throw new \LogicException('Cannot add statements to an abstract method'); - } - - $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built method node. - * - * @return Stmt\ClassMethod The built method node - */ - public function getNode(): Node { - return new Stmt\ClassMethod($this->name, [ - 'flags' => $this->flags, - 'byRef' => $this->returnByRef, - 'params' => $this->params, - 'returnType' => $this->returnType, - 'stmts' => $this->stmts, - 'attrGroups' => $this->attributeGroups, - ], $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php deleted file mode 100644 index 80fe6f8..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +++ /dev/null @@ -1,45 +0,0 @@ -name = null !== $name ? BuilderHelpers::normalizeName($name) : null; - } - - /** - * Adds a statement. - * - * @param Node|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); - - return $this; - } - - /** - * Returns the built node. - * - * @return Stmt\Namespace_ The built node - */ - public function getNode(): Node { - return new Stmt\Namespace_($this->name, $this->stmts, $this->attributes); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php deleted file mode 100644 index f439e87..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +++ /dev/null @@ -1,149 +0,0 @@ - */ - protected array $attributeGroups = []; - - /** - * Creates a parameter builder. - * - * @param string $name Name of the parameter - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Sets default value for the parameter. - * - * @param mixed $value Default value to use - * - * @return $this The builder instance (for fluid interface) - */ - public function setDefault($value) { - $this->default = BuilderHelpers::normalizeValue($value); - - return $this; - } - - /** - * Sets type for the parameter. - * - * @param string|Node\Name|Node\Identifier|Node\ComplexType $type Parameter type - * - * @return $this The builder instance (for fluid interface) - */ - public function setType($type) { - $this->type = BuilderHelpers::normalizeType($type); - if ($this->type == 'void') { - throw new \LogicException('Parameter type cannot be void'); - } - - return $this; - } - - /** - * Make the parameter accept the value by reference. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeByRef() { - $this->byRef = true; - - return $this; - } - - /** - * Make the parameter variadic - * - * @return $this The builder instance (for fluid interface) - */ - public function makeVariadic() { - $this->variadic = true; - - return $this; - } - - /** - * Makes the (promoted) parameter public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC); - - return $this; - } - - /** - * Makes the (promoted) parameter protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED); - - return $this; - } - - /** - * Makes the (promoted) parameter private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE); - - return $this; - } - - /** - * Makes the (promoted) parameter readonly. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeReadonly() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::READONLY); - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built parameter node. - * - * @return Node\Param The built parameter node - */ - public function getNode(): Node { - return new Node\Param( - new Node\Expr\Variable($this->name), - $this->default, $this->type, $this->byRef, $this->variadic, [], $this->flags, $this->attributeGroups - ); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php deleted file mode 100644 index 3fc96d9..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +++ /dev/null @@ -1,161 +0,0 @@ - */ - protected array $attributes = []; - /** @var null|Identifier|Name|ComplexType */ - protected ?Node $type = null; - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates a property builder. - * - * @param string $name Name of the property - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Makes the property public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC); - - return $this; - } - - /** - * Makes the property protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED); - - return $this; - } - - /** - * Makes the property private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE); - - return $this; - } - - /** - * Makes the property static. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeStatic() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::STATIC); - - return $this; - } - - /** - * Makes the property readonly. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeReadonly() { - $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::READONLY); - - return $this; - } - - /** - * Sets default value for the property. - * - * @param mixed $value Default value to use - * - * @return $this The builder instance (for fluid interface) - */ - public function setDefault($value) { - $this->default = BuilderHelpers::normalizeValue($value); - - return $this; - } - - /** - * Sets doc comment for the property. - * - * @param PhpParser\Comment\Doc|string $docComment Doc comment to set - * - * @return $this The builder instance (for fluid interface) - */ - public function setDocComment($docComment) { - $this->attributes = [ - 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] - ]; - - return $this; - } - - /** - * Sets the property type for PHP 7.4+. - * - * @param string|Name|Identifier|ComplexType $type - * - * @return $this - */ - public function setType($type) { - $this->type = BuilderHelpers::normalizeType($type); - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built class node. - * - * @return Stmt\Property The built property node - */ - public function getNode(): PhpParser\Node { - return new Stmt\Property( - $this->flags !== 0 ? $this->flags : Modifiers::PUBLIC, - [ - new Node\PropertyItem($this->name, $this->default) - ], - $this->attributes, - $this->type, - $this->attributeGroups - ); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php deleted file mode 100644 index cf21c82..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +++ /dev/null @@ -1,65 +0,0 @@ -and($trait); - } - } - - /** - * Adds used trait. - * - * @param Node\Name|string $trait Trait name - * - * @return $this The builder instance (for fluid interface) - */ - public function and($trait) { - $this->traits[] = BuilderHelpers::normalizeName($trait); - return $this; - } - - /** - * Adds trait adaptation. - * - * @param Stmt\TraitUseAdaptation|Builder\TraitUseAdaptation $adaptation Trait adaptation - * - * @return $this The builder instance (for fluid interface) - */ - public function with($adaptation) { - $adaptation = BuilderHelpers::normalizeNode($adaptation); - - if (!$adaptation instanceof Stmt\TraitUseAdaptation) { - throw new \LogicException('Adaptation must have type TraitUseAdaptation'); - } - - $this->adaptations[] = $adaptation; - return $this; - } - - /** - * Returns the built node. - * - * @return Node The built node - */ - public function getNode(): Node { - return new Stmt\TraitUse($this->traits, $this->adaptations); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php deleted file mode 100644 index fee0958..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +++ /dev/null @@ -1,145 +0,0 @@ -type = self::TYPE_UNDEFINED; - - $this->trait = is_null($trait) ? null : BuilderHelpers::normalizeName($trait); - $this->method = BuilderHelpers::normalizeIdentifier($method); - } - - /** - * Sets alias of method. - * - * @param Node\Identifier|string $alias Alias for adapted method - * - * @return $this The builder instance (for fluid interface) - */ - public function as($alias) { - if ($this->type === self::TYPE_UNDEFINED) { - $this->type = self::TYPE_ALIAS; - } - - if ($this->type !== self::TYPE_ALIAS) { - throw new \LogicException('Cannot set alias for not alias adaptation buider'); - } - - $this->alias = BuilderHelpers::normalizeIdentifier($alias); - return $this; - } - - /** - * Sets adapted method public. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePublic() { - $this->setModifier(Modifiers::PUBLIC); - return $this; - } - - /** - * Sets adapted method protected. - * - * @return $this The builder instance (for fluid interface) - */ - public function makeProtected() { - $this->setModifier(Modifiers::PROTECTED); - return $this; - } - - /** - * Sets adapted method private. - * - * @return $this The builder instance (for fluid interface) - */ - public function makePrivate() { - $this->setModifier(Modifiers::PRIVATE); - return $this; - } - - /** - * Adds overwritten traits. - * - * @param Node\Name|string ...$traits Traits for overwrite - * - * @return $this The builder instance (for fluid interface) - */ - public function insteadof(...$traits) { - if ($this->type === self::TYPE_UNDEFINED) { - if (is_null($this->trait)) { - throw new \LogicException('Precedence adaptation must have trait'); - } - - $this->type = self::TYPE_PRECEDENCE; - } - - if ($this->type !== self::TYPE_PRECEDENCE) { - throw new \LogicException('Cannot add overwritten traits for not precedence adaptation buider'); - } - - foreach ($traits as $trait) { - $this->insteadof[] = BuilderHelpers::normalizeName($trait); - } - - return $this; - } - - protected function setModifier(int $modifier): void { - if ($this->type === self::TYPE_UNDEFINED) { - $this->type = self::TYPE_ALIAS; - } - - if ($this->type !== self::TYPE_ALIAS) { - throw new \LogicException('Cannot set access modifier for not alias adaptation buider'); - } - - if (is_null($this->modifier)) { - $this->modifier = $modifier; - } else { - throw new \LogicException('Multiple access type modifiers are not allowed'); - } - } - - /** - * Returns the built node. - * - * @return Node The built node - */ - public function getNode(): Node { - switch ($this->type) { - case self::TYPE_ALIAS: - return new Stmt\TraitUseAdaptation\Alias($this->trait, $this->method, $this->modifier, $this->alias); - case self::TYPE_PRECEDENCE: - return new Stmt\TraitUseAdaptation\Precedence($this->trait, $this->method, $this->insteadof); - default: - throw new \LogicException('Type of adaptation is not defined'); - } - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php deleted file mode 100644 index ffa1bd5..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +++ /dev/null @@ -1,83 +0,0 @@ - */ - protected array $uses = []; - /** @var list */ - protected array $constants = []; - /** @var list */ - protected array $properties = []; - /** @var list */ - protected array $methods = []; - /** @var list */ - protected array $attributeGroups = []; - - /** - * Creates an interface builder. - * - * @param string $name Name of the interface - */ - public function __construct(string $name) { - $this->name = $name; - } - - /** - * Adds a statement. - * - * @param Stmt|PhpParser\Builder $stmt The statement to add - * - * @return $this The builder instance (for fluid interface) - */ - public function addStmt($stmt) { - $stmt = BuilderHelpers::normalizeNode($stmt); - - if ($stmt instanceof Stmt\Property) { - $this->properties[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassMethod) { - $this->methods[] = $stmt; - } elseif ($stmt instanceof Stmt\TraitUse) { - $this->uses[] = $stmt; - } elseif ($stmt instanceof Stmt\ClassConst) { - $this->constants[] = $stmt; - } else { - throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); - } - - return $this; - } - - /** - * Adds an attribute group. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return $this The builder instance (for fluid interface) - */ - public function addAttribute($attribute) { - $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); - - return $this; - } - - /** - * Returns the built trait node. - * - * @return Stmt\Trait_ The built interface node - */ - public function getNode(): PhpParser\Node { - return new Stmt\Trait_( - $this->name, [ - 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods), - 'attrGroups' => $this->attributeGroups, - ], $this->attributes - ); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php deleted file mode 100644 index b82cf13..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php +++ /dev/null @@ -1,49 +0,0 @@ -name = BuilderHelpers::normalizeName($name); - $this->type = $type; - } - - /** - * Sets alias for used name. - * - * @param string $alias Alias to use (last component of full name by default) - * - * @return $this The builder instance (for fluid interface) - */ - public function as(string $alias) { - $this->alias = $alias; - return $this; - } - - /** - * Returns the built node. - * - * @return Stmt\Use_ The built node - */ - public function getNode(): Node { - return new Stmt\Use_([ - new Node\UseItem($this->name, $this->alias) - ], $this->type); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php deleted file mode 100644 index b7efe5e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ /dev/null @@ -1,375 +0,0 @@ -args($args) - ); - } - - /** - * Creates a namespace builder. - * - * @param null|string|Node\Name $name Name of the namespace - * - * @return Builder\Namespace_ The created namespace builder - */ - public function namespace($name): Builder\Namespace_ { - return new Builder\Namespace_($name); - } - - /** - * Creates a class builder. - * - * @param string $name Name of the class - * - * @return Builder\Class_ The created class builder - */ - public function class(string $name): Builder\Class_ { - return new Builder\Class_($name); - } - - /** - * Creates an interface builder. - * - * @param string $name Name of the interface - * - * @return Builder\Interface_ The created interface builder - */ - public function interface(string $name): Builder\Interface_ { - return new Builder\Interface_($name); - } - - /** - * Creates a trait builder. - * - * @param string $name Name of the trait - * - * @return Builder\Trait_ The created trait builder - */ - public function trait(string $name): Builder\Trait_ { - return new Builder\Trait_($name); - } - - /** - * Creates an enum builder. - * - * @param string $name Name of the enum - * - * @return Builder\Enum_ The created enum builder - */ - public function enum(string $name): Builder\Enum_ { - return new Builder\Enum_($name); - } - - /** - * Creates a trait use builder. - * - * @param Node\Name|string ...$traits Trait names - * - * @return Builder\TraitUse The created trait use builder - */ - public function useTrait(...$traits): Builder\TraitUse { - return new Builder\TraitUse(...$traits); - } - - /** - * Creates a trait use adaptation builder. - * - * @param Node\Name|string|null $trait Trait name - * @param Node\Identifier|string $method Method name - * - * @return Builder\TraitUseAdaptation The created trait use adaptation builder - */ - public function traitUseAdaptation($trait, $method = null): Builder\TraitUseAdaptation { - if ($method === null) { - $method = $trait; - $trait = null; - } - - return new Builder\TraitUseAdaptation($trait, $method); - } - - /** - * Creates a method builder. - * - * @param string $name Name of the method - * - * @return Builder\Method The created method builder - */ - public function method(string $name): Builder\Method { - return new Builder\Method($name); - } - - /** - * Creates a parameter builder. - * - * @param string $name Name of the parameter - * - * @return Builder\Param The created parameter builder - */ - public function param(string $name): Builder\Param { - return new Builder\Param($name); - } - - /** - * Creates a property builder. - * - * @param string $name Name of the property - * - * @return Builder\Property The created property builder - */ - public function property(string $name): Builder\Property { - return new Builder\Property($name); - } - - /** - * Creates a function builder. - * - * @param string $name Name of the function - * - * @return Builder\Function_ The created function builder - */ - public function function(string $name): Builder\Function_ { - return new Builder\Function_($name); - } - - /** - * Creates a namespace/class use builder. - * - * @param Node\Name|string $name Name of the entity (namespace or class) to alias - * - * @return Builder\Use_ The created use builder - */ - public function use($name): Builder\Use_ { - return new Builder\Use_($name, Use_::TYPE_NORMAL); - } - - /** - * Creates a function use builder. - * - * @param Node\Name|string $name Name of the function to alias - * - * @return Builder\Use_ The created use function builder - */ - public function useFunction($name): Builder\Use_ { - return new Builder\Use_($name, Use_::TYPE_FUNCTION); - } - - /** - * Creates a constant use builder. - * - * @param Node\Name|string $name Name of the const to alias - * - * @return Builder\Use_ The created use const builder - */ - public function useConst($name): Builder\Use_ { - return new Builder\Use_($name, Use_::TYPE_CONSTANT); - } - - /** - * Creates a class constant builder. - * - * @param string|Identifier $name Name - * @param Node\Expr|bool|null|int|float|string|array $value Value - * - * @return Builder\ClassConst The created use const builder - */ - public function classConst($name, $value): Builder\ClassConst { - return new Builder\ClassConst($name, $value); - } - - /** - * Creates an enum case builder. - * - * @param string|Identifier $name Name - * - * @return Builder\EnumCase The created use const builder - */ - public function enumCase($name): Builder\EnumCase { - return new Builder\EnumCase($name); - } - - /** - * Creates node a for a literal value. - * - * @param Expr|bool|null|int|float|string|array $value $value - */ - public function val($value): Expr { - return BuilderHelpers::normalizeValue($value); - } - - /** - * Creates variable node. - * - * @param string|Expr $name Name - */ - public function var($name): Expr\Variable { - if (!\is_string($name) && !$name instanceof Expr) { - throw new \LogicException('Variable name must be string or Expr'); - } - - return new Expr\Variable($name); - } - - /** - * Normalizes an argument list. - * - * Creates Arg nodes for all arguments and converts literal values to expressions. - * - * @param array $args List of arguments to normalize - * - * @return list - */ - public function args(array $args): array { - $normalizedArgs = []; - foreach ($args as $key => $arg) { - if (!($arg instanceof Arg)) { - $arg = new Arg(BuilderHelpers::normalizeValue($arg)); - } - if (\is_string($key)) { - $arg->name = BuilderHelpers::normalizeIdentifier($key); - } - $normalizedArgs[] = $arg; - } - return $normalizedArgs; - } - - /** - * Creates a function call node. - * - * @param string|Name|Expr $name Function name - * @param array $args Function arguments - */ - public function funcCall($name, array $args = []): Expr\FuncCall { - return new Expr\FuncCall( - BuilderHelpers::normalizeNameOrExpr($name), - $this->args($args) - ); - } - - /** - * Creates a method call node. - * - * @param Expr $var Variable the method is called on - * @param string|Identifier|Expr $name Method name - * @param array $args Method arguments - */ - public function methodCall(Expr $var, $name, array $args = []): Expr\MethodCall { - return new Expr\MethodCall( - $var, - BuilderHelpers::normalizeIdentifierOrExpr($name), - $this->args($args) - ); - } - - /** - * Creates a static method call node. - * - * @param string|Name|Expr $class Class name - * @param string|Identifier|Expr $name Method name - * @param array $args Method arguments - */ - public function staticCall($class, $name, array $args = []): Expr\StaticCall { - return new Expr\StaticCall( - BuilderHelpers::normalizeNameOrExpr($class), - BuilderHelpers::normalizeIdentifierOrExpr($name), - $this->args($args) - ); - } - - /** - * Creates an object creation node. - * - * @param string|Name|Expr $class Class name - * @param array $args Constructor arguments - */ - public function new($class, array $args = []): Expr\New_ { - return new Expr\New_( - BuilderHelpers::normalizeNameOrExpr($class), - $this->args($args) - ); - } - - /** - * Creates a constant fetch node. - * - * @param string|Name $name Constant name - */ - public function constFetch($name): Expr\ConstFetch { - return new Expr\ConstFetch(BuilderHelpers::normalizeName($name)); - } - - /** - * Creates a property fetch node. - * - * @param Expr $var Variable holding object - * @param string|Identifier|Expr $name Property name - */ - public function propertyFetch(Expr $var, $name): Expr\PropertyFetch { - return new Expr\PropertyFetch($var, BuilderHelpers::normalizeIdentifierOrExpr($name)); - } - - /** - * Creates a class constant fetch node. - * - * @param string|Name|Expr $class Class name - * @param string|Identifier|Expr $name Constant name - */ - public function classConstFetch($class, $name): Expr\ClassConstFetch { - return new Expr\ClassConstFetch( - BuilderHelpers::normalizeNameOrExpr($class), - BuilderHelpers::normalizeIdentifierOrExpr($name) - ); - } - - /** - * Creates nested Concat nodes from a list of expressions. - * - * @param Expr|string ...$exprs Expressions or literal strings - */ - public function concat(...$exprs): Concat { - $numExprs = count($exprs); - if ($numExprs < 2) { - throw new \LogicException('Expected at least two expressions'); - } - - $lastConcat = $this->normalizeStringExpr($exprs[0]); - for ($i = 1; $i < $numExprs; $i++) { - $lastConcat = new Concat($lastConcat, $this->normalizeStringExpr($exprs[$i])); - } - return $lastConcat; - } - - /** - * @param string|Expr $expr - */ - private function normalizeStringExpr($expr): Expr { - if ($expr instanceof Expr) { - return $expr; - } - - if (\is_string($expr)) { - return new String_($expr); - } - - throw new \LogicException('Expected string or Expr'); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php deleted file mode 100644 index 3e41b26..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ /dev/null @@ -1,333 +0,0 @@ -getNode(); - } - - if ($node instanceof Node) { - return $node; - } - - throw new \LogicException('Expected node or builder object'); - } - - /** - * Normalizes a node to a statement. - * - * Expressions are wrapped in a Stmt\Expression node. - * - * @param Node|Builder $node The node to normalize - * - * @return Stmt The normalized statement node - */ - public static function normalizeStmt($node): Stmt { - $node = self::normalizeNode($node); - if ($node instanceof Stmt) { - return $node; - } - - if ($node instanceof Expr) { - return new Stmt\Expression($node); - } - - throw new \LogicException('Expected statement or expression node'); - } - - /** - * Normalizes strings to Identifier. - * - * @param string|Identifier $name The identifier to normalize - * - * @return Identifier The normalized identifier - */ - public static function normalizeIdentifier($name): Identifier { - if ($name instanceof Identifier) { - return $name; - } - - if (\is_string($name)) { - return new Identifier($name); - } - - throw new \LogicException('Expected string or instance of Node\Identifier'); - } - - /** - * Normalizes strings to Identifier, also allowing expressions. - * - * @param string|Identifier|Expr $name The identifier to normalize - * - * @return Identifier|Expr The normalized identifier or expression - */ - public static function normalizeIdentifierOrExpr($name) { - if ($name instanceof Identifier || $name instanceof Expr) { - return $name; - } - - if (\is_string($name)) { - return new Identifier($name); - } - - throw new \LogicException('Expected string or instance of Node\Identifier or Node\Expr'); - } - - /** - * Normalizes a name: Converts string names to Name nodes. - * - * @param Name|string $name The name to normalize - * - * @return Name The normalized name - */ - public static function normalizeName($name): Name { - if ($name instanceof Name) { - return $name; - } - - if (is_string($name)) { - if (!$name) { - throw new \LogicException('Name cannot be empty'); - } - - if ($name[0] === '\\') { - return new Name\FullyQualified(substr($name, 1)); - } - - if (0 === strpos($name, 'namespace\\')) { - return new Name\Relative(substr($name, strlen('namespace\\'))); - } - - return new Name($name); - } - - throw new \LogicException('Name must be a string or an instance of Node\Name'); - } - - /** - * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. - * - * @param Expr|Name|string $name The name to normalize - * - * @return Name|Expr The normalized name or expression - */ - public static function normalizeNameOrExpr($name) { - if ($name instanceof Expr) { - return $name; - } - - if (!is_string($name) && !($name instanceof Name)) { - throw new \LogicException( - 'Name must be a string or an instance of Node\Name or Node\Expr' - ); - } - - return self::normalizeName($name); - } - - /** - * Normalizes a type: Converts plain-text type names into proper AST representation. - * - * In particular, builtin types become Identifiers, custom types become Names and nullables - * are wrapped in NullableType nodes. - * - * @param string|Name|Identifier|ComplexType $type The type to normalize - * - * @return Name|Identifier|ComplexType The normalized type - */ - public static function normalizeType($type) { - if (!is_string($type)) { - if ( - !$type instanceof Name && !$type instanceof Identifier && - !$type instanceof ComplexType - ) { - throw new \LogicException( - 'Type must be a string, or an instance of Name, Identifier or ComplexType' - ); - } - return $type; - } - - $nullable = false; - if (strlen($type) > 0 && $type[0] === '?') { - $nullable = true; - $type = substr($type, 1); - } - - $builtinTypes = [ - 'array', - 'callable', - 'bool', - 'int', - 'float', - 'string', - 'iterable', - 'void', - 'object', - 'null', - 'false', - 'mixed', - 'never', - 'true', - ]; - - $lowerType = strtolower($type); - if (in_array($lowerType, $builtinTypes)) { - $type = new Identifier($lowerType); - } else { - $type = self::normalizeName($type); - } - - $notNullableTypes = [ - 'void', 'mixed', 'never', - ]; - if ($nullable && in_array((string) $type, $notNullableTypes)) { - throw new \LogicException(sprintf('%s type cannot be nullable', $type)); - } - - return $nullable ? new NullableType($type) : $type; - } - - /** - * Normalizes a value: Converts nulls, booleans, integers, - * floats, strings and arrays into their respective nodes - * - * @param Node\Expr|bool|null|int|float|string|array $value The value to normalize - * - * @return Expr The normalized value - */ - public static function normalizeValue($value): Expr { - if ($value instanceof Node\Expr) { - return $value; - } - - if (is_null($value)) { - return new Expr\ConstFetch( - new Name('null') - ); - } - - if (is_bool($value)) { - return new Expr\ConstFetch( - new Name($value ? 'true' : 'false') - ); - } - - if (is_int($value)) { - return new Scalar\Int_($value); - } - - if (is_float($value)) { - return new Scalar\Float_($value); - } - - if (is_string($value)) { - return new Scalar\String_($value); - } - - if (is_array($value)) { - $items = []; - $lastKey = -1; - foreach ($value as $itemKey => $itemValue) { - // for consecutive, numeric keys don't generate keys - if (null !== $lastKey && ++$lastKey === $itemKey) { - $items[] = new Node\ArrayItem( - self::normalizeValue($itemValue) - ); - } else { - $lastKey = null; - $items[] = new Node\ArrayItem( - self::normalizeValue($itemValue), - self::normalizeValue($itemKey) - ); - } - } - - return new Expr\Array_($items); - } - - throw new \LogicException('Invalid value'); - } - - /** - * Normalizes a doc comment: Converts plain strings to PhpParser\Comment\Doc. - * - * @param Comment\Doc|string $docComment The doc comment to normalize - * - * @return Comment\Doc The normalized doc comment - */ - public static function normalizeDocComment($docComment): Comment\Doc { - if ($docComment instanceof Comment\Doc) { - return $docComment; - } - - if (is_string($docComment)) { - return new Comment\Doc($docComment); - } - - throw new \LogicException('Doc comment must be a string or an instance of PhpParser\Comment\Doc'); - } - - /** - * Normalizes a attribute: Converts attribute to the Attribute Group if needed. - * - * @param Node\Attribute|Node\AttributeGroup $attribute - * - * @return Node\AttributeGroup The Attribute Group - */ - public static function normalizeAttribute($attribute): Node\AttributeGroup { - if ($attribute instanceof Node\AttributeGroup) { - return $attribute; - } - - if (!($attribute instanceof Node\Attribute)) { - throw new \LogicException('Attribute must be an instance of PhpParser\Node\Attribute or PhpParser\Node\AttributeGroup'); - } - - return new Node\AttributeGroup([$attribute]); - } - - /** - * Adds a modifier and returns new modifier bitmask. - * - * @param int $modifiers Existing modifiers - * @param int $modifier Modifier to set - * - * @return int New modifiers - */ - public static function addModifier(int $modifiers, int $modifier): int { - Modifiers::verifyModifier($modifiers, $modifier); - return $modifiers | $modifier; - } - - /** - * Adds a modifier and returns new modifier bitmask. - * @return int New modifiers - */ - public static function addClassModifier(int $existingModifiers, int $modifierToSet): int { - Modifiers::verifyClassModifier($existingModifiers, $modifierToSet); - return $existingModifiers | $modifierToSet; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment.php deleted file mode 100644 index 17dc4c7..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment.php +++ /dev/null @@ -1,207 +0,0 @@ -text = $text; - $this->startLine = $startLine; - $this->startFilePos = $startFilePos; - $this->startTokenPos = $startTokenPos; - $this->endLine = $endLine; - $this->endFilePos = $endFilePos; - $this->endTokenPos = $endTokenPos; - } - - /** - * Gets the comment text. - * - * @return string The comment text (including comment delimiters like /*) - */ - public function getText(): string { - return $this->text; - } - - /** - * Gets the line number the comment started on. - * - * @return int Line number (or -1 if not available) - */ - public function getStartLine(): int { - return $this->startLine; - } - - /** - * Gets the file offset the comment started on. - * - * @return int File offset (or -1 if not available) - */ - public function getStartFilePos(): int { - return $this->startFilePos; - } - - /** - * Gets the token offset the comment started on. - * - * @return int Token offset (or -1 if not available) - */ - public function getStartTokenPos(): int { - return $this->startTokenPos; - } - - /** - * Gets the line number the comment ends on. - * - * @return int Line number (or -1 if not available) - */ - public function getEndLine(): int { - return $this->endLine; - } - - /** - * Gets the file offset the comment ends on. - * - * @return int File offset (or -1 if not available) - */ - public function getEndFilePos(): int { - return $this->endFilePos; - } - - /** - * Gets the token offset the comment ends on. - * - * @return int Token offset (or -1 if not available) - */ - public function getEndTokenPos(): int { - return $this->endTokenPos; - } - - /** - * Gets the comment text. - * - * @return string The comment text (including comment delimiters like /*) - */ - public function __toString(): string { - return $this->text; - } - - /** - * Gets the reformatted comment text. - * - * "Reformatted" here means that we try to clean up the whitespace at the - * starts of the lines. This is necessary because we receive the comments - * without leading whitespace on the first line, but with leading whitespace - * on all subsequent lines. - * - * Additionally, this normalizes CRLF newlines to LF newlines. - */ - public function getReformattedText(): string { - $text = str_replace("\r\n", "\n", $this->text); - $newlinePos = strpos($text, "\n"); - if (false === $newlinePos) { - // Single line comments don't need further processing - return $text; - } - if (preg_match('(^.*(?:\n\s+\*.*)+$)', $text)) { - // Multi line comment of the type - // - // /* - // * Some text. - // * Some more text. - // */ - // - // is handled by replacing the whitespace sequences before the * by a single space - return preg_replace('(^\s+\*)m', ' *', $text); - } - if (preg_match('(^/\*\*?\s*\n)', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) { - // Multi line comment of the type - // - // /* - // Some text. - // Some more text. - // */ - // - // is handled by removing the whitespace sequence on the line before the closing - // */ on all lines. So if the last line is " */", then " " is removed at the - // start of all lines. - return preg_replace('(^' . preg_quote($matches[1]) . ')m', '', $text); - } - if (preg_match('(^/\*\*?\s*(?!\s))', $text, $matches)) { - // Multi line comment of the type - // - // /* Some text. - // Some more text. - // Indented text. - // Even more text. */ - // - // is handled by removing the difference between the shortest whitespace prefix on all - // lines and the length of the "/* " opening sequence. - $prefixLen = $this->getShortestWhitespacePrefixLen(substr($text, $newlinePos + 1)); - $removeLen = $prefixLen - strlen($matches[0]); - return preg_replace('(^\s{' . $removeLen . '})m', '', $text); - } - - // No idea how to format this comment, so simply return as is - return $text; - } - - /** - * Get length of shortest whitespace prefix (at the start of a line). - * - * If there is a line with no prefix whitespace, 0 is a valid return value. - * - * @param string $str String to check - * @return int Length in characters. Tabs count as single characters. - */ - private function getShortestWhitespacePrefixLen(string $str): int { - $lines = explode("\n", $str); - $shortestPrefixLen = \PHP_INT_MAX; - foreach ($lines as $line) { - preg_match('(^\s*)', $line, $matches); - $prefixLen = strlen($matches[0]); - if ($prefixLen < $shortestPrefixLen) { - $shortestPrefixLen = $prefixLen; - } - } - return $shortestPrefixLen; - } - - /** - * @return array{nodeType:string, text:mixed, line:mixed, filePos:mixed} - */ - public function jsonSerialize(): array { - // Technically not a node, but we make it look like one anyway - $type = $this instanceof Comment\Doc ? 'Comment_Doc' : 'Comment'; - return [ - 'nodeType' => $type, - 'text' => $this->text, - // TODO: Rename these to include "start". - 'line' => $this->startLine, - 'filePos' => $this->startFilePos, - 'tokenPos' => $this->startTokenPos, - 'endLine' => $this->endLine, - 'endFilePos' => $this->endFilePos, - 'endTokenPos' => $this->endTokenPos, - ]; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php deleted file mode 100644 index bb3e914..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php +++ /dev/null @@ -1,6 +0,0 @@ -fallbackEvaluator = $fallbackEvaluator ?? function (Expr $expr) { - throw new ConstExprEvaluationException( - "Expression of type {$expr->getType()} cannot be evaluated" - ); - }; - } - - /** - * Silently evaluates a constant expression into a PHP value. - * - * Thrown Errors, warnings or notices will be converted into a ConstExprEvaluationException. - * The original source of the exception is available through getPrevious(). - * - * If some part of the expression cannot be evaluated, the fallback evaluator passed to the - * constructor will be invoked. By default, if no fallback is provided, an exception of type - * ConstExprEvaluationException is thrown. - * - * See class doc comment for caveats and limitations. - * - * @param Expr $expr Constant expression to evaluate - * @return mixed Result of evaluation - * - * @throws ConstExprEvaluationException if the expression cannot be evaluated or an error occurred - */ - public function evaluateSilently(Expr $expr) { - set_error_handler(function ($num, $str, $file, $line) { - throw new \ErrorException($str, 0, $num, $file, $line); - }); - - try { - return $this->evaluate($expr); - } catch (\Throwable $e) { - if (!$e instanceof ConstExprEvaluationException) { - $e = new ConstExprEvaluationException( - "An error occurred during constant expression evaluation", 0, $e); - } - throw $e; - } finally { - restore_error_handler(); - } - } - - /** - * Directly evaluates a constant expression into a PHP value. - * - * May generate Error exceptions, warnings or notices. Use evaluateSilently() to convert these - * into a ConstExprEvaluationException. - * - * If some part of the expression cannot be evaluated, the fallback evaluator passed to the - * constructor will be invoked. By default, if no fallback is provided, an exception of type - * ConstExprEvaluationException is thrown. - * - * See class doc comment for caveats and limitations. - * - * @param Expr $expr Constant expression to evaluate - * @return mixed Result of evaluation - * - * @throws ConstExprEvaluationException if the expression cannot be evaluated - */ - public function evaluateDirectly(Expr $expr) { - return $this->evaluate($expr); - } - - /** @return mixed */ - private function evaluate(Expr $expr) { - if ($expr instanceof Scalar\Int_ - || $expr instanceof Scalar\Float_ - || $expr instanceof Scalar\String_ - ) { - return $expr->value; - } - - if ($expr instanceof Expr\Array_) { - return $this->evaluateArray($expr); - } - - // Unary operators - if ($expr instanceof Expr\UnaryPlus) { - return +$this->evaluate($expr->expr); - } - if ($expr instanceof Expr\UnaryMinus) { - return -$this->evaluate($expr->expr); - } - if ($expr instanceof Expr\BooleanNot) { - return !$this->evaluate($expr->expr); - } - if ($expr instanceof Expr\BitwiseNot) { - return ~$this->evaluate($expr->expr); - } - - if ($expr instanceof Expr\BinaryOp) { - return $this->evaluateBinaryOp($expr); - } - - if ($expr instanceof Expr\Ternary) { - return $this->evaluateTernary($expr); - } - - if ($expr instanceof Expr\ArrayDimFetch && null !== $expr->dim) { - return $this->evaluate($expr->var)[$this->evaluate($expr->dim)]; - } - - if ($expr instanceof Expr\ConstFetch) { - return $this->evaluateConstFetch($expr); - } - - return ($this->fallbackEvaluator)($expr); - } - - private function evaluateArray(Expr\Array_ $expr): array { - $array = []; - foreach ($expr->items as $item) { - if (null !== $item->key) { - $array[$this->evaluate($item->key)] = $this->evaluate($item->value); - } elseif ($item->unpack) { - $array = array_merge($array, $this->evaluate($item->value)); - } else { - $array[] = $this->evaluate($item->value); - } - } - return $array; - } - - /** @return mixed */ - private function evaluateTernary(Expr\Ternary $expr) { - if (null === $expr->if) { - return $this->evaluate($expr->cond) ?: $this->evaluate($expr->else); - } - - return $this->evaluate($expr->cond) - ? $this->evaluate($expr->if) - : $this->evaluate($expr->else); - } - - /** @return mixed */ - private function evaluateBinaryOp(Expr\BinaryOp $expr) { - if ($expr instanceof Expr\BinaryOp\Coalesce - && $expr->left instanceof Expr\ArrayDimFetch - ) { - // This needs to be special cased to respect BP_VAR_IS fetch semantics - return $this->evaluate($expr->left->var)[$this->evaluate($expr->left->dim)] - ?? $this->evaluate($expr->right); - } - - // The evaluate() calls are repeated in each branch, because some of the operators are - // short-circuiting and evaluating the RHS in advance may be illegal in that case - $l = $expr->left; - $r = $expr->right; - switch ($expr->getOperatorSigil()) { - case '&': return $this->evaluate($l) & $this->evaluate($r); - case '|': return $this->evaluate($l) | $this->evaluate($r); - case '^': return $this->evaluate($l) ^ $this->evaluate($r); - case '&&': return $this->evaluate($l) && $this->evaluate($r); - case '||': return $this->evaluate($l) || $this->evaluate($r); - case '??': return $this->evaluate($l) ?? $this->evaluate($r); - case '.': return $this->evaluate($l) . $this->evaluate($r); - case '/': return $this->evaluate($l) / $this->evaluate($r); - case '==': return $this->evaluate($l) == $this->evaluate($r); - case '>': return $this->evaluate($l) > $this->evaluate($r); - case '>=': return $this->evaluate($l) >= $this->evaluate($r); - case '===': return $this->evaluate($l) === $this->evaluate($r); - case 'and': return $this->evaluate($l) and $this->evaluate($r); - case 'or': return $this->evaluate($l) or $this->evaluate($r); - case 'xor': return $this->evaluate($l) xor $this->evaluate($r); - case '-': return $this->evaluate($l) - $this->evaluate($r); - case '%': return $this->evaluate($l) % $this->evaluate($r); - case '*': return $this->evaluate($l) * $this->evaluate($r); - case '!=': return $this->evaluate($l) != $this->evaluate($r); - case '!==': return $this->evaluate($l) !== $this->evaluate($r); - case '+': return $this->evaluate($l) + $this->evaluate($r); - case '**': return $this->evaluate($l) ** $this->evaluate($r); - case '<<': return $this->evaluate($l) << $this->evaluate($r); - case '>>': return $this->evaluate($l) >> $this->evaluate($r); - case '<': return $this->evaluate($l) < $this->evaluate($r); - case '<=': return $this->evaluate($l) <= $this->evaluate($r); - case '<=>': return $this->evaluate($l) <=> $this->evaluate($r); - } - - throw new \Exception('Should not happen'); - } - - /** @return mixed */ - private function evaluateConstFetch(Expr\ConstFetch $expr) { - $name = $expr->name->toLowerString(); - switch ($name) { - case 'null': return null; - case 'false': return false; - case 'true': return true; - } - - return ($this->fallbackEvaluator)($expr); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Error.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Error.php deleted file mode 100644 index 02feace..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Error.php +++ /dev/null @@ -1,171 +0,0 @@ - */ - protected array $attributes; - - /** - * Creates an Exception signifying a parse error. - * - * @param string $message Error message - * @param array $attributes Attributes of node/token where error occurred - */ - public function __construct(string $message, array $attributes = []) { - $this->rawMessage = $message; - $this->attributes = $attributes; - $this->updateMessage(); - } - - /** - * Gets the error message - * - * @return string Error message - */ - public function getRawMessage(): string { - return $this->rawMessage; - } - - /** - * Gets the line the error starts in. - * - * @return int Error start line - */ - public function getStartLine(): int { - return $this->attributes['startLine'] ?? -1; - } - - /** - * Gets the line the error ends in. - * - * @return int Error end line - */ - public function getEndLine(): int { - return $this->attributes['endLine'] ?? -1; - } - - /** - * Gets the attributes of the node/token the error occurred at. - * - * @return array - */ - public function getAttributes(): array { - return $this->attributes; - } - - /** - * Sets the attributes of the node/token the error occurred at. - * - * @param array $attributes - */ - public function setAttributes(array $attributes): void { - $this->attributes = $attributes; - $this->updateMessage(); - } - - /** - * Sets the line of the PHP file the error occurred in. - * - * @param string $message Error message - */ - public function setRawMessage(string $message): void { - $this->rawMessage = $message; - $this->updateMessage(); - } - - /** - * Sets the line the error starts in. - * - * @param int $line Error start line - */ - public function setStartLine(int $line): void { - $this->attributes['startLine'] = $line; - $this->updateMessage(); - } - - /** - * Returns whether the error has start and end column information. - * - * For column information enable the startFilePos and endFilePos in the lexer options. - */ - public function hasColumnInfo(): bool { - return isset($this->attributes['startFilePos'], $this->attributes['endFilePos']); - } - - /** - * Gets the start column (1-based) into the line where the error started. - * - * @param string $code Source code of the file - */ - public function getStartColumn(string $code): int { - if (!$this->hasColumnInfo()) { - throw new \RuntimeException('Error does not have column information'); - } - - return $this->toColumn($code, $this->attributes['startFilePos']); - } - - /** - * Gets the end column (1-based) into the line where the error ended. - * - * @param string $code Source code of the file - */ - public function getEndColumn(string $code): int { - if (!$this->hasColumnInfo()) { - throw new \RuntimeException('Error does not have column information'); - } - - return $this->toColumn($code, $this->attributes['endFilePos']); - } - - /** - * Formats message including line and column information. - * - * @param string $code Source code associated with the error, for calculation of the columns - * - * @return string Formatted message - */ - public function getMessageWithColumnInfo(string $code): string { - return sprintf( - '%s from %d:%d to %d:%d', $this->getRawMessage(), - $this->getStartLine(), $this->getStartColumn($code), - $this->getEndLine(), $this->getEndColumn($code) - ); - } - - /** - * Converts a file offset into a column. - * - * @param string $code Source code that $pos indexes into - * @param int $pos 0-based position in $code - * - * @return int 1-based column (relative to start of line) - */ - private function toColumn(string $code, int $pos): int { - if ($pos > strlen($code)) { - throw new \RuntimeException('Invalid position information'); - } - - $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); - if (false === $lineStartPos) { - $lineStartPos = -1; - } - - return $pos - $lineStartPos; - } - - /** - * Updates the exception message after a change to rawMessage or rawLine. - */ - protected function updateMessage(): void { - $this->message = $this->rawMessage; - - if (-1 === $this->getStartLine()) { - $this->message .= ' on unknown line'; - } else { - $this->message .= ' on line ' . $this->getStartLine(); - } - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php deleted file mode 100644 index 51ad730..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php +++ /dev/null @@ -1,12 +0,0 @@ -errors[] = $error; - } - - /** - * Get collected errors. - * - * @return Error[] - */ - public function getErrors(): array { - return $this->errors; - } - - /** - * Check whether there are any errors. - */ - public function hasErrors(): bool { - return !empty($this->errors); - } - - /** - * Reset/clear collected errors. - */ - public function clearErrors(): void { - $this->errors = []; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php deleted file mode 100644 index dff33dd..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +++ /dev/null @@ -1,17 +0,0 @@ -type = $type; - $this->old = $old; - $this->new = $new; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php deleted file mode 100644 index 253e175..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php +++ /dev/null @@ -1,178 +0,0 @@ -isEqual = $isEqual; - } - - /** - * Calculate diff (edit script) from $old to $new. - * - * @param T[] $old Original array - * @param T[] $new New array - * - * @return DiffElem[] Diff (edit script) - */ - public function diff(array $old, array $new): array { - $old = \array_values($old); - $new = \array_values($new); - list($trace, $x, $y) = $this->calculateTrace($old, $new); - return $this->extractDiff($trace, $x, $y, $old, $new); - } - - /** - * Calculate diff, including "replace" operations. - * - * If a sequence of remove operations is followed by the same number of add operations, these - * will be coalesced into replace operations. - * - * @param T[] $old Original array - * @param T[] $new New array - * - * @return DiffElem[] Diff (edit script), including replace operations - */ - public function diffWithReplacements(array $old, array $new): array { - return $this->coalesceReplacements($this->diff($old, $new)); - } - - /** - * @param T[] $old - * @param T[] $new - * @return array{array>, int, int} - */ - private function calculateTrace(array $old, array $new): array { - $n = \count($old); - $m = \count($new); - $max = $n + $m; - $v = [1 => 0]; - $trace = []; - for ($d = 0; $d <= $max; $d++) { - $trace[] = $v; - for ($k = -$d; $k <= $d; $k += 2) { - if ($k === -$d || ($k !== $d && $v[$k - 1] < $v[$k + 1])) { - $x = $v[$k + 1]; - } else { - $x = $v[$k - 1] + 1; - } - - $y = $x - $k; - while ($x < $n && $y < $m && ($this->isEqual)($old[$x], $new[$y])) { - $x++; - $y++; - } - - $v[$k] = $x; - if ($x >= $n && $y >= $m) { - return [$trace, $x, $y]; - } - } - } - throw new \Exception('Should not happen'); - } - - /** - * @param array> $trace - * @param T[] $old - * @param T[] $new - * @return DiffElem[] - */ - private function extractDiff(array $trace, int $x, int $y, array $old, array $new): array { - $result = []; - for ($d = \count($trace) - 1; $d >= 0; $d--) { - $v = $trace[$d]; - $k = $x - $y; - - if ($k === -$d || ($k !== $d && $v[$k - 1] < $v[$k + 1])) { - $prevK = $k + 1; - } else { - $prevK = $k - 1; - } - - $prevX = $v[$prevK]; - $prevY = $prevX - $prevK; - - while ($x > $prevX && $y > $prevY) { - $result[] = new DiffElem(DiffElem::TYPE_KEEP, $old[$x - 1], $new[$y - 1]); - $x--; - $y--; - } - - if ($d === 0) { - break; - } - - while ($x > $prevX) { - $result[] = new DiffElem(DiffElem::TYPE_REMOVE, $old[$x - 1], null); - $x--; - } - - while ($y > $prevY) { - $result[] = new DiffElem(DiffElem::TYPE_ADD, null, $new[$y - 1]); - $y--; - } - } - return array_reverse($result); - } - - /** - * Coalesce equal-length sequences of remove+add into a replace operation. - * - * @param DiffElem[] $diff - * @return DiffElem[] - */ - private function coalesceReplacements(array $diff): array { - $newDiff = []; - $c = \count($diff); - for ($i = 0; $i < $c; $i++) { - $diffType = $diff[$i]->type; - if ($diffType !== DiffElem::TYPE_REMOVE) { - $newDiff[] = $diff[$i]; - continue; - } - - $j = $i; - while ($j < $c && $diff[$j]->type === DiffElem::TYPE_REMOVE) { - $j++; - } - - $k = $j; - while ($k < $c && $diff[$k]->type === DiffElem::TYPE_ADD) { - $k++; - } - - if ($j - $i === $k - $j) { - $len = $j - $i; - for ($n = 0; $n < $len; $n++) { - $newDiff[] = new DiffElem( - DiffElem::TYPE_REPLACE, $diff[$i + $n]->old, $diff[$j + $n]->new - ); - } - } else { - for (; $i < $k; $i++) { - $newDiff[] = $diff[$i]; - } - } - $i = $k - 1; - } - return $newDiff; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php deleted file mode 100644 index b30a99a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ /dev/null @@ -1,71 +0,0 @@ - $attributes Attributes - */ - public function __construct( - array $attrGroups, int $flags, array $args, ?Node\Name $extends, array $implements, - array $stmts, array $attributes - ) { - parent::__construct($attributes); - $this->attrGroups = $attrGroups; - $this->flags = $flags; - $this->args = $args; - $this->extends = $extends; - $this->implements = $implements; - $this->stmts = $stmts; - } - - public static function fromNewNode(Expr\New_ $newNode): self { - $class = $newNode->class; - assert($class instanceof Node\Stmt\Class_); - // We don't assert that $class->name is null here, to allow consumers to assign unique names - // to anonymous classes for their own purposes. We simplify ignore the name here. - return new self( - $class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements, - $class->stmts, $newNode->getAttributes() - ); - } - - public function getType(): string { - return 'Expr_PrintableNewAnonClass'; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts']; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php deleted file mode 100644 index 36022d0..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +++ /dev/null @@ -1,237 +0,0 @@ -= 80000) { - class TokenPolyfill extends \PhpToken { - } - return; -} - -/** - * This is a polyfill for the PhpToken class introduced in PHP 8.0. We do not actually polyfill - * PhpToken, because composer might end up picking a different polyfill implementation, which does - * not meet our requirements. - * - * @internal - */ -class TokenPolyfill { - /** @var int The ID of the token. Either a T_* constant of a character code < 256. */ - public int $id; - /** @var string The textual content of the token. */ - public string $text; - /** @var int The 1-based starting line of the token (or -1 if unknown). */ - public int $line; - /** @var int The 0-based starting position of the token (or -1 if unknown). */ - public int $pos; - - /** @var array Tokens ignored by the PHP parser. */ - private const IGNORABLE_TOKENS = [ - \T_WHITESPACE => true, - \T_COMMENT => true, - \T_DOC_COMMENT => true, - \T_OPEN_TAG => true, - ]; - - /** @var array Tokens that may be part of a T_NAME_* identifier. */ - private static array $identifierTokens; - - /** - * Create a Token with the given ID and text, as well optional line and position information. - */ - final public function __construct(int $id, string $text, int $line = -1, int $pos = -1) { - $this->id = $id; - $this->text = $text; - $this->line = $line; - $this->pos = $pos; - } - - /** - * Get the name of the token. For single-char tokens this will be the token character. - * Otherwise it will be a T_* style name, or null if the token ID is unknown. - */ - public function getTokenName(): ?string { - if ($this->id < 256) { - return \chr($this->id); - } - - $name = token_name($this->id); - return $name === 'UNKNOWN' ? null : $name; - } - - /** - * Check whether the token is of the given kind. The kind may be either an integer that matches - * the token ID, a string that matches the token text, or an array of integers/strings. In the - * latter case, the function returns true if any of the kinds in the array match. - * - * @param int|string|(int|string)[] $kind - */ - public function is($kind): bool { - if (\is_int($kind)) { - return $this->id === $kind; - } - if (\is_string($kind)) { - return $this->text === $kind; - } - if (\is_array($kind)) { - foreach ($kind as $entry) { - if (\is_int($entry)) { - if ($this->id === $entry) { - return true; - } - } elseif (\is_string($entry)) { - if ($this->text === $entry) { - return true; - } - } else { - throw new \TypeError( - 'Argument #1 ($kind) must only have elements of type string|int, ' . - gettype($entry) . ' given'); - } - } - return false; - } - throw new \TypeError( - 'Argument #1 ($kind) must be of type string|int|array, ' .gettype($kind) . ' given'); - } - - /** - * Check whether this token would be ignored by the PHP parser. Returns true for T_WHITESPACE, - * T_COMMENT, T_DOC_COMMENT and T_OPEN_TAG, and false for everything else. - */ - public function isIgnorable(): bool { - return isset(self::IGNORABLE_TOKENS[$this->id]); - } - - /** - * Return the textual content of the token. - */ - public function __toString(): string { - return $this->text; - } - - /** - * Tokenize the given source code and return an array of tokens. - * - * This performs certain canonicalizations to match the PHP 8.0 token format: - * * Bad characters are represented using T_BAD_CHARACTER rather than omitted. - * * T_COMMENT does not include trailing newlines, instead the newline is part of a following - * T_WHITESPACE token. - * * Namespaced names are represented using T_NAME_* tokens. - * - * @return static[] - */ - public static function tokenize(string $code, int $flags = 0): array { - self::init(); - - $tokens = []; - $line = 1; - $pos = 0; - $origTokens = \token_get_all($code, $flags); - - $numTokens = \count($origTokens); - for ($i = 0; $i < $numTokens; $i++) { - $token = $origTokens[$i]; - if (\is_string($token)) { - if (\strlen($token) === 2) { - // b" and B" are tokenized as single-char tokens, even though they aren't. - $tokens[] = new static(\ord('"'), $token, $line, $pos); - $pos += 2; - } else { - $tokens[] = new static(\ord($token), $token, $line, $pos); - $pos++; - } - } else { - $id = $token[0]; - $text = $token[1]; - - // Emulate PHP 8.0 comment format, which does not include trailing whitespace anymore. - if ($id === \T_COMMENT && \substr($text, 0, 2) !== '/*' && - \preg_match('/(\r\n|\n|\r)$/D', $text, $matches) - ) { - $trailingNewline = $matches[0]; - $text = \substr($text, 0, -\strlen($trailingNewline)); - $tokens[] = new static($id, $text, $line, $pos); - $pos += \strlen($text); - - if ($i + 1 < $numTokens && $origTokens[$i + 1][0] === \T_WHITESPACE) { - // Move trailing newline into following T_WHITESPACE token, if it already exists. - $origTokens[$i + 1][1] = $trailingNewline . $origTokens[$i + 1][1]; - $origTokens[$i + 1][2]--; - } else { - // Otherwise, we need to create a new T_WHITESPACE token. - $tokens[] = new static(\T_WHITESPACE, $trailingNewline, $line, $pos); - $line++; - $pos += \strlen($trailingNewline); - } - continue; - } - - // Emulate PHP 8.0 T_NAME_* tokens, by combining sequences of T_NS_SEPARATOR and - // T_STRING into a single token. - if (($id === \T_NS_SEPARATOR || isset(self::$identifierTokens[$id]))) { - $newText = $text; - $lastWasSeparator = $id === \T_NS_SEPARATOR; - for ($j = $i + 1; $j < $numTokens; $j++) { - if ($lastWasSeparator) { - if (!isset(self::$identifierTokens[$origTokens[$j][0]])) { - break; - } - $lastWasSeparator = false; - } else { - if ($origTokens[$j][0] !== \T_NS_SEPARATOR) { - break; - } - $lastWasSeparator = true; - } - $newText .= $origTokens[$j][1]; - } - if ($lastWasSeparator) { - // Trailing separator is not part of the name. - $j--; - $newText = \substr($newText, 0, -1); - } - if ($j > $i + 1) { - if ($id === \T_NS_SEPARATOR) { - $id = \T_NAME_FULLY_QUALIFIED; - } elseif ($id === \T_NAMESPACE) { - $id = \T_NAME_RELATIVE; - } else { - $id = \T_NAME_QUALIFIED; - } - $tokens[] = new static($id, $newText, $line, $pos); - $pos += \strlen($newText); - $i = $j - 1; - continue; - } - } - - $tokens[] = new static($id, $text, $line, $pos); - $line += \substr_count($text, "\n"); - $pos += \strlen($text); - } - } - return $tokens; - } - - /** Initialize private static state needed by tokenize(). */ - private static function init(): void { - if (isset(self::$identifierTokens)) { - return; - } - - // Based on semi_reserved production. - self::$identifierTokens = \array_fill_keys([ - \T_STRING, - \T_STATIC, \T_ABSTRACT, \T_FINAL, \T_PRIVATE, \T_PROTECTED, \T_PUBLIC, \T_READONLY, - \T_INCLUDE, \T_INCLUDE_ONCE, \T_EVAL, \T_REQUIRE, \T_REQUIRE_ONCE, \T_LOGICAL_OR, \T_LOGICAL_XOR, \T_LOGICAL_AND, - \T_INSTANCEOF, \T_NEW, \T_CLONE, \T_EXIT, \T_IF, \T_ELSEIF, \T_ELSE, \T_ENDIF, \T_ECHO, \T_DO, \T_WHILE, - \T_ENDWHILE, \T_FOR, \T_ENDFOR, \T_FOREACH, \T_ENDFOREACH, \T_DECLARE, \T_ENDDECLARE, \T_AS, \T_TRY, \T_CATCH, - \T_FINALLY, \T_THROW, \T_USE, \T_INSTEADOF, \T_GLOBAL, \T_VAR, \T_UNSET, \T_ISSET, \T_EMPTY, \T_CONTINUE, \T_GOTO, - \T_FUNCTION, \T_CONST, \T_RETURN, \T_PRINT, \T_YIELD, \T_LIST, \T_SWITCH, \T_ENDSWITCH, \T_CASE, \T_DEFAULT, - \T_BREAK, \T_ARRAY, \T_CALLABLE, \T_EXTENDS, \T_IMPLEMENTS, \T_NAMESPACE, \T_TRAIT, \T_INTERFACE, \T_CLASS, - \T_CLASS_C, \T_TRAIT_C, \T_FUNC_C, \T_METHOD_C, \T_LINE, \T_FILE, \T_DIR, \T_NS_C, \T_HALT_COMPILER, \T_FN, - \T_MATCH, - ], true); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php deleted file mode 100644 index 8fba131..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +++ /dev/null @@ -1,271 +0,0 @@ -tokens = $tokens; - $this->indentMap = $this->calcIndentMap(); - } - - /** - * Whether the given position is immediately surrounded by parenthesis. - * - * @param int $startPos Start position - * @param int $endPos End position - */ - public function haveParens(int $startPos, int $endPos): bool { - return $this->haveTokenImmediatelyBefore($startPos, '(') - && $this->haveTokenImmediatelyAfter($endPos, ')'); - } - - /** - * Whether the given position is immediately surrounded by braces. - * - * @param int $startPos Start position - * @param int $endPos End position - */ - public function haveBraces(int $startPos, int $endPos): bool { - return ($this->haveTokenImmediatelyBefore($startPos, '{') - || $this->haveTokenImmediatelyBefore($startPos, T_CURLY_OPEN)) - && $this->haveTokenImmediatelyAfter($endPos, '}'); - } - - /** - * Check whether the position is directly preceded by a certain token type. - * - * During this check whitespace and comments are skipped. - * - * @param int $pos Position before which the token should occur - * @param int|string $expectedTokenType Token to check for - * - * @return bool Whether the expected token was found - */ - public function haveTokenImmediatelyBefore(int $pos, $expectedTokenType): bool { - $tokens = $this->tokens; - $pos--; - for (; $pos >= 0; $pos--) { - $token = $tokens[$pos]; - if ($token->is($expectedTokenType)) { - return true; - } - if (!$token->isIgnorable()) { - break; - } - } - return false; - } - - /** - * Check whether the position is directly followed by a certain token type. - * - * During this check whitespace and comments are skipped. - * - * @param int $pos Position after which the token should occur - * @param int|string $expectedTokenType Token to check for - * - * @return bool Whether the expected token was found - */ - public function haveTokenImmediatelyAfter(int $pos, $expectedTokenType): bool { - $tokens = $this->tokens; - $pos++; - for ($c = \count($tokens); $pos < $c; $pos++) { - $token = $tokens[$pos]; - if ($token->is($expectedTokenType)) { - return true; - } - if (!$token->isIgnorable()) { - break; - } - } - return false; - } - - /** @param int|string|(int|string)[] $skipTokenType */ - public function skipLeft(int $pos, $skipTokenType): int { - $tokens = $this->tokens; - - $pos = $this->skipLeftWhitespace($pos); - if ($skipTokenType === \T_WHITESPACE) { - return $pos; - } - - if (!$tokens[$pos]->is($skipTokenType)) { - // Shouldn't happen. The skip token MUST be there - throw new \Exception('Encountered unexpected token'); - } - $pos--; - - return $this->skipLeftWhitespace($pos); - } - - /** @param int|string|(int|string)[] $skipTokenType */ - public function skipRight(int $pos, $skipTokenType): int { - $tokens = $this->tokens; - - $pos = $this->skipRightWhitespace($pos); - if ($skipTokenType === \T_WHITESPACE) { - return $pos; - } - - if (!$tokens[$pos]->is($skipTokenType)) { - // Shouldn't happen. The skip token MUST be there - throw new \Exception('Encountered unexpected token'); - } - $pos++; - - return $this->skipRightWhitespace($pos); - } - - /** - * Return first non-whitespace token position smaller or equal to passed position. - * - * @param int $pos Token position - * @return int Non-whitespace token position - */ - public function skipLeftWhitespace(int $pos): int { - $tokens = $this->tokens; - for (; $pos >= 0; $pos--) { - if (!$tokens[$pos]->isIgnorable()) { - break; - } - } - return $pos; - } - - /** - * Return first non-whitespace position greater or equal to passed position. - * - * @param int $pos Token position - * @return int Non-whitespace token position - */ - public function skipRightWhitespace(int $pos): int { - $tokens = $this->tokens; - for ($count = \count($tokens); $pos < $count; $pos++) { - if (!$tokens[$pos]->isIgnorable()) { - break; - } - } - return $pos; - } - - /** @param int|string|(int|string)[] $findTokenType */ - public function findRight(int $pos, $findTokenType): int { - $tokens = $this->tokens; - for ($count = \count($tokens); $pos < $count; $pos++) { - if ($tokens[$pos]->is($findTokenType)) { - return $pos; - } - } - return -1; - } - - /** - * Whether the given position range contains a certain token type. - * - * @param int $startPos Starting position (inclusive) - * @param int $endPos Ending position (exclusive) - * @param int|string $tokenType Token type to look for - * @return bool Whether the token occurs in the given range - */ - public function haveTokenInRange(int $startPos, int $endPos, $tokenType): bool { - $tokens = $this->tokens; - for ($pos = $startPos; $pos < $endPos; $pos++) { - if ($tokens[$pos]->is($tokenType)) { - return true; - } - } - return false; - } - - public function haveTagInRange(int $startPos, int $endPos): bool { - return $this->haveTokenInRange($startPos, $endPos, \T_OPEN_TAG) - || $this->haveTokenInRange($startPos, $endPos, \T_CLOSE_TAG); - } - - /** - * Get indentation before token position. - * - * @param int $pos Token position - * - * @return int Indentation depth (in spaces) - */ - public function getIndentationBefore(int $pos): int { - return $this->indentMap[$pos]; - } - - /** - * Get the code corresponding to a token offset range, optionally adjusted for indentation. - * - * @param int $from Token start position (inclusive) - * @param int $to Token end position (exclusive) - * @param int $indent By how much the code should be indented (can be negative as well) - * - * @return string Code corresponding to token range, adjusted for indentation - */ - public function getTokenCode(int $from, int $to, int $indent): string { - $tokens = $this->tokens; - $result = ''; - for ($pos = $from; $pos < $to; $pos++) { - $token = $tokens[$pos]; - $id = $token->id; - $text = $token->text; - if ($id === \T_CONSTANT_ENCAPSED_STRING || $id === \T_ENCAPSED_AND_WHITESPACE) { - $result .= $text; - } else { - // TODO Handle non-space indentation - if ($indent < 0) { - $result .= str_replace("\n" . str_repeat(" ", -$indent), "\n", $text); - } elseif ($indent > 0) { - $result .= str_replace("\n", "\n" . str_repeat(" ", $indent), $text); - } else { - $result .= $text; - } - } - } - return $result; - } - - /** - * Precalculate the indentation at every token position. - * - * @return int[] Token position to indentation map - */ - private function calcIndentMap(): array { - $indentMap = []; - $indent = 0; - foreach ($this->tokens as $token) { - $indentMap[] = $indent; - - if ($token->id === \T_WHITESPACE) { - $content = $token->text; - $newlinePos = \strrpos($content, "\n"); - if (false !== $newlinePos) { - $indent = \strlen($content) - $newlinePos - 1; - } - } - } - - // Add a sentinel for one past end of the file - $indentMap[] = $indent; - - return $indentMap; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php deleted file mode 100644 index 7be4142..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php +++ /dev/null @@ -1,108 +0,0 @@ -[] Node type to reflection class map */ - private array $reflectionClassCache; - - /** @return mixed */ - public function decode(string $json) { - $value = json_decode($json, true); - if (json_last_error()) { - throw new \RuntimeException('JSON decoding error: ' . json_last_error_msg()); - } - - return $this->decodeRecursive($value); - } - - /** - * @param mixed $value - * @return mixed - */ - private function decodeRecursive($value) { - if (\is_array($value)) { - if (isset($value['nodeType'])) { - if ($value['nodeType'] === 'Comment' || $value['nodeType'] === 'Comment_Doc') { - return $this->decodeComment($value); - } - return $this->decodeNode($value); - } - return $this->decodeArray($value); - } - return $value; - } - - private function decodeArray(array $array): array { - $decodedArray = []; - foreach ($array as $key => $value) { - $decodedArray[$key] = $this->decodeRecursive($value); - } - return $decodedArray; - } - - private function decodeNode(array $value): Node { - $nodeType = $value['nodeType']; - if (!\is_string($nodeType)) { - throw new \RuntimeException('Node type must be a string'); - } - - $reflectionClass = $this->reflectionClassFromNodeType($nodeType); - $node = $reflectionClass->newInstanceWithoutConstructor(); - - if (isset($value['attributes'])) { - if (!\is_array($value['attributes'])) { - throw new \RuntimeException('Attributes must be an array'); - } - - $node->setAttributes($this->decodeArray($value['attributes'])); - } - - foreach ($value as $name => $subNode) { - if ($name === 'nodeType' || $name === 'attributes') { - continue; - } - - $node->$name = $this->decodeRecursive($subNode); - } - - return $node; - } - - private function decodeComment(array $value): Comment { - $className = $value['nodeType'] === 'Comment' ? Comment::class : Comment\Doc::class; - if (!isset($value['text'])) { - throw new \RuntimeException('Comment must have text'); - } - - return new $className( - $value['text'], - $value['line'] ?? -1, $value['filePos'] ?? -1, $value['tokenPos'] ?? -1, - $value['endLine'] ?? -1, $value['endFilePos'] ?? -1, $value['endTokenPos'] ?? -1 - ); - } - - /** @return \ReflectionClass */ - private function reflectionClassFromNodeType(string $nodeType): \ReflectionClass { - if (!isset($this->reflectionClassCache[$nodeType])) { - $className = $this->classNameFromNodeType($nodeType); - $this->reflectionClassCache[$nodeType] = new \ReflectionClass($className); - } - return $this->reflectionClassCache[$nodeType]; - } - - /** @return class-string */ - private function classNameFromNodeType(string $nodeType): string { - $className = 'PhpParser\\Node\\' . strtr($nodeType, '_', '\\'); - if (class_exists($className)) { - return $className; - } - - $className .= '_'; - if (class_exists($className)) { - return $className; - } - - throw new \RuntimeException("Unknown node type \"$nodeType\""); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer.php deleted file mode 100644 index 5e2ece9..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ /dev/null @@ -1,116 +0,0 @@ -postprocessTokens($tokens, $errorHandler); - - if (false !== $scream) { - ini_set('xdebug.scream', $scream); - } - - return $tokens; - } - - private function handleInvalidCharacter(Token $token, ErrorHandler $errorHandler): void { - $chr = $token->text; - if ($chr === "\0") { - // PHP cuts error message after null byte, so need special case - $errorMsg = 'Unexpected null byte'; - } else { - $errorMsg = sprintf( - 'Unexpected character "%s" (ASCII %d)', $chr, ord($chr) - ); - } - - $errorHandler->handleError(new Error($errorMsg, [ - 'startLine' => $token->line, - 'endLine' => $token->line, - 'startFilePos' => $token->pos, - 'endFilePos' => $token->pos, - ])); - } - - private function isUnterminatedComment(Token $token): bool { - return $token->is([\T_COMMENT, \T_DOC_COMMENT]) - && substr($token->text, 0, 2) === '/*' - && substr($token->text, -2) !== '*/'; - } - - /** - * @param list $tokens - */ - protected function postprocessTokens(array &$tokens, ErrorHandler $errorHandler): void { - // This function reports errors (bad characters and unterminated comments) in the token - // array, and performs certain canonicalizations: - // * Use PHP 8.1 T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG and - // T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG tokens used to disambiguate intersection types. - // * Add a sentinel token with ID 0. - - $numTokens = \count($tokens); - if ($numTokens === 0) { - // Empty input edge case: Just add the sentinel token. - $tokens[] = new Token(0, "\0", 1, 0); - return; - } - - for ($i = 0; $i < $numTokens; $i++) { - $token = $tokens[$i]; - if ($token->id === \T_BAD_CHARACTER) { - $this->handleInvalidCharacter($token, $errorHandler); - } - - if ($token->id === \ord('&')) { - $next = $i + 1; - while (isset($tokens[$next]) && $tokens[$next]->id === \T_WHITESPACE) { - $next++; - } - $followedByVarOrVarArg = isset($tokens[$next]) && - $tokens[$next]->is([\T_VARIABLE, \T_ELLIPSIS]); - $token->id = $followedByVarOrVarArg - ? \T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG - : \T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG; - } - } - - // Check for unterminated comment - $lastToken = $tokens[$numTokens - 1]; - if ($this->isUnterminatedComment($lastToken)) { - $errorHandler->handleError(new Error('Unterminated comment', [ - 'startLine' => $lastToken->line, - 'endLine' => $lastToken->getEndLine(), - 'startFilePos' => $lastToken->pos, - 'endFilePos' => $lastToken->getEndPos(), - ])); - } - - // Add sentinel token. - $tokens[] = new Token(0, "\0", $lastToken->getEndLine(), $lastToken->getEndPos()); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php deleted file mode 100644 index 934954c..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +++ /dev/null @@ -1,226 +0,0 @@ - */ - private array $emulators = []; - - private PhpVersion $targetPhpVersion; - - private PhpVersion $hostPhpVersion; - - /** - * @param PhpVersion|null $phpVersion PHP version to emulate. Defaults to newest supported. - */ - public function __construct(?PhpVersion $phpVersion = null) { - $this->targetPhpVersion = $phpVersion ?? PhpVersion::getNewestSupported(); - $this->hostPhpVersion = PhpVersion::getHostVersion(); - - $emulators = [ - new MatchTokenEmulator(), - new NullsafeTokenEmulator(), - new AttributeEmulator(), - new EnumTokenEmulator(), - new ReadonlyTokenEmulator(), - new ExplicitOctalEmulator(), - new ReadonlyFunctionTokenEmulator(), - ]; - - // Collect emulators that are relevant for the PHP version we're running - // and the PHP version we're targeting for emulation. - foreach ($emulators as $emulator) { - $emulatorPhpVersion = $emulator->getPhpVersion(); - if ($this->isForwardEmulationNeeded($emulatorPhpVersion)) { - $this->emulators[] = $emulator; - } elseif ($this->isReverseEmulationNeeded($emulatorPhpVersion)) { - $this->emulators[] = new ReverseEmulator($emulator); - } - } - } - - public function tokenize(string $code, ?ErrorHandler $errorHandler = null): array { - $emulators = array_filter($this->emulators, function ($emulator) use ($code) { - return $emulator->isEmulationNeeded($code); - }); - - if (empty($emulators)) { - // Nothing to emulate, yay - return parent::tokenize($code, $errorHandler); - } - - if ($errorHandler === null) { - $errorHandler = new ErrorHandler\Throwing(); - } - - $this->patches = []; - foreach ($emulators as $emulator) { - $code = $emulator->preprocessCode($code, $this->patches); - } - - $collector = new ErrorHandler\Collecting(); - $tokens = parent::tokenize($code, $collector); - $this->sortPatches(); - $tokens = $this->fixupTokens($tokens); - - $errors = $collector->getErrors(); - if (!empty($errors)) { - $this->fixupErrors($errors); - foreach ($errors as $error) { - $errorHandler->handleError($error); - } - } - - foreach ($emulators as $emulator) { - $tokens = $emulator->emulate($code, $tokens); - } - - return $tokens; - } - - private function isForwardEmulationNeeded(PhpVersion $emulatorPhpVersion): bool { - return $this->hostPhpVersion->older($emulatorPhpVersion) - && $this->targetPhpVersion->newerOrEqual($emulatorPhpVersion); - } - - private function isReverseEmulationNeeded(PhpVersion $emulatorPhpVersion): bool { - return $this->hostPhpVersion->newerOrEqual($emulatorPhpVersion) - && $this->targetPhpVersion->older($emulatorPhpVersion); - } - - private function sortPatches(): void { - // Patches may be contributed by different emulators. - // Make sure they are sorted by increasing patch position. - usort($this->patches, function ($p1, $p2) { - return $p1[0] <=> $p2[0]; - }); - } - - /** - * @param list $tokens - * @return list - */ - private function fixupTokens(array $tokens): array { - if (\count($this->patches) === 0) { - return $tokens; - } - - // Load first patch - $patchIdx = 0; - list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; - - // We use a manual loop over the tokens, because we modify the array on the fly - $posDelta = 0; - $lineDelta = 0; - for ($i = 0, $c = \count($tokens); $i < $c; $i++) { - $token = $tokens[$i]; - $pos = $token->pos; - $token->pos += $posDelta; - $token->line += $lineDelta; - $localPosDelta = 0; - $len = \strlen($token->text); - while ($patchPos >= $pos && $patchPos < $pos + $len) { - $patchTextLen = \strlen($patchText); - if ($patchType === 'remove') { - if ($patchPos === $pos && $patchTextLen === $len) { - // Remove token entirely - array_splice($tokens, $i, 1, []); - $i--; - $c--; - } else { - // Remove from token string - $token->text = substr_replace( - $token->text, '', $patchPos - $pos + $localPosDelta, $patchTextLen - ); - $localPosDelta -= $patchTextLen; - } - $lineDelta -= \substr_count($patchText, "\n"); - } elseif ($patchType === 'add') { - // Insert into the token string - $token->text = substr_replace( - $token->text, $patchText, $patchPos - $pos + $localPosDelta, 0 - ); - $localPosDelta += $patchTextLen; - $lineDelta += \substr_count($patchText, "\n"); - } elseif ($patchType === 'replace') { - // Replace inside the token string - $token->text = substr_replace( - $token->text, $patchText, $patchPos - $pos + $localPosDelta, $patchTextLen - ); - } else { - assert(false); - } - - // Fetch the next patch - $patchIdx++; - if ($patchIdx >= \count($this->patches)) { - // No more patches. However, we still need to adjust position. - $patchPos = \PHP_INT_MAX; - break; - } - - list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; - } - - $posDelta += $localPosDelta; - } - return $tokens; - } - - /** - * Fixup line and position information in errors. - * - * @param Error[] $errors - */ - private function fixupErrors(array $errors): void { - foreach ($errors as $error) { - $attrs = $error->getAttributes(); - - $posDelta = 0; - $lineDelta = 0; - foreach ($this->patches as $patch) { - list($patchPos, $patchType, $patchText) = $patch; - if ($patchPos >= $attrs['startFilePos']) { - // No longer relevant - break; - } - - if ($patchType === 'add') { - $posDelta += strlen($patchText); - $lineDelta += substr_count($patchText, "\n"); - } elseif ($patchType === 'remove') { - $posDelta -= strlen($patchText); - $lineDelta -= substr_count($patchText, "\n"); - } - } - - $attrs['startFilePos'] += $posDelta; - $attrs['endFilePos'] += $posDelta; - $attrs['startLine'] += $lineDelta; - $attrs['endLine'] += $lineDelta; - $error->setAttributes($attrs); - } - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php deleted file mode 100644 index 2c12f33..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +++ /dev/null @@ -1,49 +0,0 @@ -text === '#' && isset($tokens[$i + 1]) && $tokens[$i + 1]->text === '[') { - array_splice($tokens, $i, 2, [ - new Token(\T_ATTRIBUTE, '#[', $token->line, $token->pos), - ]); - $c--; - continue; - } - } - - return $tokens; - } - - public function reverseEmulate(string $code, array $tokens): array { - // TODO - return $tokens; - } - - public function preprocessCode(string $code, array &$patches): string { - $pos = 0; - while (false !== $pos = strpos($code, '#[', $pos)) { - // Replace #[ with %[ - $code[$pos] = '%'; - $patches[] = [$pos, 'replace', '#']; - $pos += 2; - } - return $code; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php deleted file mode 100644 index 5418f52..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +++ /dev/null @@ -1,26 +0,0 @@ -id === \T_WHITESPACE - && $tokens[$pos + 2]->id === \T_STRING; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php deleted file mode 100644 index 9cadf42..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +++ /dev/null @@ -1,45 +0,0 @@ -id == \T_LNUMBER && $token->text === '0' && - isset($tokens[$i + 1]) && $tokens[$i + 1]->id == \T_STRING && - preg_match('/[oO][0-7]+(?:_[0-7]+)*/', $tokens[$i + 1]->text) - ) { - $tokenKind = $this->resolveIntegerOrFloatToken($tokens[$i + 1]->text); - array_splice($tokens, $i, 2, [ - new Token($tokenKind, '0' . $tokens[$i + 1]->text, $token->line, $token->pos), - ]); - $c--; - } - } - return $tokens; - } - - private function resolveIntegerOrFloatToken(string $str): int { - $str = substr($str, 1); - $str = str_replace('_', '', $str); - $num = octdec($str); - return is_float($num) ? \T_DNUMBER : \T_LNUMBER; - } - - public function reverseEmulate(string $code, array $tokens): array { - // Explicit octals were not legal code previously, don't bother. - return $tokens; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php deleted file mode 100644 index 9803f99..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +++ /dev/null @@ -1,56 +0,0 @@ -getKeywordString()) !== false; - } - - /** @param Token[] $tokens */ - protected function isKeywordContext(array $tokens, int $pos): bool { - $previousNonSpaceToken = $this->getPreviousNonSpaceToken($tokens, $pos); - return $previousNonSpaceToken === null || $previousNonSpaceToken->id !== \T_OBJECT_OPERATOR; - } - - public function emulate(string $code, array $tokens): array { - $keywordString = $this->getKeywordString(); - foreach ($tokens as $i => $token) { - if ($token->id === T_STRING && strtolower($token->text) === $keywordString - && $this->isKeywordContext($tokens, $i)) { - $token->id = $this->getKeywordToken(); - } - } - - return $tokens; - } - - /** @param Token[] $tokens */ - private function getPreviousNonSpaceToken(array $tokens, int $start): ?Token { - for ($i = $start - 1; $i >= 0; --$i) { - if ($tokens[$i]->id === T_WHITESPACE) { - continue; - } - - return $tokens[$i]; - } - - return null; - } - - public function reverseEmulate(string $code, array $tokens): array { - $keywordToken = $this->getKeywordToken(); - foreach ($tokens as $token) { - if ($token->id === $keywordToken) { - $token->id = \T_STRING; - } - } - - return $tokens; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php deleted file mode 100644 index 0fa5fbc..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +++ /dev/null @@ -1,19 +0,0 @@ -') !== false; - } - - public function emulate(string $code, array $tokens): array { - // We need to manually iterate and manage a count because we'll change - // the tokens array on the way - for ($i = 0, $c = count($tokens); $i < $c; ++$i) { - $token = $tokens[$i]; - if ($token->text === '?' && isset($tokens[$i + 1]) && $tokens[$i + 1]->id === \T_OBJECT_OPERATOR) { - array_splice($tokens, $i, 2, [ - new Token(\T_NULLSAFE_OBJECT_OPERATOR, '?->', $token->line, $token->pos), - ]); - $c--; - continue; - } - - // Handle ?-> inside encapsed string. - if ($token->id === \T_ENCAPSED_AND_WHITESPACE && isset($tokens[$i - 1]) - && $tokens[$i - 1]->id === \T_VARIABLE - && preg_match('/^\?->([a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)/', $token->text, $matches) - ) { - $replacement = [ - new Token(\T_NULLSAFE_OBJECT_OPERATOR, '?->', $token->line, $token->pos), - new Token(\T_STRING, $matches[1], $token->line, $token->pos + 3), - ]; - $matchLen = \strlen($matches[0]); - if ($matchLen !== \strlen($token->text)) { - $replacement[] = new Token( - \T_ENCAPSED_AND_WHITESPACE, - \substr($token->text, $matchLen), - $token->line, $token->pos + $matchLen - ); - } - array_splice($tokens, $i, 1, $replacement); - $c += \count($replacement) - 1; - continue; - } - } - - return $tokens; - } - - public function reverseEmulate(string $code, array $tokens): array { - // ?-> was not valid code previously, don't bother. - return $tokens; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php deleted file mode 100644 index 5990d7f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +++ /dev/null @@ -1,31 +0,0 @@ -text === '(' || - ($tokens[$pos + 1]->id === \T_WHITESPACE && - isset($tokens[$pos + 2]) && - $tokens[$pos + 2]->text === '('))); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php deleted file mode 100644 index 851b5c4..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +++ /dev/null @@ -1,37 +0,0 @@ -emulator = $emulator; - } - - public function getPhpVersion(): PhpVersion { - return $this->emulator->getPhpVersion(); - } - - public function isEmulationNeeded(string $code): bool { - return $this->emulator->isEmulationNeeded($code); - } - - public function emulate(string $code, array $tokens): array { - return $this->emulator->reverseEmulate($code, $tokens); - } - - public function reverseEmulate(string $code, array $tokens): array { - return $this->emulator->emulate($code, $tokens); - } - - public function preprocessCode(string $code, array &$patches): string { - return $code; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php deleted file mode 100644 index fec2f19..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +++ /dev/null @@ -1,30 +0,0 @@ - [aliasName => originalName]] */ - protected array $aliases = []; - - /** @var Name[][] Same as $aliases but preserving original case */ - protected array $origAliases = []; - - /** @var ErrorHandler Error handler */ - protected ErrorHandler $errorHandler; - - /** - * Create a name context. - * - * @param ErrorHandler $errorHandler Error handling used to report errors - */ - public function __construct(ErrorHandler $errorHandler) { - $this->errorHandler = $errorHandler; - } - - /** - * Start a new namespace. - * - * This also resets the alias table. - * - * @param Name|null $namespace Null is the global namespace - */ - public function startNamespace(?Name $namespace = null): void { - $this->namespace = $namespace; - $this->origAliases = $this->aliases = [ - Stmt\Use_::TYPE_NORMAL => [], - Stmt\Use_::TYPE_FUNCTION => [], - Stmt\Use_::TYPE_CONSTANT => [], - ]; - } - - /** - * Add an alias / import. - * - * @param Name $name Original name - * @param string $aliasName Aliased name - * @param Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_* - * @param array $errorAttrs Attributes to use to report an error - */ - public function addAlias(Name $name, string $aliasName, int $type, array $errorAttrs = []): void { - // Constant names are case sensitive, everything else case insensitive - if ($type === Stmt\Use_::TYPE_CONSTANT) { - $aliasLookupName = $aliasName; - } else { - $aliasLookupName = strtolower($aliasName); - } - - if (isset($this->aliases[$type][$aliasLookupName])) { - $typeStringMap = [ - Stmt\Use_::TYPE_NORMAL => '', - Stmt\Use_::TYPE_FUNCTION => 'function ', - Stmt\Use_::TYPE_CONSTANT => 'const ', - ]; - - $this->errorHandler->handleError(new Error( - sprintf( - 'Cannot use %s%s as %s because the name is already in use', - $typeStringMap[$type], $name, $aliasName - ), - $errorAttrs - )); - return; - } - - $this->aliases[$type][$aliasLookupName] = $name; - $this->origAliases[$type][$aliasName] = $name; - } - - /** - * Get current namespace. - * - * @return null|Name Namespace (or null if global namespace) - */ - public function getNamespace(): ?Name { - return $this->namespace; - } - - /** - * Get resolved name. - * - * @param Name $name Name to resolve - * @param Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_{FUNCTION|CONSTANT} - * - * @return null|Name Resolved name, or null if static resolution is not possible - */ - public function getResolvedName(Name $name, int $type): ?Name { - // don't resolve special class names - if ($type === Stmt\Use_::TYPE_NORMAL && $name->isSpecialClassName()) { - if (!$name->isUnqualified()) { - $this->errorHandler->handleError(new Error( - sprintf("'\\%s' is an invalid class name", $name->toString()), - $name->getAttributes() - )); - } - return $name; - } - - // fully qualified names are already resolved - if ($name->isFullyQualified()) { - return $name; - } - - // Try to resolve aliases - if (null !== $resolvedName = $this->resolveAlias($name, $type)) { - return $resolvedName; - } - - if ($type !== Stmt\Use_::TYPE_NORMAL && $name->isUnqualified()) { - if (null === $this->namespace) { - // outside of a namespace unaliased unqualified is same as fully qualified - return new FullyQualified($name, $name->getAttributes()); - } - - // Cannot resolve statically - return null; - } - - // if no alias exists prepend current namespace - return FullyQualified::concat($this->namespace, $name, $name->getAttributes()); - } - - /** - * Get resolved class name. - * - * @param Name $name Class ame to resolve - * - * @return Name Resolved name - */ - public function getResolvedClassName(Name $name): Name { - return $this->getResolvedName($name, Stmt\Use_::TYPE_NORMAL); - } - - /** - * Get possible ways of writing a fully qualified name (e.g., by making use of aliases). - * - * @param string $name Fully-qualified name (without leading namespace separator) - * @param Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_* - * - * @return Name[] Possible representations of the name - */ - public function getPossibleNames(string $name, int $type): array { - $lcName = strtolower($name); - - if ($type === Stmt\Use_::TYPE_NORMAL) { - // self, parent and static must always be unqualified - if ($lcName === "self" || $lcName === "parent" || $lcName === "static") { - return [new Name($name)]; - } - } - - // Collect possible ways to write this name, starting with the fully-qualified name - $possibleNames = [new FullyQualified($name)]; - - if (null !== $nsRelativeName = $this->getNamespaceRelativeName($name, $lcName, $type)) { - // Make sure there is no alias that makes the normally namespace-relative name - // into something else - if (null === $this->resolveAlias($nsRelativeName, $type)) { - $possibleNames[] = $nsRelativeName; - } - } - - // Check for relevant namespace use statements - foreach ($this->origAliases[Stmt\Use_::TYPE_NORMAL] as $alias => $orig) { - $lcOrig = $orig->toLowerString(); - if (0 === strpos($lcName, $lcOrig . '\\')) { - $possibleNames[] = new Name($alias . substr($name, strlen($lcOrig))); - } - } - - // Check for relevant type-specific use statements - foreach ($this->origAliases[$type] as $alias => $orig) { - if ($type === Stmt\Use_::TYPE_CONSTANT) { - // Constants are are complicated-sensitive - $normalizedOrig = $this->normalizeConstName($orig->toString()); - if ($normalizedOrig === $this->normalizeConstName($name)) { - $possibleNames[] = new Name($alias); - } - } else { - // Everything else is case-insensitive - if ($orig->toLowerString() === $lcName) { - $possibleNames[] = new Name($alias); - } - } - } - - return $possibleNames; - } - - /** - * Get shortest representation of this fully-qualified name. - * - * @param string $name Fully-qualified name (without leading namespace separator) - * @param Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_* - * - * @return Name Shortest representation - */ - public function getShortName(string $name, int $type): Name { - $possibleNames = $this->getPossibleNames($name, $type); - - // Find shortest name - $shortestName = null; - $shortestLength = \INF; - foreach ($possibleNames as $possibleName) { - $length = strlen($possibleName->toCodeString()); - if ($length < $shortestLength) { - $shortestName = $possibleName; - $shortestLength = $length; - } - } - - return $shortestName; - } - - private function resolveAlias(Name $name, int $type): ?FullyQualified { - $firstPart = $name->getFirst(); - - if ($name->isQualified()) { - // resolve aliases for qualified names, always against class alias table - $checkName = strtolower($firstPart); - if (isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$checkName])) { - $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$checkName]; - return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes()); - } - } elseif ($name->isUnqualified()) { - // constant aliases are case-sensitive, function aliases case-insensitive - $checkName = $type === Stmt\Use_::TYPE_CONSTANT ? $firstPart : strtolower($firstPart); - if (isset($this->aliases[$type][$checkName])) { - // resolve unqualified aliases - return new FullyQualified($this->aliases[$type][$checkName], $name->getAttributes()); - } - } - - // No applicable aliases - return null; - } - - private function getNamespaceRelativeName(string $name, string $lcName, int $type): ?Name { - if (null === $this->namespace) { - return new Name($name); - } - - if ($type === Stmt\Use_::TYPE_CONSTANT) { - // The constants true/false/null always resolve to the global symbols, even inside a - // namespace, so they may be used without qualification - if ($lcName === "true" || $lcName === "false" || $lcName === "null") { - return new Name($name); - } - } - - $namespacePrefix = strtolower($this->namespace . '\\'); - if (0 === strpos($lcName, $namespacePrefix)) { - return new Name(substr($name, strlen($namespacePrefix))); - } - - return null; - } - - private function normalizeConstName(string $name): string { - $nsSep = strrpos($name, '\\'); - if (false === $nsSep) { - return $name; - } - - // Constants have case-insensitive namespace and case-sensitive short-name - $ns = substr($name, 0, $nsSep); - $shortName = substr($name, $nsSep + 1); - return strtolower($ns) . '\\' . $shortName; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node.php deleted file mode 100644 index 258e451..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node.php +++ /dev/null @@ -1,146 +0,0 @@ - - */ - public function getAttributes(): array; - - /** - * Replaces all the attributes of this node. - * - * @param array $attributes - */ - public function setAttributes(array $attributes): void; -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php deleted file mode 100644 index 6680efa..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +++ /dev/null @@ -1,44 +0,0 @@ - $attributes Additional attributes - * @param Identifier|null $name Parameter name (for named parameters) - */ - public function __construct( - Expr $value, bool $byRef = false, bool $unpack = false, array $attributes = [], - ?Identifier $name = null - ) { - $this->attributes = $attributes; - $this->name = $name; - $this->value = $value; - $this->byRef = $byRef; - $this->unpack = $unpack; - } - - public function getSubNodeNames(): array { - return ['name', 'value', 'byRef', 'unpack']; - } - - public function getType(): string { - return 'Arg'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php deleted file mode 100644 index fa1cff5..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +++ /dev/null @@ -1,43 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $value, ?Expr $key = null, bool $byRef = false, array $attributes = [], bool $unpack = false) { - $this->attributes = $attributes; - $this->key = $key; - $this->value = $value; - $this->byRef = $byRef; - $this->unpack = $unpack; - } - - public function getSubNodeNames(): array { - return ['key', 'value', 'byRef', 'unpack']; - } - - public function getType(): string { - return 'ArrayItem'; - } -} - -// @deprecated compatibility alias -class_alias(ArrayItem::class, Expr\ArrayItem::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php deleted file mode 100644 index 9d89243..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php +++ /dev/null @@ -1,33 +0,0 @@ - Attribute arguments */ - public array $args; - - /** - * @param Node\Name $name Attribute name - * @param list $args Attribute arguments - * @param array $attributes Additional node attributes - */ - public function __construct(Name $name, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['name', 'args']; - } - - public function getType(): string { - return 'Attribute'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php deleted file mode 100644 index b9eb588..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +++ /dev/null @@ -1,27 +0,0 @@ - $attributes Additional node attributes - */ - public function __construct(array $attrs, array $attributes = []) { - $this->attributes = $attributes; - $this->attrs = $attrs; - } - - public function getSubNodeNames(): array { - return ['attrs']; - } - - public function getType(): string { - return 'AttributeGroup'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php deleted file mode 100644 index e313280..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +++ /dev/null @@ -1,36 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr\Variable $var, bool $byRef = false, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->byRef = $byRef; - } - - public function getSubNodeNames(): array { - return ['var', 'byRef']; - } - - public function getType(): string { - return 'ClosureUse'; - } -} - -// @deprecated compatibility alias -class_alias(ClosureUse::class, Expr\ClosureUse::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php deleted file mode 100644 index 05a5e5e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +++ /dev/null @@ -1,13 +0,0 @@ - $attributes Additional attributes - */ - public function __construct($name, Expr $value, array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Identifier($name) : $name; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['name', 'value']; - } - - public function getType(): string { - return 'Const'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php deleted file mode 100644 index 55c1fe4..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +++ /dev/null @@ -1,37 +0,0 @@ -value pair node. - * - * @param string|Node\Identifier $key Key - * @param Node\Expr $value Value - * @param array $attributes Additional attributes - */ - public function __construct($key, Node\Expr $value, array $attributes = []) { - $this->attributes = $attributes; - $this->key = \is_string($key) ? new Node\Identifier($key) : $key; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['key', 'value']; - } - - public function getType(): string { - return 'DeclareItem'; - } -} - -// @deprecated compatibility alias -class_alias(DeclareItem::class, Stmt\DeclareDeclare::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php deleted file mode 100644 index 8b7dbb6..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php +++ /dev/null @@ -1,8 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, ?Expr $dim = null, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->dim = $dim; - } - - public function getSubNodeNames(): array { - return ['var', 'dim']; - } - - public function getType(): string { - return 'Expr_ArrayDimFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php deleted file mode 100644 index 490ac93..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $items = [], array $attributes = []) { - $this->attributes = $attributes; - $this->items = $items; - } - - public function getSubNodeNames(): array { - return ['items']; - } - - public function getType(): string { - return 'Expr_Array'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php deleted file mode 100644 index 0e98ce9..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +++ /dev/null @@ -1,84 +0,0 @@ - false : Whether the closure is static - * 'byRef' => false : Whether to return by reference - * 'params' => array() : Parameters - * 'returnType' => null : Return type - * 'attrGroups' => array() : PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct(array $subNodes, array $attributes = []) { - $this->attributes = $attributes; - $this->static = $subNodes['static'] ?? false; - $this->byRef = $subNodes['byRef'] ?? false; - $this->params = $subNodes['params'] ?? []; - $this->returnType = $subNodes['returnType'] ?? null; - $this->expr = $subNodes['expr']; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'static', 'byRef', 'params', 'returnType', 'expr']; - } - - public function returnsByRef(): bool { - return $this->byRef; - } - - public function getParams(): array { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getAttrGroups(): array { - return $this->attrGroups; - } - - /** - * @return Node\Stmt\Return_[] - */ - public function getStmts(): array { - return [new Node\Stmt\Return_($this->expr)]; - } - - public function getType(): string { - return 'Expr_ArrowFunction'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php deleted file mode 100644 index dcbf84d..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['var', 'expr']; - } - - public function getType(): string { - return 'Expr_Assign'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php deleted file mode 100644 index 5209a64..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['var', 'expr']; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php deleted file mode 100644 index 4f3623f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +++ /dev/null @@ -1,11 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['var', 'expr']; - } - - public function getType(): string { - return 'Expr_AssignRef'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php deleted file mode 100644 index 1b92bd4..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +++ /dev/null @@ -1,37 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $left, Expr $right, array $attributes = []) { - $this->attributes = $attributes; - $this->left = $left; - $this->right = $right; - } - - public function getSubNodeNames(): array { - return ['left', 'right']; - } - - /** - * Get the operator sigil for this binary operation. - * - * In the case there are multiple possible sigils for an operator, this method does not - * necessarily return the one used in the parsed code. - */ - abstract public function getOperatorSigil(): string; -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php deleted file mode 100644 index 5930c54..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +++ /dev/null @@ -1,15 +0,0 @@ -'; - } - - public function getType(): string { - return 'Expr_BinaryOp_Greater'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php deleted file mode 100644 index 4d440b1..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +++ /dev/null @@ -1,15 +0,0 @@ -='; - } - - public function getType(): string { - return 'Expr_BinaryOp_GreaterOrEqual'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php deleted file mode 100644 index e25d17c..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +++ /dev/null @@ -1,15 +0,0 @@ ->'; - } - - public function getType(): string { - return 'Expr_BinaryOp_ShiftRight'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php deleted file mode 100644 index 01e9b23..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +++ /dev/null @@ -1,15 +0,0 @@ -'; - } - - public function getType(): string { - return 'Expr_BinaryOp_Spaceship'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php deleted file mode 100644 index b7175a7..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_BitwiseNot'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php deleted file mode 100644 index c66d233..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_BooleanNot'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php deleted file mode 100644 index 2af2245..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ - abstract public function getRawArgs(): array; - - /** - * Returns whether this call expression is actually a first class callable. - */ - public function isFirstClassCallable(): bool { - $rawArgs = $this->getRawArgs(); - return count($rawArgs) === 1 && current($rawArgs) instanceof VariadicPlaceholder; - } - - /** - * Assert that this is not a first-class callable and return only ordinary Args. - * - * @return Arg[] - */ - public function getArgs(): array { - assert(!$this->isFirstClassCallable()); - return $this->getRawArgs(); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php deleted file mode 100644 index c2751de..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +++ /dev/null @@ -1,25 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php deleted file mode 100644 index 471cb82..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +++ /dev/null @@ -1,11 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node $class, $name, array $attributes = []) { - $this->attributes = $attributes; - $this->class = $class; - $this->name = \is_string($name) ? new Identifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['class', 'name']; - } - - public function getType(): string { - return 'Expr_ClassConstFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php deleted file mode 100644 index d85bc9a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Clone'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php deleted file mode 100644 index 0680446..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +++ /dev/null @@ -1,86 +0,0 @@ - false : Whether the closure is static - * 'byRef' => false : Whether to return by reference - * 'params' => array(): Parameters - * 'uses' => array(): use()s - * 'returnType' => null : Return type - * 'stmts' => array(): Statements - * 'attrGroups' => array(): PHP attributes groups - * @param array $attributes Additional attributes - */ - public function __construct(array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->static = $subNodes['static'] ?? false; - $this->byRef = $subNodes['byRef'] ?? false; - $this->params = $subNodes['params'] ?? []; - $this->uses = $subNodes['uses'] ?? []; - $this->returnType = $subNodes['returnType'] ?? null; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'static', 'byRef', 'params', 'uses', 'returnType', 'stmts']; - } - - public function returnsByRef(): bool { - return $this->byRef; - } - - public function getParams(): array { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - /** @return Node\Stmt[] */ - public function getStmts(): array { - return $this->stmts; - } - - public function getAttrGroups(): array { - return $this->attrGroups; - } - - public function getType(): string { - return 'Expr_Closure'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php deleted file mode 100644 index 681ff31..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Name $name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - } - - public function getSubNodeNames(): array { - return ['name']; - } - - public function getType(): string { - return 'Expr_ConstFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php deleted file mode 100644 index d2f3050..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Empty'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php deleted file mode 100644 index 43010ac..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +++ /dev/null @@ -1,30 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $attributes = []) { - $this->attributes = $attributes; - } - - public function getSubNodeNames(): array { - return []; - } - - public function getType(): string { - return 'Expr_Error'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php deleted file mode 100644 index 32625a2..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_ErrorSuppress'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php deleted file mode 100644 index 5120b1b..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Eval'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php deleted file mode 100644 index cf00246..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Expr $expr = null, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Exit'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php deleted file mode 100644 index 0b85840..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +++ /dev/null @@ -1,38 +0,0 @@ - Arguments */ - public array $args; - - /** - * Constructs a function call node. - * - * @param Node\Name|Expr $name Function name - * @param array $args Arguments - * @param array $attributes Additional attributes - */ - public function __construct(Node $name, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['name', 'args']; - } - - public function getType(): string { - return 'Expr_FuncCall'; - } - - public function getRawArgs(): array { - return $this->args; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php deleted file mode 100644 index e1187b1..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +++ /dev/null @@ -1,38 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, int $type, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - $this->type = $type; - } - - public function getSubNodeNames(): array { - return ['expr', 'type']; - } - - public function getType(): string { - return 'Expr_Include'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php deleted file mode 100644 index a2783cb..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +++ /dev/null @@ -1,35 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, Node $class, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - $this->class = $class; - } - - public function getSubNodeNames(): array { - return ['expr', 'class']; - } - - public function getType(): string { - return 'Expr_Instanceof'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php deleted file mode 100644 index 4f80fff..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $vars, array $attributes = []) { - $this->attributes = $attributes; - $this->vars = $vars; - } - - public function getSubNodeNames(): array { - return ['vars']; - } - - public function getType(): string { - return 'Expr_Isset'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php deleted file mode 100644 index 496b7b3..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +++ /dev/null @@ -1,34 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $items, array $attributes = []) { - $this->attributes = $attributes; - $this->items = $items; - } - - public function getSubNodeNames(): array { - return ['items']; - } - - public function getType(): string { - return 'Expr_List'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php deleted file mode 100644 index cd028a2..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +++ /dev/null @@ -1,32 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $arms = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->arms = $arms; - } - - public function getSubNodeNames(): array { - return ['cond', 'arms']; - } - - public function getType(): string { - return 'Expr_Match'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php deleted file mode 100644 index 2703c75..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +++ /dev/null @@ -1,45 +0,0 @@ - Arguments */ - public array $args; - - /** - * Constructs a function call node. - * - * @param Expr $var Variable holding object - * @param string|Identifier|Expr $name Method name - * @param array $args Arguments - * @param array $attributes Additional attributes - */ - public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->name = \is_string($name) ? new Identifier($name) : $name; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['var', 'name', 'args']; - } - - public function getType(): string { - return 'Expr_MethodCall'; - } - - public function getRawArgs(): array { - return $this->args; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php deleted file mode 100644 index eedaaa1..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +++ /dev/null @@ -1,40 +0,0 @@ - Arguments */ - public array $args; - - /** - * Constructs a function call node. - * - * @param Node\Name|Expr|Node\Stmt\Class_ $class Class name (or class node for anonymous classes) - * @param array $args Arguments - * @param array $attributes Additional attributes - */ - public function __construct(Node $class, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->class = $class; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['class', 'args']; - } - - public function getType(): string { - return 'Expr_New'; - } - - public function getRawArgs(): array { - return $this->args; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php deleted file mode 100644 index a151f71..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +++ /dev/null @@ -1,45 +0,0 @@ - Arguments */ - public array $args; - - /** - * Constructs a nullsafe method call node. - * - * @param Expr $var Variable holding object - * @param string|Identifier|Expr $name Method name - * @param array $args Arguments - * @param array $attributes Additional attributes - */ - public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->name = \is_string($name) ? new Identifier($name) : $name; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['var', 'name', 'args']; - } - - public function getType(): string { - return 'Expr_NullsafeMethodCall'; - } - - public function getRawArgs(): array { - return $this->args; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php deleted file mode 100644 index 6f73a16..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +++ /dev/null @@ -1,35 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, $name, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->name = \is_string($name) ? new Identifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['var', 'name']; - } - - public function getType(): string { - return 'Expr_NullsafePropertyFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php deleted file mode 100644 index 3dca8fd..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - } - - public function getSubNodeNames(): array { - return ['var']; - } - - public function getType(): string { - return 'Expr_PostDec'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php deleted file mode 100644 index bc990c3..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - } - - public function getSubNodeNames(): array { - return ['var']; - } - - public function getType(): string { - return 'Expr_PostInc'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php deleted file mode 100644 index 2f16873..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - } - - public function getSubNodeNames(): array { - return ['var']; - } - - public function getType(): string { - return 'Expr_PreDec'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php deleted file mode 100644 index fd455f5..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - } - - public function getSubNodeNames(): array { - return ['var']; - } - - public function getType(): string { - return 'Expr_PreInc'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php deleted file mode 100644 index 6057476..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Print'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php deleted file mode 100644 index 8c416a8..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +++ /dev/null @@ -1,35 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $var, $name, array $attributes = []) { - $this->attributes = $attributes; - $this->var = $var; - $this->name = \is_string($name) ? new Identifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['var', 'name']; - } - - public function getType(): string { - return 'Expr_PropertyFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php deleted file mode 100644 index e400351..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +++ /dev/null @@ -1,30 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $parts, array $attributes = []) { - $this->attributes = $attributes; - $this->parts = $parts; - } - - public function getSubNodeNames(): array { - return ['parts']; - } - - public function getType(): string { - return 'Expr_ShellExec'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php deleted file mode 100644 index 707f34b..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +++ /dev/null @@ -1,45 +0,0 @@ - Arguments */ - public array $args; - - /** - * Constructs a static method call node. - * - * @param Node\Name|Expr $class Class name - * @param string|Identifier|Expr $name Method name - * @param array $args Arguments - * @param array $attributes Additional attributes - */ - public function __construct(Node $class, $name, array $args = [], array $attributes = []) { - $this->attributes = $attributes; - $this->class = $class; - $this->name = \is_string($name) ? new Identifier($name) : $name; - $this->args = $args; - } - - public function getSubNodeNames(): array { - return ['class', 'name', 'args']; - } - - public function getType(): string { - return 'Expr_StaticCall'; - } - - public function getRawArgs(): array { - return $this->args; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php deleted file mode 100644 index 4836a65..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +++ /dev/null @@ -1,36 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node $class, $name, array $attributes = []) { - $this->attributes = $attributes; - $this->class = $class; - $this->name = \is_string($name) ? new VarLikeIdentifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['class', 'name']; - } - - public function getType(): string { - return 'Expr_StaticPropertyFetch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php deleted file mode 100644 index d4837e6..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +++ /dev/null @@ -1,37 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $cond, ?Expr $if, Expr $else, array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->if = $if; - $this->else = $else; - } - - public function getSubNodeNames(): array { - return ['cond', 'if', 'else']; - } - - public function getType(): string { - return 'Expr_Ternary'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php deleted file mode 100644 index ee49f83..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_Throw'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php deleted file mode 100644 index cd06f74..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_UnaryMinus'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php deleted file mode 100644 index 1b44f7b..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_UnaryPlus'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php deleted file mode 100644 index bab7492..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct($name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - } - - public function getSubNodeNames(): array { - return ['name']; - } - - public function getType(): string { - return 'Expr_Variable'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php deleted file mode 100644 index 5cff88f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Expr_YieldFrom'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php deleted file mode 100644 index bd81e69..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Expr $value = null, ?Expr $key = null, array $attributes = []) { - $this->attributes = $attributes; - $this->key = $key; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['key', 'value']; - } - - public function getType(): string { - return 'Expr_Yield'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php deleted file mode 100644 index 58f653a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +++ /dev/null @@ -1,40 +0,0 @@ - */ - private static array $specialClassNames = [ - 'self' => true, - 'parent' => true, - 'static' => true, - ]; - - /** - * Constructs an identifier node. - * - * @param string $name Identifier as string - * @param array $attributes Additional attributes - */ - public function __construct(string $name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - } - - public function getSubNodeNames(): array { - return ['name']; - } - - /** - * Get identifier as string. - * - * @return string Identifier as string. - */ - public function toString(): string { - return $this->name; - } - - /** - * Get lowercased identifier as string. - * - * @return string Lowercased identifier as string - */ - public function toLowerString(): string { - return strtolower($this->name); - } - - /** - * Checks whether the identifier is a special class name (self, parent or static). - * - * @return bool Whether identifier is a special class name - */ - public function isSpecialClassName(): bool { - return isset(self::$specialClassNames[strtolower($this->name)]); - } - - /** - * Get identifier as string. - * - * @return string Identifier as string - */ - public function __toString(): string { - return $this->name; - } - - public function getType(): string { - return 'Identifier'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php deleted file mode 100644 index 576dac4..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +++ /dev/null @@ -1,32 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(string $value, array $attributes = []) { - $this->attributes = $attributes; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['value']; - } - - public function getType(): string { - return 'InterpolatedStringPart'; - } -} - -// @deprecated compatibility alias -class_alias(InterpolatedStringPart::class, Scalar\EncapsedStringPart::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php deleted file mode 100644 index 3b39cf1..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +++ /dev/null @@ -1,27 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $types, array $attributes = []) { - $this->attributes = $attributes; - $this->types = $types; - } - - public function getSubNodeNames(): array { - return ['types']; - } - - public function getType(): string { - return 'IntersectionType'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php deleted file mode 100644 index 2927f02..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +++ /dev/null @@ -1,30 +0,0 @@ - */ - public ?array $conds; - /** @var Node\Expr */ - public Expr $body; - - /** - * @param null|list $conds - */ - public function __construct(?array $conds, Node\Expr $body, array $attributes = []) { - $this->conds = $conds; - $this->body = $body; - $this->attributes = $attributes; - } - - public function getSubNodeNames(): array { - return ['conds', 'body']; - } - - public function getType(): string { - return 'MatchArm'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php deleted file mode 100644 index 26b863e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ /dev/null @@ -1,269 +0,0 @@ - */ - private static array $specialClassNames = [ - 'self' => true, - 'parent' => true, - 'static' => true, - ]; - - /** - * Constructs a name node. - * - * @param string|string[]|self $name Name as string, part array or Name instance (copy ctor) - * @param array $attributes Additional attributes - */ - final public function __construct($name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = self::prepareName($name); - } - - public function getSubNodeNames(): array { - return ['name']; - } - - /** - * Get parts of name (split by the namespace separator). - * - * @return string[] Parts of name - */ - public function getParts(): array { - return \explode('\\', $this->name); - } - - /** - * Gets the first part of the name, i.e. everything before the first namespace separator. - * - * @return string First part of the name - */ - public function getFirst(): string { - if (false !== $pos = \strpos($this->name, '\\')) { - return \substr($this->name, 0, $pos); - } - return $this->name; - } - - /** - * Gets the last part of the name, i.e. everything after the last namespace separator. - * - * @return string Last part of the name - */ - public function getLast(): string { - if (false !== $pos = \strrpos($this->name, '\\')) { - return \substr($this->name, $pos + 1); - } - return $this->name; - } - - /** - * Checks whether the name is unqualified. (E.g. Name) - * - * @return bool Whether the name is unqualified - */ - public function isUnqualified(): bool { - return false === \strpos($this->name, '\\'); - } - - /** - * Checks whether the name is qualified. (E.g. Name\Name) - * - * @return bool Whether the name is qualified - */ - public function isQualified(): bool { - return false !== \strpos($this->name, '\\'); - } - - /** - * Checks whether the name is fully qualified. (E.g. \Name) - * - * @return bool Whether the name is fully qualified - */ - public function isFullyQualified(): bool { - return false; - } - - /** - * Checks whether the name is explicitly relative to the current namespace. (E.g. namespace\Name) - * - * @return bool Whether the name is relative - */ - public function isRelative(): bool { - return false; - } - - /** - * Returns a string representation of the name itself, without taking the name type into - * account (e.g., not including a leading backslash for fully qualified names). - * - * @return string String representation - */ - public function toString(): string { - return $this->name; - } - - /** - * Returns a string representation of the name as it would occur in code (e.g., including - * leading backslash for fully qualified names. - * - * @return string String representation - */ - public function toCodeString(): string { - return $this->toString(); - } - - /** - * Returns lowercased string representation of the name, without taking the name type into - * account (e.g., no leading backslash for fully qualified names). - * - * @return string Lowercased string representation - */ - public function toLowerString(): string { - return strtolower($this->name); - } - - /** - * Checks whether the identifier is a special class name (self, parent or static). - * - * @return bool Whether identifier is a special class name - */ - public function isSpecialClassName(): bool { - return isset(self::$specialClassNames[strtolower($this->name)]); - } - - /** - * Returns a string representation of the name by imploding the namespace parts with the - * namespace separator. - * - * @return string String representation - */ - public function __toString(): string { - return $this->name; - } - - /** - * Gets a slice of a name (similar to array_slice). - * - * This method returns a new instance of the same type as the original and with the same - * attributes. - * - * If the slice is empty, null is returned. The null value will be correctly handled in - * concatenations using concat(). - * - * Offset and length have the same meaning as in array_slice(). - * - * @param int $offset Offset to start the slice at (may be negative) - * @param int|null $length Length of the slice (may be negative) - * - * @return static|null Sliced name - */ - public function slice(int $offset, ?int $length = null) { - if ($offset === 1 && $length === null) { - // Short-circuit the common case. - if (false !== $pos = \strpos($this->name, '\\')) { - return new static(\substr($this->name, $pos + 1)); - } - return null; - } - - $parts = \explode('\\', $this->name); - $numParts = \count($parts); - - $realOffset = $offset < 0 ? $offset + $numParts : $offset; - if ($realOffset < 0 || $realOffset > $numParts) { - throw new \OutOfBoundsException(sprintf('Offset %d is out of bounds', $offset)); - } - - if (null === $length) { - $realLength = $numParts - $realOffset; - } else { - $realLength = $length < 0 ? $length + $numParts - $realOffset : $length; - if ($realLength < 0 || $realLength > $numParts - $realOffset) { - throw new \OutOfBoundsException(sprintf('Length %d is out of bounds', $length)); - } - } - - if ($realLength === 0) { - // Empty slice is represented as null - return null; - } - - return new static(array_slice($parts, $realOffset, $realLength), $this->attributes); - } - - /** - * Concatenate two names, yielding a new Name instance. - * - * The type of the generated instance depends on which class this method is called on, for - * example Name\FullyQualified::concat() will yield a Name\FullyQualified instance. - * - * If one of the arguments is null, a new instance of the other name will be returned. If both - * arguments are null, null will be returned. As such, writing - * Name::concat($namespace, $shortName) - * where $namespace is a Name node or null will work as expected. - * - * @param string|string[]|self|null $name1 The first name - * @param string|string[]|self|null $name2 The second name - * @param array $attributes Attributes to assign to concatenated name - * - * @return static|null Concatenated name - */ - public static function concat($name1, $name2, array $attributes = []) { - if (null === $name1 && null === $name2) { - return null; - } - if (null === $name1) { - return new static($name2, $attributes); - } - if (null === $name2) { - return new static($name1, $attributes); - } else { - return new static( - self::prepareName($name1) . '\\' . self::prepareName($name2), $attributes - ); - } - } - - /** - * Prepares a (string, array or Name node) name for use in name changing methods by converting - * it to a string. - * - * @param string|string[]|self $name Name to prepare - * - * @return string Prepared name - */ - private static function prepareName($name): string { - if (\is_string($name)) { - if ('' === $name) { - throw new \InvalidArgumentException('Name cannot be empty'); - } - - return $name; - } - if (\is_array($name)) { - if (empty($name)) { - throw new \InvalidArgumentException('Name cannot be empty'); - } - - return implode('\\', $name); - } - if ($name instanceof self) { - return $name->name; - } - - throw new \InvalidArgumentException( - 'Expected string, array of parts or Name instance' - ); - } - - public function getType(): string { - return 'Name'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php deleted file mode 100644 index 2118378..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +++ /dev/null @@ -1,49 +0,0 @@ -toString(); - } - - public function getType(): string { - return 'Name_FullyQualified'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php deleted file mode 100644 index 0226a4e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +++ /dev/null @@ -1,49 +0,0 @@ -toString(); - } - - public function getType(): string { - return 'Name_Relative'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php deleted file mode 100644 index b99acd1..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node $type, array $attributes = []) { - $this->attributes = $attributes; - $this->type = $type; - } - - public function getSubNodeNames(): array { - return ['type']; - } - - public function getType(): string { - return 'NullableType'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php deleted file mode 100644 index 0e9ff0e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +++ /dev/null @@ -1,84 +0,0 @@ - $attributes Additional attributes - * @param int $flags Optional visibility flags - * @param list $attrGroups PHP attribute groups - */ - public function __construct( - Expr $var, ?Expr $default = null, ?Node $type = null, - bool $byRef = false, bool $variadic = false, - array $attributes = [], - int $flags = 0, - array $attrGroups = [] - ) { - $this->attributes = $attributes; - $this->type = $type; - $this->byRef = $byRef; - $this->variadic = $variadic; - $this->var = $var; - $this->default = $default; - $this->flags = $flags; - $this->attrGroups = $attrGroups; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'type', 'byRef', 'variadic', 'var', 'default']; - } - - public function getType(): string { - return 'Param'; - } - - /** - * Whether this parameter uses constructor property promotion. - */ - public function isPromoted(): bool { - return $this->flags !== 0; - } - - public function isPublic(): bool { - return (bool) ($this->flags & Modifiers::PUBLIC); - } - - public function isProtected(): bool { - return (bool) ($this->flags & Modifiers::PROTECTED); - } - - public function isPrivate(): bool { - return (bool) ($this->flags & Modifiers::PRIVATE); - } - - public function isReadonly(): bool { - return (bool) ($this->flags & Modifiers::READONLY); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php deleted file mode 100644 index 101611e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +++ /dev/null @@ -1,37 +0,0 @@ - $attributes Additional attributes - */ - public function __construct($name, ?Node\Expr $default = null, array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; - $this->default = $default; - } - - public function getSubNodeNames(): array { - return ['name', 'default']; - } - - public function getType(): string { - return 'PropertyItem'; - } -} - -// @deprecated compatibility alias -class_alias(PropertyItem::class, Stmt\PropertyProperty::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php deleted file mode 100644 index 3df2572..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php +++ /dev/null @@ -1,6 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(float $value, array $attributes = []) { - $this->attributes = $attributes; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['value']; - } - - /** - * @param mixed[] $attributes - */ - public static function fromString(string $str, array $attributes = []): Float_ { - $attributes['rawValue'] = $str; - $float = self::parse($str); - - return new Float_($float, $attributes); - } - - /** - * @internal - * - * Parses a DNUMBER token like PHP would. - * - * @param string $str A string number - * - * @return float The parsed number - */ - public static function parse(string $str): float { - $str = str_replace('_', '', $str); - - // Check whether this is one of the special integer notations. - if ('0' === $str[0]) { - // hex - if ('x' === $str[1] || 'X' === $str[1]) { - return hexdec($str); - } - - // bin - if ('b' === $str[1] || 'B' === $str[1]) { - return bindec($str); - } - - // oct, but only if the string does not contain any of '.eE'. - if (false === strpbrk($str, '.eE')) { - // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit - // (8 or 9) so that only the digits before that are used. - return octdec(substr($str, 0, strcspn($str, '89'))); - } - } - - // dec - return (float) $str; - } - - public function getType(): string { - return 'Scalar_Float'; - } -} - -// @deprecated compatibility alias -class_alias(Float_::class, DNumber::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php deleted file mode 100644 index bcc257a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +++ /dev/null @@ -1,82 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(int $value, array $attributes = []) { - $this->attributes = $attributes; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['value']; - } - - /** - * Constructs an Int node from a string number literal. - * - * @param string $str String number literal (decimal, octal, hex or binary) - * @param array $attributes Additional attributes - * @param bool $allowInvalidOctal Whether to allow invalid octal numbers (PHP 5) - * - * @return Int_ The constructed LNumber, including kind attribute - */ - public static function fromString(string $str, array $attributes = [], bool $allowInvalidOctal = false): Int_ { - $attributes['rawValue'] = $str; - - $str = str_replace('_', '', $str); - - if ('0' !== $str[0] || '0' === $str) { - $attributes['kind'] = Int_::KIND_DEC; - return new Int_((int) $str, $attributes); - } - - if ('x' === $str[1] || 'X' === $str[1]) { - $attributes['kind'] = Int_::KIND_HEX; - return new Int_(hexdec($str), $attributes); - } - - if ('b' === $str[1] || 'B' === $str[1]) { - $attributes['kind'] = Int_::KIND_BIN; - return new Int_(bindec($str), $attributes); - } - - if (!$allowInvalidOctal && strpbrk($str, '89')) { - throw new Error('Invalid numeric literal', $attributes); - } - - // Strip optional explicit octal prefix. - if ('o' === $str[1] || 'O' === $str[1]) { - $str = substr($str, 2); - } - - // use intval instead of octdec to get proper cutting behavior with malformed numbers - $attributes['kind'] = Int_::KIND_OCT; - return new Int_(intval($str, 8), $attributes); - } - - public function getType(): string { - return 'Scalar_Int'; - } -} - -// @deprecated compatibility alias -class_alias(Int_::class, LNumber::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php deleted file mode 100644 index 9336dfe..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +++ /dev/null @@ -1,34 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $parts, array $attributes = []) { - $this->attributes = $attributes; - $this->parts = $parts; - } - - public function getSubNodeNames(): array { - return ['parts']; - } - - public function getType(): string { - return 'Scalar_InterpolatedString'; - } -} - -// @deprecated compatibility alias -class_alias(InterpolatedString::class, Encapsed::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php deleted file mode 100644 index cfe8c8c..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $attributes = []) { - $this->attributes = $attributes; - } - - public function getSubNodeNames(): array { - return []; - } - - /** - * Get name of magic constant. - * - * @return string Name of magic constant - */ - abstract public function getName(): string; -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php deleted file mode 100644 index 732ed14..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +++ /dev/null @@ -1,15 +0,0 @@ - Escaped character to its decoded value */ - protected static array $replacements = [ - '\\' => '\\', - '$' => '$', - 'n' => "\n", - 'r' => "\r", - 't' => "\t", - 'f' => "\f", - 'v' => "\v", - 'e' => "\x1B", - ]; - - /** - * Constructs a string scalar node. - * - * @param string $value Value of the string - * @param array $attributes Additional attributes - */ - public function __construct(string $value, array $attributes = []) { - $this->attributes = $attributes; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['value']; - } - - /** - * @param array $attributes - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - */ - public static function fromString(string $str, array $attributes = [], bool $parseUnicodeEscape = true): self { - $attributes['kind'] = ($str[0] === "'" || ($str[1] === "'" && ($str[0] === 'b' || $str[0] === 'B'))) - ? Scalar\String_::KIND_SINGLE_QUOTED - : Scalar\String_::KIND_DOUBLE_QUOTED; - - $attributes['rawValue'] = $str; - - $string = self::parse($str, $parseUnicodeEscape); - - return new self($string, $attributes); - } - - /** - * @internal - * - * Parses a string token. - * - * @param string $str String token content - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - * - * @return string The parsed string - */ - public static function parse(string $str, bool $parseUnicodeEscape = true): string { - $bLength = 0; - if ('b' === $str[0] || 'B' === $str[0]) { - $bLength = 1; - } - - if ('\'' === $str[$bLength]) { - return str_replace( - ['\\\\', '\\\''], - ['\\', '\''], - substr($str, $bLength + 1, -1) - ); - } else { - return self::parseEscapeSequences( - substr($str, $bLength + 1, -1), '"', $parseUnicodeEscape - ); - } - } - - /** - * @internal - * - * Parses escape sequences in strings (all string types apart from single quoted). - * - * @param string $str String without quotes - * @param null|string $quote Quote type - * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes - * - * @return string String with escape sequences parsed - */ - public static function parseEscapeSequences(string $str, ?string $quote, bool $parseUnicodeEscape = true): string { - if (null !== $quote) { - $str = str_replace('\\' . $quote, $quote, $str); - } - - $extra = ''; - if ($parseUnicodeEscape) { - $extra = '|u\{([0-9a-fA-F]+)\}'; - } - - return preg_replace_callback( - '~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}' . $extra . ')~', - function ($matches) { - $str = $matches[1]; - - if (isset(self::$replacements[$str])) { - return self::$replacements[$str]; - } - if ('x' === $str[0] || 'X' === $str[0]) { - return chr(hexdec(substr($str, 1))); - } - if ('u' === $str[0]) { - $dec = hexdec($matches[2]); - // If it overflowed to float, treat as INT_MAX, it will throw an error anyway. - return self::codePointToUtf8(\is_int($dec) ? $dec : \PHP_INT_MAX); - } else { - return chr(octdec($str)); - } - }, - $str - ); - } - - /** - * Converts a Unicode code point to its UTF-8 encoded representation. - * - * @param int $num Code point - * - * @return string UTF-8 representation of code point - */ - private static function codePointToUtf8(int $num): string { - if ($num <= 0x7F) { - return chr($num); - } - if ($num <= 0x7FF) { - return chr(($num >> 6) + 0xC0) . chr(($num & 0x3F) + 0x80); - } - if ($num <= 0xFFFF) { - return chr(($num >> 12) + 0xE0) . chr((($num >> 6) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80); - } - if ($num <= 0x1FFFFF) { - return chr(($num >> 18) + 0xF0) . chr((($num >> 12) & 0x3F) + 0x80) - . chr((($num >> 6) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80); - } - throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large'); - } - - public function getType(): string { - return 'Scalar_String'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php deleted file mode 100644 index 517c0ed..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +++ /dev/null @@ -1,39 +0,0 @@ - $attributes Additional attributes - */ - public function __construct( - Expr\Variable $var, ?Node\Expr $default = null, array $attributes = [] - ) { - $this->attributes = $attributes; - $this->var = $var; - $this->default = $default; - } - - public function getSubNodeNames(): array { - return ['var', 'default']; - } - - public function getType(): string { - return 'StaticVar'; - } -} - -// @deprecated compatibility alias -class_alias(StaticVar::class, Stmt\StaticVar::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php deleted file mode 100644 index 481d31a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php +++ /dev/null @@ -1,8 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $stmts, array $attributes = []) { - $this->attributes = $attributes; - $this->stmts = $stmts; - } - - public function getType(): string { - return 'Stmt_Block'; - } - - public function getSubNodeNames(): array { - return ['stmts']; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php deleted file mode 100644 index d2bcc5e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Expr $num = null, array $attributes = []) { - $this->attributes = $attributes; - $this->num = $num; - } - - public function getSubNodeNames(): array { - return ['num']; - } - - public function getType(): string { - return 'Stmt_Break'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php deleted file mode 100644 index a06ca18..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Expr $cond, array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['cond', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Case'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php deleted file mode 100644 index e8d39c9..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +++ /dev/null @@ -1,40 +0,0 @@ - $attributes Additional attributes - */ - public function __construct( - array $types, ?Expr\Variable $var = null, array $stmts = [], array $attributes = [] - ) { - $this->attributes = $attributes; - $this->types = $types; - $this->var = $var; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['types', 'var', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Catch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php deleted file mode 100644 index 9bdce1f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ /dev/null @@ -1,77 +0,0 @@ - $attributes Additional attributes - * @param list $attrGroups PHP attribute groups - * @param null|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration - */ - public function __construct( - array $consts, - int $flags = 0, - array $attributes = [], - array $attrGroups = [], - ?Node $type = null - ) { - $this->attributes = $attributes; - $this->flags = $flags; - $this->consts = $consts; - $this->attrGroups = $attrGroups; - $this->type = $type; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'type', 'consts']; - } - - /** - * Whether constant is explicitly or implicitly public. - */ - public function isPublic(): bool { - return ($this->flags & Modifiers::PUBLIC) !== 0 - || ($this->flags & Modifiers::VISIBILITY_MASK) === 0; - } - - /** - * Whether constant is protected. - */ - public function isProtected(): bool { - return (bool) ($this->flags & Modifiers::PROTECTED); - } - - /** - * Whether constant is private. - */ - public function isPrivate(): bool { - return (bool) ($this->flags & Modifiers::PRIVATE); - } - - /** - * Whether constant is final. - */ - public function isFinal(): bool { - return (bool) ($this->flags & Modifiers::FINAL); - } - - public function getType(): string { - return 'Stmt_ClassConst'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php deleted file mode 100644 index fb9ba4f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +++ /dev/null @@ -1,109 +0,0 @@ -stmts as $stmt) { - if ($stmt instanceof TraitUse) { - $traitUses[] = $stmt; - } - } - return $traitUses; - } - - /** - * @return ClassConst[] - */ - public function getConstants(): array { - $constants = []; - foreach ($this->stmts as $stmt) { - if ($stmt instanceof ClassConst) { - $constants[] = $stmt; - } - } - return $constants; - } - - /** - * @return Property[] - */ - public function getProperties(): array { - $properties = []; - foreach ($this->stmts as $stmt) { - if ($stmt instanceof Property) { - $properties[] = $stmt; - } - } - return $properties; - } - - /** - * Gets property with the given name defined directly in this class/interface/trait. - * - * @param string $name Name of the property - * - * @return Property|null Property node or null if the property does not exist - */ - public function getProperty(string $name): ?Property { - foreach ($this->stmts as $stmt) { - if ($stmt instanceof Property) { - foreach ($stmt->props as $prop) { - if ($prop instanceof PropertyItem && $name === $prop->name->toString()) { - return $stmt; - } - } - } - } - return null; - } - - /** - * Gets all methods defined directly in this class/interface/trait - * - * @return ClassMethod[] - */ - public function getMethods(): array { - $methods = []; - foreach ($this->stmts as $stmt) { - if ($stmt instanceof ClassMethod) { - $methods[] = $stmt; - } - } - return $methods; - } - - /** - * Gets method with the given name defined directly in this class/interface/trait. - * - * @param string $name Name of the method (compared case-insensitively) - * - * @return ClassMethod|null Method node or null if the method does not exist - */ - public function getMethod(string $name): ?ClassMethod { - $lowerName = strtolower($name); - foreach ($this->stmts as $stmt) { - if ($stmt instanceof ClassMethod && $lowerName === $stmt->name->toLowerString()) { - return $stmt; - } - } - return null; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php deleted file mode 100644 index 59c0519..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +++ /dev/null @@ -1,154 +0,0 @@ - */ - private static array $magicNames = [ - '__construct' => true, - '__destruct' => true, - '__call' => true, - '__callstatic' => true, - '__get' => true, - '__set' => true, - '__isset' => true, - '__unset' => true, - '__sleep' => true, - '__wakeup' => true, - '__tostring' => true, - '__set_state' => true, - '__clone' => true, - '__invoke' => true, - '__debuginfo' => true, - '__serialize' => true, - '__unserialize' => true, - ]; - - /** - * Constructs a class method node. - * - * @param string|Node\Identifier $name Name - * @param array{ - * flags?: int, - * byRef?: bool, - * params?: Node\Param[], - * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType, - * stmts?: Node\Stmt[]|null, - * attrGroups?: Node\AttributeGroup[], - * } $subNodes Array of the following optional subnodes: - * 'flags => 0 : Flags - * 'byRef' => false : Whether to return by reference - * 'params' => array() : Parameters - * 'returnType' => null : Return type - * 'stmts' => array() : Statements - * 'attrGroups' => array() : PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; - $this->byRef = $subNodes['byRef'] ?? false; - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->params = $subNodes['params'] ?? []; - $this->returnType = $subNodes['returnType'] ?? null; - $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'byRef', 'name', 'params', 'returnType', 'stmts']; - } - - public function returnsByRef(): bool { - return $this->byRef; - } - - public function getParams(): array { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getStmts(): ?array { - return $this->stmts; - } - - public function getAttrGroups(): array { - return $this->attrGroups; - } - - /** - * Whether the method is explicitly or implicitly public. - */ - public function isPublic(): bool { - return ($this->flags & Modifiers::PUBLIC) !== 0 - || ($this->flags & Modifiers::VISIBILITY_MASK) === 0; - } - - /** - * Whether the method is protected. - */ - public function isProtected(): bool { - return (bool) ($this->flags & Modifiers::PROTECTED); - } - - /** - * Whether the method is private. - */ - public function isPrivate(): bool { - return (bool) ($this->flags & Modifiers::PRIVATE); - } - - /** - * Whether the method is abstract. - */ - public function isAbstract(): bool { - return (bool) ($this->flags & Modifiers::ABSTRACT); - } - - /** - * Whether the method is final. - */ - public function isFinal(): bool { - return (bool) ($this->flags & Modifiers::FINAL); - } - - /** - * Whether the method is static. - */ - public function isStatic(): bool { - return (bool) ($this->flags & Modifiers::STATIC); - } - - /** - * Whether the method is magic. - */ - public function isMagic(): bool { - return isset(self::$magicNames[$this->name->toLowerString()]); - } - - public function getType(): string { - return 'Stmt_ClassMethod'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php deleted file mode 100644 index 3f492b7..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +++ /dev/null @@ -1,94 +0,0 @@ - 0 : Flags - * 'extends' => null : Name of extended class - * 'implements' => array(): Names of implemented interfaces - * 'stmts' => array(): Statements - * 'attrGroups' => array(): PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->extends = $subNodes['extends'] ?? null; - $this->implements = $subNodes['implements'] ?? []; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'name', 'extends', 'implements', 'stmts']; - } - - /** - * Whether the class is explicitly abstract. - */ - public function isAbstract(): bool { - return (bool) ($this->flags & Modifiers::ABSTRACT); - } - - /** - * Whether the class is final. - */ - public function isFinal(): bool { - return (bool) ($this->flags & Modifiers::FINAL); - } - - public function isReadonly(): bool { - return (bool) ($this->flags & Modifiers::READONLY); - } - - /** - * Whether the class is anonymous. - */ - public function isAnonymous(): bool { - return null === $this->name; - } - - public function getType(): string { - return 'Stmt_Class'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php deleted file mode 100644 index f1165fd..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $consts, array $attributes = []) { - $this->attributes = $attributes; - $this->consts = $consts; - } - - public function getSubNodeNames(): array { - return ['consts']; - } - - public function getType(): string { - return 'Stmt_Const'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php deleted file mode 100644 index 54e979d..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Expr $num = null, array $attributes = []) { - $this->attributes = $attributes; - $this->num = $num; - } - - public function getSubNodeNames(): array { - return ['num']; - } - - public function getType(): string { - return 'Stmt_Continue'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php deleted file mode 100644 index cb9e837..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $declares, ?array $stmts = null, array $attributes = []) { - $this->attributes = $attributes; - $this->declares = $declares; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['declares', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Declare'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php deleted file mode 100644 index 6124442..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['stmts', 'cond']; - } - - public function getType(): string { - return 'Stmt_Do'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php deleted file mode 100644 index 4d42452..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $exprs, array $attributes = []) { - $this->attributes = $attributes; - $this->exprs = $exprs; - } - - public function getSubNodeNames(): array { - return ['exprs']; - } - - public function getType(): string { - return 'Stmt_Echo'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php deleted file mode 100644 index b26d59c..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['cond', 'stmts']; - } - - public function getType(): string { - return 'Stmt_ElseIf'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php deleted file mode 100644 index 3d2b066..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['stmts']; - } - - public function getType(): string { - return 'Stmt_Else'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php deleted file mode 100644 index c071a0a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +++ /dev/null @@ -1,36 +0,0 @@ - $attrGroups PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, ?Node\Expr $expr = null, array $attrGroups = [], array $attributes = []) { - parent::__construct($attributes); - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->expr = $expr; - $this->attrGroups = $attrGroups; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'name', 'expr']; - } - - public function getType(): string { - return 'Stmt_EnumCase'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php deleted file mode 100644 index 7eea6a6..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +++ /dev/null @@ -1,44 +0,0 @@ - null : Scalar type - * 'implements' => array() : Names of implemented interfaces - * 'stmts' => array() : Statements - * 'attrGroups' => array() : PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->scalarType = $subNodes['scalarType'] ?? null; - $this->implements = $subNodes['implements'] ?? []; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - - parent::__construct($attributes); - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'name', 'scalarType', 'implements', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Enum'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php deleted file mode 100644 index 89751fa..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +++ /dev/null @@ -1,32 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $expr, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Stmt_Expression'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php deleted file mode 100644 index 69ecf25..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['stmts']; - } - - public function getType(): string { - return 'Stmt_Finally'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php deleted file mode 100644 index 6f2fbb9..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +++ /dev/null @@ -1,47 +0,0 @@ - array(): Init expressions - * 'cond' => array(): Loop conditions - * 'loop' => array(): Loop expressions - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct(array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->init = $subNodes['init'] ?? []; - $this->cond = $subNodes['cond'] ?? []; - $this->loop = $subNodes['loop'] ?? []; - $this->stmts = $subNodes['stmts'] ?? []; - } - - public function getSubNodeNames(): array { - return ['init', 'cond', 'loop', 'stmts']; - } - - public function getType(): string { - return 'Stmt_For'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php deleted file mode 100644 index c5d9a8b..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +++ /dev/null @@ -1,50 +0,0 @@ - null : Variable to assign key to - * 'byRef' => false : Whether to assign value by reference - * 'stmts' => array(): Statements - * @param array $attributes Additional attributes - */ - public function __construct(Node\Expr $expr, Node\Expr $valueVar, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - $this->keyVar = $subNodes['keyVar'] ?? null; - $this->byRef = $subNodes['byRef'] ?? false; - $this->valueVar = $valueVar; - $this->stmts = $subNodes['stmts'] ?? []; - } - - public function getSubNodeNames(): array { - return ['expr', 'keyVar', 'byRef', 'valueVar', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Foreach'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php deleted file mode 100644 index 2111bab..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +++ /dev/null @@ -1,81 +0,0 @@ - false : Whether to return by reference - * 'params' => array(): Parameters - * 'returnType' => null : Return type - * 'stmts' => array(): Statements - * 'attrGroups' => array(): PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->byRef = $subNodes['byRef'] ?? false; - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->params = $subNodes['params'] ?? []; - $this->returnType = $subNodes['returnType'] ?? null; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'byRef', 'name', 'params', 'returnType', 'stmts']; - } - - public function returnsByRef(): bool { - return $this->byRef; - } - - public function getParams(): array { - return $this->params; - } - - public function getReturnType() { - return $this->returnType; - } - - public function getAttrGroups(): array { - return $this->attrGroups; - } - - /** @return Node\Stmt[] */ - public function getStmts(): array { - return $this->stmts; - } - - public function getType(): string { - return 'Stmt_Function'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php deleted file mode 100644 index d3ab12f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $vars, array $attributes = []) { - $this->attributes = $attributes; - $this->vars = $vars; - } - - public function getSubNodeNames(): array { - return ['vars']; - } - - public function getType(): string { - return 'Stmt_Global'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php deleted file mode 100644 index 26a0d01..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +++ /dev/null @@ -1,30 +0,0 @@ - $attributes Additional attributes - */ - public function __construct($name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Identifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['name']; - } - - public function getType(): string { - return 'Stmt_Goto'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php deleted file mode 100644 index 0ec8e9d..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +++ /dev/null @@ -1,41 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Name $prefix, array $uses, int $type = Use_::TYPE_NORMAL, array $attributes = []) { - $this->attributes = $attributes; - $this->type = $type; - $this->prefix = $prefix; - $this->uses = $uses; - } - - public function getSubNodeNames(): array { - return ['type', 'prefix', 'uses']; - } - - public function getType(): string { - return 'Stmt_GroupUse'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php deleted file mode 100644 index 665bacd..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(string $remaining, array $attributes = []) { - $this->attributes = $attributes; - $this->remaining = $remaining; - } - - public function getSubNodeNames(): array { - return ['remaining']; - } - - public function getType(): string { - return 'Stmt_HaltCompiler'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php deleted file mode 100644 index 544390f..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +++ /dev/null @@ -1,46 +0,0 @@ - array(): Statements - * 'elseifs' => array(): Elseif clauses - * 'else' => null : Else clause - * @param array $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->stmts = $subNodes['stmts'] ?? []; - $this->elseifs = $subNodes['elseifs'] ?? []; - $this->else = $subNodes['else'] ?? null; - } - - public function getSubNodeNames(): array { - return ['cond', 'stmts', 'elseifs', 'else']; - } - - public function getType(): string { - return 'Stmt_If'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php deleted file mode 100644 index 0515d02..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(string $value, array $attributes = []) { - $this->attributes = $attributes; - $this->value = $value; - } - - public function getSubNodeNames(): array { - return ['value']; - } - - public function getType(): string { - return 'Stmt_InlineHTML'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php deleted file mode 100644 index 9359064..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +++ /dev/null @@ -1,40 +0,0 @@ - array(): Name of extended interfaces - * 'stmts' => array(): Statements - * 'attrGroups' => array(): PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->extends = $subNodes['extends'] ?? []; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'name', 'extends', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Interface'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php deleted file mode 100644 index 658468d..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +++ /dev/null @@ -1,30 +0,0 @@ - $attributes Additional attributes - */ - public function __construct($name, array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Identifier($name) : $name; - } - - public function getSubNodeNames(): array { - return ['name']; - } - - public function getType(): string { - return 'Stmt_Label'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php deleted file mode 100644 index f5b59ad..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +++ /dev/null @@ -1,37 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Name $name = null, ?array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->name = $name; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['name', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Namespace'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php deleted file mode 100644 index 3acfa46..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +++ /dev/null @@ -1,16 +0,0 @@ - $attributes Additional attributes - * @param null|Identifier|Name|ComplexType $type Type declaration - * @param Node\AttributeGroup[] $attrGroups PHP attribute groups - */ - public function __construct(int $flags, array $props, array $attributes = [], ?Node $type = null, array $attrGroups = []) { - $this->attributes = $attributes; - $this->flags = $flags; - $this->props = $props; - $this->type = $type; - $this->attrGroups = $attrGroups; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'flags', 'type', 'props']; - } - - /** - * Whether the property is explicitly or implicitly public. - */ - public function isPublic(): bool { - return ($this->flags & Modifiers::PUBLIC) !== 0 - || ($this->flags & Modifiers::VISIBILITY_MASK) === 0; - } - - /** - * Whether the property is protected. - */ - public function isProtected(): bool { - return (bool) ($this->flags & Modifiers::PROTECTED); - } - - /** - * Whether the property is private. - */ - public function isPrivate(): bool { - return (bool) ($this->flags & Modifiers::PRIVATE); - } - - /** - * Whether the property is static. - */ - public function isStatic(): bool { - return (bool) ($this->flags & Modifiers::STATIC); - } - - /** - * Whether the property is readonly. - */ - public function isReadonly(): bool { - return (bool) ($this->flags & Modifiers::READONLY); - } - - public function getType(): string { - return 'Stmt_Property'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php deleted file mode 100644 index 4a21a88..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Expr $expr = null, array $attributes = []) { - $this->attributes = $attributes; - $this->expr = $expr; - } - - public function getSubNodeNames(): array { - return ['expr']; - } - - public function getType(): string { - return 'Stmt_Return'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php deleted file mode 100644 index 88452e7..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $vars, array $attributes = []) { - $this->attributes = $attributes; - $this->vars = $vars; - } - - public function getSubNodeNames(): array { - return ['vars']; - } - - public function getType(): string { - return 'Stmt_Static'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php deleted file mode 100644 index 21e5efa..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $cases, array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->cases = $cases; - } - - public function getSubNodeNames(): array { - return ['cond', 'cases']; - } - - public function getType(): string { - return 'Stmt_Switch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php deleted file mode 100644 index 7705a57..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $traits, array $adaptations = [], array $attributes = []) { - $this->attributes = $attributes; - $this->traits = $traits; - $this->adaptations = $adaptations; - } - - public function getSubNodeNames(): array { - return ['traits', 'adaptations']; - } - - public function getType(): string { - return 'Stmt_TraitUse'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php deleted file mode 100644 index 987bc88..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +++ /dev/null @@ -1,12 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(?Node\Name $trait, $method, ?int $newModifier, $newName, array $attributes = []) { - $this->attributes = $attributes; - $this->trait = $trait; - $this->method = \is_string($method) ? new Node\Identifier($method) : $method; - $this->newModifier = $newModifier; - $this->newName = \is_string($newName) ? new Node\Identifier($newName) : $newName; - } - - public function getSubNodeNames(): array { - return ['trait', 'method', 'newModifier', 'newName']; - } - - public function getType(): string { - return 'Stmt_TraitUseAdaptation_Alias'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php deleted file mode 100644 index 7bc4083..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Name $trait, $method, array $insteadof, array $attributes = []) { - $this->attributes = $attributes; - $this->trait = $trait; - $this->method = \is_string($method) ? new Node\Identifier($method) : $method; - $this->insteadof = $insteadof; - } - - public function getSubNodeNames(): array { - return ['trait', 'method', 'insteadof']; - } - - public function getType(): string { - return 'Stmt_TraitUseAdaptation_Precedence'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php deleted file mode 100644 index 5f2b330..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +++ /dev/null @@ -1,34 +0,0 @@ - array(): Statements - * 'attrGroups' => array(): PHP attribute groups - * @param array $attributes Additional attributes - */ - public function __construct($name, array $subNodes = [], array $attributes = []) { - $this->attributes = $attributes; - $this->name = \is_string($name) ? new Node\Identifier($name) : $name; - $this->stmts = $subNodes['stmts'] ?? []; - $this->attrGroups = $subNodes['attrGroups'] ?? []; - } - - public function getSubNodeNames(): array { - return ['attrGroups', 'name', 'stmts']; - } - - public function getType(): string { - return 'Stmt_Trait'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php deleted file mode 100644 index 6414c46..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +++ /dev/null @@ -1,37 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $stmts, array $catches, ?Finally_ $finally = null, array $attributes = []) { - $this->attributes = $attributes; - $this->stmts = $stmts; - $this->catches = $catches; - $this->finally = $finally; - } - - public function getSubNodeNames(): array { - return ['stmts', 'catches', 'finally']; - } - - public function getType(): string { - return 'Stmt_TryCatch'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php deleted file mode 100644 index c211beb..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +++ /dev/null @@ -1,29 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $vars, array $attributes = []) { - $this->attributes = $attributes; - $this->vars = $vars; - } - - public function getSubNodeNames(): array { - return ['vars']; - } - - public function getType(): string { - return 'Stmt_Unset'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php deleted file mode 100644 index 85830ed..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +++ /dev/null @@ -1,3 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $uses, int $type = self::TYPE_NORMAL, array $attributes = []) { - $this->attributes = $attributes; - $this->type = $type; - $this->uses = $uses; - } - - public function getSubNodeNames(): array { - return ['type', 'uses']; - } - - public function getType(): string { - return 'Stmt_Use'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php deleted file mode 100644 index 2f7aed2..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +++ /dev/null @@ -1,33 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Expr $cond, array $stmts = [], array $attributes = []) { - $this->attributes = $attributes; - $this->cond = $cond; - $this->stmts = $stmts; - } - - public function getSubNodeNames(): array { - return ['cond', 'stmts']; - } - - public function getType(): string { - return 'Stmt_While'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php deleted file mode 100644 index bad88d2..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php +++ /dev/null @@ -1,27 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $types, array $attributes = []) { - $this->attributes = $attributes; - $this->types = $types; - } - - public function getSubNodeNames(): array { - return ['types']; - } - - public function getType(): string { - return 'UnionType'; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php deleted file mode 100644 index a7d9fc4..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php +++ /dev/null @@ -1,55 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(Node\Name $name, $alias = null, int $type = Use_::TYPE_UNKNOWN, array $attributes = []) { - $this->attributes = $attributes; - $this->type = $type; - $this->name = $name; - $this->alias = \is_string($alias) ? new Identifier($alias) : $alias; - } - - public function getSubNodeNames(): array { - return ['type', 'name', 'alias']; - } - - /** - * Get alias. If not explicitly given this is the last component of the used name. - */ - public function getAlias(): Identifier { - if (null !== $this->alias) { - return $this->alias; - } - - return new Identifier($this->name->getLast()); - } - - public function getType(): string { - return 'UseItem'; - } -} - -// @deprecated compatibility alias -class_alias(UseItem::class, Stmt\UseUse::class); diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php deleted file mode 100644 index 9baa6fe..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +++ /dev/null @@ -1,16 +0,0 @@ - $attributes Additional attributes - */ - public function __construct(array $attributes = []) { - $this->attributes = $attributes; - } - - public function getType(): string { - return 'VariadicPlaceholder'; - } - - public function getSubNodeNames(): array { - return []; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php deleted file mode 100644 index 7c3a360..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +++ /dev/null @@ -1,178 +0,0 @@ - Attributes */ - protected array $attributes; - - /** - * Creates a Node. - * - * @param array $attributes Array of attributes - */ - public function __construct(array $attributes = []) { - $this->attributes = $attributes; - } - - /** - * Gets line the node started in (alias of getStartLine). - * - * @return int Start line (or -1 if not available) - */ - public function getLine(): int { - return $this->attributes['startLine'] ?? -1; - } - - /** - * Gets line the node started in. - * - * Requires the 'startLine' attribute to be enabled in the lexer (enabled by default). - * - * @return int Start line (or -1 if not available) - */ - public function getStartLine(): int { - return $this->attributes['startLine'] ?? -1; - } - - /** - * Gets the line the node ended in. - * - * Requires the 'endLine' attribute to be enabled in the lexer (enabled by default). - * - * @return int End line (or -1 if not available) - */ - public function getEndLine(): int { - return $this->attributes['endLine'] ?? -1; - } - - /** - * Gets the token offset of the first token that is part of this node. - * - * The offset is an index into the array returned by Lexer::getTokens(). - * - * Requires the 'startTokenPos' attribute to be enabled in the lexer (DISABLED by default). - * - * @return int Token start position (or -1 if not available) - */ - public function getStartTokenPos(): int { - return $this->attributes['startTokenPos'] ?? -1; - } - - /** - * Gets the token offset of the last token that is part of this node. - * - * The offset is an index into the array returned by Lexer::getTokens(). - * - * Requires the 'endTokenPos' attribute to be enabled in the lexer (DISABLED by default). - * - * @return int Token end position (or -1 if not available) - */ - public function getEndTokenPos(): int { - return $this->attributes['endTokenPos'] ?? -1; - } - - /** - * Gets the file offset of the first character that is part of this node. - * - * Requires the 'startFilePos' attribute to be enabled in the lexer (DISABLED by default). - * - * @return int File start position (or -1 if not available) - */ - public function getStartFilePos(): int { - return $this->attributes['startFilePos'] ?? -1; - } - - /** - * Gets the file offset of the last character that is part of this node. - * - * Requires the 'endFilePos' attribute to be enabled in the lexer (DISABLED by default). - * - * @return int File end position (or -1 if not available) - */ - public function getEndFilePos(): int { - return $this->attributes['endFilePos'] ?? -1; - } - - /** - * Gets all comments directly preceding this node. - * - * The comments are also available through the "comments" attribute. - * - * @return Comment[] - */ - public function getComments(): array { - return $this->attributes['comments'] ?? []; - } - - /** - * Gets the doc comment of the node. - * - * @return null|Comment\Doc Doc comment object or null - */ - public function getDocComment(): ?Comment\Doc { - $comments = $this->getComments(); - for ($i = count($comments) - 1; $i >= 0; $i--) { - $comment = $comments[$i]; - if ($comment instanceof Comment\Doc) { - return $comment; - } - } - - return null; - } - - /** - * Sets the doc comment of the node. - * - * This will either replace an existing doc comment or add it to the comments array. - * - * @param Comment\Doc $docComment Doc comment to set - */ - public function setDocComment(Comment\Doc $docComment): void { - $comments = $this->getComments(); - for ($i = count($comments) - 1; $i >= 0; $i--) { - if ($comments[$i] instanceof Comment\Doc) { - // Replace existing doc comment. - $comments[$i] = $docComment; - $this->setAttribute('comments', $comments); - return; - } - } - - // Append new doc comment. - $comments[] = $docComment; - $this->setAttribute('comments', $comments); - } - - public function setAttribute(string $key, $value): void { - $this->attributes[$key] = $value; - } - - public function hasAttribute(string $key): bool { - return array_key_exists($key, $this->attributes); - } - - public function getAttribute(string $key, $default = null) { - if (array_key_exists($key, $this->attributes)) { - return $this->attributes[$key]; - } - - return $default; - } - - public function getAttributes(): array { - return $this->attributes; - } - - public function setAttributes(array $attributes): void { - $this->attributes = $attributes; - } - - /** - * @return array - */ - public function jsonSerialize(): array { - return ['nodeType' => $this->getType()] + get_object_vars($this); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php deleted file mode 100644 index a2535de..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +++ /dev/null @@ -1,290 +0,0 @@ - true, - 'startLine' => true, - 'endLine' => true, - 'startFilePos' => true, - 'endFilePos' => true, - 'startTokenPos' => true, - 'endTokenPos' => true, - ]; - - /** - * Constructs a NodeDumper. - * - * Supported options: - * * bool dumpComments: Whether comments should be dumped. - * * bool dumpPositions: Whether line/offset information should be dumped. To dump offset - * information, the code needs to be passed to dump(). - * * bool dumpOtherAttributes: Whether non-comment, non-position attributes should be dumped. - * - * @param array $options Options (see description) - */ - public function __construct(array $options = []) { - $this->dumpComments = !empty($options['dumpComments']); - $this->dumpPositions = !empty($options['dumpPositions']); - $this->dumpOtherAttributes = !empty($options['dumpOtherAttributes']); - } - - /** - * Dumps a node or array. - * - * @param array|Node $node Node or array to dump - * @param string|null $code Code corresponding to dumped AST. This only needs to be passed if - * the dumpPositions option is enabled and the dumping of node offsets - * is desired. - * - * @return string Dumped value - */ - public function dump($node, ?string $code = null): string { - $this->code = $code; - $this->res = ''; - $this->nl = "\n"; - $this->dumpRecursive($node, false); - return $this->res; - } - - /** @param mixed $node */ - protected function dumpRecursive($node, bool $indent = true): void { - if ($indent) { - $this->nl .= " "; - } - if ($node instanceof Node) { - $this->res .= $node->getType(); - if ($this->dumpPositions && null !== $p = $this->dumpPosition($node)) { - $this->res .= $p; - } - $this->res .= '('; - - foreach ($node->getSubNodeNames() as $key) { - $this->res .= "$this->nl " . $key . ': '; - - $value = $node->$key; - if (\is_int($value)) { - if ('flags' === $key || 'newModifier' === $key) { - $this->res .= $this->dumpFlags($value); - continue; - } - if ('type' === $key && $node instanceof Include_) { - $this->res .= $this->dumpIncludeType($value); - continue; - } - if ('type' === $key - && ($node instanceof Use_ || $node instanceof UseItem || $node instanceof GroupUse)) { - $this->res .= $this->dumpUseType($value); - continue; - } - } - $this->dumpRecursive($value); - } - - if ($this->dumpComments && $comments = $node->getComments()) { - $this->res .= "$this->nl comments: "; - $this->dumpRecursive($comments); - } - - if ($this->dumpOtherAttributes) { - foreach ($node->getAttributes() as $key => $value) { - if (isset(self::IGNORE_ATTRIBUTES[$key])) { - continue; - } - - $this->res .= "$this->nl $key: "; - if (\is_int($value)) { - if ('kind' === $key) { - if ($node instanceof Int_) { - $this->res .= $this->dumpIntKind($value); - continue; - } - if ($node instanceof String_ || $node instanceof InterpolatedString) { - $this->res .= $this->dumpStringKind($value); - continue; - } - if ($node instanceof Array_) { - $this->res .= $this->dumpArrayKind($value); - continue; - } - if ($node instanceof List_) { - $this->res .= $this->dumpListKind($value); - continue; - } - } - } - $this->dumpRecursive($value); - } - } - $this->res .= "$this->nl)"; - } elseif (\is_array($node)) { - $this->res .= 'array('; - foreach ($node as $key => $value) { - $this->res .= "$this->nl " . $key . ': '; - $this->dumpRecursive($value); - } - $this->res .= "$this->nl)"; - } elseif ($node instanceof Comment) { - $this->res .= \str_replace("\n", $this->nl, $node->getReformattedText()); - } elseif (\is_string($node)) { - $this->res .= \str_replace("\n", $this->nl, (string)$node); - } elseif (\is_int($node) || \is_float($node)) { - $this->res .= $node; - } elseif (null === $node) { - $this->res .= 'null'; - } elseif (false === $node) { - $this->res .= 'false'; - } elseif (true === $node) { - $this->res .= 'true'; - } else { - throw new \InvalidArgumentException('Can only dump nodes and arrays.'); - } - if ($indent) { - $this->nl = \substr($this->nl, 0, -4); - } - } - - protected function dumpFlags(int $flags): string { - $strs = []; - if ($flags & Modifiers::PUBLIC) { - $strs[] = 'PUBLIC'; - } - if ($flags & Modifiers::PROTECTED) { - $strs[] = 'PROTECTED'; - } - if ($flags & Modifiers::PRIVATE) { - $strs[] = 'PRIVATE'; - } - if ($flags & Modifiers::ABSTRACT) { - $strs[] = 'ABSTRACT'; - } - if ($flags & Modifiers::STATIC) { - $strs[] = 'STATIC'; - } - if ($flags & Modifiers::FINAL) { - $strs[] = 'FINAL'; - } - if ($flags & Modifiers::READONLY) { - $strs[] = 'READONLY'; - } - - if ($strs) { - return implode(' | ', $strs) . ' (' . $flags . ')'; - } else { - return (string) $flags; - } - } - - /** @param array $map */ - private function dumpEnum(int $value, array $map): string { - if (!isset($map[$value])) { - return (string) $value; - } - return $map[$value] . ' (' . $value . ')'; - } - - private function dumpIncludeType(int $type): string { - return $this->dumpEnum($type, [ - Include_::TYPE_INCLUDE => 'TYPE_INCLUDE', - Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE', - Include_::TYPE_REQUIRE => 'TYPE_REQUIRE', - Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQUIRE_ONCE', - ]); - } - - private function dumpUseType(int $type): string { - return $this->dumpEnum($type, [ - Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN', - Use_::TYPE_NORMAL => 'TYPE_NORMAL', - Use_::TYPE_FUNCTION => 'TYPE_FUNCTION', - Use_::TYPE_CONSTANT => 'TYPE_CONSTANT', - ]); - } - - private function dumpIntKind(int $kind): string { - return $this->dumpEnum($kind, [ - Int_::KIND_BIN => 'KIND_BIN', - Int_::KIND_OCT => 'KIND_OCT', - Int_::KIND_DEC => 'KIND_DEC', - Int_::KIND_HEX => 'KIND_HEX', - ]); - } - - private function dumpStringKind(int $kind): string { - return $this->dumpEnum($kind, [ - String_::KIND_SINGLE_QUOTED => 'KIND_SINGLE_QUOTED', - String_::KIND_DOUBLE_QUOTED => 'KIND_DOUBLE_QUOTED', - String_::KIND_HEREDOC => 'KIND_HEREDOC', - String_::KIND_NOWDOC => 'KIND_NOWDOC', - ]); - } - - private function dumpArrayKind(int $kind): string { - return $this->dumpEnum($kind, [ - Array_::KIND_LONG => 'KIND_LONG', - Array_::KIND_SHORT => 'KIND_SHORT', - ]); - } - - private function dumpListKind(int $kind): string { - return $this->dumpEnum($kind, [ - List_::KIND_LIST => 'KIND_LIST', - List_::KIND_ARRAY => 'KIND_ARRAY', - ]); - } - - /** - * Dump node position, if possible. - * - * @param Node $node Node for which to dump position - * - * @return string|null Dump of position, or null if position information not available - */ - protected function dumpPosition(Node $node): ?string { - if (!$node->hasAttribute('startLine') || !$node->hasAttribute('endLine')) { - return null; - } - - $start = $node->getStartLine(); - $end = $node->getEndLine(); - if ($node->hasAttribute('startFilePos') && $node->hasAttribute('endFilePos') - && null !== $this->code - ) { - $start .= ':' . $this->toColumn($this->code, $node->getStartFilePos()); - $end .= ':' . $this->toColumn($this->code, $node->getEndFilePos()); - } - return "[$start - $end]"; - } - - // Copied from Error class - private function toColumn(string $code, int $pos): int { - if ($pos > strlen($code)) { - throw new \RuntimeException('Invalid position information'); - } - - $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); - if (false === $lineStartPos) { - $lineStartPos = -1; - } - - return $pos - $lineStartPos; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php deleted file mode 100644 index 96c8452..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php +++ /dev/null @@ -1,90 +0,0 @@ -traverse($nodes); - - return $visitor->getFoundNodes(); - } - - /** - * Find all nodes that are instances of a certain class. - - * @template TNode as Node - * - * @param Node|Node[] $nodes Single node or array of nodes to search in - * @param class-string $class Class name - * - * @return TNode[] Found nodes (all instances of $class) - */ - public function findInstanceOf($nodes, string $class): array { - return $this->find($nodes, function ($node) use ($class) { - return $node instanceof $class; - }); - } - - /** - * Find first node satisfying a filter callback. - * - * @param Node|Node[] $nodes Single node or array of nodes to search in - * @param callable $filter Filter callback: function(Node $node) : bool - * - * @return null|Node Found node (or null if none found) - */ - public function findFirst($nodes, callable $filter): ?Node { - if ($nodes === []) { - return null; - } - - if (!is_array($nodes)) { - $nodes = [$nodes]; - } - - $visitor = new FirstFindingVisitor($filter); - - $traverser = new NodeTraverser($visitor); - $traverser->traverse($nodes); - - return $visitor->getFoundNode(); - } - - /** - * Find first node that is an instance of a certain class. - * - * @template TNode as Node - * - * @param Node|Node[] $nodes Single node or array of nodes to search in - * @param class-string $class Class name - * - * @return null|TNode Found node, which is an instance of $class (or null if none found) - */ - public function findFirstInstanceOf($nodes, string $class): ?Node { - return $this->findFirst($nodes, function ($node) use ($class) { - return $node instanceof $class; - }); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php deleted file mode 100644 index f5b868a..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php +++ /dev/null @@ -1,278 +0,0 @@ - Visitors */ - protected array $visitors = []; - - /** @var bool Whether traversal should be stopped */ - protected bool $stopTraversal; - - /** - * Create a traverser with the given visitors. - * - * @param NodeVisitor ...$visitors Node visitors - */ - public function __construct(NodeVisitor ...$visitors) { - $this->visitors = $visitors; - } - - /** - * Adds a visitor. - * - * @param NodeVisitor $visitor Visitor to add - */ - public function addVisitor(NodeVisitor $visitor): void { - $this->visitors[] = $visitor; - } - - /** - * Removes an added visitor. - */ - public function removeVisitor(NodeVisitor $visitor): void { - $index = array_search($visitor, $this->visitors); - if ($index !== false) { - array_splice($this->visitors, $index, 1, []); - } - } - - /** - * Traverses an array of nodes using the registered visitors. - * - * @param Node[] $nodes Array of nodes - * - * @return Node[] Traversed array of nodes - */ - public function traverse(array $nodes): array { - $this->stopTraversal = false; - - foreach ($this->visitors as $visitor) { - if (null !== $return = $visitor->beforeTraverse($nodes)) { - $nodes = $return; - } - } - - $nodes = $this->traverseArray($nodes); - - for ($i = \count($this->visitors) - 1; $i >= 0; --$i) { - $visitor = $this->visitors[$i]; - if (null !== $return = $visitor->afterTraverse($nodes)) { - $nodes = $return; - } - } - - return $nodes; - } - - /** - * Recursively traverse a node. - * - * @param Node $node Node to traverse. - */ - protected function traverseNode(Node $node): void { - foreach ($node->getSubNodeNames() as $name) { - $subNode = $node->$name; - - if (\is_array($subNode)) { - $node->$name = $this->traverseArray($subNode); - if ($this->stopTraversal) { - break; - } - } elseif ($subNode instanceof Node) { - $traverseChildren = true; - $visitorIndex = -1; - - foreach ($this->visitors as $visitorIndex => $visitor) { - $return = $visitor->enterNode($subNode); - if (null !== $return) { - if ($return instanceof Node) { - $this->ensureReplacementReasonable($subNode, $return); - $subNode = $node->$name = $return; - } elseif (NodeVisitor::DONT_TRAVERSE_CHILDREN === $return) { - $traverseChildren = false; - } elseif (NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { - $traverseChildren = false; - break; - } elseif (NodeVisitor::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) { - $node->$name = null; - continue 2; - } else { - throw new \LogicException( - 'enterNode() returned invalid value of type ' . gettype($return) - ); - } - } - } - - if ($traverseChildren) { - $this->traverseNode($subNode); - if ($this->stopTraversal) { - break; - } - } - - for (; $visitorIndex >= 0; --$visitorIndex) { - $visitor = $this->visitors[$visitorIndex]; - $return = $visitor->leaveNode($subNode); - - if (null !== $return) { - if ($return instanceof Node) { - $this->ensureReplacementReasonable($subNode, $return); - $subNode = $node->$name = $return; - } elseif (NodeVisitor::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) { - $node->$name = null; - break; - } elseif (\is_array($return)) { - throw new \LogicException( - 'leaveNode() may only return an array ' . - 'if the parent structure is an array' - ); - } else { - throw new \LogicException( - 'leaveNode() returned invalid value of type ' . gettype($return) - ); - } - } - } - } - } - } - - /** - * Recursively traverse array (usually of nodes). - * - * @param array $nodes Array to traverse - * - * @return array Result of traversal (may be original array or changed one) - */ - protected function traverseArray(array $nodes): array { - $doNodes = []; - - foreach ($nodes as $i => $node) { - if ($node instanceof Node) { - $traverseChildren = true; - $visitorIndex = -1; - - foreach ($this->visitors as $visitorIndex => $visitor) { - $return = $visitor->enterNode($node); - if (null !== $return) { - if ($return instanceof Node) { - $this->ensureReplacementReasonable($node, $return); - $nodes[$i] = $node = $return; - } elseif (\is_array($return)) { - $doNodes[] = [$i, $return]; - continue 2; - } elseif (NodeVisitor::REMOVE_NODE === $return) { - $doNodes[] = [$i, []]; - continue 2; - } elseif (NodeVisitor::DONT_TRAVERSE_CHILDREN === $return) { - $traverseChildren = false; - } elseif (NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { - $traverseChildren = false; - break; - } elseif (NodeVisitor::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) { - throw new \LogicException( - 'REPLACE_WITH_NULL can not be used if the parent structure is an array'); - } else { - throw new \LogicException( - 'enterNode() returned invalid value of type ' . gettype($return) - ); - } - } - } - - if ($traverseChildren) { - $this->traverseNode($node); - if ($this->stopTraversal) { - break; - } - } - - for (; $visitorIndex >= 0; --$visitorIndex) { - $visitor = $this->visitors[$visitorIndex]; - $return = $visitor->leaveNode($node); - - if (null !== $return) { - if ($return instanceof Node) { - $this->ensureReplacementReasonable($node, $return); - $nodes[$i] = $node = $return; - } elseif (\is_array($return)) { - $doNodes[] = [$i, $return]; - break; - } elseif (NodeVisitor::REMOVE_NODE === $return) { - $doNodes[] = [$i, []]; - break; - } elseif (NodeVisitor::STOP_TRAVERSAL === $return) { - $this->stopTraversal = true; - break 2; - } elseif (NodeVisitor::REPLACE_WITH_NULL === $return) { - throw new \LogicException( - 'REPLACE_WITH_NULL can not be used if the parent structure is an array'); - } else { - throw new \LogicException( - 'leaveNode() returned invalid value of type ' . gettype($return) - ); - } - } - } - } elseif (\is_array($node)) { - throw new \LogicException('Invalid node structure: Contains nested arrays'); - } - } - - if (!empty($doNodes)) { - while (list($i, $replace) = array_pop($doNodes)) { - array_splice($nodes, $i, 1, $replace); - } - } - - return $nodes; - } - - private function ensureReplacementReasonable(Node $old, Node $new): void { - if ($old instanceof Node\Stmt && $new instanceof Node\Expr) { - throw new \LogicException( - "Trying to replace statement ({$old->getType()}) " . - "with expression ({$new->getType()}). Are you missing a " . - "Stmt_Expression wrapper?" - ); - } - - if ($old instanceof Node\Expr && $new instanceof Node\Stmt) { - throw new \LogicException( - "Trying to replace expression ({$old->getType()}) " . - "with statement ({$new->getType()})" - ); - } - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php deleted file mode 100644 index c3992b3..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - $node stays as-is - * * array (of Nodes) - * => The return value is merged into the parent array (at the position of the $node) - * * NodeVisitor::REMOVE_NODE - * => $node is removed from the parent array - * * NodeVisitor::REPLACE_WITH_NULL - * => $node is replaced with null - * * NodeVisitor::DONT_TRAVERSE_CHILDREN - * => Children of $node are not traversed. $node stays as-is - * * NodeVisitor::DONT_TRAVERSE_CURRENT_AND_CHILDREN - * => Further visitors for the current node are skipped, and its children are not - * traversed. $node stays as-is. - * * NodeVisitor::STOP_TRAVERSAL - * => Traversal is aborted. $node stays as-is - * * otherwise - * => $node is set to the return value - * - * @param Node $node Node - * - * @return null|int|Node|Node[] Replacement node (or special return value) - */ - public function enterNode(Node $node); - - /** - * Called when leaving a node. - * - * Return value semantics: - * * null - * => $node stays as-is - * * NodeVisitor::REMOVE_NODE - * => $node is removed from the parent array - * * NodeVisitor::REPLACE_WITH_NULL - * => $node is replaced with null - * * NodeVisitor::STOP_TRAVERSAL - * => Traversal is aborted. $node stays as-is - * * array (of Nodes) - * => The return value is merged into the parent array (at the position of the $node) - * * otherwise - * => $node is set to the return value - * - * @param Node $node Node - * - * @return null|int|Node|Node[] Replacement node (or special return value) - */ - public function leaveNode(Node $node); - - /** - * Called once after traversal. - * - * Return value semantics: - * * null: $nodes stays as-is - * * otherwise: $nodes is set to the return value - * - * @param Node[] $nodes Array of nodes - * - * @return null|Node[] Array of nodes - */ - public function afterTraverse(array $nodes); -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php deleted file mode 100644 index cba9249..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +++ /dev/null @@ -1,19 +0,0 @@ -setAttribute('origNode', $origNode); - return $node; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php deleted file mode 100644 index 5e2aed3..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +++ /dev/null @@ -1,82 +0,0 @@ - Token positions of comments */ - private array $commentPositions = []; - - /** - * Create a comment annotation visitor. - * - * @param Token[] $tokens Token array - */ - public function __construct(array $tokens) { - $this->tokens = $tokens; - - // Collect positions of comments. We use this to avoid traversing parts of the AST where - // there are no comments. - foreach ($tokens as $i => $token) { - if ($token->id === \T_COMMENT || $token->id === \T_DOC_COMMENT) { - $this->commentPositions[] = $i; - } - } - } - - public function enterNode(Node $node) { - $nextCommentPos = current($this->commentPositions); - if ($nextCommentPos === false) { - // No more comments. - return self::STOP_TRAVERSAL; - } - - $oldPos = $this->pos; - $this->pos = $pos = $node->getStartTokenPos(); - if ($nextCommentPos > $oldPos && $nextCommentPos < $pos) { - $comments = []; - while (--$pos >= $oldPos) { - $token = $this->tokens[$pos]; - if ($token->id === \T_DOC_COMMENT) { - $comments[] = new Comment\Doc( - $token->text, $token->line, $token->pos, $pos, - $token->getEndLine(), $token->getEndPos() - 1, $pos); - continue; - } - if ($token->id === \T_COMMENT) { - $comments[] = new Comment( - $token->text, $token->line, $token->pos, $pos, - $token->getEndLine(), $token->getEndPos() - 1, $pos); - continue; - } - if ($token->id !== \T_WHITESPACE) { - break; - } - } - if (!empty($comments)) { - $node->setAttribute('comments', array_reverse($comments)); - } - - do { - $nextCommentPos = next($this->commentPositions); - } while ($nextCommentPos !== false && $nextCommentPos < $this->pos); - } - - $endPos = $node->getEndTokenPos(); - if ($nextCommentPos > $endPos) { - // Skip children if there are no comments located inside this node. - $this->pos = $endPos; - return self::DONT_TRAVERSE_CHILDREN; - } - - return null; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php deleted file mode 100644 index 1f3f4ba..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +++ /dev/null @@ -1,47 +0,0 @@ -filterCallback = $filterCallback; - } - - /** - * Get found nodes satisfying the filter callback. - * - * Nodes are returned in pre-order. - * - * @return Node[] Found nodes - */ - public function getFoundNodes(): array { - return $this->foundNodes; - } - - public function beforeTraverse(array $nodes): ?array { - $this->foundNodes = []; - - return null; - } - - public function enterNode(Node $node) { - $filterCallback = $this->filterCallback; - if ($filterCallback($node)) { - $this->foundNodes[] = $node; - } - - return null; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php deleted file mode 100644 index 05deed5..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +++ /dev/null @@ -1,49 +0,0 @@ -filterCallback = $filterCallback; - } - - /** - * Get found node satisfying the filter callback. - * - * Returns null if no node satisfies the filter callback. - * - * @return null|Node Found node (or null if not found) - */ - public function getFoundNode(): ?Node { - return $this->foundNode; - } - - public function beforeTraverse(array $nodes): ?array { - $this->foundNode = null; - - return null; - } - - public function enterNode(Node $node) { - $filterCallback = $this->filterCallback; - if ($filterCallback($node)) { - $this->foundNode = $node; - return NodeVisitor::STOP_TRAVERSAL; - } - - return null; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php deleted file mode 100644 index ccd014e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ /dev/null @@ -1,262 +0,0 @@ -nameContext = new NameContext($errorHandler ?? new ErrorHandler\Throwing()); - $this->preserveOriginalNames = $options['preserveOriginalNames'] ?? false; - $this->replaceNodes = $options['replaceNodes'] ?? true; - } - - /** - * Get name resolution context. - */ - public function getNameContext(): NameContext { - return $this->nameContext; - } - - public function beforeTraverse(array $nodes): ?array { - $this->nameContext->startNamespace(); - return null; - } - - public function enterNode(Node $node) { - if ($node instanceof Stmt\Namespace_) { - $this->nameContext->startNamespace($node->name); - } elseif ($node instanceof Stmt\Use_) { - foreach ($node->uses as $use) { - $this->addAlias($use, $node->type, null); - } - } elseif ($node instanceof Stmt\GroupUse) { - foreach ($node->uses as $use) { - $this->addAlias($use, $node->type, $node->prefix); - } - } elseif ($node instanceof Stmt\Class_) { - if (null !== $node->extends) { - $node->extends = $this->resolveClassName($node->extends); - } - - foreach ($node->implements as &$interface) { - $interface = $this->resolveClassName($interface); - } - - $this->resolveAttrGroups($node); - if (null !== $node->name) { - $this->addNamespacedName($node); - } else { - $node->namespacedName = null; - } - } elseif ($node instanceof Stmt\Interface_) { - foreach ($node->extends as &$interface) { - $interface = $this->resolveClassName($interface); - } - - $this->resolveAttrGroups($node); - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\Enum_) { - foreach ($node->implements as &$interface) { - $interface = $this->resolveClassName($interface); - } - - $this->resolveAttrGroups($node); - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\Trait_) { - $this->resolveAttrGroups($node); - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\Function_) { - $this->resolveSignature($node); - $this->resolveAttrGroups($node); - $this->addNamespacedName($node); - } elseif ($node instanceof Stmt\ClassMethod - || $node instanceof Expr\Closure - || $node instanceof Expr\ArrowFunction - ) { - $this->resolveSignature($node); - $this->resolveAttrGroups($node); - } elseif ($node instanceof Stmt\Property) { - if (null !== $node->type) { - $node->type = $this->resolveType($node->type); - } - $this->resolveAttrGroups($node); - } elseif ($node instanceof Stmt\Const_) { - foreach ($node->consts as $const) { - $this->addNamespacedName($const); - } - } elseif ($node instanceof Stmt\ClassConst) { - if (null !== $node->type) { - $node->type = $this->resolveType($node->type); - } - $this->resolveAttrGroups($node); - } elseif ($node instanceof Stmt\EnumCase) { - $this->resolveAttrGroups($node); - } elseif ($node instanceof Expr\StaticCall - || $node instanceof Expr\StaticPropertyFetch - || $node instanceof Expr\ClassConstFetch - || $node instanceof Expr\New_ - || $node instanceof Expr\Instanceof_ - ) { - if ($node->class instanceof Name) { - $node->class = $this->resolveClassName($node->class); - } - } elseif ($node instanceof Stmt\Catch_) { - foreach ($node->types as &$type) { - $type = $this->resolveClassName($type); - } - } elseif ($node instanceof Expr\FuncCall) { - if ($node->name instanceof Name) { - $node->name = $this->resolveName($node->name, Stmt\Use_::TYPE_FUNCTION); - } - } elseif ($node instanceof Expr\ConstFetch) { - $node->name = $this->resolveName($node->name, Stmt\Use_::TYPE_CONSTANT); - } elseif ($node instanceof Stmt\TraitUse) { - foreach ($node->traits as &$trait) { - $trait = $this->resolveClassName($trait); - } - - foreach ($node->adaptations as $adaptation) { - if (null !== $adaptation->trait) { - $adaptation->trait = $this->resolveClassName($adaptation->trait); - } - - if ($adaptation instanceof Stmt\TraitUseAdaptation\Precedence) { - foreach ($adaptation->insteadof as &$insteadof) { - $insteadof = $this->resolveClassName($insteadof); - } - } - } - } - - return null; - } - - /** @param Stmt\Use_::TYPE_* $type */ - private function addAlias(Node\UseItem $use, int $type, ?Name $prefix = null): void { - // Add prefix for group uses - $name = $prefix ? Name::concat($prefix, $use->name) : $use->name; - // Type is determined either by individual element or whole use declaration - $type |= $use->type; - - $this->nameContext->addAlias( - $name, (string) $use->getAlias(), $type, $use->getAttributes() - ); - } - - /** @param Stmt\Function_|Stmt\ClassMethod|Expr\Closure|Expr\ArrowFunction $node */ - private function resolveSignature($node): void { - foreach ($node->params as $param) { - $param->type = $this->resolveType($param->type); - $this->resolveAttrGroups($param); - } - $node->returnType = $this->resolveType($node->returnType); - } - - /** - * @template T of Node\Identifier|Name|Node\ComplexType|null - * @param T $node - * @return T - */ - private function resolveType(?Node $node): ?Node { - if ($node instanceof Name) { - return $this->resolveClassName($node); - } - if ($node instanceof Node\NullableType) { - $node->type = $this->resolveType($node->type); - return $node; - } - if ($node instanceof Node\UnionType || $node instanceof Node\IntersectionType) { - foreach ($node->types as &$type) { - $type = $this->resolveType($type); - } - return $node; - } - return $node; - } - - /** - * Resolve name, according to name resolver options. - * - * @param Name $name Function or constant name to resolve - * @param Stmt\Use_::TYPE_* $type One of Stmt\Use_::TYPE_* - * - * @return Name Resolved name, or original name with attribute - */ - protected function resolveName(Name $name, int $type): Name { - if (!$this->replaceNodes) { - $resolvedName = $this->nameContext->getResolvedName($name, $type); - if (null !== $resolvedName) { - $name->setAttribute('resolvedName', $resolvedName); - } else { - $name->setAttribute('namespacedName', FullyQualified::concat( - $this->nameContext->getNamespace(), $name, $name->getAttributes())); - } - return $name; - } - - if ($this->preserveOriginalNames) { - // Save the original name - $originalName = $name; - $name = clone $originalName; - $name->setAttribute('originalName', $originalName); - } - - $resolvedName = $this->nameContext->getResolvedName($name, $type); - if (null !== $resolvedName) { - return $resolvedName; - } - - // unqualified names inside a namespace cannot be resolved at compile-time - // add the namespaced version of the name as an attribute - $name->setAttribute('namespacedName', FullyQualified::concat( - $this->nameContext->getNamespace(), $name, $name->getAttributes())); - return $name; - } - - protected function resolveClassName(Name $name): Name { - return $this->resolveName($name, Stmt\Use_::TYPE_NORMAL); - } - - protected function addNamespacedName(Node $node): void { - $node->namespacedName = Name::concat( - $this->nameContext->getNamespace(), (string) $node->name); - } - - protected function resolveAttrGroups(Node $node): void { - foreach ($node->attrGroups as $attrGroup) { - foreach ($attrGroup->attrs as $attr) { - $attr->name = $this->resolveClassName($attr->name); - } - } - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php deleted file mode 100644 index 38fedfd..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +++ /dev/null @@ -1,51 +0,0 @@ -$node->getAttribute('parent'), the previous - * node can be accessed through $node->getAttribute('previous'), - * and the next node can be accessed through $node->getAttribute('next'). - */ -final class NodeConnectingVisitor extends NodeVisitorAbstract { - /** - * @var Node[] - */ - private array $stack = []; - - /** - * @var ?Node - */ - private $previous; - - public function beforeTraverse(array $nodes) { - $this->stack = []; - $this->previous = null; - } - - public function enterNode(Node $node) { - if (!empty($this->stack)) { - $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); - } - - if ($this->previous !== null && $this->previous->getAttribute('parent') === $node->getAttribute('parent')) { - $node->setAttribute('previous', $this->previous); - $this->previous->setAttribute('next', $node); - } - - $this->stack[] = $node; - } - - public function leaveNode(Node $node) { - $this->previous = $node; - - array_pop($this->stack); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php deleted file mode 100644 index 1e7e9e8..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +++ /dev/null @@ -1,38 +0,0 @@ -$node->getAttribute('parent'). - */ -final class ParentConnectingVisitor extends NodeVisitorAbstract { - /** - * @var Node[] - */ - private array $stack = []; - - public function beforeTraverse(array $nodes) { - $this->stack = []; - } - - public function enterNode(Node $node) { - if (!empty($this->stack)) { - $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); - } - - $this->stack[] = $node; - } - - public function leaveNode(Node $node) { - array_pop($this->stack); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php deleted file mode 100644 index 6fb15cc..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +++ /dev/null @@ -1,24 +0,0 @@ -'", - "T_IS_GREATER_OR_EQUAL", - "T_SL", - "T_SR", - "'+'", - "'-'", - "'.'", - "'*'", - "'/'", - "'%'", - "'!'", - "T_INSTANCEOF", - "'~'", - "T_INC", - "T_DEC", - "T_INT_CAST", - "T_DOUBLE_CAST", - "T_STRING_CAST", - "T_ARRAY_CAST", - "T_OBJECT_CAST", - "T_BOOL_CAST", - "T_UNSET_CAST", - "'@'", - "T_POW", - "'['", - "T_NEW", - "T_CLONE", - "T_EXIT", - "T_IF", - "T_ELSEIF", - "T_ELSE", - "T_ENDIF", - "T_LNUMBER", - "T_DNUMBER", - "T_STRING", - "T_STRING_VARNAME", - "T_VARIABLE", - "T_NUM_STRING", - "T_INLINE_HTML", - "T_ENCAPSED_AND_WHITESPACE", - "T_CONSTANT_ENCAPSED_STRING", - "T_ECHO", - "T_DO", - "T_WHILE", - "T_ENDWHILE", - "T_FOR", - "T_ENDFOR", - "T_FOREACH", - "T_ENDFOREACH", - "T_DECLARE", - "T_ENDDECLARE", - "T_AS", - "T_SWITCH", - "T_MATCH", - "T_ENDSWITCH", - "T_CASE", - "T_DEFAULT", - "T_BREAK", - "T_CONTINUE", - "T_GOTO", - "T_FUNCTION", - "T_FN", - "T_CONST", - "T_RETURN", - "T_TRY", - "T_CATCH", - "T_FINALLY", - "T_USE", - "T_INSTEADOF", - "T_GLOBAL", - "T_STATIC", - "T_ABSTRACT", - "T_FINAL", - "T_PRIVATE", - "T_PROTECTED", - "T_PUBLIC", - "T_READONLY", - "T_VAR", - "T_UNSET", - "T_ISSET", - "T_EMPTY", - "T_HALT_COMPILER", - "T_CLASS", - "T_TRAIT", - "T_INTERFACE", - "T_ENUM", - "T_EXTENDS", - "T_IMPLEMENTS", - "T_OBJECT_OPERATOR", - "T_NULLSAFE_OBJECT_OPERATOR", - "T_LIST", - "T_ARRAY", - "T_CALLABLE", - "T_CLASS_C", - "T_TRAIT_C", - "T_METHOD_C", - "T_FUNC_C", - "T_LINE", - "T_FILE", - "T_START_HEREDOC", - "T_END_HEREDOC", - "T_DOLLAR_OPEN_CURLY_BRACES", - "T_CURLY_OPEN", - "T_PAAMAYIM_NEKUDOTAYIM", - "T_NAMESPACE", - "T_NS_C", - "T_DIR", - "T_NS_SEPARATOR", - "T_ELLIPSIS", - "T_NAME_FULLY_QUALIFIED", - "T_NAME_QUALIFIED", - "T_NAME_RELATIVE", - "T_ATTRIBUTE", - "';'", - "']'", - "'('", - "')'", - "'{'", - "'}'", - "'`'", - "'\"'", - "'$'" - ); - - protected array $tokenToSymbol = array( - 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, - 161, 162, 53, 50, 8, 51, 52, 54, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, - 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 163, 35, 164, 58, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, - 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, - 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158 - ); - - protected array $action = array( - 133, 134, 135, 582, 136, 137, 0, 751, 752, 753, - 138, 38,-32766,-32766,-32766, 151,-32766,-32766,-32766,-32767, - -32767,-32767,-32767, 102, 103, 104, 105, 106, 1112, 1113, - 1114, 1111, 1110, 1109, 1115, 745, 744,-32766,-32766,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1245, 837,-32766, 1322, 754,-32766,-32766,-32766,-32766, - -594,-32766,-32766,-32766, 104, 105, 106, -594, 1306, 265, - 139, 404, 758, 759, 760, 761, 990,-32766, 429,-32766, - -32766, -16,-32766, 242, 1027, 815, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, - 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, - 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, - 584, 779, 780, 585, 586,-32766, 803, 801, 802, 814, - 798, 799, 835, 826, 587, 588, 797, 589, 590, 591, - 592, 593, 594, 826, 459, 460, 461, 1036, 800, 595, - 596, 941, 140, 2, 133, 134, 135, 582, 136, 137, - 1060, 751, 752, 753, 138, 38, -328, -110, -110, 1326, - 290, 23, -110,-32766,-32766,-32766, 1325, 35, -110, 1112, - 1113, 1114, 1111, 1110, 1109, 1115, 612,-32766, 129, 745, - 744, 107, 108, 109,-32766, 274,-32766,-32766,-32766,-32766, - -32766,-32766,-32766, 828, 991, -194, 145, 110, 298, 754, - 836, 75,-32766,-32766,-32766, 1351, 142, 326, 1352, -594, - 326, -594, 254, 265, 139, 404, 758, 759, 760, 761, - 82, -272, 429,-32766, 326,-32766,-32766,-32766,-32766, 815, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, - 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, - 819, 820, 821, 822, 584, 779, 780, 585, 586, 830, - 803, 801, 802, 814, 798, 799, 712, 309, 587, 588, - 797, 589, 590, 591, 592, 593, 594, -78, 83, 84, - 85, -85, 800, 595, 596, 311, 149, 775, 746, 747, - 748, 749, 750, 725, 751, 752, 753, 788, 789, 37, - -328, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 323, 274, 482,-32766,-32766, - -32766, -58,-32766,-32766,-32766, 959, 960, 127, 110, -194, - 961, 339, 754,-32766,-32766,-32766, 955, -85, 291,-32766, - 1088,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758, - 759, 760, 761, -193,-32766, 824,-32766,-32766,-32766, -367, - 429, -367, 815, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 791, 813, 792, 793, 794, 795, 783, - 784, 785, 812, 786, 787, 772, 773, 774, 776, 777, - 778, 817, 818, 819, 820, 821, 822, 823, 779, 780, - 781, 782, -548, 803, 801, 802, 814, 798, 799, 340, - 327, 790, 796, 797, 804, 805, 807, 806, 808, 809, - 1033, 391, 606, 7,-32766, 800, 811, 810, 50, 51, - 52, 513, 53, 54, 831, 1240, 1239, 1241, 55, 56, - -110, 57, 1036, 920, 1090, -110, 1036, -110, 291, 483, - 745, 744, 305, 382, 381, -110, -110, -110, -110, -110, - -110, -110, -110, 423, 920, 283, -548, -548, 152, 290, - 380, 381, 1245, 715, 467, 468, 58, 59, 370, 21, - 423, -545, 60, 556, 61, 248, 249, 62, 63, 64, - 65, 66, 67, 68, 69, -548, 28, 267, 70, 445, - 514, 1104, 374, -342, 1272, 1273, 515, -193, 835, 154, - 832, -544, 1270, 42, 25, 516, 389, 517, 241, 518, - 920, 519, 298, 1238, 520, 521, 910, 920, 441, 44, - 45, 446, 377, 376,-32766, 46, 522, 1023, 1022, 1021, - 1024, 368, 338, 442, 1278, -545, -545, 910, 1231, 443, - 524, 525, 526, 835, 1245, 835, 1036, 716, 1341, 1236, - -545, 155, 528, 529,-32766, 1259, 1260, 1261, 1262, 1256, - 1257, 297, -551, 943, -545, -544, -544, 1263, 1258, 290, - 1035, 1240, 1239, 1241, 298, 444, 1036, 71, 1266, 841, - -544, 321, 322, 326, -153, -153, -153, 920, 1240, 1239, - 1241, 922, -550, 910, -544, 710, 943, -591,-32766, -153, - 910, -153, 357, -153, -591, -153, 862, 1033, 863, 1089, - 36, 251, 922, 737, 156, 375, 710, 717, 862, -585, - 863, -585, 75, 158, -546, 835, 959, 960, 326, 1036, - -57, 523, 920,-32766,-32766, 362, 896, 955, -110, -110, - -110, 32, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 745, 744, 656, 26, 835, - -110, -110, 720, 745, 744, -110, 33, 834, 922, 124, - 910, -110, 710, -153, 125, 922, 675, 676, 130, 710, - -32766, 150, 407, 131, 1150, 1152, 48, 144, -546, -546, - 378, 379,-32766, 383, 384, -543, 28, 159, 1238, 920, - 160, 298, 1059, -546, 75,-32766,-32766,-32766, 835,-32766, - 326,-32766, 1270,-32766, -87, 910,-32766, -546, 647, 648, - 161,-32766,-32766,-32766, -4, 920, -84,-32766,-32766, 727, - 162, 287, 163,-32766, 420, -302, -78, -73, -72, -71, - 141, 287,-32766, -70, 326, 976, 745, 744, 1231, 710, - 299, 300, -69, -68, -67, -298, -591, -66, -591, -543, - -543, -65, 528, 529, -46, 1259, 1260, 1261, 1262, 1256, - 1257, -18, 74, 148, -543, 273, 284, 1263, 1258, 126, - -543, 726, 910,-32766, 729, 919, 147, 73, -543, 1238, - 922, 690, 322, 326, 710, 279,-32766,-32766,-32766, 280, - -32766, 285,-32766, 286,-32766, 332, 288,-32766, 910, 289, - 292, 49,-32766,-32766,-32766, 293, 274, 1033,-32766,-32766, - 937, 110, -50, 685,-32766, 420, 146, 691, 826, 701, - 375, 703, 436,-32766, 1353, 20, 561, 296, 645, 1036, - 835, 959, 960, 1119, -543, -543, 523,-32766, 692, 693, - 306, 527, 955, -110, -110, -110, 132, 922, 834, -543, - 464, 710, 283, 662, 657,-32766, 1240, 1239, 1241, 678, - 304, 1238, 283, -543, 10, 301, 302, 493,-32766,-32766, - -32766, 663,-32766, 922,-32766, 679,-32766, 710, -4,-32766, - 373, 40, -508, 956,-32766,-32766,-32766, -275, 731,-32766, - -32766,-32766, 920, 303, 128, 1238,-32766, 420, 310, 0, - 567, 0,-32766,-32766,-32766,-32766,-32766, 0,-32766, 0, - -32766,-32766, 0,-32766, 0, 1277, -498, 0,-32766,-32766, - -32766,-32766, 1279, 0,-32766,-32766, 8, 1238, 24, 372, - -32766, 420, 920, 1267,-32766,-32766,-32766, 610,-32766,-32766, - -32766, 939,-32766, 298, -579,-32766, 846, 41, 734, 488, - -32766,-32766,-32766,-32766, 735, 854,-32766,-32766, 901, 1238, - 574, 1000,-32766, 420, 977, 984,-32766,-32766,-32766, 974, - -32766,-32766,-32766, 985,-32766, 910, 899,-32766, 972, 1093, - 1096, 1097,-32766,-32766,-32766, 1094, 1095, 1101,-32766,-32766, - 1292, -250, -250, -250,-32766, 420, 1310, 375, 1344, 650, - 28, 267, -578,-32766, -577, -551, -550, -549, 959, 960, - -492, 1, 835, 523, 29, 910, 1270, 30, 896, 955, - -110, -110, -110, 39, 43, 47, 72, 76, 77, 78, - 79, -249, -249, -249, 80, 81, 143, 375, 153, 157, - 897, 247, 328, 357, 358, 359, 360, 361, 959, 960, - 922, 362, 1231, 523, 710, -250, 363, 364, 896, 955, - -110, -110, -110, 365, 366, 367, 369, 529, 28, 1259, - 1260, 1261, 1262, 1256, 1257, 437, 555, 1348, -273, -272, - 835, 1263, 1258, 13, 1270, 14,-32766, 15, 16, 18, - 922, 73, 1238, 1350, 710, -249, 322, 326, 406,-32766, - -32766,-32766, 484,-32766, 485,-32766, 492,-32766, 495, 496, - -32766, 497, 498, 502, 503,-32766,-32766,-32766, 504, 511, - 1231,-32766,-32766, 572, 696, 1249, 1190,-32766, 420, 1268, - 1062, 1061, 1042, 1226, 1038, 529,-32766, 1259, 1260, 1261, - 1262, 1256, 1257, -277, -102, 12, 17, 27, 295, 1263, - 1258, 405, 603, 607, 636, 702, 1194, 1244, 1191, 73, - 34, 1323, 0, 320, 322, 326, 371, 711, 714, 718, - 719, 721, 722, 723, 724, 0, 728, 713, 0, 857, - 856, 865, 949, 992, 864, 1349, 948, 946, 947, 950, - 1222, 930, 940, 928, 982, 983, 634, 1347, 1304, 1293, - 1311, 1320, 0, 1207, 0, 1271, 0, 326 - ); - - protected array $actionCheck = array( - 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, - 12, 13, 9, 10, 11, 14, 9, 10, 11, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, - 118, 119, 120, 121, 122, 37, 38, 30, 116, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 1, 1, 9, 1, 57, 9, 10, 11, 137, - 1, 9, 10, 11, 50, 51, 52, 8, 1, 71, - 72, 73, 74, 75, 76, 77, 31, 30, 80, 32, - 33, 31, 30, 14, 1, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 116, 128, 129, 130, 131, - 132, 133, 82, 80, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 80, 129, 130, 131, 138, 150, 151, - 152, 1, 154, 8, 2, 3, 4, 5, 6, 7, - 162, 9, 10, 11, 12, 13, 8, 117, 118, 1, - 161, 8, 122, 9, 10, 11, 8, 8, 128, 116, - 117, 118, 119, 120, 121, 122, 51, 137, 8, 37, - 38, 53, 54, 55, 30, 57, 32, 33, 34, 35, - 36, 37, 38, 80, 159, 8, 8, 69, 158, 57, - 159, 161, 9, 10, 11, 80, 163, 167, 83, 160, - 167, 162, 8, 71, 72, 73, 74, 75, 76, 77, - 163, 162, 80, 30, 167, 32, 33, 34, 35, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 156, - 128, 129, 130, 131, 132, 133, 163, 8, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 16, 9, 10, - 11, 31, 150, 151, 152, 8, 154, 2, 3, 4, - 5, 6, 7, 163, 9, 10, 11, 12, 13, 30, - 162, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 8, 57, 31, 9, 10, - 11, 16, 9, 10, 11, 117, 118, 14, 69, 162, - 122, 8, 57, 9, 10, 11, 128, 97, 30, 30, - 1, 32, 33, 34, 35, 36, 71, 72, 73, 74, - 75, 76, 77, 8, 30, 80, 32, 33, 34, 106, - 80, 108, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 70, 128, 129, 130, 131, 132, 133, 8, - 70, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 116, 106, 1, 108, 116, 150, 151, 152, 2, 3, - 4, 5, 6, 7, 80, 155, 156, 157, 12, 13, - 101, 15, 138, 1, 164, 106, 138, 108, 30, 163, - 37, 38, 113, 106, 107, 116, 117, 118, 119, 120, - 121, 122, 123, 116, 1, 161, 134, 135, 14, 161, - 106, 107, 1, 31, 134, 135, 50, 51, 8, 101, - 116, 70, 56, 85, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 163, 70, 71, 72, 73, - 74, 123, 8, 164, 78, 79, 80, 162, 82, 14, - 156, 70, 86, 87, 88, 89, 8, 91, 97, 93, - 1, 95, 158, 80, 98, 99, 84, 1, 8, 103, - 104, 105, 106, 107, 116, 109, 110, 119, 120, 121, - 122, 115, 116, 8, 146, 134, 135, 84, 122, 8, - 124, 125, 126, 82, 1, 82, 138, 31, 85, 116, - 149, 14, 136, 137, 116, 139, 140, 141, 142, 143, - 144, 145, 161, 122, 163, 134, 135, 151, 152, 161, - 137, 155, 156, 157, 158, 8, 138, 161, 1, 8, - 149, 165, 166, 167, 75, 76, 77, 1, 155, 156, - 157, 159, 161, 84, 163, 163, 122, 1, 137, 90, - 84, 92, 161, 94, 8, 96, 106, 116, 108, 159, - 147, 148, 159, 163, 14, 106, 163, 31, 106, 160, - 108, 162, 161, 14, 70, 82, 117, 118, 167, 138, - 16, 122, 1, 9, 10, 161, 127, 128, 129, 130, - 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 37, 38, 75, 76, 82, - 117, 118, 31, 37, 38, 122, 14, 155, 159, 16, - 84, 128, 163, 164, 16, 159, 75, 76, 16, 163, - 137, 101, 102, 16, 59, 60, 70, 16, 134, 135, - 106, 107, 74, 106, 107, 70, 70, 16, 80, 1, - 16, 158, 1, 149, 161, 87, 88, 89, 82, 91, - 167, 93, 86, 95, 31, 84, 98, 163, 111, 112, - 16, 103, 104, 105, 0, 1, 31, 109, 110, 31, - 16, 30, 16, 115, 116, 35, 31, 31, 31, 31, - 163, 30, 124, 31, 167, 159, 37, 38, 122, 163, - 134, 135, 31, 31, 31, 35, 160, 31, 162, 134, - 135, 31, 136, 137, 31, 139, 140, 141, 142, 143, - 144, 31, 154, 31, 149, 31, 31, 151, 152, 163, - 70, 31, 84, 74, 31, 31, 31, 161, 163, 80, - 159, 80, 166, 167, 163, 35, 87, 88, 89, 35, - 91, 35, 93, 35, 95, 35, 37, 98, 84, 37, - 37, 70, 103, 104, 105, 37, 57, 116, 109, 110, - 38, 69, 31, 77, 115, 116, 70, 116, 80, 80, - 106, 92, 108, 124, 83, 97, 89, 113, 113, 138, - 82, 117, 118, 82, 134, 135, 122, 85, 137, 138, - 114, 127, 128, 129, 130, 131, 31, 159, 155, 149, - 97, 163, 161, 96, 90, 74, 155, 156, 157, 94, - 133, 80, 161, 163, 150, 134, 135, 97, 87, 88, - 89, 100, 91, 159, 93, 100, 95, 163, 164, 98, - 149, 159, 149, 128, 103, 104, 105, 162, 164, 74, - 109, 110, 1, 132, 163, 80, 115, 116, 132, -1, - 153, -1, 87, 88, 89, 124, 91, -1, 93, -1, - 95, 137, -1, 98, -1, 146, 149, -1, 103, 104, - 105, 74, 146, -1, 109, 110, 149, 80, 149, 149, - 115, 116, 1, 160, 87, 88, 89, 153, 91, 124, - 93, 154, 95, 158, 161, 98, 160, 159, 159, 102, - 103, 104, 105, 74, 159, 159, 109, 110, 159, 80, - 81, 159, 115, 116, 159, 159, 87, 88, 89, 159, - 91, 124, 93, 159, 95, 84, 159, 98, 159, 159, - 159, 159, 103, 104, 105, 159, 159, 159, 109, 110, - 160, 100, 101, 102, 115, 116, 160, 106, 160, 160, - 70, 71, 161, 124, 161, 161, 161, 161, 117, 118, - 161, 161, 82, 122, 161, 84, 86, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 161, 161, 161, - 161, 100, 101, 102, 161, 161, 161, 106, 161, 161, - 164, 161, 161, 161, 161, 161, 161, 161, 117, 118, - 159, 161, 122, 122, 163, 164, 161, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 137, 70, 139, - 140, 141, 142, 143, 144, 161, 161, 164, 162, 162, - 82, 151, 152, 162, 86, 162, 74, 162, 162, 162, - 159, 161, 80, 164, 163, 164, 166, 167, 162, 87, - 88, 89, 162, 91, 162, 93, 162, 95, 162, 162, - 98, 162, 162, 162, 162, 103, 104, 105, 162, 162, - 122, 109, 110, 162, 162, 162, 162, 115, 116, 162, - 162, 162, 162, 162, 162, 137, 124, 139, 140, 141, - 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, - 152, 162, 162, 162, 162, 162, 162, 162, 162, 161, - 163, 162, -1, 163, 166, 167, 163, 163, 163, 163, - 163, 163, 163, 163, 163, -1, 163, 163, -1, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, -1, 165, -1, 166, -1, 167 - ); - - protected array $actionBase = array( - 0, -2, 152, 549, 764, 941, 981, 751, 617, 310, - 123, 877, 556, 671, 671, 738, 671, 472, 626, 789, - 63, 305, 305, 789, 305, 493, 493, 493, 658, 658, - 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 51, 45, 451, 692, 1036, 1044, - 1040, 1045, 1034, 1033, 1039, 1041, 1046, 1083, 1084, 795, - 1085, 1086, 1082, 1087, 1042, 889, 1035, 1043, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 44, 343, 664, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 52, 52, - 52, 666, 666, 47, 354, 980, 203, 1048, 1048, 1048, - 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164, - 7, 7, 7, 7, 7, 50, 369, 583, -25, -25, - -25, -25, 448, 741, 501, 408, 283, 338, 394, 334, - 334, 14, 14, 531, 531, 9, 9, 531, 531, 531, - 478, 478, 478, 478, 441, 471, 552, 428, 824, 53, - 53, 53, 53, 824, 824, 824, 824, 826, 1089, 824, - 824, 824, 594, 750, 750, 781, 138, 138, 138, 750, - 540, 503, 503, 540, 238, 503, 67, 135, -78, 805, - 377, 499, -78, 362, 656, 636, 59, 743, 624, 743, - 1032, 481, 802, 802, 514, 773, 746, 878, 1064, 1049, - 821, 1080, 825, 1081, 15, 370, 745, 1031, 1031, 1031, - 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1090, 443, - 1032, 384, 1090, 1090, 1090, 443, 443, 443, 443, 443, - 443, 443, 443, 443, 443, 647, 384, 622, 641, 384, - 810, 443, 51, 817, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 780, 316, 51, 45, 150, 150, - 490, 83, 150, 150, 150, 150, 51, 51, 51, 51, - 624, 799, 797, 627, 834, 375, 799, 799, 799, 270, - 158, 69, 197, 740, 760, 345, 788, 788, 801, 900, - 900, 788, 798, 788, 801, 914, 788, 788, 900, 900, - 835, 180, 550, 353, 524, 565, 900, 279, 788, 788, - 788, 788, 816, 571, 788, 214, 198, 788, 788, 816, - 811, 785, 145, 777, 900, 900, 900, 816, 500, 777, - 777, 777, 839, 845, 765, 784, 337, 297, 611, 169, - 822, 784, 784, 788, 538, 765, 784, 765, 784, 837, - 784, 784, 784, 765, 784, 798, 431, 784, 721, 607, - 163, 784, 6, 915, 916, 723, 917, 912, 918, 964, - 919, 923, 1054, 899, 930, 913, 924, 965, 906, 903, - 794, 693, 698, 827, 783, 896, 792, 792, 792, 894, - 792, 792, 792, 792, 792, 792, 792, 792, 693, 823, - 830, 787, 933, 702, 707, 1011, 819, 926, 1088, 932, - 1013, 925, 772, 711, 977, 934, 774, 1050, 935, 936, - 986, 1014, 846, 1017, 963, 796, 979, 1065, 836, 945, - 1055, 792, 915, 923, 735, 913, 924, 906, 903, 770, - 766, 762, 763, 761, 752, 747, 748, 782, 1018, 893, - 833, 880, 940, 895, 693, 886, 971, 1047, 990, 992, - 1053, 803, 791, 888, 1066, 946, 952, 953, 1056, 1019, - 1057, 838, 973, 775, 994, 820, 1067, 996, 997, 999, - 1000, 1058, 1068, 1059, 891, 1060, 849, 814, 966, 807, - 1069, 1, 806, 808, 818, 955, 484, 931, 1061, 1070, - 1071, 1001, 1002, 1006, 1072, 1073, 927, 852, 975, 815, - 976, 967, 855, 856, 525, 813, 1020, 800, 804, 812, - 577, 640, 1074, 1075, 1076, 928, 790, 786, 860, 864, - 1021, 809, 1022, 1077, 649, 867, 724, 1078, 1012, 744, - 754, 281, 654, 335, 756, 779, 1063, 829, 776, 778, - 954, 754, 793, 869, 1079, 870, 871, 872, 1007, 876, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 456, 456, 456, 456, 456, 456, 305, 305, 305, 305, - 305, 456, 456, 456, 456, 456, 456, 456, 305, 305, - 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 473, 473, 289, 289, 473, 289, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 0, 289, 289, 289, 289, - 289, 289, 289, 289, 473, 835, 473, 138, 138, 138, - 138, 473, 473, 473, -88, -88, 473, 238, 473, 473, - 138, 138, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 0, 0, 384, 503, 473, 798, 798, - 798, 798, 473, 473, 473, 473, 503, 503, 473, 473, - 473, 0, 0, 0, 0, 0, 0, 0, 0, 384, - 0, 0, 384, 0, 0, 798, 798, 473, 238, 835, - 168, 473, 0, 0, 0, 0, 384, 798, 384, 443, - 788, 503, 503, 788, 443, 443, 150, 51, 168, 620, - 620, 620, 620, 0, 0, 624, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 798, 0, 835, - 0, 798, 798, 798, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, - 0, 0, 900, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, - 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 792, 803, 0, 803, 0, 792, 792, 792, 0, 0, - 0, 0, 813, 809 - ); - - protected array $actionDefault = array( - 3,32767, 102,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 100,32767,32767,32767,32767, 597, 597, - 597, 597,32767,32767, 254, 102,32767,32767, 470, 387, - 387, 387,32767,32767, 541, 541, 541, 541, 541, 541, - 32767,32767,32767,32767,32767,32767, 470,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100, - 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17, - 324,32767,32767,32767,32767, 102,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 590,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 474, 453, - 454, 456, 457, 386, 542, 596, 327, 593, 385, 145, - 339, 329, 242, 330, 258, 475, 259, 476, 479, 480, - 215, 287, 382, 149, 150, 417, 471, 419, 469, 473, - 418, 392, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 390, 391, 472, 450, 449, - 448,32767,32767, 415, 416,32767, 420,32767,32767,32767, - 32767,32767,32767,32767, 102,32767, 389, 423, 421, 422, - 439, 440, 437, 438, 441,32767,32767,32767, 442, 443, - 444, 445, 316,32767,32767, 366, 364, 316, 111,32767, - 32767, 430, 431,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 535, 447,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 102, - 32767, 100, 537, 412, 414, 504, 425, 426, 424, 393, - 32767, 511,32767, 102,32767, 513,32767,32767,32767,32767, - 32767,32767,32767, 536,32767, 543, 543,32767, 497, 100, - 195,32767,32767, 512,32767, 195, 195,32767,32767,32767, - 32767,32767,32767,32767,32767, 604, 497, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110,32767, 195, - 110,32767,32767,32767, 100, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 190,32767, 268, 270, 102, - 558, 195,32767, 516,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 497, 435, 138,32767, 138, 543, 427, 428, 429, 499, - 543, 543, 543, 312, 289,32767,32767,32767,32767, 514, - 514, 100, 100, 100, 100, 509,32767,32767,32767,32767, - 111, 99, 99, 99, 99, 99, 103, 101,32767,32767, - 32767,32767, 223, 99,32767, 101, 101,32767,32767, 223, - 225, 212, 101, 227,32767, 562, 563, 223, 101, 227, - 227, 227, 247, 247, 486, 318, 101, 99, 101, 101, - 197, 318, 318,32767, 101, 486, 318, 486, 318, 199, - 318, 318, 318, 486, 318,32767, 101, 318, 214, 99, - 99, 318,32767,32767,32767, 499,32767,32767,32767,32767, - 32767,32767,32767, 222,32767,32767,32767,32767,32767,32767, - 32767,32767, 530,32767, 547, 560, 433, 434, 436, 545, - 458, 459, 460, 461, 462, 463, 464, 466, 592,32767, - 503,32767,32767,32767, 338,32767, 602,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 603,32767, 543,32767,32767,32767, - 32767, 432, 9, 74, 492, 42, 43, 51, 57, 520, - 521, 522, 523, 517, 518, 524, 519,32767,32767, 525, - 568,32767,32767, 544, 595,32767,32767,32767,32767,32767, - 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 530,32767, 136,32767,32767,32767,32767, - 32767,32767,32767,32767, 526,32767,32767,32767, 543,32767, - 32767,32767,32767, 314, 311,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 543,32767,32767,32767,32767,32767, 291,32767, 308, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 286,32767,32767, 381, - 499, 294, 296, 297,32767,32767,32767,32767, 360,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 152, 152, 3, 3, 341, 152, 152, 152, 341, 341, - 152, 341, 341, 341, 152, 152, 152, 152, 152, 152, - 280, 185, 262, 265, 247, 247, 152, 352, 152 - ); - - protected array $goto = array( - 196, 196, 1034, 1065, 697, 431, 661, 621, 658, 319, - 706, 425, 313, 314, 335, 576, 430, 336, 432, 638, - 654, 655, 852, 672, 673, 674, 853, 167, 167, 167, - 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, - 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, - 189, 190, 191, 192, 218, 216, 219, 536, 537, 421, - 538, 540, 541, 542, 543, 544, 545, 546, 547, 1136, - 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, - 176, 178, 215, 217, 220, 238, 243, 244, 246, 257, - 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, - 271, 281, 282, 316, 317, 318, 426, 427, 428, 581, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, - 200, 239, 188, 189, 190, 191, 192, 218, 1136, 201, - 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, - 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, - 212, 213, 214, 855, 466, 466, 278, 278, 278, 278, - 623, 623, 351, 466, 1269, 600, 1269, 1269, 1269, 1269, - 1269, 1269, 1269, 1269, 1269, 1287, 1287, 599, 1100, 1287, - 709, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 508, 700, 458, 1098, 975, 559, 552, 860, 419, 909, - 904, 905, 918, 861, 906, 858, 907, 908, 859, 848, - 827, 912, 354, 354, 354, 354, 396, 399, 560, 601, - 605, 1087, 1082, 1083, 1084, 341, 552, 559, 568, 569, - 344, 579, 602, 616, 617, 408, 409, 1232, 440, 479, - 670, 22, 671, 886, 412, 413, 414, 481, 684, 349, - 1237, 415, 1237, 1107, 1108, 347, 833, 1034, 1034, 1237, - 573, 848, 1034, 1327, 1034, 1034, 1040, 1039, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1319, - 1319, 1319, 1319, 1237, 893, 851, 893, 893, 1237, 1237, - 1237, 1237, 1233, 1234, 1237, 1237, 1237, 833, 355, 833, - 843, 996, 252, 252, 1043, 1044, 1037, 1037, 355, 355, - 681, 952, 394, 926, 1029, 1045, 1046, 927, 1235, 1295, - 1296, 942, 355, 355, 942, 913, 355, 914, 1354, 250, - 250, 250, 250, 245, 253, 548, 548, 548, 548, 554, - 604, 1285, 1285, 355, 355, 1285, 571, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 539, 539, 342, 424, - 539, 611, 539, 539, 539, 539, 539, 539, 539, 539, - 539, 566, 476, 1312, 1313, 733, 637, 639, 325, 308, - 659, 848, 343, 342, 683, 687, 1010, 695, 704, 1006, - 660, 1298, 609, 624, 627, 628, 629, 630, 651, 652, - 653, 708, 1216, 944, 1314, 1315, 1217, 1220, 945, 1221, - 1337, 1337, 686, 352, 353, 868, 553, 563, 450, 450, - 450, 553, 1309, 563, 1309, 1133, 397, 462, 1337, 1058, - 880, 1309, 1185, 867, 500, 5, 501, 6, 469, 580, - 470, 471, 507, 554, 878, 1340, 1340, 1345, 1346, 433, - 438, 550, 666, 550, 433, 682, 1321, 1321, 1321, 1321, - 550, 337, 1041, 1041, 931, 1123, 873, 665, 1052, 1048, - 1049, 619, 845, 876, 324, 275, 324, 1015, 967, 410, - 705, 577, 614, 1305, 456, 872, 403, 664, 994, 969, - 969, 969, 969, 866, 870, 456, 963, 970, 881, 869, - 1070, 1074, 631, 633, 635, 1227, 1230, 958, 615, 978, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 999, 1018, 450, 971, 1073, 732, 477, 1228, 1307, - 1307, 1073, 736, 968, 551, 1008, 1003, 882, 694, 1075, - 1071, 829, 255, 255, 980, 0, 1118, 0, 1013, 1013, - 694, 0, 0, 0, 694, 1116, 885 - ); - - protected array $gotoCheck = array( - 42, 42, 73, 127, 73, 66, 66, 56, 56, 66, - 9, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 86, 86, 26, 86, 86, 86, 27, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 15, 149, 149, 23, 23, 23, 23, - 108, 108, 97, 149, 108, 130, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 170, 170, 8, 8, 170, - 8, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 8, 8, 83, 8, 49, 76, 76, 15, 43, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 22, - 6, 15, 24, 24, 24, 24, 59, 59, 59, 59, - 59, 15, 15, 15, 15, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 82, 82, 20, 83, 84, - 82, 76, 82, 45, 82, 82, 82, 84, 82, 179, - 73, 82, 73, 144, 144, 82, 12, 73, 73, 73, - 172, 22, 73, 181, 73, 73, 118, 118, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 9, - 9, 9, 9, 73, 25, 25, 25, 25, 73, 73, - 73, 73, 20, 20, 73, 73, 73, 12, 14, 12, - 20, 103, 5, 5, 119, 119, 89, 89, 14, 14, - 89, 89, 62, 73, 89, 89, 89, 73, 20, 20, - 20, 9, 14, 14, 9, 65, 14, 65, 14, 5, - 5, 5, 5, 5, 5, 107, 107, 107, 107, 14, - 107, 171, 171, 14, 14, 171, 104, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 173, 173, 168, 13, - 173, 13, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 48, 176, 176, 176, 48, 48, 48, 169, 169, - 48, 22, 168, 168, 48, 48, 48, 48, 48, 48, - 64, 14, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 79, 79, 178, 178, 79, 79, 79, 79, - 182, 182, 14, 97, 97, 35, 9, 9, 23, 23, - 23, 9, 130, 9, 130, 150, 9, 9, 182, 114, - 35, 130, 151, 35, 155, 46, 155, 46, 9, 9, - 9, 9, 155, 14, 9, 182, 182, 9, 9, 117, - 113, 19, 120, 19, 117, 116, 130, 130, 130, 130, - 19, 29, 117, 117, 17, 17, 39, 117, 117, 117, - 117, 17, 18, 9, 24, 24, 24, 17, 93, 93, - 93, 2, 2, 130, 19, 17, 28, 17, 17, 19, - 19, 19, 19, 17, 37, 19, 19, 19, 16, 16, - 16, 16, 85, 85, 85, 17, 14, 92, 80, 16, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 50, 110, 23, 50, 130, 50, 157, 160, 130, - 130, 130, 99, 16, 50, 50, 50, 41, 7, 132, - 129, 7, 5, 5, 96, -1, 147, -1, 107, 107, - 7, -1, -1, -1, 7, 16, 16 - ); - - protected array $gotoBase = array( - 0, 0, -221, 0, 0, 311, 200, 541, 179, -10, - 0, 0, -30, 32, 11, -185, 56, 9, 173, 196, - -146, 0, -59, 163, 219, 291, 18, 22, 159, 175, - 0, 0, 0, 0, 0, 54, 0, 165, 0, 153, - 0, 106, -1, 189, 0, 230, -291, 0, -330, 186, - 519, 0, 0, 0, 0, 0, -33, 0, 0, 181, - 0, 0, 280, 0, 158, 321, -236, 0, 0, 0, - 0, 0, 0, -5, 0, 0, -140, 0, 0, 4, - 174, 44, -246, -76, -220, 33, -698, 0, 0, 37, - 0, 0, 188, 184, 0, 0, 111, -311, 0, 135, - 0, 0, 0, 276, 313, 0, 0, 317, -71, 0, - 162, 0, 0, 183, 166, 0, 182, 187, -3, 29, - 172, 0, 0, 0, 0, 0, 0, 1, 0, 176, - 167, 0, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -12, 0, 0, 112, 0, 130, - 190, 168, 0, 0, 0, -51, 0, 97, 0, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 71, 67, - -56, 110, 241, 125, 0, 0, 82, 0, 42, 229, - 0, 242, 113, 0, 0 - ); - - protected array $gotoDefault = array( - -32768, 512, 740, 4, 741, 935, 816, 825, 597, 530, - 707, 348, 625, 422, 1303, 911, 1122, 578, 844, 1246, - 1254, 457, 847, 330, 730, 923, 894, 895, 400, 386, - 392, 398, 649, 626, 494, 879, 453, 871, 486, 874, - 452, 883, 164, 418, 510, 887, 3, 890, 557, 921, - 973, 387, 898, 388, 677, 900, 562, 902, 903, 395, - 401, 402, 1127, 570, 622, 915, 256, 564, 916, 385, - 917, 925, 390, 393, 688, 465, 505, 499, 411, 1102, - 565, 608, 646, 447, 473, 620, 632, 618, 480, 434, - 416, 329, 957, 965, 487, 463, 979, 350, 987, 738, - 1135, 640, 489, 995, 641, 1002, 1005, 531, 532, 478, - 1017, 272, 1020, 490, 19, 667, 1031, 1032, 668, 642, - 1054, 643, 669, 644, 1056, 472, 598, 1064, 454, 1072, - 1291, 455, 1076, 266, 1079, 277, 417, 435, 1085, 1086, - 9, 1092, 698, 699, 11, 276, 509, 1117, 689, 451, - 1134, 439, 1204, 1206, 558, 491, 1224, 1223, 680, 506, - 1229, 448, 1294, 449, 533, 474, 315, 534, 1338, 307, - 333, 312, 549, 294, 334, 535, 475, 1300, 1308, 331, - 31, 1328, 1339, 575, 613 - ); - - protected array $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, - 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, - 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, - 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, - 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, - 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, - 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, - 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, - 78, 79, 79, 80, 80, 26, 26, 27, 27, 27, - 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, - 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, - 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, - 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, - 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, - 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, - 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, - 111, 111, 112, 112, 112, 112, 110, 110, 110, 114, - 114, 114, 114, 89, 89, 117, 117, 117, 118, 118, - 115, 115, 119, 119, 121, 121, 122, 122, 116, 123, - 123, 120, 124, 124, 124, 124, 113, 113, 82, 82, - 82, 20, 20, 20, 126, 125, 125, 127, 127, 127, - 127, 60, 128, 128, 129, 61, 131, 131, 132, 132, - 133, 133, 86, 134, 134, 134, 134, 134, 134, 134, - 139, 139, 140, 140, 141, 141, 141, 141, 141, 142, - 143, 143, 138, 138, 135, 135, 137, 137, 145, 145, - 144, 144, 144, 144, 144, 144, 144, 136, 146, 146, - 148, 147, 147, 62, 104, 149, 149, 56, 56, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 156, 150, 150, 155, 155, 158, 159, - 159, 160, 161, 162, 162, 162, 162, 19, 19, 73, - 73, 73, 73, 151, 151, 151, 151, 164, 164, 152, - 152, 154, 154, 154, 157, 157, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 108, 173, - 173, 173, 173, 153, 153, 153, 153, 153, 153, 153, - 153, 59, 59, 167, 167, 167, 167, 174, 174, 163, - 163, 163, 175, 175, 175, 175, 175, 175, 74, 74, - 66, 66, 66, 66, 130, 130, 130, 130, 178, 177, - 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, - 176, 176, 176, 176, 107, 172, 180, 180, 179, 179, - 181, 181, 181, 181, 181, 181, 181, 181, 169, 169, - 169, 169, 168, 183, 182, 182, 182, 182, 182, 182, - 182, 182, 184, 184, 184, 184 - ); - - protected array $ruleToLength = array( - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, - 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, - 4, 2, 3, 1, 1, 7, 6, 2, 3, 1, - 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, - 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, - 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, - 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, - 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, - 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, - 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, - 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, - 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, - 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, - 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, - 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, - 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, - 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, - 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, - 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, - 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, - 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, - 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, - 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, - 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, - 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, - 3, 3, 3, 4, 4, 1, 1, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, - 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, - 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, - 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, - 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, - 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, - 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, - 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, - 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, - 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, - 6, 3, 1, 1, 2, 1 - ); - - protected function initReduceCallbacks(): void { - $this->reduceCallbacks = [ - 0 => null, - 1 => function ($stackPos) { - $this->semValue = $this->handleNamespaces($this->semStack[$stackPos-(1-1)]); - }, - 2 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; } $this->semValue = $this->semStack[$stackPos-(2-1)];; - }, - 3 => function ($stackPos) { - $this->semValue = array(); - }, - 4 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 5 => null, - 6 => null, - 7 => null, - 8 => null, - 9 => null, - 10 => null, - 11 => null, - 12 => null, - 13 => null, - 14 => null, - 15 => null, - 16 => null, - 17 => null, - 18 => null, - 19 => null, - 20 => null, - 21 => null, - 22 => null, - 23 => null, - 24 => null, - 25 => null, - 26 => null, - 27 => null, - 28 => null, - 29 => null, - 30 => null, - 31 => null, - 32 => null, - 33 => null, - 34 => null, - 35 => null, - 36 => null, - 37 => null, - 38 => null, - 39 => null, - 40 => null, - 41 => null, - 42 => null, - 43 => null, - 44 => null, - 45 => null, - 46 => null, - 47 => null, - 48 => null, - 49 => null, - 50 => null, - 51 => null, - 52 => null, - 53 => null, - 54 => null, - 55 => null, - 56 => null, - 57 => null, - 58 => null, - 59 => null, - 60 => null, - 61 => null, - 62 => null, - 63 => null, - 64 => null, - 65 => null, - 66 => null, - 67 => null, - 68 => null, - 69 => null, - 70 => null, - 71 => null, - 72 => null, - 73 => null, - 74 => null, - 75 => null, - 76 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; if ($this->semValue === "emitError(new Error('Cannot use "getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]))); - }, - 77 => null, - 78 => null, - 79 => null, - 80 => null, - 81 => null, - 82 => null, - 83 => null, - 84 => null, - 85 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 86 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 87 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 88 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 89 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 90 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 91 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 92 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 93 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 94 => null, - 95 => function ($stackPos) { - $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 96 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 97 => function ($stackPos) { - /* nothing */ - }, - 98 => function ($stackPos) { - /* nothing */ - }, - 99 => function ($stackPos) { - /* nothing */ - }, - 100 => function ($stackPos) { - $this->emitError(new Error('A trailing comma is not allowed here', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]))); - }, - 101 => null, - 102 => null, - 103 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(1-1)], [], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 104 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 105 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 106 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 107 => function ($stackPos) { - $this->semValue = new Node\AttributeGroup($this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 108 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 109 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 110 => function ($stackPos) { - $this->semValue = []; - }, - 111 => null, - 112 => null, - 113 => null, - 114 => null, - 115 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->handleHaltCompiler(), $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 116 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($this->semValue); - }, - 117 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - }, - 118 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - }, - 119 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 120 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 121 => null, - 122 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 123 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; - }, - 124 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; - }, - 125 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 126 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 127 => null, - 128 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 129 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 130 => null, - 131 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 132 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 133 => null, - 134 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 135 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 136 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(1-1)); - }, - 137 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(3-3)); - }, - 138 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(1-1)); - }, - 139 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(3-3)); - }, - 140 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; - }, - 141 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; - }, - 142 => null, - 143 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 144 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 145 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 146 => null, - 147 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 148 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 149 => function ($stackPos) { - $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos-(3-1)])), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 150 => function ($stackPos) { - $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos-(3-1)])), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 151 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; } $this->semValue = $this->semStack[$stackPos-(2-1)];; - }, - 152 => function ($stackPos) { - $this->semValue = array(); - }, - 153 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 154 => null, - 155 => null, - 156 => null, - 157 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 158 => function ($stackPos) { - $this->semValue = new Stmt\Block($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 159 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => $this->semStack[$stackPos-(7-5)], 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 160 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 161 => function ($stackPos) { - $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 162 => function ($stackPos) { - $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], $this->semStack[$stackPos-(7-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 163 => function ($stackPos) { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 164 => function ($stackPos) { - $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 165 => function ($stackPos) { - $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 166 => function ($stackPos) { - $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 167 => function ($stackPos) { - $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 168 => function ($stackPos) { - $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 169 => function ($stackPos) { - $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 170 => function ($stackPos) { - $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 171 => function ($stackPos) { - - $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('hasLeadingNewline', $this->inlineHtmlHasLeadingNewline($stackPos-(1-1))); - - }, - 172 => function ($stackPos) { - $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 173 => function ($stackPos) { - $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 174 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 175 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 176 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(6-4)], $this->tokenEndStack[$stackPos-(6-4)])), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 177 => function ($stackPos) { - $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 178 => function ($stackPos) { - $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); $this->checkTryCatch($this->semValue); - }, - 179 => function ($stackPos) { - $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 180 => function ($stackPos) { - $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 181 => function ($stackPos) { - $this->semValue = null; /* means: no statement */ - }, - 182 => null, - 183 => function ($stackPos) { - $this->semValue = $this->maybeCreateNop($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]); - }, - 184 => function ($stackPos) { - if ($this->semStack[$stackPos-(1-1)] instanceof Stmt\Block) { $this->semValue = $this->semStack[$stackPos-(1-1)]->stmts; } else if ($this->semStack[$stackPos-(1-1)] === null) { $this->semValue = []; } else { $this->semValue = [$this->semStack[$stackPos-(1-1)]]; }; - }, - 185 => function ($stackPos) { - $this->semValue = array(); - }, - 186 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 187 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 188 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 189 => function ($stackPos) { - $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 190 => function ($stackPos) { - $this->semValue = null; - }, - 191 => function ($stackPos) { - $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 192 => null, - 193 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 194 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 195 => function ($stackPos) { - $this->semValue = false; - }, - 196 => function ($stackPos) { - $this->semValue = true; - }, - 197 => function ($stackPos) { - $this->semValue = false; - }, - 198 => function ($stackPos) { - $this->semValue = true; - }, - 199 => function ($stackPos) { - $this->semValue = false; - }, - 200 => function ($stackPos) { - $this->semValue = true; - }, - 201 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 202 => function ($stackPos) { - $this->semValue = []; - }, - 203 => null, - 204 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 205 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 206 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 207 => function ($stackPos) { - $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - $this->checkClass($this->semValue, $stackPos-(7-2)); - }, - 208 => function ($stackPos) { - $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - $this->checkClass($this->semValue, $stackPos-(8-3)); - }, - 209 => function ($stackPos) { - $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - $this->checkInterface($this->semValue, $stackPos-(7-3)); - }, - 210 => function ($stackPos) { - $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 211 => function ($stackPos) { - $this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - $this->checkEnum($this->semValue, $stackPos-(8-3)); - }, - 212 => function ($stackPos) { - $this->semValue = null; - }, - 213 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 214 => function ($stackPos) { - $this->semValue = null; - }, - 215 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 216 => function ($stackPos) { - $this->semValue = 0; - }, - 217 => null, - 218 => null, - 219 => function ($stackPos) { - $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 220 => function ($stackPos) { - $this->semValue = Modifiers::ABSTRACT; - }, - 221 => function ($stackPos) { - $this->semValue = Modifiers::FINAL; - }, - 222 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 223 => function ($stackPos) { - $this->semValue = null; - }, - 224 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 225 => function ($stackPos) { - $this->semValue = array(); - }, - 226 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 227 => function ($stackPos) { - $this->semValue = array(); - }, - 228 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 229 => null, - 230 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 231 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 232 => null, - 233 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 234 => null, - 235 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 236 => function ($stackPos) { - if ($this->semStack[$stackPos-(1-1)] instanceof Stmt\Block) { $this->semValue = $this->semStack[$stackPos-(1-1)]->stmts; } else if ($this->semStack[$stackPos-(1-1)] === null) { $this->semValue = []; } else { $this->semValue = [$this->semStack[$stackPos-(1-1)]]; }; - }, - 237 => function ($stackPos) { - $this->semValue = null; - }, - 238 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 239 => null, - 240 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 241 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 242 => function ($stackPos) { - $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 243 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 244 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 245 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 246 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; - }, - 247 => function ($stackPos) { - $this->semValue = array(); - }, - 248 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 249 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 250 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 251 => null, - 252 => null, - 253 => function ($stackPos) { - $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 254 => function ($stackPos) { - $this->semValue = []; - }, - 255 => null, - 256 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 257 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 258 => function ($stackPos) { - $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 259 => function ($stackPos) { - $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 261 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 262 => function ($stackPos) { - $this->semValue = array(); - }, - 263 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 264 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 265 => function ($stackPos) { - $this->semValue = array(); - }, - 266 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 267 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); $this->fixupAlternativeElse($this->semValue); - }, - 268 => function ($stackPos) { - $this->semValue = null; - }, - 269 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 270 => function ($stackPos) { - $this->semValue = null; - }, - 271 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->fixupAlternativeElse($this->semValue); - }, - 272 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); - }, - 273 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); - }, - 274 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); - }, - 275 => function ($stackPos) { - $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false); - }, - 276 => null, - 277 => function ($stackPos) { - $this->semValue = array(); - }, - 278 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 279 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 280 => function ($stackPos) { - $this->semValue = 0; - }, - 281 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 282 => function ($stackPos) { - $this->semValue = Modifiers::PUBLIC; - }, - 283 => function ($stackPos) { - $this->semValue = Modifiers::PROTECTED; - }, - 284 => function ($stackPos) { - $this->semValue = Modifiers::PRIVATE; - }, - 285 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 286 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); - $this->checkParam($this->semValue); - }, - 287 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]); - $this->checkParam($this->semValue); - }, - 288 => function ($stackPos) { - $this->semValue = new Node\Param(new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); - }, - 289 => null, - 290 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 291 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 292 => null, - 293 => null, - 294 => function ($stackPos) { - $this->semValue = new Node\Name('static', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 295 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); - }, - 296 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 297 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 298 => null, - 299 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 300 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 301 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 302 => null, - 303 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 304 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 305 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 306 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 307 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 308 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 309 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 310 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 311 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 312 => null, - 313 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 314 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 315 => null, - 316 => function ($stackPos) { - $this->semValue = null; - }, - 317 => null, - 318 => function ($stackPos) { - $this->semValue = null; - }, - 319 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 320 => function ($stackPos) { - $this->semValue = null; - }, - 321 => function ($stackPos) { - $this->semValue = array(); - }, - 322 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 323 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-2)]); - }, - 324 => function ($stackPos) { - $this->semValue = new Node\VariadicPlaceholder($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 325 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 326 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 327 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 328 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 329 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 330 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(3-1)]); - }, - 331 => null, - 332 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 333 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 334 => null, - 335 => null, - 336 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 337 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 338 => function ($stackPos) { - $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 339 => function ($stackPos) { - $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 340 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } else { $this->semValue = $this->semStack[$stackPos-(2-1)]; } - }, - 341 => function ($stackPos) { - $this->semValue = array(); - }, - 342 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 343 => function ($stackPos) { - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); - $this->checkProperty($this->semValue, $stackPos-(5-2)); - }, - 344 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(5-1)]); - $this->checkClassConst($this->semValue, $stackPos-(5-2)); - }, - 345 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]); - $this->checkClassConst($this->semValue, $stackPos-(6-2)); - }, - 346 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - $this->checkClassMethod($this->semValue, $stackPos-(10-2)); - }, - 347 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 348 => function ($stackPos) { - $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 349 => function ($stackPos) { - $this->semValue = null; /* will be skipped */ - }, - 350 => function ($stackPos) { - $this->semValue = array(); - }, - 351 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 352 => function ($stackPos) { - $this->semValue = array(); - }, - 353 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 354 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 355 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 356 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 357 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 358 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 359 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 360 => null, - 361 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); - }, - 362 => function ($stackPos) { - $this->semValue = null; - }, - 363 => null, - 364 => null, - 365 => function ($stackPos) { - $this->semValue = 0; - }, - 366 => function ($stackPos) { - $this->semValue = 0; - }, - 367 => null, - 368 => null, - 369 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 370 => function ($stackPos) { - $this->semValue = Modifiers::PUBLIC; - }, - 371 => function ($stackPos) { - $this->semValue = Modifiers::PROTECTED; - }, - 372 => function ($stackPos) { - $this->semValue = Modifiers::PRIVATE; - }, - 373 => function ($stackPos) { - $this->semValue = Modifiers::STATIC; - }, - 374 => function ($stackPos) { - $this->semValue = Modifiers::ABSTRACT; - }, - 375 => function ($stackPos) { - $this->semValue = Modifiers::FINAL; - }, - 376 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 377 => null, - 378 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 379 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 380 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 381 => function ($stackPos) { - $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 382 => function ($stackPos) { - $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 383 => null, - 384 => null, - 385 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 386 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 387 => function ($stackPos) { - $this->semValue = array(); - }, - 388 => null, - 389 => null, - 390 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 391 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 392 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 393 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 394 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - if (!$this->phpVersion->allowsAssignNewByReference()) { - $this->emitError(new Error('Cannot assign new by reference', $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos]))); - } - - }, - 395 => null, - 396 => null, - 397 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 398 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 399 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 400 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 401 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 402 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 403 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 404 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 405 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 406 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 407 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 408 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 409 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 410 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 411 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 412 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 413 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 414 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 415 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 416 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 417 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 418 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 419 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 420 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 421 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 422 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 423 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 424 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 425 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 426 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 427 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 428 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 429 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 430 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 431 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 432 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 433 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 434 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 435 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 436 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 437 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 438 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 439 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 440 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 441 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 442 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 443 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 444 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 445 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 446 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 447 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 448 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 449 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 450 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 451 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 452 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 453 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 454 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 455 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 456 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 457 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 458 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 459 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]); - $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); - $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); - }, - 460 => function ($stackPos) { - $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 461 => function ($stackPos) { - $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 462 => function ($stackPos) { - $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 463 => function ($stackPos) { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 464 => function ($stackPos) { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 465 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]); - $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); - }, - 466 => function ($stackPos) { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 467 => null, - 468 => function ($stackPos) { - $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 469 => function ($stackPos) { - $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 470 => function ($stackPos) { - $this->semValue = new Expr\Yield_(null, null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 471 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 472 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 473 => function ($stackPos) { - $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 474 => function ($stackPos) { - $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 475 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 476 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 477 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 478 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 479 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 480 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 481 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 482 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 483 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])), $this->semStack[$stackPos-(8-3)]); - $this->checkClass($this->semValue[0], -1); - }, - 484 => function ($stackPos) { - $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 485 => function ($stackPos) { - list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 486 => function ($stackPos) { - $this->semValue = array(); - }, - 487 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 488 => null, - 489 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 490 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 491 => function ($stackPos) { - $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 492 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 493 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 494 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 495 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 496 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 497 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 498 => null, - 499 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 500 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 501 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 502 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 503 => null, - 504 => null, - 505 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 506 => function ($stackPos) { - $this->semValue = new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 507 => null, - 508 => null, - 509 => function ($stackPos) { - $this->semValue = null; - }, - 510 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 511 => function ($stackPos) { - $this->semValue = array(); - }, - 512 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); foreach ($this->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $this->phpVersion->supportsUnicodeEscapes()); } }; - }, - 513 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $this->phpVersion->supportsUnicodeEscapes()); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 514 => function ($stackPos) { - $this->semValue = array(); - }, - 515 => null, - 516 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 517 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 518 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 519 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 520 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 521 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 522 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 523 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 524 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 525 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 526 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 527 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)])), $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 528 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); - }, - 529 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); - $this->createdArrays->attach($this->semValue); - }, - 530 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->createdArrays->attach($this->semValue); - }, - 531 => function ($stackPos) { - $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]), $this->phpVersion->supportsUnicodeEscapes()); - }, - 532 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', $this->phpVersion->supportsUnicodeEscapes()); } }; $this->semValue = new Scalar\InterpolatedString($this->semStack[$stackPos-(3-2)], $attrs); - }, - 533 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]), $this->phpVersion->allowsInvalidOctals()); - }, - 534 => function ($stackPos) { - $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 535 => null, - 536 => null, - 537 => null, - 538 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)]), true); - }, - 539 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(2-2)], $this->tokenEndStack[$stackPos-(2-2)]), true); - }, - 540 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)]), true); - }, - 541 => function ($stackPos) { - $this->semValue = null; - }, - 542 => null, - 543 => null, - 544 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 545 => null, - 546 => null, - 547 => null, - 548 => null, - 549 => null, - 550 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 551 => null, - 552 => null, - 553 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 554 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 555 => null, - 556 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 557 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 558 => function ($stackPos) { - $this->semValue = null; - }, - 559 => null, - 560 => null, - 561 => null, - 562 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 563 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 564 => null, - 565 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 566 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 567 => function ($stackPos) { - $this->semValue = new Expr\Variable(new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])), $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 568 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])) : $var; - }, - 569 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 570 => null, - 571 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 572 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 573 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 574 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 575 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 576 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 577 => null, - 578 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 579 => null, - 580 => null, - 581 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 582 => null, - 583 => function ($stackPos) { - $this->semValue = new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 584 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST); - $this->postprocessList($this->semValue); - }, - 585 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue); - }, - 586 => null, - 587 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 588 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 589 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 590 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 591 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 592 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 593 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 594 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 595 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 596 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]), true); - }, - 597 => function ($stackPos) { - /* Create an Error node now to remember the position. We'll later either report an error, - or convert this into a null element, depending on whether this is a creation or destructuring context. */ - $attrs = $this->createEmptyElemAttributes($this->tokenPos); - $this->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs); - }, - 598 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 599 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 600 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 601 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 602 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]); $attrs['rawValue'] = $this->semStack[$stackPos-(1-1)]; $this->semValue = new Node\InterpolatedStringPart($this->semStack[$stackPos-(1-1)], $attrs); - }, - 603 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 604 => null, - 605 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 606 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 607 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 608 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 609 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 610 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 611 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 612 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 613 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 614 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 615 => null, - ]; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php deleted file mode 100644 index 76d52a8..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php +++ /dev/null @@ -1,2717 +0,0 @@ -'", - "T_IS_GREATER_OR_EQUAL", - "'.'", - "T_SL", - "T_SR", - "'+'", - "'-'", - "'*'", - "'/'", - "'%'", - "'!'", - "T_INSTANCEOF", - "'~'", - "T_INC", - "T_DEC", - "T_INT_CAST", - "T_DOUBLE_CAST", - "T_STRING_CAST", - "T_ARRAY_CAST", - "T_OBJECT_CAST", - "T_BOOL_CAST", - "T_UNSET_CAST", - "'@'", - "T_POW", - "'['", - "T_NEW", - "T_CLONE", - "T_EXIT", - "T_IF", - "T_ELSEIF", - "T_ELSE", - "T_ENDIF", - "T_LNUMBER", - "T_DNUMBER", - "T_STRING", - "T_STRING_VARNAME", - "T_VARIABLE", - "T_NUM_STRING", - "T_INLINE_HTML", - "T_ENCAPSED_AND_WHITESPACE", - "T_CONSTANT_ENCAPSED_STRING", - "T_ECHO", - "T_DO", - "T_WHILE", - "T_ENDWHILE", - "T_FOR", - "T_ENDFOR", - "T_FOREACH", - "T_ENDFOREACH", - "T_DECLARE", - "T_ENDDECLARE", - "T_AS", - "T_SWITCH", - "T_MATCH", - "T_ENDSWITCH", - "T_CASE", - "T_DEFAULT", - "T_BREAK", - "T_CONTINUE", - "T_GOTO", - "T_FUNCTION", - "T_FN", - "T_CONST", - "T_RETURN", - "T_TRY", - "T_CATCH", - "T_FINALLY", - "T_USE", - "T_INSTEADOF", - "T_GLOBAL", - "T_STATIC", - "T_ABSTRACT", - "T_FINAL", - "T_PRIVATE", - "T_PROTECTED", - "T_PUBLIC", - "T_READONLY", - "T_VAR", - "T_UNSET", - "T_ISSET", - "T_EMPTY", - "T_HALT_COMPILER", - "T_CLASS", - "T_TRAIT", - "T_INTERFACE", - "T_ENUM", - "T_EXTENDS", - "T_IMPLEMENTS", - "T_OBJECT_OPERATOR", - "T_NULLSAFE_OBJECT_OPERATOR", - "T_LIST", - "T_ARRAY", - "T_CALLABLE", - "T_CLASS_C", - "T_TRAIT_C", - "T_METHOD_C", - "T_FUNC_C", - "T_LINE", - "T_FILE", - "T_START_HEREDOC", - "T_END_HEREDOC", - "T_DOLLAR_OPEN_CURLY_BRACES", - "T_CURLY_OPEN", - "T_PAAMAYIM_NEKUDOTAYIM", - "T_NAMESPACE", - "T_NS_C", - "T_DIR", - "T_NS_SEPARATOR", - "T_ELLIPSIS", - "T_NAME_FULLY_QUALIFIED", - "T_NAME_QUALIFIED", - "T_NAME_RELATIVE", - "T_ATTRIBUTE", - "';'", - "']'", - "'('", - "')'", - "'{'", - "'}'", - "'`'", - "'\"'", - "'$'" - ); - - protected array $tokenToSymbol = array( - 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, - 161, 162, 53, 51, 8, 52, 48, 54, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, - 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 163, 35, 164, 58, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, - 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, - 41, 42, 43, 45, 47, 49, 50, 57, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158 - ); - - protected array $action = array( - 133, 134, 135, 582, 136, 137, 0, 751, 752, 753, - 138, 38, 327,-32766,-32766,-32766,-32766,-32766,-32766, 837, - 826,-32767,-32767,-32767,-32767, 102, 103, 104, 1112, 1113, - 1114, 1111, 1110, 1109, 1115, 745, 744,-32766, 1027,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1245,-32766,-32766, 1322, 754, 1112, 1113, 1114, 1111, - 1110, 1109, 1115, 459, 460, 461, 2, 990, 1306, 265, - 139, 404, 758, 759, 760, 761, 467, 468, 429, 835, - 606, -16, 1341, 23, 292, 815, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, - 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, - 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, - 584, 779, 780, 585, 586, 941, 803, 801, 802, 814, - 798, 799, 835, 826, 587, 588, 797, 589, 590, 591, - 592, 593, 594, -328, 36, 251, 35, -194, 800, 595, - 596, -193, 140, -85, 133, 134, 135, 582, 136, 137, - 1060, 751, 752, 753, 138, 38, 129, -110, -110, -585, - -32766, -585, -110,-32766,-32766,-32766, 241, 836, -110, 145, - 959, 960,-32766,-32766,-32766, 961, -594,-32766, 482, 745, - 744, 955, 1036, -594,-32766, 991,-32766,-32766,-32766,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 299, 754, - 831, 75,-32766,-32766,-32766, 291, 142, 326, 242, -85, - 326, 382, 381, 265, 139, 404, 758, 759, 760, 761, - 82, 423, 429,-32766, 326,-32766,-32766,-32766,-32766, 815, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, - 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, - 819, 820, 821, 822, 584, 779, 780, 585, 586, 254, - 803, 801, 802, 814, 798, 799, 832, 725, 587, 588, - 797, 589, 590, 591, 592, 593, 594, -328, 83, 84, - 85, -194, 800, 595, 596, -193, 149, 775, 746, 747, - 748, 749, 750, 151, 751, 752, 753, 788, 789, 37, - 483, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, -594, 274, -594,-32766,-32766, - -32766,-32766,-32766,-32766, 310, 1089, 127, 312, 110, 737, - 1326, 21, 754,-32766,-32766,-32766, -272, 1325,-32766,-32766, - 1088,-32766,-32766,-32766,-32766,-32766, 755, 756, 757, 758, - 759, 760, 761, 1104,-32766, 824,-32766,-32766, -545, 429, - 1036, 323, 815, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 791, 813, 792, 793, 794, 795, 783, - 784, 785, 812, 786, 787, 772, 773, 774, 776, 777, - 778, 817, 818, 819, 820, 821, 822, 823, 779, 780, - 781, 782, 1033, 803, 801, 802, 814, 798, 799, 745, - 744, 790, 796, 797, 804, 805, 807, 806, 808, 809, - 152,-32766, -545, -545, 1036, 800, 811, 810, 50, 51, - 52, 513, 53, 54, 1240, 1239, 1241, -545, 55, 56, - -110, 57,-32766, 1090, 920, -110, 556, -110, 292, -551, - 339, -545, 306, 103, 104, -110, -110, -110, -110, -110, - -110, -110, -110, 105, 106, 107, 108, 109, 1245, 274, - 380, 381, -591, -367, 715, -367, 340, 58, 59, -591, - 423, 110, 60, 370, 61, 248, 249, 62, 63, 64, - 65, 66, 67, 68, 69, -544, 28, 267, 70, 445, - 514,-32766, 374, -342, 1272, 1273, 515, 1278, 835, 862, - 389, 863, 1270, 42, 25, 516, 943, 517, 943, 518, - 920, 519, 299, 1036, 520, 521, 1266, 910, 441, 44, - 45, 446, 377, 376,-32766, 46, 522, 1023, 1022, 1021, - 1024, 368, 338, 391, 1238, 7, 291, 442, 1231, 835, - 524, 525, 526, 443, 1245, 357, 1036, 362, 834, -544, - -544, 154, 528, 529, 444, 1259, 1260, 1261, 1262, 1256, - 1257, 298,-32766,-32766, -544, -548, 1059, 1263, 1258, 291, - 1236, 1240, 1239, 1241, 299, 841, -550, 71, -544, 656, - 26, 321, 322, 326, -153, -153, -153, 920, 612, 675, - 676, 1035, 922, 910,-32766, 286, 710, 835, 155, -153, - 828, -153, 862, -153, 863, -153, 150, 407, 156, 1240, - 1239, 1241,-32766,-32766,-32766, 375, 1351, 716, 75, 1352, - 158, -591, 33, -591, 326, 835, 959, 960, -78, -548, - -548, 523, 920,-32766, 378, 379, 896, 955, -110, -110, - -110, 32, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 745, 744, -58, -548, -57, - -110, -110, 717, 745, 744, -110, 383, 384, 922, 1033, - 910, -110, 710, -153, 647, 648, 830, 124, 141, 125, - -32766, 1033, 326, 712, 1150, 1152, 48, 130, 131, 144, - 159, 1036,-32766, 160, 161, -543, 28, 162, 1238, 920, - 163, 299, 920, 1036, 75,-32766,-32766,-32766, 835,-32766, - 326,-32766, 1270,-32766, 282, 910,-32766, -87, -84, -78, - -73,-32766,-32766,-32766, -4, 920, 282,-32766,-32766, 720, - -72, -71, 727,-32766, 420, -70, -69, -68, -67, -66, - 287, 286,-32766, -65, -46, 922, 745, 744, 1231, 710, - 300, 301, -546, -18, 148, -302, 273, 283, 726, -543, - -543, 729, 528, 529, 920, 1259, 1260, 1261, 1262, 1256, - 1257, 919, 74, 147, -543, 288, 293, 1263, 1258, 126, - -298, 280, 910,-32766, 281, 910, 284, 73, -543, 1238, - 976, 690, 322, 326, 710, 285,-32766,-32766,-32766, 332, - -32766, 274,-32766, 294,-32766, 937, 110,-32766, 910, 685, - 835, -543,-32766,-32766,-32766, 826, -546, -546,-32766,-32766, - 146,-32766, -50, 701,-32766, 420, 703, 691, 20, 1119, - 375, -546, 436,-32766, 645, 1353, 1277, 297, 657,-32766, - 1279, 959, 960, 561, 956, -546, 523, 910, 692, 693, - 678, 527, 955, -110, -110, -110, 132, 922, 662, 663, - 922, 710, 464, -508, 710,-32766, 1240, 1239, 1241, 493, - 679, 1238, 282, 939, 10, -543, -543, 40,-32766,-32766, - -32766, 731,-32766, 922,-32766, 307,-32766, 710, -4,-32766, - -543, 305, 41, 304,-32766,-32766,-32766, 0, 0,-32766, - -32766,-32766, 920, 0, -543, 1238,-32766, 420, 311, 0, - 567, 299,-32766,-32766,-32766,-32766,-32766, -498,-32766, 897, - -32766, 0, 922,-32766, 8, 0, 710, 24,-32766,-32766, - -32766,-32766, 372, 610,-32766,-32766, 834, 1238, 734, -275, - -32766, 420, 920, 735,-32766,-32766,-32766, 854,-32766,-32766, - -32766, 901,-32766, 1000, 977,-32766, 49, 984, 974, 488, - -32766,-32766,-32766,-32766, 985, 899,-32766,-32766, 972, 1238, - 574, 1093,-32766, 420, 1096, 1097,-32766,-32766,-32766, 1094, - -32766,-32766,-32766, 1095,-32766, 910, 1101,-32766, 1267, 846, - 1292, 1310,-32766,-32766,-32766, 1344, 650, 34,-32766,-32766, - -579, -250, -250, -250,-32766, 420, -578, 375, -577, -551, - 28, 267, -550,-32766, -549, -492, 1, 29, 959, 960, - 302, 303, 835, 523, 30, 910, 1270, 39, 896, 955, - -110, -110, -110, 43, 47, 373, 72, 76, 77, 78, - 79, -249, -249, -249, 80, 81, 143, 375, 153, 128, - -273, 157, 247, 328, 357, 358, 359, 360, 959, 960, - 922, 361, 1231, 523, 710, -250, 362, 363, 896, 955, - -110, -110, -110, 364, 365, 366, 367, 529, 28, 1259, - 1260, 1261, 1262, 1256, 1257, 369, 437, 555, 1207, -272, - 835, 1263, 1258, 13, 1270, 14,-32766, 15, 16, 18, - 922, 73, 1238, 1348, 710, -249, 322, 326, 406,-32766, - -32766,-32766, 484,-32766, 485,-32766, 492,-32766, 495, 496, - -32766, 497, 498, 502, 503,-32766,-32766,-32766, 504, 511, - 1231,-32766,-32766, 572, 696, 1249, 1190,-32766, 420, 1268, - 1062, 1061, 1042, 1226, 1038, 529,-32766, 1259, 1260, 1261, - 1262, 1256, 1257, -277, -102, 12, 17, 27, 296, 1263, - 1258, 405, 603, 607, 636, 702, 1194, 1244, 1191, 73, - 320, 1323, 0, 371, 322, 326, 711, 714, 718, 719, - 721, 722, 723, 724, 728, 0, 713, 0, 1350, 857, - 856, 865, 949, 992, 864, 1349, 948, 946, 947, 950, - 1222, 930, 940, 928, 982, 983, 634, 1347, 1304, 1293, - 1311, 1320, 0, 0, 1271, 0, 326 - ); - - protected array $actionCheck = array( - 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, - 12, 13, 70, 9, 10, 11, 9, 10, 11, 1, - 80, 44, 45, 46, 47, 48, 49, 50, 116, 117, - 118, 119, 120, 121, 122, 37, 38, 30, 1, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 1, 9, 10, 1, 57, 116, 117, 118, 119, - 120, 121, 122, 129, 130, 131, 8, 31, 1, 71, - 72, 73, 74, 75, 76, 77, 134, 135, 80, 82, - 1, 31, 85, 8, 30, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 1, 128, 129, 130, 131, - 132, 133, 82, 80, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 8, 147, 148, 8, 8, 150, 151, - 152, 8, 154, 31, 2, 3, 4, 5, 6, 7, - 162, 9, 10, 11, 12, 13, 8, 117, 118, 160, - 116, 162, 122, 9, 10, 11, 97, 159, 128, 8, - 117, 118, 9, 10, 11, 122, 1, 137, 31, 37, - 38, 128, 138, 8, 30, 159, 32, 33, 34, 35, - 36, 37, 38, 30, 9, 32, 33, 34, 158, 57, - 80, 161, 9, 10, 11, 161, 163, 167, 14, 97, - 167, 106, 107, 71, 72, 73, 74, 75, 76, 77, - 163, 116, 80, 30, 167, 32, 33, 34, 35, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 8, - 128, 129, 130, 131, 132, 133, 156, 163, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 162, 9, 10, - 11, 162, 150, 151, 152, 162, 154, 2, 3, 4, - 5, 6, 7, 14, 9, 10, 11, 12, 13, 30, - 163, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 160, 57, 162, 9, 10, - 11, 9, 10, 11, 8, 159, 14, 8, 69, 163, - 1, 101, 57, 9, 10, 11, 162, 8, 116, 30, - 1, 32, 33, 34, 35, 36, 71, 72, 73, 74, - 75, 76, 77, 123, 30, 80, 32, 33, 70, 80, - 138, 8, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 116, 128, 129, 130, 131, 132, 133, 37, - 38, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 14, 116, 134, 135, 138, 150, 151, 152, 2, 3, - 4, 5, 6, 7, 155, 156, 157, 149, 12, 13, - 101, 15, 137, 164, 1, 106, 85, 108, 30, 161, - 8, 163, 113, 49, 50, 116, 117, 118, 119, 120, - 121, 122, 123, 51, 52, 53, 54, 55, 1, 57, - 106, 107, 1, 106, 31, 108, 8, 51, 52, 8, - 116, 69, 56, 8, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 70, 70, 71, 72, 73, - 74, 116, 8, 164, 78, 79, 80, 146, 82, 106, - 8, 108, 86, 87, 88, 89, 122, 91, 122, 93, - 1, 95, 158, 138, 98, 99, 1, 84, 8, 103, - 104, 105, 106, 107, 116, 109, 110, 119, 120, 121, - 122, 115, 116, 106, 80, 108, 161, 8, 122, 82, - 124, 125, 126, 8, 1, 161, 138, 161, 155, 134, - 135, 14, 136, 137, 8, 139, 140, 141, 142, 143, - 144, 145, 51, 52, 149, 70, 1, 151, 152, 161, - 116, 155, 156, 157, 158, 8, 161, 161, 163, 75, - 76, 165, 166, 167, 75, 76, 77, 1, 52, 75, - 76, 137, 159, 84, 137, 30, 163, 82, 14, 90, - 80, 92, 106, 94, 108, 96, 101, 102, 14, 155, - 156, 157, 9, 10, 11, 106, 80, 31, 161, 83, - 14, 160, 14, 162, 167, 82, 117, 118, 16, 134, - 135, 122, 1, 30, 106, 107, 127, 128, 129, 130, - 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 37, 38, 16, 163, 16, - 117, 118, 31, 37, 38, 122, 106, 107, 159, 116, - 84, 128, 163, 164, 111, 112, 156, 16, 163, 16, - 137, 116, 167, 163, 59, 60, 70, 16, 16, 16, - 16, 138, 74, 16, 16, 70, 70, 16, 80, 1, - 16, 158, 1, 138, 161, 87, 88, 89, 82, 91, - 167, 93, 86, 95, 161, 84, 98, 31, 31, 31, - 31, 103, 104, 105, 0, 1, 161, 109, 110, 31, - 31, 31, 31, 115, 116, 31, 31, 31, 31, 31, - 37, 30, 124, 31, 31, 159, 37, 38, 122, 163, - 134, 135, 70, 31, 31, 35, 31, 31, 31, 134, - 135, 31, 136, 137, 1, 139, 140, 141, 142, 143, - 144, 31, 154, 31, 149, 37, 37, 151, 152, 163, - 35, 35, 84, 74, 35, 84, 35, 161, 163, 80, - 159, 80, 166, 167, 163, 35, 87, 88, 89, 35, - 91, 57, 93, 37, 95, 38, 69, 98, 84, 77, - 82, 70, 103, 104, 105, 80, 134, 135, 109, 110, - 70, 85, 31, 80, 115, 116, 92, 116, 97, 82, - 106, 149, 108, 124, 113, 83, 146, 113, 90, 137, - 146, 117, 118, 89, 128, 163, 122, 84, 137, 138, - 94, 127, 128, 129, 130, 131, 31, 159, 96, 100, - 159, 163, 97, 149, 163, 74, 155, 156, 157, 97, - 100, 80, 161, 154, 150, 134, 135, 159, 87, 88, - 89, 164, 91, 159, 93, 114, 95, 163, 164, 98, - 149, 133, 159, 132, 103, 104, 105, -1, -1, 74, - 109, 110, 1, -1, 163, 80, 115, 116, 132, -1, - 153, 158, 87, 88, 89, 124, 91, 149, 93, 164, - 95, -1, 159, 98, 149, -1, 163, 149, 103, 104, - 105, 74, 149, 153, 109, 110, 155, 80, 159, 162, - 115, 116, 1, 159, 87, 88, 89, 159, 91, 124, - 93, 159, 95, 159, 159, 98, 70, 159, 159, 102, - 103, 104, 105, 74, 159, 159, 109, 110, 159, 80, - 81, 159, 115, 116, 159, 159, 87, 88, 89, 159, - 91, 124, 93, 159, 95, 84, 159, 98, 160, 160, - 160, 160, 103, 104, 105, 160, 160, 163, 109, 110, - 161, 100, 101, 102, 115, 116, 161, 106, 161, 161, - 70, 71, 161, 124, 161, 161, 161, 161, 117, 118, - 134, 135, 82, 122, 161, 84, 86, 161, 127, 128, - 129, 130, 131, 161, 161, 149, 161, 161, 161, 161, - 161, 100, 101, 102, 161, 161, 161, 106, 161, 163, - 162, 161, 161, 161, 161, 161, 161, 161, 117, 118, - 159, 161, 122, 122, 163, 164, 161, 161, 127, 128, - 129, 130, 131, 161, 161, 161, 161, 137, 70, 139, - 140, 141, 142, 143, 144, 161, 161, 161, 165, 162, - 82, 151, 152, 162, 86, 162, 74, 162, 162, 162, - 159, 161, 80, 164, 163, 164, 166, 167, 162, 87, - 88, 89, 162, 91, 162, 93, 162, 95, 162, 162, - 98, 162, 162, 162, 162, 103, 104, 105, 162, 162, - 122, 109, 110, 162, 162, 162, 162, 115, 116, 162, - 162, 162, 162, 162, 162, 137, 124, 139, 140, 141, - 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, - 152, 162, 162, 162, 162, 162, 162, 162, 162, 161, - 163, 162, -1, 163, 166, 167, 163, 163, 163, 163, - 163, 163, 163, 163, 163, -1, 163, -1, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, -1, -1, 166, -1, 167 - ); - - protected array $actionBase = array( - 0, -2, 152, 549, 764, 941, 981, 751, 555, 309, - 560, 864, 626, 738, 738, 741, 738, 473, 671, 783, - -60, 305, 305, 783, 305, 803, 803, 803, 658, 658, - 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, - 1062, 1062, 1062, 1062, 18, 36, 79, 648, 1036, 1044, - 1040, 1045, 1034, 1033, 1039, 1041, 1046, 1083, 1084, 782, - 1085, 1086, 1082, 1087, 1042, 876, 1035, 1043, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 195, 342, 43, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 643, 643, - 643, 666, 666, 354, 173, 980, 203, 1048, 1048, 1048, - 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164, - 7, 7, 7, 7, 7, 50, 369, 583, -23, -23, - -23, -23, 448, 605, 497, 260, 397, 434, 54, 394, - 593, 593, 316, 316, 415, 415, 316, 316, 316, 442, - 442, 252, 252, 252, 252, 318, 455, 433, 391, 742, - 53, 53, 53, 53, 742, 742, 742, 742, 734, 1088, - 742, 742, 742, 722, 781, 781, 926, 551, 551, 781, - 536, -3, -3, 536, 63, -3, 67, 576, 335, 756, - 115, 9, 335, 535, 656, 501, 185, 821, 568, 821, - 1032, 424, 776, 776, 426, 753, 729, 867, 1063, 1049, - 799, 1080, 810, 1081, -66, -58, 728, 1031, 1031, 1031, - 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1089, 402, - 1032, 130, 1089, 1089, 1089, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 603, 130, 544, 554, 130, - 804, 402, 18, 808, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 762, 157, 18, 36, 124, 124, - 196, 37, 124, 124, 124, 124, 18, 18, 18, 18, - 568, 784, 797, 600, 820, 143, 784, 784, 784, 122, - 135, 204, 139, 760, 785, 467, 775, 775, 787, 895, - 895, 775, 768, 775, 787, 913, 775, 775, 895, 895, - 793, 158, 550, 472, 524, 569, 895, 346, 775, 775, - 775, 775, 816, 575, 775, 271, 171, 775, 775, 816, - 801, 766, 58, 798, 895, 895, 895, 816, 505, 798, - 798, 798, 819, 824, 761, 765, 383, 349, 607, 138, - 807, 765, 765, 775, 532, 761, 765, 761, 765, 759, - 765, 765, 765, 761, 765, 768, 498, 765, 714, 586, - 75, 765, 6, 915, 916, 726, 917, 906, 918, 965, - 919, 923, 1053, 894, 931, 912, 924, 966, 903, 896, - 780, 701, 703, 815, 754, 893, 777, 777, 777, 888, - 777, 777, 777, 777, 777, 777, 777, 777, 701, 868, - 823, 794, 934, 711, 712, 1011, 730, 795, 963, 933, - 1013, 925, 758, 713, 977, 935, 757, 1047, 936, 940, - 986, 1014, 828, 1017, 979, 790, 1064, 1065, 869, 946, - 1054, 777, 915, 923, 727, 912, 924, 903, 896, 752, - 748, 746, 747, 745, 744, 739, 740, 763, 1018, 887, - 879, 870, 945, 891, 701, 871, 971, 874, 990, 992, - 1050, 805, 792, 875, 1066, 952, 953, 954, 1055, 1019, - 1056, 773, 973, 817, 994, 812, 1067, 996, 997, 999, - 1000, 1057, 1068, 1058, 885, 1059, 832, 788, 928, 802, - 1069, 299, 791, 800, 806, 964, 436, 932, 1060, 1070, - 1071, 1001, 1002, 1006, 1072, 1073, 927, 834, 975, 796, - 976, 967, 835, 838, 577, 779, 1020, 786, 789, 778, - 624, 634, 1074, 1075, 1076, 930, 767, 772, 839, 845, - 1021, 743, 1022, 1077, 646, 846, 717, 1078, 1012, 718, - 721, 652, 683, 681, 724, 774, 1061, 818, 811, 771, - 955, 721, 770, 849, 1079, 852, 855, 856, 1007, 860, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 456, 456, 456, 456, 456, 456, 305, 305, 305, 305, - 305, 456, 456, 456, 456, 456, 456, 456, 305, 305, - 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 494, 494, 289, 289, 494, 289, 494, 494, 494, 494, - 494, 494, 494, 494, 494, 0, 289, 289, 289, 289, - 289, 289, 289, 289, 494, 793, 494, 442, 442, 442, - 442, 494, 494, 494, -88, -88, 442, 494, 63, 494, - 494, 494, 494, 494, 494, 494, 494, 494, 0, 0, - 494, 494, 494, 494, 0, 0, 130, -3, 494, 768, - 768, 768, 768, 494, 494, 494, 494, -3, -3, 494, - 494, 494, 0, 0, 0, 0, 442, 442, 0, 130, - 0, 0, 130, 0, 0, 768, 768, 494, 63, 793, - 359, 494, 0, 0, 0, 0, 130, 768, 130, 402, - 775, -3, -3, 775, 402, 402, 124, 18, 359, 545, - 545, 545, 545, 0, 0, 568, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 768, 0, 793, - 0, 768, 768, 768, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 768, - 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, - 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 777, 805, 0, 805, 0, 777, 777, 777, 0, 0, - 0, 0, 779, 743 - ); - - protected array $actionDefault = array( - 3,32767, 102,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 100,32767,32767,32767,32767, 597, 597, - 597, 597,32767,32767, 254, 102,32767,32767, 470, 387, - 387, 387,32767,32767, 541, 541, 541, 541, 541, 541, - 32767,32767,32767,32767,32767,32767, 470,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 100, - 32767,32767,32767, 36, 7, 8, 10, 11, 49, 17, - 324,32767,32767,32767,32767, 102,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 590,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 474, 453, - 454, 456, 457, 386, 542, 596, 327, 593, 385, 145, - 339, 329, 242, 330, 258, 475, 259, 476, 479, 480, - 215, 287, 382, 149, 150, 417, 471, 419, 469, 473, - 418, 392, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 390, 391, 472, 450, 449, - 448,32767,32767, 415, 416,32767, 420,32767,32767,32767, - 32767,32767,32767,32767, 102,32767, 389, 423, 421, 422, - 439, 440, 437, 438, 441,32767,32767,32767, 442, 443, - 444, 445, 316,32767,32767, 366, 364, 424, 316, 111, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 430, - 431,32767,32767,32767,32767, 535, 447,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 102,32767, 100, 537, 412, 414, 504, 425, 426, 393, - 32767, 511,32767, 102,32767, 513,32767,32767,32767,32767, - 32767,32767,32767, 536,32767, 543, 543,32767, 497, 100, - 195,32767,32767, 512,32767, 195, 195,32767,32767,32767, - 32767,32767,32767,32767,32767, 604, 497, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110,32767, 195, - 110,32767,32767,32767, 100, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 190,32767, 268, 270, 102, - 558, 195,32767, 516,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 497, 435, 138,32767, 138, 543, 427, 428, 429, 499, - 543, 543, 543, 312, 289,32767,32767,32767,32767, 514, - 514, 100, 100, 100, 100, 509,32767,32767,32767,32767, - 111, 99, 99, 99, 99, 99, 103, 101,32767,32767, - 32767,32767, 223, 99,32767, 101, 101,32767,32767, 223, - 225, 212, 101, 227,32767, 562, 563, 223, 101, 227, - 227, 227, 247, 247, 486, 318, 101, 99, 101, 101, - 197, 318, 318,32767, 101, 486, 318, 486, 318, 199, - 318, 318, 318, 486, 318,32767, 101, 318, 214, 99, - 99, 318,32767,32767,32767, 499,32767,32767,32767,32767, - 32767,32767,32767, 222,32767,32767,32767,32767,32767,32767, - 32767,32767, 530,32767, 547, 560, 433, 434, 436, 545, - 458, 459, 460, 461, 462, 463, 464, 466, 592,32767, - 503,32767,32767,32767, 338,32767, 602,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 603,32767, 543,32767,32767,32767, - 32767, 432, 9, 74, 492, 42, 43, 51, 57, 520, - 521, 522, 523, 517, 518, 524, 519,32767,32767, 525, - 568,32767,32767, 544, 595,32767,32767,32767,32767,32767, - 32767, 138,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 530,32767, 136,32767,32767,32767,32767, - 32767,32767,32767,32767, 526,32767,32767,32767, 543,32767, - 32767,32767,32767, 314, 311,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 543,32767,32767,32767,32767,32767, 291,32767, 308, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 286,32767,32767, 381, - 499, 294, 296, 297,32767,32767,32767,32767, 360,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 152, 152, 3, 3, 341, 152, 152, 152, 341, 341, - 152, 341, 341, 341, 152, 152, 152, 152, 152, 152, - 280, 185, 262, 265, 247, 247, 152, 352, 152 - ); - - protected array $goto = array( - 196, 196, 1034, 1065, 697, 431, 661, 621, 658, 319, - 706, 425, 314, 315, 335, 576, 430, 336, 432, 638, - 654, 655, 852, 672, 673, 674, 853, 167, 167, 167, - 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, - 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, - 189, 190, 191, 192, 218, 216, 219, 536, 537, 421, - 538, 540, 541, 542, 543, 544, 545, 546, 547, 1136, - 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, - 176, 178, 215, 217, 220, 238, 243, 244, 246, 257, - 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, - 271, 277, 289, 290, 317, 318, 426, 427, 428, 581, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, - 200, 239, 188, 189, 190, 191, 192, 218, 1136, 201, - 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, - 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, - 212, 213, 214, 855, 1232, 975, 279, 279, 279, 279, - 623, 623, 419, 351, 1269, 600, 1269, 1269, 1269, 1269, - 1269, 1269, 1269, 1269, 1269, 1287, 1287, 599, 1100, 1287, - 709, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 508, 700, 827, 1098, 458, 559, 552, 860, 833, 909, - 904, 905, 918, 861, 906, 858, 907, 908, 859, 1233, - 1234, 912, 500, 886, 501, 252, 252, 843, 1107, 1108, - 507, 1087, 1082, 1083, 1084, 341, 552, 559, 568, 569, - 344, 579, 602, 616, 617, 1235, 1295, 1296, 833, 440, - 833, 22, 250, 250, 250, 250, 245, 253, 694, 573, - 1237, 829, 1237, 893, 851, 893, 893, 1034, 1034, 1237, - 694, 349, 342, 1034, 694, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 848, 1327, 1034, 1034, 1034, 1034, - 1319, 1319, 1319, 1319, 1237, 343, 342, 1040, 1039, 1237, - 1237, 1237, 1237, 868, 996, 1237, 1237, 1237, 913, 355, - 914, 354, 354, 354, 354, 466, 466, 479, 880, 355, - 355, 867, 394, 926, 466, 481, 571, 927, 967, 410, - 705, 942, 355, 355, 942, 848, 355, 660, 1354, 609, - 624, 627, 628, 629, 630, 651, 652, 653, 708, 554, - 1133, 1285, 1285, 355, 355, 1285, 1058, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 539, 539, 1185, 424, - 539, 611, 539, 539, 539, 539, 539, 539, 539, 539, - 539, 566, 682, 1337, 1337, 733, 637, 639, 1043, 1044, - 659, 476, 1312, 1313, 683, 687, 1010, 695, 704, 1006, - 1337, 1298, 438, 408, 409, 631, 633, 635, 670, 5, - 671, 6, 412, 413, 414, 337, 684, 1340, 1340, 415, - 325, 309, 686, 347, 352, 353, 553, 563, 450, 450, - 450, 553, 1309, 563, 1309, 666, 397, 462, 845, 1314, - 1315, 1309, 548, 548, 548, 548, 873, 604, 469, 580, - 470, 471, 403, 554, 878, 848, 958, 1345, 1346, 577, - 614, 870, 550, 615, 550, 255, 255, 1321, 1321, 1321, - 1321, 550, 999, 1018, 477, 971, 1228, 732, 736, 881, - 869, 1070, 1074, 876, 882, 551, 1008, 1003, 1071, 1075, - 978, 980, 0, 1305, 1118, 0, 456, 0, 0, 0, - 0, 969, 969, 969, 969, 0, 0, 456, 963, 970, - 0, 0, 0, 0, 968, 0, 1230, 0, 0, 0, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 931, 1123, 450, 0, 1073, 1116, 885, 619, 1307, - 1307, 1073, 1216, 944, 1015, 433, 1217, 1220, 945, 1221, - 0, 433, 872, 0, 664, 994, 0, 1041, 1041, 0, - 866, 0, 0, 0, 665, 1052, 1048, 1049, 0, 0, - 0, 0, 1227, 324, 275, 324, 1037, 1037, 681, 952, - 0, 0, 1029, 1045, 1046, 396, 399, 560, 601, 605, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1013, 1013 - ); - - protected array $gotoCheck = array( - 42, 42, 73, 127, 73, 66, 66, 56, 56, 66, - 9, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 86, 86, 26, 86, 86, 86, 27, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 15, 20, 49, 23, 23, 23, 23, - 108, 108, 43, 97, 108, 130, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 170, 170, 8, 8, 170, - 8, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 8, 8, 6, 8, 83, 76, 76, 15, 12, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, - 20, 15, 155, 45, 155, 5, 5, 20, 144, 144, - 155, 15, 15, 15, 15, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 20, 20, 20, 12, 83, - 12, 76, 5, 5, 5, 5, 5, 5, 7, 172, - 73, 7, 73, 25, 25, 25, 25, 73, 73, 73, - 7, 179, 168, 73, 7, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 22, 181, 73, 73, 73, 73, - 9, 9, 9, 9, 73, 168, 168, 118, 118, 73, - 73, 73, 73, 35, 103, 73, 73, 73, 65, 14, - 65, 24, 24, 24, 24, 149, 149, 84, 35, 14, - 14, 35, 62, 73, 149, 84, 104, 73, 93, 93, - 93, 9, 14, 14, 9, 22, 14, 64, 14, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 14, - 150, 171, 171, 14, 14, 171, 114, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 173, 173, 151, 13, - 173, 13, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 48, 116, 182, 182, 48, 48, 48, 119, 119, - 48, 176, 176, 176, 48, 48, 48, 48, 48, 48, - 182, 14, 113, 82, 82, 85, 85, 85, 82, 46, - 82, 46, 82, 82, 82, 29, 82, 182, 182, 82, - 169, 169, 14, 82, 97, 97, 9, 9, 23, 23, - 23, 9, 130, 9, 130, 120, 9, 9, 18, 178, - 178, 130, 107, 107, 107, 107, 39, 107, 9, 9, - 9, 9, 28, 14, 9, 22, 92, 9, 9, 2, - 2, 37, 19, 80, 19, 5, 5, 130, 130, 130, - 130, 19, 50, 110, 157, 50, 160, 50, 99, 16, - 16, 16, 16, 9, 41, 50, 50, 50, 129, 132, - 16, 96, -1, 130, 147, -1, 19, -1, -1, -1, - -1, 19, 19, 19, 19, -1, -1, 19, 19, 19, - -1, -1, -1, -1, 16, -1, 14, -1, -1, -1, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 17, 17, 23, -1, 130, 16, 16, 17, 130, - 130, 130, 79, 79, 17, 117, 79, 79, 79, 79, - -1, 117, 17, -1, 17, 17, -1, 117, 117, -1, - 17, -1, -1, -1, 117, 117, 117, 117, -1, -1, - -1, -1, 17, 24, 24, 24, 89, 89, 89, 89, - -1, -1, 89, 89, 89, 59, 59, 59, 59, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 107, 107 - ); - - protected array $gotoBase = array( - 0, 0, -253, 0, 0, 224, 182, 251, 179, -10, - 0, 0, -89, 32, 11, -185, 27, 66, 128, 197, - -229, 0, 5, 163, 308, 260, 18, 22, 115, 118, - 0, 0, 0, 0, 0, -68, 0, 122, 0, 123, - 0, 43, -1, 153, 0, 200, -327, 0, -330, 147, - 460, 0, 0, 0, 0, 0, -33, 0, 0, 540, - 0, 0, 280, 0, 95, 294, -236, 0, 0, 0, - 0, 0, 0, -5, 0, 0, -140, 0, 0, 134, - 119, -19, -88, -75, -152, -74, -698, 0, 0, 296, - 0, 0, 127, 23, 0, 0, 48, -310, 0, 71, - 0, 0, 0, 269, 283, 0, 0, 414, -71, 0, - 103, 0, 0, 124, 83, 0, 100, 273, 17, 104, - 144, 0, 0, 0, 0, 0, 0, 1, 0, 114, - 167, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -47, 0, 0, 50, 0, 281, - 105, 94, 0, 0, 0, -273, 0, 34, 0, 0, - 107, 0, 0, 0, 0, 0, 0, 0, -26, 99, - -56, 110, 230, 125, 0, 0, 90, 0, 67, 241, - 0, 254, 75, 0, 0 - ); - - protected array $gotoDefault = array( - -32768, 512, 740, 4, 741, 935, 816, 825, 597, 530, - 707, 348, 625, 422, 1303, 911, 1122, 578, 844, 1246, - 1254, 457, 847, 330, 730, 923, 894, 895, 400, 386, - 392, 398, 649, 626, 494, 879, 453, 871, 486, 874, - 452, 883, 164, 418, 510, 887, 3, 890, 557, 921, - 973, 387, 898, 388, 677, 900, 562, 902, 903, 395, - 401, 402, 1127, 570, 622, 915, 256, 564, 916, 385, - 917, 925, 390, 393, 688, 465, 505, 499, 411, 1102, - 565, 608, 646, 447, 473, 620, 632, 618, 480, 434, - 416, 329, 957, 965, 487, 463, 979, 350, 987, 738, - 1135, 640, 489, 995, 641, 1002, 1005, 531, 532, 478, - 1017, 272, 1020, 490, 19, 667, 1031, 1032, 668, 642, - 1054, 643, 669, 644, 1056, 472, 598, 1064, 454, 1072, - 1291, 455, 1076, 266, 1079, 278, 417, 435, 1085, 1086, - 9, 1092, 698, 699, 11, 276, 509, 1117, 689, 451, - 1134, 439, 1204, 1206, 558, 491, 1224, 1223, 680, 506, - 1229, 448, 1294, 449, 533, 474, 316, 534, 1338, 308, - 333, 313, 549, 295, 334, 535, 475, 1300, 1308, 331, - 31, 1328, 1339, 575, 613 - ); - - protected array $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, - 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, - 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, - 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, - 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, - 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, - 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, - 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, - 78, 79, 79, 80, 80, 26, 26, 27, 27, 27, - 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, - 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, - 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, - 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, - 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, - 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, - 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, - 111, 111, 112, 112, 112, 112, 110, 110, 110, 114, - 114, 114, 114, 89, 89, 117, 117, 117, 118, 118, - 115, 115, 119, 119, 121, 121, 122, 122, 116, 123, - 123, 120, 124, 124, 124, 124, 113, 113, 82, 82, - 82, 20, 20, 20, 126, 125, 125, 127, 127, 127, - 127, 60, 128, 128, 129, 61, 131, 131, 132, 132, - 133, 133, 86, 134, 134, 134, 134, 134, 134, 134, - 139, 139, 140, 140, 141, 141, 141, 141, 141, 142, - 143, 143, 138, 138, 135, 135, 137, 137, 145, 145, - 144, 144, 144, 144, 144, 144, 144, 136, 146, 146, - 148, 147, 147, 62, 104, 149, 149, 56, 56, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 156, 150, 150, 155, 155, 158, 159, - 159, 160, 161, 162, 162, 162, 162, 19, 19, 73, - 73, 73, 73, 151, 151, 151, 151, 164, 164, 152, - 152, 154, 154, 154, 157, 157, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 171, 171, 171, 108, 173, - 173, 173, 173, 153, 153, 153, 153, 153, 153, 153, - 153, 59, 59, 167, 167, 167, 167, 174, 174, 163, - 163, 163, 175, 175, 175, 175, 175, 175, 74, 74, - 66, 66, 66, 66, 130, 130, 130, 130, 178, 177, - 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, - 176, 176, 176, 176, 107, 172, 180, 180, 179, 179, - 181, 181, 181, 181, 181, 181, 181, 181, 169, 169, - 169, 169, 168, 183, 182, 182, 182, 182, 182, 182, - 182, 182, 184, 184, 184, 184 - ); - - protected array $ruleToLength = array( - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, - 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, - 4, 2, 3, 1, 1, 7, 6, 2, 3, 1, - 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, - 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, - 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, - 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, - 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, - 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, - 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, - 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, - 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, - 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, - 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, - 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, - 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, - 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, - 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, - 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, - 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, - 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, - 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, - 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, - 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, - 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, - 3, 3, 3, 4, 4, 1, 1, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, - 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, - 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, - 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, - 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, - 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, - 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, - 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, - 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, - 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, - 6, 3, 1, 1, 2, 1 - ); - - protected function initReduceCallbacks(): void { - $this->reduceCallbacks = [ - 0 => null, - 1 => function ($stackPos) { - $this->semValue = $this->handleNamespaces($this->semStack[$stackPos-(1-1)]); - }, - 2 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; } $this->semValue = $this->semStack[$stackPos-(2-1)];; - }, - 3 => function ($stackPos) { - $this->semValue = array(); - }, - 4 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 5 => null, - 6 => null, - 7 => null, - 8 => null, - 9 => null, - 10 => null, - 11 => null, - 12 => null, - 13 => null, - 14 => null, - 15 => null, - 16 => null, - 17 => null, - 18 => null, - 19 => null, - 20 => null, - 21 => null, - 22 => null, - 23 => null, - 24 => null, - 25 => null, - 26 => null, - 27 => null, - 28 => null, - 29 => null, - 30 => null, - 31 => null, - 32 => null, - 33 => null, - 34 => null, - 35 => null, - 36 => null, - 37 => null, - 38 => null, - 39 => null, - 40 => null, - 41 => null, - 42 => null, - 43 => null, - 44 => null, - 45 => null, - 46 => null, - 47 => null, - 48 => null, - 49 => null, - 50 => null, - 51 => null, - 52 => null, - 53 => null, - 54 => null, - 55 => null, - 56 => null, - 57 => null, - 58 => null, - 59 => null, - 60 => null, - 61 => null, - 62 => null, - 63 => null, - 64 => null, - 65 => null, - 66 => null, - 67 => null, - 68 => null, - 69 => null, - 70 => null, - 71 => null, - 72 => null, - 73 => null, - 74 => null, - 75 => null, - 76 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; if ($this->semValue === "emitError(new Error('Cannot use "getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]))); - }, - 77 => null, - 78 => null, - 79 => null, - 80 => null, - 81 => null, - 82 => null, - 83 => null, - 84 => null, - 85 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 86 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 87 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 88 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 89 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 90 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 91 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 92 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 93 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 94 => null, - 95 => function ($stackPos) { - $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 96 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 97 => function ($stackPos) { - /* nothing */ - }, - 98 => function ($stackPos) { - /* nothing */ - }, - 99 => function ($stackPos) { - /* nothing */ - }, - 100 => function ($stackPos) { - $this->emitError(new Error('A trailing comma is not allowed here', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]))); - }, - 101 => null, - 102 => null, - 103 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(1-1)], [], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 104 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 105 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 106 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 107 => function ($stackPos) { - $this->semValue = new Node\AttributeGroup($this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 108 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 109 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 110 => function ($stackPos) { - $this->semValue = []; - }, - 111 => null, - 112 => null, - 113 => null, - 114 => null, - 115 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->handleHaltCompiler(), $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 116 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($this->semValue); - }, - 117 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - }, - 118 => function ($stackPos) { - $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($this->semValue); - }, - 119 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 120 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 121 => null, - 122 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 123 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; - }, - 124 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; - }, - 125 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 126 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 127 => null, - 128 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 129 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 130 => null, - 131 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 132 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 133 => null, - 134 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 135 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 136 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(1-1)); - }, - 137 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(3-3)); - }, - 138 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(1-1)); - }, - 139 => function ($stackPos) { - $this->semValue = new Node\UseItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->checkUseUse($this->semValue, $stackPos-(3-3)); - }, - 140 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; - }, - 141 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; - }, - 142 => null, - 143 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 144 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 145 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 146 => null, - 147 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 148 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 149 => function ($stackPos) { - $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos-(3-1)])), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 150 => function ($stackPos) { - $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos-(3-1)])), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 151 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; } $this->semValue = $this->semStack[$stackPos-(2-1)];; - }, - 152 => function ($stackPos) { - $this->semValue = array(); - }, - 153 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 154 => null, - 155 => null, - 156 => null, - 157 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 158 => function ($stackPos) { - $this->semValue = new Stmt\Block($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 159 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => $this->semStack[$stackPos-(7-5)], 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 160 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 161 => function ($stackPos) { - $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 162 => function ($stackPos) { - $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], $this->semStack[$stackPos-(7-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 163 => function ($stackPos) { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 164 => function ($stackPos) { - $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 165 => function ($stackPos) { - $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 166 => function ($stackPos) { - $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 167 => function ($stackPos) { - $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 168 => function ($stackPos) { - $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 169 => function ($stackPos) { - $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 170 => function ($stackPos) { - $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 171 => function ($stackPos) { - - $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - $this->semValue->setAttribute('hasLeadingNewline', $this->inlineHtmlHasLeadingNewline($stackPos-(1-1))); - - }, - 172 => function ($stackPos) { - $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 173 => function ($stackPos) { - $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 174 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 175 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 176 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(6-4)], $this->tokenEndStack[$stackPos-(6-4)])), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 177 => function ($stackPos) { - $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 178 => function ($stackPos) { - $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); $this->checkTryCatch($this->semValue); - }, - 179 => function ($stackPos) { - $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 180 => function ($stackPos) { - $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 181 => function ($stackPos) { - $this->semValue = null; /* means: no statement */ - }, - 182 => null, - 183 => function ($stackPos) { - $this->semValue = $this->maybeCreateNop($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]); - }, - 184 => function ($stackPos) { - if ($this->semStack[$stackPos-(1-1)] instanceof Stmt\Block) { $this->semValue = $this->semStack[$stackPos-(1-1)]->stmts; } else if ($this->semStack[$stackPos-(1-1)] === null) { $this->semValue = []; } else { $this->semValue = [$this->semStack[$stackPos-(1-1)]]; }; - }, - 185 => function ($stackPos) { - $this->semValue = array(); - }, - 186 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 187 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 188 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 189 => function ($stackPos) { - $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 190 => function ($stackPos) { - $this->semValue = null; - }, - 191 => function ($stackPos) { - $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 192 => null, - 193 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 194 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 195 => function ($stackPos) { - $this->semValue = false; - }, - 196 => function ($stackPos) { - $this->semValue = true; - }, - 197 => function ($stackPos) { - $this->semValue = false; - }, - 198 => function ($stackPos) { - $this->semValue = true; - }, - 199 => function ($stackPos) { - $this->semValue = false; - }, - 200 => function ($stackPos) { - $this->semValue = true; - }, - 201 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 202 => function ($stackPos) { - $this->semValue = []; - }, - 203 => null, - 204 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 205 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 206 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 207 => function ($stackPos) { - $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - $this->checkClass($this->semValue, $stackPos-(7-2)); - }, - 208 => function ($stackPos) { - $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - $this->checkClass($this->semValue, $stackPos-(8-3)); - }, - 209 => function ($stackPos) { - $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - $this->checkInterface($this->semValue, $stackPos-(7-3)); - }, - 210 => function ($stackPos) { - $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 211 => function ($stackPos) { - $this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - $this->checkEnum($this->semValue, $stackPos-(8-3)); - }, - 212 => function ($stackPos) { - $this->semValue = null; - }, - 213 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 214 => function ($stackPos) { - $this->semValue = null; - }, - 215 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 216 => function ($stackPos) { - $this->semValue = 0; - }, - 217 => null, - 218 => null, - 219 => function ($stackPos) { - $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 220 => function ($stackPos) { - $this->semValue = Modifiers::ABSTRACT; - }, - 221 => function ($stackPos) { - $this->semValue = Modifiers::FINAL; - }, - 222 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 223 => function ($stackPos) { - $this->semValue = null; - }, - 224 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 225 => function ($stackPos) { - $this->semValue = array(); - }, - 226 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 227 => function ($stackPos) { - $this->semValue = array(); - }, - 228 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 229 => null, - 230 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 231 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 232 => null, - 233 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 234 => null, - 235 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 236 => function ($stackPos) { - if ($this->semStack[$stackPos-(1-1)] instanceof Stmt\Block) { $this->semValue = $this->semStack[$stackPos-(1-1)]->stmts; } else if ($this->semStack[$stackPos-(1-1)] === null) { $this->semValue = []; } else { $this->semValue = [$this->semStack[$stackPos-(1-1)]]; }; - }, - 237 => function ($stackPos) { - $this->semValue = null; - }, - 238 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 239 => null, - 240 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 241 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 242 => function ($stackPos) { - $this->semValue = new Node\DeclareItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 243 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 244 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 245 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 246 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; - }, - 247 => function ($stackPos) { - $this->semValue = array(); - }, - 248 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 249 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 250 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 251 => null, - 252 => null, - 253 => function ($stackPos) { - $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(7-1)], $this->tokenEndStack[$stackPos])); - }, - 254 => function ($stackPos) { - $this->semValue = []; - }, - 255 => null, - 256 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 257 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 258 => function ($stackPos) { - $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 259 => function ($stackPos) { - $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 261 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 262 => function ($stackPos) { - $this->semValue = array(); - }, - 263 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 264 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 265 => function ($stackPos) { - $this->semValue = array(); - }, - 266 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 267 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); $this->fixupAlternativeElse($this->semValue); - }, - 268 => function ($stackPos) { - $this->semValue = null; - }, - 269 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 270 => function ($stackPos) { - $this->semValue = null; - }, - 271 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->fixupAlternativeElse($this->semValue); - }, - 272 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); - }, - 273 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); - }, - 274 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); - }, - 275 => function ($stackPos) { - $this->semValue = array($this->fixupArrayDestructuring($this->semStack[$stackPos-(1-1)]), false); - }, - 276 => null, - 277 => function ($stackPos) { - $this->semValue = array(); - }, - 278 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 279 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 280 => function ($stackPos) { - $this->semValue = 0; - }, - 281 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 282 => function ($stackPos) { - $this->semValue = Modifiers::PUBLIC; - }, - 283 => function ($stackPos) { - $this->semValue = Modifiers::PROTECTED; - }, - 284 => function ($stackPos) { - $this->semValue = Modifiers::PRIVATE; - }, - 285 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 286 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); - $this->checkParam($this->semValue); - }, - 287 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]); - $this->checkParam($this->semValue); - }, - 288 => function ($stackPos) { - $this->semValue = new Node\Param(new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); - }, - 289 => null, - 290 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 291 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 292 => null, - 293 => null, - 294 => function ($stackPos) { - $this->semValue = new Node\Name('static', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 295 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); - }, - 296 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 297 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 298 => null, - 299 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 300 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 301 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 302 => null, - 303 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 304 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 305 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 306 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 307 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 308 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 309 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 310 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 311 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 312 => null, - 313 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 314 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 315 => null, - 316 => function ($stackPos) { - $this->semValue = null; - }, - 317 => null, - 318 => function ($stackPos) { - $this->semValue = null; - }, - 319 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 320 => function ($stackPos) { - $this->semValue = null; - }, - 321 => function ($stackPos) { - $this->semValue = array(); - }, - 322 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 323 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-2)]); - }, - 324 => function ($stackPos) { - $this->semValue = new Node\VariadicPlaceholder($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 325 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 326 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 327 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 328 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 329 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 330 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(3-1)]); - }, - 331 => null, - 332 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 333 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 334 => null, - 335 => null, - 336 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 337 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 338 => function ($stackPos) { - $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 339 => function ($stackPos) { - $this->semValue = new Node\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 340 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } else { $this->semValue = $this->semStack[$stackPos-(2-1)]; } - }, - 341 => function ($stackPos) { - $this->semValue = array(); - }, - 342 => function ($stackPos) { - $nop = $this->maybeCreateZeroLengthNop($this->tokenPos);; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 343 => function ($stackPos) { - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); - $this->checkProperty($this->semValue, $stackPos-(5-2)); - }, - 344 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(5-1)]); - $this->checkClassConst($this->semValue, $stackPos-(5-2)); - }, - 345 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos]), $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]); - $this->checkClassConst($this->semValue, $stackPos-(6-2)); - }, - 346 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - $this->checkClassMethod($this->semValue, $stackPos-(10-2)); - }, - 347 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 348 => function ($stackPos) { - $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 349 => function ($stackPos) { - $this->semValue = null; /* will be skipped */ - }, - 350 => function ($stackPos) { - $this->semValue = array(); - }, - 351 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 352 => function ($stackPos) { - $this->semValue = array(); - }, - 353 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 354 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 355 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 356 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 357 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 358 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 359 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 360 => null, - 361 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); - }, - 362 => function ($stackPos) { - $this->semValue = null; - }, - 363 => null, - 364 => null, - 365 => function ($stackPos) { - $this->semValue = 0; - }, - 366 => function ($stackPos) { - $this->semValue = 0; - }, - 367 => null, - 368 => null, - 369 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 370 => function ($stackPos) { - $this->semValue = Modifiers::PUBLIC; - }, - 371 => function ($stackPos) { - $this->semValue = Modifiers::PROTECTED; - }, - 372 => function ($stackPos) { - $this->semValue = Modifiers::PRIVATE; - }, - 373 => function ($stackPos) { - $this->semValue = Modifiers::STATIC; - }, - 374 => function ($stackPos) { - $this->semValue = Modifiers::ABSTRACT; - }, - 375 => function ($stackPos) { - $this->semValue = Modifiers::FINAL; - }, - 376 => function ($stackPos) { - $this->semValue = Modifiers::READONLY; - }, - 377 => null, - 378 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 379 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 380 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 381 => function ($stackPos) { - $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(1-1)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 382 => function ($stackPos) { - $this->semValue = new Node\PropertyItem($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 383 => null, - 384 => null, - 385 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 386 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 387 => function ($stackPos) { - $this->semValue = array(); - }, - 388 => null, - 389 => null, - 390 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 391 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->fixupArrayDestructuring($this->semStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 392 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 393 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 394 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - if (!$this->phpVersion->allowsAssignNewByReference()) { - $this->emitError(new Error('Cannot assign new by reference', $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos]))); - } - - }, - 395 => null, - 396 => null, - 397 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 398 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 399 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 400 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 401 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 402 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 403 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 404 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 405 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 406 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 407 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 408 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 409 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 410 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 411 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 412 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 413 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 414 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 415 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 416 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 417 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 418 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 419 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 420 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 421 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 422 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 423 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 424 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 425 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 426 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 427 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 428 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 429 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 430 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 431 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 432 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 433 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 434 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 435 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 436 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 437 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 438 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 439 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 440 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 441 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 442 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 443 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 444 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 445 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 446 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 447 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 448 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 449 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 450 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 451 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 452 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 453 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 454 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 455 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 456 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 457 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 458 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 459 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]); - $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); - $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); - }, - 460 => function ($stackPos) { - $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 461 => function ($stackPos) { - $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 462 => function ($stackPos) { - $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 463 => function ($stackPos) { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 464 => function ($stackPos) { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 465 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]); - $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); - }, - 466 => function ($stackPos) { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 467 => null, - 468 => function ($stackPos) { - $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 469 => function ($stackPos) { - $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 470 => function ($stackPos) { - $this->semValue = new Expr\Yield_(null, null, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 471 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 472 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 473 => function ($stackPos) { - $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 474 => function ($stackPos) { - $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 475 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 476 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 477 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])); - }, - 478 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 479 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 480 => function ($stackPos) { - $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 481 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(9-1)], $this->tokenEndStack[$stackPos])); - }, - 482 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(10-1)], $this->tokenEndStack[$stackPos])); - }, - 483 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->getAttributes($this->tokenStartStack[$stackPos-(8-1)], $this->tokenEndStack[$stackPos])), $this->semStack[$stackPos-(8-3)]); - $this->checkClass($this->semValue[0], -1); - }, - 484 => function ($stackPos) { - $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 485 => function ($stackPos) { - list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 486 => function ($stackPos) { - $this->semValue = array(); - }, - 487 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 488 => null, - 489 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 490 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 491 => function ($stackPos) { - $this->semValue = new Node\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 492 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 493 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 494 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 495 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 496 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 497 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 498 => null, - 499 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 500 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 501 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 502 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 503 => null, - 504 => null, - 505 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 506 => function ($stackPos) { - $this->semValue = new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 507 => null, - 508 => null, - 509 => function ($stackPos) { - $this->semValue = null; - }, - 510 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 511 => function ($stackPos) { - $this->semValue = array(); - }, - 512 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); foreach ($this->semValue as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $this->phpVersion->supportsUnicodeEscapes()); } }; - }, - 513 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $this->phpVersion->supportsUnicodeEscapes()); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 514 => function ($stackPos) { - $this->semValue = array(); - }, - 515 => null, - 516 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 517 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 518 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 519 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 520 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 521 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 522 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 523 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 524 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 525 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 526 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(5-1)], $this->tokenEndStack[$stackPos])); - }, - 527 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)])), $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 528 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); - }, - 529 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); - $this->createdArrays->attach($this->semValue); - }, - 530 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->createdArrays->attach($this->semValue); - }, - 531 => function ($stackPos) { - $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]), $this->phpVersion->supportsUnicodeEscapes()); - }, - 532 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\InterpolatedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', $this->phpVersion->supportsUnicodeEscapes()); } }; $this->semValue = new Scalar\InterpolatedString($this->semStack[$stackPos-(3-2)], $attrs); - }, - 533 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]), $this->phpVersion->allowsInvalidOctals()); - }, - 534 => function ($stackPos) { - $this->semValue = Scalar\Float_::fromString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 535 => null, - 536 => null, - 537 => null, - 538 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)]), true); - }, - 539 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(2-2)], $this->tokenEndStack[$stackPos-(2-2)]), true); - }, - 540 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos]), $this->getAttributes($this->tokenStartStack[$stackPos-(3-3)], $this->tokenEndStack[$stackPos-(3-3)]), true); - }, - 541 => function ($stackPos) { - $this->semValue = null; - }, - 542 => null, - 543 => null, - 544 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 545 => null, - 546 => null, - 547 => null, - 548 => null, - 549 => null, - 550 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 551 => null, - 552 => null, - 553 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 554 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 555 => null, - 556 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 557 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 558 => function ($stackPos) { - $this->semValue = null; - }, - 559 => null, - 560 => null, - 561 => null, - 562 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 563 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 564 => null, - 565 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 566 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 567 => function ($stackPos) { - $this->semValue = new Expr\Variable(new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])), $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 568 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])) : $var; - }, - 569 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 570 => null, - 571 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 572 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 573 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 574 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 575 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 576 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 577 => null, - 578 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 579 => null, - 580 => null, - 581 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 582 => null, - 583 => function ($stackPos) { - $this->semValue = new Expr\Error($this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); $this->errorState = 2; - }, - 584 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); $this->semValue->setAttribute('kind', Expr\List_::KIND_LIST); - $this->postprocessList($this->semValue); - }, - 585 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end]->value instanceof Expr\Error) array_pop($this->semValue); - }, - 586 => null, - 587 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 588 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 589 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 590 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 591 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 592 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 593 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 594 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 595 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 596 => function ($stackPos) { - $this->semValue = new Node\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos]), true); - }, - 597 => function ($stackPos) { - /* Create an Error node now to remember the position. We'll later either report an error, - or convert this into a null element, depending on whether this is a creation or destructuring context. */ - $attrs = $this->createEmptyElemAttributes($this->tokenPos); - $this->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs); - }, - 598 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 599 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 600 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 601 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 602 => function ($stackPos) { - $attrs = $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos]); $attrs['rawValue'] = $this->semStack[$stackPos-(1-1)]; $this->semValue = new Node\InterpolatedStringPart($this->semStack[$stackPos-(1-1)], $attrs); - }, - 603 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 604 => null, - 605 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(4-1)], $this->tokenEndStack[$stackPos])); - }, - 606 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 607 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 608 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 609 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(3-1)], $this->tokenEndStack[$stackPos])); - }, - 610 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->getAttributes($this->tokenStartStack[$stackPos-(6-1)], $this->tokenEndStack[$stackPos])); - }, - 611 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 612 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 613 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->getAttributes($this->tokenStartStack[$stackPos-(1-1)], $this->tokenEndStack[$stackPos])); - }, - 614 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->getAttributes($this->tokenStartStack[$stackPos-(2-1)], $this->tokenEndStack[$stackPos])); - }, - 615 => null, - ]; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php deleted file mode 100644 index f0b1a50..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ /dev/null @@ -1,1241 +0,0 @@ - Map of PHP token IDs to drop */ - protected array $dropTokens; - /** @var int[] Map of external symbols (static::T_*) to internal symbols */ - protected array $tokenToSymbol; - /** @var string[] Map of symbols to their names */ - protected array $symbolToName; - /** @var array Names of the production rules (only necessary for debugging) */ - protected array $productions; - - /** @var int[] Map of states to a displacement into the $action table. The corresponding action for this - * state/symbol pair is $action[$actionBase[$state] + $symbol]. If $actionBase[$state] is 0, the - * action is defaulted, i.e. $actionDefault[$state] should be used instead. */ - protected array $actionBase; - /** @var int[] Table of actions. Indexed according to $actionBase comment. */ - protected array $action; - /** @var int[] Table indexed analogously to $action. If $actionCheck[$actionBase[$state] + $symbol] != $symbol - * then the action is defaulted, i.e. $actionDefault[$state] should be used instead. */ - protected array $actionCheck; - /** @var int[] Map of states to their default action */ - protected array $actionDefault; - /** @var callable[] Semantic action callbacks */ - protected array $reduceCallbacks; - - /** @var int[] Map of non-terminals to a displacement into the $goto table. The corresponding goto state for this - * non-terminal/state pair is $goto[$gotoBase[$nonTerminal] + $state] (unless defaulted) */ - protected array $gotoBase; - /** @var int[] Table of states to goto after reduction. Indexed according to $gotoBase comment. */ - protected array $goto; - /** @var int[] Table indexed analogously to $goto. If $gotoCheck[$gotoBase[$nonTerminal] + $state] != $nonTerminal - * then the goto state is defaulted, i.e. $gotoDefault[$nonTerminal] should be used. */ - protected array $gotoCheck; - /** @var int[] Map of non-terminals to the default state to goto after their reduction */ - protected array $gotoDefault; - - /** @var int[] Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for - * determining the state to goto after reduction. */ - protected array $ruleToNonTerminal; - /** @var int[] Map of rules to the length of their right-hand side, which is the number of elements that have to - * be popped from the stack(s) on reduction. */ - protected array $ruleToLength; - - /* - * The following members are part of the parser state: - */ - - /** @var mixed Temporary value containing the result of last semantic action (reduction) */ - protected $semValue; - /** @var mixed[] Semantic value stack (contains values of tokens and semantic action results) */ - protected array $semStack; - /** @var int[] Token start position stack */ - protected array $tokenStartStack; - /** @var int[] Token end position stack */ - protected array $tokenEndStack; - - /** @var ErrorHandler Error handler */ - protected ErrorHandler $errorHandler; - /** @var int Error state, used to avoid error floods */ - protected int $errorState; - - /** @var \SplObjectStorage|null Array nodes created during parsing, for postprocessing of empty elements. */ - protected ?\SplObjectStorage $createdArrays; - - /** @var Token[] Tokens for the current parse */ - protected array $tokens; - /** @var int Current position in token array */ - protected int $tokenPos; - - /** - * Initialize $reduceCallbacks map. - */ - abstract protected function initReduceCallbacks(): void; - - /** - * Creates a parser instance. - * - * Options: - * * phpVersion: ?PhpVersion, - * - * @param Lexer $lexer A lexer - * @param PhpVersion $phpVersion PHP version to target, defaults to latest supported. This - * option is best-effort: Even if specified, parsing will generally assume the latest - * supported version and only adjust behavior in minor ways, for example by omitting - * errors in older versions and interpreting type hints as a name or identifier depending - * on version. - */ - public function __construct(Lexer $lexer, ?PhpVersion $phpVersion = null) { - $this->lexer = $lexer; - $this->phpVersion = $phpVersion ?? PhpVersion::getNewestSupported(); - - $this->initReduceCallbacks(); - $this->phpTokenToSymbol = $this->createTokenMap(); - $this->dropTokens = array_fill_keys( - [\T_WHITESPACE, \T_OPEN_TAG, \T_COMMENT, \T_DOC_COMMENT, \T_BAD_CHARACTER], true - ); - } - - /** - * Parses PHP code into a node tree. - * - * If a non-throwing error handler is used, the parser will continue parsing after an error - * occurred and attempt to build a partial AST. - * - * @param string $code The source code to parse - * @param ErrorHandler|null $errorHandler Error handler to use for lexer/parser errors, defaults - * to ErrorHandler\Throwing. - * - * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and - * the parser was unable to recover from an error). - */ - public function parse(string $code, ?ErrorHandler $errorHandler = null): ?array { - $this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing(); - $this->createdArrays = new \SplObjectStorage(); - - $this->tokens = $this->lexer->tokenize($code, $this->errorHandler); - $result = $this->doParse(); - - // Report errors for any empty elements used inside arrays. This is delayed until after the main parse, - // because we don't know a priori whether a given array expression will be used in a destructuring context - // or not. - foreach ($this->createdArrays as $node) { - foreach ($node->items as $item) { - if ($item->value instanceof Expr\Error) { - $this->errorHandler->handleError( - new Error('Cannot use empty array elements in arrays', $item->getAttributes())); - } - } - } - - // Clear out some of the interior state, so we don't hold onto unnecessary - // memory between uses of the parser - $this->tokenStartStack = []; - $this->tokenEndStack = []; - $this->semStack = []; - $this->semValue = null; - $this->createdArrays = null; - - if ($result !== null) { - $traverser = new NodeTraverser(new CommentAnnotatingVisitor($this->tokens)); - $traverser->traverse($result); - } - - return $result; - } - - public function getTokens(): array { - return $this->tokens; - } - - /** @return Stmt[]|null */ - protected function doParse(): ?array { - // We start off with no lookahead-token - $symbol = self::SYMBOL_NONE; - $tokenValue = null; - $this->tokenPos = -1; - - // Keep stack of start and end attributes - $this->tokenStartStack = []; - $this->tokenEndStack = [0]; - - // Start off in the initial state and keep a stack of previous states - $state = 0; - $stateStack = [$state]; - - // Semantic value stack (contains values of tokens and semantic action results) - $this->semStack = []; - - // Current position in the stack(s) - $stackPos = 0; - - $this->errorState = 0; - - for (;;) { - //$this->traceNewState($state, $symbol); - - if ($this->actionBase[$state] === 0) { - $rule = $this->actionDefault[$state]; - } else { - if ($symbol === self::SYMBOL_NONE) { - do { - $token = $this->tokens[++$this->tokenPos]; - $tokenId = $token->id; - } while (isset($this->dropTokens[$tokenId])); - - // Map the lexer token id to the internally used symbols. - $tokenValue = $token->text; - if (!isset($this->phpTokenToSymbol[$tokenId])) { - throw new \RangeException(sprintf( - 'The lexer returned an invalid token (id=%d, value=%s)', - $tokenId, $tokenValue - )); - } - $symbol = $this->phpTokenToSymbol[$tokenId]; - - //$this->traceRead($symbol); - } - - $idx = $this->actionBase[$state] + $symbol; - if ((($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol) - || ($state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $symbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol)) - && ($action = $this->action[$idx]) !== $this->defaultAction) { - /* - * >= numNonLeafStates: shift and reduce - * > 0: shift - * = 0: accept - * < 0: reduce - * = -YYUNEXPECTED: error - */ - if ($action > 0) { - /* shift */ - //$this->traceShift($symbol); - - ++$stackPos; - $stateStack[$stackPos] = $state = $action; - $this->semStack[$stackPos] = $tokenValue; - $this->tokenStartStack[$stackPos] = $this->tokenPos; - $this->tokenEndStack[$stackPos] = $this->tokenPos; - $symbol = self::SYMBOL_NONE; - - if ($this->errorState) { - --$this->errorState; - } - - if ($action < $this->numNonLeafStates) { - continue; - } - - /* $yyn >= numNonLeafStates means shift-and-reduce */ - $rule = $action - $this->numNonLeafStates; - } else { - $rule = -$action; - } - } else { - $rule = $this->actionDefault[$state]; - } - } - - for (;;) { - if ($rule === 0) { - /* accept */ - //$this->traceAccept(); - return $this->semValue; - } - if ($rule !== $this->unexpectedTokenRule) { - /* reduce */ - //$this->traceReduce($rule); - - $ruleLength = $this->ruleToLength[$rule]; - try { - $callback = $this->reduceCallbacks[$rule]; - if ($callback !== null) { - $callback($stackPos); - } elseif ($ruleLength > 0) { - $this->semValue = $this->semStack[$stackPos - $ruleLength + 1]; - } - } catch (Error $e) { - if (-1 === $e->getStartLine()) { - $e->setStartLine($this->tokens[$this->tokenPos]->line); - } - - $this->emitError($e); - // Can't recover from this type of error - return null; - } - - /* Goto - shift nonterminal */ - $lastTokenEnd = $this->tokenEndStack[$stackPos]; - $stackPos -= $ruleLength; - $nonTerminal = $this->ruleToNonTerminal[$rule]; - $idx = $this->gotoBase[$nonTerminal] + $stateStack[$stackPos]; - if ($idx >= 0 && $idx < $this->gotoTableSize && $this->gotoCheck[$idx] === $nonTerminal) { - $state = $this->goto[$idx]; - } else { - $state = $this->gotoDefault[$nonTerminal]; - } - - ++$stackPos; - $stateStack[$stackPos] = $state; - $this->semStack[$stackPos] = $this->semValue; - $this->tokenEndStack[$stackPos] = $lastTokenEnd; - if ($ruleLength === 0) { - // Empty productions use the start attributes of the lookahead token. - $this->tokenStartStack[$stackPos] = $this->tokenPos; - } - } else { - /* error */ - switch ($this->errorState) { - case 0: - $msg = $this->getErrorMessage($symbol, $state); - $this->emitError(new Error($msg, $this->getAttributesForToken($this->tokenPos))); - // Break missing intentionally - // no break - case 1: - case 2: - $this->errorState = 3; - - // Pop until error-expecting state uncovered - while (!( - (($idx = $this->actionBase[$state] + $this->errorSymbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $this->errorSymbol) - || ($state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $this->errorSymbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $this->errorSymbol) - ) || ($action = $this->action[$idx]) === $this->defaultAction) { // Not totally sure about this - if ($stackPos <= 0) { - // Could not recover from error - return null; - } - $state = $stateStack[--$stackPos]; - //$this->tracePop($state); - } - - //$this->traceShift($this->errorSymbol); - ++$stackPos; - $stateStack[$stackPos] = $state = $action; - - // We treat the error symbol as being empty, so we reset the end attributes - // to the end attributes of the last non-error symbol - $this->tokenStartStack[$stackPos] = $this->tokenPos; - $this->tokenEndStack[$stackPos] = $this->tokenEndStack[$stackPos - 1]; - break; - - case 3: - if ($symbol === 0) { - // Reached EOF without recovering from error - return null; - } - - //$this->traceDiscard($symbol); - $symbol = self::SYMBOL_NONE; - break 2; - } - } - - if ($state < $this->numNonLeafStates) { - break; - } - - /* >= numNonLeafStates means shift-and-reduce */ - $rule = $state - $this->numNonLeafStates; - } - } - - throw new \RuntimeException('Reached end of parser loop'); - } - - protected function emitError(Error $error): void { - $this->errorHandler->handleError($error); - } - - /** - * Format error message including expected tokens. - * - * @param int $symbol Unexpected symbol - * @param int $state State at time of error - * - * @return string Formatted error message - */ - protected function getErrorMessage(int $symbol, int $state): string { - $expectedString = ''; - if ($expected = $this->getExpectedTokens($state)) { - $expectedString = ', expecting ' . implode(' or ', $expected); - } - - return 'Syntax error, unexpected ' . $this->symbolToName[$symbol] . $expectedString; - } - - /** - * Get limited number of expected tokens in given state. - * - * @param int $state State - * - * @return string[] Expected tokens. If too many, an empty array is returned. - */ - protected function getExpectedTokens(int $state): array { - $expected = []; - - $base = $this->actionBase[$state]; - foreach ($this->symbolToName as $symbol => $name) { - $idx = $base + $symbol; - if ($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol - || $state < $this->YY2TBLSTATE - && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $symbol) >= 0 - && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol - ) { - if ($this->action[$idx] !== $this->unexpectedTokenRule - && $this->action[$idx] !== $this->defaultAction - && $symbol !== $this->errorSymbol - ) { - if (count($expected) === 4) { - /* Too many expected tokens */ - return []; - } - - $expected[] = $name; - } - } - } - - return $expected; - } - - /** - * Get attributes for a node with the given start and end token positions. - * - * @param int $tokenStartPos Token position the node starts at - * @param int $tokenEndPos Token position the node ends at - * @return array Attributes - */ - protected function getAttributes(int $tokenStartPos, int $tokenEndPos): array { - $startToken = $this->tokens[$tokenStartPos]; - $afterEndToken = $this->tokens[$tokenEndPos + 1]; - return [ - 'startLine' => $startToken->line, - 'startTokenPos' => $tokenStartPos, - 'startFilePos' => $startToken->pos, - 'endLine' => $afterEndToken->line, - 'endTokenPos' => $tokenEndPos, - 'endFilePos' => $afterEndToken->pos - 1, - ]; - } - - /** - * Get attributes for a single token at the given token position. - * - * @return array Attributes - */ - protected function getAttributesForToken(int $tokenPos): array { - if ($tokenPos < \count($this->tokens) - 1) { - return $this->getAttributes($tokenPos, $tokenPos); - } - - // Get attributes for the sentinel token. - $token = $this->tokens[$tokenPos]; - return [ - 'startLine' => $token->line, - 'startTokenPos' => $tokenPos, - 'startFilePos' => $token->pos, - 'endLine' => $token->line, - 'endTokenPos' => $tokenPos, - 'endFilePos' => $token->pos, - ]; - } - - /* - * Tracing functions used for debugging the parser. - */ - - /* - protected function traceNewState($state, $symbol): void { - echo '% State ' . $state - . ', Lookahead ' . ($symbol == self::SYMBOL_NONE ? '--none--' : $this->symbolToName[$symbol]) . "\n"; - } - - protected function traceRead($symbol): void { - echo '% Reading ' . $this->symbolToName[$symbol] . "\n"; - } - - protected function traceShift($symbol): void { - echo '% Shift ' . $this->symbolToName[$symbol] . "\n"; - } - - protected function traceAccept(): void { - echo "% Accepted.\n"; - } - - protected function traceReduce($n): void { - echo '% Reduce by (' . $n . ') ' . $this->productions[$n] . "\n"; - } - - protected function tracePop($state): void { - echo '% Recovering, uncovered state ' . $state . "\n"; - } - - protected function traceDiscard($symbol): void { - echo '% Discard ' . $this->symbolToName[$symbol] . "\n"; - } - */ - - /* - * Helper functions invoked by semantic actions - */ - - /** - * Moves statements of semicolon-style namespaces into $ns->stmts and checks various error conditions. - * - * @param Node\Stmt[] $stmts - * @return Node\Stmt[] - */ - protected function handleNamespaces(array $stmts): array { - $hasErrored = false; - $style = $this->getNamespacingStyle($stmts); - if (null === $style) { - // not namespaced, nothing to do - return $stmts; - } - if ('brace' === $style) { - // For braced namespaces we only have to check that there are no invalid statements between the namespaces - $afterFirstNamespace = false; - foreach ($stmts as $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - $afterFirstNamespace = true; - } elseif (!$stmt instanceof Node\Stmt\HaltCompiler - && !$stmt instanceof Node\Stmt\Nop - && $afterFirstNamespace && !$hasErrored) { - $this->emitError(new Error( - 'No code may exist outside of namespace {}', $stmt->getAttributes())); - $hasErrored = true; // Avoid one error for every statement - } - } - return $stmts; - } else { - // For semicolon namespaces we have to move the statements after a namespace declaration into ->stmts - $resultStmts = []; - $targetStmts = &$resultStmts; - $lastNs = null; - foreach ($stmts as $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - if ($lastNs !== null) { - $this->fixupNamespaceAttributes($lastNs); - } - if ($stmt->stmts === null) { - $stmt->stmts = []; - $targetStmts = &$stmt->stmts; - $resultStmts[] = $stmt; - } else { - // This handles the invalid case of mixed style namespaces - $resultStmts[] = $stmt; - $targetStmts = &$resultStmts; - } - $lastNs = $stmt; - } elseif ($stmt instanceof Node\Stmt\HaltCompiler) { - // __halt_compiler() is not moved into the namespace - $resultStmts[] = $stmt; - } else { - $targetStmts[] = $stmt; - } - } - if ($lastNs !== null) { - $this->fixupNamespaceAttributes($lastNs); - } - return $resultStmts; - } - } - - private function fixupNamespaceAttributes(Node\Stmt\Namespace_ $stmt): void { - // We moved the statements into the namespace node, as such the end of the namespace node - // needs to be extended to the end of the statements. - if (empty($stmt->stmts)) { - return; - } - - // We only move the builtin end attributes here. This is the best we can do with the - // knowledge we have. - $endAttributes = ['endLine', 'endFilePos', 'endTokenPos']; - $lastStmt = $stmt->stmts[count($stmt->stmts) - 1]; - foreach ($endAttributes as $endAttribute) { - if ($lastStmt->hasAttribute($endAttribute)) { - $stmt->setAttribute($endAttribute, $lastStmt->getAttribute($endAttribute)); - } - } - } - - /** @return array */ - private function getNamespaceErrorAttributes(Namespace_ $node): array { - $attrs = $node->getAttributes(); - // Adjust end attributes to only cover the "namespace" keyword, not the whole namespace. - if (isset($attrs['startLine'])) { - $attrs['endLine'] = $attrs['startLine']; - } - if (isset($attrs['startTokenPos'])) { - $attrs['endTokenPos'] = $attrs['startTokenPos']; - } - if (isset($attrs['startFilePos'])) { - $attrs['endFilePos'] = $attrs['startFilePos'] + \strlen('namespace') - 1; - } - return $attrs; - } - - /** - * Determine namespacing style (semicolon or brace) - * - * @param Node[] $stmts Top-level statements. - * - * @return null|string One of "semicolon", "brace" or null (no namespaces) - */ - private function getNamespacingStyle(array $stmts): ?string { - $style = null; - $hasNotAllowedStmts = false; - foreach ($stmts as $i => $stmt) { - if ($stmt instanceof Node\Stmt\Namespace_) { - $currentStyle = null === $stmt->stmts ? 'semicolon' : 'brace'; - if (null === $style) { - $style = $currentStyle; - if ($hasNotAllowedStmts) { - $this->emitError(new Error( - 'Namespace declaration statement has to be the very first statement in the script', - $this->getNamespaceErrorAttributes($stmt) - )); - } - } elseif ($style !== $currentStyle) { - $this->emitError(new Error( - 'Cannot mix bracketed namespace declarations with unbracketed namespace declarations', - $this->getNamespaceErrorAttributes($stmt) - )); - // Treat like semicolon style for namespace normalization - return 'semicolon'; - } - continue; - } - - /* declare(), __halt_compiler() and nops can be used before a namespace declaration */ - if ($stmt instanceof Node\Stmt\Declare_ - || $stmt instanceof Node\Stmt\HaltCompiler - || $stmt instanceof Node\Stmt\Nop) { - continue; - } - - /* There may be a hashbang line at the very start of the file */ - if ($i === 0 && $stmt instanceof Node\Stmt\InlineHTML && preg_match('/\A#!.*\r?\n\z/', $stmt->value)) { - continue; - } - - /* Everything else if forbidden before namespace declarations */ - $hasNotAllowedStmts = true; - } - return $style; - } - - /** @return Name|Identifier */ - protected function handleBuiltinTypes(Name $name) { - if (!$name->isUnqualified()) { - return $name; - } - - $lowerName = $name->toLowerString(); - if (!$this->phpVersion->supportsBuiltinType($lowerName)) { - return $name; - } - - return new Node\Identifier($lowerName, $name->getAttributes()); - } - - /** - * Get combined start and end attributes at a stack location - * - * @param int $stackPos Stack location - * - * @return array Combined start and end attributes - */ - protected function getAttributesAt(int $stackPos): array { - return $this->getAttributes($this->tokenStartStack[$stackPos], $this->tokenEndStack[$stackPos]); - } - - protected function getFloatCastKind(string $cast): int { - $cast = strtolower($cast); - if (strpos($cast, 'float') !== false) { - return Double::KIND_FLOAT; - } - - if (strpos($cast, 'real') !== false) { - return Double::KIND_REAL; - } - - return Double::KIND_DOUBLE; - } - - /** @param array $attributes */ - protected function parseLNumber(string $str, array $attributes, bool $allowInvalidOctal = false): Int_ { - try { - return Int_::fromString($str, $attributes, $allowInvalidOctal); - } catch (Error $error) { - $this->emitError($error); - // Use dummy value - return new Int_(0, $attributes); - } - } - - /** - * Parse a T_NUM_STRING token into either an integer or string node. - * - * @param string $str Number string - * @param array $attributes Attributes - * - * @return Int_|String_ Integer or string node. - */ - protected function parseNumString(string $str, array $attributes) { - if (!preg_match('/^(?:0|-?[1-9][0-9]*)$/', $str)) { - return new String_($str, $attributes); - } - - $num = +$str; - if (!is_int($num)) { - return new String_($str, $attributes); - } - - return new Int_($num, $attributes); - } - - /** @param array $attributes */ - protected function stripIndentation( - string $string, int $indentLen, string $indentChar, - bool $newlineAtStart, bool $newlineAtEnd, array $attributes - ): string { - if ($indentLen === 0) { - return $string; - } - - $start = $newlineAtStart ? '(?:(?<=\n)|\A)' : '(?<=\n)'; - $end = $newlineAtEnd ? '(?:(?=[\r\n])|\z)' : '(?=[\r\n])'; - $regex = '/' . $start . '([ \t]*)(' . $end . ')?/'; - return preg_replace_callback( - $regex, - function ($matches) use ($indentLen, $indentChar, $attributes) { - $prefix = substr($matches[1], 0, $indentLen); - if (false !== strpos($prefix, $indentChar === " " ? "\t" : " ")) { - $this->emitError(new Error( - 'Invalid indentation - tabs and spaces cannot be mixed', $attributes - )); - } elseif (strlen($prefix) < $indentLen && !isset($matches[2])) { - $this->emitError(new Error( - 'Invalid body indentation level ' . - '(expecting an indentation level of at least ' . $indentLen . ')', - $attributes - )); - } - return substr($matches[0], strlen($prefix)); - }, - $string - ); - } - - /** - * @param string|(Expr|InterpolatedStringPart)[] $contents - * @param array $attributes - * @param array $endTokenAttributes - */ - protected function parseDocString( - string $startToken, $contents, string $endToken, - array $attributes, array $endTokenAttributes, bool $parseUnicodeEscape - ): Expr { - $kind = strpos($startToken, "'") === false - ? String_::KIND_HEREDOC : String_::KIND_NOWDOC; - - $regex = '/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/'; - $result = preg_match($regex, $startToken, $matches); - assert($result === 1); - $label = $matches[1]; - - $result = preg_match('/\A[ \t]*/', $endToken, $matches); - assert($result === 1); - $indentation = $matches[0]; - - $attributes['kind'] = $kind; - $attributes['docLabel'] = $label; - $attributes['docIndentation'] = $indentation; - - $indentHasSpaces = false !== strpos($indentation, " "); - $indentHasTabs = false !== strpos($indentation, "\t"); - if ($indentHasSpaces && $indentHasTabs) { - $this->emitError(new Error( - 'Invalid indentation - tabs and spaces cannot be mixed', - $endTokenAttributes - )); - - // Proceed processing as if this doc string is not indented - $indentation = ''; - } - - $indentLen = \strlen($indentation); - $indentChar = $indentHasSpaces ? " " : "\t"; - - if (\is_string($contents)) { - if ($contents === '') { - $attributes['rawValue'] = $contents; - return new String_('', $attributes); - } - - $contents = $this->stripIndentation( - $contents, $indentLen, $indentChar, true, true, $attributes - ); - $contents = preg_replace('~(\r\n|\n|\r)\z~', '', $contents); - $attributes['rawValue'] = $contents; - - if ($kind === String_::KIND_HEREDOC) { - $contents = String_::parseEscapeSequences($contents, null, $parseUnicodeEscape); - } - - return new String_($contents, $attributes); - } else { - assert(count($contents) > 0); - if (!$contents[0] instanceof Node\InterpolatedStringPart) { - // If there is no leading encapsed string part, pretend there is an empty one - $this->stripIndentation( - '', $indentLen, $indentChar, true, false, $contents[0]->getAttributes() - ); - } - - $newContents = []; - foreach ($contents as $i => $part) { - if ($part instanceof Node\InterpolatedStringPart) { - $isLast = $i === \count($contents) - 1; - $part->value = $this->stripIndentation( - $part->value, $indentLen, $indentChar, - $i === 0, $isLast, $part->getAttributes() - ); - if ($isLast) { - $part->value = preg_replace('~(\r\n|\n|\r)\z~', '', $part->value); - } - $part->setAttribute('rawValue', $part->value); - $part->value = String_::parseEscapeSequences($part->value, null, $parseUnicodeEscape); - if ('' === $part->value) { - continue; - } - } - $newContents[] = $part; - } - return new InterpolatedString($newContents, $attributes); - } - } - - protected function createCommentFromToken(Token $token, int $tokenPos): Comment { - assert($token->id === \T_COMMENT || $token->id == \T_DOC_COMMENT); - return \T_DOC_COMMENT === $token->id - ? new Comment\Doc($token->text, $token->line, $token->pos, $tokenPos, - $token->getEndLine(), $token->getEndPos() - 1, $tokenPos) - : new Comment($token->text, $token->line, $token->pos, $tokenPos, - $token->getEndLine(), $token->getEndPos() - 1, $tokenPos); - } - - /** - * Get last comment before the given token position, if any - */ - protected function getCommentBeforeToken(int $tokenPos): ?Comment { - while (--$tokenPos >= 0) { - $token = $this->tokens[$tokenPos]; - if (!isset($this->dropTokens[$token->id])) { - break; - } - - if ($token->id === \T_COMMENT || $token->id === \T_DOC_COMMENT) { - return $this->createCommentFromToken($token, $tokenPos); - } - } - return null; - } - - /** - * Create a zero-length nop to capture preceding comments, if any. - */ - protected function maybeCreateZeroLengthNop(int $tokenPos): ?Nop { - $comment = $this->getCommentBeforeToken($tokenPos); - if ($comment === null) { - return null; - } - - $commentEndLine = $comment->getEndLine(); - $commentEndFilePos = $comment->getEndFilePos(); - $commentEndTokenPos = $comment->getEndTokenPos(); - $attributes = [ - 'startLine' => $commentEndLine, - 'endLine' => $commentEndLine, - 'startFilePos' => $commentEndFilePos + 1, - 'endFilePos' => $commentEndFilePos, - 'startTokenPos' => $commentEndTokenPos + 1, - 'endTokenPos' => $commentEndTokenPos, - ]; - return new Nop($attributes); - } - - protected function maybeCreateNop(int $tokenStartPos, int $tokenEndPos): ?Nop { - if ($this->getCommentBeforeToken($tokenStartPos) === null) { - return null; - } - return new Nop($this->getAttributes($tokenStartPos, $tokenEndPos)); - } - - protected function handleHaltCompiler(): string { - // Prevent the lexer from returning any further tokens. - $nextToken = $this->tokens[$this->tokenPos + 1]; - $this->tokenPos = \count($this->tokens) - 2; - - // Return text after __halt_compiler. - return $nextToken->id === \T_INLINE_HTML ? $nextToken->text : ''; - } - - protected function inlineHtmlHasLeadingNewline(int $stackPos): bool { - $tokenPos = $this->tokenStartStack[$stackPos]; - $token = $this->tokens[$tokenPos]; - assert($token->id == \T_INLINE_HTML); - if ($tokenPos > 0) { - $prevToken = $this->tokens[$tokenPos - 1]; - assert($prevToken->id == \T_CLOSE_TAG); - return false !== strpos($prevToken->text, "\n") - || false !== strpos($prevToken->text, "\r"); - } - return true; - } - - /** - * @return array - */ - protected function createEmptyElemAttributes(int $tokenPos): array { - return $this->getAttributesForToken($tokenPos); - } - - protected function fixupArrayDestructuring(Array_ $node): Expr\List_ { - $this->createdArrays->detach($node); - return new Expr\List_(array_map(function (Node\ArrayItem $item) { - if ($item->value instanceof Expr\Error) { - // We used Error as a placeholder for empty elements, which are legal for destructuring. - return null; - } - if ($item->value instanceof Array_) { - return new Node\ArrayItem( - $this->fixupArrayDestructuring($item->value), - $item->key, $item->byRef, $item->getAttributes()); - } - return $item; - }, $node->items), ['kind' => Expr\List_::KIND_ARRAY] + $node->getAttributes()); - } - - protected function postprocessList(Expr\List_ $node): void { - foreach ($node->items as $i => $item) { - if ($item->value instanceof Expr\Error) { - // We used Error as a placeholder for empty elements, which are legal for destructuring. - $node->items[$i] = null; - } - } - } - - /** @param ElseIf_|Else_ $node */ - protected function fixupAlternativeElse($node): void { - // Make sure a trailing nop statement carrying comments is part of the node. - $numStmts = \count($node->stmts); - if ($numStmts !== 0 && $node->stmts[$numStmts - 1] instanceof Nop) { - $nopAttrs = $node->stmts[$numStmts - 1]->getAttributes(); - if (isset($nopAttrs['endLine'])) { - $node->setAttribute('endLine', $nopAttrs['endLine']); - } - if (isset($nopAttrs['endFilePos'])) { - $node->setAttribute('endFilePos', $nopAttrs['endFilePos']); - } - if (isset($nopAttrs['endTokenPos'])) { - $node->setAttribute('endTokenPos', $nopAttrs['endTokenPos']); - } - } - } - - protected function checkClassModifier(int $a, int $b, int $modifierPos): void { - try { - Modifiers::verifyClassModifier($a, $b); - } catch (Error $error) { - $error->setAttributes($this->getAttributesAt($modifierPos)); - $this->emitError($error); - } - } - - protected function checkModifier(int $a, int $b, int $modifierPos): void { - // Jumping through some hoops here because verifyModifier() is also used elsewhere - try { - Modifiers::verifyModifier($a, $b); - } catch (Error $error) { - $error->setAttributes($this->getAttributesAt($modifierPos)); - $this->emitError($error); - } - } - - protected function checkParam(Param $node): void { - if ($node->variadic && null !== $node->default) { - $this->emitError(new Error( - 'Variadic parameter cannot have a default value', - $node->default->getAttributes() - )); - } - } - - protected function checkTryCatch(TryCatch $node): void { - if (empty($node->catches) && null === $node->finally) { - $this->emitError(new Error( - 'Cannot use try without catch or finally', $node->getAttributes() - )); - } - } - - protected function checkNamespace(Namespace_ $node): void { - if (null !== $node->stmts) { - foreach ($node->stmts as $stmt) { - if ($stmt instanceof Namespace_) { - $this->emitError(new Error( - 'Namespace declarations cannot be nested', $stmt->getAttributes() - )); - } - } - } - } - - private function checkClassName(?Identifier $name, int $namePos): void { - if (null !== $name && $name->isSpecialClassName()) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as class name as it is reserved', $name), - $this->getAttributesAt($namePos) - )); - } - } - - /** @param Name[] $interfaces */ - private function checkImplementedInterfaces(array $interfaces): void { - foreach ($interfaces as $interface) { - if ($interface->isSpecialClassName()) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as interface name as it is reserved', $interface), - $interface->getAttributes() - )); - } - } - } - - protected function checkClass(Class_ $node, int $namePos): void { - $this->checkClassName($node->name, $namePos); - - if ($node->extends && $node->extends->isSpecialClassName()) { - $this->emitError(new Error( - sprintf('Cannot use \'%s\' as class name as it is reserved', $node->extends), - $node->extends->getAttributes() - )); - } - - $this->checkImplementedInterfaces($node->implements); - } - - protected function checkInterface(Interface_ $node, int $namePos): void { - $this->checkClassName($node->name, $namePos); - $this->checkImplementedInterfaces($node->extends); - } - - protected function checkEnum(Enum_ $node, int $namePos): void { - $this->checkClassName($node->name, $namePos); - $this->checkImplementedInterfaces($node->implements); - } - - protected function checkClassMethod(ClassMethod $node, int $modifierPos): void { - if ($node->flags & Modifiers::STATIC) { - switch ($node->name->toLowerString()) { - case '__construct': - $this->emitError(new Error( - sprintf('Constructor %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - case '__destruct': - $this->emitError(new Error( - sprintf('Destructor %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - case '__clone': - $this->emitError(new Error( - sprintf('Clone method %s() cannot be static', $node->name), - $this->getAttributesAt($modifierPos))); - break; - } - } - - if ($node->flags & Modifiers::READONLY) { - $this->emitError(new Error( - sprintf('Method %s() cannot be readonly', $node->name), - $this->getAttributesAt($modifierPos))); - } - } - - protected function checkClassConst(ClassConst $node, int $modifierPos): void { - if ($node->flags & Modifiers::STATIC) { - $this->emitError(new Error( - "Cannot use 'static' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - if ($node->flags & Modifiers::ABSTRACT) { - $this->emitError(new Error( - "Cannot use 'abstract' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - if ($node->flags & Modifiers::READONLY) { - $this->emitError(new Error( - "Cannot use 'readonly' as constant modifier", - $this->getAttributesAt($modifierPos))); - } - } - - protected function checkProperty(Property $node, int $modifierPos): void { - if ($node->flags & Modifiers::ABSTRACT) { - $this->emitError(new Error('Properties cannot be declared abstract', - $this->getAttributesAt($modifierPos))); - } - - if ($node->flags & Modifiers::FINAL) { - $this->emitError(new Error('Properties cannot be declared final', - $this->getAttributesAt($modifierPos))); - } - } - - protected function checkUseUse(UseItem $node, int $namePos): void { - if ($node->alias && $node->alias->isSpecialClassName()) { - $this->emitError(new Error( - sprintf( - 'Cannot use %s as %s because \'%2$s\' is a special class name', - $node->name, $node->alias - ), - $this->getAttributesAt($namePos) - )); - } - } - - /** - * Creates the token map. - * - * The token map maps the PHP internal token identifiers - * to the identifiers used by the Parser. Additionally it - * maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'. - * - * @return array The token map - */ - protected function createTokenMap(): array { - $tokenMap = []; - - for ($i = 0; $i < 1000; ++$i) { - if ($i < 256) { - // Single-char tokens use an identity mapping. - $tokenMap[$i] = $i; - } elseif (\T_DOUBLE_COLON === $i) { - // T_DOUBLE_COLON is equivalent to T_PAAMAYIM_NEKUDOTAYIM - $tokenMap[$i] = static::T_PAAMAYIM_NEKUDOTAYIM; - } elseif (\T_OPEN_TAG_WITH_ECHO === $i) { - // T_OPEN_TAG_WITH_ECHO with dropped T_OPEN_TAG results in T_ECHO - $tokenMap[$i] = static::T_ECHO; - } elseif (\T_CLOSE_TAG === $i) { - // T_CLOSE_TAG is equivalent to ';' - $tokenMap[$i] = ord(';'); - } elseif ('UNKNOWN' !== $name = token_name($i)) { - if (defined($name = static::class . '::' . $name)) { - // Other tokens can be mapped directly - $tokenMap[$i] = constant($name); - } - } - } - - // Assign tokens for which we define compatibility constants, as token_name() does not know them. - $tokenMap[\T_FN] = static::T_FN; - $tokenMap[\T_COALESCE_EQUAL] = static::T_COALESCE_EQUAL; - $tokenMap[\T_NAME_QUALIFIED] = static::T_NAME_QUALIFIED; - $tokenMap[\T_NAME_FULLY_QUALIFIED] = static::T_NAME_FULLY_QUALIFIED; - $tokenMap[\T_NAME_RELATIVE] = static::T_NAME_RELATIVE; - $tokenMap[\T_MATCH] = static::T_MATCH; - $tokenMap[\T_NULLSAFE_OBJECT_OPERATOR] = static::T_NULLSAFE_OBJECT_OPERATOR; - $tokenMap[\T_ATTRIBUTE] = static::T_ATTRIBUTE; - $tokenMap[\T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG] = static::T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG; - $tokenMap[\T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG] = static::T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG; - $tokenMap[\T_ENUM] = static::T_ENUM; - $tokenMap[\T_READONLY] = static::T_READONLY; - - // We have create a map from PHP token IDs to external symbol IDs. - // Now map them to the internal symbol ID. - $fullTokenMap = []; - foreach ($tokenMap as $phpToken => $extSymbol) { - $intSymbol = $this->tokenToSymbol[$extSymbol]; - if ($intSymbol === $this->invalidSymbol) { - continue; - } - $fullTokenMap[$phpToken] = $intSymbol; - } - - return $fullTokenMap; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php deleted file mode 100644 index 3a7586e..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +++ /dev/null @@ -1,42 +0,0 @@ -isHostVersion()) { - $lexer = new Lexer(); - } else { - $lexer = new Lexer\Emulative($version); - } - if ($version->id >= 80000) { - return new Php8($lexer, $version); - } - return new Php7($lexer, $version); - } - - /** - * Create a parser targeting the newest version supported by this library. Code for older - * versions will be accepted if there have been no relevant backwards-compatibility breaks in - * PHP. - */ - public function createForNewestSupportedVersion(): Parser { - return $this->createForVersion(PhpVersion::getNewestSupported()); - } - - /** - * Create a parser targeting the host PHP version, that is the PHP version we're currently - * running on. This parser will not use any token emulation. - */ - public function createForHostVersion(): Parser { - return $this->createForVersion(PhpVersion::getHostVersion()); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php deleted file mode 100644 index a6fbb58..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php +++ /dev/null @@ -1,164 +0,0 @@ - 50100, - 'callable' => 50400, - 'bool' => 70000, - 'int' => 70000, - 'float' => 70000, - 'string' => 70000, - 'iterable' => 70100, - 'void' => 70100, - 'object' => 70200, - 'null' => 80000, - 'false' => 80000, - 'mixed' => 80000, - 'never' => 80100, - 'true' => 80200, - ]; - - private function __construct(int $id) { - $this->id = $id; - } - - /** - * Create a PhpVersion object from major and minor version components. - */ - public static function fromComponents(int $major, int $minor): self { - return new self($major * 10000 + $minor * 100); - } - - /** - * Get the newest PHP version supported by this library. Support for this version may be partial, - * if it is still under development. - */ - public static function getNewestSupported(): self { - return self::fromComponents(8, 2); - } - - /** - * Get the host PHP version, that is the PHP version we're currently running on. - */ - public static function getHostVersion(): self { - return self::fromComponents(\PHP_MAJOR_VERSION, \PHP_MINOR_VERSION); - } - - /** - * Parse the version from a string like "8.1". - */ - public static function fromString(string $version): self { - if (!preg_match('/^(\d+)\.(\d+)/', $version, $matches)) { - throw new \LogicException("Invalid PHP version \"$version\""); - } - return self::fromComponents((int) $matches[1], (int) $matches[2]); - } - - /** - * Check whether two versions are the same. - */ - public function equals(PhpVersion $other): bool { - return $this->id === $other->id; - } - - /** - * Check whether this version is greater than or equal to the argument. - */ - public function newerOrEqual(PhpVersion $other): bool { - return $this->id >= $other->id; - } - - /** - * Check whether this version is older than the argument. - */ - public function older(PhpVersion $other): bool { - return $this->id < $other->id; - } - - /** - * Check whether this is the host PHP version. - */ - public function isHostVersion(): bool { - return $this->equals(self::getHostVersion()); - } - - /** - * Check whether this PHP version supports the given builtin type. Type name must be lowercase. - */ - public function supportsBuiltinType(string $type): bool { - $minVersion = self::BUILTIN_TYPE_VERSIONS[$type] ?? null; - return $minVersion !== null && $this->id >= $minVersion; - } - - /** - * Whether this version supports [] array literals. - */ - public function supportsShortArraySyntax(): bool { - return $this->id >= 50400; - } - - /** - * Whether this version supports [] for destructuring. - */ - public function supportsShortArrayDestructuring(): bool { - return $this->id >= 70100; - } - - /** - * Whether this version supports flexible heredoc/nowdoc. - */ - public function supportsFlexibleHeredoc(): bool { - return $this->id >= 70300; - } - - /** - * Whether this version supports trailing commas in parameter lists. - */ - public function supportsTrailingCommaInParamList(): bool { - return $this->id >= 80000; - } - - /** - * Whether this version allows "$var =& new Obj". - */ - public function allowsAssignNewByReference(): bool { - return $this->id < 70000; - } - - /** - * Whether this version allows invalid octals like "08". - */ - public function allowsInvalidOctals(): bool { - return $this->id < 70000; - } - - /** - * Whether this version allows DEL (\x7f) to occur in identifiers. - */ - public function allowsDelInIdentifiers(): bool { - return $this->id < 70100; - } - - /** - * Whether this version supports yield in expression context without parentheses. - */ - public function supportsYieldWithoutParentheses(): bool { - return $this->id >= 70000; - } - - /** - * Whether this version supports unicode escape sequences in strings. - */ - public function supportsUnicodeEscapes(): bool { - return $this->id >= 70000; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php deleted file mode 100644 index 892c686..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +++ /dev/null @@ -1,51 +0,0 @@ -pAttrGroups($node->attrGroups, true) - . $this->pModifiers($node->flags) - . ($node->type ? $this->p($node->type) . ' ' : '') - . ($node->byRef ? '&' : '') - . ($node->variadic ? '...' : '') - . $this->p($node->var) - . ($node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pArg(Node\Arg $node): string { - return ($node->name ? $node->name->toString() . ': ' : '') - . ($node->byRef ? '&' : '') . ($node->unpack ? '...' : '') - . $this->p($node->value); - } - - protected function pVariadicPlaceholder(Node\VariadicPlaceholder $node): string { - return '...'; - } - - protected function pConst(Node\Const_ $node): string { - return $node->name . ' = ' . $this->p($node->value); - } - - protected function pNullableType(Node\NullableType $node): string { - return '?' . $this->p($node->type); - } - - protected function pUnionType(Node\UnionType $node): string { - $types = []; - foreach ($node->types as $typeNode) { - if ($typeNode instanceof Node\IntersectionType) { - $types[] = '('. $this->p($typeNode) . ')'; - continue; - } - $types[] = $this->p($typeNode); - } - return implode('|', $types); - } - - protected function pIntersectionType(Node\IntersectionType $node): string { - return $this->pImplode($node->types, '&'); - } - - protected function pIdentifier(Node\Identifier $node): string { - return $node->name; - } - - protected function pVarLikeIdentifier(Node\VarLikeIdentifier $node): string { - return '$' . $node->name; - } - - protected function pAttribute(Node\Attribute $node): string { - return $this->p($node->name) - . ($node->args ? '(' . $this->pCommaSeparated($node->args) . ')' : ''); - } - - protected function pAttributeGroup(Node\AttributeGroup $node): string { - return '#[' . $this->pCommaSeparated($node->attrs) . ']'; - } - - // Names - - protected function pName(Name $node): string { - return $node->name; - } - - protected function pName_FullyQualified(Name\FullyQualified $node): string { - return '\\' . $node->name; - } - - protected function pName_Relative(Name\Relative $node): string { - return 'namespace\\' . $node->name; - } - - // Magic Constants - - protected function pScalar_MagicConst_Class(MagicConst\Class_ $node): string { - return '__CLASS__'; - } - - protected function pScalar_MagicConst_Dir(MagicConst\Dir $node): string { - return '__DIR__'; - } - - protected function pScalar_MagicConst_File(MagicConst\File $node): string { - return '__FILE__'; - } - - protected function pScalar_MagicConst_Function(MagicConst\Function_ $node): string { - return '__FUNCTION__'; - } - - protected function pScalar_MagicConst_Line(MagicConst\Line $node): string { - return '__LINE__'; - } - - protected function pScalar_MagicConst_Method(MagicConst\Method $node): string { - return '__METHOD__'; - } - - protected function pScalar_MagicConst_Namespace(MagicConst\Namespace_ $node): string { - return '__NAMESPACE__'; - } - - protected function pScalar_MagicConst_Trait(MagicConst\Trait_ $node): string { - return '__TRAIT__'; - } - - // Scalars - - private function indentString(string $str): string { - return str_replace("\n", $this->nl, $str); - } - - protected function pScalar_String(Scalar\String_ $node): string { - $kind = $node->getAttribute('kind', Scalar\String_::KIND_SINGLE_QUOTED); - switch ($kind) { - case Scalar\String_::KIND_NOWDOC: - $label = $node->getAttribute('docLabel'); - if ($label && !$this->containsEndLabel($node->value, $label)) { - $shouldIdent = $this->phpVersion->supportsFlexibleHeredoc(); - $nl = $shouldIdent ? $this->nl : $this->newline; - if ($node->value === '') { - return "<<<'$label'$nl$label{$this->docStringEndToken}"; - } - - // Make sure trailing \r is not combined with following \n into CRLF. - if ($node->value[strlen($node->value) - 1] !== "\r") { - $value = $shouldIdent ? $this->indentString($node->value) : $node->value; - return "<<<'$label'$nl$value$nl$label{$this->docStringEndToken}"; - } - } - /* break missing intentionally */ - // no break - case Scalar\String_::KIND_SINGLE_QUOTED: - return $this->pSingleQuotedString($node->value); - case Scalar\String_::KIND_HEREDOC: - $label = $node->getAttribute('docLabel'); - $escaped = $this->escapeString($node->value, null); - if ($label && !$this->containsEndLabel($escaped, $label)) { - $nl = $this->phpVersion->supportsFlexibleHeredoc() ? $this->nl : $this->newline; - if ($escaped === '') { - return "<<<$label$nl$label{$this->docStringEndToken}"; - } - - return "<<<$label$nl$escaped$nl$label{$this->docStringEndToken}"; - } - /* break missing intentionally */ - // no break - case Scalar\String_::KIND_DOUBLE_QUOTED: - return '"' . $this->escapeString($node->value, '"') . '"'; - } - throw new \Exception('Invalid string kind'); - } - - protected function pScalar_InterpolatedString(Scalar\InterpolatedString $node): string { - if ($node->getAttribute('kind') === Scalar\String_::KIND_HEREDOC) { - $label = $node->getAttribute('docLabel'); - if ($label && !$this->encapsedContainsEndLabel($node->parts, $label)) { - $nl = $this->phpVersion->supportsFlexibleHeredoc() ? $this->nl : $this->newline; - if (count($node->parts) === 1 - && $node->parts[0] instanceof Node\InterpolatedStringPart - && $node->parts[0]->value === '' - ) { - return "<<<$label$nl$label{$this->docStringEndToken}"; - } - - return "<<<$label$nl" . $this->pEncapsList($node->parts, null) - . "$nl$label{$this->docStringEndToken}"; - } - } - return '"' . $this->pEncapsList($node->parts, '"') . '"'; - } - - protected function pScalar_Int(Scalar\Int_ $node): string { - if ($node->value === -\PHP_INT_MAX - 1) { - // PHP_INT_MIN cannot be represented as a literal, - // because the sign is not part of the literal - return '(-' . \PHP_INT_MAX . '-1)'; - } - - $kind = $node->getAttribute('kind', Scalar\Int_::KIND_DEC); - if (Scalar\Int_::KIND_DEC === $kind) { - return (string) $node->value; - } - - if ($node->value < 0) { - $sign = '-'; - $str = (string) -$node->value; - } else { - $sign = ''; - $str = (string) $node->value; - } - switch ($kind) { - case Scalar\Int_::KIND_BIN: - return $sign . '0b' . base_convert($str, 10, 2); - case Scalar\Int_::KIND_OCT: - return $sign . '0' . base_convert($str, 10, 8); - case Scalar\Int_::KIND_HEX: - return $sign . '0x' . base_convert($str, 10, 16); - } - throw new \Exception('Invalid number kind'); - } - - protected function pScalar_Float(Scalar\Float_ $node): string { - if (!is_finite($node->value)) { - if ($node->value === \INF) { - return '1.0E+1000'; - } - if ($node->value === -\INF) { - return '-1.0E+1000'; - } else { - return '\NAN'; - } - } - - // Try to find a short full-precision representation - $stringValue = sprintf('%.16G', $node->value); - if ($node->value !== (float) $stringValue) { - $stringValue = sprintf('%.17G', $node->value); - } - - // %G is locale dependent and there exists no locale-independent alternative. We don't want - // mess with switching locales here, so let's assume that a comma is the only non-standard - // decimal separator we may encounter... - $stringValue = str_replace(',', '.', $stringValue); - - // ensure that number is really printed as float - return preg_match('/^-?[0-9]+$/', $stringValue) ? $stringValue . '.0' : $stringValue; - } - - // Assignments - - protected function pExpr_Assign(Expr\Assign $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\Assign::class, $this->p($node->var) . ' = ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignRef(Expr\AssignRef $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\AssignRef::class, $this->p($node->var) . ' =& ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Plus(AssignOp\Plus $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Plus::class, $this->p($node->var) . ' += ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Minus(AssignOp\Minus $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Minus::class, $this->p($node->var) . ' -= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Mul(AssignOp\Mul $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Mul::class, $this->p($node->var) . ' *= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Div(AssignOp\Div $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Div::class, $this->p($node->var) . ' /= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Concat(AssignOp\Concat $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Concat::class, $this->p($node->var) . ' .= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Mod(AssignOp\Mod $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Mod::class, $this->p($node->var) . ' %= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_BitwiseAnd(AssignOp\BitwiseAnd $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\BitwiseAnd::class, $this->p($node->var) . ' &= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_BitwiseOr(AssignOp\BitwiseOr $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\BitwiseOr::class, $this->p($node->var) . ' |= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_BitwiseXor(AssignOp\BitwiseXor $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\BitwiseXor::class, $this->p($node->var) . ' ^= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_ShiftLeft(AssignOp\ShiftLeft $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\ShiftLeft::class, $this->p($node->var) . ' <<= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_ShiftRight(AssignOp\ShiftRight $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\ShiftRight::class, $this->p($node->var) . ' >>= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Pow(AssignOp\Pow $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Pow::class, $this->p($node->var) . ' **= ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_AssignOp_Coalesce(AssignOp\Coalesce $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(AssignOp\Coalesce::class, $this->p($node->var) . ' ??= ', $node->expr, $precedence, $lhsPrecedence); - } - - // Binary expressions - - protected function pExpr_BinaryOp_Plus(BinaryOp\Plus $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Plus::class, $node->left, ' + ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Minus(BinaryOp\Minus $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Minus::class, $node->left, ' - ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Mul(BinaryOp\Mul $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Mul::class, $node->left, ' * ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Div(BinaryOp\Div $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Div::class, $node->left, ' / ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Concat(BinaryOp\Concat $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Concat::class, $node->left, ' . ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Mod(BinaryOp\Mod $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Mod::class, $node->left, ' % ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_BooleanAnd(BinaryOp\BooleanAnd $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\BooleanAnd::class, $node->left, ' && ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_BooleanOr(BinaryOp\BooleanOr $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\BooleanOr::class, $node->left, ' || ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_BitwiseAnd(BinaryOp\BitwiseAnd $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\BitwiseAnd::class, $node->left, ' & ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_BitwiseOr(BinaryOp\BitwiseOr $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\BitwiseOr::class, $node->left, ' | ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_BitwiseXor(BinaryOp\BitwiseXor $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\BitwiseXor::class, $node->left, ' ^ ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_ShiftLeft(BinaryOp\ShiftLeft $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\ShiftLeft::class, $node->left, ' << ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_ShiftRight(BinaryOp\ShiftRight $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\ShiftRight::class, $node->left, ' >> ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Pow(BinaryOp\Pow $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Pow::class, $node->left, ' ** ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_LogicalAnd(BinaryOp\LogicalAnd $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\LogicalAnd::class, $node->left, ' and ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_LogicalOr(BinaryOp\LogicalOr $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\LogicalOr::class, $node->left, ' or ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_LogicalXor(BinaryOp\LogicalXor $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\LogicalXor::class, $node->left, ' xor ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Equal(BinaryOp\Equal $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Equal::class, $node->left, ' == ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_NotEqual(BinaryOp\NotEqual $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\NotEqual::class, $node->left, ' != ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Identical(BinaryOp\Identical $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Identical::class, $node->left, ' === ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_NotIdentical(BinaryOp\NotIdentical $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\NotIdentical::class, $node->left, ' !== ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Spaceship(BinaryOp\Spaceship $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Spaceship::class, $node->left, ' <=> ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Greater(BinaryOp\Greater $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Greater::class, $node->left, ' > ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_GreaterOrEqual(BinaryOp\GreaterOrEqual $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\GreaterOrEqual::class, $node->left, ' >= ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Smaller(BinaryOp\Smaller $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Smaller::class, $node->left, ' < ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_SmallerOrEqual(BinaryOp\SmallerOrEqual $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\SmallerOrEqual::class, $node->left, ' <= ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_BinaryOp_Coalesce(BinaryOp\Coalesce $node, int $precedence, int $lhsPrecedence): string { - return $this->pInfixOp(BinaryOp\Coalesce::class, $node->left, ' ?? ', $node->right, $precedence, $lhsPrecedence); - } - - protected function pExpr_Instanceof(Expr\Instanceof_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPostfixOp( - Expr\Instanceof_::class, $node->expr, - ' instanceof ' . $this->pNewOperand($node->class), - $precedence, $lhsPrecedence); - } - - // Unary expressions - - protected function pExpr_BooleanNot(Expr\BooleanNot $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\BooleanNot::class, '!', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_BitwiseNot(Expr\BitwiseNot $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\BitwiseNot::class, '~', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_UnaryMinus(Expr\UnaryMinus $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\UnaryMinus::class, '-', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_UnaryPlus(Expr\UnaryPlus $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\UnaryPlus::class, '+', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_PreInc(Expr\PreInc $node): string { - return '++' . $this->p($node->var); - } - - protected function pExpr_PreDec(Expr\PreDec $node): string { - return '--' . $this->p($node->var); - } - - protected function pExpr_PostInc(Expr\PostInc $node): string { - return $this->p($node->var) . '++'; - } - - protected function pExpr_PostDec(Expr\PostDec $node): string { - return $this->p($node->var) . '--'; - } - - protected function pExpr_ErrorSuppress(Expr\ErrorSuppress $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\ErrorSuppress::class, '@', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_YieldFrom(Expr\YieldFrom $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\YieldFrom::class, 'yield from ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Print(Expr\Print_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\Print_::class, 'print ', $node->expr, $precedence, $lhsPrecedence); - } - - // Casts - - protected function pExpr_Cast_Int(Cast\Int_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\Int_::class, '(int) ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_Double(Cast\Double $node, int $precedence, int $lhsPrecedence): string { - $kind = $node->getAttribute('kind', Cast\Double::KIND_DOUBLE); - if ($kind === Cast\Double::KIND_DOUBLE) { - $cast = '(double)'; - } elseif ($kind === Cast\Double::KIND_FLOAT) { - $cast = '(float)'; - } else { - assert($kind === Cast\Double::KIND_REAL); - $cast = '(real)'; - } - return $this->pPrefixOp(Cast\Double::class, $cast . ' ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_String(Cast\String_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\String_::class, '(string) ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_Array(Cast\Array_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\Array_::class, '(array) ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_Object(Cast\Object_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\Object_::class, '(object) ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_Bool(Cast\Bool_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\Bool_::class, '(bool) ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Cast_Unset(Cast\Unset_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Cast\Unset_::class, '(unset) ', $node->expr, $precedence, $lhsPrecedence); - } - - // Function calls and similar constructs - - protected function pExpr_FuncCall(Expr\FuncCall $node): string { - return $this->pCallLhs($node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_MethodCall(Expr\MethodCall $node): string { - return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_NullsafeMethodCall(Expr\NullsafeMethodCall $node): string { - return $this->pDereferenceLhs($node->var) . '?->' . $this->pObjectProperty($node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_StaticCall(Expr\StaticCall $node): string { - return $this->pStaticDereferenceLhs($node->class) . '::' - . ($node->name instanceof Expr - ? ($node->name instanceof Expr\Variable - ? $this->p($node->name) - : '{' . $this->p($node->name) . '}') - : $node->name) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_Empty(Expr\Empty_ $node): string { - return 'empty(' . $this->p($node->expr) . ')'; - } - - protected function pExpr_Isset(Expr\Isset_ $node): string { - return 'isset(' . $this->pCommaSeparated($node->vars) . ')'; - } - - protected function pExpr_Eval(Expr\Eval_ $node): string { - return 'eval(' . $this->p($node->expr) . ')'; - } - - protected function pExpr_Include(Expr\Include_ $node, int $precedence, int $lhsPrecedence): string { - static $map = [ - Expr\Include_::TYPE_INCLUDE => 'include', - Expr\Include_::TYPE_INCLUDE_ONCE => 'include_once', - Expr\Include_::TYPE_REQUIRE => 'require', - Expr\Include_::TYPE_REQUIRE_ONCE => 'require_once', - ]; - - return $this->pPrefixOp(Expr\Include_::class, $map[$node->type] . ' ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_List(Expr\List_ $node): string { - $syntax = $node->getAttribute('kind', - $this->phpVersion->supportsShortArrayDestructuring() ? Expr\List_::KIND_ARRAY : Expr\List_::KIND_LIST); - if ($syntax === Expr\List_::KIND_ARRAY) { - return '[' . $this->pMaybeMultiline($node->items, true) . ']'; - } else { - return 'list(' . $this->pMaybeMultiline($node->items, true) . ')'; - } - } - - // Other - - protected function pExpr_Error(Expr\Error $node): string { - throw new \LogicException('Cannot pretty-print AST with Error nodes'); - } - - protected function pExpr_Variable(Expr\Variable $node): string { - if ($node->name instanceof Expr) { - return '${' . $this->p($node->name) . '}'; - } else { - return '$' . $node->name; - } - } - - protected function pExpr_Array(Expr\Array_ $node): string { - $syntax = $node->getAttribute('kind', - $this->shortArraySyntax ? Expr\Array_::KIND_SHORT : Expr\Array_::KIND_LONG); - if ($syntax === Expr\Array_::KIND_SHORT) { - return '[' . $this->pMaybeMultiline($node->items, true) . ']'; - } else { - return 'array(' . $this->pMaybeMultiline($node->items, true) . ')'; - } - } - - protected function pKey(?Node $node): string { - if ($node === null) { - return ''; - } - - // => is not really an operator and does not typically participate in precedence resolution. - // However, there is an exception if yield expressions with keys are involved: - // [yield $a => $b] is interpreted as [(yield $a => $b)], so we need to ensure that - // [(yield $a) => $b] is printed with parentheses. We approximate this by lowering the LHS - // precedence to that of yield (which will also print unnecessary parentheses for rare low - // precedence unary operators like include). - $yieldPrecedence = $this->precedenceMap[Expr\Yield_::class][0]; - return $this->p($node, self::MAX_PRECEDENCE, $yieldPrecedence) . ' => '; - } - - protected function pArrayItem(Node\ArrayItem $node): string { - return $this->pKey($node->key) - . ($node->byRef ? '&' : '') - . ($node->unpack ? '...' : '') - . $this->p($node->value); - } - - protected function pExpr_ArrayDimFetch(Expr\ArrayDimFetch $node): string { - return $this->pDereferenceLhs($node->var) - . '[' . (null !== $node->dim ? $this->p($node->dim) : '') . ']'; - } - - protected function pExpr_ConstFetch(Expr\ConstFetch $node): string { - return $this->p($node->name); - } - - protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node): string { - return $this->pStaticDereferenceLhs($node->class) . '::' . $this->pObjectProperty($node->name); - } - - protected function pExpr_PropertyFetch(Expr\PropertyFetch $node): string { - return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name); - } - - protected function pExpr_NullsafePropertyFetch(Expr\NullsafePropertyFetch $node): string { - return $this->pDereferenceLhs($node->var) . '?->' . $this->pObjectProperty($node->name); - } - - protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node): string { - return $this->pStaticDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); - } - - protected function pExpr_ShellExec(Expr\ShellExec $node): string { - return '`' . $this->pEncapsList($node->parts, '`') . '`'; - } - - protected function pExpr_Closure(Expr\Closure $node): string { - return $this->pAttrGroups($node->attrGroups, true) - . $this->pStatic($node->static) - . 'function ' . ($node->byRef ? '&' : '') - . '(' . $this->pMaybeMultiline($node->params, $this->phpVersion->supportsTrailingCommaInParamList()) . ')' - . (!empty($node->uses) ? ' use (' . $this->pCommaSeparated($node->uses) . ')' : '') - . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') - . ' {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pExpr_Match(Expr\Match_ $node): string { - return 'match (' . $this->p($node->cond) . ') {' - . $this->pCommaSeparatedMultiline($node->arms, true) - . $this->nl - . '}'; - } - - protected function pMatchArm(Node\MatchArm $node): string { - $result = ''; - if ($node->conds) { - for ($i = 0, $c = \count($node->conds); $i + 1 < $c; $i++) { - $result .= $this->p($node->conds[$i]) . ', '; - } - $result .= $this->pKey($node->conds[$i]); - } else { - $result = 'default => '; - } - return $result . $this->p($node->body); - } - - protected function pExpr_ArrowFunction(Expr\ArrowFunction $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp( - Expr\ArrowFunction::class, - $this->pAttrGroups($node->attrGroups, true) - . $this->pStatic($node->static) - . 'fn' . ($node->byRef ? '&' : '') - . '(' . $this->pMaybeMultiline($node->params, $this->phpVersion->supportsTrailingCommaInParamList()) . ')' - . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') - . ' => ', - $node->expr, $precedence, $lhsPrecedence); - } - - protected function pClosureUse(Node\ClosureUse $node): string { - return ($node->byRef ? '&' : '') . $this->p($node->var); - } - - protected function pExpr_New(Expr\New_ $node): string { - if ($node->class instanceof Stmt\Class_) { - $args = $node->args ? '(' . $this->pMaybeMultiline($node->args) . ')' : ''; - return 'new ' . $this->pClassCommon($node->class, $args); - } - return 'new ' . $this->pNewOperand($node->class) - . '(' . $this->pMaybeMultiline($node->args) . ')'; - } - - protected function pExpr_Clone(Expr\Clone_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\Clone_::class, 'clone ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Ternary(Expr\Ternary $node, int $precedence, int $lhsPrecedence): string { - // a bit of cheating: we treat the ternary as a binary op where the ?...: part is the operator. - // this is okay because the part between ? and : never needs parentheses. - return $this->pInfixOp(Expr\Ternary::class, - $node->cond, ' ?' . (null !== $node->if ? ' ' . $this->p($node->if) . ' ' : '') . ': ', $node->else, - $precedence, $lhsPrecedence - ); - } - - protected function pExpr_Exit(Expr\Exit_ $node): string { - $kind = $node->getAttribute('kind', Expr\Exit_::KIND_DIE); - return ($kind === Expr\Exit_::KIND_EXIT ? 'exit' : 'die') - . (null !== $node->expr ? '(' . $this->p($node->expr) . ')' : ''); - } - - protected function pExpr_Throw(Expr\Throw_ $node, int $precedence, int $lhsPrecedence): string { - return $this->pPrefixOp(Expr\Throw_::class, 'throw ', $node->expr, $precedence, $lhsPrecedence); - } - - protected function pExpr_Yield(Expr\Yield_ $node, int $precedence, int $lhsPrecedence): string { - if ($node->value === null) { - $opPrecedence = $this->precedenceMap[Expr\Yield_::class][0]; - return $opPrecedence >= $lhsPrecedence ? '(yield)' : 'yield'; - } else { - if (!$this->phpVersion->supportsYieldWithoutParentheses()) { - return '(yield ' . $this->pKey($node->key) . $this->p($node->value) . ')'; - } - return $this->pPrefixOp( - Expr\Yield_::class, 'yield ' . $this->pKey($node->key), - $node->value, $precedence, $lhsPrecedence); - } - } - - // Declarations - - protected function pStmt_Namespace(Stmt\Namespace_ $node): string { - if ($this->canUseSemicolonNamespaces) { - return 'namespace ' . $this->p($node->name) . ';' - . $this->nl . $this->pStmts($node->stmts, false); - } else { - return 'namespace' . (null !== $node->name ? ' ' . $this->p($node->name) : '') - . ' {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - } - - protected function pStmt_Use(Stmt\Use_ $node): string { - return 'use ' . $this->pUseType($node->type) - . $this->pCommaSeparated($node->uses) . ';'; - } - - protected function pStmt_GroupUse(Stmt\GroupUse $node): string { - return 'use ' . $this->pUseType($node->type) . $this->pName($node->prefix) - . '\{' . $this->pCommaSeparated($node->uses) . '};'; - } - - protected function pUseItem(Node\UseItem $node): string { - return $this->pUseType($node->type) . $this->p($node->name) - . (null !== $node->alias ? ' as ' . $node->alias : ''); - } - - protected function pUseType(int $type): string { - return $type === Stmt\Use_::TYPE_FUNCTION ? 'function ' - : ($type === Stmt\Use_::TYPE_CONSTANT ? 'const ' : ''); - } - - protected function pStmt_Interface(Stmt\Interface_ $node): string { - return $this->pAttrGroups($node->attrGroups) - . 'interface ' . $node->name - . (!empty($node->extends) ? ' extends ' . $this->pCommaSeparated($node->extends) : '') - . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Enum(Stmt\Enum_ $node): string { - return $this->pAttrGroups($node->attrGroups) - . 'enum ' . $node->name - . ($node->scalarType ? ' : ' . $this->p($node->scalarType) : '') - . (!empty($node->implements) ? ' implements ' . $this->pCommaSeparated($node->implements) : '') - . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Class(Stmt\Class_ $node): string { - return $this->pClassCommon($node, ' ' . $node->name); - } - - protected function pStmt_Trait(Stmt\Trait_ $node): string { - return $this->pAttrGroups($node->attrGroups) - . 'trait ' . $node->name - . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_EnumCase(Stmt\EnumCase $node): string { - return $this->pAttrGroups($node->attrGroups) - . 'case ' . $node->name - . ($node->expr ? ' = ' . $this->p($node->expr) : '') - . ';'; - } - - protected function pStmt_TraitUse(Stmt\TraitUse $node): string { - return 'use ' . $this->pCommaSeparated($node->traits) - . (empty($node->adaptations) - ? ';' - : ' {' . $this->pStmts($node->adaptations) . $this->nl . '}'); - } - - protected function pStmt_TraitUseAdaptation_Precedence(Stmt\TraitUseAdaptation\Precedence $node): string { - return $this->p($node->trait) . '::' . $node->method - . ' insteadof ' . $this->pCommaSeparated($node->insteadof) . ';'; - } - - protected function pStmt_TraitUseAdaptation_Alias(Stmt\TraitUseAdaptation\Alias $node): string { - return (null !== $node->trait ? $this->p($node->trait) . '::' : '') - . $node->method . ' as' - . (null !== $node->newModifier ? ' ' . rtrim($this->pModifiers($node->newModifier), ' ') : '') - . (null !== $node->newName ? ' ' . $node->newName : '') - . ';'; - } - - protected function pStmt_Property(Stmt\Property $node): string { - return $this->pAttrGroups($node->attrGroups) - . (0 === $node->flags ? 'var ' : $this->pModifiers($node->flags)) - . ($node->type ? $this->p($node->type) . ' ' : '') - . $this->pCommaSeparated($node->props) . ';'; - } - - protected function pPropertyItem(Node\PropertyItem $node): string { - return '$' . $node->name - . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pStmt_ClassMethod(Stmt\ClassMethod $node): string { - return $this->pAttrGroups($node->attrGroups) - . $this->pModifiers($node->flags) - . 'function ' . ($node->byRef ? '&' : '') . $node->name - . '(' . $this->pMaybeMultiline($node->params, $this->phpVersion->supportsTrailingCommaInParamList()) . ')' - . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') - . (null !== $node->stmts - ? $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}' - : ';'); - } - - protected function pStmt_ClassConst(Stmt\ClassConst $node): string { - return $this->pAttrGroups($node->attrGroups) - . $this->pModifiers($node->flags) - . 'const ' - . (null !== $node->type ? $this->p($node->type) . ' ' : '') - . $this->pCommaSeparated($node->consts) . ';'; - } - - protected function pStmt_Function(Stmt\Function_ $node): string { - return $this->pAttrGroups($node->attrGroups) - . 'function ' . ($node->byRef ? '&' : '') . $node->name - . '(' . $this->pMaybeMultiline($node->params, $this->phpVersion->supportsTrailingCommaInParamList()) . ')' - . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') - . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Const(Stmt\Const_ $node): string { - return 'const ' . $this->pCommaSeparated($node->consts) . ';'; - } - - protected function pStmt_Declare(Stmt\Declare_ $node): string { - return 'declare (' . $this->pCommaSeparated($node->declares) . ')' - . (null !== $node->stmts ? ' {' . $this->pStmts($node->stmts) . $this->nl . '}' : ';'); - } - - protected function pDeclareItem(Node\DeclareItem $node): string { - return $node->key . '=' . $this->p($node->value); - } - - // Control flow - - protected function pStmt_If(Stmt\If_ $node): string { - return 'if (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . $this->nl . '}' - . ($node->elseifs ? ' ' . $this->pImplode($node->elseifs, ' ') : '') - . (null !== $node->else ? ' ' . $this->p($node->else) : ''); - } - - protected function pStmt_ElseIf(Stmt\ElseIf_ $node): string { - return 'elseif (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Else(Stmt\Else_ $node): string { - if (\count($node->stmts) === 1 && $node->stmts[0] instanceof Stmt\If_) { - // Print as "else if" rather than "else { if }" - return 'else ' . $this->p($node->stmts[0]); - } - return 'else {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_For(Stmt\For_ $node): string { - return 'for (' - . $this->pCommaSeparated($node->init) . ';' . (!empty($node->cond) ? ' ' : '') - . $this->pCommaSeparated($node->cond) . ';' . (!empty($node->loop) ? ' ' : '') - . $this->pCommaSeparated($node->loop) - . ') {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Foreach(Stmt\Foreach_ $node): string { - return 'foreach (' . $this->p($node->expr) . ' as ' - . (null !== $node->keyVar ? $this->p($node->keyVar) . ' => ' : '') - . ($node->byRef ? '&' : '') . $this->p($node->valueVar) . ') {' - . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_While(Stmt\While_ $node): string { - return 'while (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Do(Stmt\Do_ $node): string { - return 'do {' . $this->pStmts($node->stmts) . $this->nl - . '} while (' . $this->p($node->cond) . ');'; - } - - protected function pStmt_Switch(Stmt\Switch_ $node): string { - return 'switch (' . $this->p($node->cond) . ') {' - . $this->pStmts($node->cases) . $this->nl . '}'; - } - - protected function pStmt_Case(Stmt\Case_ $node): string { - return (null !== $node->cond ? 'case ' . $this->p($node->cond) : 'default') . ':' - . $this->pStmts($node->stmts); - } - - protected function pStmt_TryCatch(Stmt\TryCatch $node): string { - return 'try {' . $this->pStmts($node->stmts) . $this->nl . '}' - . ($node->catches ? ' ' . $this->pImplode($node->catches, ' ') : '') - . ($node->finally !== null ? ' ' . $this->p($node->finally) : ''); - } - - protected function pStmt_Catch(Stmt\Catch_ $node): string { - return 'catch (' . $this->pImplode($node->types, '|') - . ($node->var !== null ? ' ' . $this->p($node->var) : '') - . ') {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Finally(Stmt\Finally_ $node): string { - return 'finally {' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pStmt_Break(Stmt\Break_ $node): string { - return 'break' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; - } - - protected function pStmt_Continue(Stmt\Continue_ $node): string { - return 'continue' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; - } - - protected function pStmt_Return(Stmt\Return_ $node): string { - return 'return' . (null !== $node->expr ? ' ' . $this->p($node->expr) : '') . ';'; - } - - protected function pStmt_Label(Stmt\Label $node): string { - return $node->name . ':'; - } - - protected function pStmt_Goto(Stmt\Goto_ $node): string { - return 'goto ' . $node->name . ';'; - } - - // Other - - protected function pStmt_Expression(Stmt\Expression $node): string { - return $this->p($node->expr) . ';'; - } - - protected function pStmt_Echo(Stmt\Echo_ $node): string { - return 'echo ' . $this->pCommaSeparated($node->exprs) . ';'; - } - - protected function pStmt_Static(Stmt\Static_ $node): string { - return 'static ' . $this->pCommaSeparated($node->vars) . ';'; - } - - protected function pStmt_Global(Stmt\Global_ $node): string { - return 'global ' . $this->pCommaSeparated($node->vars) . ';'; - } - - protected function pStaticVar(Node\StaticVar $node): string { - return $this->p($node->var) - . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); - } - - protected function pStmt_Unset(Stmt\Unset_ $node): string { - return 'unset(' . $this->pCommaSeparated($node->vars) . ');'; - } - - protected function pStmt_InlineHTML(Stmt\InlineHTML $node): string { - $newline = $node->getAttribute('hasLeadingNewline', true) ? $this->newline : ''; - return '?>' . $newline . $node->value . 'remaining; - } - - protected function pStmt_Nop(Stmt\Nop $node): string { - return ''; - } - - protected function pStmt_Block(Stmt\Block $node): string { - return '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - // Helpers - - protected function pClassCommon(Stmt\Class_ $node, string $afterClassToken): string { - return $this->pAttrGroups($node->attrGroups, $node->name === null) - . $this->pModifiers($node->flags) - . 'class' . $afterClassToken - . (null !== $node->extends ? ' extends ' . $this->p($node->extends) : '') - . (!empty($node->implements) ? ' implements ' . $this->pCommaSeparated($node->implements) : '') - . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; - } - - protected function pObjectProperty(Node $node): string { - if ($node instanceof Expr) { - return '{' . $this->p($node) . '}'; - } else { - assert($node instanceof Node\Identifier); - return $node->name; - } - } - - /** @param (Expr|Node\InterpolatedStringPart)[] $encapsList */ - protected function pEncapsList(array $encapsList, ?string $quote): string { - $return = ''; - foreach ($encapsList as $element) { - if ($element instanceof Node\InterpolatedStringPart) { - $return .= $this->escapeString($element->value, $quote); - } else { - $return .= '{' . $this->p($element) . '}'; - } - } - - return $return; - } - - protected function pSingleQuotedString(string $string): string { - // It is idiomatic to only escape backslashes when necessary, i.e. when followed by ', \ or - // the end of the string ('Foo\Bar' instead of 'Foo\\Bar'). However, we also don't want to - // produce an odd number of backslashes, so '\\\\a' should not get rendered as '\\\a', even - // though that would be legal. - $regex = '/\'|\\\\(?=[\'\\\\]|$)|(?<=\\\\)\\\\/'; - return '\'' . preg_replace($regex, '\\\\$0', $string) . '\''; - } - - protected function escapeString(string $string, ?string $quote): string { - if (null === $quote) { - // For doc strings, don't escape newlines - $escaped = addcslashes($string, "\t\f\v$\\"); - // But do escape isolated \r. Combined with the terminating newline, it might get - // interpreted as \r\n and dropped from the string contents. - $escaped = preg_replace('/\r(?!\n)/', '\\r', $escaped); - if ($this->phpVersion->supportsFlexibleHeredoc()) { - $escaped = $this->indentString($escaped); - } - } else { - $escaped = addcslashes($string, "\n\r\t\f\v$" . $quote . "\\"); - } - - // Escape control characters and non-UTF-8 characters. - // Regex based on https://stackoverflow.com/a/11709412/385378. - $regex = '/( - [\x00-\x08\x0E-\x1F] # Control characters - | [\xC0-\xC1] # Invalid UTF-8 Bytes - | [\xF5-\xFF] # Invalid UTF-8 Bytes - | \xE0(?=[\x80-\x9F]) # Overlong encoding of prior code point - | \xF0(?=[\x80-\x8F]) # Overlong encoding of prior code point - | [\xC2-\xDF](?![\x80-\xBF]) # Invalid UTF-8 Sequence Start - | [\xE0-\xEF](?![\x80-\xBF]{2}) # Invalid UTF-8 Sequence Start - | [\xF0-\xF4](?![\x80-\xBF]{3}) # Invalid UTF-8 Sequence Start - | (?<=[\x00-\x7F\xF5-\xFF])[\x80-\xBF] # Invalid UTF-8 Sequence Middle - | (? $part) { - if ($part instanceof Node\InterpolatedStringPart - && $this->containsEndLabel($this->escapeString($part->value, null), $label, $i === 0) - ) { - return true; - } - } - return false; - } - - protected function pDereferenceLhs(Node $node): string { - if (!$this->dereferenceLhsRequiresParens($node)) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - protected function pStaticDereferenceLhs(Node $node): string { - if (!$this->staticDereferenceLhsRequiresParens($node)) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - protected function pCallLhs(Node $node): string { - if (!$this->callLhsRequiresParens($node)) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - protected function pNewOperand(Node $node): string { - if (!$this->newOperandRequiresParens($node)) { - return $this->p($node); - } else { - return '(' . $this->p($node) . ')'; - } - } - - /** - * @param Node[] $nodes - */ - protected function hasNodeWithComments(array $nodes): bool { - foreach ($nodes as $node) { - if ($node && $node->getComments()) { - return true; - } - } - return false; - } - - /** @param Node[] $nodes */ - protected function pMaybeMultiline(array $nodes, bool $trailingComma = false): string { - if (!$this->hasNodeWithComments($nodes)) { - return $this->pCommaSeparated($nodes); - } else { - return $this->pCommaSeparatedMultiline($nodes, $trailingComma) . $this->nl; - } - } - - /** @param Node\AttributeGroup[] $nodes */ - protected function pAttrGroups(array $nodes, bool $inline = false): string { - $result = ''; - $sep = $inline ? ' ' : $this->nl; - foreach ($nodes as $node) { - $result .= $this->p($node) . $sep; - } - - return $result; - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php deleted file mode 100644 index 8303c42..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ /dev/null @@ -1,1655 +0,0 @@ - */ - protected array $precedenceMap = [ - // [precedence, precedenceLHS, precedenceRHS] - // Where the latter two are the precedences to use for the LHS and RHS of a binary operator, - // where 1 is added to one of the sides depending on associativity. This information is not - // used for unary operators and set to -1. - Expr\Clone_::class => [-10, 0, 1], - BinaryOp\Pow::class => [ 0, 0, 1], - Expr\BitwiseNot::class => [ 10, -1, -1], - Expr\UnaryPlus::class => [ 10, -1, -1], - Expr\UnaryMinus::class => [ 10, -1, -1], - Cast\Int_::class => [ 10, -1, -1], - Cast\Double::class => [ 10, -1, -1], - Cast\String_::class => [ 10, -1, -1], - Cast\Array_::class => [ 10, -1, -1], - Cast\Object_::class => [ 10, -1, -1], - Cast\Bool_::class => [ 10, -1, -1], - Cast\Unset_::class => [ 10, -1, -1], - Expr\ErrorSuppress::class => [ 10, -1, -1], - Expr\Instanceof_::class => [ 20, -1, -1], - Expr\BooleanNot::class => [ 30, -1, -1], - BinaryOp\Mul::class => [ 40, 41, 40], - BinaryOp\Div::class => [ 40, 41, 40], - BinaryOp\Mod::class => [ 40, 41, 40], - BinaryOp\Plus::class => [ 50, 51, 50], - BinaryOp\Minus::class => [ 50, 51, 50], - BinaryOp\Concat::class => [ 50, 51, 50], - BinaryOp\ShiftLeft::class => [ 60, 61, 60], - BinaryOp\ShiftRight::class => [ 60, 61, 60], - BinaryOp\Smaller::class => [ 70, 70, 70], - BinaryOp\SmallerOrEqual::class => [ 70, 70, 70], - BinaryOp\Greater::class => [ 70, 70, 70], - BinaryOp\GreaterOrEqual::class => [ 70, 70, 70], - BinaryOp\Equal::class => [ 80, 80, 80], - BinaryOp\NotEqual::class => [ 80, 80, 80], - BinaryOp\Identical::class => [ 80, 80, 80], - BinaryOp\NotIdentical::class => [ 80, 80, 80], - BinaryOp\Spaceship::class => [ 80, 80, 80], - BinaryOp\BitwiseAnd::class => [ 90, 91, 90], - BinaryOp\BitwiseXor::class => [100, 101, 100], - BinaryOp\BitwiseOr::class => [110, 111, 110], - BinaryOp\BooleanAnd::class => [120, 121, 120], - BinaryOp\BooleanOr::class => [130, 131, 130], - BinaryOp\Coalesce::class => [140, 140, 141], - Expr\Ternary::class => [150, -1, -1], - Expr\Assign::class => [160, -1, -1], - Expr\AssignRef::class => [160, -1, -1], - AssignOp\Plus::class => [160, -1, -1], - AssignOp\Minus::class => [160, -1, -1], - AssignOp\Mul::class => [160, -1, -1], - AssignOp\Div::class => [160, -1, -1], - AssignOp\Concat::class => [160, -1, -1], - AssignOp\Mod::class => [160, -1, -1], - AssignOp\BitwiseAnd::class => [160, -1, -1], - AssignOp\BitwiseOr::class => [160, -1, -1], - AssignOp\BitwiseXor::class => [160, -1, -1], - AssignOp\ShiftLeft::class => [160, -1, -1], - AssignOp\ShiftRight::class => [160, -1, -1], - AssignOp\Pow::class => [160, -1, -1], - AssignOp\Coalesce::class => [160, -1, -1], - Expr\YieldFrom::class => [170, -1, -1], - Expr\Yield_::class => [175, -1, -1], - Expr\Print_::class => [180, -1, -1], - BinaryOp\LogicalAnd::class => [190, 191, 190], - BinaryOp\LogicalXor::class => [200, 201, 200], - BinaryOp\LogicalOr::class => [210, 211, 210], - Expr\Include_::class => [220, -1, -1], - Expr\ArrowFunction::class => [230, -1, -1], - Expr\Throw_::class => [240, -1, -1], - ]; - - /** @var int Current indentation level. */ - protected int $indentLevel; - /** @var string Newline style. Does not include current indentation. */ - protected string $newline; - /** @var string Newline including current indentation. */ - protected string $nl; - /** @var string|null Token placed at end of doc string to ensure it is followed by a newline. - * Null if flexible doc strings are used. */ - protected ?string $docStringEndToken; - /** @var bool Whether semicolon namespaces can be used (i.e. no global namespace is used) */ - protected bool $canUseSemicolonNamespaces; - /** @var bool Whether to use short array syntax if the node specifies no preference */ - protected bool $shortArraySyntax; - /** @var PhpVersion PHP version to target */ - protected PhpVersion $phpVersion; - - /** @var TokenStream|null Original tokens for use in format-preserving pretty print */ - protected ?TokenStream $origTokens; - /** @var Internal\Differ Differ for node lists */ - protected Differ $nodeListDiffer; - /** @var array Map determining whether a certain character is a label character */ - protected array $labelCharMap; - /** - * @var array> Map from token classes and subnode names to FIXUP_* constants. - * This is used during format-preserving prints to place additional parens/braces if necessary. - */ - protected array $fixupMap; - /** - * @var array Map from "{$node->getType()}->{$subNode}" - * to ['left' => $l, 'right' => $r], where $l and $r specify the token type that needs to be stripped - * when removing this node. - */ - protected array $removalMap; - /** - * @var array Map from - * "{$node->getType()}->{$subNode}" to [$find, $beforeToken, $extraLeft, $extraRight]. - * $find is an optional token after which the insertion occurs. $extraLeft/Right - * are optionally added before/after the main insertions. - */ - protected array $insertionMap; - /** - * @var array Map From "{$class}->{$subNode}" to string that should be inserted - * between elements of this list subnode. - */ - protected array $listInsertionMap; - - /** - * @var array - */ - protected array $emptyListInsertionMap; - /** @var array Map from "{$class}->{$subNode}" to [$printFn, $token] - * where $printFn is the function to print the modifiers and $token is the token before which - * the modifiers should be reprinted. */ - protected array $modifierChangeMap; - - /** - * Creates a pretty printer instance using the given options. - * - * Supported options: - * * PhpVersion $phpVersion: The PHP version to target (default to PHP 7.4). This option - * controls compatibility of the generated code with older PHP - * versions in cases where a simple stylistic choice exists (e.g. - * array() vs []). It is safe to pretty-print an AST for a newer - * PHP version while specifying an older target (but the result will - * of course not be compatible with the older version in that case). - * * string $newline: The newline style to use. Should be "\n" (default) or "\r\n". - * * bool $shortArraySyntax: Whether to use [] instead of array() as the default array - * syntax, if the node does not specify a format. Defaults to whether - * the phpVersion support short array syntax. - * - * @param array{ - * phpVersion?: PhpVersion, newline?: string, shortArraySyntax?: bool - * } $options Dictionary of formatting options - */ - public function __construct(array $options = []) { - $this->phpVersion = $options['phpVersion'] ?? PhpVersion::fromComponents(7, 4); - - $this->newline = $options['newline'] ?? "\n"; - if ($this->newline !== "\n" && $this->newline != "\r\n") { - throw new \LogicException('Option "newline" must be one of "\n" or "\r\n"'); - } - - $this->shortArraySyntax = - $options['shortArraySyntax'] ?? $this->phpVersion->supportsShortArraySyntax(); - $this->docStringEndToken = - $this->phpVersion->supportsFlexibleHeredoc() ? null : '_DOC_STRING_END_' . mt_rand(); - } - - /** - * Reset pretty printing state. - */ - protected function resetState(): void { - $this->indentLevel = 0; - $this->nl = $this->newline; - $this->origTokens = null; - } - - /** - * Set indentation level - * - * @param int $level Level in number of spaces - */ - protected function setIndentLevel(int $level): void { - $this->indentLevel = $level; - $this->nl = $this->newline . \str_repeat(' ', $level); - } - - /** - * Increase indentation level. - */ - protected function indent(): void { - $this->indentLevel += 4; - $this->nl .= ' '; - } - - /** - * Decrease indentation level. - */ - protected function outdent(): void { - assert($this->indentLevel >= 4); - $this->indentLevel -= 4; - $this->nl = $this->newline . str_repeat(' ', $this->indentLevel); - } - - /** - * Pretty prints an array of statements. - * - * @param Node[] $stmts Array of statements - * - * @return string Pretty printed statements - */ - public function prettyPrint(array $stmts): string { - $this->resetState(); - $this->preprocessNodes($stmts); - - return ltrim($this->handleMagicTokens($this->pStmts($stmts, false))); - } - - /** - * Pretty prints an expression. - * - * @param Expr $node Expression node - * - * @return string Pretty printed node - */ - public function prettyPrintExpr(Expr $node): string { - $this->resetState(); - return $this->handleMagicTokens($this->p($node)); - } - - /** - * Pretty prints a file of statements (includes the opening newline . $this->newline; - } - - $p = "newline . $this->newline . $this->prettyPrint($stmts); - - if ($stmts[0] instanceof Stmt\InlineHTML) { - $p = preg_replace('/^<\?php\s+\?>\r?\n?/', '', $p); - } - if ($stmts[count($stmts) - 1] instanceof Stmt\InlineHTML) { - $p = preg_replace('/<\?php$/', '', rtrim($p)); - } - - return $p; - } - - /** - * Preprocesses the top-level nodes to initialize pretty printer state. - * - * @param Node[] $nodes Array of nodes - */ - protected function preprocessNodes(array $nodes): void { - /* We can use semicolon-namespaces unless there is a global namespace declaration */ - $this->canUseSemicolonNamespaces = true; - foreach ($nodes as $node) { - if ($node instanceof Stmt\Namespace_ && null === $node->name) { - $this->canUseSemicolonNamespaces = false; - break; - } - } - } - - /** - * Handles (and removes) doc-string-end tokens. - */ - protected function handleMagicTokens(string $str): string { - if ($this->docStringEndToken !== null) { - // Replace doc-string-end tokens with nothing or a newline - $str = str_replace( - $this->docStringEndToken . ';' . $this->newline, - ';' . $this->newline, - $str); - $str = str_replace($this->docStringEndToken, $this->newline, $str); - } - - return $str; - } - - /** - * Pretty prints an array of nodes (statements) and indents them optionally. - * - * @param Node[] $nodes Array of nodes - * @param bool $indent Whether to indent the printed nodes - * - * @return string Pretty printed statements - */ - protected function pStmts(array $nodes, bool $indent = true): string { - if ($indent) { - $this->indent(); - } - - $result = ''; - foreach ($nodes as $node) { - $comments = $node->getComments(); - if ($comments) { - $result .= $this->nl . $this->pComments($comments); - if ($node instanceof Stmt\Nop) { - continue; - } - } - - $result .= $this->nl . $this->p($node); - } - - if ($indent) { - $this->outdent(); - } - - return $result; - } - - /** - * Pretty-print an infix operation while taking precedence into account. - * - * @param string $class Node class of operator - * @param Node $leftNode Left-hand side node - * @param string $operatorString String representation of the operator - * @param Node $rightNode Right-hand side node - * @param int $precedence Precedence of parent operator - * @param int $lhsPrecedence Precedence for unary operator on LHS of binary operator - * - * @return string Pretty printed infix operation - */ - protected function pInfixOp( - string $class, Node $leftNode, string $operatorString, Node $rightNode, - int $precedence, int $lhsPrecedence - ): string { - list($opPrecedence, $newPrecedenceLHS, $newPrecedenceRHS) = $this->precedenceMap[$class]; - $prefix = ''; - $suffix = ''; - if ($opPrecedence >= $precedence) { - $prefix = '('; - $suffix = ')'; - $lhsPrecedence = self::MAX_PRECEDENCE; - } - return $prefix . $this->p($leftNode, $newPrecedenceLHS, $newPrecedenceLHS) - . $operatorString . $this->p($rightNode, $newPrecedenceRHS, $lhsPrecedence) . $suffix; - } - - /** - * Pretty-print a prefix operation while taking precedence into account. - * - * @param string $class Node class of operator - * @param string $operatorString String representation of the operator - * @param Node $node Node - * @param int $precedence Precedence of parent operator - * @param int $lhsPrecedence Precedence for unary operator on LHS of binary operator - * - * @return string Pretty printed prefix operation - */ - protected function pPrefixOp(string $class, string $operatorString, Node $node, int $precedence, int $lhsPrecedence): string { - $opPrecedence = $this->precedenceMap[$class][0]; - $prefix = ''; - $suffix = ''; - if ($opPrecedence >= $lhsPrecedence) { - $prefix = '('; - $suffix = ')'; - $lhsPrecedence = self::MAX_PRECEDENCE; - } - $printedArg = $this->p($node, $opPrecedence, $lhsPrecedence); - if (($operatorString === '+' && $printedArg[0] === '+') || - ($operatorString === '-' && $printedArg[0] === '-') - ) { - // Avoid printing +(+$a) as ++$a and similar. - $printedArg = '(' . $printedArg . ')'; - } - return $prefix . $operatorString . $printedArg . $suffix; - } - - /** - * Pretty-print a postfix operation while taking precedence into account. - * - * @param string $class Node class of operator - * @param string $operatorString String representation of the operator - * @param Node $node Node - * @param int $precedence Precedence of parent operator - * @param int $lhsPrecedence Precedence for unary operator on LHS of binary operator - * - * @return string Pretty printed postfix operation - */ - protected function pPostfixOp(string $class, Node $node, string $operatorString, int $precedence, int $lhsPrecedence): string { - $opPrecedence = $this->precedenceMap[$class][0]; - $prefix = ''; - $suffix = ''; - if ($opPrecedence >= $precedence) { - $prefix = '('; - $suffix = ')'; - $lhsPrecedence = self::MAX_PRECEDENCE; - } - if ($opPrecedence < $lhsPrecedence) { - $lhsPrecedence = $opPrecedence; - } - return $prefix . $this->p($node, $opPrecedence, $lhsPrecedence) . $operatorString . $suffix; - } - - /** - * Pretty prints an array of nodes and implodes the printed values. - * - * @param Node[] $nodes Array of Nodes to be printed - * @param string $glue Character to implode with - * - * @return string Imploded pretty printed nodes> $pre - */ - protected function pImplode(array $nodes, string $glue = ''): string { - $pNodes = []; - foreach ($nodes as $node) { - if (null === $node) { - $pNodes[] = ''; - } else { - $pNodes[] = $this->p($node); - } - } - - return implode($glue, $pNodes); - } - - /** - * Pretty prints an array of nodes and implodes the printed values with commas. - * - * @param Node[] $nodes Array of Nodes to be printed - * - * @return string Comma separated pretty printed nodes - */ - protected function pCommaSeparated(array $nodes): string { - return $this->pImplode($nodes, ', '); - } - - /** - * Pretty prints a comma-separated list of nodes in multiline style, including comments. - * - * The result includes a leading newline and one level of indentation (same as pStmts). - * - * @param Node[] $nodes Array of Nodes to be printed - * @param bool $trailingComma Whether to use a trailing comma - * - * @return string Comma separated pretty printed nodes in multiline style - */ - protected function pCommaSeparatedMultiline(array $nodes, bool $trailingComma): string { - $this->indent(); - - $result = ''; - $lastIdx = count($nodes) - 1; - foreach ($nodes as $idx => $node) { - if ($node !== null) { - $comments = $node->getComments(); - if ($comments) { - $result .= $this->nl . $this->pComments($comments); - } - - $result .= $this->nl . $this->p($node); - } else { - $result .= $this->nl; - } - if ($trailingComma || $idx !== $lastIdx) { - $result .= ','; - } - } - - $this->outdent(); - return $result; - } - - /** - * Prints reformatted text of the passed comments. - * - * @param Comment[] $comments List of comments - * - * @return string Reformatted text of comments - */ - protected function pComments(array $comments): string { - $formattedComments = []; - - foreach ($comments as $comment) { - $formattedComments[] = str_replace("\n", $this->nl, $comment->getReformattedText()); - } - - return implode($this->nl, $formattedComments); - } - - /** - * Perform a format-preserving pretty print of an AST. - * - * The format preservation is best effort. For some changes to the AST the formatting will not - * be preserved (at least not locally). - * - * In order to use this method a number of prerequisites must be satisfied: - * * The startTokenPos and endTokenPos attributes in the lexer must be enabled. - * * The CloningVisitor must be run on the AST prior to modification. - * * The original tokens must be provided, using the getTokens() method on the lexer. - * - * @param Node[] $stmts Modified AST with links to original AST - * @param Node[] $origStmts Original AST with token offset information - * @param Token[] $origTokens Tokens of the original code - */ - public function printFormatPreserving(array $stmts, array $origStmts, array $origTokens): string { - $this->initializeNodeListDiffer(); - $this->initializeLabelCharMap(); - $this->initializeFixupMap(); - $this->initializeRemovalMap(); - $this->initializeInsertionMap(); - $this->initializeListInsertionMap(); - $this->initializeEmptyListInsertionMap(); - $this->initializeModifierChangeMap(); - - $this->resetState(); - $this->origTokens = new TokenStream($origTokens); - - $this->preprocessNodes($stmts); - - $pos = 0; - $result = $this->pArray($stmts, $origStmts, $pos, 0, 'File', 'stmts', null); - if (null !== $result) { - $result .= $this->origTokens->getTokenCode($pos, count($origTokens) - 1, 0); - } else { - // Fallback - // TODO Add newline . $this->pStmts($stmts, false); - } - - return $this->handleMagicTokens($result); - } - - protected function pFallback(Node $node, int $precedence, int $lhsPrecedence): string { - return $this->{'p' . $node->getType()}($node, $precedence, $lhsPrecedence); - } - - /** - * Pretty prints a node. - * - * This method also handles formatting preservation for nodes. - * - * @param Node $node Node to be pretty printed - * @param int $precedence Precedence of parent operator - * @param int $lhsPrecedence Precedence for unary operator on LHS of binary operator - * @param bool $parentFormatPreserved Whether parent node has preserved formatting - * - * @return string Pretty printed node - */ - protected function p( - Node $node, int $precedence = self::MAX_PRECEDENCE, int $lhsPrecedence = self::MAX_PRECEDENCE, - bool $parentFormatPreserved = false - ): string { - // No orig tokens means this is a normal pretty print without preservation of formatting - if (!$this->origTokens) { - return $this->{'p' . $node->getType()}($node, $precedence, $lhsPrecedence); - } - - /** @var Node|null $origNode */ - $origNode = $node->getAttribute('origNode'); - if (null === $origNode) { - return $this->pFallback($node, $precedence, $lhsPrecedence); - } - - $class = \get_class($node); - \assert($class === \get_class($origNode)); - - $startPos = $origNode->getStartTokenPos(); - $endPos = $origNode->getEndTokenPos(); - \assert($startPos >= 0 && $endPos >= 0); - - $fallbackNode = $node; - if ($node instanceof Expr\New_ && $node->class instanceof Stmt\Class_) { - // Normalize node structure of anonymous classes - assert($origNode instanceof Expr\New_); - $node = PrintableNewAnonClassNode::fromNewNode($node); - $origNode = PrintableNewAnonClassNode::fromNewNode($origNode); - $class = PrintableNewAnonClassNode::class; - } - - // InlineHTML node does not contain closing and opening PHP tags. If the parent formatting - // is not preserved, then we need to use the fallback code to make sure the tags are - // printed. - if ($node instanceof Stmt\InlineHTML && !$parentFormatPreserved) { - return $this->pFallback($fallbackNode, $precedence, $lhsPrecedence); - } - - $indentAdjustment = $this->indentLevel - $this->origTokens->getIndentationBefore($startPos); - - $type = $node->getType(); - $fixupInfo = $this->fixupMap[$class] ?? null; - - $result = ''; - $pos = $startPos; - foreach ($node->getSubNodeNames() as $subNodeName) { - $subNode = $node->$subNodeName; - $origSubNode = $origNode->$subNodeName; - - if ((!$subNode instanceof Node && $subNode !== null) - || (!$origSubNode instanceof Node && $origSubNode !== null) - ) { - if ($subNode === $origSubNode) { - // Unchanged, can reuse old code - continue; - } - - if (is_array($subNode) && is_array($origSubNode)) { - // Array subnode changed, we might be able to reconstruct it - $listResult = $this->pArray( - $subNode, $origSubNode, $pos, $indentAdjustment, $class, $subNodeName, - $fixupInfo[$subNodeName] ?? null - ); - if (null === $listResult) { - return $this->pFallback($fallbackNode, $precedence, $lhsPrecedence); - } - - $result .= $listResult; - continue; - } - - // Check if this is a modifier change - $key = $class . '->' . $subNodeName; - if (!isset($this->modifierChangeMap[$key])) { - return $this->pFallback($fallbackNode, $precedence, $lhsPrecedence); - } - - [$printFn, $findToken] = $this->modifierChangeMap[$key]; - $result .= $this->$printFn($subNode); - $pos = $this->origTokens->findRight($pos, $findToken); - continue; - } - - $extraLeft = ''; - $extraRight = ''; - if ($origSubNode !== null) { - $subStartPos = $origSubNode->getStartTokenPos(); - $subEndPos = $origSubNode->getEndTokenPos(); - \assert($subStartPos >= 0 && $subEndPos >= 0); - } else { - if ($subNode === null) { - // Both null, nothing to do - continue; - } - - // A node has been inserted, check if we have insertion information for it - $key = $type . '->' . $subNodeName; - if (!isset($this->insertionMap[$key])) { - return $this->pFallback($fallbackNode, $precedence, $lhsPrecedence); - } - - list($findToken, $beforeToken, $extraLeft, $extraRight) = $this->insertionMap[$key]; - if (null !== $findToken) { - $subStartPos = $this->origTokens->findRight($pos, $findToken) - + (int) !$beforeToken; - } else { - $subStartPos = $pos; - } - - if (null === $extraLeft && null !== $extraRight) { - // If inserting on the right only, skipping whitespace looks better - $subStartPos = $this->origTokens->skipRightWhitespace($subStartPos); - } - $subEndPos = $subStartPos - 1; - } - - if (null === $subNode) { - // A node has been removed, check if we have removal information for it - $key = $type . '->' . $subNodeName; - if (!isset($this->removalMap[$key])) { - return $this->pFallback($fallbackNode, $precedence, $lhsPrecedence); - } - - // Adjust positions to account for additional tokens that must be skipped - $removalInfo = $this->removalMap[$key]; - if (isset($removalInfo['left'])) { - $subStartPos = $this->origTokens->skipLeft($subStartPos - 1, $removalInfo['left']) + 1; - } - if (isset($removalInfo['right'])) { - $subEndPos = $this->origTokens->skipRight($subEndPos + 1, $removalInfo['right']) - 1; - } - } - - $result .= $this->origTokens->getTokenCode($pos, $subStartPos, $indentAdjustment); - - if (null !== $subNode) { - $result .= $extraLeft; - - $origIndentLevel = $this->indentLevel; - $this->setIndentLevel($this->origTokens->getIndentationBefore($subStartPos) + $indentAdjustment); - - // If it's the same node that was previously in this position, it certainly doesn't - // need fixup. It's important to check this here, because our fixup checks are more - // conservative than strictly necessary. - if (isset($fixupInfo[$subNodeName]) - && $subNode->getAttribute('origNode') !== $origSubNode - ) { - $fixup = $fixupInfo[$subNodeName]; - $res = $this->pFixup($fixup, $subNode, $class, $subStartPos, $subEndPos); - } else { - $res = $this->p($subNode, self::MAX_PRECEDENCE, self::MAX_PRECEDENCE, true); - } - - $this->safeAppend($result, $res); - $this->setIndentLevel($origIndentLevel); - - $result .= $extraRight; - } - - $pos = $subEndPos + 1; - } - - $result .= $this->origTokens->getTokenCode($pos, $endPos + 1, $indentAdjustment); - return $result; - } - - /** - * Perform a format-preserving pretty print of an array. - * - * @param Node[] $nodes New nodes - * @param Node[] $origNodes Original nodes - * @param int $pos Current token position (updated by reference) - * @param int $indentAdjustment Adjustment for indentation - * @param string $parentNodeClass Class of the containing node. - * @param string $subNodeName Name of array subnode. - * @param null|int $fixup Fixup information for array item nodes - * - * @return null|string Result of pretty print or null if cannot preserve formatting - */ - protected function pArray( - array $nodes, array $origNodes, int &$pos, int $indentAdjustment, - string $parentNodeClass, string $subNodeName, ?int $fixup - ): ?string { - $diff = $this->nodeListDiffer->diffWithReplacements($origNodes, $nodes); - - $mapKey = $parentNodeClass . '->' . $subNodeName; - $insertStr = $this->listInsertionMap[$mapKey] ?? null; - $isStmtList = $subNodeName === 'stmts'; - - $beforeFirstKeepOrReplace = true; - $skipRemovedNode = false; - $delayedAdd = []; - $lastElemIndentLevel = $this->indentLevel; - - $insertNewline = false; - if ($insertStr === "\n") { - $insertStr = ''; - $insertNewline = true; - } - - if ($isStmtList && \count($origNodes) === 1 && \count($nodes) !== 1) { - $startPos = $origNodes[0]->getStartTokenPos(); - $endPos = $origNodes[0]->getEndTokenPos(); - \assert($startPos >= 0 && $endPos >= 0); - if (!$this->origTokens->haveBraces($startPos, $endPos)) { - // This was a single statement without braces, but either additional statements - // have been added, or the single statement has been removed. This requires the - // addition of braces. For now fall back. - // TODO: Try to preserve formatting - return null; - } - } - - $result = ''; - foreach ($diff as $i => $diffElem) { - $diffType = $diffElem->type; - /** @var Node|string|null $arrItem */ - $arrItem = $diffElem->new; - /** @var Node|string|null $origArrItem */ - $origArrItem = $diffElem->old; - - if ($diffType === DiffElem::TYPE_KEEP || $diffType === DiffElem::TYPE_REPLACE) { - $beforeFirstKeepOrReplace = false; - - if ($origArrItem === null || $arrItem === null) { - // We can only handle the case where both are null - if ($origArrItem === $arrItem) { - continue; - } - return null; - } - - if (!$arrItem instanceof Node || !$origArrItem instanceof Node) { - // We can only deal with nodes. This can occur for Names, which use string arrays. - return null; - } - - $itemStartPos = $origArrItem->getStartTokenPos(); - $itemEndPos = $origArrItem->getEndTokenPos(); - \assert($itemStartPos >= 0 && $itemEndPos >= 0 && $itemStartPos >= $pos); - - $origIndentLevel = $this->indentLevel; - $lastElemIndentLevel = $this->origTokens->getIndentationBefore($itemStartPos) + $indentAdjustment; - $this->setIndentLevel($lastElemIndentLevel); - - $comments = $arrItem->getComments(); - $origComments = $origArrItem->getComments(); - $commentStartPos = $origComments ? $origComments[0]->getStartTokenPos() : $itemStartPos; - \assert($commentStartPos >= 0); - - if ($commentStartPos < $pos) { - // Comments may be assigned to multiple nodes if they start at the same position. - // Make sure we don't try to print them multiple times. - $commentStartPos = $itemStartPos; - } - - if ($skipRemovedNode) { - if ($isStmtList && $this->origTokens->haveTagInRange($pos, $itemStartPos)) { - // We'd remove an opening/closing PHP tag. - // TODO: Preserve formatting. - $this->setIndentLevel($origIndentLevel); - return null; - } - } else { - $result .= $this->origTokens->getTokenCode( - $pos, $commentStartPos, $indentAdjustment); - } - - if (!empty($delayedAdd)) { - /** @var Node $delayedAddNode */ - foreach ($delayedAdd as $delayedAddNode) { - if ($insertNewline) { - $delayedAddComments = $delayedAddNode->getComments(); - if ($delayedAddComments) { - $result .= $this->pComments($delayedAddComments) . $this->nl; - } - } - - $this->safeAppend($result, $this->p($delayedAddNode, self::MAX_PRECEDENCE, self::MAX_PRECEDENCE, true)); - - if ($insertNewline) { - $result .= $insertStr . $this->nl; - } else { - $result .= $insertStr; - } - } - - $delayedAdd = []; - } - - if ($comments !== $origComments) { - if ($comments) { - $result .= $this->pComments($comments) . $this->nl; - } - } else { - $result .= $this->origTokens->getTokenCode( - $commentStartPos, $itemStartPos, $indentAdjustment); - } - - // If we had to remove anything, we have done so now. - $skipRemovedNode = false; - } elseif ($diffType === DiffElem::TYPE_ADD) { - if (null === $insertStr) { - // We don't have insertion information for this list type - return null; - } - - if (!$arrItem instanceof Node) { - // We only support list insertion of nodes. - return null; - } - - // We go multiline if the original code was multiline, - // or if it's an array item with a comment above it. - // Match always uses multiline formatting. - if ($insertStr === ', ' && - ($this->isMultiline($origNodes) || $arrItem->getComments() || - $parentNodeClass === Expr\Match_::class) - ) { - $insertStr = ','; - $insertNewline = true; - } - - if ($beforeFirstKeepOrReplace) { - // Will be inserted at the next "replace" or "keep" element - $delayedAdd[] = $arrItem; - continue; - } - - $itemStartPos = $pos; - $itemEndPos = $pos - 1; - - $origIndentLevel = $this->indentLevel; - $this->setIndentLevel($lastElemIndentLevel); - - if ($insertNewline) { - $result .= $insertStr . $this->nl; - $comments = $arrItem->getComments(); - if ($comments) { - $result .= $this->pComments($comments) . $this->nl; - } - } else { - $result .= $insertStr; - } - } elseif ($diffType === DiffElem::TYPE_REMOVE) { - if (!$origArrItem instanceof Node) { - // We only support removal for nodes - return null; - } - - $itemStartPos = $origArrItem->getStartTokenPos(); - $itemEndPos = $origArrItem->getEndTokenPos(); - \assert($itemStartPos >= 0 && $itemEndPos >= 0); - - // Consider comments part of the node. - $origComments = $origArrItem->getComments(); - if ($origComments) { - $itemStartPos = $origComments[0]->getStartTokenPos(); - } - - if ($i === 0) { - // If we're removing from the start, keep the tokens before the node and drop those after it, - // instead of the other way around. - $result .= $this->origTokens->getTokenCode( - $pos, $itemStartPos, $indentAdjustment); - $skipRemovedNode = true; - } else { - if ($isStmtList && $this->origTokens->haveTagInRange($pos, $itemStartPos)) { - // We'd remove an opening/closing PHP tag. - // TODO: Preserve formatting. - return null; - } - } - - $pos = $itemEndPos + 1; - continue; - } else { - throw new \Exception("Shouldn't happen"); - } - - if (null !== $fixup && $arrItem->getAttribute('origNode') !== $origArrItem) { - $res = $this->pFixup($fixup, $arrItem, null, $itemStartPos, $itemEndPos); - } else { - $res = $this->p($arrItem, self::MAX_PRECEDENCE, self::MAX_PRECEDENCE, true); - } - $this->safeAppend($result, $res); - - $this->setIndentLevel($origIndentLevel); - $pos = $itemEndPos + 1; - } - - if ($skipRemovedNode) { - // TODO: Support removing single node. - return null; - } - - if (!empty($delayedAdd)) { - if (!isset($this->emptyListInsertionMap[$mapKey])) { - return null; - } - - list($findToken, $extraLeft, $extraRight) = $this->emptyListInsertionMap[$mapKey]; - if (null !== $findToken) { - $insertPos = $this->origTokens->findRight($pos, $findToken) + 1; - $result .= $this->origTokens->getTokenCode($pos, $insertPos, $indentAdjustment); - $pos = $insertPos; - } - - $first = true; - $result .= $extraLeft; - foreach ($delayedAdd as $delayedAddNode) { - if (!$first) { - $result .= $insertStr; - if ($insertNewline) { - $result .= $this->nl; - } - } - $result .= $this->p($delayedAddNode, self::MAX_PRECEDENCE, self::MAX_PRECEDENCE, true); - $first = false; - } - $result .= $extraRight === "\n" ? $this->nl : $extraRight; - } - - return $result; - } - - /** - * Print node with fixups. - * - * Fixups here refer to the addition of extra parentheses, braces or other characters, that - * are required to preserve program semantics in a certain context (e.g. to maintain precedence - * or because only certain expressions are allowed in certain places). - * - * @param int $fixup Fixup type - * @param Node $subNode Subnode to print - * @param string|null $parentClass Class of parent node - * @param int $subStartPos Original start pos of subnode - * @param int $subEndPos Original end pos of subnode - * - * @return string Result of fixed-up print of subnode - */ - protected function pFixup(int $fixup, Node $subNode, ?string $parentClass, int $subStartPos, int $subEndPos): string { - switch ($fixup) { - case self::FIXUP_PREC_LEFT: - // We use a conservative approximation where lhsPrecedence == precedence. - if (!$this->origTokens->haveParens($subStartPos, $subEndPos)) { - $precedence = $this->precedenceMap[$parentClass][1]; - return $this->p($subNode, $precedence, $precedence); - } - break; - case self::FIXUP_PREC_RIGHT: - if (!$this->origTokens->haveParens($subStartPos, $subEndPos)) { - $precedence = $this->precedenceMap[$parentClass][2]; - return $this->p($subNode, $precedence, $precedence); - } - break; - case self::FIXUP_PREC_UNARY: - if (!$this->origTokens->haveParens($subStartPos, $subEndPos)) { - $precedence = $this->precedenceMap[$parentClass][0]; - return $this->p($subNode, $precedence, $precedence); - } - break; - case self::FIXUP_CALL_LHS: - if ($this->callLhsRequiresParens($subNode) - && !$this->origTokens->haveParens($subStartPos, $subEndPos) - ) { - return '(' . $this->p($subNode) . ')'; - } - break; - case self::FIXUP_DEREF_LHS: - if ($this->dereferenceLhsRequiresParens($subNode) - && !$this->origTokens->haveParens($subStartPos, $subEndPos) - ) { - return '(' . $this->p($subNode) . ')'; - } - break; - case self::FIXUP_STATIC_DEREF_LHS: - if ($this->staticDereferenceLhsRequiresParens($subNode) - && !$this->origTokens->haveParens($subStartPos, $subEndPos) - ) { - return '(' . $this->p($subNode) . ')'; - } - break; - case self::FIXUP_NEW: - if ($this->newOperandRequiresParens($subNode) - && !$this->origTokens->haveParens($subStartPos, $subEndPos)) { - return '(' . $this->p($subNode) . ')'; - } - break; - case self::FIXUP_BRACED_NAME: - case self::FIXUP_VAR_BRACED_NAME: - if ($subNode instanceof Expr - && !$this->origTokens->haveBraces($subStartPos, $subEndPos) - ) { - return ($fixup === self::FIXUP_VAR_BRACED_NAME ? '$' : '') - . '{' . $this->p($subNode) . '}'; - } - break; - case self::FIXUP_ENCAPSED: - if (!$subNode instanceof Node\InterpolatedStringPart - && !$this->origTokens->haveBraces($subStartPos, $subEndPos) - ) { - return '{' . $this->p($subNode) . '}'; - } - break; - default: - throw new \Exception('Cannot happen'); - } - - // Nothing special to do - return $this->p($subNode); - } - - /** - * Appends to a string, ensuring whitespace between label characters. - * - * Example: "echo" and "$x" result in "echo$x", but "echo" and "x" result in "echo x". - * Without safeAppend the result would be "echox", which does not preserve semantics. - */ - protected function safeAppend(string &$str, string $append): void { - if ($str === "") { - $str = $append; - return; - } - - if ($append === "") { - return; - } - - if (!$this->labelCharMap[$append[0]] - || !$this->labelCharMap[$str[\strlen($str) - 1]]) { - $str .= $append; - } else { - $str .= " " . $append; - } - } - - /** - * Determines whether the LHS of a call must be wrapped in parenthesis. - * - * @param Node $node LHS of a call - * - * @return bool Whether parentheses are required - */ - protected function callLhsRequiresParens(Node $node): bool { - return !($node instanceof Node\Name - || $node instanceof Expr\Variable - || $node instanceof Expr\ArrayDimFetch - || $node instanceof Expr\FuncCall - || $node instanceof Expr\MethodCall - || $node instanceof Expr\NullsafeMethodCall - || $node instanceof Expr\StaticCall - || $node instanceof Expr\Array_); - } - - /** - * Determines whether the LHS of an array/object operation must be wrapped in parentheses. - * - * @param Node $node LHS of dereferencing operation - * - * @return bool Whether parentheses are required - */ - protected function dereferenceLhsRequiresParens(Node $node): bool { - // A constant can occur on the LHS of an array/object deref, but not a static deref. - return $this->staticDereferenceLhsRequiresParens($node) - && !$node instanceof Expr\ConstFetch; - } - - /** - * Determines whether the LHS of a static operation must be wrapped in parentheses. - * - * @param Node $node LHS of dereferencing operation - * - * @return bool Whether parentheses are required - */ - protected function staticDereferenceLhsRequiresParens(Node $node): bool { - return !($node instanceof Expr\Variable - || $node instanceof Node\Name - || $node instanceof Expr\ArrayDimFetch - || $node instanceof Expr\PropertyFetch - || $node instanceof Expr\NullsafePropertyFetch - || $node instanceof Expr\StaticPropertyFetch - || $node instanceof Expr\FuncCall - || $node instanceof Expr\MethodCall - || $node instanceof Expr\NullsafeMethodCall - || $node instanceof Expr\StaticCall - || $node instanceof Expr\Array_ - || $node instanceof Scalar\String_ - || $node instanceof Expr\ClassConstFetch); - } - - /** - * Determines whether an expression used in "new" or "instanceof" requires parentheses. - * - * @param Node $node New or instanceof operand - * - * @return bool Whether parentheses are required - */ - protected function newOperandRequiresParens(Node $node): bool { - if ($node instanceof Node\Name || $node instanceof Expr\Variable) { - return false; - } - if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || - $node instanceof Expr\NullsafePropertyFetch - ) { - return $this->newOperandRequiresParens($node->var); - } - if ($node instanceof Expr\StaticPropertyFetch) { - return $this->newOperandRequiresParens($node->class); - } - return true; - } - - /** - * Print modifiers, including trailing whitespace. - * - * @param int $modifiers Modifier mask to print - * - * @return string Printed modifiers - */ - protected function pModifiers(int $modifiers): string { - return ($modifiers & Modifiers::FINAL ? 'final ' : '') - . ($modifiers & Modifiers::ABSTRACT ? 'abstract ' : '') - . ($modifiers & Modifiers::PUBLIC ? 'public ' : '') - . ($modifiers & Modifiers::PROTECTED ? 'protected ' : '') - . ($modifiers & Modifiers::PRIVATE ? 'private ' : '') - . ($modifiers & Modifiers::STATIC ? 'static ' : '') - . ($modifiers & Modifiers::READONLY ? 'readonly ' : ''); - } - - protected function pStatic(bool $static): string { - return $static ? 'static ' : ''; - } - - /** - * Determine whether a list of nodes uses multiline formatting. - * - * @param (Node|null)[] $nodes Node list - * - * @return bool Whether multiline formatting is used - */ - protected function isMultiline(array $nodes): bool { - if (\count($nodes) < 2) { - return false; - } - - $pos = -1; - foreach ($nodes as $node) { - if (null === $node) { - continue; - } - - $endPos = $node->getEndTokenPos() + 1; - if ($pos >= 0) { - $text = $this->origTokens->getTokenCode($pos, $endPos, 0); - if (false === strpos($text, "\n")) { - // We require that a newline is present between *every* item. If the formatting - // is inconsistent, with only some items having newlines, we don't consider it - // as multiline - return false; - } - } - $pos = $endPos; - } - - return true; - } - - /** - * Lazily initializes label char map. - * - * The label char map determines whether a certain character may occur in a label. - */ - protected function initializeLabelCharMap(): void { - if (isset($this->labelCharMap)) { - return; - } - - $this->labelCharMap = []; - for ($i = 0; $i < 256; $i++) { - $chr = chr($i); - $this->labelCharMap[$chr] = $i >= 0x80 || ctype_alnum($chr); - } - - if ($this->phpVersion->allowsDelInIdentifiers()) { - $this->labelCharMap["\x7f"] = true; - } - } - - /** - * Lazily initializes node list differ. - * - * The node list differ is used to determine differences between two array subnodes. - */ - protected function initializeNodeListDiffer(): void { - if (isset($this->nodeListDiffer)) { - return; - } - - $this->nodeListDiffer = new Internal\Differ(function ($a, $b) { - if ($a instanceof Node && $b instanceof Node) { - return $a === $b->getAttribute('origNode'); - } - // Can happen for array destructuring - return $a === null && $b === null; - }); - } - - /** - * Lazily initializes fixup map. - * - * The fixup map is used to determine whether a certain subnode of a certain node may require - * some kind of "fixup" operation, e.g. the addition of parenthesis or braces. - */ - protected function initializeFixupMap(): void { - if (isset($this->fixupMap)) { - return; - } - - $this->fixupMap = [ - Expr\Instanceof_::class => [ - 'expr' => self::FIXUP_PREC_UNARY, - 'class' => self::FIXUP_NEW, - ], - Expr\Ternary::class => [ - 'cond' => self::FIXUP_PREC_LEFT, - 'else' => self::FIXUP_PREC_RIGHT, - ], - Expr\Yield_::class => ['value' => self::FIXUP_PREC_UNARY], - - Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], - Expr\StaticCall::class => ['class' => self::FIXUP_STATIC_DEREF_LHS], - Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\ClassConstFetch::class => [ - 'class' => self::FIXUP_STATIC_DEREF_LHS, - 'name' => self::FIXUP_BRACED_NAME, - ], - Expr\New_::class => ['class' => self::FIXUP_NEW], - Expr\MethodCall::class => [ - 'var' => self::FIXUP_DEREF_LHS, - 'name' => self::FIXUP_BRACED_NAME, - ], - Expr\NullsafeMethodCall::class => [ - 'var' => self::FIXUP_DEREF_LHS, - 'name' => self::FIXUP_BRACED_NAME, - ], - Expr\StaticPropertyFetch::class => [ - 'class' => self::FIXUP_STATIC_DEREF_LHS, - 'name' => self::FIXUP_VAR_BRACED_NAME, - ], - Expr\PropertyFetch::class => [ - 'var' => self::FIXUP_DEREF_LHS, - 'name' => self::FIXUP_BRACED_NAME, - ], - Expr\NullsafePropertyFetch::class => [ - 'var' => self::FIXUP_DEREF_LHS, - 'name' => self::FIXUP_BRACED_NAME, - ], - Scalar\InterpolatedString::class => [ - 'parts' => self::FIXUP_ENCAPSED, - ], - ]; - - $binaryOps = [ - BinaryOp\Pow::class, BinaryOp\Mul::class, BinaryOp\Div::class, BinaryOp\Mod::class, - BinaryOp\Plus::class, BinaryOp\Minus::class, BinaryOp\Concat::class, - BinaryOp\ShiftLeft::class, BinaryOp\ShiftRight::class, BinaryOp\Smaller::class, - BinaryOp\SmallerOrEqual::class, BinaryOp\Greater::class, BinaryOp\GreaterOrEqual::class, - BinaryOp\Equal::class, BinaryOp\NotEqual::class, BinaryOp\Identical::class, - BinaryOp\NotIdentical::class, BinaryOp\Spaceship::class, BinaryOp\BitwiseAnd::class, - BinaryOp\BitwiseXor::class, BinaryOp\BitwiseOr::class, BinaryOp\BooleanAnd::class, - BinaryOp\BooleanOr::class, BinaryOp\Coalesce::class, BinaryOp\LogicalAnd::class, - BinaryOp\LogicalXor::class, BinaryOp\LogicalOr::class, - ]; - foreach ($binaryOps as $binaryOp) { - $this->fixupMap[$binaryOp] = [ - 'left' => self::FIXUP_PREC_LEFT, - 'right' => self::FIXUP_PREC_RIGHT - ]; - } - - $prefixOps = [ - Expr\Clone_::class, Expr\BitwiseNot::class, Expr\BooleanNot::class, Expr\UnaryPlus::class, Expr\UnaryMinus::class, - Cast\Int_::class, Cast\Double::class, Cast\String_::class, Cast\Array_::class, - Cast\Object_::class, Cast\Bool_::class, Cast\Unset_::class, Expr\ErrorSuppress::class, - Expr\YieldFrom::class, Expr\Print_::class, Expr\Include_::class, - Expr\Assign::class, Expr\AssignRef::class, AssignOp\Plus::class, AssignOp\Minus::class, - AssignOp\Mul::class, AssignOp\Div::class, AssignOp\Concat::class, AssignOp\Mod::class, - AssignOp\BitwiseAnd::class, AssignOp\BitwiseOr::class, AssignOp\BitwiseXor::class, - AssignOp\ShiftLeft::class, AssignOp\ShiftRight::class, AssignOp\Pow::class, AssignOp\Coalesce::class, - Expr\ArrowFunction::class, Expr\Throw_::class, - ]; - foreach ($prefixOps as $prefixOp) { - $this->fixupMap[$prefixOp] = ['expr' => self::FIXUP_PREC_UNARY]; - } - } - - /** - * Lazily initializes the removal map. - * - * The removal map is used to determine which additional tokens should be removed when a - * certain node is replaced by null. - */ - protected function initializeRemovalMap(): void { - if (isset($this->removalMap)) { - return; - } - - $stripBoth = ['left' => \T_WHITESPACE, 'right' => \T_WHITESPACE]; - $stripLeft = ['left' => \T_WHITESPACE]; - $stripRight = ['right' => \T_WHITESPACE]; - $stripDoubleArrow = ['right' => \T_DOUBLE_ARROW]; - $stripColon = ['left' => ':']; - $stripEquals = ['left' => '=']; - $this->removalMap = [ - 'Expr_ArrayDimFetch->dim' => $stripBoth, - 'ArrayItem->key' => $stripDoubleArrow, - 'Expr_ArrowFunction->returnType' => $stripColon, - 'Expr_Closure->returnType' => $stripColon, - 'Expr_Exit->expr' => $stripBoth, - 'Expr_Ternary->if' => $stripBoth, - 'Expr_Yield->key' => $stripDoubleArrow, - 'Expr_Yield->value' => $stripBoth, - 'Param->type' => $stripRight, - 'Param->default' => $stripEquals, - 'Stmt_Break->num' => $stripBoth, - 'Stmt_Catch->var' => $stripLeft, - 'Stmt_ClassConst->type' => $stripRight, - 'Stmt_ClassMethod->returnType' => $stripColon, - 'Stmt_Class->extends' => ['left' => \T_EXTENDS], - 'Stmt_Enum->scalarType' => $stripColon, - 'Stmt_EnumCase->expr' => $stripEquals, - 'Expr_PrintableNewAnonClass->extends' => ['left' => \T_EXTENDS], - 'Stmt_Continue->num' => $stripBoth, - 'Stmt_Foreach->keyVar' => $stripDoubleArrow, - 'Stmt_Function->returnType' => $stripColon, - 'Stmt_If->else' => $stripLeft, - 'Stmt_Namespace->name' => $stripLeft, - 'Stmt_Property->type' => $stripRight, - 'PropertyItem->default' => $stripEquals, - 'Stmt_Return->expr' => $stripBoth, - 'Stmt_StaticVar->default' => $stripEquals, - 'Stmt_TraitUseAdaptation_Alias->newName' => $stripLeft, - 'Stmt_TryCatch->finally' => $stripLeft, - // 'Stmt_Case->cond': Replace with "default" - // 'Stmt_Class->name': Unclear what to do - // 'Stmt_Declare->stmts': Not a plain node - // 'Stmt_TraitUseAdaptation_Alias->newModifier': Not a plain node - ]; - } - - protected function initializeInsertionMap(): void { - if (isset($this->insertionMap)) { - return; - } - - // TODO: "yield" where both key and value are inserted doesn't work - // [$find, $beforeToken, $extraLeft, $extraRight] - $this->insertionMap = [ - 'Expr_ArrayDimFetch->dim' => ['[', false, null, null], - 'ArrayItem->key' => [null, false, null, ' => '], - 'Expr_ArrowFunction->returnType' => [')', false, ': ', null], - 'Expr_Closure->returnType' => [')', false, ': ', null], - 'Expr_Ternary->if' => ['?', false, ' ', ' '], - 'Expr_Yield->key' => [\T_YIELD, false, null, ' => '], - 'Expr_Yield->value' => [\T_YIELD, false, ' ', null], - 'Param->type' => [null, false, null, ' '], - 'Param->default' => [null, false, ' = ', null], - 'Stmt_Break->num' => [\T_BREAK, false, ' ', null], - 'Stmt_Catch->var' => [null, false, ' ', null], - 'Stmt_ClassMethod->returnType' => [')', false, ': ', null], - 'Stmt_ClassConst->type' => [\T_CONST, false, ' ', null], - 'Stmt_Class->extends' => [null, false, ' extends ', null], - 'Stmt_Enum->scalarType' => [null, false, ' : ', null], - 'Stmt_EnumCase->expr' => [null, false, ' = ', null], - 'Expr_PrintableNewAnonClass->extends' => [null, false, ' extends ', null], - 'Stmt_Continue->num' => [\T_CONTINUE, false, ' ', null], - 'Stmt_Foreach->keyVar' => [\T_AS, false, null, ' => '], - 'Stmt_Function->returnType' => [')', false, ': ', null], - 'Stmt_If->else' => [null, false, ' ', null], - 'Stmt_Namespace->name' => [\T_NAMESPACE, false, ' ', null], - 'Stmt_Property->type' => [\T_VARIABLE, true, null, ' '], - 'PropertyItem->default' => [null, false, ' = ', null], - 'Stmt_Return->expr' => [\T_RETURN, false, ' ', null], - 'Stmt_StaticVar->default' => [null, false, ' = ', null], - //'Stmt_TraitUseAdaptation_Alias->newName' => [T_AS, false, ' ', null], // TODO - 'Stmt_TryCatch->finally' => [null, false, ' ', null], - - // 'Expr_Exit->expr': Complicated due to optional () - // 'Stmt_Case->cond': Conversion from default to case - // 'Stmt_Class->name': Unclear - // 'Stmt_Declare->stmts': Not a proper node - // 'Stmt_TraitUseAdaptation_Alias->newModifier': Not a proper node - ]; - } - - protected function initializeListInsertionMap(): void { - if (isset($this->listInsertionMap)) { - return; - } - - $this->listInsertionMap = [ - // special - //'Expr_ShellExec->parts' => '', // TODO These need to be treated more carefully - //'Scalar_InterpolatedString->parts' => '', - Stmt\Catch_::class . '->types' => '|', - UnionType::class . '->types' => '|', - IntersectionType::class . '->types' => '&', - Stmt\If_::class . '->elseifs' => ' ', - Stmt\TryCatch::class . '->catches' => ' ', - - // comma-separated lists - Expr\Array_::class . '->items' => ', ', - Expr\ArrowFunction::class . '->params' => ', ', - Expr\Closure::class . '->params' => ', ', - Expr\Closure::class . '->uses' => ', ', - Expr\FuncCall::class . '->args' => ', ', - Expr\Isset_::class . '->vars' => ', ', - Expr\List_::class . '->items' => ', ', - Expr\MethodCall::class . '->args' => ', ', - Expr\NullsafeMethodCall::class . '->args' => ', ', - Expr\New_::class . '->args' => ', ', - PrintableNewAnonClassNode::class . '->args' => ', ', - Expr\StaticCall::class . '->args' => ', ', - Stmt\ClassConst::class . '->consts' => ', ', - Stmt\ClassMethod::class . '->params' => ', ', - Stmt\Class_::class . '->implements' => ', ', - Stmt\Enum_::class . '->implements' => ', ', - PrintableNewAnonClassNode::class . '->implements' => ', ', - Stmt\Const_::class . '->consts' => ', ', - Stmt\Declare_::class . '->declares' => ', ', - Stmt\Echo_::class . '->exprs' => ', ', - Stmt\For_::class . '->init' => ', ', - Stmt\For_::class . '->cond' => ', ', - Stmt\For_::class . '->loop' => ', ', - Stmt\Function_::class . '->params' => ', ', - Stmt\Global_::class . '->vars' => ', ', - Stmt\GroupUse::class . '->uses' => ', ', - Stmt\Interface_::class . '->extends' => ', ', - Expr\Match_::class . '->arms' => ', ', - Stmt\Property::class . '->props' => ', ', - Stmt\StaticVar::class . '->vars' => ', ', - Stmt\TraitUse::class . '->traits' => ', ', - Stmt\TraitUseAdaptation\Precedence::class . '->insteadof' => ', ', - Stmt\Unset_::class . '->vars' => ', ', - Stmt\UseUse::class . '->uses' => ', ', - MatchArm::class . '->conds' => ', ', - AttributeGroup::class . '->attrs' => ', ', - - // statement lists - Expr\Closure::class . '->stmts' => "\n", - Stmt\Case_::class . '->stmts' => "\n", - Stmt\Catch_::class . '->stmts' => "\n", - Stmt\Class_::class . '->stmts' => "\n", - Stmt\Enum_::class . '->stmts' => "\n", - PrintableNewAnonClassNode::class . '->stmts' => "\n", - Stmt\Interface_::class . '->stmts' => "\n", - Stmt\Trait_::class . '->stmts' => "\n", - Stmt\ClassMethod::class . '->stmts' => "\n", - Stmt\Declare_::class . '->stmts' => "\n", - Stmt\Do_::class . '->stmts' => "\n", - Stmt\ElseIf_::class . '->stmts' => "\n", - Stmt\Else_::class . '->stmts' => "\n", - Stmt\Finally_::class . '->stmts' => "\n", - Stmt\Foreach_::class . '->stmts' => "\n", - Stmt\For_::class . '->stmts' => "\n", - Stmt\Function_::class . '->stmts' => "\n", - Stmt\If_::class . '->stmts' => "\n", - Stmt\Namespace_::class . '->stmts' => "\n", - Stmt\Block::class . '->stmts' => "\n", - - // Attribute groups - Stmt\Class_::class . '->attrGroups' => "\n", - Stmt\Enum_::class . '->attrGroups' => "\n", - Stmt\EnumCase::class . '->attrGroups' => "\n", - Stmt\Interface_::class . '->attrGroups' => "\n", - Stmt\Trait_::class . '->attrGroups' => "\n", - Stmt\Function_::class . '->attrGroups' => "\n", - Stmt\ClassMethod::class . '->attrGroups' => "\n", - Stmt\ClassConst::class . '->attrGroups' => "\n", - Stmt\Property::class . '->attrGroups' => "\n", - PrintableNewAnonClassNode::class . '->attrGroups' => ' ', - Expr\Closure::class . '->attrGroups' => ' ', - Expr\ArrowFunction::class . '->attrGroups' => ' ', - Param::class . '->attrGroups' => ' ', - Stmt\Switch_::class . '->cases' => "\n", - Stmt\TraitUse::class . '->adaptations' => "\n", - Stmt\TryCatch::class . '->stmts' => "\n", - Stmt\While_::class . '->stmts' => "\n", - - // dummy for top-level context - 'File->stmts' => "\n", - ]; - } - - protected function initializeEmptyListInsertionMap(): void { - if (isset($this->emptyListInsertionMap)) { - return; - } - - // TODO Insertion into empty statement lists. - - // [$find, $extraLeft, $extraRight] - $this->emptyListInsertionMap = [ - Expr\ArrowFunction::class . '->params' => ['(', '', ''], - Expr\Closure::class . '->uses' => [')', ' use (', ')'], - Expr\Closure::class . '->params' => ['(', '', ''], - Expr\FuncCall::class . '->args' => ['(', '', ''], - Expr\MethodCall::class . '->args' => ['(', '', ''], - Expr\NullsafeMethodCall::class . '->args' => ['(', '', ''], - Expr\New_::class . '->args' => ['(', '', ''], - PrintableNewAnonClassNode::class . '->args' => ['(', '', ''], - PrintableNewAnonClassNode::class . '->implements' => [null, ' implements ', ''], - Expr\StaticCall::class . '->args' => ['(', '', ''], - Stmt\Class_::class . '->implements' => [null, ' implements ', ''], - Stmt\Enum_::class . '->implements' => [null, ' implements ', ''], - Stmt\ClassMethod::class . '->params' => ['(', '', ''], - Stmt\Interface_::class . '->extends' => [null, ' extends ', ''], - Stmt\Function_::class . '->params' => ['(', '', ''], - Stmt\Interface_::class . '->attrGroups' => [null, '', "\n"], - Stmt\Class_::class . '->attrGroups' => [null, '', "\n"], - Stmt\ClassConst::class . '->attrGroups' => [null, '', "\n"], - Stmt\ClassMethod::class . '->attrGroups' => [null, '', "\n"], - Stmt\Function_::class . '->attrGroups' => [null, '', "\n"], - Stmt\Property::class . '->attrGroups' => [null, '', "\n"], - Stmt\Trait_::class . '->attrGroups' => [null, '', "\n"], - Expr\ArrowFunction::class . '->attrGroups' => [null, '', ' '], - Expr\Closure::class . '->attrGroups' => [null, '', ' '], - PrintableNewAnonClassNode::class . '->attrGroups' => [\T_NEW, ' ', ''], - - /* These cannot be empty to start with: - * Expr_Isset->vars - * Stmt_Catch->types - * Stmt_Const->consts - * Stmt_ClassConst->consts - * Stmt_Declare->declares - * Stmt_Echo->exprs - * Stmt_Global->vars - * Stmt_GroupUse->uses - * Stmt_Property->props - * Stmt_StaticVar->vars - * Stmt_TraitUse->traits - * Stmt_TraitUseAdaptation_Precedence->insteadof - * Stmt_Unset->vars - * Stmt_Use->uses - * UnionType->types - */ - - /* TODO - * Stmt_If->elseifs - * Stmt_TryCatch->catches - * Expr_Array->items - * Expr_List->items - * Stmt_For->init - * Stmt_For->cond - * Stmt_For->loop - */ - ]; - } - - protected function initializeModifierChangeMap(): void { - if (isset($this->modifierChangeMap)) { - return; - } - - $this->modifierChangeMap = [ - Stmt\ClassConst::class . '->flags' => ['pModifiers', \T_CONST], - Stmt\ClassMethod::class . '->flags' => ['pModifiers', \T_FUNCTION], - Stmt\Class_::class . '->flags' => ['pModifiers', \T_CLASS], - Stmt\Property::class . '->flags' => ['pModifiers', \T_VARIABLE], - PrintableNewAnonClassNode::class . '->flags' => ['pModifiers', \T_CLASS], - Param::class . '->flags' => ['pModifiers', \T_VARIABLE], - Expr\Closure::class . '->static' => ['pStatic', \T_FUNCTION], - Expr\ArrowFunction::class . '->static' => ['pStatic', \T_FN], - //Stmt\TraitUseAdaptation\Alias::class . '->newModifier' => 0, // TODO - ]; - - // List of integer subnodes that are not modifiers: - // Expr_Include->type - // Stmt_GroupUse->type - // Stmt_Use->type - // UseItem->type - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Token.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Token.php deleted file mode 100644 index 6683310..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/Token.php +++ /dev/null @@ -1,18 +0,0 @@ -pos + \strlen($this->text); - } - - /** Get 1-based end line number of the token. */ - public function getEndLine(): int { - return $this->line + \substr_count($this->text, "\n"); - } -} diff --git a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php b/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php deleted file mode 100644 index f33dd77..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +++ /dev/null @@ -1,56 +0,0 @@ -\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php - - - - message: "#^Method PhpParser\\\\NodeVisitor\\\\NodeConnectingVisitor\\:\\:enterNode\\(\\) should return array\\\\|int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php - - - - message: "#^Method PhpParser\\\\NodeVisitor\\\\NodeConnectingVisitor\\:\\:leaveNode\\(\\) should return array\\\\|int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php - - - - message: "#^Method PhpParser\\\\NodeVisitor\\\\ParentConnectingVisitor\\:\\:beforeTraverse\\(\\) should return array\\\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php - - - - message: "#^Method PhpParser\\\\NodeVisitor\\\\ParentConnectingVisitor\\:\\:enterNode\\(\\) should return array\\\\|int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php - - - - message: "#^Method PhpParser\\\\NodeVisitor\\\\ParentConnectingVisitor\\:\\:leaveNode\\(\\) should return array\\\\|int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_ATTRIBUTE\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_COALESCE_EQUAL\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_ECHO\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_ENUM\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_FN\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_MATCH\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_NAME_FULLY_QUALIFIED\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_NAME_QUALIFIED\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_NAME_RELATIVE\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_NULLSAFE_OBJECT_OPERATOR\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_PAAMAYIM_NEKUDOTAYIM\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Access to undefined constant static\\(PhpParser\\\\ParserAbstract\\)\\:\\:T_READONLY\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Unary operation \"\\+\" on string results in an error\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php - - - - message: "#^Variable \\$action might not be defined\\.$#" - count: 1 - path: lib/PhpParser/ParserAbstract.php diff --git a/projects/priceservice/vendor/nikic/php-parser/phpstan.neon.dist b/projects/priceservice/vendor/nikic/php-parser/phpstan.neon.dist deleted file mode 100644 index af91012..0000000 --- a/projects/priceservice/vendor/nikic/php-parser/phpstan.neon.dist +++ /dev/null @@ -1,8 +0,0 @@ -includes: - - phpstan-baseline.neon - -parameters: - level: 6 - paths: - - lib - treatPhpDocTypesAsCertain: false diff --git a/projects/priceservice/vendor/psr/cache/CHANGELOG.md b/projects/priceservice/vendor/psr/cache/CHANGELOG.md deleted file mode 100644 index 58ddab0..0000000 --- a/projects/priceservice/vendor/psr/cache/CHANGELOG.md +++ /dev/null @@ -1,16 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file, in reverse chronological order by release. - -## 1.0.1 - 2016-08-06 - -### Fixed - -- Make spacing consistent in phpdoc annotations php-fig/cache#9 - chalasr -- Fix grammar in phpdoc annotations php-fig/cache#10 - chalasr -- Be more specific in docblocks that `getItems()` and `deleteItems()` take an array of strings (`string[]`) compared to just `array` php-fig/cache#8 - GrahamCampbell -- For `expiresAt()` and `expiresAfter()` in CacheItemInterface fix docblock to specify null as a valid parameters as well as an implementation of DateTimeInterface php-fig/cache#7 - GrahamCampbell - -## 1.0.0 - 2015-12-11 - -Initial stable release; reflects accepted PSR-6 specification diff --git a/projects/priceservice/vendor/psr/cache/LICENSE.txt b/projects/priceservice/vendor/psr/cache/LICENSE.txt deleted file mode 100644 index b1c2c97..0000000 --- a/projects/priceservice/vendor/psr/cache/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 PHP Framework Interoperability Group - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/psr/cache/README.md b/projects/priceservice/vendor/psr/cache/README.md deleted file mode 100644 index 9855a31..0000000 --- a/projects/priceservice/vendor/psr/cache/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Caching Interface -============== - -This repository holds all interfaces related to [PSR-6 (Caching Interface)][psr-url]. - -Note that this is not a Caching implementation of its own. It is merely interfaces that describe the components of a Caching mechanism. - -The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. - -[psr-url]: https://www.php-fig.org/psr/psr-6/ -[package-url]: https://packagist.org/packages/psr/cache -[implementation-url]: https://packagist.org/providers/psr/cache-implementation diff --git a/projects/priceservice/vendor/psr/cache/composer.json b/projects/priceservice/vendor/psr/cache/composer.json deleted file mode 100644 index 4b68797..0000000 --- a/projects/priceservice/vendor/psr/cache/composer.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "psr/cache", - "description": "Common interface for caching libraries", - "keywords": ["psr", "psr-6", "cache"], - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "require": { - "php": ">=8.0.0" - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/projects/priceservice/vendor/psr/cache/src/CacheException.php b/projects/priceservice/vendor/psr/cache/src/CacheException.php deleted file mode 100644 index bb785f4..0000000 --- a/projects/priceservice/vendor/psr/cache/src/CacheException.php +++ /dev/null @@ -1,10 +0,0 @@ -clock = $clock; - } - - public function doSomething() - { - /** @var DateTimeImmutable $currentDateAndTime */ - $currentDateAndTime = $this->clock->now(); - // do something useful with that information - } -} -``` - -You can then pick one of the [implementations][implementation-url] of the interface to get a clock. - -If you want to implement the interface, you can require this package and -implement `Psr\Clock\ClockInterface` in your code. - -Don't forget to add `psr/clock-implementation` to your `composer.json`s `provides`-section like this: - -```json -{ - "provides": { - "psr/clock-implementation": "1.0" - } -} -``` - -And please read the [specification text][specification-url] for details on the interface. - -[psr-url]: https://www.php-fig.org/psr/psr-20 -[package-url]: https://packagist.org/packages/psr/clock -[implementation-url]: https://packagist.org/providers/psr/clock-implementation -[specification-url]: https://github.com/php-fig/fig-standards/blob/master/proposed/clock.md diff --git a/projects/priceservice/vendor/psr/clock/composer.json b/projects/priceservice/vendor/psr/clock/composer.json deleted file mode 100644 index 77992ed..0000000 --- a/projects/priceservice/vendor/psr/clock/composer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "psr/clock", - "description": "Common interface for reading the clock.", - "keywords": ["psr", "psr-20", "time", "clock", "now"], - "homepage": "https://github.com/php-fig/clock", - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "require": { - "php": "^7.0 || ^8.0" - }, - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - } -} diff --git a/projects/priceservice/vendor/psr/clock/src/ClockInterface.php b/projects/priceservice/vendor/psr/clock/src/ClockInterface.php deleted file mode 100644 index 7b6d8d8..0000000 --- a/projects/priceservice/vendor/psr/clock/src/ClockInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -=7.4.0" - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - } -} diff --git a/projects/priceservice/vendor/psr/container/src/ContainerExceptionInterface.php b/projects/priceservice/vendor/psr/container/src/ContainerExceptionInterface.php deleted file mode 100644 index 0f213f2..0000000 --- a/projects/priceservice/vendor/psr/container/src/ContainerExceptionInterface.php +++ /dev/null @@ -1,12 +0,0 @@ -=7.2.0" - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/projects/priceservice/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php b/projects/priceservice/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php deleted file mode 100644 index 4306fa9..0000000 --- a/projects/priceservice/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -logger = $logger; - } - - public function doSomething() - { - if ($this->logger) { - $this->logger->info('Doing work'); - } - - try { - $this->doSomethingElse(); - } catch (Exception $exception) { - $this->logger->error('Oh no!', array('exception' => $exception)); - } - - // do something useful - } -} -``` - -You can then pick one of the implementations of the interface to get a logger. - -If you want to implement the interface, you can require this package and -implement `Psr\Log\LoggerInterface` in your code. Please read the -[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) -for details. diff --git a/projects/priceservice/vendor/psr/log/composer.json b/projects/priceservice/vendor/psr/log/composer.json deleted file mode 100644 index 879fc6f..0000000 --- a/projects/priceservice/vendor/psr/log/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "psr/log", - "description": "Common interface for logging libraries", - "keywords": ["psr", "psr-3", "log"], - "homepage": "https://github.com/php-fig/log", - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "require": { - "php": ">=8.0.0" - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - } -} diff --git a/projects/priceservice/vendor/psr/log/src/AbstractLogger.php b/projects/priceservice/vendor/psr/log/src/AbstractLogger.php deleted file mode 100644 index d60a091..0000000 --- a/projects/priceservice/vendor/psr/log/src/AbstractLogger.php +++ /dev/null @@ -1,15 +0,0 @@ -logger = $logger; - } -} diff --git a/projects/priceservice/vendor/psr/log/src/LoggerInterface.php b/projects/priceservice/vendor/psr/log/src/LoggerInterface.php deleted file mode 100644 index b3a24b5..0000000 --- a/projects/priceservice/vendor/psr/log/src/LoggerInterface.php +++ /dev/null @@ -1,125 +0,0 @@ -log(LogLevel::EMERGENCY, $message, $context); - } - - /** - * Action must be taken immediately. - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function alert(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::ALERT, $message, $context); - } - - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function critical(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::CRITICAL, $message, $context); - } - - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function error(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::ERROR, $message, $context); - } - - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function warning(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function notice(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::NOTICE, $message, $context); - } - - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function info(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string|\Stringable $message - * @param array $context - * - * @return void - */ - public function debug(string|\Stringable $message, array $context = []): void - { - $this->log(LogLevel::DEBUG, $message, $context); - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string|\Stringable $message - * @param array $context - * - * @return void - * - * @throws \Psr\Log\InvalidArgumentException - */ - abstract public function log($level, string|\Stringable $message, array $context = []): void; -} diff --git a/projects/priceservice/vendor/psr/log/src/NullLogger.php b/projects/priceservice/vendor/psr/log/src/NullLogger.php deleted file mode 100644 index c1cc3c0..0000000 --- a/projects/priceservice/vendor/psr/log/src/NullLogger.php +++ /dev/null @@ -1,30 +0,0 @@ -logger) { }` - * blocks. - */ -class NullLogger extends AbstractLogger -{ - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string|\Stringable $message - * @param array $context - * - * @return void - * - * @throws \Psr\Log\InvalidArgumentException - */ - public function log($level, string|\Stringable $message, array $context = []): void - { - // noop - } -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/CHANGELOG.md b/projects/priceservice/vendor/symfony/cache-contracts/CHANGELOG.md deleted file mode 100644 index 7932e26..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -CHANGELOG -========= - -The changelog is maintained for all Symfony contracts at the following URL: -https://github.com/symfony/contracts/blob/main/CHANGELOG.md diff --git a/projects/priceservice/vendor/symfony/cache-contracts/CacheInterface.php b/projects/priceservice/vendor/symfony/cache-contracts/CacheInterface.php deleted file mode 100644 index 3e4aaf6..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/CacheInterface.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; - -/** - * Covers most simple to advanced caching needs. - * - * @author Nicolas Grekas - */ -interface CacheInterface -{ - /** - * Fetches a value from the pool or computes it if not found. - * - * On cache misses, a callback is called that should return the missing value. - * This callback is given a PSR-6 CacheItemInterface instance corresponding to the - * requested key, that could be used e.g. for expiration control. It could also - * be an ItemInterface instance when its additional features are needed. - * - * @template T - * - * @param string $key The key of the item to retrieve from the cache - * @param (callable(CacheItemInterface,bool):T)|(callable(ItemInterface,bool):T)|CallbackInterface $callback - * @param float|null $beta A float that, as it grows, controls the likeliness of triggering - * early expiration. 0 disables it, INF forces immediate expiration. - * The default (or providing null) is implementation dependent but should - * typically be 1.0, which should provide optimal stampede protection. - * See https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration - * @param array &$metadata The metadata of the cached item {@see ItemInterface::getMetadata()} - * - * @return T - * - * @throws InvalidArgumentException When $key is not valid or when $beta is negative - */ - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed; - - /** - * Removes an item from the pool. - * - * @param string $key The key to delete - * - * @return bool True if the item was successfully removed, false if there was any error - * - * @throws InvalidArgumentException When $key is not valid - */ - public function delete(string $key): bool; -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/CacheTrait.php b/projects/priceservice/vendor/symfony/cache-contracts/CacheTrait.php deleted file mode 100644 index 4c5449b..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/CacheTrait.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemPoolInterface; -use Psr\Cache\InvalidArgumentException; -use Psr\Log\LoggerInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(InvalidArgumentException::class); - -/** - * An implementation of CacheInterface for PSR-6 CacheItemPoolInterface classes. - * - * @author Nicolas Grekas - */ -trait CacheTrait -{ - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - return $this->doGet($this, $key, $callback, $beta, $metadata); - } - - public function delete(string $key): bool - { - return $this->deleteItem($key); - } - - private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null): mixed - { - if (0 > $beta ??= 1.0) { - throw new class(\sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException {}; - } - - $item = $pool->getItem($key); - $recompute = !$item->isHit() || \INF === $beta; - $metadata = $item instanceof ItemInterface ? $item->getMetadata() : []; - - if (!$recompute && $metadata) { - $expiry = $metadata[ItemInterface::METADATA_EXPIRY] ?? false; - $ctime = $metadata[ItemInterface::METADATA_CTIME] ?? false; - - if ($recompute = $ctime && $expiry && $expiry <= ($now = microtime(true)) - $ctime / 1000 * $beta * log(random_int(1, \PHP_INT_MAX) / \PHP_INT_MAX)) { - // force applying defaultLifetime to expiry - $item->expiresAt(null); - $logger?->info('Item "{key}" elected for early recomputation {delta}s before its expiration', [ - 'key' => $key, - 'delta' => \sprintf('%.1f', $expiry - $now), - ]); - } - } - - if ($recompute) { - $save = true; - $item->set($callback($item, $save)); - if ($save) { - $pool->save($item); - } - } - - return $item->get(); - } -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/CallbackInterface.php b/projects/priceservice/vendor/symfony/cache-contracts/CallbackInterface.php deleted file mode 100644 index 15941e9..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/CallbackInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemInterface; - -/** - * Computes and returns the cached value of an item. - * - * @author Nicolas Grekas - * - * @template T - */ -interface CallbackInterface -{ - /** - * @param CacheItemInterface|ItemInterface $item The item to compute the value for - * @param bool &$save Should be set to false when the value should not be saved in the pool - * - * @return T The computed value for the passed item - */ - public function __invoke(CacheItemInterface $item, bool &$save): mixed; -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/ItemInterface.php b/projects/priceservice/vendor/symfony/cache-contracts/ItemInterface.php deleted file mode 100644 index 8c4c512..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/ItemInterface.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheException; -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; - -/** - * Augments PSR-6's CacheItemInterface with support for tags and metadata. - * - * @author Nicolas Grekas - */ -interface ItemInterface extends CacheItemInterface -{ - /** - * References the Unix timestamp stating when the item will expire. - */ - public const METADATA_EXPIRY = 'expiry'; - - /** - * References the time the item took to be created, in milliseconds. - */ - public const METADATA_CTIME = 'ctime'; - - /** - * References the list of tags that were assigned to the item, as string[]. - */ - public const METADATA_TAGS = 'tags'; - - /** - * Reserved characters that cannot be used in a key or tag. - */ - public const RESERVED_CHARACTERS = '{}()/\@:'; - - /** - * Adds a tag to a cache item. - * - * Tags are strings that follow the same validation rules as keys. - * - * @param string|string[] $tags A tag or array of tags - * - * @return $this - * - * @throws InvalidArgumentException When $tag is not valid - * @throws CacheException When the item comes from a pool that is not tag-aware - */ - public function tag(string|iterable $tags): static; - - /** - * Returns a list of metadata info that were saved alongside with the cached value. - * - * See ItemInterface::METADATA_* consts for keys potentially found in the returned array. - */ - public function getMetadata(): array; -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/LICENSE b/projects/priceservice/vendor/symfony/cache-contracts/LICENSE deleted file mode 100644 index 7536cae..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/cache-contracts/NamespacedPoolInterface.php b/projects/priceservice/vendor/symfony/cache-contracts/NamespacedPoolInterface.php deleted file mode 100644 index cd67bc0..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/NamespacedPoolInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\InvalidArgumentException; - -/** - * Enables namespace-based invalidation by prefixing keys with backend-native namespace separators. - * - * Note that calling `withSubNamespace()` MUST NOT mutate the pool, but return a new instance instead. - * - * When tags are used, they MUST ignore sub-namespaces. - * - * @author Nicolas Grekas - */ -interface NamespacedPoolInterface -{ - /** - * @throws InvalidArgumentException If the namespace contains characters found in ItemInterface's RESERVED_CHARACTERS - */ - public function withSubNamespace(string $namespace): static; -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/README.md b/projects/priceservice/vendor/symfony/cache-contracts/README.md deleted file mode 100644 index ffe0833..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony Cache Contracts -======================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/projects/priceservice/vendor/symfony/cache-contracts/TagAwareCacheInterface.php b/projects/priceservice/vendor/symfony/cache-contracts/TagAwareCacheInterface.php deleted file mode 100644 index 8e0b6be..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/TagAwareCacheInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\InvalidArgumentException; - -/** - * Allows invalidating cached items using tags. - * - * @author Nicolas Grekas - */ -interface TagAwareCacheInterface extends CacheInterface -{ - /** - * Invalidates cached items using tags. - * - * When implemented on a PSR-6 pool, invalidation should not apply - * to deferred items. Instead, they should be committed as usual. - * This allows replacing old tagged values by new ones without - * race conditions. - * - * @param string[] $tags An array of tags to invalidate - * - * @return bool True on success - * - * @throws InvalidArgumentException When $tags is not valid - */ - public function invalidateTags(array $tags): bool; -} diff --git a/projects/priceservice/vendor/symfony/cache-contracts/composer.json b/projects/priceservice/vendor/symfony/cache-contracts/composer.json deleted file mode 100644 index b713c29..0000000 --- a/projects/priceservice/vendor/symfony/cache-contracts/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "symfony/cache-contracts", - "type": "library", - "description": "Generic abstractions related to caching", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr/cache": "^3.0" - }, - "autoload": { - "psr-4": { "Symfony\\Contracts\\Cache\\": "" } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.6-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/AbstractAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/AbstractAdapter.php deleted file mode 100644 index 7525fe0..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/AbstractAdapter.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Log\LoggerAwareInterface; -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\AbstractAdapterTrait; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Nicolas Grekas - */ -abstract class AbstractAdapter implements AdapterInterface, CacheInterface, LoggerAwareInterface, ResettableInterface -{ - use AbstractAdapterTrait; - use ContractsTrait; - - /** - * @internal - */ - protected const NS_SEPARATOR = ':'; - - private static bool $apcuSupported; - - protected function __construct(string $namespace = '', int $defaultLifetime = 0) - { - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).static::NS_SEPARATOR; - $this->defaultLifetime = $defaultLifetime; - if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) { - throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace)); - } - self::$createCacheItem ??= \Closure::bind( - static function ($key, $value, $isHit) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->isHit = $isHit; - $item->unpack(); - - return $item; - }, - null, - CacheItem::class - ); - self::$mergeByLifetime ??= \Closure::bind( - static function ($deferred, $namespace, &$expiredIds, $getId, $defaultLifetime) { - $byLifetime = []; - $now = microtime(true); - $expiredIds = []; - - foreach ($deferred as $key => $item) { - $key = (string) $key; - if (null === $item->expiry) { - $ttl = 0 < $defaultLifetime ? $defaultLifetime : 0; - } elseif (!$item->expiry) { - $ttl = 0; - } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { - $expiredIds[] = $getId($key); - continue; - } - $byLifetime[$ttl][$getId($key)] = $item->pack(); - } - - return $byLifetime; - }, - null, - CacheItem::class - ); - } - - /** - * Returns the best possible adapter that your runtime supports. - * - * Using ApcuAdapter makes system caches compatible with read-only filesystems. - */ - public static function createSystemCache(string $namespace, int $defaultLifetime, string $version, string $directory, ?LoggerInterface $logger = null): AdapterInterface - { - $opcache = new PhpFilesAdapter($namespace, $defaultLifetime, $directory, true); - if (null !== $logger) { - $opcache->setLogger($logger); - } - - if (!self::$apcuSupported ??= ApcuAdapter::isSupported()) { - return $opcache; - } - - if ('cli' === \PHP_SAPI && !filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOL)) { - return $opcache; - } - - $apcu = new ApcuAdapter($namespace, intdiv($defaultLifetime, 5), $version); - if (null !== $logger) { - $apcu->setLogger($logger); - } - - return new ChainAdapter([$apcu, $opcache]); - } - - public static function createConnection(#[\SensitiveParameter] string $dsn, array $options = []): mixed - { - if (str_starts_with($dsn, 'redis:') || str_starts_with($dsn, 'rediss:')) { - return RedisAdapter::createConnection($dsn, $options); - } - if (str_starts_with($dsn, 'memcached:')) { - return MemcachedAdapter::createConnection($dsn, $options); - } - if (str_starts_with($dsn, 'couchbase:')) { - if (CouchbaseBucketAdapter::isSupported()) { - return CouchbaseBucketAdapter::createConnection($dsn, $options); - } - - return CouchbaseCollectionAdapter::createConnection($dsn, $options); - } - - throw new InvalidArgumentException('Unsupported DSN: it does not start with "redis[s]:", "memcached:" nor "couchbase:".'); - } - - public function commit(): bool - { - $ok = true; - $byLifetime = (self::$mergeByLifetime)($this->deferred, $this->namespace, $expiredIds, $this->getId(...), $this->defaultLifetime); - $retry = $this->deferred = []; - - if ($expiredIds) { - try { - $this->doDelete($expiredIds); - } catch (\Exception $e) { - $ok = false; - CacheItem::log($this->logger, 'Failed to delete expired items: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); - } - } - foreach ($byLifetime as $lifetime => $values) { - try { - $e = $this->doSave($values, $lifetime); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - if (\is_array($e) || 1 === \count($values)) { - foreach (\is_array($e) ? $e : array_keys($values) as $id) { - $ok = false; - $v = $values[$id]; - $type = get_debug_type($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } - } else { - foreach ($values as $id => $v) { - $retry[$lifetime][] = $id; - } - } - } - - // When bulk-save failed, retry each item individually - foreach ($retry as $lifetime => $ids) { - foreach ($ids as $id) { - try { - $v = $byLifetime[$lifetime][$id]; - $e = $this->doSave([$id => $v], $lifetime); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - $ok = false; - $type = get_debug_type($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } - } - - return $ok; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php deleted file mode 100644 index ef62b4f..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php +++ /dev/null @@ -1,320 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Log\LoggerAwareInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\AbstractAdapterTrait; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * Abstract for native TagAware adapters. - * - * To keep info on tags, the tags are both serialized as part of cache value and provided as tag ids - * to Adapters on operations when needed for storage to doSave(), doDelete() & doInvalidate(). - * - * @author Nicolas Grekas - * @author André Rømcke - * - * @internal - */ -abstract class AbstractTagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface, LoggerAwareInterface, ResettableInterface -{ - use AbstractAdapterTrait; - use ContractsTrait; - - private const TAGS_PREFIX = "\1tags\1"; - - protected function __construct(string $namespace = '', int $defaultLifetime = 0) - { - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).':'; - $this->defaultLifetime = $defaultLifetime; - if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) { - throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s").', $this->maxIdLength - 24, \strlen($namespace), $namespace)); - } - self::$createCacheItem ??= \Closure::bind( - static function ($key, $value, $isHit) { - $item = new CacheItem(); - $item->key = $key; - $item->isTaggable = true; - // If structure does not match what we expect return item as is (no value and not a hit) - if (!\is_array($value) || !\array_key_exists('value', $value)) { - return $item; - } - $item->isHit = $isHit; - // Extract value, tags and meta data from the cache value - $item->value = $value['value']; - $item->metadata[CacheItem::METADATA_TAGS] = isset($value['tags']) ? array_combine($value['tags'], $value['tags']) : []; - if (isset($value['meta'])) { - // For compactness these values are packed, & expiry is offset to reduce size - $v = unpack('Ve/Nc', $value['meta']); - $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; - $item->metadata[CacheItem::METADATA_CTIME] = $v['c']; - } - - return $item; - }, - null, - CacheItem::class - ); - self::$mergeByLifetime ??= \Closure::bind( - static function ($deferred, &$expiredIds, $getId, $tagPrefix, $defaultLifetime) { - $byLifetime = []; - $now = microtime(true); - $expiredIds = []; - - foreach ($deferred as $key => $item) { - $key = (string) $key; - if (null === $item->expiry) { - $ttl = 0 < $defaultLifetime ? $defaultLifetime : 0; - } elseif (!$item->expiry) { - $ttl = 0; - } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { - $expiredIds[] = $getId($key); - continue; - } - // Store Value and Tags on the cache value - if (isset(($metadata = $item->newMetadata)[CacheItem::METADATA_TAGS])) { - $value = ['value' => $item->value, 'tags' => $metadata[CacheItem::METADATA_TAGS]]; - unset($metadata[CacheItem::METADATA_TAGS]); - } else { - $value = ['value' => $item->value, 'tags' => []]; - } - - if ($metadata) { - // For compactness, expiry and creation duration are packed, using magic numbers as separators - $value['meta'] = pack('VN', (int) (0.1 + $metadata[CacheItem::METADATA_EXPIRY] - CacheItem::METADATA_EXPIRY_OFFSET), $metadata[CacheItem::METADATA_CTIME]); - } - - // Extract tag changes, these should be removed from values in doSave() - $value['tag-operations'] = ['add' => [], 'remove' => []]; - $oldTags = $item->metadata[CacheItem::METADATA_TAGS] ?? []; - foreach (array_diff_key($value['tags'], $oldTags) as $addedTag) { - $value['tag-operations']['add'][] = $getId($tagPrefix.$addedTag); - } - foreach (array_diff_key($oldTags, $value['tags']) as $removedTag) { - $value['tag-operations']['remove'][] = $getId($tagPrefix.$removedTag); - } - $value['tags'] = array_keys($value['tags']); - - $byLifetime[$ttl][$getId($key)] = $value; - $item->metadata = $item->newMetadata; - } - - return $byLifetime; - }, - null, - CacheItem::class - ); - } - - /** - * Persists several cache items immediately. - * - * @param array $values The values to cache, indexed by their cache identifier - * @param int $lifetime The lifetime of the cached values, 0 for persisting until manual cleaning - * @param array[] $addTagData Hash where key is tag id, and array value is list of cache id's to add to tag - * @param array[] $removeTagData Hash where key is tag id, and array value is list of cache id's to remove to tag - * - * @return array The identifiers that failed to be cached or a boolean stating if caching succeeded or not - */ - abstract protected function doSave(array $values, int $lifetime, array $addTagData = [], array $removeTagData = []): array; - - /** - * Removes multiple items from the pool and their corresponding tags. - * - * @param array $ids An array of identifiers that should be removed from the pool - */ - abstract protected function doDelete(array $ids): bool; - - /** - * Removes relations between tags and deleted items. - * - * @param array $tagData Array of tag => key identifiers that should be removed from the pool - */ - abstract protected function doDeleteTagRelations(array $tagData): bool; - - /** - * Invalidates cached items using tags. - * - * @param string[] $tagIds An array of tags to invalidate, key is tag and value is tag id - */ - abstract protected function doInvalidate(array $tagIds): bool; - - /** - * Delete items and yields the tags they were bound to. - */ - protected function doDeleteYieldTags(array $ids): iterable - { - foreach ($this->doFetch($ids) as $id => $value) { - yield $id => \is_array($value) && \is_array($value['tags'] ?? null) ? $value['tags'] : []; - } - - $this->doDelete($ids); - } - - public function commit(): bool - { - $ok = true; - $byLifetime = (self::$mergeByLifetime)($this->deferred, $expiredIds, $this->getId(...), self::TAGS_PREFIX, $this->defaultLifetime); - $retry = $this->deferred = []; - - if ($expiredIds) { - // Tags are not cleaned up in this case, however that is done on invalidateTags(). - try { - $this->doDelete($expiredIds); - } catch (\Exception $e) { - $ok = false; - CacheItem::log($this->logger, 'Failed to delete expired items: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); - } - } - foreach ($byLifetime as $lifetime => $values) { - try { - $values = $this->extractTagData($values, $addTagData, $removeTagData); - $e = $this->doSave($values, $lifetime, $addTagData, $removeTagData); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - if (\is_array($e) || 1 === \count($values)) { - foreach (\is_array($e) ? $e : array_keys($values) as $id) { - $ok = false; - $v = $values[$id]; - $type = get_debug_type($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } - } else { - foreach ($values as $id => $v) { - $retry[$lifetime][] = $id; - } - } - } - - // When bulk-save failed, retry each item individually - foreach ($retry as $lifetime => $ids) { - foreach ($ids as $id) { - try { - $v = $byLifetime[$lifetime][$id]; - $values = $this->extractTagData([$id => $v], $addTagData, $removeTagData); - $e = $this->doSave($values, $lifetime, $addTagData, $removeTagData); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - $ok = false; - $type = get_debug_type($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } - } - - return $ok; - } - - public function deleteItems(array $keys): bool - { - if (!$keys) { - return true; - } - - $ok = true; - $ids = []; - $tagData = []; - - foreach ($keys as $key) { - $ids[$key] = $this->getId($key); - unset($this->deferred[$key]); - } - - try { - foreach ($this->doDeleteYieldTags(array_values($ids)) as $id => $tags) { - foreach ($tags as $tag) { - $tagData[$this->getId(self::TAGS_PREFIX.$tag)][] = $id; - } - } - } catch (\Exception) { - $ok = false; - } - - try { - if ((!$tagData || $this->doDeleteTagRelations($tagData)) && $ok) { - return true; - } - } catch (\Exception) { - } - - // When bulk-delete failed, retry each item individually - foreach ($ids as $key => $id) { - try { - $e = null; - if ($this->doDelete([$id])) { - continue; - } - } catch (\Exception $e) { - } - $message = 'Failed to delete key "{key}"'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - $ok = false; - } - - return $ok; - } - - public function invalidateTags(array $tags): bool - { - if (!$tags) { - return false; - } - - $tagIds = []; - foreach (array_unique($tags) as $tag) { - $tagIds[] = $this->getId(self::TAGS_PREFIX.$tag); - } - - try { - if ($this->doInvalidate($tagIds)) { - return true; - } - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to invalidate tags: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); - } - - return false; - } - - /** - * Extracts tags operation data from $values set in mergeByLifetime, and returns values without it. - */ - private function extractTagData(array $values, ?array &$addTagData, ?array &$removeTagData): array - { - $addTagData = $removeTagData = []; - foreach ($values as $id => $value) { - foreach ($value['tag-operations']['add'] as $tag => $tagId) { - $addTagData[$tagId][] = $id; - } - - foreach ($value['tag-operations']['remove'] as $tag => $tagId) { - $removeTagData[$tagId][] = $id; - } - - unset($values[$id]['tag-operations']); - } - - return $values; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/AdapterInterface.php b/projects/priceservice/vendor/symfony/cache/Adapter/AdapterInterface.php deleted file mode 100644 index e556720..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/AdapterInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; - -// Help opcache.preload discover always-needed symbols -class_exists(CacheItem::class); - -/** - * Interface for adapters managing instances of Symfony's CacheItem. - * - * @author Kévin Dunglas - */ -interface AdapterInterface extends CacheItemPoolInterface -{ - public function getItem(mixed $key): CacheItem; - - /** - * @return iterable - */ - public function getItems(array $keys = []): iterable; - - public function clear(string $prefix = ''): bool; -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/ApcuAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/ApcuAdapter.php deleted file mode 100644 index c64a603..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/ApcuAdapter.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Nicolas Grekas - */ -class ApcuAdapter extends AbstractAdapter -{ - private ?MarshallerInterface $marshaller; - - /** - * @throws CacheException if APCu is not enabled - */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $version = null, ?MarshallerInterface $marshaller = null) - { - if (!static::isSupported()) { - throw new CacheException('APCu is not enabled.'); - } - if ('cli' === \PHP_SAPI) { - ini_set('apc.use_request_time', 0); - } - parent::__construct($namespace, $defaultLifetime); - - if (null !== $version) { - CacheItem::validateKey($version); - - if (!apcu_exists($version.'@'.$namespace)) { - $this->doClear($namespace); - apcu_add($version.'@'.$namespace, null); - } - } - - $this->marshaller = $marshaller; - } - - /** - * @return bool - */ - public static function isSupported() - { - return \function_exists('apcu_fetch') && filter_var(\ini_get('apc.enabled'), \FILTER_VALIDATE_BOOL); - } - - protected function doFetch(array $ids): iterable - { - $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); - try { - $values = []; - foreach (apcu_fetch($ids, $ok) ?: [] as $k => $v) { - if (null !== $v || $ok) { - $values[$k] = null !== $this->marshaller ? $this->marshaller->unmarshall($v) : $v; - } - } - - return $values; - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), \E_ERROR, $e->getFile(), $e->getLine()); - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - protected function doHave(string $id): bool - { - return apcu_exists($id); - } - - protected function doClear(string $namespace): bool - { - return isset($namespace[0]) && class_exists(\APCUIterator::class, false) && ('cli' !== \PHP_SAPI || filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOL)) - ? apcu_delete(new \APCUIterator(sprintf('/^%s/', preg_quote($namespace, '/')), \APC_ITER_KEY)) - : apcu_clear_cache(); - } - - protected function doDelete(array $ids): bool - { - foreach ($ids as $id) { - apcu_delete($id); - } - - return true; - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (null !== $this->marshaller && (!$values = $this->marshaller->marshall($values, $failed))) { - return $failed; - } - - if (false === $failures = apcu_store($values, null, $lifetime)) { - $failures = $values; - } - - return array_keys($failures); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/ArrayAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/ArrayAdapter.php deleted file mode 100644 index 8ebfc44..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/ArrayAdapter.php +++ /dev/null @@ -1,368 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Log\LoggerAwareInterface; -use Psr\Log\LoggerAwareTrait; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * An in-memory cache storage. - * - * Acts as a least-recently-used (LRU) storage when configured with a maximum number of items. - * - * @author Nicolas Grekas - */ -class ArrayAdapter implements AdapterInterface, CacheInterface, LoggerAwareInterface, ResettableInterface -{ - use LoggerAwareTrait; - - private bool $storeSerialized; - private array $values = []; - private array $tags = []; - private array $expiries = []; - private int $defaultLifetime; - private float $maxLifetime; - private int $maxItems; - - private static \Closure $createCacheItem; - - /** - * @param bool $storeSerialized Disabling serialization can lead to cache corruptions when storing mutable values but increases performance otherwise - */ - public function __construct(int $defaultLifetime = 0, bool $storeSerialized = true, float $maxLifetime = 0, int $maxItems = 0) - { - if (0 > $maxLifetime) { - throw new InvalidArgumentException(sprintf('Argument $maxLifetime must be positive, %F passed.', $maxLifetime)); - } - - if (0 > $maxItems) { - throw new InvalidArgumentException(sprintf('Argument $maxItems must be a positive integer, %d passed.', $maxItems)); - } - - $this->defaultLifetime = $defaultLifetime; - $this->storeSerialized = $storeSerialized; - $this->maxLifetime = $maxLifetime; - $this->maxItems = $maxItems; - self::$createCacheItem ??= \Closure::bind( - static function ($key, $value, $isHit, $tags) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->isHit = $isHit; - if (null !== $tags) { - $item->metadata[CacheItem::METADATA_TAGS] = $tags; - } - - return $item; - }, - null, - CacheItem::class - ); - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - $item = $this->getItem($key); - $metadata = $item->getMetadata(); - - // ArrayAdapter works in memory, we don't care about stampede protection - if (\INF === $beta || !$item->isHit()) { - $save = true; - $item->set($callback($item, $save)); - if ($save) { - $this->save($item); - } - } - - return $item->get(); - } - - public function delete(string $key): bool - { - return $this->deleteItem($key); - } - - public function hasItem(mixed $key): bool - { - if (\is_string($key) && isset($this->expiries[$key]) && $this->expiries[$key] > microtime(true)) { - if ($this->maxItems) { - // Move the item last in the storage - $value = $this->values[$key]; - unset($this->values[$key]); - $this->values[$key] = $value; - } - - return true; - } - \assert('' !== CacheItem::validateKey($key)); - - return isset($this->expiries[$key]) && !$this->deleteItem($key); - } - - public function getItem(mixed $key): CacheItem - { - if (!$isHit = $this->hasItem($key)) { - $value = null; - - if (!$this->maxItems) { - // Track misses in non-LRU mode only - $this->values[$key] = null; - } - } else { - $value = $this->storeSerialized ? $this->unfreeze($key, $isHit) : $this->values[$key]; - } - - return (self::$createCacheItem)($key, $value, $isHit, $this->tags[$key] ?? null); - } - - public function getItems(array $keys = []): iterable - { - \assert(self::validateKeys($keys)); - - return $this->generateItems($keys, microtime(true), self::$createCacheItem); - } - - public function deleteItem(mixed $key): bool - { - \assert('' !== CacheItem::validateKey($key)); - unset($this->values[$key], $this->tags[$key], $this->expiries[$key]); - - return true; - } - - public function deleteItems(array $keys): bool - { - foreach ($keys as $key) { - $this->deleteItem($key); - } - - return true; - } - - public function save(CacheItemInterface $item): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $item = (array) $item; - $key = $item["\0*\0key"]; - $value = $item["\0*\0value"]; - $expiry = $item["\0*\0expiry"]; - - $now = microtime(true); - - if (null !== $expiry) { - if (!$expiry) { - $expiry = \PHP_INT_MAX; - } elseif ($expiry <= $now) { - $this->deleteItem($key); - - return true; - } - } - if ($this->storeSerialized && null === $value = $this->freeze($value, $key)) { - return false; - } - if (null === $expiry && 0 < $this->defaultLifetime) { - $expiry = $this->defaultLifetime; - $expiry = $now + ($expiry > ($this->maxLifetime ?: $expiry) ? $this->maxLifetime : $expiry); - } elseif ($this->maxLifetime && (null === $expiry || $expiry > $now + $this->maxLifetime)) { - $expiry = $now + $this->maxLifetime; - } - - if ($this->maxItems) { - unset($this->values[$key], $this->tags[$key]); - - // Iterate items and vacuum expired ones while we are at it - foreach ($this->values as $k => $v) { - if ($this->expiries[$k] > $now && \count($this->values) < $this->maxItems) { - break; - } - - unset($this->values[$k], $this->tags[$k], $this->expiries[$k]); - } - } - - $this->values[$key] = $value; - $this->expiries[$key] = $expiry ?? \PHP_INT_MAX; - - if (null === $this->tags[$key] = $item["\0*\0newMetadata"][CacheItem::METADATA_TAGS] ?? null) { - unset($this->tags[$key]); - } - - return true; - } - - public function saveDeferred(CacheItemInterface $item): bool - { - return $this->save($item); - } - - public function commit(): bool - { - return true; - } - - public function clear(string $prefix = ''): bool - { - if ('' !== $prefix) { - $now = microtime(true); - - foreach ($this->values as $key => $value) { - if (!isset($this->expiries[$key]) || $this->expiries[$key] <= $now || str_starts_with($key, $prefix)) { - unset($this->values[$key], $this->tags[$key], $this->expiries[$key]); - } - } - - if ($this->values) { - return true; - } - } - - $this->values = $this->tags = $this->expiries = []; - - return true; - } - - /** - * Returns all cached values, with cache miss as null. - */ - public function getValues(): array - { - if (!$this->storeSerialized) { - return $this->values; - } - - $values = $this->values; - foreach ($values as $k => $v) { - if (null === $v || 'N;' === $v) { - continue; - } - if (!\is_string($v) || !isset($v[2]) || ':' !== $v[1]) { - $values[$k] = serialize($v); - } - } - - return $values; - } - - /** - * @return void - */ - public function reset() - { - $this->clear(); - } - - private function generateItems(array $keys, float $now, \Closure $f): \Generator - { - foreach ($keys as $i => $key) { - if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] > $now || !$this->deleteItem($key))) { - $value = null; - - if (!$this->maxItems) { - // Track misses in non-LRU mode only - $this->values[$key] = null; - } - } else { - if ($this->maxItems) { - // Move the item last in the storage - $value = $this->values[$key]; - unset($this->values[$key]); - $this->values[$key] = $value; - } - - $value = $this->storeSerialized ? $this->unfreeze($key, $isHit) : $this->values[$key]; - } - unset($keys[$i]); - - yield $key => $f($key, $value, $isHit, $this->tags[$key] ?? null); - } - - foreach ($keys as $key) { - yield $key => $f($key, null, false); - } - } - - private function freeze($value, string $key): string|int|float|bool|array|\UnitEnum|null - { - if (null === $value) { - return 'N;'; - } - if (\is_string($value)) { - // Serialize strings if they could be confused with serialized objects or arrays - if ('N;' === $value || (isset($value[2]) && ':' === $value[1])) { - return serialize($value); - } - } elseif (!\is_scalar($value)) { - try { - $serialized = serialize($value); - } catch (\Exception $e) { - if (!isset($this->expiries[$key])) { - unset($this->values[$key]); - } - $type = get_debug_type($value); - $message = sprintf('Failed to save key "{key}" of type %s: %s', $type, $e->getMessage()); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - - return null; - } - // Keep value serialized if it contains any objects or any internal references - if ('C' === $serialized[0] || 'O' === $serialized[0] || preg_match('/;[OCRr]:[1-9]/', $serialized)) { - return $serialized; - } - } - - return $value; - } - - private function unfreeze(string $key, bool &$isHit): mixed - { - if ('N;' === $value = $this->values[$key]) { - return null; - } - if (\is_string($value) && isset($value[2]) && ':' === $value[1]) { - try { - $value = unserialize($value); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to unserialize key "{key}": '.$e->getMessage(), ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - $value = false; - } - if (false === $value) { - $value = null; - $isHit = false; - - if (!$this->maxItems) { - $this->values[$key] = null; - } - } - } - - return $value; - } - - private function validateKeys(array $keys): bool - { - foreach ($keys as $key) { - if (!\is_string($key) || !isset($this->expiries[$key])) { - CacheItem::validateKey($key); - } - } - - return true; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/ChainAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/ChainAdapter.php deleted file mode 100644 index 221b1fb..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/ChainAdapter.php +++ /dev/null @@ -1,294 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * Chains several adapters together. - * - * Cached items are fetched from the first adapter having them in its data store. - * They are saved and deleted in all adapters at once. - * - * @author Kévin Dunglas - */ -class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use ContractsTrait; - - private array $adapters = []; - private int $adapterCount; - private int $defaultLifetime; - - private static \Closure $syncItem; - - /** - * @param CacheItemPoolInterface[] $adapters The ordered list of adapters used to fetch cached items - * @param int $defaultLifetime The default lifetime of items propagated from lower adapters to upper ones - */ - public function __construct(array $adapters, int $defaultLifetime = 0) - { - if (!$adapters) { - throw new InvalidArgumentException('At least one adapter must be specified.'); - } - - foreach ($adapters as $adapter) { - if (!$adapter instanceof CacheItemPoolInterface) { - throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', get_debug_type($adapter), CacheItemPoolInterface::class)); - } - if ('cli' === \PHP_SAPI && $adapter instanceof ApcuAdapter && !filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOL)) { - continue; // skip putting APCu in the chain when the backend is disabled - } - - if ($adapter instanceof AdapterInterface) { - $this->adapters[] = $adapter; - } else { - $this->adapters[] = new ProxyAdapter($adapter); - } - } - $this->adapterCount = \count($this->adapters); - $this->defaultLifetime = $defaultLifetime; - - self::$syncItem ??= \Closure::bind( - static function ($sourceItem, $item, $defaultLifetime, $sourceMetadata = null) { - $sourceItem->isTaggable = false; - $sourceMetadata ??= $sourceItem->metadata; - - $item->value = $sourceItem->value; - $item->isHit = $sourceItem->isHit; - $item->metadata = $item->newMetadata = $sourceItem->metadata = $sourceMetadata; - - if (isset($item->metadata[CacheItem::METADATA_EXPIRY])) { - $item->expiresAt(\DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $item->metadata[CacheItem::METADATA_EXPIRY]))); - } elseif (0 < $defaultLifetime) { - $item->expiresAfter($defaultLifetime); - } - - return $item; - }, - null, - CacheItem::class - ); - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - $doSave = true; - $callback = static function (CacheItem $item, bool &$save) use ($callback, &$doSave) { - $value = $callback($item, $save); - $doSave = $save; - - return $value; - }; - - $wrap = function (?CacheItem $item = null, bool &$save = true) use ($key, $callback, $beta, &$wrap, &$doSave, &$metadata) { - static $lastItem; - static $i = 0; - $adapter = $this->adapters[$i]; - if (isset($this->adapters[++$i])) { - $callback = $wrap; - $beta = \INF === $beta ? \INF : 0; - } - if ($adapter instanceof CacheInterface) { - $value = $adapter->get($key, $callback, $beta, $metadata); - } else { - $value = $this->doGet($adapter, $key, $callback, $beta, $metadata); - } - if (null !== $item) { - (self::$syncItem)($lastItem ??= $item, $item, $this->defaultLifetime, $metadata); - } - $save = $doSave; - - return $value; - }; - - return $wrap(); - } - - public function getItem(mixed $key): CacheItem - { - $syncItem = self::$syncItem; - $misses = []; - - foreach ($this->adapters as $i => $adapter) { - $item = $adapter->getItem($key); - - if ($item->isHit()) { - while (0 <= --$i) { - $this->adapters[$i]->save($syncItem($item, $misses[$i], $this->defaultLifetime)); - } - - return $item; - } - - $misses[$i] = $item; - } - - return $item; - } - - public function getItems(array $keys = []): iterable - { - return $this->generateItems($this->adapters[0]->getItems($keys), 0); - } - - private function generateItems(iterable $items, int $adapterIndex): \Generator - { - $missing = []; - $misses = []; - $nextAdapterIndex = $adapterIndex + 1; - $nextAdapter = $this->adapters[$nextAdapterIndex] ?? null; - - foreach ($items as $k => $item) { - if (!$nextAdapter || $item->isHit()) { - yield $k => $item; - } else { - $missing[] = $k; - $misses[$k] = $item; - } - } - - if ($missing) { - $syncItem = self::$syncItem; - $adapter = $this->adapters[$adapterIndex]; - $items = $this->generateItems($nextAdapter->getItems($missing), $nextAdapterIndex); - - foreach ($items as $k => $item) { - if ($item->isHit()) { - $adapter->save($syncItem($item, $misses[$k], $this->defaultLifetime)); - } - - yield $k => $item; - } - } - } - - public function hasItem(mixed $key): bool - { - foreach ($this->adapters as $adapter) { - if ($adapter->hasItem($key)) { - return true; - } - } - - return false; - } - - public function clear(string $prefix = ''): bool - { - $cleared = true; - $i = $this->adapterCount; - - while ($i--) { - if ($this->adapters[$i] instanceof AdapterInterface) { - $cleared = $this->adapters[$i]->clear($prefix) && $cleared; - } else { - $cleared = $this->adapters[$i]->clear() && $cleared; - } - } - - return $cleared; - } - - public function deleteItem(mixed $key): bool - { - $deleted = true; - $i = $this->adapterCount; - - while ($i--) { - $deleted = $this->adapters[$i]->deleteItem($key) && $deleted; - } - - return $deleted; - } - - public function deleteItems(array $keys): bool - { - $deleted = true; - $i = $this->adapterCount; - - while ($i--) { - $deleted = $this->adapters[$i]->deleteItems($keys) && $deleted; - } - - return $deleted; - } - - public function save(CacheItemInterface $item): bool - { - $saved = true; - $i = $this->adapterCount; - - while ($i--) { - $saved = $this->adapters[$i]->save($item) && $saved; - } - - return $saved; - } - - public function saveDeferred(CacheItemInterface $item): bool - { - $saved = true; - $i = $this->adapterCount; - - while ($i--) { - $saved = $this->adapters[$i]->saveDeferred($item) && $saved; - } - - return $saved; - } - - public function commit(): bool - { - $committed = true; - $i = $this->adapterCount; - - while ($i--) { - $committed = $this->adapters[$i]->commit() && $committed; - } - - return $committed; - } - - public function prune(): bool - { - $pruned = true; - - foreach ($this->adapters as $adapter) { - if ($adapter instanceof PruneableInterface) { - $pruned = $adapter->prune() && $pruned; - } - } - - return $pruned; - } - - /** - * @return void - */ - public function reset() - { - foreach ($this->adapters as $adapter) { - if ($adapter instanceof ResetInterface) { - $adapter->reset(); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php deleted file mode 100644 index 18136da..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php +++ /dev/null @@ -1,232 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Antonio Jose Cerezo Aranda - */ -class CouchbaseBucketAdapter extends AbstractAdapter -{ - private const THIRTY_DAYS_IN_SECONDS = 2592000; - private const MAX_KEY_LENGTH = 250; - private const KEY_NOT_FOUND = 13; - private const VALID_DSN_OPTIONS = [ - 'operationTimeout', - 'configTimeout', - 'configNodeTimeout', - 'n1qlTimeout', - 'httpTimeout', - 'configDelay', - 'htconfigIdleTimeout', - 'durabilityInterval', - 'durabilityTimeout', - ]; - - private \CouchbaseBucket $bucket; - private MarshallerInterface $marshaller; - - public function __construct(\CouchbaseBucket $bucket, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) - { - if (!static::isSupported()) { - throw new CacheException('Couchbase >= 2.6.0 < 3.0.0 is required.'); - } - - $this->maxIdLength = static::MAX_KEY_LENGTH; - - $this->bucket = $bucket; - - parent::__construct($namespace, $defaultLifetime); - $this->enableVersioning(); - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - public static function createConnection(#[\SensitiveParameter] array|string $servers, array $options = []): \CouchbaseBucket - { - if (\is_string($servers)) { - $servers = [$servers]; - } - - if (!static::isSupported()) { - throw new CacheException('Couchbase >= 2.6.0 < 3.0.0 is required.'); - } - - set_error_handler(static fn ($type, $msg, $file, $line) => throw new \ErrorException($msg, 0, $type, $file, $line)); - - $dsnPattern = '/^(?couchbase(?:s)?)\:\/\/(?:(?[^\:]+)\:(?[^\@]{6,})@)?' - .'(?[^\:]+(?:\:\d+)?)(?:\/(?[^\?]+))(?:\?(?.*))?$/i'; - - $newServers = []; - $protocol = 'couchbase'; - try { - $options = self::initOptions($options); - $username = $options['username']; - $password = $options['password']; - - foreach ($servers as $dsn) { - if (!str_starts_with($dsn, 'couchbase:')) { - throw new InvalidArgumentException('Invalid Couchbase DSN: it does not start with "couchbase:".'); - } - - preg_match($dsnPattern, $dsn, $matches); - - $username = $matches['username'] ?: $username; - $password = $matches['password'] ?: $password; - $protocol = $matches['protocol'] ?: $protocol; - - if (isset($matches['options'])) { - $optionsInDsn = self::getOptions($matches['options']); - - foreach ($optionsInDsn as $parameter => $value) { - $options[$parameter] = $value; - } - } - - $newServers[] = $matches['host']; - } - - $connectionString = $protocol.'://'.implode(',', $newServers); - - $client = new \CouchbaseCluster($connectionString); - $client->authenticateAs($username, $password); - - $bucket = $client->openBucket($matches['bucketName']); - - unset($options['username'], $options['password']); - foreach ($options as $option => $value) { - if (!empty($value)) { - $bucket->$option = $value; - } - } - - return $bucket; - } finally { - restore_error_handler(); - } - } - - public static function isSupported(): bool - { - return \extension_loaded('couchbase') && version_compare(phpversion('couchbase'), '2.6.0', '>=') && version_compare(phpversion('couchbase'), '3.0', '<'); - } - - private static function getOptions(string $options): array - { - $results = []; - $optionsInArray = explode('&', $options); - - foreach ($optionsInArray as $option) { - [$key, $value] = explode('=', $option); - - if (\in_array($key, static::VALID_DSN_OPTIONS, true)) { - $results[$key] = $value; - } - } - - return $results; - } - - private static function initOptions(array $options): array - { - $options['username'] ??= ''; - $options['password'] ??= ''; - $options['operationTimeout'] ??= 0; - $options['configTimeout'] ??= 0; - $options['configNodeTimeout'] ??= 0; - $options['n1qlTimeout'] ??= 0; - $options['httpTimeout'] ??= 0; - $options['configDelay'] ??= 0; - $options['htconfigIdleTimeout'] ??= 0; - $options['durabilityInterval'] ??= 0; - $options['durabilityTimeout'] ??= 0; - - return $options; - } - - protected function doFetch(array $ids): iterable - { - $resultsCouchbase = $this->bucket->get($ids); - - $results = []; - foreach ($resultsCouchbase as $key => $value) { - if (null !== $value->error) { - continue; - } - $results[$key] = $this->marshaller->unmarshall($value->value); - } - - return $results; - } - - protected function doHave(string $id): bool - { - return false !== $this->bucket->get($id); - } - - protected function doClear(string $namespace): bool - { - if ('' === $namespace) { - $this->bucket->manager()->flush(); - - return true; - } - - return false; - } - - protected function doDelete(array $ids): bool - { - $results = $this->bucket->remove(array_values($ids)); - - foreach ($results as $key => $result) { - if (null !== $result->error && static::KEY_NOT_FOUND !== $result->error->getCode()) { - continue; - } - unset($results[$key]); - } - - return 0 === \count($results); - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $lifetime = $this->normalizeExpiry($lifetime); - - $ko = []; - foreach ($values as $key => $value) { - $result = $this->bucket->upsert($key, $value, ['expiry' => $lifetime]); - - if (null !== $result->error) { - $ko[$key] = $result; - } - } - - return [] === $ko ? true : $ko; - } - - private function normalizeExpiry(int $expiry): int - { - if ($expiry && $expiry > static::THIRTY_DAYS_IN_SECONDS) { - $expiry += time(); - } - - return $expiry; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php deleted file mode 100644 index a1cfb08..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php +++ /dev/null @@ -1,199 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Couchbase\Bucket; -use Couchbase\Cluster; -use Couchbase\ClusterOptions; -use Couchbase\Collection; -use Couchbase\DocumentNotFoundException; -use Couchbase\UpsertOptions; -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Antonio Jose Cerezo Aranda - */ -class CouchbaseCollectionAdapter extends AbstractAdapter -{ - private const MAX_KEY_LENGTH = 250; - - private Collection $connection; - private MarshallerInterface $marshaller; - - public function __construct(Collection $connection, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) - { - if (!static::isSupported()) { - throw new CacheException('Couchbase >= 3.0.5 < 4.0.0 is required.'); - } - - $this->maxIdLength = static::MAX_KEY_LENGTH; - - $this->connection = $connection; - - parent::__construct($namespace, $defaultLifetime); - $this->enableVersioning(); - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - public static function createConnection(#[\SensitiveParameter] array|string $dsn, array $options = []): Bucket|Collection - { - if (\is_string($dsn)) { - $dsn = [$dsn]; - } - - if (!static::isSupported()) { - throw new CacheException('Couchbase >= 3.0.5 < 4.0.0 is required.'); - } - - set_error_handler(static fn ($type, $msg, $file, $line) => throw new \ErrorException($msg, 0, $type, $file, $line)); - - $dsnPattern = '/^(?couchbase(?:s)?)\:\/\/(?:(?[^\:]+)\:(?[^\@]{6,})@)?' - .'(?[^\:]+(?:\:\d+)?)(?:\/(?[^\/\?]+))(?:(?:\/(?[^\/]+))' - .'(?:\/(?[^\/\?]+)))?(?:\/)?(?:\?(?.*))?$/i'; - - $newServers = []; - $protocol = 'couchbase'; - try { - $username = $options['username'] ?? ''; - $password = $options['password'] ?? ''; - - foreach ($dsn as $server) { - if (!str_starts_with($server, 'couchbase:')) { - throw new InvalidArgumentException('Invalid Couchbase DSN: it does not start with "couchbase:".'); - } - - preg_match($dsnPattern, $server, $matches); - - $username = $matches['username'] ?: $username; - $password = $matches['password'] ?: $password; - $protocol = $matches['protocol'] ?: $protocol; - - if (isset($matches['options'])) { - $optionsInDsn = self::getOptions($matches['options']); - - foreach ($optionsInDsn as $parameter => $value) { - $options[$parameter] = $value; - } - } - - $newServers[] = $matches['host']; - } - - $option = isset($matches['options']) ? '?'.$matches['options'] : ''; - $connectionString = $protocol.'://'.implode(',', $newServers).$option; - - $clusterOptions = new ClusterOptions(); - $clusterOptions->credentials($username, $password); - - $client = new Cluster($connectionString, $clusterOptions); - - $bucket = $client->bucket($matches['bucketName']); - $collection = $bucket->defaultCollection(); - if (!empty($matches['scopeName'])) { - $scope = $bucket->scope($matches['scopeName']); - $collection = $scope->collection($matches['collectionName']); - } - - return $collection; - } finally { - restore_error_handler(); - } - } - - public static function isSupported(): bool - { - return \extension_loaded('couchbase') && version_compare(phpversion('couchbase'), '3.0.5', '>=') && version_compare(phpversion('couchbase'), '4.0', '<'); - } - - private static function getOptions(string $options): array - { - $results = []; - $optionsInArray = explode('&', $options); - - foreach ($optionsInArray as $option) { - [$key, $value] = explode('=', $option); - - $results[$key] = $value; - } - - return $results; - } - - protected function doFetch(array $ids): array - { - $results = []; - foreach ($ids as $id) { - try { - $resultCouchbase = $this->connection->get($id); - } catch (DocumentNotFoundException) { - continue; - } - - $content = $resultCouchbase->value ?? $resultCouchbase->content(); - - $results[$id] = $this->marshaller->unmarshall($content); - } - - return $results; - } - - protected function doHave($id): bool - { - return $this->connection->exists($id)->exists(); - } - - protected function doClear($namespace): bool - { - return false; - } - - protected function doDelete(array $ids): bool - { - $idsErrors = []; - foreach ($ids as $id) { - try { - $result = $this->connection->remove($id); - - if (null === $result->mutationToken()) { - $idsErrors[] = $id; - } - } catch (DocumentNotFoundException) { - } - } - - return 0 === \count($idsErrors); - } - - protected function doSave(array $values, $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $upsertOptions = new UpsertOptions(); - $upsertOptions->expiry($lifetime); - - $ko = []; - foreach ($values as $key => $value) { - try { - $this->connection->upsert($key, $value, $upsertOptions); - } catch (\Exception) { - $ko[$key] = ''; - } - } - - return [] === $ko ? true : $ko; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php deleted file mode 100644 index 9d02be3..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php +++ /dev/null @@ -1,413 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Doctrine\DBAL\ArrayParameterType; -use Doctrine\DBAL\Configuration; -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\Driver\ServerInfoAwareConnection; -use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Exception as DBALException; -use Doctrine\DBAL\Exception\TableNotFoundException; -use Doctrine\DBAL\ParameterType; -use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory; -use Doctrine\DBAL\Schema\Schema; -use Doctrine\DBAL\ServerVersionProvider; -use Doctrine\DBAL\Tools\DsnParser; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; - -class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface -{ - private const MAX_KEY_LENGTH = 255; - - private MarshallerInterface $marshaller; - private Connection $conn; - private string $platformName; - private string $serverVersion; - private string $table = 'cache_items'; - private string $idCol = 'item_id'; - private string $dataCol = 'item_data'; - private string $lifetimeCol = 'item_lifetime'; - private string $timeCol = 'item_time'; - private string $namespace; - - /** - * You can either pass an existing database Doctrine DBAL Connection or - * a DSN string that will be used to connect to the database. - * - * The cache table is created automatically when possible. - * Otherwise, use the createTable() method. - * - * List of available options: - * * db_table: The name of the table [default: cache_items] - * * db_id_col: The column where to store the cache id [default: item_id] - * * db_data_col: The column where to store the cache data [default: item_data] - * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] - * * db_time_col: The column where to store the timestamp [default: item_time] - * - * @throws InvalidArgumentException When namespace contains invalid characters - */ - public function __construct(Connection|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null) - { - if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); - } - - if ($connOrDsn instanceof Connection) { - $this->conn = $connOrDsn; - } else { - if (!class_exists(DriverManager::class)) { - throw new InvalidArgumentException('Failed to parse DSN. Try running "composer require doctrine/dbal".'); - } - if (class_exists(DsnParser::class)) { - $params = (new DsnParser([ - 'db2' => 'ibm_db2', - 'mssql' => 'pdo_sqlsrv', - 'mysql' => 'pdo_mysql', - 'mysql2' => 'pdo_mysql', - 'postgres' => 'pdo_pgsql', - 'postgresql' => 'pdo_pgsql', - 'pgsql' => 'pdo_pgsql', - 'sqlite' => 'pdo_sqlite', - 'sqlite3' => 'pdo_sqlite', - ]))->parse($connOrDsn); - } else { - $params = ['url' => $connOrDsn]; - } - - $config = new Configuration(); - if (class_exists(DefaultSchemaManagerFactory::class)) { - $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory()); - } - - $this->conn = DriverManager::getConnection($params, $config); - } - - $this->maxIdLength = self::MAX_KEY_LENGTH; - $this->table = $options['db_table'] ?? $this->table; - $this->idCol = $options['db_id_col'] ?? $this->idCol; - $this->dataCol = $options['db_data_col'] ?? $this->dataCol; - $this->lifetimeCol = $options['db_lifetime_col'] ?? $this->lifetimeCol; - $this->timeCol = $options['db_time_col'] ?? $this->timeCol; - $this->namespace = $namespace; - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - - parent::__construct($namespace, $defaultLifetime); - } - - /** - * Creates the table to store cache items which can be called once for setup. - * - * Cache ID are saved in a column of maximum length 255. Cache data is - * saved in a BLOB. - * - * @throws DBALException When the table already exists - */ - public function createTable(): void - { - $schema = new Schema(); - $this->addTableToSchema($schema); - - foreach ($schema->toSql($this->conn->getDatabasePlatform()) as $sql) { - $this->conn->executeStatement($sql); - } - } - - /** - * @param \Closure $isSameDatabase - */ - public function configureSchema(Schema $schema, Connection $forConnection/* , \Closure $isSameDatabase */): void - { - if ($schema->hasTable($this->table)) { - return; - } - - $isSameDatabase = 2 < \func_num_args() ? func_get_arg(2) : static fn () => false; - - if ($forConnection !== $this->conn && !$isSameDatabase($this->conn->executeStatement(...))) { - return; - } - - $this->addTableToSchema($schema); - } - - public function prune(): bool - { - $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ?"; - $params = [time()]; - $paramTypes = [ParameterType::INTEGER]; - - if ('' !== $this->namespace) { - $deleteSql .= " AND $this->idCol LIKE ?"; - $params[] = sprintf('%s%%', $this->namespace); - $paramTypes[] = ParameterType::STRING; - } - - try { - $this->conn->executeStatement($deleteSql, $params, $paramTypes); - } catch (TableNotFoundException) { - } - - return true; - } - - protected function doFetch(array $ids): iterable - { - $now = time(); - $expired = []; - - $sql = "SELECT $this->idCol, CASE WHEN $this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ? THEN $this->dataCol ELSE NULL END FROM $this->table WHERE $this->idCol IN (?)"; - $result = $this->conn->executeQuery($sql, [ - $now, - $ids, - ], [ - ParameterType::INTEGER, - class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY, - ])->iterateNumeric(); - - foreach ($result as $row) { - if (null === $row[1]) { - $expired[] = $row[0]; - } else { - yield $row[0] => $this->marshaller->unmarshall(\is_resource($row[1]) ? stream_get_contents($row[1]) : $row[1]); - } - } - - if ($expired) { - $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ? AND $this->idCol IN (?)"; - $this->conn->executeStatement($sql, [ - $now, - $expired, - ], [ - ParameterType::INTEGER, - class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY, - ]); - } - } - - protected function doHave(string $id): bool - { - $sql = "SELECT 1 FROM $this->table WHERE $this->idCol = ? AND ($this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ?)"; - $result = $this->conn->executeQuery($sql, [ - $id, - time(), - ], [ - ParameterType::STRING, - ParameterType::INTEGER, - ]); - - return (bool) $result->fetchOne(); - } - - protected function doClear(string $namespace): bool - { - if ('' === $namespace) { - $sql = $this->conn->getDatabasePlatform()->getTruncateTableSQL($this->table); - } else { - $sql = "DELETE FROM $this->table WHERE $this->idCol LIKE '$namespace%'"; - } - - try { - $this->conn->executeStatement($sql); - } catch (TableNotFoundException) { - } - - return true; - } - - protected function doDelete(array $ids): bool - { - $sql = "DELETE FROM $this->table WHERE $this->idCol IN (?)"; - try { - $this->conn->executeStatement($sql, [array_values($ids)], [class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY]); - } catch (TableNotFoundException) { - } - - return true; - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $platformName = $this->getPlatformName(); - $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?)"; - - switch (true) { - case 'mysql' === $platformName: - $sql = $insertSql." ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->lifetimeCol = VALUES($this->lifetimeCol), $this->timeCol = VALUES($this->timeCol)"; - break; - case 'oci' === $platformName: - // DUAL is Oracle specific dummy table - $sql = "MERGE INTO $this->table USING DUAL ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?"; - break; - case 'sqlsrv' === $platformName && version_compare($this->getServerVersion(), '10', '>='): - // MERGE is only available since SQL Server 2008 and must be terminated by semicolon - // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx - $sql = "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?;"; - break; - case 'sqlite' === $platformName: - $sql = 'INSERT OR REPLACE'.substr($insertSql, 6); - break; - case 'pgsql' === $platformName && version_compare($this->getServerVersion(), '9.5', '>='): - $sql = $insertSql." ON CONFLICT ($this->idCol) DO UPDATE SET ($this->dataCol, $this->lifetimeCol, $this->timeCol) = (EXCLUDED.$this->dataCol, EXCLUDED.$this->lifetimeCol, EXCLUDED.$this->timeCol)"; - break; - default: - $platformName = null; - $sql = "UPDATE $this->table SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ? WHERE $this->idCol = ?"; - break; - } - - $now = time(); - $lifetime = $lifetime ?: null; - try { - $stmt = $this->conn->prepare($sql); - } catch (TableNotFoundException) { - if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt = $this->conn->prepare($sql); - } - - if ('sqlsrv' === $platformName || 'oci' === $platformName) { - $bind = static function ($id, $data) use ($stmt) { - $stmt->bindValue(1, $id); - $stmt->bindValue(2, $id); - $stmt->bindValue(3, $data, ParameterType::LARGE_OBJECT); - $stmt->bindValue(6, $data, ParameterType::LARGE_OBJECT); - }; - $stmt->bindValue(4, $lifetime, ParameterType::INTEGER); - $stmt->bindValue(5, $now, ParameterType::INTEGER); - $stmt->bindValue(7, $lifetime, ParameterType::INTEGER); - $stmt->bindValue(8, $now, ParameterType::INTEGER); - } elseif (null !== $platformName) { - $bind = static function ($id, $data) use ($stmt) { - $stmt->bindValue(1, $id); - $stmt->bindValue(2, $data, ParameterType::LARGE_OBJECT); - }; - $stmt->bindValue(3, $lifetime, ParameterType::INTEGER); - $stmt->bindValue(4, $now, ParameterType::INTEGER); - } else { - $stmt->bindValue(2, $lifetime, ParameterType::INTEGER); - $stmt->bindValue(3, $now, ParameterType::INTEGER); - - $insertStmt = $this->conn->prepare($insertSql); - $insertStmt->bindValue(3, $lifetime, ParameterType::INTEGER); - $insertStmt->bindValue(4, $now, ParameterType::INTEGER); - - $bind = static function ($id, $data) use ($stmt, $insertStmt) { - $stmt->bindValue(1, $data, ParameterType::LARGE_OBJECT); - $stmt->bindValue(4, $id); - $insertStmt->bindValue(1, $id); - $insertStmt->bindValue(2, $data, ParameterType::LARGE_OBJECT); - }; - } - - foreach ($values as $id => $data) { - $bind($id, $data); - try { - $rowCount = $stmt->executeStatement(); - } catch (TableNotFoundException) { - if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $rowCount = $stmt->executeStatement(); - } - if (null === $platformName && 0 === $rowCount) { - try { - $insertStmt->executeStatement(); - } catch (DBALException) { - // A concurrent write won, let it be - } - } - } - - return $failed; - } - - /** - * @internal - */ - protected function getId(mixed $key): string - { - if ('pgsql' !== $this->platformName ??= $this->getPlatformName()) { - return parent::getId($key); - } - - if (str_contains($key, "\0") || str_contains($key, '%') || !preg_match('//u', $key)) { - $key = rawurlencode($key); - } - - return parent::getId($key); - } - - private function getPlatformName(): string - { - if (isset($this->platformName)) { - return $this->platformName; - } - - $platform = $this->conn->getDatabasePlatform(); - - return $this->platformName = match (true) { - $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform => 'mysql', - $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform => 'sqlite', - $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform => 'pgsql', - $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform => 'oci', - $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform => 'sqlsrv', - default => $platform::class, - }; - } - - private function getServerVersion(): string - { - if (isset($this->serverVersion)) { - return $this->serverVersion; - } - - if ($this->conn instanceof ServerVersionProvider || $this->conn instanceof ServerInfoAwareConnection) { - return $this->serverVersion = $this->conn->getServerVersion(); - } - - // The condition should be removed once support for DBAL <3.3 is dropped - $conn = method_exists($this->conn, 'getNativeConnection') ? $this->conn->getNativeConnection() : $this->conn->getWrappedConnection(); - - return $this->serverVersion = $conn->getAttribute(\PDO::ATTR_SERVER_VERSION); - } - - private function addTableToSchema(Schema $schema): void - { - $types = [ - 'mysql' => 'binary', - 'sqlite' => 'text', - ]; - - $table = $schema->createTable($this->table); - $table->addColumn($this->idCol, $types[$this->getPlatformName()] ?? 'string', ['length' => 255]); - $table->addColumn($this->dataCol, 'blob', ['length' => 16777215]); - $table->addColumn($this->lifetimeCol, 'integer', ['unsigned' => true, 'notnull' => false]); - $table->addColumn($this->timeCol, 'integer', ['unsigned' => true]); - $table->setPrimaryKey([$this->idCol]); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemAdapter.php deleted file mode 100644 index 13daa56..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemAdapter.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemTrait; - -class FilesystemAdapter extends AbstractAdapter implements PruneableInterface -{ - use FilesystemTrait; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, ?MarshallerInterface $marshaller = null) - { - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php deleted file mode 100644 index 80edee4..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php +++ /dev/null @@ -1,267 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Marshaller\TagAwareMarshaller; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemTrait; - -/** - * Stores tag id <> cache id relationship as a symlink, and lookup on invalidation calls. - * - * @author Nicolas Grekas - * @author André Rømcke - */ -class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements PruneableInterface -{ - use FilesystemTrait { - prune as private doPrune; - doClear as private doClearCache; - doSave as private doSaveCache; - } - - /** - * Folder used for tag symlinks. - */ - private const TAG_FOLDER = 'tags'; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, ?MarshallerInterface $marshaller = null) - { - $this->marshaller = new TagAwareMarshaller($marshaller); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - } - - public function prune(): bool - { - $ok = $this->doPrune(); - - set_error_handler(static function () {}); - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - try { - foreach ($this->scanHashDir($this->directory.self::TAG_FOLDER.\DIRECTORY_SEPARATOR) as $dir) { - $dir .= \DIRECTORY_SEPARATOR; - $keepDir = false; - for ($i = 0; $i < 38; ++$i) { - if (!is_dir($dir.$chars[$i])) { - continue; - } - for ($j = 0; $j < 38; ++$j) { - if (!is_dir($d = $dir.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j])) { - continue; - } - foreach (scandir($d, \SCANDIR_SORT_NONE) ?: [] as $link) { - if ('.' === $link || '..' === $link) { - continue; - } - if ('_' !== $dir[-2] && realpath($d.\DIRECTORY_SEPARATOR.$link)) { - $keepDir = true; - } else { - unlink($d.\DIRECTORY_SEPARATOR.$link); - } - } - $keepDir ?: rmdir($d); - } - $keepDir ?: rmdir($dir.$chars[$i]); - } - $keepDir ?: rmdir($dir); - } - } finally { - restore_error_handler(); - } - - return $ok; - } - - protected function doClear(string $namespace): bool - { - $ok = $this->doClearCache($namespace); - - if ('' !== $namespace) { - return $ok; - } - - set_error_handler(static function () {}); - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - $this->tmpSuffix ??= str_replace('/', '-', base64_encode(random_bytes(6))); - - try { - foreach ($this->scanHashDir($this->directory.self::TAG_FOLDER.\DIRECTORY_SEPARATOR) as $dir) { - if (rename($dir, $renamed = substr_replace($dir, $this->tmpSuffix.'_', -9))) { - $dir = $renamed.\DIRECTORY_SEPARATOR; - } else { - $dir .= \DIRECTORY_SEPARATOR; - $renamed = null; - } - - for ($i = 0; $i < 38; ++$i) { - if (!is_dir($dir.$chars[$i])) { - continue; - } - for ($j = 0; $j < 38; ++$j) { - if (!is_dir($d = $dir.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j])) { - continue; - } - foreach (scandir($d, \SCANDIR_SORT_NONE) ?: [] as $link) { - if ('.' !== $link && '..' !== $link && (null !== $renamed || !realpath($d.\DIRECTORY_SEPARATOR.$link))) { - unlink($d.\DIRECTORY_SEPARATOR.$link); - } - } - null === $renamed ?: rmdir($d); - } - null === $renamed ?: rmdir($dir.$chars[$i]); - } - null === $renamed ?: rmdir($renamed); - } - } finally { - restore_error_handler(); - } - - return $ok; - } - - protected function doSave(array $values, int $lifetime, array $addTagData = [], array $removeTagData = []): array - { - $failed = $this->doSaveCache($values, $lifetime); - - // Add Tags as symlinks - foreach ($addTagData as $tagId => $ids) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($ids as $id) { - if ($failed && \in_array($id, $failed, true)) { - continue; - } - - $file = $this->getFile($id); - - if (!@symlink($file, $tagLink = $this->getFile($id, true, $tagFolder)) && !is_link($tagLink)) { - @unlink($file); - $failed[] = $id; - } - } - } - - // Unlink removed Tags - foreach ($removeTagData as $tagId => $ids) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($ids as $id) { - if ($failed && \in_array($id, $failed, true)) { - continue; - } - - @unlink($this->getFile($id, false, $tagFolder)); - } - } - - return $failed; - } - - protected function doDeleteYieldTags(array $ids): iterable - { - foreach ($ids as $id) { - $file = $this->getFile($id); - if (!is_file($file) || !$h = @fopen($file, 'r')) { - continue; - } - - if (!@unlink($file)) { - fclose($h); - continue; - } - - $meta = explode("\n", fread($h, 4096), 3)[2] ?? ''; - - // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (13 < \strlen($meta) && "\x9D" === $meta[0] && "\0" === $meta[5] && "\x5F" === $meta[9]) { - $meta[9] = "\0"; - $tagLen = unpack('Nlen', $meta, 9)['len']; - $meta = substr($meta, 13, $tagLen); - - if (0 < $tagLen -= \strlen($meta)) { - $meta .= fread($h, $tagLen); - } - - try { - yield $id => '' === $meta ? [] : $this->marshaller->unmarshall($meta); - } catch (\Exception) { - yield $id => []; - } - } - - fclose($h); - } - } - - protected function doDeleteTagRelations(array $tagData): bool - { - foreach ($tagData as $tagId => $idList) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($idList as $id) { - @unlink($this->getFile($id, false, $tagFolder)); - } - } - - return true; - } - - protected function doInvalidate(array $tagIds): bool - { - foreach ($tagIds as $tagId) { - if (!is_dir($tagFolder = $this->getTagFolder($tagId))) { - continue; - } - - $this->tmpSuffix ??= str_replace('/', '-', base64_encode(random_bytes(6))); - - set_error_handler(static function () {}); - - try { - if (rename($tagFolder, $renamed = substr_replace($tagFolder, $this->tmpSuffix.'_', -10))) { - $tagFolder = $renamed.\DIRECTORY_SEPARATOR; - } else { - $renamed = null; - } - - foreach ($this->scanHashDir($tagFolder) as $itemLink) { - unlink(realpath($itemLink) ?: $itemLink); - unlink($itemLink); - } - - if (null === $renamed) { - continue; - } - - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - for ($i = 0; $i < 38; ++$i) { - for ($j = 0; $j < 38; ++$j) { - rmdir($tagFolder.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j]); - } - rmdir($tagFolder.$chars[$i]); - } - rmdir($renamed); - } finally { - restore_error_handler(); - } - } - - return true; - } - - private function getTagFolder(string $tagId): string - { - return $this->getFile($tagId, false, $this->directory.self::TAG_FOLDER.\DIRECTORY_SEPARATOR).\DIRECTORY_SEPARATOR; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/MemcachedAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/MemcachedAdapter.php deleted file mode 100644 index 0efa152..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/MemcachedAdapter.php +++ /dev/null @@ -1,332 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Rob Frawley 2nd - * @author Nicolas Grekas - */ -class MemcachedAdapter extends AbstractAdapter -{ - /** - * We are replacing characters that are illegal in Memcached keys with reserved characters from - * {@see \Symfony\Contracts\Cache\ItemInterface::RESERVED_CHARACTERS} that are legal in Memcached. - * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}. - */ - private const RESERVED_MEMCACHED = " \n\r\t\v\f\0"; - private const RESERVED_PSR6 = '@()\{}/'; - private const MAX_KEY_LENGTH = 250; - - private MarshallerInterface $marshaller; - private \Memcached $client; - private \Memcached $lazyClient; - - /** - * Using a MemcachedAdapter with a TagAwareAdapter for storing tags is discouraged. - * Using a RedisAdapter is recommended instead. If you cannot do otherwise, be aware that: - * - the Memcached::OPT_BINARY_PROTOCOL must be enabled - * (that's the default when using MemcachedAdapter::createConnection()); - * - tags eviction by Memcached's LRU algorithm will break by-tags invalidation; - * your Memcached memory should be large enough to never trigger LRU. - * - * Using a MemcachedAdapter as a pure items store is fine. - */ - public function __construct(\Memcached $client, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) - { - if (!static::isSupported()) { - throw new CacheException('Memcached > 3.1.5 is required.'); - } - $this->maxIdLength = self::MAX_KEY_LENGTH; - - if ('Memcached' === $client::class) { - $opt = $client->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - $this->maxIdLength -= \strlen($client->getOption(\Memcached::OPT_PREFIX_KEY)); - $this->client = $client; - } else { - $this->lazyClient = $client; - } - - parent::__construct($namespace, $defaultLifetime); - $this->enableVersioning(); - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * @return bool - */ - public static function isSupported() - { - return \extension_loaded('memcached') && version_compare(phpversion('memcached'), '3.1.6', '>='); - } - - /** - * Creates a Memcached instance. - * - * By default, the binary protocol, no block, and libketama compatible options are enabled. - * - * Examples for servers: - * - 'memcached://user:pass@localhost?weight=33' - * - [['localhost', 11211, 33]] - * - * @param array[]|string|string[] $servers An array of servers, a DSN, or an array of DSNs - * - * @throws \ErrorException When invalid options or servers are provided - */ - public static function createConnection(#[\SensitiveParameter] array|string $servers, array $options = []): \Memcached - { - if (\is_string($servers)) { - $servers = [$servers]; - } - if (!static::isSupported()) { - throw new CacheException('Memcached > 3.1.5 is required.'); - } - set_error_handler(static fn ($type, $msg, $file, $line) => throw new \ErrorException($msg, 0, $type, $file, $line)); - try { - $client = new \Memcached($options['persistent_id'] ?? null); - $username = $options['username'] ?? null; - $password = $options['password'] ?? null; - - // parse any DSN in $servers - foreach ($servers as $i => $dsn) { - if (\is_array($dsn)) { - continue; - } - if (!str_starts_with($dsn, 'memcached:')) { - throw new InvalidArgumentException('Invalid Memcached DSN: it does not start with "memcached:".'); - } - $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', function ($m) use (&$username, &$password) { - if (!empty($m[2])) { - [$username, $password] = explode(':', $m[2], 2) + [1 => null]; - $username = rawurldecode($username); - $password = null !== $password ? rawurldecode($password) : null; - } - - return 'file:'.($m[1] ?? ''); - }, $dsn); - if (false === $params = parse_url($params)) { - throw new InvalidArgumentException('Invalid Memcached DSN.'); - } - $query = $hosts = []; - if (isset($params['query'])) { - parse_str($params['query'], $query); - - if (isset($query['host'])) { - if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException('Invalid Memcached DSN: query parameter "host" must be an array.'); - } - foreach ($hosts as $host => $weight) { - if (false === $port = strrpos($host, ':')) { - $hosts[$host] = [$host, 11211, (int) $weight]; - } else { - $hosts[$host] = [substr($host, 0, $port), (int) substr($host, 1 + $port), (int) $weight]; - } - } - $hosts = array_values($hosts); - unset($query['host']); - } - if ($hosts && !isset($params['host']) && !isset($params['path'])) { - unset($servers[$i]); - $servers = array_merge($servers, $hosts); - continue; - } - } - if (!isset($params['host']) && !isset($params['path'])) { - throw new InvalidArgumentException('Invalid Memcached DSN: missing host or path.'); - } - if (isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { - $params['weight'] = $m[1]; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); - } - $params += [ - 'host' => $params['host'] ?? $params['path'], - 'port' => isset($params['host']) ? 11211 : null, - 'weight' => 0, - ]; - if ($query) { - $params += $query; - $options = $query + $options; - } - - $servers[$i] = [$params['host'], $params['port'], $params['weight']]; - - if ($hosts) { - $servers = array_merge($servers, $hosts); - } - } - - // set client's options - unset($options['persistent_id'], $options['username'], $options['password'], $options['weight'], $options['lazy']); - $options = array_change_key_case($options, \CASE_UPPER); - $client->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); - $client->setOption(\Memcached::OPT_NO_BLOCK, true); - $client->setOption(\Memcached::OPT_TCP_NODELAY, true); - if (!\array_key_exists('LIBKETAMA_COMPATIBLE', $options) && !\array_key_exists(\Memcached::OPT_LIBKETAMA_COMPATIBLE, $options)) { - $client->setOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE, true); - } - foreach ($options as $name => $value) { - if (\is_int($name)) { - continue; - } - if ('HASH' === $name || 'SERIALIZER' === $name || 'DISTRIBUTION' === $name) { - $value = \constant('Memcached::'.$name.'_'.strtoupper($value)); - } - unset($options[$name]); - - if (\defined('Memcached::OPT_'.$name)) { - $options[\constant('Memcached::OPT_'.$name)] = $value; - } - } - $client->setOptions($options + [\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP]); - - // set client's servers, taking care of persistent connections - if (!$client->isPristine()) { - $oldServers = []; - foreach ($client->getServerList() as $server) { - $oldServers[] = [$server['host'], $server['port']]; - } - - $newServers = []; - foreach ($servers as $server) { - if (1 < \count($server)) { - $server = array_values($server); - unset($server[2]); - $server[1] = (int) $server[1]; - } - $newServers[] = $server; - } - - if ($oldServers !== $newServers) { - $client->resetServerList(); - $client->addServers($servers); - } - } else { - $client->addServers($servers); - } - - if (null !== $username || null !== $password) { - if (!method_exists($client, 'setSaslAuthData')) { - trigger_error('Missing SASL support: the memcached extension must be compiled with --enable-memcached-sasl.'); - } - $client->setSaslAuthData($username, $password); - } - - return $client; - } finally { - restore_error_handler(); - } - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - if ($lifetime && $lifetime > 30 * 86400) { - $lifetime += time(); - } - - $encodedValues = []; - foreach ($values as $key => $value) { - $encodedValues[self::encodeKey($key)] = $value; - } - - return $this->checkResultCode($this->getClient()->setMulti($encodedValues, $lifetime)) ? $failed : false; - } - - protected function doFetch(array $ids): iterable - { - try { - $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); - - $encodedResult = $this->checkResultCode($this->getClient()->getMulti($encodedIds)); - - $result = []; - foreach ($encodedResult as $key => $value) { - $result[self::decodeKey($key)] = $this->marshaller->unmarshall($value); - } - - return $result; - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), \E_ERROR, $e->getFile(), $e->getLine()); - } - } - - protected function doHave(string $id): bool - { - return false !== $this->getClient()->get(self::encodeKey($id)) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); - } - - protected function doDelete(array $ids): bool - { - $ok = true; - $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); - foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) { - if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) { - $ok = false; - } - } - - return $ok; - } - - protected function doClear(string $namespace): bool - { - return '' === $namespace && $this->getClient()->flush(); - } - - private function checkResultCode(mixed $result): mixed - { - $code = $this->client->getResultCode(); - - if (\Memcached::RES_SUCCESS === $code || \Memcached::RES_NOTFOUND === $code) { - return $result; - } - - throw new CacheException('MemcachedAdapter client error: '.strtolower($this->client->getResultMessage())); - } - - private function getClient(): \Memcached - { - if (isset($this->client)) { - return $this->client; - } - - $opt = $this->lazyClient->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - if ('' !== $prefix = (string) $this->lazyClient->getOption(\Memcached::OPT_PREFIX_KEY)) { - throw new CacheException(sprintf('MemcachedAdapter: "prefix_key" option must be empty when using proxified connections, "%s" given.', $prefix)); - } - - return $this->client = $this->lazyClient; - } - - private static function encodeKey(string $key): string - { - return strtr($key, self::RESERVED_MEMCACHED, self::RESERVED_PSR6); - } - - private static function decodeKey(string $key): string - { - return strtr($key, self::RESERVED_PSR6, self::RESERVED_MEMCACHED); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/NullAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/NullAdapter.php deleted file mode 100644 index d5d2ef6..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/NullAdapter.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Titouan Galopin - */ -class NullAdapter implements AdapterInterface, CacheInterface -{ - private static \Closure $createCacheItem; - - public function __construct() - { - self::$createCacheItem ??= \Closure::bind( - static function ($key) { - $item = new CacheItem(); - $item->key = $key; - $item->isHit = false; - - return $item; - }, - null, - CacheItem::class - ); - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - $save = true; - - return $callback((self::$createCacheItem)($key), $save); - } - - public function getItem(mixed $key): CacheItem - { - return (self::$createCacheItem)($key); - } - - public function getItems(array $keys = []): iterable - { - return $this->generateItems($keys); - } - - public function hasItem(mixed $key): bool - { - return false; - } - - public function clear(string $prefix = ''): bool - { - return true; - } - - public function deleteItem(mixed $key): bool - { - return true; - } - - public function deleteItems(array $keys): bool - { - return true; - } - - public function save(CacheItemInterface $item): bool - { - return true; - } - - public function saveDeferred(CacheItemInterface $item): bool - { - return true; - } - - public function commit(): bool - { - return true; - } - - public function delete(string $key): bool - { - return $this->deleteItem($key); - } - - private function generateItems(array $keys): \Generator - { - $f = self::$createCacheItem; - - foreach ($keys as $key) { - yield $key => $f($key); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/ParameterNormalizer.php b/projects/priceservice/vendor/symfony/cache/Adapter/ParameterNormalizer.php deleted file mode 100644 index a689640..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/ParameterNormalizer.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -/** - * @author Lars Strojny - */ -final class ParameterNormalizer -{ - public static function normalizeDuration(string $duration): int - { - if (is_numeric($duration)) { - return $duration; - } - - if (false !== $time = strtotime($duration, 0)) { - return $time; - } - - try { - return \DateTimeImmutable::createFromFormat('U', 0)->add(new \DateInterval($duration))->getTimestamp(); - } catch (\Exception $e) { - throw new \InvalidArgumentException(sprintf('Cannot parse date interval "%s".', $duration), 0, $e); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/PdoAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/PdoAdapter.php deleted file mode 100644 index c79b739..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/PdoAdapter.php +++ /dev/null @@ -1,388 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; - -class PdoAdapter extends AbstractAdapter implements PruneableInterface -{ - private const MAX_KEY_LENGTH = 255; - - private MarshallerInterface $marshaller; - private \PDO $conn; - private string $dsn; - private string $driver; - private string $serverVersion; - private string $table = 'cache_items'; - private string $idCol = 'item_id'; - private string $dataCol = 'item_data'; - private string $lifetimeCol = 'item_lifetime'; - private string $timeCol = 'item_time'; - private ?string $username = null; - private ?string $password = null; - private array $connectionOptions = []; - private string $namespace; - - /** - * You can either pass an existing database connection as PDO instance or - * a DSN string that will be used to lazy-connect to the database when the - * cache is actually used. - * - * List of available options: - * * db_table: The name of the table [default: cache_items] - * * db_id_col: The column where to store the cache id [default: item_id] - * * db_data_col: The column where to store the cache data [default: item_data] - * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] - * * db_time_col: The column where to store the timestamp [default: item_time] - * * db_username: The username when lazy-connect [default: ''] - * * db_password: The password when lazy-connect [default: ''] - * * db_connection_options: An array of driver-specific connection options [default: []] - * - * @throws InvalidArgumentException When first argument is not PDO nor Connection nor string - * @throws InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION - * @throws InvalidArgumentException When namespace contains invalid characters - */ - public function __construct(#[\SensitiveParameter] \PDO|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null) - { - if (\is_string($connOrDsn) && str_contains($connOrDsn, '://')) { - throw new InvalidArgumentException(sprintf('Usage of Doctrine DBAL URL with "%s" is not supported. Use a PDO DSN or "%s" instead.', __CLASS__, DoctrineDbalAdapter::class)); - } - - if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); - } - - if ($connOrDsn instanceof \PDO) { - if (\PDO::ERRMODE_EXCEPTION !== $connOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) { - throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__)); - } - - $this->conn = $connOrDsn; - } else { - $this->dsn = $connOrDsn; - } - - $this->maxIdLength = self::MAX_KEY_LENGTH; - $this->table = $options['db_table'] ?? $this->table; - $this->idCol = $options['db_id_col'] ?? $this->idCol; - $this->dataCol = $options['db_data_col'] ?? $this->dataCol; - $this->lifetimeCol = $options['db_lifetime_col'] ?? $this->lifetimeCol; - $this->timeCol = $options['db_time_col'] ?? $this->timeCol; - $this->username = $options['db_username'] ?? $this->username; - $this->password = $options['db_password'] ?? $this->password; - $this->connectionOptions = $options['db_connection_options'] ?? $this->connectionOptions; - $this->namespace = $namespace; - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - - parent::__construct($namespace, $defaultLifetime); - } - - /** - * Creates the table to store cache items which can be called once for setup. - * - * Cache ID are saved in a column of maximum length 255. Cache data is - * saved in a BLOB. - * - * @return void - * - * @throws \PDOException When the table already exists - * @throws \DomainException When an unsupported PDO driver is used - */ - public function createTable() - { - $sql = match ($driver = $this->getDriver()) { - // We use varbinary for the ID column because it prevents unwanted conversions: - // - character set conversions between server and client - // - trailing space removal - // - case-insensitivity - // - language processing like é == e - 'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB", - 'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(255) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - default => throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $driver)), - }; - - $this->getConnection()->exec($sql); - } - - public function prune(): bool - { - $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= :time"; - - if ('' !== $this->namespace) { - $deleteSql .= " AND $this->idCol LIKE :namespace"; - } - - $connection = $this->getConnection(); - - try { - $delete = $connection->prepare($deleteSql); - } catch (\PDOException) { - return true; - } - $delete->bindValue(':time', time(), \PDO::PARAM_INT); - - if ('' !== $this->namespace) { - $delete->bindValue(':namespace', sprintf('%s%%', $this->namespace), \PDO::PARAM_STR); - } - try { - return $delete->execute(); - } catch (\PDOException) { - return true; - } - } - - protected function doFetch(array $ids): iterable - { - $connection = $this->getConnection(); - - $now = time(); - $expired = []; - - $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); - $sql = "SELECT $this->idCol, CASE WHEN $this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ? THEN $this->dataCol ELSE NULL END FROM $this->table WHERE $this->idCol IN ($sql)"; - $stmt = $connection->prepare($sql); - $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); - foreach ($ids as $id) { - $stmt->bindValue(++$i, $id); - } - $result = $stmt->execute(); - - if (\is_object($result)) { - $result = $result->iterateNumeric(); - } else { - $stmt->setFetchMode(\PDO::FETCH_NUM); - $result = $stmt; - } - - foreach ($result as $row) { - if (null === $row[1]) { - $expired[] = $row[0]; - } else { - yield $row[0] => $this->marshaller->unmarshall(\is_resource($row[1]) ? stream_get_contents($row[1]) : $row[1]); - } - } - - if ($expired) { - $sql = str_pad('', (\count($expired) << 1) - 1, '?,'); - $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ? AND $this->idCol IN ($sql)"; - $stmt = $connection->prepare($sql); - $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); - foreach ($expired as $id) { - $stmt->bindValue(++$i, $id); - } - $stmt->execute(); - } - } - - protected function doHave(string $id): bool - { - $connection = $this->getConnection(); - - $sql = "SELECT 1 FROM $this->table WHERE $this->idCol = :id AND ($this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > :time)"; - $stmt = $connection->prepare($sql); - - $stmt->bindValue(':id', $id); - $stmt->bindValue(':time', time(), \PDO::PARAM_INT); - $stmt->execute(); - - return (bool) $stmt->fetchColumn(); - } - - protected function doClear(string $namespace): bool - { - $conn = $this->getConnection(); - - if ('' === $namespace) { - if ('sqlite' === $this->getDriver()) { - $sql = "DELETE FROM $this->table"; - } else { - $sql = "TRUNCATE TABLE $this->table"; - } - } else { - $sql = "DELETE FROM $this->table WHERE $this->idCol LIKE '$namespace%'"; - } - - try { - $conn->exec($sql); - } catch (\PDOException) { - } - - return true; - } - - protected function doDelete(array $ids): bool - { - $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); - $sql = "DELETE FROM $this->table WHERE $this->idCol IN ($sql)"; - try { - $stmt = $this->getConnection()->prepare($sql); - $stmt->execute(array_values($ids)); - } catch (\PDOException) { - } - - return true; - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $conn = $this->getConnection(); - - $driver = $this->getDriver(); - $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)"; - - switch (true) { - case 'mysql' === $driver: - $sql = $insertSql." ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->lifetimeCol = VALUES($this->lifetimeCol), $this->timeCol = VALUES($this->timeCol)"; - break; - case 'oci' === $driver: - // DUAL is Oracle specific dummy table - $sql = "MERGE INTO $this->table USING DUAL ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?"; - break; - case 'sqlsrv' === $driver && version_compare($this->getServerVersion(), '10', '>='): - // MERGE is only available since SQL Server 2008 and must be terminated by semicolon - // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx - $sql = "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?;"; - break; - case 'sqlite' === $driver: - $sql = 'INSERT OR REPLACE'.substr($insertSql, 6); - break; - case 'pgsql' === $driver && version_compare($this->getServerVersion(), '9.5', '>='): - $sql = $insertSql." ON CONFLICT ($this->idCol) DO UPDATE SET ($this->dataCol, $this->lifetimeCol, $this->timeCol) = (EXCLUDED.$this->dataCol, EXCLUDED.$this->lifetimeCol, EXCLUDED.$this->timeCol)"; - break; - default: - $driver = null; - $sql = "UPDATE $this->table SET $this->dataCol = :data, $this->lifetimeCol = :lifetime, $this->timeCol = :time WHERE $this->idCol = :id"; - break; - } - - $now = time(); - $lifetime = $lifetime ?: null; - try { - $stmt = $conn->prepare($sql); - } catch (\PDOException $e) { - if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($driver, ['pgsql', 'sqlite', 'sqlsrv'], true))) { - $this->createTable(); - } - $stmt = $conn->prepare($sql); - } - - // $id and $data are defined later in the loop. Binding is done by reference, values are read on execution. - if ('sqlsrv' === $driver || 'oci' === $driver) { - $stmt->bindParam(1, $id); - $stmt->bindParam(2, $id); - $stmt->bindParam(3, $data, \PDO::PARAM_LOB); - $stmt->bindValue(4, $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(5, $now, \PDO::PARAM_INT); - $stmt->bindParam(6, $data, \PDO::PARAM_LOB); - $stmt->bindValue(7, $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(8, $now, \PDO::PARAM_INT); - } else { - $stmt->bindParam(':id', $id); - $stmt->bindParam(':data', $data, \PDO::PARAM_LOB); - $stmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(':time', $now, \PDO::PARAM_INT); - } - if (null === $driver) { - $insertStmt = $conn->prepare($insertSql); - - $insertStmt->bindParam(':id', $id); - $insertStmt->bindParam(':data', $data, \PDO::PARAM_LOB); - $insertStmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT); - $insertStmt->bindValue(':time', $now, \PDO::PARAM_INT); - } - - foreach ($values as $id => $data) { - try { - $stmt->execute(); - } catch (\PDOException $e) { - if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($driver, ['pgsql', 'sqlite', 'sqlsrv'], true))) { - $this->createTable(); - } - $stmt->execute(); - } - if (null === $driver && !$stmt->rowCount()) { - try { - $insertStmt->execute(); - } catch (\PDOException) { - // A concurrent write won, let it be - } - } - } - - return $failed; - } - - /** - * @internal - */ - protected function getId(mixed $key): string - { - if ('pgsql' !== $this->getDriver()) { - return parent::getId($key); - } - - if (str_contains($key, "\0") || str_contains($key, '%') || !preg_match('//u', $key)) { - $key = rawurlencode($key); - } - - return parent::getId($key); - } - - private function getConnection(): \PDO - { - if (!isset($this->conn)) { - $this->conn = new \PDO($this->dsn, $this->username, $this->password, $this->connectionOptions); - $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); - } - - return $this->conn; - } - - private function getDriver(): string - { - return $this->driver ??= $this->getConnection()->getAttribute(\PDO::ATTR_DRIVER_NAME); - } - - private function getServerVersion(): string - { - return $this->serverVersion ??= $this->getConnection()->getAttribute(\PDO::ATTR_SERVER_VERSION); - } - - private function isTableMissing(\PDOException $exception): bool - { - $driver = $this->getDriver(); - [$sqlState, $code] = $exception->errorInfo ?? [null, $exception->getCode()]; - - return match ($driver) { - 'pgsql' => '42P01' === $sqlState, - 'sqlite' => str_contains($exception->getMessage(), 'no such table:'), - 'oci' => 942 === $code, - 'sqlsrv' => 208 === $code, - 'mysql' => 1146 === $code, - default => false, - }; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/PhpArrayAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/PhpArrayAdapter.php deleted file mode 100644 index 0cda1cc..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/PhpArrayAdapter.php +++ /dev/null @@ -1,389 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Component\Cache\Traits\ProxyTrait; -use Symfony\Component\VarExporter\VarExporter; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * Caches items at warm up time using a PHP array that is stored in shared memory by OPCache since PHP 7.0. - * Warmed up items are read-only and run-time discovered items are cached using a fallback adapter. - * - * @author Titouan Galopin - * @author Nicolas Grekas - */ -class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use ContractsTrait; - use ProxyTrait; - - private string $file; - private array $keys; - private array $values; - - private static \Closure $createCacheItem; - private static array $valuesCache = []; - - /** - * @param string $file The PHP file were values are cached - * @param AdapterInterface $fallbackPool A pool to fallback on when an item is not hit - */ - public function __construct(string $file, AdapterInterface $fallbackPool) - { - $this->file = $file; - $this->pool = $fallbackPool; - self::$createCacheItem ??= \Closure::bind( - static function ($key, $value, $isHit) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->isHit = $isHit; - - return $item; - }, - null, - CacheItem::class - ); - } - - /** - * This adapter takes advantage of how PHP stores arrays in its latest versions. - * - * @param string $file The PHP file were values are cached - * @param CacheItemPoolInterface $fallbackPool A pool to fallback on when an item is not hit - */ - public static function create(string $file, CacheItemPoolInterface $fallbackPool): CacheItemPoolInterface - { - if (!$fallbackPool instanceof AdapterInterface) { - $fallbackPool = new ProxyAdapter($fallbackPool); - } - - return new static($file, $fallbackPool); - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - if (!isset($this->values)) { - $this->initialize(); - } - if (!isset($this->keys[$key])) { - get_from_pool: - if ($this->pool instanceof CacheInterface) { - return $this->pool->get($key, $callback, $beta, $metadata); - } - - return $this->doGet($this->pool, $key, $callback, $beta, $metadata); - } - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - return null; - } - try { - if ($value instanceof \Closure) { - return $value(); - } - } catch (\Throwable) { - unset($this->keys[$key]); - goto get_from_pool; - } - - return $value; - } - - public function getItem(mixed $key): CacheItem - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - if (!isset($this->values)) { - $this->initialize(); - } - if (!isset($this->keys[$key])) { - return $this->pool->getItem($key); - } - - $value = $this->values[$this->keys[$key]]; - $isHit = true; - - if ('N;' === $value) { - $value = null; - } elseif ($value instanceof \Closure) { - try { - $value = $value(); - } catch (\Throwable) { - $value = null; - $isHit = false; - } - } - - return (self::$createCacheItem)($key, $value, $isHit); - } - - public function getItems(array $keys = []): iterable - { - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - } - if (!isset($this->values)) { - $this->initialize(); - } - - return $this->generateItems($keys); - } - - public function hasItem(mixed $key): bool - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - if (!isset($this->values)) { - $this->initialize(); - } - - return isset($this->keys[$key]) || $this->pool->hasItem($key); - } - - public function deleteItem(mixed $key): bool - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - if (!isset($this->values)) { - $this->initialize(); - } - - return !isset($this->keys[$key]) && $this->pool->deleteItem($key); - } - - public function deleteItems(array $keys): bool - { - $deleted = true; - $fallbackKeys = []; - - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - - if (isset($this->keys[$key])) { - $deleted = false; - } else { - $fallbackKeys[] = $key; - } - } - if (!isset($this->values)) { - $this->initialize(); - } - - if ($fallbackKeys) { - $deleted = $this->pool->deleteItems($fallbackKeys) && $deleted; - } - - return $deleted; - } - - public function save(CacheItemInterface $item): bool - { - if (!isset($this->values)) { - $this->initialize(); - } - - return !isset($this->keys[$item->getKey()]) && $this->pool->save($item); - } - - public function saveDeferred(CacheItemInterface $item): bool - { - if (!isset($this->values)) { - $this->initialize(); - } - - return !isset($this->keys[$item->getKey()]) && $this->pool->saveDeferred($item); - } - - public function commit(): bool - { - return $this->pool->commit(); - } - - public function clear(string $prefix = ''): bool - { - $this->keys = $this->values = []; - - $cleared = @unlink($this->file) || !file_exists($this->file); - unset(self::$valuesCache[$this->file]); - - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($prefix) && $cleared; - } - - return $this->pool->clear() && $cleared; - } - - /** - * Store an array of cached values. - * - * @param array $values The cached values - * - * @return string[] A list of classes to preload on PHP 7.4+ - */ - public function warmUp(array $values): array - { - if (file_exists($this->file)) { - if (!is_file($this->file)) { - throw new InvalidArgumentException(sprintf('Cache path exists and is not a file: "%s".', $this->file)); - } - - if (!is_writable($this->file)) { - throw new InvalidArgumentException(sprintf('Cache file is not writable: "%s".', $this->file)); - } - } else { - $directory = \dirname($this->file); - - if (!is_dir($directory) && !@mkdir($directory, 0777, true)) { - throw new InvalidArgumentException(sprintf('Cache directory does not exist and cannot be created: "%s".', $directory)); - } - - if (!is_writable($directory)) { - throw new InvalidArgumentException(sprintf('Cache directory is not writable: "%s".', $directory)); - } - } - - $preload = []; - $dumpedValues = ''; - $dumpedMap = []; - $dump = <<<'EOF' - $value) { - CacheItem::validateKey(\is_int($key) ? (string) $key : $key); - $isStaticValue = true; - - if (null === $value) { - $value = "'N;'"; - } elseif (\is_object($value) || \is_array($value)) { - try { - $value = VarExporter::export($value, $isStaticValue, $preload); - } catch (\Exception $e) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e); - } - } elseif (\is_string($value)) { - // Wrap "N;" in a closure to not confuse it with an encoded `null` - if ('N;' === $value) { - $isStaticValue = false; - } - $value = var_export($value, true); - } elseif (!\is_scalar($value)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value))); - } else { - $value = var_export($value, true); - } - - if (!$isStaticValue) { - $value = str_replace("\n", "\n ", $value); - $value = "static function () {\n return {$value};\n}"; - } - $hash = hash('xxh128', $value); - - if (null === $id = $dumpedMap[$hash] ?? null) { - $id = $dumpedMap[$hash] = \count($dumpedMap); - $dumpedValues .= "{$id} => {$value},\n"; - } - - $dump .= var_export($key, true)." => {$id},\n"; - } - - $dump .= "\n], [\n\n{$dumpedValues}\n]];\n"; - - $tmpFile = uniqid($this->file, true); - - file_put_contents($tmpFile, $dump); - @chmod($tmpFile, 0666 & ~umask()); - unset($serialized, $value, $dump); - - @rename($tmpFile, $this->file); - unset(self::$valuesCache[$this->file]); - - $this->initialize(); - - return $preload; - } - - /** - * Load the cache file. - */ - private function initialize(): void - { - if (isset(self::$valuesCache[$this->file])) { - $values = self::$valuesCache[$this->file]; - } elseif (!is_file($this->file)) { - $this->keys = $this->values = []; - - return; - } else { - $values = self::$valuesCache[$this->file] = (include $this->file) ?: [[], []]; - } - - if (2 !== \count($values) || !isset($values[0], $values[1])) { - $this->keys = $this->values = []; - } else { - [$this->keys, $this->values] = $values; - } - } - - private function generateItems(array $keys): \Generator - { - $f = self::$createCacheItem; - $fallbackKeys = []; - - foreach ($keys as $key) { - if (isset($this->keys[$key])) { - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - yield $key => $f($key, null, true); - } elseif ($value instanceof \Closure) { - try { - yield $key => $f($key, $value(), true); - } catch (\Throwable) { - yield $key => $f($key, null, false); - } - } else { - yield $key => $f($key, $value, true); - } - } else { - $fallbackKeys[] = $key; - } - } - - if ($fallbackKeys) { - yield from $this->pool->getItems($fallbackKeys); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/PhpFilesAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/PhpFilesAdapter.php deleted file mode 100644 index e550276..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/PhpFilesAdapter.php +++ /dev/null @@ -1,318 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemCommonTrait; -use Symfony\Component\VarExporter\VarExporter; - -/** - * @author Piotr Stankowski - * @author Nicolas Grekas - * @author Rob Frawley 2nd - */ -class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface -{ - use FilesystemCommonTrait { - doClear as private doCommonClear; - doDelete as private doCommonDelete; - } - - private \Closure $includeHandler; - private bool $appendOnly; - private array $values = []; - private array $files = []; - - private static int $startTime; - private static array $valuesCache = []; - - /** - * @param $appendOnly Set to `true` to gain extra performance when the items stored in this pool never expire. - * Doing so is encouraged because it fits perfectly OPcache's memory model. - * - * @throws CacheException if OPcache is not enabled - */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, bool $appendOnly = false) - { - $this->appendOnly = $appendOnly; - self::$startTime ??= $_SERVER['REQUEST_TIME'] ?? time(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - $this->includeHandler = static function ($type, $msg, $file, $line) { - throw new \ErrorException($msg, 0, $type, $file, $line); - }; - } - - /** - * @return bool - */ - public static function isSupported() - { - self::$startTime ??= $_SERVER['REQUEST_TIME'] ?? time(); - - return \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOL)); - } - - public function prune(): bool - { - $time = time(); - $pruned = true; - $getExpiry = true; - - set_error_handler($this->includeHandler); - try { - foreach ($this->scanHashDir($this->directory) as $file) { - try { - if (\is_array($expiresAt = include $file)) { - $expiresAt = $expiresAt[0]; - } - } catch (\ErrorException $e) { - $expiresAt = $time; - } - - if ($time >= $expiresAt) { - $pruned = ($this->doUnlink($file) || !file_exists($file)) && $pruned; - } - } - } finally { - restore_error_handler(); - } - - return $pruned; - } - - protected function doFetch(array $ids): iterable - { - if ($this->appendOnly) { - $now = 0; - $missingIds = []; - } else { - $now = time(); - $missingIds = $ids; - $ids = []; - } - $values = []; - - begin: - $getExpiry = false; - - foreach ($ids as $id) { - if (null === $value = $this->values[$id] ?? null) { - $missingIds[] = $id; - } elseif ('N;' === $value) { - $values[$id] = null; - } elseif (!\is_object($value)) { - $values[$id] = $value; - } elseif (!$value instanceof LazyValue) { - $values[$id] = $value(); - } elseif (false === $values[$id] = include $value->file) { - unset($values[$id], $this->values[$id]); - $missingIds[] = $id; - } - if (!$this->appendOnly) { - unset($this->values[$id]); - } - } - - if (!$missingIds) { - return $values; - } - - set_error_handler($this->includeHandler); - try { - $getExpiry = true; - - foreach ($missingIds as $k => $id) { - try { - $file = $this->files[$id] ??= $this->getFile($id); - - if (isset(self::$valuesCache[$file])) { - [$expiresAt, $this->values[$id]] = self::$valuesCache[$file]; - } elseif (\is_array($expiresAt = include $file)) { - if ($this->appendOnly) { - self::$valuesCache[$file] = $expiresAt; - } - - [$expiresAt, $this->values[$id]] = $expiresAt; - } elseif ($now < $expiresAt) { - $this->values[$id] = new LazyValue($file); - } - - if ($now >= $expiresAt) { - unset($this->values[$id], $missingIds[$k], self::$valuesCache[$file]); - } - } catch (\ErrorException $e) { - unset($missingIds[$k]); - } - } - } finally { - restore_error_handler(); - } - - $ids = $missingIds; - $missingIds = []; - goto begin; - } - - protected function doHave(string $id): bool - { - if ($this->appendOnly && isset($this->values[$id])) { - return true; - } - - set_error_handler($this->includeHandler); - try { - $file = $this->files[$id] ??= $this->getFile($id); - $getExpiry = true; - - if (isset(self::$valuesCache[$file])) { - [$expiresAt, $value] = self::$valuesCache[$file]; - } elseif (\is_array($expiresAt = include $file)) { - if ($this->appendOnly) { - self::$valuesCache[$file] = $expiresAt; - } - - [$expiresAt, $value] = $expiresAt; - } elseif ($this->appendOnly) { - $value = new LazyValue($file); - } - } catch (\ErrorException) { - return false; - } finally { - restore_error_handler(); - } - if ($this->appendOnly) { - $now = 0; - $this->values[$id] = $value; - } else { - $now = time(); - } - - return $now < $expiresAt; - } - - protected function doSave(array $values, int $lifetime): array|bool - { - $ok = true; - $expiry = $lifetime ? time() + $lifetime : 'PHP_INT_MAX'; - $allowCompile = self::isSupported(); - - foreach ($values as $key => $value) { - unset($this->values[$key]); - $isStaticValue = true; - if (null === $value) { - $value = "'N;'"; - } elseif (\is_object($value) || \is_array($value)) { - try { - $value = VarExporter::export($value, $isStaticValue); - } catch (\Exception $e) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value)), 0, $e); - } - } elseif (\is_string($value)) { - // Wrap "N;" in a closure to not confuse it with an encoded `null` - if ('N;' === $value) { - $isStaticValue = false; - } - $value = var_export($value, true); - } elseif (!\is_scalar($value)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value))); - } else { - $value = var_export($value, true); - } - - $encodedKey = rawurlencode($key); - - if ($isStaticValue) { - $value = "return [{$expiry}, {$value}];"; - } elseif ($this->appendOnly) { - $value = "return [{$expiry}, static fn () => {$value}];"; - } else { - // We cannot use a closure here because of https://bugs.php.net/76982 - $value = str_replace('\Symfony\Component\VarExporter\Internal\\', '', $value); - $value = "namespace Symfony\Component\VarExporter\Internal;\n\nreturn \$getExpiry ? {$expiry} : {$value};"; - } - - $file = $this->files[$key] = $this->getFile($key, true); - // Since OPcache only compiles files older than the script execution start, set the file's mtime in the past - $ok = $this->write($file, "directory)) { - throw new CacheException(sprintf('Cache directory is not writable (%s).', $this->directory)); - } - - return $ok; - } - - protected function doClear(string $namespace): bool - { - $this->values = []; - - return $this->doCommonClear($namespace); - } - - protected function doDelete(array $ids): bool - { - foreach ($ids as $id) { - unset($this->values[$id]); - } - - return $this->doCommonDelete($ids); - } - - /** - * @return bool - */ - protected function doUnlink(string $file) - { - unset(self::$valuesCache[$file]); - - if (self::isSupported()) { - @opcache_invalidate($file, true); - } - - return @unlink($file); - } - - private function getFileKey(string $file): string - { - if (!$h = @fopen($file, 'r')) { - return ''; - } - - $encodedKey = substr(fgets($h), 8); - fclose($h); - - return rawurldecode(rtrim($encodedKey)); - } -} - -/** - * @internal - */ -class LazyValue -{ - public string $file; - - public function __construct(string $file) - { - $this->file = $file; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/ProxyAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/ProxyAdapter.php deleted file mode 100644 index c022dd5..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/ProxyAdapter.php +++ /dev/null @@ -1,206 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Component\Cache\Traits\ProxyTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Nicolas Grekas - */ -class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use ContractsTrait; - use ProxyTrait; - - private string $namespace = ''; - private int $namespaceLen; - private string $poolHash; - private int $defaultLifetime; - - private static \Closure $createCacheItem; - private static \Closure $setInnerItem; - - public function __construct(CacheItemPoolInterface $pool, string $namespace = '', int $defaultLifetime = 0) - { - $this->pool = $pool; - $this->poolHash = spl_object_hash($pool); - if ('' !== $namespace) { - \assert('' !== CacheItem::validateKey($namespace)); - $this->namespace = $namespace; - } - $this->namespaceLen = \strlen($namespace); - $this->defaultLifetime = $defaultLifetime; - self::$createCacheItem ??= \Closure::bind( - static function ($key, $innerItem, $poolHash) { - $item = new CacheItem(); - $item->key = $key; - - if (null === $innerItem) { - return $item; - } - - $item->value = $innerItem->get(); - $item->isHit = $innerItem->isHit(); - $item->innerItem = $innerItem; - $item->poolHash = $poolHash; - - if (!$item->unpack() && $innerItem instanceof CacheItem) { - $item->metadata = $innerItem->metadata; - } - $innerItem->set(null); - - return $item; - }, - null, - CacheItem::class - ); - self::$setInnerItem ??= \Closure::bind( - static function (CacheItemInterface $innerItem, CacheItem $item, $expiry = null) { - $innerItem->set($item->pack()); - $innerItem->expiresAt(($expiry ?? $item->expiry) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $expiry ?? $item->expiry)) : null); - }, - null, - CacheItem::class - ); - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - if (!$this->pool instanceof CacheInterface) { - return $this->doGet($this, $key, $callback, $beta, $metadata); - } - - return $this->pool->get($this->getId($key), function ($innerItem, bool &$save) use ($key, $callback) { - $item = (self::$createCacheItem)($key, $innerItem, $this->poolHash); - $item->set($value = $callback($item, $save)); - (self::$setInnerItem)($innerItem, $item); - - return $value; - }, $beta, $metadata); - } - - public function getItem(mixed $key): CacheItem - { - $item = $this->pool->getItem($this->getId($key)); - - return (self::$createCacheItem)($key, $item, $this->poolHash); - } - - public function getItems(array $keys = []): iterable - { - if ($this->namespaceLen) { - foreach ($keys as $i => $key) { - $keys[$i] = $this->getId($key); - } - } - - return $this->generateItems($this->pool->getItems($keys)); - } - - public function hasItem(mixed $key): bool - { - return $this->pool->hasItem($this->getId($key)); - } - - public function clear(string $prefix = ''): bool - { - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($this->namespace.$prefix); - } - - return $this->pool->clear(); - } - - public function deleteItem(mixed $key): bool - { - return $this->pool->deleteItem($this->getId($key)); - } - - public function deleteItems(array $keys): bool - { - if ($this->namespaceLen) { - foreach ($keys as $i => $key) { - $keys[$i] = $this->getId($key); - } - } - - return $this->pool->deleteItems($keys); - } - - public function save(CacheItemInterface $item): bool - { - return $this->doSave($item, __FUNCTION__); - } - - public function saveDeferred(CacheItemInterface $item): bool - { - return $this->doSave($item, __FUNCTION__); - } - - public function commit(): bool - { - return $this->pool->commit(); - } - - private function doSave(CacheItemInterface $item, string $method): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $castItem = (array) $item; - - if (null === $castItem["\0*\0expiry"] && 0 < $this->defaultLifetime) { - $castItem["\0*\0expiry"] = microtime(true) + $this->defaultLifetime; - } - - if ($castItem["\0*\0poolHash"] === $this->poolHash && $castItem["\0*\0innerItem"]) { - $innerItem = $castItem["\0*\0innerItem"]; - } elseif ($this->pool instanceof AdapterInterface) { - // this is an optimization specific for AdapterInterface implementations - // so we can save a round-trip to the backend by just creating a new item - $innerItem = (self::$createCacheItem)($this->namespace.$castItem["\0*\0key"], null, $this->poolHash); - } else { - $innerItem = $this->pool->getItem($this->namespace.$castItem["\0*\0key"]); - } - - (self::$setInnerItem)($innerItem, $item, $castItem["\0*\0expiry"]); - - return $this->pool->$method($innerItem); - } - - private function generateItems(iterable $items): \Generator - { - $f = self::$createCacheItem; - - foreach ($items as $key => $item) { - if ($this->namespaceLen) { - $key = substr($key, $this->namespaceLen); - } - - yield $key => $f($key, $item, $this->poolHash); - } - } - - private function getId(mixed $key): string - { - \assert('' !== CacheItem::validateKey($key)); - - return $this->namespace.$key; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/Psr16Adapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/Psr16Adapter.php deleted file mode 100644 index a72b037..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/Psr16Adapter.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\SimpleCache\CacheInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ProxyTrait; - -/** - * Turns a PSR-16 cache into a PSR-6 one. - * - * @author Nicolas Grekas - */ -class Psr16Adapter extends AbstractAdapter implements PruneableInterface, ResettableInterface -{ - use ProxyTrait; - - /** - * @internal - */ - protected const NS_SEPARATOR = '_'; - - private object $miss; - - public function __construct(CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0) - { - parent::__construct($namespace, $defaultLifetime); - - $this->pool = $pool; - $this->miss = new \stdClass(); - } - - protected function doFetch(array $ids): iterable - { - foreach ($this->pool->getMultiple($ids, $this->miss) as $key => $value) { - if ($this->miss !== $value) { - yield $key => $value; - } - } - } - - protected function doHave(string $id): bool - { - return $this->pool->has($id); - } - - protected function doClear(string $namespace): bool - { - return $this->pool->clear(); - } - - protected function doDelete(array $ids): bool - { - return $this->pool->deleteMultiple($ids); - } - - protected function doSave(array $values, int $lifetime): array|bool - { - return $this->pool->setMultiple($values, 0 === $lifetime ? null : $lifetime); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/RedisAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/RedisAdapter.php deleted file mode 100644 index e33f2f6..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/RedisAdapter.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Traits\RedisTrait; - -class RedisAdapter extends AbstractAdapter -{ - use RedisTrait; - - public function __construct(\Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|\Relay\Relay $redis, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) - { - $this->init($redis, $namespace, $defaultLifetime, $marshaller); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php deleted file mode 100644 index a44ef98..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php +++ /dev/null @@ -1,308 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Predis\Connection\Aggregate\ClusterInterface; -use Predis\Connection\Aggregate\PredisCluster; -use Predis\Connection\Aggregate\ReplicationInterface; -use Predis\Response\ErrorInterface; -use Predis\Response\Status; -use Relay\Relay; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Exception\LogicException; -use Symfony\Component\Cache\Marshaller\DeflateMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Marshaller\TagAwareMarshaller; -use Symfony\Component\Cache\Traits\RedisTrait; - -/** - * Stores tag id <> cache id relationship as a Redis Set. - * - * Set (tag relation info) is stored without expiry (non-volatile), while cache always gets an expiry (volatile) even - * if not set by caller. Thus if you configure redis with the right eviction policy you can be safe this tag <> cache - * relationship survives eviction (cache cleanup when Redis runs out of memory). - * - * Redis server 2.8+ with any `volatile-*` eviction policy, OR `noeviction` if you're sure memory will NEVER fill up - * - * Design limitations: - * - Max 4 billion cache keys per cache tag as limited by Redis Set datatype. - * E.g. If you use a "all" items tag for expiry instead of clear(), that limits you to 4 billion cache items also. - * - * @see https://redis.io/topics/lru-cache#eviction-policies Documentation for Redis eviction policies. - * @see https://redis.io/topics/data-types#sets Documentation for Redis Set datatype. - * - * @author Nicolas Grekas - * @author André Rømcke - */ -class RedisTagAwareAdapter extends AbstractTagAwareAdapter -{ - use RedisTrait; - - /** - * On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are - * preferred to be evicted over tag Sets, if eviction policy is configured according to requirements. - */ - private const DEFAULT_CACHE_TTL = 8640000; - - /** - * detected eviction policy used on Redis server. - */ - private string $redisEvictionPolicy; - private string $namespace; - - public function __construct(\Redis|Relay|\RedisArray|\RedisCluster|\Predis\ClientInterface $redis, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) - { - if ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof ClusterInterface && !$redis->getConnection() instanceof PredisCluster) { - throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redis->getConnection()))); - } - - $isRelay = $redis instanceof Relay; - if ($isRelay || \defined('Redis::OPT_COMPRESSION') && \in_array($redis::class, [\Redis::class, \RedisArray::class, \RedisCluster::class], true)) { - $compression = $redis->getOption($isRelay ? Relay::OPT_COMPRESSION : \Redis::OPT_COMPRESSION); - - foreach (\is_array($compression) ? $compression : [$compression] as $c) { - if ($isRelay ? Relay::COMPRESSION_NONE : \Redis::COMPRESSION_NONE !== $c) { - throw new InvalidArgumentException(sprintf('redis compression must be disabled when using "%s", use "%s" instead.', static::class, DeflateMarshaller::class)); - } - } - } - - $this->init($redis, $namespace, $defaultLifetime, new TagAwareMarshaller($marshaller)); - $this->namespace = $namespace; - } - - protected function doSave(array $values, int $lifetime, array $addTagData = [], array $delTagData = []): array - { - $eviction = $this->getRedisEvictionPolicy(); - if ('noeviction' !== $eviction && !str_starts_with($eviction, 'volatile-')) { - throw new LogicException(sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction)); - } - - // serialize values - if (!$serialized = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - // While pipeline isn't supported on RedisCluster, other setups will at least benefit from doing this in one op - $results = $this->pipeline(static function () use ($serialized, $lifetime, $addTagData, $delTagData, $failed) { - // Store cache items, force a ttl if none is set, as there is no MSETEX we need to set each one - foreach ($serialized as $id => $value) { - yield 'setEx' => [ - $id, - 0 >= $lifetime ? self::DEFAULT_CACHE_TTL : $lifetime, - $value, - ]; - } - - // Add and Remove Tags - foreach ($addTagData as $tagId => $ids) { - if (!$failed || $ids = array_diff($ids, $failed)) { - yield 'sAdd' => array_merge([$tagId], $ids); - } - } - - foreach ($delTagData as $tagId => $ids) { - if (!$failed || $ids = array_diff($ids, $failed)) { - yield 'sRem' => array_merge([$tagId], $ids); - } - } - }); - - foreach ($results as $id => $result) { - // Skip results of SADD/SREM operations, they'll be 1 or 0 depending on if set value already existed or not - if (is_numeric($result)) { - continue; - } - // setEx results - if (true !== $result && (!$result instanceof Status || Status::get('OK') !== $result)) { - $failed[] = $id; - } - } - - return $failed; - } - - protected function doDeleteYieldTags(array $ids): iterable - { - $lua = <<<'EOLUA' - local v = redis.call('GET', KEYS[1]) - local e = redis.pcall('UNLINK', KEYS[1]) - - if type(e) ~= 'number' then - redis.call('DEL', KEYS[1]) - end - - if not v or v:len() <= 13 or v:byte(1) ~= 0x9D or v:byte(6) ~= 0 or v:byte(10) ~= 0x5F then - return '' - end - - return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536) -EOLUA; - - $results = $this->pipeline(function () use ($ids, $lua) { - foreach ($ids as $id) { - yield 'eval' => $this->redis instanceof \Predis\ClientInterface ? [$lua, 1, $id] : [$lua, [$id], 1]; - } - }); - - foreach ($results as $id => $result) { - if ($result instanceof \RedisException || $result instanceof \Relay\Exception || $result instanceof ErrorInterface) { - CacheItem::log($this->logger, 'Failed to delete key "{key}": '.$result->getMessage(), ['key' => substr($id, \strlen($this->namespace)), 'exception' => $result]); - - continue; - } - - try { - yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result); - } catch (\Exception) { - yield $id => []; - } - } - } - - protected function doDeleteTagRelations(array $tagData): bool - { - $results = $this->pipeline(static function () use ($tagData) { - foreach ($tagData as $tagId => $idList) { - array_unshift($idList, $tagId); - yield 'sRem' => $idList; - } - }); - foreach ($results as $result) { - // no-op - } - - return true; - } - - protected function doInvalidate(array $tagIds): bool - { - // This script scans the set of items linked to tag: it empties the set - // and removes the linked items. When the set is still not empty after - // the scan, it means we're in cluster mode and that the linked items - // are on other nodes: we move the links to a temporary set and we - // garbage collect that set from the client side. - - $lua = <<<'EOLUA' - redis.replicate_commands() - - local cursor = '0' - local id = KEYS[1] - repeat - local result = redis.call('SSCAN', id, cursor, 'COUNT', 5000); - cursor = result[1]; - local rems = {} - - for _, v in ipairs(result[2]) do - local ok, _ = pcall(redis.call, 'DEL', ARGV[1]..v) - if ok then - table.insert(rems, v) - end - end - if 0 < #rems then - redis.call('SREM', id, unpack(rems)) - end - until '0' == cursor; - - redis.call('SUNIONSTORE', '{'..id..'}'..id, id) - redis.call('DEL', id) - - return redis.call('SSCAN', '{'..id..'}'..id, '0', 'COUNT', 5000) -EOLUA; - - $results = $this->pipeline(function () use ($tagIds, $lua) { - if ($this->redis instanceof \Predis\ClientInterface) { - $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : ''; - } elseif (\is_array($prefix = $this->redis->getOption($this->redis instanceof Relay ? Relay::OPT_PREFIX : \Redis::OPT_PREFIX) ?? '')) { - $prefix = current($prefix); - } - - foreach ($tagIds as $id) { - yield 'eval' => $this->redis instanceof \Predis\ClientInterface ? [$lua, 1, $id, $prefix] : [$lua, [$id, $prefix], 1]; - } - }); - - $lua = <<<'EOLUA' - redis.replicate_commands() - - local id = KEYS[1] - local cursor = table.remove(ARGV) - redis.call('SREM', '{'..id..'}'..id, unpack(ARGV)) - - return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000) -EOLUA; - - $success = true; - foreach ($results as $id => $values) { - if ($values instanceof \RedisException || $values instanceof \Relay\Exception || $values instanceof ErrorInterface) { - CacheItem::log($this->logger, 'Failed to invalidate key "{key}": '.$values->getMessage(), ['key' => substr($id, \strlen($this->namespace)), 'exception' => $values]); - $success = false; - - continue; - } - - [$cursor, $ids] = $values; - - while ($ids || '0' !== $cursor) { - $this->doDelete($ids); - - $evalArgs = [$id, $cursor]; - array_splice($evalArgs, 1, 0, $ids); - - if ($this->redis instanceof \Predis\ClientInterface) { - array_unshift($evalArgs, $lua, 1); - } else { - $evalArgs = [$lua, $evalArgs, 1]; - } - - $results = $this->pipeline(function () use ($evalArgs) { - yield 'eval' => $evalArgs; - }); - - foreach ($results as [$cursor, $ids]) { - // no-op - } - } - } - - return $success; - } - - private function getRedisEvictionPolicy(): string - { - if (isset($this->redisEvictionPolicy)) { - return $this->redisEvictionPolicy; - } - - $hosts = $this->getHosts(); - $host = reset($hosts); - if ($host instanceof \Predis\Client && $host->getConnection() instanceof ReplicationInterface) { - // Predis supports info command only on the master in replication environments - $hosts = [$host->getClientFor('master')]; - } - - foreach ($hosts as $host) { - $info = $host->info('Memory'); - - if (false === $info || null === $info || $info instanceof ErrorInterface) { - continue; - } - - $info = $info['Memory'] ?? $info; - - return $this->redisEvictionPolicy = $info['maxmemory_policy'] ?? ''; - } - - return $this->redisEvictionPolicy = ''; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapter.php deleted file mode 100644 index 539ef16..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapter.php +++ /dev/null @@ -1,375 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; -use Psr\Log\LoggerAwareInterface; -use Psr\Log\LoggerAwareTrait; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * Implements simple and robust tag-based invalidation suitable for use with volatile caches. - * - * This adapter works by storing a version for each tags. When saving an item, it is stored together with its tags and - * their corresponding versions. When retrieving an item, those tag versions are compared to the current version of - * each tags. Invalidation is achieved by deleting tags, thereby ensuring that their versions change even when the - * storage is out of space. When versions of non-existing tags are requested for item commits, this adapter assigns a - * new random version to them. - * - * @author Nicolas Grekas - * @author Sergey Belyshkin - */ -class TagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface, PruneableInterface, ResettableInterface, LoggerAwareInterface -{ - use ContractsTrait; - use LoggerAwareTrait; - - public const TAGS_PREFIX = "\1tags\1"; - - private array $deferred = []; - private AdapterInterface $pool; - private AdapterInterface $tags; - private array $knownTagVersions = []; - private float $knownTagVersionsTtl; - - private static \Closure $setCacheItemTags; - private static \Closure $setTagVersions; - private static \Closure $getTagsByKey; - private static \Closure $saveTags; - - public function __construct(AdapterInterface $itemsPool, ?AdapterInterface $tagsPool = null, float $knownTagVersionsTtl = 0.15) - { - $this->pool = $itemsPool; - $this->tags = $tagsPool ?? $itemsPool; - $this->knownTagVersionsTtl = $knownTagVersionsTtl; - self::$setCacheItemTags ??= \Closure::bind( - static function (array $items, array $itemTags) { - foreach ($items as $key => $item) { - $item->isTaggable = true; - - if (isset($itemTags[$key])) { - $tags = array_keys($itemTags[$key]); - $item->metadata[CacheItem::METADATA_TAGS] = array_combine($tags, $tags); - } else { - $item->value = null; - $item->isHit = false; - $item->metadata = []; - } - } - - return $items; - }, - null, - CacheItem::class - ); - self::$setTagVersions ??= \Closure::bind( - static function (array $items, array $tagVersions) { - foreach ($items as $item) { - $item->newMetadata[CacheItem::METADATA_TAGS] = array_intersect_key($tagVersions, $item->newMetadata[CacheItem::METADATA_TAGS] ?? []); - } - }, - null, - CacheItem::class - ); - self::$getTagsByKey ??= \Closure::bind( - static function ($deferred) { - $tagsByKey = []; - foreach ($deferred as $key => $item) { - $tagsByKey[$key] = $item->newMetadata[CacheItem::METADATA_TAGS] ?? []; - $item->metadata = $item->newMetadata; - } - - return $tagsByKey; - }, - null, - CacheItem::class - ); - self::$saveTags ??= \Closure::bind( - static function (AdapterInterface $tagsAdapter, array $tags) { - ksort($tags); - - foreach ($tags as $v) { - $v->expiry = 0; - $tagsAdapter->saveDeferred($v); - } - - return $tagsAdapter->commit(); - }, - null, - CacheItem::class - ); - } - - public function invalidateTags(array $tags): bool - { - $ids = []; - foreach ($tags as $tag) { - \assert('' !== CacheItem::validateKey($tag)); - unset($this->knownTagVersions[$tag]); - $ids[] = $tag.static::TAGS_PREFIX; - } - - return !$tags || $this->tags->deleteItems($ids); - } - - public function hasItem(mixed $key): bool - { - return $this->getItem($key)->isHit(); - } - - public function getItem(mixed $key): CacheItem - { - foreach ($this->getItems([$key]) as $item) { - return $item; - } - } - - public function getItems(array $keys = []): iterable - { - $tagKeys = []; - $commit = false; - - foreach ($keys as $key) { - if ('' !== $key && \is_string($key)) { - $commit = $commit || isset($this->deferred[$key]); - } - } - - if ($commit) { - $this->commit(); - } - - try { - $items = $this->pool->getItems($keys); - } catch (InvalidArgumentException $e) { - $this->pool->getItems($keys); // Should throw an exception - - throw $e; - } - - $bufferedItems = $itemTags = []; - - foreach ($items as $key => $item) { - if (null !== $tags = $item->getMetadata()[CacheItem::METADATA_TAGS] ?? null) { - $itemTags[$key] = $tags; - } - - $bufferedItems[$key] = $item; - - if (null === $tags) { - $key = "\0tags\0".$key; - $tagKeys[$key] = $key; // BC with pools populated before v6.1 - } - } - - if ($tagKeys) { - foreach ($this->pool->getItems($tagKeys) as $key => $item) { - if ($item->isHit()) { - $itemTags[substr($key, \strlen("\0tags\0"))] = $item->get() ?: []; - } - } - } - - $tagVersions = $this->getTagVersions($itemTags, false); - foreach ($itemTags as $key => $tags) { - foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] !== $version) { - unset($itemTags[$key]); - continue 2; - } - } - } - $tagVersions = null; - - return (self::$setCacheItemTags)($bufferedItems, $itemTags); - } - - public function clear(string $prefix = ''): bool - { - if ('' !== $prefix) { - foreach ($this->deferred as $key => $item) { - if (str_starts_with($key, $prefix)) { - unset($this->deferred[$key]); - } - } - } else { - $this->deferred = []; - } - - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($prefix); - } - - return $this->pool->clear(); - } - - public function deleteItem(mixed $key): bool - { - return $this->deleteItems([$key]); - } - - public function deleteItems(array $keys): bool - { - foreach ($keys as $key) { - if ('' !== $key && \is_string($key)) { - $keys[] = "\0tags\0".$key; // BC with pools populated before v6.1 - } - } - - return $this->pool->deleteItems($keys); - } - - public function save(CacheItemInterface $item): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return $this->commit(); - } - - public function saveDeferred(CacheItemInterface $item): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return true; - } - - public function commit(): bool - { - if (!$items = $this->deferred) { - return true; - } - - $tagVersions = $this->getTagVersions((self::$getTagsByKey)($items), true); - (self::$setTagVersions)($items, $tagVersions); - - $ok = true; - foreach ($items as $key => $item) { - if ($this->pool->saveDeferred($item)) { - unset($this->deferred[$key]); - } else { - $ok = false; - } - } - $ok = $this->pool->commit() && $ok; - - $tagVersions = array_keys($tagVersions); - (self::$setTagVersions)($items, array_combine($tagVersions, $tagVersions)); - - return $ok; - } - - public function prune(): bool - { - return $this->pool instanceof PruneableInterface && $this->pool->prune(); - } - - /** - * @return void - */ - public function reset() - { - $this->commit(); - $this->knownTagVersions = []; - $this->pool instanceof ResettableInterface && $this->pool->reset(); - $this->tags instanceof ResettableInterface && $this->tags->reset(); - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - /** - * @return void - */ - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - $this->commit(); - } - - private function getTagVersions(array $tagsByKey, bool $persistTags): array - { - $tagVersions = []; - $fetchTagVersions = $persistTags; - - foreach ($tagsByKey as $tags) { - $tagVersions += $tags; - if ($fetchTagVersions) { - continue; - } - foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] !== $version) { - $fetchTagVersions = true; - } - } - } - - if (!$tagVersions) { - return []; - } - - $now = microtime(true); - $tags = []; - foreach ($tagVersions as $tag => $version) { - $tags[$tag.static::TAGS_PREFIX] = $tag; - $knownTagVersion = $this->knownTagVersions[$tag] ?? [0, null]; - if ($fetchTagVersions || $now > $knownTagVersion[0] || $knownTagVersion[1] !== $version) { - // reuse previously fetched tag versions until the expiration - $fetchTagVersions = true; - } - } - - if (!$fetchTagVersions) { - return $tagVersions; - } - - $newTags = []; - $newVersion = null; - $expiration = $now + $this->knownTagVersionsTtl; - foreach ($this->tags->getItems(array_keys($tags)) as $tag => $version) { - unset($this->knownTagVersions[$tag = $tags[$tag]]); // update FIFO - if (null !== $tagVersions[$tag] = $version->get()) { - $this->knownTagVersions[$tag] = [$expiration, $tagVersions[$tag]]; - } elseif ($persistTags) { - $newTags[$tag] = $version->set($newVersion ??= random_bytes(6)); - $tagVersions[$tag] = $newVersion; - $this->knownTagVersions[$tag] = [$expiration, $newVersion]; - } - } - - if ($newTags) { - (self::$saveTags)($this->tags, $newTags); - } - - while ($now > ($this->knownTagVersions[$tag = array_key_first($this->knownTagVersions)][0] ?? \INF)) { - unset($this->knownTagVersions[$tag]); - } - - return $tagVersions; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php b/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php deleted file mode 100644 index 9242779..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\InvalidArgumentException; - -/** - * Interface for invalidating cached items using tags. - * - * @author Nicolas Grekas - */ -interface TagAwareAdapterInterface extends AdapterInterface -{ - /** - * Invalidates cached items using tags. - * - * @param string[] $tags An array of tags to invalidate - * - * @throws InvalidArgumentException When $tags is not valid - */ - public function invalidateTags(array $tags): bool; -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/TraceableAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/TraceableAdapter.php deleted file mode 100644 index 8569fa2..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/TraceableAdapter.php +++ /dev/null @@ -1,262 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * An adapter that collects data about all cache calls. - * - * @author Aaron Scherer - * @author Tobias Nyholm - * @author Nicolas Grekas - */ -class TraceableAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - protected $pool; - private array $calls = []; - - public function __construct(AdapterInterface $pool) - { - $this->pool = $pool; - } - - public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed - { - if (!$this->pool instanceof CacheInterface) { - throw new \BadMethodCallException(sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', get_debug_type($this->pool), CacheInterface::class)); - } - - $isHit = true; - $callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) { - $isHit = $item->isHit(); - - return $callback($item, $save); - }; - - $event = $this->start(__FUNCTION__); - try { - $value = $this->pool->get($key, $callback, $beta, $metadata); - $event->result[$key] = get_debug_type($value); - } finally { - $event->end = microtime(true); - } - if ($isHit) { - ++$event->hits; - } else { - ++$event->misses; - } - - return $value; - } - - public function getItem(mixed $key): CacheItem - { - $event = $this->start(__FUNCTION__); - try { - $item = $this->pool->getItem($key); - } finally { - $event->end = microtime(true); - } - if ($event->result[$key] = $item->isHit()) { - ++$event->hits; - } else { - ++$event->misses; - } - - return $item; - } - - public function hasItem(mixed $key): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->hasItem($key); - } finally { - $event->end = microtime(true); - } - } - - public function deleteItem(mixed $key): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->deleteItem($key); - } finally { - $event->end = microtime(true); - } - } - - public function save(CacheItemInterface $item): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$item->getKey()] = $this->pool->save($item); - } finally { - $event->end = microtime(true); - } - } - - public function saveDeferred(CacheItemInterface $item): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$item->getKey()] = $this->pool->saveDeferred($item); - } finally { - $event->end = microtime(true); - } - } - - public function getItems(array $keys = []): iterable - { - $event = $this->start(__FUNCTION__); - try { - $result = $this->pool->getItems($keys); - } finally { - $event->end = microtime(true); - } - $f = function () use ($result, $event) { - $event->result = []; - foreach ($result as $key => $item) { - if ($event->result[$key] = $item->isHit()) { - ++$event->hits; - } else { - ++$event->misses; - } - yield $key => $item; - } - }; - - return $f(); - } - - public function clear(string $prefix = ''): bool - { - $event = $this->start(__FUNCTION__); - try { - if ($this->pool instanceof AdapterInterface) { - return $event->result = $this->pool->clear($prefix); - } - - return $event->result = $this->pool->clear(); - } finally { - $event->end = microtime(true); - } - } - - public function deleteItems(array $keys): bool - { - $event = $this->start(__FUNCTION__); - $event->result['keys'] = $keys; - try { - return $event->result['result'] = $this->pool->deleteItems($keys); - } finally { - $event->end = microtime(true); - } - } - - public function commit(): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->commit(); - } finally { - $event->end = microtime(true); - } - } - - public function prune(): bool - { - if (!$this->pool instanceof PruneableInterface) { - return false; - } - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->prune(); - } finally { - $event->end = microtime(true); - } - } - - /** - * @return void - */ - public function reset() - { - if ($this->pool instanceof ResetInterface) { - $this->pool->reset(); - } - - $this->clearCalls(); - } - - public function delete(string $key): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->deleteItem($key); - } finally { - $event->end = microtime(true); - } - } - - /** - * @return array - */ - public function getCalls() - { - return $this->calls; - } - - /** - * @return void - */ - public function clearCalls() - { - $this->calls = []; - } - - public function getPool(): AdapterInterface - { - return $this->pool; - } - - /** - * @return TraceableAdapterEvent - */ - protected function start(string $name) - { - $this->calls[] = $event = new TraceableAdapterEvent(); - $event->name = $name; - $event->start = microtime(true); - - return $event; - } -} - -/** - * @internal - */ -class TraceableAdapterEvent -{ - public string $name; - public float $start; - public float $end; - public array|bool $result; - public int $hits = 0; - public int $misses = 0; -} diff --git a/projects/priceservice/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php b/projects/priceservice/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php deleted file mode 100644 index c85d199..0000000 --- a/projects/priceservice/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * @author Robin Chalas - */ -class TraceableTagAwareAdapter extends TraceableAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface -{ - public function __construct(TagAwareAdapterInterface $pool) - { - parent::__construct($pool); - } - - public function invalidateTags(array $tags): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->invalidateTags($tags); - } finally { - $event->end = microtime(true); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/CHANGELOG.md b/projects/priceservice/vendor/symfony/cache/CHANGELOG.md deleted file mode 100644 index 4c1c9d4..0000000 --- a/projects/priceservice/vendor/symfony/cache/CHANGELOG.md +++ /dev/null @@ -1,132 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * `EarlyExpirationHandler` no longer implements `MessageHandlerInterface`, rely on `AsMessageHandler` instead - -6.3 ---- - - * Add support for Relay PHP extension for Redis - * Updates to allow Redis cluster connections using predis/predis:^2.0 - * Add optional parameter `$isSameDatabase` to `DoctrineDbalAdapter::configureSchema()` - -6.1 ---- - - * Add support for ACL auth in RedisAdapter - * Improve reliability and performance of `TagAwareAdapter` by making tag versions an integral part of item value - -6.0 ---- - - * Remove `DoctrineProvider` and `DoctrineAdapter` - * Remove support of Doctrine DBAL in `PdoAdapter` - -5.4 ---- - - * Deprecate `DoctrineProvider` and `DoctrineAdapter` because these classes have been added to the `doctrine/cache` package - * Add `DoctrineDbalAdapter` identical to `PdoAdapter` for `Doctrine\DBAL\Connection` or DBAL URL - * Deprecate usage of `PdoAdapter` with `Doctrine\DBAL\Connection` or DBAL URL - -5.3 ---- - - * added support for connecting to Redis Sentinel clusters when using the Redis PHP extension - * add support for a custom serializer to the `ApcuAdapter` class - -5.2.0 ------ - - * added integration with Messenger to allow computing cached values in a worker - * allow ISO 8601 time intervals to specify default lifetime - -5.1.0 ------ - - * added max-items + LRU + max-lifetime capabilities to `ArrayCache` - * added `CouchbaseBucketAdapter` - * added context `cache-adapter` to log messages - -5.0.0 ------ - - * removed all PSR-16 implementations in the `Simple` namespace - * removed `SimpleCacheAdapter` - * removed `AbstractAdapter::unserialize()` - * removed `CacheItem::getPreviousTags()` - -4.4.0 ------ - - * added support for connecting to Redis Sentinel clusters - * added argument `$prefix` to `AdapterInterface::clear()` - * improved `RedisTagAwareAdapter` to support Redis server >= 2.8 and up to 4B items per tag - * added `TagAwareMarshaller` for optimized data storage when using `AbstractTagAwareAdapter` - * added `DeflateMarshaller` to compress serialized values - * removed support for phpredis 4 `compression` - * [BC BREAK] `RedisTagAwareAdapter` is not compatible with `RedisCluster` from `Predis` anymore, use `phpredis` instead - * Marked the `CacheDataCollector` class as `@final`. - * added `SodiumMarshaller` to encrypt/decrypt values using libsodium - -4.3.0 ------ - - * removed `psr/simple-cache` dependency, run `composer require psr/simple-cache` if you need it - * deprecated all PSR-16 adapters, use `Psr16Cache` or `Symfony\Contracts\Cache\CacheInterface` implementations instead - * deprecated `SimpleCacheAdapter`, use `Psr16Adapter` instead - -4.2.0 ------ - - * added support for connecting to Redis clusters via DSN - * added support for configuring multiple Memcached servers via DSN - * added `MarshallerInterface` and `DefaultMarshaller` to allow changing the serializer and provide one that automatically uses igbinary when available - * implemented `CacheInterface`, which provides stampede protection via probabilistic early expiration and should become the preferred way to use a cache - * added sub-second expiry accuracy for backends that support it - * added support for phpredis 4 `compression` and `tcp_keepalive` options - * added automatic table creation when using Doctrine DBAL with PDO-based backends - * throw `LogicException` when `CacheItem::tag()` is called on an item coming from a non tag-aware pool - * deprecated `CacheItem::getPreviousTags()`, use `CacheItem::getMetadata()` instead - * deprecated the `AbstractAdapter::unserialize()` and `AbstractCache::unserialize()` methods - * added `CacheCollectorPass` (originally in `FrameworkBundle`) - * added `CachePoolClearerPass` (originally in `FrameworkBundle`) - * added `CachePoolPass` (originally in `FrameworkBundle`) - * added `CachePoolPrunerPass` (originally in `FrameworkBundle`) - -3.4.0 ------ - - * added using options from Memcached DSN - * added PruneableInterface so PSR-6 or PSR-16 cache implementations can declare support for manual stale cache pruning - * added prune logic to FilesystemTrait, PhpFilesTrait, PdoTrait, TagAwareAdapter and ChainTrait - * now FilesystemAdapter, PhpFilesAdapter, FilesystemCache, PhpFilesCache, PdoAdapter, PdoCache, ChainAdapter, and - ChainCache implement PruneableInterface and support manual stale cache pruning - -3.3.0 ------ - - * added CacheItem::getPreviousTags() to get bound tags coming from the pool storage if any - * added PSR-16 "Simple Cache" implementations for all existing PSR-6 adapters - * added Psr6Cache and SimpleCacheAdapter for bidirectional interoperability between PSR-6 and PSR-16 - * added MemcachedAdapter (PSR-6) and MemcachedCache (PSR-16) - * added TraceableAdapter (PSR-6) and TraceableCache (PSR-16) - -3.2.0 ------ - - * added TagAwareAdapter for tags-based invalidation - * added PdoAdapter with PDO and Doctrine DBAL support - * added PhpArrayAdapter and PhpFilesAdapter for OPcache-backed shared memory storage (PHP 7+ only) - * added NullAdapter - -3.1.0 ------ - - * added the component with strict PSR-6 implementations - * added ApcuAdapter, ArrayAdapter, FilesystemAdapter and RedisAdapter - * added AbstractAdapter, ChainAdapter and ProxyAdapter - * added DoctrineAdapter and DoctrineProvider for bidirectional interoperability with Doctrine Cache diff --git a/projects/priceservice/vendor/symfony/cache/CacheItem.php b/projects/priceservice/vendor/symfony/cache/CacheItem.php deleted file mode 100644 index 20af82b..0000000 --- a/projects/priceservice/vendor/symfony/cache/CacheItem.php +++ /dev/null @@ -1,199 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Cache\CacheItemInterface; -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Exception\LogicException; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * @author Nicolas Grekas - */ -final class CacheItem implements ItemInterface -{ - private const METADATA_EXPIRY_OFFSET = 1527506807; - private const VALUE_WRAPPER = "\xA9"; - - protected string $key; - protected mixed $value = null; - protected bool $isHit = false; - protected float|int|null $expiry = null; - protected array $metadata = []; - protected array $newMetadata = []; - protected ?CacheItemInterface $innerItem = null; - protected ?string $poolHash = null; - protected bool $isTaggable = false; - - public function getKey(): string - { - return $this->key; - } - - public function get(): mixed - { - return $this->value; - } - - public function isHit(): bool - { - return $this->isHit; - } - - /** - * @return $this - */ - public function set($value): static - { - $this->value = $value; - - return $this; - } - - /** - * @return $this - */ - public function expiresAt(?\DateTimeInterface $expiration): static - { - $this->expiry = null !== $expiration ? (float) $expiration->format('U.u') : null; - - return $this; - } - - /** - * @return $this - */ - public function expiresAfter(mixed $time): static - { - if (null === $time) { - $this->expiry = null; - } elseif ($time instanceof \DateInterval) { - $this->expiry = microtime(true) + \DateTimeImmutable::createFromFormat('U', 0)->add($time)->format('U.u'); - } elseif (\is_int($time)) { - $this->expiry = $time + microtime(true); - } else { - throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given.', get_debug_type($time))); - } - - return $this; - } - - public function tag(mixed $tags): static - { - if (!$this->isTaggable) { - throw new LogicException(sprintf('Cache item "%s" comes from a non tag-aware pool: you cannot tag it.', $this->key)); - } - if (!\is_array($tags) && !$tags instanceof \Traversable) { // don't use is_iterable(), it's slow - $tags = [$tags]; - } - foreach ($tags as $tag) { - if (!\is_string($tag) && !$tag instanceof \Stringable) { - throw new InvalidArgumentException(sprintf('Cache tag must be string or object that implements __toString(), "%s" given.', get_debug_type($tag))); - } - $tag = (string) $tag; - if (isset($this->newMetadata[self::METADATA_TAGS][$tag])) { - continue; - } - if ('' === $tag) { - throw new InvalidArgumentException('Cache tag length must be greater than zero.'); - } - if (false !== strpbrk($tag, self::RESERVED_CHARACTERS)) { - throw new InvalidArgumentException(sprintf('Cache tag "%s" contains reserved characters "%s".', $tag, self::RESERVED_CHARACTERS)); - } - $this->newMetadata[self::METADATA_TAGS][$tag] = $tag; - } - - return $this; - } - - public function getMetadata(): array - { - return $this->metadata; - } - - /** - * Validates a cache key according to PSR-6. - * - * @param mixed $key The key to validate - * - * @throws InvalidArgumentException When $key is not valid - */ - public static function validateKey($key): string - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); - } - if ('' === $key) { - throw new InvalidArgumentException('Cache key length must be greater than zero.'); - } - if (false !== strpbrk($key, self::RESERVED_CHARACTERS)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" contains reserved characters "%s".', $key, self::RESERVED_CHARACTERS)); - } - - return $key; - } - - /** - * Internal logging helper. - * - * @internal - */ - public static function log(?LoggerInterface $logger, string $message, array $context = []): void - { - if ($logger) { - $logger->warning($message, $context); - } else { - $replace = []; - foreach ($context as $k => $v) { - if (\is_scalar($v)) { - $replace['{'.$k.'}'] = $v; - } - } - @trigger_error(strtr($message, $replace), \E_USER_WARNING); - } - } - - private function pack(): mixed - { - if (!$m = $this->newMetadata) { - return $this->value; - } - $valueWrapper = self::VALUE_WRAPPER; - - return new $valueWrapper($this->value, $m + ['expiry' => $this->expiry]); - } - - private function unpack(): bool - { - $v = $this->value; - $valueWrapper = self::VALUE_WRAPPER; - - if ($v instanceof $valueWrapper) { - $this->value = $v->value; - $this->metadata = $v->metadata; - - return true; - } - - if (!\is_array($v) || 1 !== \count($v) || 10 !== \strlen($k = (string) array_key_first($v)) || "\x9D" !== $k[0] || "\0" !== $k[5] || "\x5F" !== $k[9]) { - return false; - } - - // BC with pools populated before v6.1 - $this->value = $v[$k]; - $this->metadata = unpack('Vexpiry/Nctime', substr($k, 1, -1)); - $this->metadata['expiry'] += self::METADATA_EXPIRY_OFFSET; - - return true; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/DataCollector/CacheDataCollector.php b/projects/priceservice/vendor/symfony/cache/DataCollector/CacheDataCollector.php deleted file mode 100644 index 22a5a03..0000000 --- a/projects/priceservice/vendor/symfony/cache/DataCollector/CacheDataCollector.php +++ /dev/null @@ -1,185 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DataCollector; - -use Symfony\Component\Cache\Adapter\TraceableAdapter; -use Symfony\Component\Cache\Adapter\TraceableAdapterEvent; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\DataCollector\DataCollector; -use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; - -/** - * @author Aaron Scherer - * @author Tobias Nyholm - * - * @final - */ -class CacheDataCollector extends DataCollector implements LateDataCollectorInterface -{ - /** - * @var TraceableAdapter[] - */ - private array $instances = []; - - public function addInstance(string $name, TraceableAdapter $instance): void - { - $this->instances[$name] = $instance; - } - - public function collect(Request $request, Response $response, ?\Throwable $exception = null): void - { - $this->lateCollect(); - } - - public function reset(): void - { - $this->data = []; - foreach ($this->instances as $instance) { - $instance->clearCalls(); - } - } - - public function lateCollect(): void - { - $empty = ['calls' => [], 'adapters' => [], 'config' => [], 'options' => [], 'statistics' => []]; - $this->data = ['instances' => $empty, 'total' => $empty]; - foreach ($this->instances as $name => $instance) { - $this->data['instances']['calls'][$name] = $instance->getCalls(); - $this->data['instances']['adapters'][$name] = get_debug_type($instance->getPool()); - } - - $this->data['instances']['statistics'] = $this->calculateStatistics(); - $this->data['total']['statistics'] = $this->calculateTotalStatistics(); - $this->data['instances']['calls'] = $this->cloneVar($this->data['instances']['calls']); - } - - public function getName(): string - { - return 'cache'; - } - - /** - * Method returns amount of logged Cache reads: "get" calls. - */ - public function getStatistics(): array - { - return $this->data['instances']['statistics']; - } - - /** - * Method returns the statistic totals. - */ - public function getTotals(): array - { - return $this->data['total']['statistics']; - } - - /** - * Method returns all logged Cache call objects. - */ - public function getCalls(): mixed - { - return $this->data['instances']['calls']; - } - - /** - * Method returns all logged Cache adapter classes. - */ - public function getAdapters(): array - { - return $this->data['instances']['adapters']; - } - - private function calculateStatistics(): array - { - $statistics = []; - foreach ($this->data['instances']['calls'] as $name => $calls) { - $statistics[$name] = [ - 'calls' => 0, - 'time' => 0, - 'reads' => 0, - 'writes' => 0, - 'deletes' => 0, - 'hits' => 0, - 'misses' => 0, - ]; - /** @var TraceableAdapterEvent $call */ - foreach ($calls as $call) { - ++$statistics[$name]['calls']; - $statistics[$name]['time'] += ($call->end ?? microtime(true)) - $call->start; - if ('get' === $call->name) { - ++$statistics[$name]['reads']; - if ($call->hits) { - ++$statistics[$name]['hits']; - } else { - ++$statistics[$name]['misses']; - ++$statistics[$name]['writes']; - } - } elseif ('getItem' === $call->name) { - ++$statistics[$name]['reads']; - if ($call->hits) { - ++$statistics[$name]['hits']; - } else { - ++$statistics[$name]['misses']; - } - } elseif ('getItems' === $call->name) { - $statistics[$name]['reads'] += $call->hits + $call->misses; - $statistics[$name]['hits'] += $call->hits; - $statistics[$name]['misses'] += $call->misses; - } elseif ('hasItem' === $call->name) { - ++$statistics[$name]['reads']; - foreach ($call->result ?? [] as $result) { - ++$statistics[$name][$result ? 'hits' : 'misses']; - } - } elseif ('save' === $call->name) { - ++$statistics[$name]['writes']; - } elseif ('deleteItem' === $call->name) { - ++$statistics[$name]['deletes']; - } - } - if ($statistics[$name]['reads']) { - $statistics[$name]['hit_read_ratio'] = round(100 * $statistics[$name]['hits'] / $statistics[$name]['reads'], 2); - } else { - $statistics[$name]['hit_read_ratio'] = null; - } - } - - return $statistics; - } - - private function calculateTotalStatistics(): array - { - $statistics = $this->getStatistics(); - $totals = [ - 'calls' => 0, - 'time' => 0, - 'reads' => 0, - 'writes' => 0, - 'deletes' => 0, - 'hits' => 0, - 'misses' => 0, - ]; - foreach ($statistics as $name => $values) { - foreach ($totals as $key => $value) { - $totals[$key] += $statistics[$name][$key]; - } - } - if ($totals['reads']) { - $totals['hit_read_ratio'] = round(100 * $totals['hits'] / $totals['reads'], 2); - } else { - $totals['hit_read_ratio'] = null; - } - - return $totals; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php b/projects/priceservice/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php deleted file mode 100644 index 17507f1..0000000 --- a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; -use Symfony\Component\Cache\Adapter\TraceableAdapter; -use Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Inject a data collector to all the cache services to be able to get detailed statistics. - * - * @author Tobias Nyholm - */ -class CacheCollectorPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition('data_collector.cache')) { - return; - } - - foreach ($container->findTaggedServiceIds('cache.pool') as $id => $attributes) { - $poolName = $attributes[0]['name'] ?? $id; - - $this->addToCollector($id, $poolName, $container); - } - } - - private function addToCollector(string $id, string $name, ContainerBuilder $container): void - { - $definition = $container->getDefinition($id); - if ($definition->isAbstract()) { - return; - } - - $collectorDefinition = $container->getDefinition('data_collector.cache'); - $recorder = new Definition(is_subclass_of($definition->getClass(), TagAwareAdapterInterface::class) ? TraceableTagAwareAdapter::class : TraceableAdapter::class); - $recorder->setTags($definition->getTags()); - if (!$definition->isPublic() || !$definition->isPrivate()) { - $recorder->setPublic($definition->isPublic()); - } - $recorder->setArguments([new Reference($innerId = $id.'.recorder_inner')]); - - foreach ($definition->getMethodCalls() as [$method, $args]) { - if ('setCallbackWrapper' !== $method || !$args[0] instanceof Definition || !($args[0]->getArguments()[2] ?? null) instanceof Definition) { - continue; - } - if ([new Reference($id), 'setCallbackWrapper'] == $args[0]->getArguments()[2]->getFactory()) { - $args[0]->getArguments()[2]->setFactory([new Reference($innerId), 'setCallbackWrapper']); - } - } - - $definition->setTags([]); - $definition->setPublic(false); - - $container->setDefinition($innerId, $definition); - $container->setDefinition($id, $recorder); - - // Tell the collector to add the new instance - $collectorDefinition->addMethodCall('addInstance', [$name, new Reference($id)]); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php b/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php deleted file mode 100644 index 6793bea..0000000 --- a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class CachePoolClearerPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $container->getParameterBag()->remove('cache.prefix.seed'); - - foreach ($container->findTaggedServiceIds('cache.pool.clearer') as $id => $attr) { - $clearer = $container->getDefinition($id); - $pools = []; - foreach ($clearer->getArgument(0) as $name => $ref) { - if ($container->hasDefinition($ref)) { - $pools[$name] = new Reference($ref); - } - } - $clearer->replaceArgument(0, $pools); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPass.php b/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPass.php deleted file mode 100644 index 80b8a94..0000000 --- a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPass.php +++ /dev/null @@ -1,244 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\Adapter\AbstractAdapter; -use Symfony\Component\Cache\Adapter\ArrayAdapter; -use Symfony\Component\Cache\Adapter\ChainAdapter; -use Symfony\Component\Cache\Adapter\NullAdapter; -use Symfony\Component\Cache\Adapter\ParameterNormalizer; -use Symfony\Component\Cache\Messenger\EarlyExpirationDispatcher; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class CachePoolPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - if ($container->hasParameter('cache.prefix.seed')) { - $seed = $container->getParameterBag()->resolveValue($container->getParameter('cache.prefix.seed')); - } else { - $seed = '_'.$container->getParameter('kernel.project_dir'); - $seed .= '.'.$container->getParameter('kernel.container_class'); - } - - $needsMessageHandler = false; - $allPools = []; - $clearers = []; - $attributes = [ - 'provider', - 'name', - 'namespace', - 'default_lifetime', - 'early_expiration_message_bus', - 'reset', - ]; - foreach ($container->findTaggedServiceIds('cache.pool') as $id => $tags) { - $adapter = $pool = $container->getDefinition($id); - if ($pool->isAbstract()) { - continue; - } - $class = $adapter->getClass(); - $providers = $adapter->getArguments(); - while ($adapter instanceof ChildDefinition) { - $adapter = $container->findDefinition($adapter->getParent()); - $class = $class ?: $adapter->getClass(); - $providers += $adapter->getArguments(); - if ($t = $adapter->getTag('cache.pool')) { - $tags[0] += $t[0]; - } - } - $name = $tags[0]['name'] ?? $id; - if (!isset($tags[0]['namespace'])) { - $namespaceSeed = $seed; - if (null !== $class) { - $namespaceSeed .= '.'.$class; - } - - $tags[0]['namespace'] = $this->getNamespace($namespaceSeed, $name); - } - if (isset($tags[0]['clearer'])) { - $clearer = $tags[0]['clearer']; - while ($container->hasAlias($clearer)) { - $clearer = (string) $container->getAlias($clearer); - } - } else { - $clearer = null; - } - unset($tags[0]['clearer'], $tags[0]['name']); - - if (isset($tags[0]['provider'])) { - $tags[0]['provider'] = new Reference(static::getServiceProvider($container, $tags[0]['provider'])); - } - - if (ChainAdapter::class === $class) { - $adapters = []; - foreach ($providers['index_0'] ?? $providers[0] as $provider => $adapter) { - if ($adapter instanceof ChildDefinition) { - $chainedPool = $adapter; - } else { - $chainedPool = $adapter = new ChildDefinition($adapter); - } - - $chainedTags = [\is_int($provider) ? [] : ['provider' => $provider]]; - $chainedClass = ''; - - while ($adapter instanceof ChildDefinition) { - $adapter = $container->findDefinition($adapter->getParent()); - $chainedClass = $chainedClass ?: $adapter->getClass(); - if ($t = $adapter->getTag('cache.pool')) { - $chainedTags[0] += $t[0]; - } - } - - if (ChainAdapter::class === $chainedClass) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": chain of adapters cannot reference another chain, found "%s".', $id, $chainedPool->getParent())); - } - - $i = 0; - - if (isset($chainedTags[0]['provider'])) { - $chainedPool->replaceArgument($i++, new Reference(static::getServiceProvider($container, $chainedTags[0]['provider']))); - } - - if (isset($tags[0]['namespace']) && !\in_array($adapter->getClass(), [ArrayAdapter::class, NullAdapter::class], true)) { - $chainedPool->replaceArgument($i++, $tags[0]['namespace']); - } - - if (isset($tags[0]['default_lifetime'])) { - $chainedPool->replaceArgument($i++, $tags[0]['default_lifetime']); - } - - $adapters[] = $chainedPool; - } - - $pool->replaceArgument(0, $adapters); - unset($tags[0]['provider'], $tags[0]['namespace']); - $i = 1; - } else { - $i = 0; - } - - foreach ($attributes as $attr) { - if (!isset($tags[0][$attr])) { - // no-op - } elseif ('reset' === $attr) { - if ($tags[0][$attr]) { - $pool->addTag('kernel.reset', ['method' => $tags[0][$attr]]); - } - } elseif ('early_expiration_message_bus' === $attr) { - $needsMessageHandler = true; - $pool->addMethodCall('setCallbackWrapper', [(new Definition(EarlyExpirationDispatcher::class)) - ->addArgument(new Reference($tags[0]['early_expiration_message_bus'])) - ->addArgument(new Reference('reverse_container')) - ->addArgument((new Definition('callable')) - ->setFactory([new Reference($id), 'setCallbackWrapper']) - ->addArgument(null) - ), - ]); - $pool->addTag('container.reversible'); - } elseif ('namespace' !== $attr || !\in_array($class, [ArrayAdapter::class, NullAdapter::class], true)) { - $argument = $tags[0][$attr]; - - if ('default_lifetime' === $attr && !is_numeric($argument)) { - $argument = (new Definition('int', [$argument])) - ->setFactory([ParameterNormalizer::class, 'normalizeDuration']); - } - - $pool->replaceArgument($i++, $argument); - } - unset($tags[0][$attr]); - } - if (!empty($tags[0])) { - throw new InvalidArgumentException(sprintf('Invalid "cache.pool" tag for service "%s": accepted attributes are "clearer", "provider", "name", "namespace", "default_lifetime", "early_expiration_message_bus" and "reset", found "%s".', $id, implode('", "', array_keys($tags[0])))); - } - - if (null !== $clearer) { - $clearers[$clearer][$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE); - } - - $allPools[$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE); - } - - if (!$needsMessageHandler) { - $container->removeDefinition('cache.early_expiration_handler'); - } - - $notAliasedCacheClearerId = 'cache.global_clearer'; - while ($container->hasAlias($notAliasedCacheClearerId)) { - $notAliasedCacheClearerId = (string) $container->getAlias($notAliasedCacheClearerId); - } - if ($container->hasDefinition($notAliasedCacheClearerId)) { - $clearers[$notAliasedCacheClearerId] = $allPools; - } - - foreach ($clearers as $id => $pools) { - $clearer = $container->getDefinition($id); - if ($clearer instanceof ChildDefinition) { - $clearer->replaceArgument(0, $pools); - } else { - $clearer->setArgument(0, $pools); - } - $clearer->addTag('cache.pool.clearer'); - } - - $allPoolsKeys = array_keys($allPools); - - if ($container->hasDefinition('console.command.cache_pool_list')) { - $container->getDefinition('console.command.cache_pool_list')->replaceArgument(0, $allPoolsKeys); - } - - if ($container->hasDefinition('console.command.cache_pool_clear')) { - $container->getDefinition('console.command.cache_pool_clear')->addArgument($allPoolsKeys); - } - - if ($container->hasDefinition('console.command.cache_pool_delete')) { - $container->getDefinition('console.command.cache_pool_delete')->addArgument($allPoolsKeys); - } - } - - private function getNamespace(string $seed, string $id): string - { - return substr(str_replace('/', '-', base64_encode(hash('sha256', $id.$seed, true))), 0, 10); - } - - /** - * @internal - */ - public static function getServiceProvider(ContainerBuilder $container, string $name): string - { - $container->resolveEnvPlaceholders($name, null, $usedEnvs); - - if ($usedEnvs || preg_match('#^[a-z]++:#', $name)) { - $dsn = $name; - - if (!$container->hasDefinition($name = '.cache_connection.'.ContainerBuilder::hash($dsn))) { - $definition = new Definition(AbstractAdapter::class); - $definition->setFactory([AbstractAdapter::class, 'createConnection']); - $definition->setArguments([$dsn, ['lazy' => true]]); - $container->setDefinition($name, $definition); - } - } - - return $name; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php b/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php deleted file mode 100644 index 00e9126..0000000 --- a/projects/priceservice/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Rob Frawley 2nd - */ -class CachePoolPrunerPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition('console.command.cache_pool_prune')) { - return; - } - - $services = []; - - foreach ($container->findTaggedServiceIds('cache.pool') as $id => $tags) { - $class = $container->getParameterBag()->resolveValue($container->getDefinition($id)->getClass()); - - if (!$reflection = $container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } - - if ($reflection->implementsInterface(PruneableInterface::class)) { - $services[$id] = new Reference($id); - } - } - - $container->getDefinition('console.command.cache_pool_prune')->replaceArgument(0, new IteratorArgument($services)); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Exception/CacheException.php b/projects/priceservice/vendor/symfony/cache/Exception/CacheException.php deleted file mode 100644 index d2e975b..0000000 --- a/projects/priceservice/vendor/symfony/cache/Exception/CacheException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\CacheException as Psr6CacheInterface; -use Psr\SimpleCache\CacheException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class CacheException extends \Exception implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class CacheException extends \Exception implements Psr6CacheInterface - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Exception/InvalidArgumentException.php b/projects/priceservice/vendor/symfony/cache/Exception/InvalidArgumentException.php deleted file mode 100644 index 7f9584a..0000000 --- a/projects/priceservice/vendor/symfony/cache/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\InvalidArgumentException as Psr6CacheInterface; -use Psr\SimpleCache\InvalidArgumentException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class InvalidArgumentException extends \InvalidArgumentException implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class InvalidArgumentException extends \InvalidArgumentException implements Psr6CacheInterface - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Exception/LogicException.php b/projects/priceservice/vendor/symfony/cache/Exception/LogicException.php deleted file mode 100644 index 9ffa7ed..0000000 --- a/projects/priceservice/vendor/symfony/cache/Exception/LogicException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\CacheException as Psr6CacheInterface; -use Psr\SimpleCache\CacheException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class LogicException extends \LogicException implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class LogicException extends \LogicException implements Psr6CacheInterface - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/LICENSE b/projects/priceservice/vendor/symfony/cache/LICENSE deleted file mode 100644 index 0223acd..0000000 --- a/projects/priceservice/vendor/symfony/cache/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/cache/LockRegistry.php b/projects/priceservice/vendor/symfony/cache/LockRegistry.php deleted file mode 100644 index c5c5fde..0000000 --- a/projects/priceservice/vendor/symfony/cache/LockRegistry.php +++ /dev/null @@ -1,166 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Log\LoggerInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * LockRegistry is used internally by existing adapters to protect against cache stampede. - * - * It does so by wrapping the computation of items in a pool of locks. - * Foreach each apps, there can be at most 20 concurrent processes that - * compute items at the same time and only one per cache-key. - * - * @author Nicolas Grekas - */ -final class LockRegistry -{ - private static array $openedFiles = []; - private static ?array $lockedFiles = null; - private static \Exception $signalingException; - private static \Closure $signalingCallback; - - /** - * The number of items in this list controls the max number of concurrent processes. - */ - private static array $files = [ - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AbstractAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AbstractTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AdapterInterface.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ApcuAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ArrayAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ChainAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseBucketAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseCollectionAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineDbalAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'MemcachedAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'NullAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ParameterNormalizer.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PdoAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PhpArrayAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PhpFilesAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ProxyAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'Psr16Adapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'RedisAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'RedisTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TagAwareAdapterInterface.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TraceableAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TraceableTagAwareAdapter.php', - ]; - - /** - * Defines a set of existing files that will be used as keys to acquire locks. - * - * @return array The previously defined set of files - */ - public static function setFiles(array $files): array - { - $previousFiles = self::$files; - self::$files = $files; - - foreach (self::$openedFiles as $file) { - if ($file) { - flock($file, \LOCK_UN); - fclose($file); - } - } - self::$openedFiles = self::$lockedFiles = []; - - return $previousFiles; - } - - public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?\Closure $setMetadata = null, ?LoggerInterface $logger = null): mixed - { - if ('\\' === \DIRECTORY_SEPARATOR && null === self::$lockedFiles) { - // disable locking on Windows by default - self::$files = self::$lockedFiles = []; - } - - $key = self::$files ? abs(crc32($item->getKey())) % \count(self::$files) : -1; - - if ($key < 0 || self::$lockedFiles || !$lock = self::open($key)) { - return $callback($item, $save); - } - - self::$signalingException ??= unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}"); - self::$signalingCallback ??= fn () => throw self::$signalingException; - - while (true) { - try { - // race to get the lock in non-blocking mode - $locked = flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock); - - if ($locked || !$wouldBlock) { - $logger?->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]); - self::$lockedFiles[$key] = true; - - $value = $callback($item, $save); - - if ($save) { - if ($setMetadata) { - $setMetadata($item); - } - - $pool->save($item->set($value)); - $save = false; - } - - return $value; - } - // if we failed the race, retry locking in blocking mode to wait for the winner - $logger?->info('Item "{key}" is locked, waiting for it to be released', ['key' => $item->getKey()]); - flock($lock, \LOCK_SH); - } finally { - flock($lock, \LOCK_UN); - unset(self::$lockedFiles[$key]); - } - - try { - $value = $pool->get($item->getKey(), self::$signalingCallback, 0); - $logger?->info('Item "{key}" retrieved after lock was released', ['key' => $item->getKey()]); - $save = false; - - return $value; - } catch (\Exception $e) { - if (self::$signalingException !== $e) { - throw $e; - } - $logger?->info('Item "{key}" not found while lock was released, now retrying', ['key' => $item->getKey()]); - } - } - - return null; - } - - /** - * @return resource|false - */ - private static function open(int $key) - { - if (null !== $h = self::$openedFiles[$key] ?? null) { - return $h; - } - set_error_handler(static fn () => null); - try { - $h = fopen(self::$files[$key], 'r+'); - } finally { - restore_error_handler(); - } - - return self::$openedFiles[$key] = $h ?: @fopen(self::$files[$key], 'r'); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Marshaller/DefaultMarshaller.php b/projects/priceservice/vendor/symfony/cache/Marshaller/DefaultMarshaller.php deleted file mode 100644 index 34bbeb8..0000000 --- a/projects/priceservice/vendor/symfony/cache/Marshaller/DefaultMarshaller.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -use Symfony\Component\Cache\Exception\CacheException; - -/** - * Serializes/unserializes values using igbinary_serialize() if available, serialize() otherwise. - * - * @author Nicolas Grekas - */ -class DefaultMarshaller implements MarshallerInterface -{ - private bool $useIgbinarySerialize = true; - private bool $throwOnSerializationFailure = false; - - public function __construct(?bool $useIgbinarySerialize = null, bool $throwOnSerializationFailure = false) - { - if (null === $useIgbinarySerialize) { - $useIgbinarySerialize = \extension_loaded('igbinary') && version_compare('3.1.6', phpversion('igbinary'), '<='); - } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || version_compare('3.1.6', phpversion('igbinary'), '>'))) { - throw new CacheException(\extension_loaded('igbinary') ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.'); - } - $this->useIgbinarySerialize = $useIgbinarySerialize; - $this->throwOnSerializationFailure = $throwOnSerializationFailure; - } - - public function marshall(array $values, ?array &$failed): array - { - $serialized = $failed = []; - - foreach ($values as $id => $value) { - try { - if ($this->useIgbinarySerialize) { - $serialized[$id] = igbinary_serialize($value); - } else { - $serialized[$id] = serialize($value); - } - } catch (\Exception $e) { - if ($this->throwOnSerializationFailure) { - throw new \ValueError($e->getMessage(), 0, $e); - } - $failed[] = $id; - } - } - - return $serialized; - } - - public function unmarshall(string $value): mixed - { - if ('b:0;' === $value) { - return false; - } - if ('N;' === $value) { - return null; - } - static $igbinaryNull; - if ($value === $igbinaryNull ??= \extension_loaded('igbinary') ? igbinary_serialize(null) : false) { - return null; - } - $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); - try { - if (':' === ($value[1] ?? ':')) { - if (false !== $value = unserialize($value)) { - return $value; - } - } elseif (false === $igbinaryNull) { - throw new \RuntimeException('Failed to unserialize values, did you forget to install the "igbinary" extension?'); - } elseif (null !== $value = igbinary_unserialize($value)) { - return $value; - } - - throw new \DomainException(error_get_last() ? error_get_last()['message'] : 'Failed to unserialize values.'); - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), \E_ERROR, $e->getFile(), $e->getLine()); - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - /** - * @internal - */ - public static function handleUnserializeCallback(string $class): never - { - throw new \DomainException('Class not found: '.$class); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Marshaller/DeflateMarshaller.php b/projects/priceservice/vendor/symfony/cache/Marshaller/DeflateMarshaller.php deleted file mode 100644 index 35237de..0000000 --- a/projects/priceservice/vendor/symfony/cache/Marshaller/DeflateMarshaller.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -use Symfony\Component\Cache\Exception\CacheException; - -/** - * Compresses values using gzdeflate(). - * - * @author Nicolas Grekas - */ -class DeflateMarshaller implements MarshallerInterface -{ - private MarshallerInterface $marshaller; - - public function __construct(MarshallerInterface $marshaller) - { - if (!\function_exists('gzdeflate')) { - throw new CacheException('The "zlib" PHP extension is not loaded.'); - } - - $this->marshaller = $marshaller; - } - - public function marshall(array $values, ?array &$failed): array - { - return array_map('gzdeflate', $this->marshaller->marshall($values, $failed)); - } - - public function unmarshall(string $value): mixed - { - if (false !== $inflatedValue = @gzinflate($value)) { - $value = $inflatedValue; - } - - return $this->marshaller->unmarshall($value); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Marshaller/MarshallerInterface.php b/projects/priceservice/vendor/symfony/cache/Marshaller/MarshallerInterface.php deleted file mode 100644 index 5b81aad..0000000 --- a/projects/priceservice/vendor/symfony/cache/Marshaller/MarshallerInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -/** - * Serializes/unserializes PHP values. - * - * Implementations of this interface MUST deal with errors carefully. They MUST - * also deal with forward and backward compatibility at the storage format level. - * - * @author Nicolas Grekas - */ -interface MarshallerInterface -{ - /** - * Serializes a list of values. - * - * When serialization fails for a specific value, no exception should be - * thrown. Instead, its key should be listed in $failed. - */ - public function marshall(array $values, ?array &$failed): array; - - /** - * Unserializes a single value and throws an exception if anything goes wrong. - * - * @throws \Exception Whenever unserialization fails - */ - public function unmarshall(string $value): mixed; -} diff --git a/projects/priceservice/vendor/symfony/cache/Marshaller/SodiumMarshaller.php b/projects/priceservice/vendor/symfony/cache/Marshaller/SodiumMarshaller.php deleted file mode 100644 index 49eb716..0000000 --- a/projects/priceservice/vendor/symfony/cache/Marshaller/SodiumMarshaller.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; - -/** - * Encrypt/decrypt values using Libsodium. - * - * @author Ahmed TAILOULOUTE - */ -class SodiumMarshaller implements MarshallerInterface -{ - private MarshallerInterface $marshaller; - private array $decryptionKeys; - - /** - * @param string[] $decryptionKeys The key at index "0" is required and is used to decrypt and encrypt values; - * more rotating keys can be provided to decrypt values; - * each key must be generated using sodium_crypto_box_keypair() - */ - public function __construct(array $decryptionKeys, ?MarshallerInterface $marshaller = null) - { - if (!self::isSupported()) { - throw new CacheException('The "sodium" PHP extension is not loaded.'); - } - - if (!isset($decryptionKeys[0])) { - throw new InvalidArgumentException('At least one decryption key must be provided at index "0".'); - } - - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - $this->decryptionKeys = $decryptionKeys; - } - - public static function isSupported(): bool - { - return \function_exists('sodium_crypto_box_seal'); - } - - public function marshall(array $values, ?array &$failed): array - { - $encryptionKey = sodium_crypto_box_publickey($this->decryptionKeys[0]); - - $encryptedValues = []; - foreach ($this->marshaller->marshall($values, $failed) as $k => $v) { - $encryptedValues[$k] = sodium_crypto_box_seal($v, $encryptionKey); - } - - return $encryptedValues; - } - - public function unmarshall(string $value): mixed - { - foreach ($this->decryptionKeys as $k) { - if (false !== $decryptedValue = @sodium_crypto_box_seal_open($value, $k)) { - $value = $decryptedValue; - break; - } - } - - return $this->marshaller->unmarshall($value); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php b/projects/priceservice/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php deleted file mode 100644 index 825f32c..0000000 --- a/projects/priceservice/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -/** - * A marshaller optimized for data structures generated by AbstractTagAwareAdapter. - * - * @author Nicolas Grekas - */ -class TagAwareMarshaller implements MarshallerInterface -{ - private MarshallerInterface $marshaller; - - public function __construct(?MarshallerInterface $marshaller = null) - { - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - public function marshall(array $values, ?array &$failed): array - { - $failed = $notSerialized = $serialized = []; - - foreach ($values as $id => $value) { - if (\is_array($value) && \is_array($value['tags'] ?? null) && \array_key_exists('value', $value) && \count($value) === 2 + (\is_string($value['meta'] ?? null) && 8 === \strlen($value['meta']))) { - // if the value is an array with keys "tags", "value" and "meta", use a compact serialization format - // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F allow detecting this format quickly in unmarshall() - - $v = $this->marshaller->marshall($value, $f); - - if ($f) { - $f = []; - $failed[] = $id; - } else { - if ([] === $value['tags']) { - $v['tags'] = ''; - } - - $serialized[$id] = "\x9D".($value['meta'] ?? "\0\0\0\0\0\0\0\0").pack('N', \strlen($v['tags'])).$v['tags'].$v['value']; - $serialized[$id][9] = "\x5F"; - } - } else { - // other arbitrary values are serialized using the decorated marshaller below - $notSerialized[$id] = $value; - } - } - - if ($notSerialized) { - $serialized += $this->marshaller->marshall($notSerialized, $f); - $failed = array_merge($failed, $f); - } - - return $serialized; - } - - public function unmarshall(string $value): mixed - { - // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (13 >= \strlen($value) || "\x9D" !== $value[0] || "\0" !== $value[5] || "\x5F" !== $value[9]) { - return $this->marshaller->unmarshall($value); - } - - // data consists of value, tags and metadata which we need to unpack - $meta = substr($value, 1, 12); - $meta[8] = "\0"; - $tagLen = unpack('Nlen', $meta, 8)['len']; - $meta = substr($meta, 0, 8); - - return [ - 'value' => $this->marshaller->unmarshall(substr($value, 13 + $tagLen)), - 'tags' => $tagLen ? $this->marshaller->unmarshall(substr($value, 13, $tagLen)) : [], - 'meta' => "\0\0\0\0\0\0\0\0" === $meta ? null : $meta, - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php b/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php deleted file mode 100644 index 8fe0f25..0000000 --- a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Messenger; - -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\DependencyInjection\ReverseContainer; -use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Messenger\Stamp\HandledStamp; - -/** - * Sends the computation of cached values to a message bus. - */ -class EarlyExpirationDispatcher -{ - private MessageBusInterface $bus; - private ReverseContainer $reverseContainer; - private ?\Closure $callbackWrapper; - - public function __construct(MessageBusInterface $bus, ReverseContainer $reverseContainer, ?callable $callbackWrapper = null) - { - $this->bus = $bus; - $this->reverseContainer = $reverseContainer; - $this->callbackWrapper = null === $callbackWrapper ? null : $callbackWrapper(...); - } - - /** - * @return mixed - */ - public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null) - { - if (!$item->isHit() || null === $message = EarlyExpirationMessage::create($this->reverseContainer, $callback, $item, $pool)) { - // The item is stale or the callback cannot be reversed: we must compute the value now - $logger?->info('Computing item "{key}" online: '.($item->isHit() ? 'callback cannot be reversed' : 'item is stale'), ['key' => $item->getKey()]); - - return null !== $this->callbackWrapper ? ($this->callbackWrapper)($callback, $item, $save, $pool, $setMetadata, $logger) : $callback($item, $save); - } - - $envelope = $this->bus->dispatch($message); - - if ($logger) { - if ($envelope->last(HandledStamp::class)) { - $logger->info('Item "{key}" was computed online', ['key' => $item->getKey()]); - } else { - $logger->info('Item "{key}" sent for recomputation', ['key' => $item->getKey()]); - } - } - - // The item's value is not stale, no need to write it to the backend - $save = false; - - return $message->getItem()->get() ?? $item->get(); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php b/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php deleted file mode 100644 index b7eab80..0000000 --- a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Messenger; - -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\DependencyInjection\ReverseContainer; -use Symfony\Component\Messenger\Attribute\AsMessageHandler; - -/** - * Computes cached values sent to a message bus. - */ -#[AsMessageHandler] -class EarlyExpirationHandler -{ - private ReverseContainer $reverseContainer; - private array $processedNonces = []; - - public function __construct(ReverseContainer $reverseContainer) - { - $this->reverseContainer = $reverseContainer; - } - - /** - * @return void - */ - public function __invoke(EarlyExpirationMessage $message) - { - $item = $message->getItem(); - $metadata = $item->getMetadata(); - $expiry = $metadata[CacheItem::METADATA_EXPIRY] ?? 0; - $ctime = $metadata[CacheItem::METADATA_CTIME] ?? 0; - - if ($expiry && $ctime) { - // skip duplicate or expired messages - - $processingNonce = [$expiry, $ctime]; - $pool = $message->getPool(); - $key = $item->getKey(); - - if (($this->processedNonces[$pool][$key] ?? null) === $processingNonce) { - return; - } - - if (microtime(true) >= $expiry) { - return; - } - - $this->processedNonces[$pool] = [$key => $processingNonce] + ($this->processedNonces[$pool] ?? []); - - if (\count($this->processedNonces[$pool]) > 100) { - array_pop($this->processedNonces[$pool]); - } - } - - static $setMetadata; - - $setMetadata ??= \Closure::bind( - function (CacheItem $item, float $startTime) { - if ($item->expiry > $endTime = microtime(true)) { - $item->newMetadata[CacheItem::METADATA_EXPIRY] = $item->expiry; - $item->newMetadata[CacheItem::METADATA_CTIME] = (int) ceil(1000 * ($endTime - $startTime)); - } - }, - null, - CacheItem::class - ); - - $startTime = microtime(true); - $pool = $message->findPool($this->reverseContainer); - $callback = $message->findCallback($this->reverseContainer); - $save = true; - $value = $callback($item, $save); - $setMetadata($item, $startTime); - $pool->save($item->set($value)); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php b/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php deleted file mode 100644 index 6056eba..0000000 --- a/projects/priceservice/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Messenger; - -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\DependencyInjection\ReverseContainer; - -/** - * Conveys a cached value that needs to be computed. - */ -final class EarlyExpirationMessage -{ - private CacheItem $item; - private string $pool; - private string|array $callback; - - public static function create(ReverseContainer $reverseContainer, callable $callback, CacheItem $item, AdapterInterface $pool): ?self - { - try { - $item = clone $item; - $item->set(null); - } catch (\Exception) { - return null; - } - - $pool = $reverseContainer->getId($pool); - - if (\is_object($callback)) { - if (null === $id = $reverseContainer->getId($callback)) { - return null; - } - - $callback = '@'.$id; - } elseif (!\is_array($callback)) { - $callback = (string) $callback; - } elseif (!\is_object($callback[0])) { - $callback = [(string) $callback[0], (string) $callback[1]]; - } else { - if (null === $id = $reverseContainer->getId($callback[0])) { - return null; - } - - $callback = ['@'.$id, (string) $callback[1]]; - } - - return new self($item, $pool, $callback); - } - - public function getItem(): CacheItem - { - return $this->item; - } - - public function getPool(): string - { - return $this->pool; - } - - /** - * @return string|string[] - */ - public function getCallback(): string|array - { - return $this->callback; - } - - public function findPool(ReverseContainer $reverseContainer): AdapterInterface - { - return $reverseContainer->getService($this->pool); - } - - public function findCallback(ReverseContainer $reverseContainer): callable - { - if (\is_string($callback = $this->callback)) { - return '@' === $callback[0] ? $reverseContainer->getService(substr($callback, 1)) : $callback; - } - if ('@' === $callback[0][0]) { - $callback[0] = $reverseContainer->getService(substr($callback[0], 1)); - } - - return $callback; - } - - private function __construct(CacheItem $item, string $pool, string|array $callback) - { - $this->item = $item; - $this->pool = $pool; - $this->callback = $callback; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/PruneableInterface.php b/projects/priceservice/vendor/symfony/cache/PruneableInterface.php deleted file mode 100644 index 3095c80..0000000 --- a/projects/priceservice/vendor/symfony/cache/PruneableInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -/** - * Interface extends psr-6 and psr-16 caches to allow for pruning (deletion) of all expired cache items. - */ -interface PruneableInterface -{ - public function prune(): bool; -} diff --git a/projects/priceservice/vendor/symfony/cache/Psr16Cache.php b/projects/priceservice/vendor/symfony/cache/Psr16Cache.php deleted file mode 100644 index f21384f..0000000 --- a/projects/priceservice/vendor/symfony/cache/Psr16Cache.php +++ /dev/null @@ -1,240 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Cache\CacheException as Psr6CacheException; -use Psr\Cache\CacheItemPoolInterface; -use Psr\SimpleCache\CacheException as SimpleCacheException; -use Psr\SimpleCache\CacheInterface; -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Traits\ProxyTrait; - -/** - * Turns a PSR-6 cache into a PSR-16 one. - * - * @author Nicolas Grekas - */ -class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterface -{ - use ProxyTrait; - - private ?\Closure $createCacheItem = null; - private ?CacheItem $cacheItemPrototype = null; - private static \Closure $packCacheItem; - - public function __construct(CacheItemPoolInterface $pool) - { - $this->pool = $pool; - - if (!$pool instanceof AdapterInterface) { - return; - } - $cacheItemPrototype = &$this->cacheItemPrototype; - $createCacheItem = \Closure::bind( - static function ($key, $value, $allowInt = false) use (&$cacheItemPrototype) { - $item = clone $cacheItemPrototype; - $item->poolHash = $item->innerItem = null; - if ($allowInt && \is_int($key)) { - $item->key = (string) $key; - } else { - \assert('' !== CacheItem::validateKey($key)); - $item->key = $key; - } - $item->value = $value; - $item->isHit = false; - - return $item; - }, - null, - CacheItem::class - ); - $this->createCacheItem = function ($key, $value, $allowInt = false) use ($createCacheItem) { - if (null === $this->cacheItemPrototype) { - $this->get($allowInt && \is_int($key) ? (string) $key : $key); - } - $this->createCacheItem = $createCacheItem; - - return $createCacheItem($key, null, $allowInt)->set($value); - }; - self::$packCacheItem ??= \Closure::bind( - static function (CacheItem $item) { - $item->newMetadata = $item->metadata; - - return $item->pack(); - }, - null, - CacheItem::class - ); - } - - public function get($key, $default = null): mixed - { - try { - $item = $this->pool->getItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - if (null === $this->cacheItemPrototype) { - $this->cacheItemPrototype = clone $item; - $this->cacheItemPrototype->set(null); - } - - return $item->isHit() ? $item->get() : $default; - } - - public function set($key, $value, $ttl = null): bool - { - try { - if (null !== $f = $this->createCacheItem) { - $item = $f($key, $value); - } else { - $item = $this->pool->getItem($key)->set($value); - } - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - if (null !== $ttl) { - $item->expiresAfter($ttl); - } - - return $this->pool->save($item); - } - - public function delete($key): bool - { - try { - return $this->pool->deleteItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } - - public function clear(): bool - { - return $this->pool->clear(); - } - - public function getMultiple($keys, $default = null): iterable - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys))); - } - - try { - $items = $this->pool->getItems($keys); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - $values = []; - - if (!$this->pool instanceof AdapterInterface) { - foreach ($items as $key => $item) { - $values[$key] = $item->isHit() ? $item->get() : $default; - } - - return $values; - } - - foreach ($items as $key => $item) { - $values[$key] = $item->isHit() ? (self::$packCacheItem)($item) : $default; - } - - return $values; - } - - public function setMultiple($values, $ttl = null): bool - { - $valuesIsArray = \is_array($values); - if (!$valuesIsArray && !$values instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given.', get_debug_type($values))); - } - $items = []; - - try { - if (null !== $f = $this->createCacheItem) { - $valuesIsArray = false; - foreach ($values as $key => $value) { - $items[$key] = $f($key, $value, true); - } - } elseif ($valuesIsArray) { - $items = []; - foreach ($values as $key => $value) { - $items[] = (string) $key; - } - $items = $this->pool->getItems($items); - } else { - foreach ($values as $key => $value) { - if (\is_int($key)) { - $key = (string) $key; - } - $items[$key] = $this->pool->getItem($key)->set($value); - } - } - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - $ok = true; - - foreach ($items as $key => $item) { - if ($valuesIsArray) { - $item->set($values[$key]); - } - if (null !== $ttl) { - $item->expiresAfter($ttl); - } - $ok = $this->pool->saveDeferred($item) && $ok; - } - - return $this->pool->commit() && $ok; - } - - public function deleteMultiple($keys): bool - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given.', get_debug_type($keys))); - } - - try { - return $this->pool->deleteItems($keys); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } - - public function has($key): bool - { - try { - return $this->pool->hasItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/README.md b/projects/priceservice/vendor/symfony/cache/README.md deleted file mode 100644 index c466d57..0000000 --- a/projects/priceservice/vendor/symfony/cache/README.md +++ /dev/null @@ -1,19 +0,0 @@ -Symfony PSR-6 implementation for caching -======================================== - -The Cache component provides extended -[PSR-6](https://www.php-fig.org/psr/psr-6/) implementations for adding cache to -your applications. It is designed to have a low overhead so that caching is -fastest. It ships with adapters for the most widespread caching backends. -It also provides a [PSR-16](https://www.php-fig.org/psr/psr-16/) adapter, -and implementations for [symfony/cache-contracts](https://github.com/symfony/cache-contracts)' -`CacheInterface` and `TagAwareCacheInterface`. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/cache.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/cache/ResettableInterface.php b/projects/priceservice/vendor/symfony/cache/ResettableInterface.php deleted file mode 100644 index 7b0a853..0000000 --- a/projects/priceservice/vendor/symfony/cache/ResettableInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Symfony\Contracts\Service\ResetInterface; - -/** - * Resets a pool's local state. - */ -interface ResettableInterface extends ResetInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/AbstractAdapterTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/AbstractAdapterTrait.php deleted file mode 100644 index 4ab2537..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/AbstractAdapterTrait.php +++ /dev/null @@ -1,380 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Cache\CacheItemInterface; -use Psr\Log\LoggerAwareTrait; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait AbstractAdapterTrait -{ - use LoggerAwareTrait; - - /** - * needs to be set by class, signature is function(string , mixed , bool ). - */ - private static \Closure $createCacheItem; - - /** - * needs to be set by class, signature is function(array , string , array <&expiredIds>). - */ - private static \Closure $mergeByLifetime; - - private string $namespace = ''; - private int $defaultLifetime; - private string $namespaceVersion = ''; - private bool $versioningIsEnabled = false; - private array $deferred = []; - private array $ids = []; - - /** - * @var int|null The maximum length to enforce for identifiers or null when no limit applies - */ - protected $maxIdLength; - - /** - * Fetches several cache items. - * - * @param array $ids The cache identifiers to fetch - */ - abstract protected function doFetch(array $ids): iterable; - - /** - * Confirms if the cache contains specified cache item. - * - * @param string $id The identifier for which to check existence - */ - abstract protected function doHave(string $id): bool; - - /** - * Deletes all items in the pool. - * - * @param string $namespace The prefix used for all identifiers managed by this pool - */ - abstract protected function doClear(string $namespace): bool; - - /** - * Removes multiple items from the pool. - * - * @param array $ids An array of identifiers that should be removed from the pool - */ - abstract protected function doDelete(array $ids): bool; - - /** - * Persists several cache items immediately. - * - * @param array $values The values to cache, indexed by their cache identifier - * @param int $lifetime The lifetime of the cached values, 0 for persisting until manual cleaning - * - * @return array|bool The identifiers that failed to be cached or a boolean stating if caching succeeded or not - */ - abstract protected function doSave(array $values, int $lifetime): array|bool; - - public function hasItem(mixed $key): bool - { - $id = $this->getId($key); - - if (isset($this->deferred[$key])) { - $this->commit(); - } - - try { - return $this->doHave($id); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to check if key "{key}" is cached: '.$e->getMessage(), ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - - return false; - } - } - - public function clear(string $prefix = ''): bool - { - $this->deferred = []; - if ($cleared = $this->versioningIsEnabled) { - if ('' === $namespaceVersionToClear = $this->namespaceVersion) { - foreach ($this->doFetch([static::NS_SEPARATOR.$this->namespace]) as $v) { - $namespaceVersionToClear = $v; - } - } - $namespaceToClear = $this->namespace.$namespaceVersionToClear; - $namespaceVersion = self::formatNamespaceVersion(mt_rand()); - try { - $e = $this->doSave([static::NS_SEPARATOR.$this->namespace => $namespaceVersion], 0); - } catch (\Exception $e) { - } - if (true !== $e && [] !== $e) { - $cleared = false; - $message = 'Failed to save the new namespace'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } else { - $this->namespaceVersion = $namespaceVersion; - $this->ids = []; - } - } else { - $namespaceToClear = $this->namespace.$prefix; - } - - try { - return $this->doClear($namespaceToClear) || $cleared; - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to clear the cache: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); - - return false; - } - } - - public function deleteItem(mixed $key): bool - { - return $this->deleteItems([$key]); - } - - public function deleteItems(array $keys): bool - { - $ids = []; - - foreach ($keys as $key) { - $ids[$key] = $this->getId($key); - unset($this->deferred[$key]); - } - - try { - if ($this->doDelete($ids)) { - return true; - } - } catch (\Exception) { - } - - $ok = true; - - // When bulk-delete failed, retry each item individually - foreach ($ids as $key => $id) { - try { - $e = null; - if ($this->doDelete([$id])) { - continue; - } - } catch (\Exception $e) { - } - $message = 'Failed to delete key "{key}"'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - $ok = false; - } - - return $ok; - } - - public function getItem(mixed $key): CacheItem - { - $id = $this->getId($key); - - if (isset($this->deferred[$key])) { - $this->commit(); - } - - $isHit = false; - $value = null; - - try { - foreach ($this->doFetch([$id]) as $value) { - $isHit = true; - } - - return (self::$createCacheItem)($key, $value, $isHit); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch key "{key}": '.$e->getMessage(), ['key' => $key, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - } - - return (self::$createCacheItem)($key, null, false); - } - - public function getItems(array $keys = []): iterable - { - $ids = []; - $commit = false; - - foreach ($keys as $key) { - $ids[] = $this->getId($key); - $commit = $commit || isset($this->deferred[$key]); - } - - if ($commit) { - $this->commit(); - } - - try { - $items = $this->doFetch($ids); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch items: '.$e->getMessage(), ['keys' => $keys, 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - $items = []; - } - $ids = array_combine($ids, $keys); - - return $this->generateItems($items, $ids); - } - - public function save(CacheItemInterface $item): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return $this->commit(); - } - - public function saveDeferred(CacheItemInterface $item): bool - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return true; - } - - /** - * Enables/disables versioning of items. - * - * When versioning is enabled, clearing the cache is atomic and doesn't require listing existing keys to proceed, - * but old keys may need garbage collection and extra round-trips to the back-end are required. - * - * Calling this method also clears the memoized namespace version and thus forces a resynchronization of it. - * - * @return bool the previous state of versioning - */ - public function enableVersioning(bool $enable = true): bool - { - $wasEnabled = $this->versioningIsEnabled; - $this->versioningIsEnabled = $enable; - $this->namespaceVersion = ''; - $this->ids = []; - - return $wasEnabled; - } - - public function reset(): void - { - if ($this->deferred) { - $this->commit(); - } - $this->namespaceVersion = ''; - $this->ids = []; - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - /** - * @return void - */ - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - if ($this->deferred) { - $this->commit(); - } - } - - private function generateItems(iterable $items, array &$keys): \Generator - { - $f = self::$createCacheItem; - - try { - foreach ($items as $id => $value) { - if (!isset($keys[$id])) { - throw new InvalidArgumentException(sprintf('Could not match value id "%s" to keys "%s".', $id, implode('", "', $keys))); - } - $key = $keys[$id]; - unset($keys[$id]); - yield $key => $f($key, $value, true); - } - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch items: '.$e->getMessage(), ['keys' => array_values($keys), 'exception' => $e, 'cache-adapter' => get_debug_type($this)]); - } - - foreach ($keys as $key) { - yield $key => $f($key, null, false); - } - } - - /** - * @internal - */ - protected function getId(mixed $key): string - { - if ($this->versioningIsEnabled && '' === $this->namespaceVersion) { - $this->ids = []; - $this->namespaceVersion = '1'.static::NS_SEPARATOR; - try { - foreach ($this->doFetch([static::NS_SEPARATOR.$this->namespace]) as $v) { - $this->namespaceVersion = $v; - } - $e = true; - if ('1'.static::NS_SEPARATOR === $this->namespaceVersion) { - $this->namespaceVersion = self::formatNamespaceVersion(time()); - $e = $this->doSave([static::NS_SEPARATOR.$this->namespace => $this->namespaceVersion], 0); - } - } catch (\Exception $e) { - } - if (true !== $e && [] !== $e) { - $message = 'Failed to save the new namespace'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); - } - } - - if (\is_string($key) && isset($this->ids[$key])) { - return $this->namespace.$this->namespaceVersion.$this->ids[$key]; - } - \assert('' !== CacheItem::validateKey($key)); - $this->ids[$key] = $key; - - if (\count($this->ids) > 1000) { - $this->ids = \array_slice($this->ids, 500, null, true); // stop memory leak if there are many keys - } - - if (null === $this->maxIdLength) { - return $this->namespace.$this->namespaceVersion.$key; - } - if (\strlen($id = $this->namespace.$this->namespaceVersion.$key) > $this->maxIdLength) { - // Use xxh128 to favor speed over security, which is not an issue here - $this->ids[$key] = $id = substr_replace(base64_encode(hash('xxh128', $key, true)), static::NS_SEPARATOR, -(\strlen($this->namespaceVersion) + 2)); - $id = $this->namespace.$this->namespaceVersion.$id; - } - - return $id; - } - - /** - * @internal - */ - public static function handleUnserializeCallback(string $class): never - { - throw new \DomainException('Class not found: '.$class); - } - - private static function formatNamespaceVersion(int $value): string - { - return strtr(substr_replace(base64_encode(pack('V', $value)), static::NS_SEPARATOR, 5), '/', '_'); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/ContractsTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/ContractsTrait.php deleted file mode 100644 index 8d830f0..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/ContractsTrait.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\LockRegistry; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Cache\CacheTrait; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ContractsTrait -{ - use CacheTrait { - doGet as private contractsGet; - } - - private \Closure $callbackWrapper; - private array $computing = []; - - /** - * Wraps the callback passed to ->get() in a callable. - * - * @return callable the previous callback wrapper - */ - public function setCallbackWrapper(?callable $callbackWrapper): callable - { - if (!isset($this->callbackWrapper)) { - $this->callbackWrapper = LockRegistry::compute(...); - - if (\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { - $this->setCallbackWrapper(null); - } - } - - if (null !== $callbackWrapper && !$callbackWrapper instanceof \Closure) { - $callbackWrapper = $callbackWrapper(...); - } - - $previousWrapper = $this->callbackWrapper; - $this->callbackWrapper = $callbackWrapper ?? static fn (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) => $callback($item, $save); - - return $previousWrapper; - } - - private function doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null): mixed - { - if (0 > $beta ??= 1.0) { - throw new InvalidArgumentException(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)); - } - - static $setMetadata; - - $setMetadata ??= \Closure::bind( - static function (CacheItem $item, float $startTime, ?array &$metadata) { - if ($item->expiry > $endTime = microtime(true)) { - $item->newMetadata[CacheItem::METADATA_EXPIRY] = $metadata[CacheItem::METADATA_EXPIRY] = $item->expiry; - $item->newMetadata[CacheItem::METADATA_CTIME] = $metadata[CacheItem::METADATA_CTIME] = (int) ceil(1000 * ($endTime - $startTime)); - } else { - unset($metadata[CacheItem::METADATA_EXPIRY], $metadata[CacheItem::METADATA_CTIME], $metadata[CacheItem::METADATA_TAGS]); - } - }, - null, - CacheItem::class - ); - - $this->callbackWrapper ??= LockRegistry::compute(...); - - return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) { - // don't wrap nor save recursive calls - if (isset($this->computing[$key])) { - $value = $callback($item, $save); - $save = false; - - return $value; - } - - $this->computing[$key] = $key; - $startTime = microtime(true); - - if (!isset($this->callbackWrapper)) { - $this->setCallbackWrapper($this->setCallbackWrapper(null)); - } - - try { - $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) { - $setMetadata($item, $startTime, $metadata); - }, $this->logger ?? null); - $setMetadata($item, $startTime, $metadata); - - return $value; - } finally { - unset($this->computing[$key]); - } - }, $beta, $metadata, $this->logger ?? null); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/FilesystemCommonTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/FilesystemCommonTrait.php deleted file mode 100644 index 3b976b6..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/FilesystemCommonTrait.php +++ /dev/null @@ -1,197 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait FilesystemCommonTrait -{ - private string $directory; - private string $tmpSuffix; - - private function init(string $namespace, ?string $directory): void - { - if (!isset($directory[0])) { - $directory = sys_get_temp_dir().\DIRECTORY_SEPARATOR.'symfony-cache'; - } else { - $directory = realpath($directory) ?: $directory; - } - if (isset($namespace[0])) { - if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0])); - } - $directory .= \DIRECTORY_SEPARATOR.$namespace; - } else { - $directory .= \DIRECTORY_SEPARATOR.'@'; - } - if (!is_dir($directory)) { - @mkdir($directory, 0777, true); - } - $directory .= \DIRECTORY_SEPARATOR; - // On Windows the whole path is limited to 258 chars - if ('\\' === \DIRECTORY_SEPARATOR && \strlen($directory) > 234) { - throw new InvalidArgumentException(sprintf('Cache directory too long (%s).', $directory)); - } - - $this->directory = $directory; - } - - protected function doClear(string $namespace): bool - { - $ok = true; - - foreach ($this->scanHashDir($this->directory) as $file) { - if ('' !== $namespace && !str_starts_with($this->getFileKey($file), $namespace)) { - continue; - } - - $ok = ($this->doUnlink($file) || !file_exists($file)) && $ok; - } - - return $ok; - } - - protected function doDelete(array $ids): bool - { - $ok = true; - - foreach ($ids as $id) { - $file = $this->getFile($id); - $ok = (!is_file($file) || $this->doUnlink($file) || !file_exists($file)) && $ok; - } - - return $ok; - } - - /** - * @return bool - */ - protected function doUnlink(string $file) - { - return @unlink($file); - } - - private function write(string $file, string $data, ?int $expiresAt = null): bool - { - $unlink = false; - set_error_handler(static fn ($type, $message, $file, $line) => throw new \ErrorException($message, 0, $type, $file, $line)); - try { - $tmp = $this->directory.$this->tmpSuffix ??= str_replace('/', '-', base64_encode(random_bytes(6))); - try { - $h = fopen($tmp, 'x'); - } catch (\ErrorException $e) { - if (!str_contains($e->getMessage(), 'File exists')) { - throw $e; - } - - $tmp = $this->directory.$this->tmpSuffix = str_replace('/', '-', base64_encode(random_bytes(6))); - $h = fopen($tmp, 'x'); - } - fwrite($h, $data); - fclose($h); - $unlink = true; - - if (null !== $expiresAt) { - touch($tmp, $expiresAt ?: time() + 31556952); // 1 year in seconds - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - $success = copy($tmp, $file); - $unlink = true; - } else { - $success = rename($tmp, $file); - $unlink = !$success; - } - - return $success; - } finally { - restore_error_handler(); - - if ($unlink) { - @unlink($tmp); - } - } - } - - private function getFile(string $id, bool $mkdir = false, ?string $directory = null): string - { - // Use xxh128 to favor speed over security, which is not an issue here - $hash = str_replace('/', '-', base64_encode(hash('xxh128', static::class.$id, true))); - $dir = ($directory ?? $this->directory).strtoupper($hash[0].\DIRECTORY_SEPARATOR.$hash[1].\DIRECTORY_SEPARATOR); - - if ($mkdir && !is_dir($dir)) { - @mkdir($dir, 0777, true); - } - - return $dir.substr($hash, 2, 20); - } - - private function getFileKey(string $file): string - { - return ''; - } - - private function scanHashDir(string $directory): \Generator - { - if (!is_dir($directory)) { - return; - } - - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - for ($i = 0; $i < 38; ++$i) { - if (!is_dir($directory.$chars[$i])) { - continue; - } - - for ($j = 0; $j < 38; ++$j) { - if (!is_dir($dir = $directory.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j])) { - continue; - } - - foreach (@scandir($dir, \SCANDIR_SORT_NONE) ?: [] as $file) { - if ('.' !== $file && '..' !== $file) { - yield $dir.\DIRECTORY_SEPARATOR.$file; - } - } - } - } - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - /** - * @return void - */ - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - if (method_exists(parent::class, '__destruct')) { - parent::__destruct(); - } - if (isset($this->tmpSuffix) && is_file($this->directory.$this->tmpSuffix)) { - unlink($this->directory.$this->tmpSuffix); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/FilesystemTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/FilesystemTrait.php deleted file mode 100644 index 47e9b83..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/FilesystemTrait.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Nicolas Grekas - * @author Rob Frawley 2nd - * - * @internal - */ -trait FilesystemTrait -{ - use FilesystemCommonTrait; - - private MarshallerInterface $marshaller; - - public function prune(): bool - { - $time = time(); - $pruned = true; - - foreach ($this->scanHashDir($this->directory) as $file) { - if (!$h = @fopen($file, 'r')) { - continue; - } - - if (($expiresAt = (int) fgets($h)) && $time >= $expiresAt) { - fclose($h); - $pruned = (@unlink($file) || !file_exists($file)) && $pruned; - } else { - fclose($h); - } - } - - return $pruned; - } - - protected function doFetch(array $ids): iterable - { - $values = []; - $now = time(); - - foreach ($ids as $id) { - $file = $this->getFile($id); - if (!is_file($file) || !$h = @fopen($file, 'r')) { - continue; - } - if (($expiresAt = (int) fgets($h)) && $now >= $expiresAt) { - fclose($h); - @unlink($file); - } else { - $i = rawurldecode(rtrim(fgets($h))); - $value = stream_get_contents($h); - fclose($h); - if ($i === $id) { - $values[$id] = $this->marshaller->unmarshall($value); - } - } - } - - return $values; - } - - protected function doHave(string $id): bool - { - $file = $this->getFile($id); - - return is_file($file) && (@filemtime($file) > time() || $this->doFetch([$id])); - } - - protected function doSave(array $values, int $lifetime): array|bool - { - $expiresAt = $lifetime ? (time() + $lifetime) : 0; - $values = $this->marshaller->marshall($values, $failed); - - foreach ($values as $id => $value) { - if (!$this->write($this->getFile($id, true), $expiresAt."\n".rawurlencode($id)."\n".$value, $expiresAt)) { - $failed[] = $id; - } - } - - if ($failed && !is_writable($this->directory)) { - throw new CacheException(sprintf('Cache directory is not writable (%s).', $this->directory)); - } - - return $failed; - } - - private function getFileKey(string $file): string - { - if (!$h = @fopen($file, 'r')) { - return ''; - } - - fgets($h); // expiry - $encodedKey = fgets($h); - fclose($h); - - return rawurldecode(rtrim($encodedKey)); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/ProxyTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/ProxyTrait.php deleted file mode 100644 index ba7c11f..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/ProxyTrait.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ProxyTrait -{ - private object $pool; - - public function prune(): bool - { - return $this->pool instanceof PruneableInterface && $this->pool->prune(); - } - - public function reset(): void - { - if ($this->pool instanceof ResetInterface) { - $this->pool->reset(); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Redis5Proxy.php b/projects/priceservice/vendor/symfony/cache/Traits/Redis5Proxy.php deleted file mode 100644 index 0b2794e..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Redis5Proxy.php +++ /dev/null @@ -1,1228 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\VarExporter\LazyObjectInterface; -use Symfony\Component\VarExporter\LazyProxyTrait; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -/** - * @internal - */ -class Redis5Proxy extends \Redis implements ResetInterface, LazyObjectInterface -{ - use LazyProxyTrait { - resetLazyObject as reset; - } - - private const LAZY_OBJECT_PROPERTY_SCOPES = []; - - public function __construct() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->__construct(...\func_get_args()); - } - - public function _prefix($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_prefix(...\func_get_args()); - } - - public function _serialize($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_serialize(...\func_get_args()); - } - - public function _unserialize($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unserialize(...\func_get_args()); - } - - public function _pack($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_pack(...\func_get_args()); - } - - public function _unpack($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unpack(...\func_get_args()); - } - - public function _compress($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_compress(...\func_get_args()); - } - - public function _uncompress($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_uncompress(...\func_get_args()); - } - - public function acl($subcmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->acl(...\func_get_args()); - } - - public function append($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->append(...\func_get_args()); - } - - public function auth(#[\SensitiveParameter] $auth) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->auth(...\func_get_args()); - } - - public function bgSave() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgSave(...\func_get_args()); - } - - public function bgrewriteaof() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgrewriteaof(...\func_get_args()); - } - - public function bitcount($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitcount(...\func_get_args()); - } - - public function bitop($operation, $ret_key, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitop(...\func_get_args()); - } - - public function bitpos($key, $bit, $start = null, $end = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitpos(...\func_get_args()); - } - - public function blPop($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blPop(...\func_get_args()); - } - - public function brPop($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brPop(...\func_get_args()); - } - - public function brpoplpush($src, $dst, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpoplpush(...\func_get_args()); - } - - public function bzPopMax($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzPopMax(...\func_get_args()); - } - - public function bzPopMin($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzPopMin(...\func_get_args()); - } - - public function clearLastError() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearLastError(...\func_get_args()); - } - - public function client($cmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->client(...\func_get_args()); - } - - public function close() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->close(...\func_get_args()); - } - - public function command(...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->command(...\func_get_args()); - } - - public function config($cmd, $key, $value = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->config(...\func_get_args()); - } - - public function connect($host, $port = null, $timeout = null, $retry_interval = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->connect(...\func_get_args()); - } - - public function dbSize() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dbSize(...\func_get_args()); - } - - public function debug($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->debug(...\func_get_args()); - } - - public function decr($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decr(...\func_get_args()); - } - - public function decrBy($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrBy(...\func_get_args()); - } - - public function del($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->del(...\func_get_args()); - } - - public function discard() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->discard(...\func_get_args()); - } - - public function dump($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function echo($msg) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->echo(...\func_get_args()); - } - - public function eval($script, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval(...\func_get_args()); - } - - public function evalsha($script_sha, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha(...\func_get_args()); - } - - public function exec() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exec(...\func_get_args()); - } - - public function exists($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exists(...\func_get_args()); - } - - public function expire($key, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expire(...\func_get_args()); - } - - public function expireAt($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expireAt(...\func_get_args()); - } - - public function flushAll($async = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushAll(...\func_get_args()); - } - - public function flushDB($async = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushDB(...\func_get_args()); - } - - public function geoadd($key, $lng, $lat, $member, ...$other_triples) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geoadd(...\func_get_args()); - } - - public function geodist($key, $src, $dst, $unit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function geohash($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geohash(...\func_get_args()); - } - - public function geopos($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geopos(...\func_get_args()); - } - - public function georadius($key, $lng, $lan, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius(...\func_get_args()); - } - - public function georadius_ro($key, $lng, $lan, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius_ro(...\func_get_args()); - } - - public function georadiusbymember($key, $member, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember(...\func_get_args()); - } - - public function georadiusbymember_ro($key, $member, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember_ro(...\func_get_args()); - } - - public function get($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->get(...\func_get_args()); - } - - public function getAuth() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getAuth(...\func_get_args()); - } - - public function getBit($key, $offset) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getBit(...\func_get_args()); - } - - public function getDBNum() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getDBNum(...\func_get_args()); - } - - public function getHost() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getHost(...\func_get_args()); - } - - public function getLastError() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getLastError(...\func_get_args()); - } - - public function getMode() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getMode(...\func_get_args()); - } - - public function getOption($option) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getOption(...\func_get_args()); - } - - public function getPersistentID() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPersistentID(...\func_get_args()); - } - - public function getPort() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPort(...\func_get_args()); - } - - public function getRange($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getRange(...\func_get_args()); - } - - public function getReadTimeout() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getReadTimeout(...\func_get_args()); - } - - public function getSet($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getSet(...\func_get_args()); - } - - public function getTimeout() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getTimeout(...\func_get_args()); - } - - public function hDel($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hDel(...\func_get_args()); - } - - public function hExists($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hExists(...\func_get_args()); - } - - public function hGet($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hGet(...\func_get_args()); - } - - public function hGetAll($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hGetAll(...\func_get_args()); - } - - public function hIncrBy($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hIncrBy(...\func_get_args()); - } - - public function hIncrByFloat($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hIncrByFloat(...\func_get_args()); - } - - public function hKeys($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hKeys(...\func_get_args()); - } - - public function hLen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hLen(...\func_get_args()); - } - - public function hMget($key, $keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hMget(...\func_get_args()); - } - - public function hMset($key, $pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hMset(...\func_get_args()); - } - - public function hSet($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args()); - } - - public function hSetNx($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSetNx(...\func_get_args()); - } - - public function hStrLen($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hStrLen(...\func_get_args()); - } - - public function hVals($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hVals(...\func_get_args()); - } - - public function hscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function incr($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incr(...\func_get_args()); - } - - public function incrBy($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrBy(...\func_get_args()); - } - - public function incrByFloat($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrByFloat(...\func_get_args()); - } - - public function info($option = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->info(...\func_get_args()); - } - - public function isConnected() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->isConnected(...\func_get_args()); - } - - public function keys($pattern) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->keys(...\func_get_args()); - } - - public function lInsert($key, $position, $pivot, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lInsert(...\func_get_args()); - } - - public function lLen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lLen(...\func_get_args()); - } - - public function lPop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPop(...\func_get_args()); - } - - public function lPush($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPush(...\func_get_args()); - } - - public function lPushx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPushx(...\func_get_args()); - } - - public function lSet($key, $index, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lSet(...\func_get_args()); - } - - public function lastSave() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lastSave(...\func_get_args()); - } - - public function lindex($key, $index) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lindex(...\func_get_args()); - } - - public function lrange($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrange(...\func_get_args()); - } - - public function lrem($key, $value, $count) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrem(...\func_get_args()); - } - - public function ltrim($key, $start, $stop) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ltrim(...\func_get_args()); - } - - public function mget($keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function migrate($host, $port, $key, $db, $timeout, $copy = null, $replace = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->migrate(...\func_get_args()); - } - - public function move($key, $dbindex) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->move(...\func_get_args()); - } - - public function mset($pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mset(...\func_get_args()); - } - - public function msetnx($pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetnx(...\func_get_args()); - } - - public function multi($mode = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->multi(...\func_get_args()); - } - - public function object($field, $key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->object(...\func_get_args()); - } - - public function pconnect($host, $port = null, $timeout = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pconnect(...\func_get_args()); - } - - public function persist($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->persist(...\func_get_args()); - } - - public function pexpire($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpire(...\func_get_args()); - } - - public function pexpireAt($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpireAt(...\func_get_args()); - } - - public function pfadd($key, $elements) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfadd(...\func_get_args()); - } - - public function pfcount($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - - public function pfmerge($dstkey, $keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfmerge(...\func_get_args()); - } - - public function ping() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ping(...\func_get_args()); - } - - public function pipeline() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pipeline(...\func_get_args()); - } - - public function psetex($key, $expire, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psetex(...\func_get_args()); - } - - public function psubscribe($patterns, $callback) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psubscribe(...\func_get_args()); - } - - public function pttl($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pttl(...\func_get_args()); - } - - public function publish($channel, $message) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - - public function pubsub($cmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pubsub(...\func_get_args()); - } - - public function punsubscribe($pattern, ...$other_patterns) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->punsubscribe(...\func_get_args()); - } - - public function rPop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPop(...\func_get_args()); - } - - public function rPush($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPush(...\func_get_args()); - } - - public function rPushx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPushx(...\func_get_args()); - } - - public function randomKey() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->randomKey(...\func_get_args()); - } - - public function rawcommand($cmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawcommand(...\func_get_args()); - } - - public function rename($key, $newkey) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rename(...\func_get_args()); - } - - public function renameNx($key, $newkey) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renameNx(...\func_get_args()); - } - - public function restore($ttl, $key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->restore(...\func_get_args()); - } - - public function role() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->role(...\func_get_args()); - } - - public function rpoplpush($src, $dst) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpoplpush(...\func_get_args()); - } - - public function sAdd($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sAdd(...\func_get_args()); - } - - public function sAddArray($key, $options) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sAddArray(...\func_get_args()); - } - - public function sDiff($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sDiff(...\func_get_args()); - } - - public function sDiffStore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sDiffStore(...\func_get_args()); - } - - public function sInter($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sInter(...\func_get_args()); - } - - public function sInterStore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sInterStore(...\func_get_args()); - } - - public function sMembers($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMembers(...\func_get_args()); - } - - public function sMisMember($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMisMember(...\func_get_args()); - } - - public function sMove($src, $dst, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMove(...\func_get_args()); - } - - public function sPop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sPop(...\func_get_args()); - } - - public function sRandMember($key, $count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args()); - } - - public function sUnion($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sUnion(...\func_get_args()); - } - - public function sUnionStore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sUnionStore(...\func_get_args()); - } - - public function save() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); - } - - public function scan(&$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scan($i_iterator, ...\array_slice(\func_get_args(), 1)); - } - - public function scard($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scard(...\func_get_args()); - } - - public function script($cmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->script(...\func_get_args()); - } - - public function select($dbindex) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); - } - - public function set($key, $value, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->set(...\func_get_args()); - } - - public function setBit($key, $offset, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setBit(...\func_get_args()); - } - - public function setOption($option, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setOption(...\func_get_args()); - } - - public function setRange($key, $offset, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setRange(...\func_get_args()); - } - - public function setex($key, $expire, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setex(...\func_get_args()); - } - - public function setnx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setnx(...\func_get_args()); - } - - public function sismember($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sismember(...\func_get_args()); - } - - public function slaveof($host = null, $port = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slaveof(...\func_get_args()); - } - - public function slowlog($arg, $option = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slowlog(...\func_get_args()); - } - - public function sort($key, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort(...\func_get_args()); - } - - public function sortAsc($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortAsc(...\func_get_args()); - } - - public function sortAscAlpha($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortAscAlpha(...\func_get_args()); - } - - public function sortDesc($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortDesc(...\func_get_args()); - } - - public function sortDescAlpha($key, $pattern = null, $get = null, $start = null, $end = null, $getList = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortDescAlpha(...\func_get_args()); - } - - public function srem($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srem(...\func_get_args()); - } - - public function sscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function strlen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->strlen(...\func_get_args()); - } - - public function subscribe($channels, $callback) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->subscribe(...\func_get_args()); - } - - public function swapdb($srcdb, $dstdb) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->swapdb(...\func_get_args()); - } - - public function time() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->time(...\func_get_args()); - } - - public function ttl($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ttl(...\func_get_args()); - } - - public function type($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->type(...\func_get_args()); - } - - public function unlink($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unlink(...\func_get_args()); - } - - public function unsubscribe($channel, ...$other_channels) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unsubscribe(...\func_get_args()); - } - - public function unwatch() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); - } - - public function wait($numslaves, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->wait(...\func_get_args()); - } - - public function watch($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - - public function xack($str_key, $str_group, $arr_ids) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xack(...\func_get_args()); - } - - public function xadd($str_key, $str_id, $arr_fields, $i_maxlen = null, $boo_approximate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function xclaim($str_key, $str_group, $str_consumer, $i_min_idle, $arr_ids, $arr_opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xclaim(...\func_get_args()); - } - - public function xdel($str_key, $arr_ids) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdel(...\func_get_args()); - } - - public function xgroup($str_operation, $str_key = null, $str_arg1 = null, $str_arg2 = null, $str_arg3 = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xgroup(...\func_get_args()); - } - - public function xinfo($str_cmd, $str_key = null, $str_group = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xinfo(...\func_get_args()); - } - - public function xlen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xlen(...\func_get_args()); - } - - public function xpending($str_key, $str_group, $str_start = null, $str_end = null, $i_count = null, $str_consumer = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xpending(...\func_get_args()); - } - - public function xrange($str_key, $str_start, $str_end, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrange(...\func_get_args()); - } - - public function xread($arr_streams, $i_count = null, $i_block = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xread(...\func_get_args()); - } - - public function xreadgroup($str_group, $str_consumer, $arr_streams, $i_count = null, $i_block = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xreadgroup(...\func_get_args()); - } - - public function xrevrange($str_key, $str_start, $str_end, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrevrange(...\func_get_args()); - } - - public function xtrim($str_key, $i_maxlen, $boo_approximate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xtrim(...\func_get_args()); - } - - public function zAdd($key, $score, $value, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zAdd(...\func_get_args()); - } - - public function zCard($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zCard(...\func_get_args()); - } - - public function zCount($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zCount(...\func_get_args()); - } - - public function zIncrBy($key, $value, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zIncrBy(...\func_get_args()); - } - - public function zLexCount($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zLexCount(...\func_get_args()); - } - - public function zPopMax($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zPopMax(...\func_get_args()); - } - - public function zPopMin($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zPopMin(...\func_get_args()); - } - - public function zRange($key, $start, $end, $scores = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRange(...\func_get_args()); - } - - public function zRangeByLex($key, $min, $max, $offset = null, $limit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRangeByLex(...\func_get_args()); - } - - public function zRangeByScore($key, $start, $end, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRangeByScore(...\func_get_args()); - } - - public function zRank($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRank(...\func_get_args()); - } - - public function zRem($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRem(...\func_get_args()); - } - - public function zRemRangeByLex($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByLex(...\func_get_args()); - } - - public function zRemRangeByRank($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByRank(...\func_get_args()); - } - - public function zRemRangeByScore($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByScore(...\func_get_args()); - } - - public function zRevRange($key, $start, $end, $scores = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRange(...\func_get_args()); - } - - public function zRevRangeByLex($key, $min, $max, $offset = null, $limit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRangeByLex(...\func_get_args()); - } - - public function zRevRangeByScore($key, $start, $end, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRangeByScore(...\func_get_args()); - } - - public function zRevRank($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRank(...\func_get_args()); - } - - public function zScore($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zScore(...\func_get_args()); - } - - public function zinterstore($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinterstore(...\func_get_args()); - } - - public function zscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function zunionstore($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunionstore(...\func_get_args()); - } - - public function delete($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delete(...\func_get_args()); - } - - public function evaluate($script, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evaluate(...\func_get_args()); - } - - public function evaluateSha($script_sha, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evaluateSha(...\func_get_args()); - } - - public function getKeys($pattern) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getKeys(...\func_get_args()); - } - - public function getMultiple($keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getMultiple(...\func_get_args()); - } - - public function lGet($key, $index) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lGet(...\func_get_args()); - } - - public function lGetRange($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lGetRange(...\func_get_args()); - } - - public function lRemove($key, $value, $count) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lRemove(...\func_get_args()); - } - - public function lSize($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lSize(...\func_get_args()); - } - - public function listTrim($key, $start, $stop) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->listTrim(...\func_get_args()); - } - - public function open($host, $port = null, $timeout = null, $retry_interval = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->open(...\func_get_args()); - } - - public function popen($host, $port = null, $timeout = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->popen(...\func_get_args()); - } - - public function renameKey($key, $newkey) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renameKey(...\func_get_args()); - } - - public function sContains($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sContains(...\func_get_args()); - } - - public function sGetMembers($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sGetMembers(...\func_get_args()); - } - - public function sRemove($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRemove(...\func_get_args()); - } - - public function sSize($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sSize(...\func_get_args()); - } - - public function sendEcho($msg) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sendEcho(...\func_get_args()); - } - - public function setTimeout($key, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setTimeout(...\func_get_args()); - } - - public function substr($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->substr(...\func_get_args()); - } - - public function zDelete($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zDelete(...\func_get_args()); - } - - public function zDeleteRangeByRank($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zDeleteRangeByRank(...\func_get_args()); - } - - public function zDeleteRangeByScore($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zDeleteRangeByScore(...\func_get_args()); - } - - public function zInter($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zInter(...\func_get_args()); - } - - public function zRemove($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemove(...\func_get_args()); - } - - public function zRemoveRangeByScore($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemoveRangeByScore(...\func_get_args()); - } - - public function zReverseRange($key, $start, $end, $scores = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zReverseRange(...\func_get_args()); - } - - public function zSize($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zSize(...\func_get_args()); - } - - public function zUnion($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zUnion(...\func_get_args()); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Redis6Proxy.php b/projects/priceservice/vendor/symfony/cache/Traits/Redis6Proxy.php deleted file mode 100644 index c841d42..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Redis6Proxy.php +++ /dev/null @@ -1,1269 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\VarExporter\LazyObjectInterface; -use Symfony\Component\VarExporter\LazyProxyTrait; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -/** - * @internal - */ -class Redis6Proxy extends \Redis implements ResetInterface, LazyObjectInterface -{ - use Redis6ProxyTrait; - use LazyProxyTrait { - resetLazyObject as reset; - } - - private const LAZY_OBJECT_PROPERTY_SCOPES = []; - - public function __construct($options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->__construct(...\func_get_args()); - } - - public function _compress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_compress(...\func_get_args()); - } - - public function _uncompress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_uncompress(...\func_get_args()); - } - - public function _prefix($key): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_prefix(...\func_get_args()); - } - - public function _serialize($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_serialize(...\func_get_args()); - } - - public function _unserialize($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unserialize(...\func_get_args()); - } - - public function _pack($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_pack(...\func_get_args()); - } - - public function _unpack($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unpack(...\func_get_args()); - } - - public function acl($subcmd, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->acl(...\func_get_args()); - } - - public function append($key, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->append(...\func_get_args()); - } - - public function auth(#[\SensitiveParameter] $credentials): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->auth(...\func_get_args()); - } - - public function bgSave(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgSave(...\func_get_args()); - } - - public function bgrewriteaof(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgrewriteaof(...\func_get_args()); - } - - public function bitcount($key, $start = 0, $end = -1, $bybit = false): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitcount(...\func_get_args()); - } - - public function bitop($operation, $deskey, $srckey, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitop(...\func_get_args()); - } - - public function bitpos($key, $bit, $start = 0, $end = -1, $bybit = false): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitpos(...\func_get_args()); - } - - public function blPop($key_or_keys, $timeout_or_key, ...$extra_args): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blPop(...\func_get_args()); - } - - public function brPop($key_or_keys, $timeout_or_key, ...$extra_args): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brPop(...\func_get_args()); - } - - public function brpoplpush($src, $dst, $timeout): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpoplpush(...\func_get_args()); - } - - public function bzPopMax($key, $timeout_or_key, ...$extra_args): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzPopMax(...\func_get_args()); - } - - public function bzPopMin($key, $timeout_or_key, ...$extra_args): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzPopMin(...\func_get_args()); - } - - public function bzmpop($timeout, $keys, $from, $count = 1): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzmpop(...\func_get_args()); - } - - public function zmpop($keys, $from, $count = 1): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zmpop(...\func_get_args()); - } - - public function blmpop($timeout, $keys, $from, $count = 1): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmpop(...\func_get_args()); - } - - public function lmpop($keys, $from, $count = 1): \Redis|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmpop(...\func_get_args()); - } - - public function clearLastError(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearLastError(...\func_get_args()); - } - - public function client($opt, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->client(...\func_get_args()); - } - - public function close(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->close(...\func_get_args()); - } - - public function command($opt = null, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->command(...\func_get_args()); - } - - public function config($operation, $key_or_settings = null, $value = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->config(...\func_get_args()); - } - - public function connect($host, $port = 6379, $timeout = 0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0, $context = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->connect(...\func_get_args()); - } - - public function copy($src, $dst, $options = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->copy(...\func_get_args()); - } - - public function dbSize(): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dbSize(...\func_get_args()); - } - - public function debug($key): \Redis|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->debug(...\func_get_args()); - } - - public function decr($key, $by = 1): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decr(...\func_get_args()); - } - - public function decrBy($key, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrBy(...\func_get_args()); - } - - public function del($key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->del(...\func_get_args()); - } - - public function delete($key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->delete(...\func_get_args()); - } - - public function discard(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->discard(...\func_get_args()); - } - - public function echo($str): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->echo(...\func_get_args()); - } - - public function eval($script, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval(...\func_get_args()); - } - - public function eval_ro($script_sha, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval_ro(...\func_get_args()); - } - - public function evalsha($sha1, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha(...\func_get_args()); - } - - public function evalsha_ro($sha1, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha_ro(...\func_get_args()); - } - - public function exec(): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exec(...\func_get_args()); - } - - public function exists($key, ...$other_keys): \Redis|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exists(...\func_get_args()); - } - - public function expire($key, $timeout, $mode = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expire(...\func_get_args()); - } - - public function expireAt($key, $timestamp, $mode = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expireAt(...\func_get_args()); - } - - public function failover($to = null, $abort = false, $timeout = 0): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->failover(...\func_get_args()); - } - - public function expiretime($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expiretime(...\func_get_args()); - } - - public function pexpiretime($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpiretime(...\func_get_args()); - } - - public function fcall($fn, $keys = [], $args = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->fcall(...\func_get_args()); - } - - public function fcall_ro($fn, $keys = [], $args = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->fcall_ro(...\func_get_args()); - } - - public function flushAll($sync = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushAll(...\func_get_args()); - } - - public function flushDB($sync = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushDB(...\func_get_args()); - } - - public function function($operation, ...$args): \Redis|array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->function(...\func_get_args()); - } - - public function geoadd($key, $lng, $lat, $member, ...$other_triples_and_options): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geoadd(...\func_get_args()); - } - - public function geodist($key, $src, $dst, $unit = null): \Redis|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function geohash($key, $member, ...$other_members): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geohash(...\func_get_args()); - } - - public function geopos($key, $member, ...$other_members): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geopos(...\func_get_args()); - } - - public function georadius($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius(...\func_get_args()); - } - - public function georadius_ro($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius_ro(...\func_get_args()); - } - - public function georadiusbymember($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember(...\func_get_args()); - } - - public function georadiusbymember_ro($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember_ro(...\func_get_args()); - } - - public function geosearch($key, $position, $shape, $unit, $options = []): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearch(...\func_get_args()); - } - - public function geosearchstore($dst, $src, $position, $shape, $unit, $options = []): \Redis|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearchstore(...\func_get_args()); - } - - public function get($key): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->get(...\func_get_args()); - } - - public function getAuth(): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getAuth(...\func_get_args()); - } - - public function getBit($key, $idx): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getBit(...\func_get_args()); - } - - public function getEx($key, $options = []): \Redis|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getEx(...\func_get_args()); - } - - public function getDBNum(): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getDBNum(...\func_get_args()); - } - - public function getDel($key): \Redis|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getDel(...\func_get_args()); - } - - public function getHost(): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getHost(...\func_get_args()); - } - - public function getLastError(): ?string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getLastError(...\func_get_args()); - } - - public function getMode(): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getMode(...\func_get_args()); - } - - public function getOption($option): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getOption(...\func_get_args()); - } - - public function getPersistentID(): ?string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPersistentID(...\func_get_args()); - } - - public function getPort(): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPort(...\func_get_args()); - } - - public function getRange($key, $start, $end): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getRange(...\func_get_args()); - } - - public function lcs($key1, $key2, $options = null): \Redis|array|false|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lcs(...\func_get_args()); - } - - public function getReadTimeout(): float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getReadTimeout(...\func_get_args()); - } - - public function getset($key, $value): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getset(...\func_get_args()); - } - - public function getTimeout(): false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getTimeout(...\func_get_args()); - } - - public function getTransferredBytes(): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getTransferredBytes(...\func_get_args()); - } - - public function clearTransferredBytes(): void - { - ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearTransferredBytes(...\func_get_args()); - } - - public function hDel($key, $field, ...$other_fields): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hDel(...\func_get_args()); - } - - public function hExists($key, $field): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hExists(...\func_get_args()); - } - - public function hGet($key, $member): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hGet(...\func_get_args()); - } - - public function hGetAll($key): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hGetAll(...\func_get_args()); - } - - public function hIncrBy($key, $field, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hIncrBy(...\func_get_args()); - } - - public function hIncrByFloat($key, $field, $value): \Redis|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hIncrByFloat(...\func_get_args()); - } - - public function hKeys($key): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hKeys(...\func_get_args()); - } - - public function hLen($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hLen(...\func_get_args()); - } - - public function hMget($key, $fields): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hMget(...\func_get_args()); - } - - public function hMset($key, $fieldvals): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hMset(...\func_get_args()); - } - - public function hSetNx($key, $field, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSetNx(...\func_get_args()); - } - - public function hStrLen($key, $field): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hStrLen(...\func_get_args()); - } - - public function hVals($key): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hVals(...\func_get_args()); - } - - public function hscan($key, &$iterator, $pattern = null, $count = 0): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function incr($key, $by = 1): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incr(...\func_get_args()); - } - - public function incrBy($key, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrBy(...\func_get_args()); - } - - public function incrByFloat($key, $value): \Redis|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrByFloat(...\func_get_args()); - } - - public function info(...$sections): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->info(...\func_get_args()); - } - - public function isConnected(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->isConnected(...\func_get_args()); - } - - public function keys($pattern) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->keys(...\func_get_args()); - } - - public function lInsert($key, $pos, $pivot, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lInsert(...\func_get_args()); - } - - public function lLen($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lLen(...\func_get_args()); - } - - public function lMove($src, $dst, $wherefrom, $whereto): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lMove(...\func_get_args()); - } - - public function blmove($src, $dst, $wherefrom, $whereto, $timeout): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmove(...\func_get_args()); - } - - public function lPop($key, $count = 0): \Redis|array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPop(...\func_get_args()); - } - - public function lPos($key, $value, $options = null): \Redis|array|bool|int|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPos(...\func_get_args()); - } - - public function lPush($key, ...$elements): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPush(...\func_get_args()); - } - - public function rPush($key, ...$elements): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPush(...\func_get_args()); - } - - public function lPushx($key, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lPushx(...\func_get_args()); - } - - public function rPushx($key, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPushx(...\func_get_args()); - } - - public function lSet($key, $index, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lSet(...\func_get_args()); - } - - public function lastSave(): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lastSave(...\func_get_args()); - } - - public function lindex($key, $index): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lindex(...\func_get_args()); - } - - public function lrange($key, $start, $end): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrange(...\func_get_args()); - } - - public function lrem($key, $value, $count = 0): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrem(...\func_get_args()); - } - - public function ltrim($key, $start, $end): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ltrim(...\func_get_args()); - } - - public function migrate($host, $port, $key, $dstdb, $timeout, $copy = false, $replace = false, #[\SensitiveParameter] $credentials = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->migrate(...\func_get_args()); - } - - public function move($key, $index): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->move(...\func_get_args()); - } - - public function mset($key_values): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mset(...\func_get_args()); - } - - public function msetnx($key_values): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetnx(...\func_get_args()); - } - - public function multi($value = \Redis::MULTI): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->multi(...\func_get_args()); - } - - public function object($subcommand, $key): \Redis|false|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->object(...\func_get_args()); - } - - public function open($host, $port = 6379, $timeout = 0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0, $context = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->open(...\func_get_args()); - } - - public function pconnect($host, $port = 6379, $timeout = 0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0, $context = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pconnect(...\func_get_args()); - } - - public function persist($key): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->persist(...\func_get_args()); - } - - public function pexpire($key, $timeout, $mode = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpire(...\func_get_args()); - } - - public function pexpireAt($key, $timestamp, $mode = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpireAt(...\func_get_args()); - } - - public function pfadd($key, $elements): \Redis|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfadd(...\func_get_args()); - } - - public function pfcount($key_or_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - - public function pfmerge($dst, $srckeys): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfmerge(...\func_get_args()); - } - - public function ping($message = null): \Redis|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ping(...\func_get_args()); - } - - public function pipeline(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pipeline(...\func_get_args()); - } - - public function popen($host, $port = 6379, $timeout = 0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0, $context = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->popen(...\func_get_args()); - } - - public function psetex($key, $expire, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psetex(...\func_get_args()); - } - - public function psubscribe($patterns, $cb): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psubscribe(...\func_get_args()); - } - - public function pttl($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pttl(...\func_get_args()); - } - - public function publish($channel, $message): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - - public function pubsub($command, $arg = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pubsub(...\func_get_args()); - } - - public function punsubscribe($patterns): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->punsubscribe(...\func_get_args()); - } - - public function rPop($key, $count = 0): \Redis|array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rPop(...\func_get_args()); - } - - public function randomKey(): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->randomKey(...\func_get_args()); - } - - public function rawcommand($command, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawcommand(...\func_get_args()); - } - - public function rename($old_name, $new_name): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rename(...\func_get_args()); - } - - public function renameNx($key_src, $key_dst): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renameNx(...\func_get_args()); - } - - public function restore($key, $ttl, $value, $options = null): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->restore(...\func_get_args()); - } - - public function role(): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->role(...\func_get_args()); - } - - public function rpoplpush($srckey, $dstkey): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpoplpush(...\func_get_args()); - } - - public function sAdd($key, $value, ...$other_values): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sAdd(...\func_get_args()); - } - - public function sAddArray($key, $values): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sAddArray(...\func_get_args()); - } - - public function sDiff($key, ...$other_keys): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sDiff(...\func_get_args()); - } - - public function sDiffStore($dst, $key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sDiffStore(...\func_get_args()); - } - - public function sInter($key, ...$other_keys): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sInter(...\func_get_args()); - } - - public function sintercard($keys, $limit = -1): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sintercard(...\func_get_args()); - } - - public function sInterStore($key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sInterStore(...\func_get_args()); - } - - public function sMembers($key): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMembers(...\func_get_args()); - } - - public function sMisMember($key, $member, ...$other_members): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMisMember(...\func_get_args()); - } - - public function sMove($src, $dst, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sMove(...\func_get_args()); - } - - public function sPop($key, $count = 0): \Redis|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sPop(...\func_get_args()); - } - - public function sUnion($key, ...$other_keys): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sUnion(...\func_get_args()); - } - - public function sUnionStore($dst, $key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sUnionStore(...\func_get_args()); - } - - public function save(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); - } - - public function scan(&$iterator, $pattern = null, $count = 0, $type = null): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scan($iterator, ...\array_slice(\func_get_args(), 1)); - } - - public function scard($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scard(...\func_get_args()); - } - - public function script($command, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->script(...\func_get_args()); - } - - public function select($db): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); - } - - public function set($key, $value, $options = null): \Redis|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->set(...\func_get_args()); - } - - public function setBit($key, $idx, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setBit(...\func_get_args()); - } - - public function setRange($key, $index, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setRange(...\func_get_args()); - } - - public function setOption($option, $value): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setOption(...\func_get_args()); - } - - public function setex($key, $expire, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setex(...\func_get_args()); - } - - public function setnx($key, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setnx(...\func_get_args()); - } - - public function sismember($key, $value): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sismember(...\func_get_args()); - } - - public function slaveof($host = null, $port = 6379): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slaveof(...\func_get_args()); - } - - public function replicaof($host = null, $port = 6379): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->replicaof(...\func_get_args()); - } - - public function touch($key_or_array, ...$more_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->touch(...\func_get_args()); - } - - public function slowlog($operation, $length = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slowlog(...\func_get_args()); - } - - public function sort($key, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort(...\func_get_args()); - } - - public function sort_ro($key, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort_ro(...\func_get_args()); - } - - public function sortAsc($key, $pattern = null, $get = null, $offset = -1, $count = -1, $store = null): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortAsc(...\func_get_args()); - } - - public function sortAscAlpha($key, $pattern = null, $get = null, $offset = -1, $count = -1, $store = null): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortAscAlpha(...\func_get_args()); - } - - public function sortDesc($key, $pattern = null, $get = null, $offset = -1, $count = -1, $store = null): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortDesc(...\func_get_args()); - } - - public function sortDescAlpha($key, $pattern = null, $get = null, $offset = -1, $count = -1, $store = null): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sortDescAlpha(...\func_get_args()); - } - - public function srem($key, $value, ...$other_values): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srem(...\func_get_args()); - } - - public function sscan($key, &$iterator, $pattern = null, $count = 0): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function ssubscribe($channels, $cb): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ssubscribe(...\func_get_args()); - } - - public function strlen($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->strlen(...\func_get_args()); - } - - public function subscribe($channels, $cb): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->subscribe(...\func_get_args()); - } - - public function sunsubscribe($channels): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunsubscribe(...\func_get_args()); - } - - public function swapdb($src, $dst): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->swapdb(...\func_get_args()); - } - - public function time(): \Redis|array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->time(...\func_get_args()); - } - - public function ttl($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ttl(...\func_get_args()); - } - - public function type($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->type(...\func_get_args()); - } - - public function unlink($key, ...$other_keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unlink(...\func_get_args()); - } - - public function unsubscribe($channels): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unsubscribe(...\func_get_args()); - } - - public function unwatch(): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); - } - - public function watch($key, ...$other_keys): \Redis|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - - public function wait($numreplicas, $timeout): false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->wait(...\func_get_args()); - } - - public function xack($key, $group, $ids): false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xack(...\func_get_args()); - } - - public function xadd($key, $id, $values, $maxlen = 0, $approx = false, $nomkstream = false): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function xautoclaim($key, $group, $consumer, $min_idle, $start, $count = -1, $justid = false): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xautoclaim(...\func_get_args()); - } - - public function xclaim($key, $group, $consumer, $min_idle, $ids, $options): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xclaim(...\func_get_args()); - } - - public function xdel($key, $ids): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdel(...\func_get_args()); - } - - public function xgroup($operation, $key = null, $group = null, $id_or_consumer = null, $mkstream = false, $entries_read = -2): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xgroup(...\func_get_args()); - } - - public function xinfo($operation, $arg1 = null, $arg2 = null, $count = -1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xinfo(...\func_get_args()); - } - - public function xlen($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xlen(...\func_get_args()); - } - - public function xpending($key, $group, $start = null, $end = null, $count = -1, $consumer = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xpending(...\func_get_args()); - } - - public function xrange($key, $start, $end, $count = -1): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrange(...\func_get_args()); - } - - public function xread($streams, $count = -1, $block = -1): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xread(...\func_get_args()); - } - - public function xreadgroup($group, $consumer, $streams, $count = 1, $block = 1): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xreadgroup(...\func_get_args()); - } - - public function xrevrange($key, $end, $start, $count = -1): \Redis|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrevrange(...\func_get_args()); - } - - public function xtrim($key, $threshold, $approx = false, $minid = false, $limit = -1): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xtrim(...\func_get_args()); - } - - public function zAdd($key, $score_or_options, ...$more_scores_and_mems): \Redis|false|float|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zAdd(...\func_get_args()); - } - - public function zCard($key): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zCard(...\func_get_args()); - } - - public function zCount($key, $start, $end): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zCount(...\func_get_args()); - } - - public function zIncrBy($key, $value, $member): \Redis|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zIncrBy(...\func_get_args()); - } - - public function zLexCount($key, $min, $max): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zLexCount(...\func_get_args()); - } - - public function zMscore($key, $member, ...$other_members): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zMscore(...\func_get_args()); - } - - public function zPopMax($key, $count = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zPopMax(...\func_get_args()); - } - - public function zPopMin($key, $count = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zPopMin(...\func_get_args()); - } - - public function zRange($key, $start, $end, $options = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRange(...\func_get_args()); - } - - public function zRangeByLex($key, $min, $max, $offset = -1, $count = -1): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRangeByLex(...\func_get_args()); - } - - public function zRangeByScore($key, $start, $end, $options = []): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRangeByScore(...\func_get_args()); - } - - public function zrangestore($dstkey, $srckey, $start, $end, $options = null): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangestore(...\func_get_args()); - } - - public function zRandMember($key, $options = null): \Redis|array|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRandMember(...\func_get_args()); - } - - public function zRank($key, $member): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRank(...\func_get_args()); - } - - public function zRem($key, $member, ...$other_members): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRem(...\func_get_args()); - } - - public function zRemRangeByLex($key, $min, $max): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByLex(...\func_get_args()); - } - - public function zRemRangeByRank($key, $start, $end): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByRank(...\func_get_args()); - } - - public function zRemRangeByScore($key, $start, $end): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRemRangeByScore(...\func_get_args()); - } - - public function zRevRange($key, $start, $end, $scores = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRange(...\func_get_args()); - } - - public function zRevRangeByLex($key, $max, $min, $offset = -1, $count = -1): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRangeByLex(...\func_get_args()); - } - - public function zRevRangeByScore($key, $max, $min, $options = []): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRangeByScore(...\func_get_args()); - } - - public function zRevRank($key, $member): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zRevRank(...\func_get_args()); - } - - public function zScore($key, $member): \Redis|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zScore(...\func_get_args()); - } - - public function zdiff($keys, $options = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiff(...\func_get_args()); - } - - public function zdiffstore($dst, $keys): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiffstore(...\func_get_args()); - } - - public function zinter($keys, $weights = null, $options = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinter(...\func_get_args()); - } - - public function zintercard($keys, $limit = -1): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zintercard(...\func_get_args()); - } - - public function zinterstore($dst, $keys, $weights = null, $aggregate = null): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinterstore(...\func_get_args()); - } - - public function zscan($key, &$iterator, $pattern = null, $count = 0): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function zunion($keys, $weights = null, $options = null): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunion(...\func_get_args()); - } - - public function zunionstore($dst, $keys, $weights = null, $aggregate = null): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunionstore(...\func_get_args()); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Redis6ProxyTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Redis6ProxyTrait.php deleted file mode 100644 index 34f60cb..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Redis6ProxyTrait.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -if (version_compare(phpversion('redis'), '6.1.0-dev', '>=')) { - /** - * @internal - */ - trait Redis6ProxyTrait - { - public function dump($key): \Redis|string|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function hRandField($key, $options = null): \Redis|array|string|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args()); - } - - public function hSet($key, ...$fields_and_vals): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args()); - } - - public function mget($keys): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function sRandMember($key, $count = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args()); - } - - public function waitaof($numlocal, $numreplicas, $timeout): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait Redis6ProxyTrait - { - public function dump($key): \Redis|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function hRandField($key, $options = null): \Redis|array|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hRandField(...\func_get_args()); - } - - public function hSet($key, $member, $value): \Redis|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hSet(...\func_get_args()); - } - - public function mget($keys): \Redis|array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function sRandMember($key, $count = 0): \Redis|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sRandMember(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster5Proxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster5Proxy.php deleted file mode 100644 index 511c53d..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster5Proxy.php +++ /dev/null @@ -1,983 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\VarExporter\LazyObjectInterface; -use Symfony\Component\VarExporter\LazyProxyTrait; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -/** - * @internal - */ -class RedisCluster5Proxy extends \RedisCluster implements ResetInterface, LazyObjectInterface -{ - use LazyProxyTrait { - resetLazyObject as reset; - } - - private const LAZY_OBJECT_PROPERTY_SCOPES = []; - - public function __construct($name, $seeds = null, $timeout = null, $read_timeout = null, $persistent = null, #[\SensitiveParameter] $auth = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->__construct(...\func_get_args()); - } - - public function _masters() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_masters(...\func_get_args()); - } - - public function _prefix($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_prefix(...\func_get_args()); - } - - public function _redir() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_redir(...\func_get_args()); - } - - public function _serialize($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_serialize(...\func_get_args()); - } - - public function _unserialize($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unserialize(...\func_get_args()); - } - - public function _compress($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_compress(...\func_get_args()); - } - - public function _uncompress($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_uncompress(...\func_get_args()); - } - - public function _pack($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_pack(...\func_get_args()); - } - - public function _unpack($value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unpack(...\func_get_args()); - } - - public function acl($key_or_address, $subcmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->acl(...\func_get_args()); - } - - public function append($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->append(...\func_get_args()); - } - - public function bgrewriteaof($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgrewriteaof(...\func_get_args()); - } - - public function bgsave($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); - } - - public function bitcount($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitcount(...\func_get_args()); - } - - public function bitop($operation, $ret_key, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitop(...\func_get_args()); - } - - public function bitpos($key, $bit, $start = null, $end = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitpos(...\func_get_args()); - } - - public function blpop($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blpop(...\func_get_args()); - } - - public function brpop($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpop(...\func_get_args()); - } - - public function brpoplpush($src, $dst, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpoplpush(...\func_get_args()); - } - - public function clearlasterror() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearlasterror(...\func_get_args()); - } - - public function bzpopmax($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmax(...\func_get_args()); - } - - public function bzpopmin($key, $timeout_or_key, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmin(...\func_get_args()); - } - - public function client($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->client(...\func_get_args()); - } - - public function close() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->close(...\func_get_args()); - } - - public function cluster($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cluster(...\func_get_args()); - } - - public function command(...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->command(...\func_get_args()); - } - - public function config($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->config(...\func_get_args()); - } - - public function dbsize($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dbsize(...\func_get_args()); - } - - public function decr($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decr(...\func_get_args()); - } - - public function decrby($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrby(...\func_get_args()); - } - - public function del($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->del(...\func_get_args()); - } - - public function discard() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->discard(...\func_get_args()); - } - - public function dump($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function echo($msg) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->echo(...\func_get_args()); - } - - public function eval($script, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval(...\func_get_args()); - } - - public function evalsha($script_sha, $args = null, $num_keys = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha(...\func_get_args()); - } - - public function exec() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exec(...\func_get_args()); - } - - public function exists($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exists(...\func_get_args()); - } - - public function expire($key, $timeout) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expire(...\func_get_args()); - } - - public function expireat($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expireat(...\func_get_args()); - } - - public function flushall($key_or_address, $async = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushall(...\func_get_args()); - } - - public function flushdb($key_or_address, $async = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushdb(...\func_get_args()); - } - - public function geoadd($key, $lng, $lat, $member, ...$other_triples) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geoadd(...\func_get_args()); - } - - public function geodist($key, $src, $dst, $unit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function geohash($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geohash(...\func_get_args()); - } - - public function geopos($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geopos(...\func_get_args()); - } - - public function georadius($key, $lng, $lan, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius(...\func_get_args()); - } - - public function georadius_ro($key, $lng, $lan, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius_ro(...\func_get_args()); - } - - public function georadiusbymember($key, $member, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember(...\func_get_args()); - } - - public function georadiusbymember_ro($key, $member, $radius, $unit, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember_ro(...\func_get_args()); - } - - public function get($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->get(...\func_get_args()); - } - - public function getbit($key, $offset) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getbit(...\func_get_args()); - } - - public function getlasterror() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getlasterror(...\func_get_args()); - } - - public function getmode() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getmode(...\func_get_args()); - } - - public function getoption($option) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getoption(...\func_get_args()); - } - - public function getrange($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getrange(...\func_get_args()); - } - - public function getset($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getset(...\func_get_args()); - } - - public function hdel($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hdel(...\func_get_args()); - } - - public function hexists($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexists(...\func_get_args()); - } - - public function hget($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hget(...\func_get_args()); - } - - public function hgetall($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetall(...\func_get_args()); - } - - public function hincrby($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrby(...\func_get_args()); - } - - public function hincrbyfloat($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrbyfloat(...\func_get_args()); - } - - public function hkeys($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hkeys(...\func_get_args()); - } - - public function hlen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hlen(...\func_get_args()); - } - - public function hmget($key, $keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmget(...\func_get_args()); - } - - public function hmset($key, $pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmset(...\func_get_args()); - } - - public function hscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function hset($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hset(...\func_get_args()); - } - - public function hsetnx($key, $member, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetnx(...\func_get_args()); - } - - public function hstrlen($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hstrlen(...\func_get_args()); - } - - public function hvals($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hvals(...\func_get_args()); - } - - public function incr($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incr(...\func_get_args()); - } - - public function incrby($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrby(...\func_get_args()); - } - - public function incrbyfloat($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrbyfloat(...\func_get_args()); - } - - public function info($key_or_address, $option = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->info(...\func_get_args()); - } - - public function keys($pattern) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->keys(...\func_get_args()); - } - - public function lastsave($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lastsave(...\func_get_args()); - } - - public function lget($key, $index) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lget(...\func_get_args()); - } - - public function lindex($key, $index) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lindex(...\func_get_args()); - } - - public function linsert($key, $position, $pivot, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->linsert(...\func_get_args()); - } - - public function llen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->llen(...\func_get_args()); - } - - public function lpop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpop(...\func_get_args()); - } - - public function lpush($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpush(...\func_get_args()); - } - - public function lpushx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpushx(...\func_get_args()); - } - - public function lrange($key, $start, $end) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrange(...\func_get_args()); - } - - public function lrem($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrem(...\func_get_args()); - } - - public function lset($key, $index, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lset(...\func_get_args()); - } - - public function ltrim($key, $start, $stop) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ltrim(...\func_get_args()); - } - - public function mget($keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function mset($pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mset(...\func_get_args()); - } - - public function msetnx($pairs) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetnx(...\func_get_args()); - } - - public function multi() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->multi(...\func_get_args()); - } - - public function object($field, $key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->object(...\func_get_args()); - } - - public function persist($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->persist(...\func_get_args()); - } - - public function pexpire($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpire(...\func_get_args()); - } - - public function pexpireat($key, $timestamp) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpireat(...\func_get_args()); - } - - public function pfadd($key, $elements) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfadd(...\func_get_args()); - } - - public function pfcount($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - - public function pfmerge($dstkey, $keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfmerge(...\func_get_args()); - } - - public function ping($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ping(...\func_get_args()); - } - - public function psetex($key, $expire, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psetex(...\func_get_args()); - } - - public function psubscribe($patterns, $callback) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psubscribe(...\func_get_args()); - } - - public function pttl($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pttl(...\func_get_args()); - } - - public function publish($channel, $message) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - - public function pubsub($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pubsub(...\func_get_args()); - } - - public function punsubscribe($pattern, ...$other_patterns) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->punsubscribe(...\func_get_args()); - } - - public function randomkey($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->randomkey(...\func_get_args()); - } - - public function rawcommand($cmd, ...$args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawcommand(...\func_get_args()); - } - - public function rename($key, $newkey) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rename(...\func_get_args()); - } - - public function renamenx($key, $newkey) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renamenx(...\func_get_args()); - } - - public function restore($ttl, $key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->restore(...\func_get_args()); - } - - public function role() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->role(...\func_get_args()); - } - - public function rpop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpop(...\func_get_args()); - } - - public function rpoplpush($src, $dst) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpoplpush(...\func_get_args()); - } - - public function rpush($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpush(...\func_get_args()); - } - - public function rpushx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpushx(...\func_get_args()); - } - - public function sadd($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sadd(...\func_get_args()); - } - - public function saddarray($key, $options) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->saddarray(...\func_get_args()); - } - - public function save($key_or_address) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); - } - - public function scan(&$i_iterator, $str_node, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scan($i_iterator, ...\array_slice(\func_get_args(), 1)); - } - - public function scard($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scard(...\func_get_args()); - } - - public function script($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->script(...\func_get_args()); - } - - public function sdiff($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiff(...\func_get_args()); - } - - public function sdiffstore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiffstore(...\func_get_args()); - } - - public function set($key, $value, $opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->set(...\func_get_args()); - } - - public function setbit($key, $offset, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setbit(...\func_get_args()); - } - - public function setex($key, $expire, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setex(...\func_get_args()); - } - - public function setnx($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setnx(...\func_get_args()); - } - - public function setoption($option, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setoption(...\func_get_args()); - } - - public function setrange($key, $offset, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setrange(...\func_get_args()); - } - - public function sinter($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinter(...\func_get_args()); - } - - public function sinterstore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinterstore(...\func_get_args()); - } - - public function sismember($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sismember(...\func_get_args()); - } - - public function slowlog($key_or_address, $arg = null, ...$other_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slowlog(...\func_get_args()); - } - - public function smembers($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smembers(...\func_get_args()); - } - - public function smove($src, $dst, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smove(...\func_get_args()); - } - - public function sort($key, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort(...\func_get_args()); - } - - public function spop($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->spop(...\func_get_args()); - } - - public function srandmember($key, $count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srandmember(...\func_get_args()); - } - - public function srem($key, $value) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srem(...\func_get_args()); - } - - public function sscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function strlen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->strlen(...\func_get_args()); - } - - public function subscribe($channels, $callback) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->subscribe(...\func_get_args()); - } - - public function sunion($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunion(...\func_get_args()); - } - - public function sunionstore($dst, $key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunionstore(...\func_get_args()); - } - - public function time() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->time(...\func_get_args()); - } - - public function ttl($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ttl(...\func_get_args()); - } - - public function type($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->type(...\func_get_args()); - } - - public function unsubscribe($channel, ...$other_channels) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unsubscribe(...\func_get_args()); - } - - public function unlink($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unlink(...\func_get_args()); - } - - public function unwatch() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); - } - - public function watch($key, ...$other_keys) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - - public function xack($str_key, $str_group, $arr_ids) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xack(...\func_get_args()); - } - - public function xadd($str_key, $str_id, $arr_fields, $i_maxlen = null, $boo_approximate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function xclaim($str_key, $str_group, $str_consumer, $i_min_idle, $arr_ids, $arr_opts = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xclaim(...\func_get_args()); - } - - public function xdel($str_key, $arr_ids) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdel(...\func_get_args()); - } - - public function xgroup($str_operation, $str_key = null, $str_arg1 = null, $str_arg2 = null, $str_arg3 = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xgroup(...\func_get_args()); - } - - public function xinfo($str_cmd, $str_key = null, $str_group = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xinfo(...\func_get_args()); - } - - public function xlen($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xlen(...\func_get_args()); - } - - public function xpending($str_key, $str_group, $str_start = null, $str_end = null, $i_count = null, $str_consumer = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xpending(...\func_get_args()); - } - - public function xrange($str_key, $str_start, $str_end, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrange(...\func_get_args()); - } - - public function xread($arr_streams, $i_count = null, $i_block = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xread(...\func_get_args()); - } - - public function xreadgroup($str_group, $str_consumer, $arr_streams, $i_count = null, $i_block = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xreadgroup(...\func_get_args()); - } - - public function xrevrange($str_key, $str_start, $str_end, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrevrange(...\func_get_args()); - } - - public function xtrim($str_key, $i_maxlen, $boo_approximate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xtrim(...\func_get_args()); - } - - public function zadd($key, $score, $value, ...$extra_args) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zadd(...\func_get_args()); - } - - public function zcard($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcard(...\func_get_args()); - } - - public function zcount($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcount(...\func_get_args()); - } - - public function zincrby($key, $value, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zincrby(...\func_get_args()); - } - - public function zinterstore($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinterstore(...\func_get_args()); - } - - public function zlexcount($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zlexcount(...\func_get_args()); - } - - public function zpopmax($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmax(...\func_get_args()); - } - - public function zpopmin($key) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmin(...\func_get_args()); - } - - public function zrange($key, $start, $end, $scores = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrange(...\func_get_args()); - } - - public function zrangebylex($key, $min, $max, $offset = null, $limit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebylex(...\func_get_args()); - } - - public function zrangebyscore($key, $start, $end, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebyscore(...\func_get_args()); - } - - public function zrank($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrank(...\func_get_args()); - } - - public function zrem($key, $member, ...$other_members) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrem(...\func_get_args()); - } - - public function zremrangebylex($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebylex(...\func_get_args()); - } - - public function zremrangebyrank($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyrank(...\func_get_args()); - } - - public function zremrangebyscore($key, $min, $max) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyscore(...\func_get_args()); - } - - public function zrevrange($key, $start, $end, $scores = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrange(...\func_get_args()); - } - - public function zrevrangebylex($key, $min, $max, $offset = null, $limit = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebylex(...\func_get_args()); - } - - public function zrevrangebyscore($key, $start, $end, $options = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebyscore(...\func_get_args()); - } - - public function zrevrank($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrank(...\func_get_args()); - } - - public function zscan($str_key, &$i_iterator, $str_pattern = null, $i_count = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscan($str_key, $i_iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function zscore($key, $member) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscore(...\func_get_args()); - } - - public function zunionstore($key, $keys, $weights = null, $aggregate = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunionstore(...\func_get_args()); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6Proxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6Proxy.php deleted file mode 100644 index c19aa16..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6Proxy.php +++ /dev/null @@ -1,1139 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\VarExporter\LazyObjectInterface; -use Symfony\Component\VarExporter\LazyProxyTrait; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -/** - * @internal - */ -class RedisCluster6Proxy extends \RedisCluster implements ResetInterface, LazyObjectInterface -{ - use RedisCluster6ProxyTrait; - use LazyProxyTrait { - resetLazyObject as reset; - } - - private const LAZY_OBJECT_PROPERTY_SCOPES = []; - - public function __construct($name, $seeds = null, $timeout = 0, $read_timeout = 0, $persistent = false, #[\SensitiveParameter] $auth = null, $context = null) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->__construct(...\func_get_args()); - } - - public function _compress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_compress(...\func_get_args()); - } - - public function _uncompress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_uncompress(...\func_get_args()); - } - - public function _serialize($value): bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_serialize(...\func_get_args()); - } - - public function _unserialize($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unserialize(...\func_get_args()); - } - - public function _pack($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_pack(...\func_get_args()); - } - - public function _unpack($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unpack(...\func_get_args()); - } - - public function _prefix($key): bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_prefix(...\func_get_args()); - } - - public function _masters(): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_masters(...\func_get_args()); - } - - public function _redir(): ?string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_redir(...\func_get_args()); - } - - public function acl($key_or_address, $subcmd, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->acl(...\func_get_args()); - } - - public function append($key, $value): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->append(...\func_get_args()); - } - - public function bgrewriteaof($key_or_address): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgrewriteaof(...\func_get_args()); - } - - public function bgsave($key_or_address): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); - } - - public function bitcount($key, $start = 0, $end = -1, $bybit = false): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitcount(...\func_get_args()); - } - - public function bitop($operation, $deskey, $srckey, ...$otherkeys): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitop(...\func_get_args()); - } - - public function bitpos($key, $bit, $start = 0, $end = -1, $bybit = false): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitpos(...\func_get_args()); - } - - public function blpop($key, $timeout_or_key, ...$extra_args): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blpop(...\func_get_args()); - } - - public function brpop($key, $timeout_or_key, ...$extra_args): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpop(...\func_get_args()); - } - - public function brpoplpush($srckey, $deskey, $timeout): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpoplpush(...\func_get_args()); - } - - public function lmove($src, $dst, $wherefrom, $whereto): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmove(...\func_get_args()); - } - - public function blmove($src, $dst, $wherefrom, $whereto, $timeout): \Redis|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmove(...\func_get_args()); - } - - public function bzpopmax($key, $timeout_or_key, ...$extra_args): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmax(...\func_get_args()); - } - - public function bzpopmin($key, $timeout_or_key, ...$extra_args): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmin(...\func_get_args()); - } - - public function bzmpop($timeout, $keys, $from, $count = 1): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzmpop(...\func_get_args()); - } - - public function zmpop($keys, $from, $count = 1): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zmpop(...\func_get_args()); - } - - public function blmpop($timeout, $keys, $from, $count = 1): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmpop(...\func_get_args()); - } - - public function lmpop($keys, $from, $count = 1): \RedisCluster|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmpop(...\func_get_args()); - } - - public function clearlasterror(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearlasterror(...\func_get_args()); - } - - public function client($key_or_address, $subcommand, $arg = null): array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->client(...\func_get_args()); - } - - public function close(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->close(...\func_get_args()); - } - - public function cluster($key_or_address, $command, ...$extra_args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cluster(...\func_get_args()); - } - - public function command(...$extra_args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->command(...\func_get_args()); - } - - public function config($key_or_address, $subcommand, ...$extra_args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->config(...\func_get_args()); - } - - public function dbsize($key_or_address): \RedisCluster|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dbsize(...\func_get_args()); - } - - public function copy($src, $dst, $options = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->copy(...\func_get_args()); - } - - public function decr($key, $by = 1): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decr(...\func_get_args()); - } - - public function decrby($key, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrby(...\func_get_args()); - } - - public function decrbyfloat($key, $value): float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrbyfloat(...\func_get_args()); - } - - public function del($key, ...$other_keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->del(...\func_get_args()); - } - - public function discard(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->discard(...\func_get_args()); - } - - public function dump($key): \RedisCluster|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function echo($key_or_address, $msg): \RedisCluster|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->echo(...\func_get_args()); - } - - public function eval($script, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval(...\func_get_args()); - } - - public function eval_ro($script, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval_ro(...\func_get_args()); - } - - public function evalsha($script_sha, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha(...\func_get_args()); - } - - public function evalsha_ro($script_sha, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha_ro(...\func_get_args()); - } - - public function exec(): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exec(...\func_get_args()); - } - - public function exists($key, ...$other_keys): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exists(...\func_get_args()); - } - - public function touch($key, ...$other_keys): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->touch(...\func_get_args()); - } - - public function expire($key, $timeout, $mode = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expire(...\func_get_args()); - } - - public function expireat($key, $timestamp, $mode = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expireat(...\func_get_args()); - } - - public function expiretime($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expiretime(...\func_get_args()); - } - - public function pexpiretime($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpiretime(...\func_get_args()); - } - - public function flushall($key_or_address, $async = false): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushall(...\func_get_args()); - } - - public function flushdb($key_or_address, $async = false): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushdb(...\func_get_args()); - } - - public function geoadd($key, $lng, $lat, $member, ...$other_triples_and_options): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geoadd(...\func_get_args()); - } - - public function geodist($key, $src, $dest, $unit = null): \RedisCluster|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function geohash($key, $member, ...$other_members): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geohash(...\func_get_args()); - } - - public function geopos($key, $member, ...$other_members): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geopos(...\func_get_args()); - } - - public function georadius($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius(...\func_get_args()); - } - - public function georadius_ro($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius_ro(...\func_get_args()); - } - - public function georadiusbymember($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember(...\func_get_args()); - } - - public function georadiusbymember_ro($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember_ro(...\func_get_args()); - } - - public function geosearch($key, $position, $shape, $unit, $options = []): \RedisCluster|array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearch(...\func_get_args()); - } - - public function geosearchstore($dst, $src, $position, $shape, $unit, $options = []): \RedisCluster|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearchstore(...\func_get_args()); - } - - public function get($key): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->get(...\func_get_args()); - } - - public function getbit($key, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getbit(...\func_get_args()); - } - - public function getlasterror(): ?string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getlasterror(...\func_get_args()); - } - - public function getmode(): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getmode(...\func_get_args()); - } - - public function getoption($option): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getoption(...\func_get_args()); - } - - public function getrange($key, $start, $end): \RedisCluster|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getrange(...\func_get_args()); - } - - public function lcs($key1, $key2, $options = null): \RedisCluster|array|false|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lcs(...\func_get_args()); - } - - public function getset($key, $value): \RedisCluster|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getset(...\func_get_args()); - } - - public function gettransferredbytes(): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->gettransferredbytes(...\func_get_args()); - } - - public function cleartransferredbytes(): void - { - ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->cleartransferredbytes(...\func_get_args()); - } - - public function hdel($key, $member, ...$other_members): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hdel(...\func_get_args()); - } - - public function hexists($key, $member): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexists(...\func_get_args()); - } - - public function hget($key, $member): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hget(...\func_get_args()); - } - - public function hgetall($key): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetall(...\func_get_args()); - } - - public function hincrby($key, $member, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrby(...\func_get_args()); - } - - public function hincrbyfloat($key, $member, $value): \RedisCluster|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrbyfloat(...\func_get_args()); - } - - public function hkeys($key): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hkeys(...\func_get_args()); - } - - public function hlen($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hlen(...\func_get_args()); - } - - public function hmget($key, $keys): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmget(...\func_get_args()); - } - - public function hmset($key, $key_values): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmset(...\func_get_args()); - } - - public function hscan($key, &$iterator, $pattern = null, $count = 0): array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function hrandfield($key, $options = null): \RedisCluster|array|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hrandfield(...\func_get_args()); - } - - public function hset($key, $member, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hset(...\func_get_args()); - } - - public function hsetnx($key, $member, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetnx(...\func_get_args()); - } - - public function hstrlen($key, $field): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hstrlen(...\func_get_args()); - } - - public function hvals($key): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hvals(...\func_get_args()); - } - - public function incr($key, $by = 1): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incr(...\func_get_args()); - } - - public function incrby($key, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrby(...\func_get_args()); - } - - public function incrbyfloat($key, $value): \RedisCluster|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrbyfloat(...\func_get_args()); - } - - public function info($key_or_address, ...$sections): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->info(...\func_get_args()); - } - - public function keys($pattern): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->keys(...\func_get_args()); - } - - public function lastsave($key_or_address): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lastsave(...\func_get_args()); - } - - public function lget($key, $index): \RedisCluster|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lget(...\func_get_args()); - } - - public function lindex($key, $index): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lindex(...\func_get_args()); - } - - public function linsert($key, $pos, $pivot, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->linsert(...\func_get_args()); - } - - public function llen($key): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->llen(...\func_get_args()); - } - - public function lpop($key, $count = 0): \RedisCluster|array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpop(...\func_get_args()); - } - - public function lpos($key, $value, $options = null): \Redis|array|bool|int|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpos(...\func_get_args()); - } - - public function lpush($key, $value, ...$other_values): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpush(...\func_get_args()); - } - - public function lpushx($key, $value): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpushx(...\func_get_args()); - } - - public function lrange($key, $start, $end): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrange(...\func_get_args()); - } - - public function lrem($key, $value, $count = 0): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrem(...\func_get_args()); - } - - public function lset($key, $index, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lset(...\func_get_args()); - } - - public function ltrim($key, $start, $end): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ltrim(...\func_get_args()); - } - - public function mget($keys): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function mset($key_values): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mset(...\func_get_args()); - } - - public function msetnx($key_values): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetnx(...\func_get_args()); - } - - public function multi($value = \Redis::MULTI): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->multi(...\func_get_args()); - } - - public function object($subcommand, $key): \RedisCluster|false|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->object(...\func_get_args()); - } - - public function persist($key): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->persist(...\func_get_args()); - } - - public function pexpire($key, $timeout, $mode = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpire(...\func_get_args()); - } - - public function pexpireat($key, $timestamp, $mode = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpireat(...\func_get_args()); - } - - public function pfadd($key, $elements): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfadd(...\func_get_args()); - } - - public function pfcount($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - - public function pfmerge($key, $keys): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfmerge(...\func_get_args()); - } - - public function ping($key_or_address, $message = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ping(...\func_get_args()); - } - - public function psetex($key, $timeout, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psetex(...\func_get_args()); - } - - public function psubscribe($patterns, $callback): void - { - ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psubscribe(...\func_get_args()); - } - - public function pttl($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pttl(...\func_get_args()); - } - - public function pubsub($key_or_address, ...$values): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pubsub(...\func_get_args()); - } - - public function punsubscribe($pattern, ...$other_patterns): array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->punsubscribe(...\func_get_args()); - } - - public function randomkey($key_or_address): \RedisCluster|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->randomkey(...\func_get_args()); - } - - public function rawcommand($key_or_address, $command, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawcommand(...\func_get_args()); - } - - public function rename($key_src, $key_dst): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rename(...\func_get_args()); - } - - public function renamenx($key, $newkey): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renamenx(...\func_get_args()); - } - - public function restore($key, $timeout, $value, $options = null): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->restore(...\func_get_args()); - } - - public function role($key_or_address): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->role(...\func_get_args()); - } - - public function rpop($key, $count = 0): \RedisCluster|array|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpop(...\func_get_args()); - } - - public function rpoplpush($src, $dst): \RedisCluster|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpoplpush(...\func_get_args()); - } - - public function rpush($key, ...$elements): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpush(...\func_get_args()); - } - - public function rpushx($key, $value): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpushx(...\func_get_args()); - } - - public function sadd($key, $value, ...$other_values): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sadd(...\func_get_args()); - } - - public function saddarray($key, $values): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->saddarray(...\func_get_args()); - } - - public function save($key_or_address): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); - } - - public function scan(&$iterator, $key_or_address, $pattern = null, $count = 0): array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scan($iterator, ...\array_slice(\func_get_args(), 1)); - } - - public function scard($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scard(...\func_get_args()); - } - - public function script($key_or_address, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->script(...\func_get_args()); - } - - public function sdiff($key, ...$other_keys): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiff(...\func_get_args()); - } - - public function sdiffstore($dst, $key, ...$other_keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiffstore(...\func_get_args()); - } - - public function set($key, $value, $options = null): \RedisCluster|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->set(...\func_get_args()); - } - - public function setbit($key, $offset, $onoff): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setbit(...\func_get_args()); - } - - public function setex($key, $expire, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setex(...\func_get_args()); - } - - public function setnx($key, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setnx(...\func_get_args()); - } - - public function setoption($option, $value): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setoption(...\func_get_args()); - } - - public function setrange($key, $offset, $value): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setrange(...\func_get_args()); - } - - public function sinter($key, ...$other_keys): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinter(...\func_get_args()); - } - - public function sintercard($keys, $limit = -1): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sintercard(...\func_get_args()); - } - - public function sinterstore($key, ...$other_keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinterstore(...\func_get_args()); - } - - public function sismember($key, $value): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sismember(...\func_get_args()); - } - - public function smismember($key, $member, ...$other_members): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smismember(...\func_get_args()); - } - - public function slowlog($key_or_address, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slowlog(...\func_get_args()); - } - - public function smembers($key): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smembers(...\func_get_args()); - } - - public function smove($src, $dst, $member): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smove(...\func_get_args()); - } - - public function sort($key, $options = null): \RedisCluster|array|bool|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort(...\func_get_args()); - } - - public function sort_ro($key, $options = null): \RedisCluster|array|bool|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort_ro(...\func_get_args()); - } - - public function spop($key, $count = 0): \RedisCluster|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->spop(...\func_get_args()); - } - - public function srandmember($key, $count = 0): \RedisCluster|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srandmember(...\func_get_args()); - } - - public function srem($key, $value, ...$other_values): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srem(...\func_get_args()); - } - - public function sscan($key, &$iterator, $pattern = null, $count = 0): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function strlen($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->strlen(...\func_get_args()); - } - - public function subscribe($channels, $cb): void - { - ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->subscribe(...\func_get_args()); - } - - public function sunion($key, ...$other_keys): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunion(...\func_get_args()); - } - - public function sunionstore($dst, $key, ...$other_keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunionstore(...\func_get_args()); - } - - public function time($key_or_address): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->time(...\func_get_args()); - } - - public function ttl($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ttl(...\func_get_args()); - } - - public function type($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->type(...\func_get_args()); - } - - public function unsubscribe($channels): array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unsubscribe(...\func_get_args()); - } - - public function unlink($key, ...$other_keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unlink(...\func_get_args()); - } - - public function unwatch(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); - } - - public function watch($key, ...$other_keys): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - - public function xack($key, $group, $ids): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xack(...\func_get_args()); - } - - public function xadd($key, $id, $values, $maxlen = 0, $approx = false): \RedisCluster|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function xclaim($key, $group, $consumer, $min_iddle, $ids, $options): \RedisCluster|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xclaim(...\func_get_args()); - } - - public function xdel($key, $ids): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdel(...\func_get_args()); - } - - public function xgroup($operation, $key = null, $group = null, $id_or_consumer = null, $mkstream = false, $entries_read = -2): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xgroup(...\func_get_args()); - } - - public function xautoclaim($key, $group, $consumer, $min_idle, $start, $count = -1, $justid = false): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xautoclaim(...\func_get_args()); - } - - public function xinfo($operation, $arg1 = null, $arg2 = null, $count = -1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xinfo(...\func_get_args()); - } - - public function xlen($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xlen(...\func_get_args()); - } - - public function xpending($key, $group, $start = null, $end = null, $count = -1, $consumer = null): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xpending(...\func_get_args()); - } - - public function xrange($key, $start, $end, $count = -1): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrange(...\func_get_args()); - } - - public function xread($streams, $count = -1, $block = -1): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xread(...\func_get_args()); - } - - public function xreadgroup($group, $consumer, $streams, $count = 1, $block = 1): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xreadgroup(...\func_get_args()); - } - - public function xrevrange($key, $start, $end, $count = -1): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrevrange(...\func_get_args()); - } - - public function xtrim($key, $maxlen, $approx = false, $minid = false, $limit = -1): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xtrim(...\func_get_args()); - } - - public function zadd($key, $score_or_options, ...$more_scores_and_mems): \RedisCluster|false|float|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zadd(...\func_get_args()); - } - - public function zcard($key): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcard(...\func_get_args()); - } - - public function zcount($key, $start, $end): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcount(...\func_get_args()); - } - - public function zincrby($key, $value, $member): \RedisCluster|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zincrby(...\func_get_args()); - } - - public function zinterstore($dst, $keys, $weights = null, $aggregate = null): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinterstore(...\func_get_args()); - } - - public function zintercard($keys, $limit = -1): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zintercard(...\func_get_args()); - } - - public function zlexcount($key, $min, $max): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zlexcount(...\func_get_args()); - } - - public function zpopmax($key, $value = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmax(...\func_get_args()); - } - - public function zpopmin($key, $value = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmin(...\func_get_args()); - } - - public function zrange($key, $start, $end, $options = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrange(...\func_get_args()); - } - - public function zrangestore($dstkey, $srckey, $start, $end, $options = null): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangestore(...\func_get_args()); - } - - public function zrandmember($key, $options = null): \RedisCluster|array|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrandmember(...\func_get_args()); - } - - public function zrangebylex($key, $min, $max, $offset = -1, $count = -1): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebylex(...\func_get_args()); - } - - public function zrangebyscore($key, $start, $end, $options = []): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebyscore(...\func_get_args()); - } - - public function zrank($key, $member): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrank(...\func_get_args()); - } - - public function zrem($key, $value, ...$other_values): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrem(...\func_get_args()); - } - - public function zremrangebylex($key, $min, $max): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebylex(...\func_get_args()); - } - - public function zremrangebyrank($key, $min, $max): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyrank(...\func_get_args()); - } - - public function zremrangebyscore($key, $min, $max): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyscore(...\func_get_args()); - } - - public function zrevrange($key, $min, $max, $options = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrange(...\func_get_args()); - } - - public function zrevrangebylex($key, $min, $max, $options = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebylex(...\func_get_args()); - } - - public function zrevrangebyscore($key, $min, $max, $options = null): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebyscore(...\func_get_args()); - } - - public function zrevrank($key, $member): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrank(...\func_get_args()); - } - - public function zscan($key, &$iterator, $pattern = null, $count = 0): \RedisCluster|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function zscore($key, $member): \RedisCluster|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscore(...\func_get_args()); - } - - public function zmscore($key, $member, ...$other_members): \Redis|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zmscore(...\func_get_args()); - } - - public function zunionstore($dst, $keys, $weights = null, $aggregate = null): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunionstore(...\func_get_args()); - } - - public function zinter($keys, $weights = null, $options = null): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinter(...\func_get_args()); - } - - public function zdiffstore($dst, $keys): \RedisCluster|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiffstore(...\func_get_args()); - } - - public function zunion($keys, $weights = null, $options = null): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunion(...\func_get_args()); - } - - public function zdiff($keys, $options = null): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiff(...\func_get_args()); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6ProxyTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6ProxyTrait.php deleted file mode 100644 index 9c3169e..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisCluster6ProxyTrait.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -if (version_compare(phpversion('redis'), '6.1.0-dev', '>')) { - /** - * @internal - */ - trait RedisCluster6ProxyTrait - { - public function getex($key, $options = []): \RedisCluster|string|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getex(...\func_get_args()); - } - - public function publish($channel, $message): \RedisCluster|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - - public function waitaof($key_or_address, $numlocal, $numreplicas, $timeout): \RedisCluster|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait RedisCluster6ProxyTrait - { - public function publish($channel, $message): \RedisCluster|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php deleted file mode 100644 index f5c0baa..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -/** - * This file acts as a wrapper to the \RedisCluster implementation so it can accept the same type of calls as - * individual \Redis objects. - * - * Calls are made to individual nodes via: RedisCluster->{method}($host, ...args)' - * according to https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#directed-node-commands - * - * @author Jack Thomas - * - * @internal - */ -class RedisClusterNodeProxy -{ - public function __construct( - private array $host, - private \RedisCluster $redis, - ) { - } - - public function __call(string $method, array $args) - { - return $this->redis->{$method}($this->host, ...$args); - } - - public function scan(&$iIterator, $strPattern = null, $iCount = null) - { - return $this->redis->scan($iIterator, $this->host, $strPattern, $iCount); - } - - public function getOption($name) - { - return $this->redis->getOption($name); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterProxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterProxy.php deleted file mode 100644 index c67d534..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisClusterProxy.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -class_alias(6.0 <= (float) phpversion('redis') ? RedisCluster6Proxy::class : RedisCluster5Proxy::class, RedisClusterProxy::class); - -if (false) { - /** - * @internal - */ - class RedisClusterProxy extends \RedisCluster - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisProxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisProxy.php deleted file mode 100644 index 7f4537b..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisProxy.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -class_alias(6.0 <= (float) phpversion('redis') ? Redis6Proxy::class : Redis5Proxy::class, RedisProxy::class); - -if (false) { - /** - * @internal - */ - class RedisProxy extends \Redis - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RedisTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/RedisTrait.php deleted file mode 100644 index 2ebaed1..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RedisTrait.php +++ /dev/null @@ -1,684 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Predis\Command\Redis\UNLINK; -use Predis\Connection\Aggregate\ClusterInterface; -use Predis\Connection\Aggregate\RedisCluster; -use Predis\Connection\Aggregate\ReplicationInterface; -use Predis\Connection\Cluster\ClusterInterface as Predis2ClusterInterface; -use Predis\Connection\Cluster\RedisCluster as Predis2RedisCluster; -use Predis\Connection\Replication\ReplicationInterface as Predis2ReplicationInterface; -use Predis\Response\ErrorInterface; -use Predis\Response\Status; -use Relay\Relay; -use Relay\Sentinel; -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Aurimas Niekis - * @author Nicolas Grekas - * - * @internal - */ -trait RedisTrait -{ - private static array $defaultConnectionOptions = [ - 'class' => null, - 'persistent' => 0, - 'persistent_id' => null, - 'timeout' => 30, - 'read_timeout' => 0, - 'retry_interval' => 0, - 'tcp_keepalive' => 0, - 'lazy' => null, - 'redis_cluster' => false, - 'redis_sentinel' => null, - 'dbindex' => 0, - 'failover' => 'none', - 'ssl' => null, // see https://php.net/context.ssl - ]; - private \Redis|Relay|\RedisArray|\RedisCluster|\Predis\ClientInterface $redis; - private MarshallerInterface $marshaller; - - private function init(\Redis|Relay|\RedisArray|\RedisCluster|\Predis\ClientInterface $redis, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller): void - { - parent::__construct($namespace, $defaultLifetime); - - if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0])); - } - - if ($redis instanceof \Predis\ClientInterface && $redis->getOptions()->exceptions) { - $options = clone $redis->getOptions(); - \Closure::bind(function () { $this->options['exceptions'] = false; }, $options, $options)(); - $redis = new $redis($redis->getConnection(), $options); - } - - $this->redis = $redis; - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * Creates a Redis connection using a DSN configuration. - * - * Example DSN: - * - redis://localhost - * - redis://example.com:1234 - * - redis://secret@example.com/13 - * - redis:///var/run/redis.sock - * - redis://secret@/var/run/redis.sock/13 - * - * @param array $options See self::$defaultConnectionOptions - * - * @throws InvalidArgumentException when the DSN is invalid - */ - public static function createConnection(#[\SensitiveParameter] string $dsn, array $options = []): \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|Relay - { - if (str_starts_with($dsn, 'redis:')) { - $scheme = 'redis'; - } elseif (str_starts_with($dsn, 'rediss:')) { - $scheme = 'rediss'; - } else { - throw new InvalidArgumentException('Invalid Redis DSN: it does not start with "redis[s]:".'); - } - - if (!\extension_loaded('redis') && !class_exists(\Predis\Client::class)) { - throw new CacheException('Cannot find the "redis" extension nor the "predis/predis" package.'); - } - - $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?[^:@]*+):)?(?[^@]*+)@)?#', function ($m) use (&$auth) { - if (isset($m['password'])) { - if (\in_array($m['user'], ['', 'default'], true)) { - $auth = rawurldecode($m['password']); - } else { - $auth = [rawurldecode($m['user']), rawurldecode($m['password'])]; - } - - if ('' === $auth) { - $auth = null; - } - } - - return 'file:'.($m[1] ?? ''); - }, $dsn); - - if (false === $params = parse_url($params)) { - throw new InvalidArgumentException('Invalid Redis DSN.'); - } - - $query = $hosts = []; - - $tls = 'rediss' === $scheme; - $tcpScheme = $tls ? 'tls' : 'tcp'; - - if (isset($params['query'])) { - parse_str($params['query'], $query); - - if (isset($query['host'])) { - if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException('Invalid Redis DSN: query parameter "host" must be an array.'); - } - foreach ($hosts as $host => $parameters) { - if (\is_string($parameters)) { - parse_str($parameters, $parameters); - } - if (false === $i = strrpos($host, ':')) { - $hosts[$host] = ['scheme' => $tcpScheme, 'host' => $host, 'port' => 6379] + $parameters; - } elseif ($port = (int) substr($host, 1 + $i)) { - $hosts[$host] = ['scheme' => $tcpScheme, 'host' => substr($host, 0, $i), 'port' => $port] + $parameters; - } else { - $hosts[$host] = ['scheme' => 'unix', 'path' => substr($host, 0, $i)] + $parameters; - } - } - $hosts = array_values($hosts); - } - } - - if (isset($params['host']) || isset($params['path'])) { - if (!isset($params['dbindex']) && isset($params['path'])) { - if (preg_match('#/(\d+)?$#', $params['path'], $m)) { - $params['dbindex'] = $m[1] ?? $query['dbindex'] ?? '0'; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); - } elseif (isset($params['host'])) { - throw new InvalidArgumentException('Invalid Redis DSN: parameter "dbindex" must be a number.'); - } - } - - if (isset($params['host'])) { - array_unshift($hosts, ['scheme' => $tcpScheme, 'host' => $params['host'], 'port' => $params['port'] ?? 6379]); - } else { - array_unshift($hosts, ['scheme' => 'unix', 'path' => $params['path']]); - } - } - - if (!$hosts) { - throw new InvalidArgumentException('Invalid Redis DSN: missing host.'); - } - - if (isset($params['dbindex'], $query['dbindex']) && $params['dbindex'] !== $query['dbindex']) { - throw new InvalidArgumentException('Invalid Redis DSN: path and query "dbindex" parameters mismatch.'); - } - - $params += $query + $options + self::$defaultConnectionOptions; - - if (isset($params['redis_sentinel']) && !class_exists(\Predis\Client::class) && !class_exists(\RedisSentinel::class) && !class_exists(Sentinel::class)) { - throw new CacheException('Redis Sentinel support requires one of: "predis/predis", "ext-redis >= 5.2", "ext-relay".'); - } - - if (isset($params['lazy'])) { - $params['lazy'] = filter_var($params['lazy'], \FILTER_VALIDATE_BOOLEAN); - } - $params['redis_cluster'] = filter_var($params['redis_cluster'], \FILTER_VALIDATE_BOOLEAN); - - if ($params['redis_cluster'] && isset($params['redis_sentinel'])) { - throw new InvalidArgumentException('Cannot use both "redis_cluster" and "redis_sentinel" at the same time.'); - } - - $class = $params['class'] ?? match (true) { - $params['redis_cluster'] => \extension_loaded('redis') ? \RedisCluster::class : \Predis\Client::class, - isset($params['redis_sentinel']) => match (true) { - \extension_loaded('redis') => \Redis::class, - \extension_loaded('relay') => Relay::class, - default => \Predis\Client::class, - }, - 1 < \count($hosts) && \extension_loaded('redis') => 1 < \count($hosts) ? \RedisArray::class : \Redis::class, - \extension_loaded('redis') => \Redis::class, - \extension_loaded('relay') => Relay::class, - default => \Predis\Client::class, - }; - - if (isset($params['redis_sentinel']) && !is_a($class, \Predis\Client::class, true) && !class_exists(\RedisSentinel::class) && !class_exists(Sentinel::class)) { - throw new CacheException(sprintf('Cannot use Redis Sentinel: class "%s" does not extend "Predis\Client" and neither ext-redis >= 5.2 nor ext-relay have been found.', $class)); - } - - $isRedisExt = is_a($class, \Redis::class, true); - $isRelayExt = !$isRedisExt && is_a($class, Relay::class, true); - - if ($isRedisExt || $isRelayExt) { - $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect'; - - $initializer = static function () use ($class, $isRedisExt, $connect, $params, $auth, $hosts, $tls) { - $sentinelClass = $isRedisExt ? \RedisSentinel::class : Sentinel::class; - $redis = new $class(); - $hostIndex = 0; - do { - $host = $hosts[$hostIndex]['host'] ?? $hosts[$hostIndex]['path']; - $port = $hosts[$hostIndex]['port'] ?? 0; - $passAuth = isset($params['auth']) && (!$isRedisExt || \defined('Redis::OPT_NULL_MULTIBULK_AS_NULL')); - $address = false; - - if (isset($hosts[$hostIndex]['host']) && $tls) { - $host = 'tls://'.$host; - } - - if (!isset($params['redis_sentinel'])) { - break; - } - - try { - if (version_compare(phpversion('redis'), '6.0.0', '>=') && $isRedisExt) { - $options = [ - 'host' => $host, - 'port' => $port, - 'connectTimeout' => (float) $params['timeout'], - 'persistent' => $params['persistent_id'], - 'retryInterval' => (int) $params['retry_interval'], - 'readTimeout' => (float) $params['read_timeout'], - ]; - - if ($passAuth) { - $options['auth'] = $params['auth']; - } - - $sentinel = new \RedisSentinel($options); - } else { - $extra = $passAuth ? [$params['auth']] : []; - - $sentinel = @new $sentinelClass($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...$extra); - } - - if ($address = @$sentinel->getMasterAddrByName($params['redis_sentinel'])) { - [$host, $port] = $address; - } - } catch (\RedisException|\Relay\Exception $redisException) { - } - } while (++$hostIndex < \count($hosts) && !$address); - - if (isset($params['redis_sentinel']) && !$address) { - throw new InvalidArgumentException(sprintf('Failed to retrieve master information from sentinel "%s".', $params['redis_sentinel']), previous: $redisException ?? null); - } - - try { - $extra = [ - 'stream' => $params['ssl'] ?? null, - ]; - $booleanStreamOptions = [ - 'allow_self_signed', - 'capture_peer_cert', - 'capture_peer_cert_chain', - 'disable_compression', - 'SNI_enabled', - 'verify_peer', - 'verify_peer_name', - ]; - - foreach ($extra['stream'] ?? [] as $streamOption => $value) { - if (\in_array($streamOption, $booleanStreamOptions, true) && \is_string($value)) { - $extra['stream'][$streamOption] = filter_var($value, \FILTER_VALIDATE_BOOL); - } - } - - if (isset($params['auth'])) { - $extra['auth'] = $params['auth']; - } - @$redis->{$connect}($host, $port, (float) $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') || !$isRedisExt ? [$extra] : []); - - set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); - try { - $isConnected = $redis->isConnected(); - } finally { - restore_error_handler(); - } - if (!$isConnected) { - $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error ?? $redis->getLastError() ?? '', $error) ? sprintf(' (%s)', $error[1]) : ''; - throw new InvalidArgumentException('Redis connection failed: '.$error.'.'); - } - - if ((null !== $auth && !$redis->auth($auth)) - // Due to a bug in phpredis we must always select the dbindex if persistent pooling is enabled - // @see https://github.com/phpredis/phpredis/issues/1920 - // @see https://github.com/symfony/symfony/issues/51578 - || (($params['dbindex'] || ('pconnect' === $connect && '0' !== \ini_get('redis.pconnect.pooling_enabled'))) && !$redis->select($params['dbindex'])) - ) { - $e = preg_replace('/^ERR /', '', $redis->getLastError()); - throw new InvalidArgumentException('Redis connection failed: '.$e.'.'); - } - - if (0 < $params['tcp_keepalive'] && (!$isRedisExt || \defined('Redis::OPT_TCP_KEEPALIVE'))) { - $redis->setOption($isRedisExt ? \Redis::OPT_TCP_KEEPALIVE : Relay::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - } catch (\RedisException|\Relay\Exception $e) { - throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); - } - - return $redis; - }; - - if ($params['lazy']) { - $redis = $isRedisExt ? RedisProxy::createLazyProxy($initializer) : RelayProxy::createLazyProxy($initializer); - } else { - $redis = $initializer(); - } - } elseif (is_a($class, \RedisArray::class, true)) { - foreach ($hosts as $i => $host) { - $hosts[$i] = match ($host['scheme']) { - 'tcp' => $host['host'].':'.$host['port'], - 'tls' => 'tls://'.$host['host'].':'.$host['port'], - default => $host['path'], - }; - } - $params['lazy_connect'] = $params['lazy'] ?? true; - $params['connect_timeout'] = $params['timeout']; - - try { - $redis = new $class($hosts, $params); - } catch (\RedisClusterException $e) { - throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); - } - - if (0 < $params['tcp_keepalive'] && (!$isRedisExt || \defined('Redis::OPT_TCP_KEEPALIVE'))) { - $redis->setOption($isRedisExt ? \Redis::OPT_TCP_KEEPALIVE : Relay::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - } elseif (is_a($class, \RedisCluster::class, true)) { - $initializer = static function () use ($isRedisExt, $class, $params, $hosts) { - foreach ($hosts as $i => $host) { - $hosts[$i] = match ($host['scheme']) { - 'tcp' => $host['host'].':'.$host['port'], - 'tls' => 'tls://'.$host['host'].':'.$host['port'], - default => $host['path'], - }; - } - - try { - $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '', ...\defined('Redis::SCAN_PREFIX') ? [$params['ssl'] ?? null] : []); - } catch (\RedisClusterException $e) { - throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); - } - - if (0 < $params['tcp_keepalive'] && (!$isRedisExt || \defined('Redis::OPT_TCP_KEEPALIVE'))) { - $redis->setOption($isRedisExt ? \Redis::OPT_TCP_KEEPALIVE : Relay::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - $redis->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, match ($params['failover']) { - 'error' => \RedisCluster::FAILOVER_ERROR, - 'distribute' => \RedisCluster::FAILOVER_DISTRIBUTE, - 'slaves' => \RedisCluster::FAILOVER_DISTRIBUTE_SLAVES, - 'none' => \RedisCluster::FAILOVER_NONE, - }); - - return $redis; - }; - - $redis = $params['lazy'] ? RedisClusterProxy::createLazyProxy($initializer) : $initializer(); - } elseif (is_a($class, \Predis\ClientInterface::class, true)) { - if ($params['redis_cluster']) { - $params['cluster'] = 'redis'; - } elseif (isset($params['redis_sentinel'])) { - $params['replication'] = 'sentinel'; - $params['service'] = $params['redis_sentinel']; - } - $params += ['parameters' => []]; - $params['parameters'] += [ - 'persistent' => $params['persistent'], - 'timeout' => $params['timeout'], - 'read_write_timeout' => $params['read_timeout'], - 'tcp_nodelay' => true, - ]; - if ($params['dbindex']) { - $params['parameters']['database'] = $params['dbindex']; - } - if (null !== $auth) { - if (\is_array($auth)) { - // ACL - $params['parameters']['username'] = $auth[0]; - $params['parameters']['password'] = $auth[1]; - } else { - $params['parameters']['password'] = $auth; - } - } - - if (isset($params['ssl'])) { - foreach ($hosts as $i => $host) { - $hosts[$i]['ssl'] ??= $params['ssl']; - } - } - - if (1 === \count($hosts) && !($params['redis_cluster'] || $params['redis_sentinel'])) { - $hosts = $hosts[0]; - } elseif (\in_array($params['failover'], ['slaves', 'distribute'], true) && !isset($params['replication'])) { - $params['replication'] = true; - $hosts[0] += ['alias' => 'master']; - } - $params['exceptions'] = false; - - $redis = new $class($hosts, array_diff_key($params, self::$defaultConnectionOptions)); - if (isset($params['redis_sentinel'])) { - $redis->getConnection()->setSentinelTimeout($params['timeout']); - } - } elseif (class_exists($class, false)) { - throw new InvalidArgumentException(sprintf('"%s" is not a subclass of "Redis", "RedisArray", "RedisCluster", "Relay\Relay" nor "Predis\ClientInterface".', $class)); - } else { - throw new InvalidArgumentException(sprintf('Class "%s" does not exist.', $class)); - } - - return $redis; - } - - protected function doFetch(array $ids): iterable - { - if (!$ids) { - return []; - } - - $result = []; - - if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) { - $values = $this->pipeline(function () use ($ids) { - foreach ($ids as $id) { - yield 'get' => [$id]; - } - }); - } else { - $values = $this->redis->mget($ids); - - if (!\is_array($values) || \count($values) !== \count($ids)) { - return []; - } - - $values = array_combine($ids, $values); - } - - foreach ($values as $id => $v) { - if ($v) { - $result[$id] = $this->marshaller->unmarshall($v); - } - } - - return $result; - } - - protected function doHave(string $id): bool - { - return (bool) $this->redis->exists($id); - } - - protected function doClear(string $namespace): bool - { - if ($this->redis instanceof \Predis\ClientInterface) { - $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : ''; - $prefixLen = \strlen($prefix ?? ''); - } - - $cleared = true; - $hosts = $this->getHosts(); - $host = reset($hosts); - if ($host instanceof \Predis\Client) { - $connection = $host->getConnection(); - - if ($connection instanceof ReplicationInterface) { - $hosts = [$host->getClientFor('master')]; - } elseif ($connection instanceof Predis2ReplicationInterface) { - $connection->switchToMaster(); - - $hosts = [$host]; - } - } - - foreach ($hosts as $host) { - if (!isset($namespace[0])) { - $cleared = $host->flushDb() && $cleared; - continue; - } - - $info = $host->info('Server'); - $info = !$info instanceof ErrorInterface ? $info['Server'] ?? $info : ['redis_version' => '2.0']; - - if ($host instanceof Relay) { - $prefix = Relay::SCAN_PREFIX & $host->getOption(Relay::OPT_SCAN) ? '' : $host->getOption(Relay::OPT_PREFIX); - $prefixLen = \strlen($host->getOption(Relay::OPT_PREFIX) ?? ''); - } elseif (!$host instanceof \Predis\ClientInterface) { - $prefix = \defined('Redis::SCAN_PREFIX') && (\Redis::SCAN_PREFIX & $host->getOption(\Redis::OPT_SCAN)) ? '' : $host->getOption(\Redis::OPT_PREFIX); - $prefixLen = \strlen($host->getOption(\Redis::OPT_PREFIX) ?? ''); - } - $pattern = $prefix.$namespace.'*'; - - if (!version_compare($info['redis_version'], '2.8', '>=')) { - // As documented in Redis documentation (http://redis.io/commands/keys) using KEYS - // can hang your server when it is executed against large databases (millions of items). - // Whenever you hit this scale, you should really consider upgrading to Redis 2.8 or above. - $unlink = version_compare($info['redis_version'], '4.0', '>=') ? 'UNLINK' : 'DEL'; - $args = $this->redis instanceof \Predis\ClientInterface ? [0, $pattern] : [[$pattern], 0]; - $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]) for i=1,#keys,5000 do redis.call('$unlink',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $args[0], $args[1]) && $cleared; - continue; - } - - $cursor = null; - do { - $keys = $host instanceof \Predis\ClientInterface ? $host->scan($cursor ?? 0, 'MATCH', $pattern, 'COUNT', 1000) : $host->scan($cursor, $pattern, 1000); - if (isset($keys[1]) && \is_array($keys[1])) { - $cursor = $keys[0]; - $keys = $keys[1]; - } - if ($keys) { - if ($prefixLen) { - foreach ($keys as $i => $key) { - $keys[$i] = substr($key, $prefixLen); - } - } - $this->doDelete($keys); - } - } while ($cursor); - } - - return $cleared; - } - - protected function doDelete(array $ids): bool - { - if (!$ids) { - return true; - } - - if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) { - static $del; - $del ??= (class_exists(UNLINK::class) ? 'unlink' : 'del'); - - $this->pipeline(function () use ($ids, $del) { - foreach ($ids as $id) { - yield $del => [$id]; - } - })->rewind(); - } else { - static $unlink = true; - - if ($unlink) { - try { - $unlink = false !== $this->redis->unlink($ids); - } catch (\Throwable) { - $unlink = false; - } - } - - if (!$unlink) { - $this->redis->del($ids); - } - } - - return true; - } - - protected function doSave(array $values, int $lifetime): array|bool - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $results = $this->pipeline(function () use ($values, $lifetime) { - foreach ($values as $id => $value) { - if (0 >= $lifetime) { - yield 'set' => [$id, $value]; - } else { - yield 'setEx' => [$id, $lifetime, $value]; - } - } - }); - - foreach ($results as $id => $result) { - if (true !== $result && (!$result instanceof Status || Status::get('OK') !== $result)) { - $failed[] = $id; - } - } - - return $failed; - } - - private function pipeline(\Closure $generator, ?object $redis = null): \Generator - { - $ids = []; - $redis ??= $this->redis; - - if ($redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && ($redis->getConnection() instanceof RedisCluster || $redis->getConnection() instanceof Predis2RedisCluster))) { - // phpredis & predis don't support pipelining with RedisCluster - // see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining - // see https://github.com/nrk/predis/issues/267#issuecomment-123781423 - $results = []; - foreach ($generator() as $command => $args) { - $results[] = $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? ($redis instanceof \Predis\ClientInterface ? $args[2] : $args[1][0]) : $args[0]; - } - } elseif ($redis instanceof \Predis\ClientInterface) { - $results = $redis->pipeline(static function ($redis) use ($generator, &$ids) { - foreach ($generator() as $command => $args) { - $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? $args[2] : $args[0]; - } - }); - } elseif ($redis instanceof \RedisArray) { - $connections = $results = $ids = []; - foreach ($generator() as $command => $args) { - $id = 'eval' === $command ? $args[1][0] : $args[0]; - if (!isset($connections[$h = $redis->_target($id)])) { - $connections[$h] = [$redis->_instance($h), -1]; - $connections[$h][0]->multi(\Redis::PIPELINE); - } - $connections[$h][0]->{$command}(...$args); - $results[] = [$h, ++$connections[$h][1]]; - $ids[] = $id; - } - foreach ($connections as $h => $c) { - $connections[$h] = $c[0]->exec(); - } - foreach ($results as $k => [$h, $c]) { - $results[$k] = $connections[$h][$c]; - } - } else { - $redis->multi($redis instanceof Relay ? Relay::PIPELINE : \Redis::PIPELINE); - foreach ($generator() as $command => $args) { - $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? $args[1][0] : $args[0]; - } - $results = $redis->exec(); - } - - if (!$redis instanceof \Predis\ClientInterface && 'eval' === $command && $redis->getLastError()) { - $e = $redis instanceof Relay ? new \Relay\Exception($redis->getLastError()) : new \RedisException($redis->getLastError()); - $results = array_map(fn ($v) => false === $v ? $e : $v, (array) $results); - } - - if (\is_bool($results)) { - return; - } - - foreach ($ids as $k => $id) { - yield $id => $results[$k]; - } - } - - private function getHosts(): array - { - $hosts = [$this->redis]; - if ($this->redis instanceof \Predis\ClientInterface) { - $connection = $this->redis->getConnection(); - if (($connection instanceof ClusterInterface || $connection instanceof Predis2ClusterInterface) && $connection instanceof \Traversable) { - $hosts = []; - foreach ($connection as $c) { - $hosts[] = new \Predis\Client($c); - } - } - } elseif ($this->redis instanceof \RedisArray) { - $hosts = []; - foreach ($this->redis->_hosts() as $host) { - $hosts[] = $this->redis->_instance($host); - } - } elseif ($this->redis instanceof \RedisCluster) { - $hosts = []; - foreach ($this->redis->_masters() as $host) { - $hosts[] = new RedisClusterNodeProxy($host, $this->redis); - } - } - - return $hosts; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/BgsaveTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/BgsaveTrait.php deleted file mode 100644 index 367f82f..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/BgsaveTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.11', '>=')) { - /** - * @internal - */ - trait BgsaveTrait - { - public function bgsave($arg = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait BgsaveTrait - { - public function bgsave($schedule = false): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgsave(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/CopyTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/CopyTrait.php deleted file mode 100644 index a271a9d..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/CopyTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.8.1', '>=')) { - /** - * @internal - */ - trait CopyTrait - { - public function copy($src, $dst, $options = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->copy(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait CopyTrait - { - public function copy($src, $dst, $options = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->copy(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/GeosearchTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/GeosearchTrait.php deleted file mode 100644 index 88ed1e9..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/GeosearchTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait GeosearchTrait - { - public function geosearch($key, $position, $shape, $unit, $options = []): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearch(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait GeosearchTrait - { - public function geosearch($key, $position, $shape, $unit, $options = []): \Relay\Relay|array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearch(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/GetrangeTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/GetrangeTrait.php deleted file mode 100644 index 4522d20..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/GetrangeTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait GetrangeTrait - { - public function getrange($key, $start, $end): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getrange(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait GetrangeTrait - { - public function getrange($key, $start, $end): \Relay\Relay|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getrange(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/HsetTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/HsetTrait.php deleted file mode 100644 index a7cb8ff..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/HsetTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait HsetTrait - { - public function hset($key, ...$keys_and_vals): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hset(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait HsetTrait - { - public function hset($key, $mem, $val, ...$kvals): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hset(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/MoveTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/MoveTrait.php deleted file mode 100644 index d00735d..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/MoveTrait.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait MoveTrait - { - public function blmove($srckey, $dstkey, $srcpos, $dstpos, $timeout): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmove(...\func_get_args()); - } - - public function lmove($srckey, $dstkey, $srcpos, $dstpos): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmove(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait MoveTrait - { - public function blmove($srckey, $dstkey, $srcpos, $dstpos, $timeout): \Relay\Relay|false|null|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmove(...\func_get_args()); - } - - public function lmove($srckey, $dstkey, $srcpos, $dstpos): \Relay\Relay|false|null|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmove(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/NullableReturnTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/NullableReturnTrait.php deleted file mode 100644 index 0b74090..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/NullableReturnTrait.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait NullableReturnTrait - { - public function dump($key): \Relay\Relay|false|string|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function geodist($key, $src, $dst, $unit = null): \Relay\Relay|false|float|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function hrandfield($hash, $options = null): \Relay\Relay|array|false|string|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hrandfield(...\func_get_args()); - } - - public function xadd($key, $id, $values, $maxlen = 0, $approx = false, $nomkstream = false): \Relay\Relay|false|string|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function zrank($key, $rank, $withscore = false): \Relay\Relay|array|false|int|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrank(...\func_get_args()); - } - - public function zrevrank($key, $rank, $withscore = false): \Relay\Relay|array|false|int|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrank(...\func_get_args()); - } - - public function zscore($key, $member): \Relay\Relay|false|float|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscore(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait NullableReturnTrait - { - public function dump($key): \Relay\Relay|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dump(...\func_get_args()); - } - - public function geodist($key, $src, $dst, $unit = null): \Relay\Relay|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geodist(...\func_get_args()); - } - - public function hrandfield($hash, $options = null): \Relay\Relay|array|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hrandfield(...\func_get_args()); - } - - public function xadd($key, $id, $values, $maxlen = 0, $approx = false, $nomkstream = false): \Relay\Relay|false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xadd(...\func_get_args()); - } - - public function zrank($key, $rank, $withscore = false): \Relay\Relay|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrank(...\func_get_args()); - } - - public function zrevrank($key, $rank, $withscore = false): \Relay\Relay|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrank(...\func_get_args()); - } - - public function zscore($key, $member): \Relay\Relay|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscore(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/Relay/PfcountTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/Relay/PfcountTrait.php deleted file mode 100644 index 340db8a..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/Relay/PfcountTrait.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits\Relay; - -if (version_compare(phpversion('relay'), '0.9.0', '>=')) { - /** - * @internal - */ - trait PfcountTrait - { - public function pfcount($key_or_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait PfcountTrait - { - public function pfcount($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfcount(...\func_get_args()); - } - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RelayProxy.php b/projects/priceservice/vendor/symfony/cache/Traits/RelayProxy.php deleted file mode 100644 index 620eb1b..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RelayProxy.php +++ /dev/null @@ -1,1265 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Traits\Relay\BgsaveTrait; -use Symfony\Component\Cache\Traits\Relay\CopyTrait; -use Symfony\Component\Cache\Traits\Relay\GeosearchTrait; -use Symfony\Component\Cache\Traits\Relay\GetrangeTrait; -use Symfony\Component\Cache\Traits\Relay\HsetTrait; -use Symfony\Component\Cache\Traits\Relay\MoveTrait; -use Symfony\Component\Cache\Traits\Relay\NullableReturnTrait; -use Symfony\Component\Cache\Traits\Relay\PfcountTrait; -use Symfony\Component\VarExporter\LazyObjectInterface; -use Symfony\Component\VarExporter\LazyProxyTrait; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); -class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); - -/** - * @internal - */ -class RelayProxy extends \Relay\Relay implements ResetInterface, LazyObjectInterface -{ - use BgsaveTrait; - use CopyTrait; - use GeosearchTrait; - use GetrangeTrait; - use HsetTrait; - use LazyProxyTrait { - resetLazyObject as reset; - } - use MoveTrait; - use NullableReturnTrait; - use PfcountTrait; - use RelayProxyTrait; - - private const LAZY_OBJECT_PROPERTY_SCOPES = []; - - public function __construct($host = null, $port = 6379, $connect_timeout = 0.0, $command_timeout = 0.0, #[\SensitiveParameter] $context = [], $database = 0) - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->__construct(...\func_get_args()); - } - - public function connect($host, $port = 6379, $timeout = 0.0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0.0, #[\SensitiveParameter] $context = [], $database = 0): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->connect(...\func_get_args()); - } - - public function pconnect($host, $port = 6379, $timeout = 0.0, $persistent_id = null, $retry_interval = 0, $read_timeout = 0.0, #[\SensitiveParameter] $context = [], $database = 0): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pconnect(...\func_get_args()); - } - - public function close(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->close(...\func_get_args()); - } - - public function pclose(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pclose(...\func_get_args()); - } - - public function listen($callback): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->listen(...\func_get_args()); - } - - public function onFlushed($callback): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->onFlushed(...\func_get_args()); - } - - public function onInvalidated($callback, $pattern = null): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->onInvalidated(...\func_get_args()); - } - - public function dispatchEvents(): false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dispatchEvents(...\func_get_args()); - } - - public function getOption($option): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getOption(...\func_get_args()); - } - - public function option($option, $value = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->option(...\func_get_args()); - } - - public function setOption($option, $value): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setOption(...\func_get_args()); - } - - public function addIgnorePatterns(...$pattern): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->addIgnorePatterns(...\func_get_args()); - } - - public function addAllowPatterns(...$pattern): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->addAllowPatterns(...\func_get_args()); - } - - public function getTimeout(): false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getTimeout(...\func_get_args()); - } - - public function timeout(): false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->timeout(...\func_get_args()); - } - - public function getReadTimeout(): false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getReadTimeout(...\func_get_args()); - } - - public function readTimeout(): false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->readTimeout(...\func_get_args()); - } - - public function getBytes(): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getBytes(...\func_get_args()); - } - - public function bytes(): array - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bytes(...\func_get_args()); - } - - public function getHost(): false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getHost(...\func_get_args()); - } - - public function isConnected(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->isConnected(...\func_get_args()); - } - - public function getPort(): false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPort(...\func_get_args()); - } - - public function getAuth(): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getAuth(...\func_get_args()); - } - - public function getDbNum(): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getDbNum(...\func_get_args()); - } - - public function _serialize($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_serialize(...\func_get_args()); - } - - public function _unserialize($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unserialize(...\func_get_args()); - } - - public function _compress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_compress(...\func_get_args()); - } - - public function _uncompress($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_uncompress(...\func_get_args()); - } - - public function _pack($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_pack(...\func_get_args()); - } - - public function _unpack($value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_unpack(...\func_get_args()); - } - - public function _prefix($value): string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_prefix(...\func_get_args()); - } - - public function getLastError(): ?string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getLastError(...\func_get_args()); - } - - public function clearLastError(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearLastError(...\func_get_args()); - } - - public function endpointId(): false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->endpointId(...\func_get_args()); - } - - public function getPersistentID(): false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getPersistentID(...\func_get_args()); - } - - public function socketId(): false|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->socketId(...\func_get_args()); - } - - public function rawCommand($cmd, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rawCommand(...\func_get_args()); - } - - public function select($db): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->select(...\func_get_args()); - } - - public function auth(#[\SensitiveParameter] $auth): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->auth(...\func_get_args()); - } - - public function info(...$sections): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->info(...\func_get_args()); - } - - public function flushdb($sync = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushdb(...\func_get_args()); - } - - public function flushall($sync = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->flushall(...\func_get_args()); - } - - public function fcall($name, $keys = [], $argv = [], $handler = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->fcall(...\func_get_args()); - } - - public function fcall_ro($name, $keys = [], $argv = [], $handler = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->fcall_ro(...\func_get_args()); - } - - public function function($op, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->function(...\func_get_args()); - } - - public function dbsize(): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->dbsize(...\func_get_args()); - } - - public function replicaof($host = null, $port = 0): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->replicaof(...\func_get_args()); - } - - public function waitaof($numlocal, $numremote, $timeout): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->waitaof(...\func_get_args()); - } - - public function restore($key, $ttl, $value, $options = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->restore(...\func_get_args()); - } - - public function migrate($host, $port, $key, $dstdb, $timeout, $copy = false, $replace = false, #[\SensitiveParameter] $credentials = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->migrate(...\func_get_args()); - } - - public function echo($arg): \Relay\Relay|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->echo(...\func_get_args()); - } - - public function ping($arg = null): \Relay\Relay|bool|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ping(...\func_get_args()); - } - - public function idleTime(): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->idleTime(...\func_get_args()); - } - - public function randomkey(): \Relay\Relay|bool|null|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->randomkey(...\func_get_args()); - } - - public function time(): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->time(...\func_get_args()); - } - - public function bgrewriteaof(): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bgrewriteaof(...\func_get_args()); - } - - public function lastsave(): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lastsave(...\func_get_args()); - } - - public function lcs($key1, $key2, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lcs(...\func_get_args()); - } - - public function save(): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->save(...\func_get_args()); - } - - public function role(): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->role(...\func_get_args()); - } - - public function ttl($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ttl(...\func_get_args()); - } - - public function pttl($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pttl(...\func_get_args()); - } - - public function exists(...$keys): \Relay\Relay|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exists(...\func_get_args()); - } - - public function eval($script, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval(...\func_get_args()); - } - - public function eval_ro($script, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->eval_ro(...\func_get_args()); - } - - public function evalsha($sha, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha(...\func_get_args()); - } - - public function evalsha_ro($sha, $args = [], $num_keys = 0): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->evalsha_ro(...\func_get_args()); - } - - public function client($operation, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->client(...\func_get_args()); - } - - public function geoadd($key, $lng, $lat, $member, ...$other_triples_and_options): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geoadd(...\func_get_args()); - } - - public function geohash($key, $member, ...$other_members): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geohash(...\func_get_args()); - } - - public function georadius($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius(...\func_get_args()); - } - - public function georadiusbymember($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember(...\func_get_args()); - } - - public function georadiusbymember_ro($key, $member, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadiusbymember_ro(...\func_get_args()); - } - - public function georadius_ro($key, $lng, $lat, $radius, $unit, $options = []): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->georadius_ro(...\func_get_args()); - } - - public function geosearchstore($dst, $src, $position, $shape, $unit, $options = []): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geosearchstore(...\func_get_args()); - } - - public function get($key): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->get(...\func_get_args()); - } - - public function getset($key, $value): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getset(...\func_get_args()); - } - - public function setrange($key, $start, $value): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setrange(...\func_get_args()); - } - - public function getbit($key, $pos): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getbit(...\func_get_args()); - } - - public function bitcount($key, $start = 0, $end = -1, $by_bit = false): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitcount(...\func_get_args()); - } - - public function bitfield($key, ...$args): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitfield(...\func_get_args()); - } - - public function config($operation, $key = null, $value = null): \Relay\Relay|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->config(...\func_get_args()); - } - - public function command(...$args): \Relay\Relay|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->command(...\func_get_args()); - } - - public function bitop($operation, $dstkey, $srckey, ...$other_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitop(...\func_get_args()); - } - - public function bitpos($key, $bit, $start = null, $end = null, $bybit = false): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bitpos(...\func_get_args()); - } - - public function setbit($key, $pos, $val): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setbit(...\func_get_args()); - } - - public function acl($cmd, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->acl(...\func_get_args()); - } - - public function append($key, $value): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->append(...\func_get_args()); - } - - public function set($key, $value, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->set(...\func_get_args()); - } - - public function getex($key, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getex(...\func_get_args()); - } - - public function getdel($key): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getdel(...\func_get_args()); - } - - public function setex($key, $seconds, $value): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setex(...\func_get_args()); - } - - public function pfadd($key, $elements): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfadd(...\func_get_args()); - } - - public function pfmerge($dst, $srckeys): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pfmerge(...\func_get_args()); - } - - public function psetex($key, $milliseconds, $value): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psetex(...\func_get_args()); - } - - public function publish($channel, $message): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->publish(...\func_get_args()); - } - - public function pubsub($operation, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pubsub(...\func_get_args()); - } - - public function spublish($channel, $message): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->spublish(...\func_get_args()); - } - - public function setnx($key, $value): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->setnx(...\func_get_args()); - } - - public function mget($keys): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mget(...\func_get_args()); - } - - public function move($key, $db): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->move(...\func_get_args()); - } - - public function mset($kvals): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->mset(...\func_get_args()); - } - - public function msetnx($kvals): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->msetnx(...\func_get_args()); - } - - public function rename($key, $newkey): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rename(...\func_get_args()); - } - - public function renamenx($key, $newkey): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->renamenx(...\func_get_args()); - } - - public function del(...$keys): \Relay\Relay|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->del(...\func_get_args()); - } - - public function unlink(...$keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unlink(...\func_get_args()); - } - - public function expire($key, $seconds, $mode = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expire(...\func_get_args()); - } - - public function pexpire($key, $milliseconds): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpire(...\func_get_args()); - } - - public function expireat($key, $timestamp): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expireat(...\func_get_args()); - } - - public function expiretime($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->expiretime(...\func_get_args()); - } - - public function pexpireat($key, $timestamp_ms): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpireat(...\func_get_args()); - } - - public function pexpiretime($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pexpiretime(...\func_get_args()); - } - - public function persist($key): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->persist(...\func_get_args()); - } - - public function type($key): \Relay\Relay|bool|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->type(...\func_get_args()); - } - - public function lrange($key, $start, $stop): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrange(...\func_get_args()); - } - - public function lpush($key, $mem, ...$mems): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpush(...\func_get_args()); - } - - public function rpush($key, $mem, ...$mems): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpush(...\func_get_args()); - } - - public function lpushx($key, $mem, ...$mems): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpushx(...\func_get_args()); - } - - public function rpushx($key, $mem, ...$mems): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpushx(...\func_get_args()); - } - - public function lset($key, $index, $mem): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lset(...\func_get_args()); - } - - public function lpop($key, $count = 1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpop(...\func_get_args()); - } - - public function lpos($key, $value, $options = null): \Relay\Relay|array|false|int|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lpos(...\func_get_args()); - } - - public function rpop($key, $count = 1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpop(...\func_get_args()); - } - - public function rpoplpush($source, $dest): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->rpoplpush(...\func_get_args()); - } - - public function brpoplpush($source, $dest, $timeout): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpoplpush(...\func_get_args()); - } - - public function blpop($key, $timeout_or_key, ...$extra_args): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blpop(...\func_get_args()); - } - - public function blmpop($timeout, $keys, $from, $count = 1): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->blmpop(...\func_get_args()); - } - - public function bzmpop($timeout, $keys, $from, $count = 1): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzmpop(...\func_get_args()); - } - - public function lmpop($keys, $from, $count = 1): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lmpop(...\func_get_args()); - } - - public function zmpop($keys, $from, $count = 1): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zmpop(...\func_get_args()); - } - - public function brpop($key, $timeout_or_key, ...$extra_args): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->brpop(...\func_get_args()); - } - - public function bzpopmax($key, $timeout_or_key, ...$extra_args): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmax(...\func_get_args()); - } - - public function bzpopmin($key, $timeout_or_key, ...$extra_args): \Relay\Relay|array|false|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->bzpopmin(...\func_get_args()); - } - - public function object($op, $key): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->object(...\func_get_args()); - } - - public function geopos($key, ...$members): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->geopos(...\func_get_args()); - } - - public function lrem($key, $mem, $count = 0): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lrem(...\func_get_args()); - } - - public function lindex($key, $index): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->lindex(...\func_get_args()); - } - - public function linsert($key, $op, $pivot, $element): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->linsert(...\func_get_args()); - } - - public function ltrim($key, $start, $end): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ltrim(...\func_get_args()); - } - - public function hget($hash, $member): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hget(...\func_get_args()); - } - - public function hstrlen($hash, $member): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hstrlen(...\func_get_args()); - } - - public function hgetall($hash): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hgetall(...\func_get_args()); - } - - public function hkeys($hash): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hkeys(...\func_get_args()); - } - - public function hvals($hash): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hvals(...\func_get_args()); - } - - public function hmget($hash, $members): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmget(...\func_get_args()); - } - - public function hmset($hash, $members): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hmset(...\func_get_args()); - } - - public function hexists($hash, $member): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hexists(...\func_get_args()); - } - - public function hsetnx($hash, $member, $value): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hsetnx(...\func_get_args()); - } - - public function hdel($key, $mem, ...$mems): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hdel(...\func_get_args()); - } - - public function hincrby($key, $mem, $value): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrby(...\func_get_args()); - } - - public function hincrbyfloat($key, $mem, $value): \Relay\Relay|bool|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hincrbyfloat(...\func_get_args()); - } - - public function incr($key, $by = 1): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incr(...\func_get_args()); - } - - public function decr($key, $by = 1): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decr(...\func_get_args()); - } - - public function incrby($key, $value): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrby(...\func_get_args()); - } - - public function decrby($key, $value): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->decrby(...\func_get_args()); - } - - public function incrbyfloat($key, $value): \Relay\Relay|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->incrbyfloat(...\func_get_args()); - } - - public function sdiff($key, ...$other_keys): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiff(...\func_get_args()); - } - - public function sdiffstore($key, ...$other_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sdiffstore(...\func_get_args()); - } - - public function sinter($key, ...$other_keys): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinter(...\func_get_args()); - } - - public function sintercard($keys, $limit = -1): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sintercard(...\func_get_args()); - } - - public function sinterstore($key, ...$other_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sinterstore(...\func_get_args()); - } - - public function sunion($key, ...$other_keys): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunion(...\func_get_args()); - } - - public function sunionstore($key, ...$other_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunionstore(...\func_get_args()); - } - - public function subscribe($channels, $callback): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->subscribe(...\func_get_args()); - } - - public function unsubscribe($channels = []): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unsubscribe(...\func_get_args()); - } - - public function psubscribe($patterns, $callback): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->psubscribe(...\func_get_args()); - } - - public function punsubscribe($patterns = []): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->punsubscribe(...\func_get_args()); - } - - public function ssubscribe($channels, $callback): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->ssubscribe(...\func_get_args()); - } - - public function sunsubscribe($channels = []): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sunsubscribe(...\func_get_args()); - } - - public function touch($key_or_array, ...$more_keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->touch(...\func_get_args()); - } - - public function pipeline(): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->pipeline(...\func_get_args()); - } - - public function multi($mode = 0): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->multi(...\func_get_args()); - } - - public function exec(): \Relay\Relay|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->exec(...\func_get_args()); - } - - public function wait($replicas, $timeout): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->wait(...\func_get_args()); - } - - public function watch($key, ...$other_keys): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->watch(...\func_get_args()); - } - - public function unwatch(): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->unwatch(...\func_get_args()); - } - - public function discard(): bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->discard(...\func_get_args()); - } - - public function getMode($masked = false): int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->getMode(...\func_get_args()); - } - - public function clearBytes(): void - { - ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->clearBytes(...\func_get_args()); - } - - public function scan(&$iterator, $match = null, $count = 0, $type = null): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scan($iterator, ...\array_slice(\func_get_args(), 1)); - } - - public function hscan($key, &$iterator, $match = null, $count = 0): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function sscan($key, &$iterator, $match = null, $count = 0): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function zscan($key, &$iterator, $match = null, $count = 0): array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zscan($key, $iterator, ...\array_slice(\func_get_args(), 2)); - } - - public function keys($pattern): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->keys(...\func_get_args()); - } - - public function slowlog($operation, ...$extra_args): \Relay\Relay|array|bool|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->slowlog(...\func_get_args()); - } - - public function smembers($set): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smembers(...\func_get_args()); - } - - public function sismember($set, $member): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sismember(...\func_get_args()); - } - - public function smismember($set, ...$members): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smismember(...\func_get_args()); - } - - public function srem($set, $member, ...$members): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srem(...\func_get_args()); - } - - public function sadd($set, $member, ...$members): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sadd(...\func_get_args()); - } - - public function sort($key, $options = []): \Relay\Relay|array|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort(...\func_get_args()); - } - - public function sort_ro($key, $options = []): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->sort_ro(...\func_get_args()); - } - - public function smove($srcset, $dstset, $member): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->smove(...\func_get_args()); - } - - public function spop($set, $count = 1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->spop(...\func_get_args()); - } - - public function srandmember($set, $count = 1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->srandmember(...\func_get_args()); - } - - public function scard($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->scard(...\func_get_args()); - } - - public function script($command, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->script(...\func_get_args()); - } - - public function strlen($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->strlen(...\func_get_args()); - } - - public function hlen($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->hlen(...\func_get_args()); - } - - public function llen($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->llen(...\func_get_args()); - } - - public function xack($key, $group, $ids): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xack(...\func_get_args()); - } - - public function xclaim($key, $group, $consumer, $min_idle, $ids, $options): \Relay\Relay|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xclaim(...\func_get_args()); - } - - public function xautoclaim($key, $group, $consumer, $min_idle, $start, $count = -1, $justid = false): \Relay\Relay|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xautoclaim(...\func_get_args()); - } - - public function xlen($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xlen(...\func_get_args()); - } - - public function xgroup($operation, $key = null, $group = null, $id_or_consumer = null, $mkstream = false, $entries_read = -2): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xgroup(...\func_get_args()); - } - - public function xdel($key, $ids): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xdel(...\func_get_args()); - } - - public function xinfo($operation, $arg1 = null, $arg2 = null, $count = -1): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xinfo(...\func_get_args()); - } - - public function xpending($key, $group, $start = null, $end = null, $count = -1, $consumer = null, $idle = 0): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xpending(...\func_get_args()); - } - - public function xrange($key, $start, $end, $count = -1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrange(...\func_get_args()); - } - - public function xrevrange($key, $end, $start, $count = -1): \Relay\Relay|array|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xrevrange(...\func_get_args()); - } - - public function xread($streams, $count = -1, $block = -1): \Relay\Relay|array|bool|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xread(...\func_get_args()); - } - - public function xreadgroup($group, $consumer, $streams, $count = 1, $block = 1): \Relay\Relay|array|bool|null - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xreadgroup(...\func_get_args()); - } - - public function xtrim($key, $threshold, $approx = false, $minid = false, $limit = -1): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->xtrim(...\func_get_args()); - } - - public function zadd($key, ...$args): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zadd(...\func_get_args()); - } - - public function zrandmember($key, $options = null): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrandmember(...\func_get_args()); - } - - public function zrange($key, $start, $end, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrange(...\func_get_args()); - } - - public function zrevrange($key, $start, $end, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrange(...\func_get_args()); - } - - public function zrangebyscore($key, $start, $end, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebyscore(...\func_get_args()); - } - - public function zrevrangebyscore($key, $start, $end, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebyscore(...\func_get_args()); - } - - public function zrangestore($dst, $src, $start, $end, $options = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangestore(...\func_get_args()); - } - - public function zrangebylex($key, $min, $max, $offset = -1, $count = -1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrangebylex(...\func_get_args()); - } - - public function zrevrangebylex($key, $max, $min, $offset = -1, $count = -1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrevrangebylex(...\func_get_args()); - } - - public function zrem($key, ...$args): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zrem(...\func_get_args()); - } - - public function zremrangebylex($key, $min, $max): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebylex(...\func_get_args()); - } - - public function zremrangebyrank($key, $start, $end): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyrank(...\func_get_args()); - } - - public function zremrangebyscore($key, $min, $max): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zremrangebyscore(...\func_get_args()); - } - - public function zcard($key): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcard(...\func_get_args()); - } - - public function zcount($key, $min, $max): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zcount(...\func_get_args()); - } - - public function zdiff($keys, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiff(...\func_get_args()); - } - - public function zdiffstore($dst, $keys): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zdiffstore(...\func_get_args()); - } - - public function zincrby($key, $score, $mem): \Relay\Relay|false|float - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zincrby(...\func_get_args()); - } - - public function zlexcount($key, $min, $max): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zlexcount(...\func_get_args()); - } - - public function zmscore($key, ...$mems): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zmscore(...\func_get_args()); - } - - public function zinter($keys, $weights = null, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinter(...\func_get_args()); - } - - public function zintercard($keys, $limit = -1): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zintercard(...\func_get_args()); - } - - public function zinterstore($dst, $keys, $weights = null, $options = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zinterstore(...\func_get_args()); - } - - public function zunion($keys, $weights = null, $options = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunion(...\func_get_args()); - } - - public function zunionstore($dst, $keys, $weights = null, $options = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zunionstore(...\func_get_args()); - } - - public function zpopmin($key, $count = 1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmin(...\func_get_args()); - } - - public function zpopmax($key, $count = 1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->zpopmax(...\func_get_args()); - } - - public function _getKeys() - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->_getKeys(...\func_get_args()); - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/RelayProxyTrait.php b/projects/priceservice/vendor/symfony/cache/Traits/RelayProxyTrait.php deleted file mode 100644 index c35b5fa..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/RelayProxyTrait.php +++ /dev/null @@ -1,147 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -if (version_compare(phpversion('relay'), '0.8.1', '>=')) { - /** - * @internal - */ - trait RelayProxyTrait - { - public function jsonArrAppend($key, $value_or_array, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrAppend(...\func_get_args()); - } - - public function jsonArrIndex($key, $path, $value, $start = 0, $stop = -1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrIndex(...\func_get_args()); - } - - public function jsonArrInsert($key, $path, $index, $value, ...$other_values): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrInsert(...\func_get_args()); - } - - public function jsonArrLen($key, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrLen(...\func_get_args()); - } - - public function jsonArrPop($key, $path = null, $index = -1): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrPop(...\func_get_args()); - } - - public function jsonArrTrim($key, $path, $start, $stop): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonArrTrim(...\func_get_args()); - } - - public function jsonClear($key, $path = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonClear(...\func_get_args()); - } - - public function jsonDebug($command, $key, $path = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonDebug(...\func_get_args()); - } - - public function jsonDel($key, $path = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonDel(...\func_get_args()); - } - - public function jsonForget($key, $path = null): \Relay\Relay|false|int - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonForget(...\func_get_args()); - } - - public function jsonGet($key, $options = [], ...$paths): mixed - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonGet(...\func_get_args()); - } - - public function jsonMerge($key, $path, $value): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonMerge(...\func_get_args()); - } - - public function jsonMget($key_or_array, $path): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonMget(...\func_get_args()); - } - - public function jsonMset($key, $path, $value, ...$other_triples): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonMset(...\func_get_args()); - } - - public function jsonNumIncrBy($key, $path, $value): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonNumIncrBy(...\func_get_args()); - } - - public function jsonNumMultBy($key, $path, $value): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonNumMultBy(...\func_get_args()); - } - - public function jsonObjKeys($key, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonObjKeys(...\func_get_args()); - } - - public function jsonObjLen($key, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonObjLen(...\func_get_args()); - } - - public function jsonResp($key, $path = null): \Relay\Relay|array|false|int|string - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonResp(...\func_get_args()); - } - - public function jsonSet($key, $path, $value, $condition = null): \Relay\Relay|bool - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonSet(...\func_get_args()); - } - - public function jsonStrAppend($key, $value, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrAppend(...\func_get_args()); - } - - public function jsonStrLen($key, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonStrLen(...\func_get_args()); - } - - public function jsonToggle($key, $path): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonToggle(...\func_get_args()); - } - - public function jsonType($key, $path = null): \Relay\Relay|array|false - { - return ($this->lazyObjectState->realInstance ??= ($this->lazyObjectState->initializer)())->jsonType(...\func_get_args()); - } - } -} else { - /** - * @internal - */ - trait RelayProxyTrait - { - } -} diff --git a/projects/priceservice/vendor/symfony/cache/Traits/ValueWrapper.php b/projects/priceservice/vendor/symfony/cache/Traits/ValueWrapper.php deleted file mode 100644 index 718a23d..0000000 --- a/projects/priceservice/vendor/symfony/cache/Traits/ValueWrapper.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * A short namespace-less class to serialize items with metadata. - * - * @author Nicolas Grekas - * - * @internal - */ -class -{ - private const EXPIRY_OFFSET = 1648206727; - private const INT32_MAX = 2147483647; - - public readonly mixed $value; - public readonly array $metadata; - - public function __construct(mixed $value, array $metadata) - { - $this->value = $value; - $this->metadata = $metadata; - } - - public function __serialize(): array - { - // pack 31-bits ctime into 14bits - $c = $this->metadata['ctime'] ?? 0; - $c = match (true) { - $c > self::INT32_MAX - 2 => self::INT32_MAX, - $c > 0 => 1 + $c, - default => 1, - }; - $e = 0; - while (!(0x40000000 & $c)) { - $c <<= 1; - ++$e; - } - $c = (0x7FE0 & ($c >> 16)) | $e; - - $pack = pack('Vn', (int) (0.1 + ($this->metadata['expiry'] ?: self::INT32_MAX + self::EXPIRY_OFFSET) - self::EXPIRY_OFFSET), $c); - - if (isset($this->metadata['tags'])) { - $pack[4] = $pack[4] | "\x80"; - } - - return [$pack => $this->value] + ($this->metadata['tags'] ?? []); - } - - public function __unserialize(array $data): void - { - $pack = array_key_first($data); - $this->value = $data[$pack]; - - if ($hasTags = "\x80" === ($pack[4] & "\x80")) { - unset($data[$pack]); - $pack[4] = $pack[4] & "\x7F"; - } - - $metadata = unpack('Vexpiry/nctime', $pack); - $metadata['expiry'] += self::EXPIRY_OFFSET; - - if (!$metadata['ctime'] = ((0x4000 | $metadata['ctime']) << 16 >> (0x1F & $metadata['ctime'])) - 1) { - unset($metadata['ctime']); - } - - if ($hasTags) { - $metadata['tags'] = $data; - } - - $this->metadata = $metadata; - } -} diff --git a/projects/priceservice/vendor/symfony/cache/composer.json b/projects/priceservice/vendor/symfony/cache/composer.json deleted file mode 100644 index af743b4..0000000 --- a/projects/priceservice/vendor/symfony/cache/composer.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "symfony/cache", - "type": "library", - "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", - "keywords": ["caching", "psr6"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "provide": { - "psr/cache-implementation": "2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0", - "symfony/cache-implementation": "1.1|2.0|3.0" - }, - "require": { - "php": ">=8.1", - "psr/cache": "^2.0|^3.0", - "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.3.6|^7.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Cache\\": "" }, - "classmap": [ - "Traits/ValueWrapper.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/clock/CHANGELOG.md b/projects/priceservice/vendor/symfony/clock/CHANGELOG.md deleted file mode 100644 index 3b13157..0000000 --- a/projects/priceservice/vendor/symfony/clock/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * Add `DatePoint`: an immutable DateTime implementation with stricter error handling and return types - * Throw `DateMalformedStringException`/`DateInvalidTimeZoneException` when appropriate - * Add `$modifier` argument to the `now()` helper - -6.3 ---- - - * Add `ClockAwareTrait` to help write time-sensitive classes - * Add `Clock` class and `now()` function - -6.2 ---- - - * Add the component diff --git a/projects/priceservice/vendor/symfony/clock/Clock.php b/projects/priceservice/vendor/symfony/clock/Clock.php deleted file mode 100644 index 311e8fc..0000000 --- a/projects/priceservice/vendor/symfony/clock/Clock.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -use Psr\Clock\ClockInterface as PsrClockInterface; - -/** - * A global clock. - * - * @author Nicolas Grekas - */ -final class Clock implements ClockInterface -{ - private static ClockInterface $globalClock; - - public function __construct( - private readonly ?PsrClockInterface $clock = null, - private ?\DateTimeZone $timezone = null, - ) { - } - - /** - * Returns the current global clock. - * - * Note that you should prefer injecting a ClockInterface or using - * ClockAwareTrait when possible instead of using this method. - */ - public static function get(): ClockInterface - { - return self::$globalClock ??= new NativeClock(); - } - - public static function set(PsrClockInterface $clock): void - { - self::$globalClock = $clock instanceof ClockInterface ? $clock : new self($clock); - } - - public function now(): DatePoint - { - $now = ($this->clock ?? self::get())->now(); - - if (!$now instanceof DatePoint) { - $now = DatePoint::createFromInterface($now); - } - - return isset($this->timezone) ? $now->setTimezone($this->timezone) : $now; - } - - public function sleep(float|int $seconds): void - { - $clock = $this->clock ?? self::get(); - - if ($clock instanceof ClockInterface) { - $clock->sleep($seconds); - } else { - (new NativeClock())->sleep($seconds); - } - } - - /** - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function withTimeZone(\DateTimeZone|string $timezone): static - { - if (\PHP_VERSION_ID >= 80300 && \is_string($timezone)) { - $timezone = new \DateTimeZone($timezone); - } elseif (\is_string($timezone)) { - try { - $timezone = new \DateTimeZone($timezone); - } catch (\Exception $e) { - throw new \DateInvalidTimeZoneException($e->getMessage(), $e->getCode(), $e); - } - } - - $clone = clone $this; - $clone->timezone = $timezone; - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/clock/ClockAwareTrait.php b/projects/priceservice/vendor/symfony/clock/ClockAwareTrait.php deleted file mode 100644 index 44ce044..0000000 --- a/projects/priceservice/vendor/symfony/clock/ClockAwareTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -use Psr\Clock\ClockInterface; -use Symfony\Contracts\Service\Attribute\Required; - -/** - * A trait to help write time-sensitive classes. - * - * @author Nicolas Grekas - */ -trait ClockAwareTrait -{ - private readonly ClockInterface $clock; - - #[Required] - public function setClock(ClockInterface $clock): void - { - $this->clock = $clock; - } - - /** - * @return DatePoint - */ - protected function now(): \DateTimeImmutable - { - $now = ($this->clock ??= new Clock())->now(); - - return $now instanceof DatePoint ? $now : DatePoint::createFromInterface($now); - } -} diff --git a/projects/priceservice/vendor/symfony/clock/ClockInterface.php b/projects/priceservice/vendor/symfony/clock/ClockInterface.php deleted file mode 100644 index 435775a..0000000 --- a/projects/priceservice/vendor/symfony/clock/ClockInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -use Psr\Clock\ClockInterface as PsrClockInterface; - -/** - * @author Nicolas Grekas - */ -interface ClockInterface extends PsrClockInterface -{ - public function sleep(float|int $seconds): void; - - public function withTimeZone(\DateTimeZone|string $timezone): static; -} diff --git a/projects/priceservice/vendor/symfony/clock/DatePoint.php b/projects/priceservice/vendor/symfony/clock/DatePoint.php deleted file mode 100644 index c3bf316..0000000 --- a/projects/priceservice/vendor/symfony/clock/DatePoint.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -/** - * An immmutable DateTime with stricter error handling and return types than the native one. - * - * @author Nicolas Grekas - */ -final class DatePoint extends \DateTimeImmutable -{ - /** - * @throws \DateMalformedStringException When $datetime is invalid - */ - public function __construct(string $datetime = 'now', ?\DateTimeZone $timezone = null, ?parent $reference = null) - { - $now = $reference ?? Clock::get()->now(); - - if ('now' !== $datetime) { - if (!$now instanceof static) { - $now = static::createFromInterface($now); - } - - if (\PHP_VERSION_ID < 80300) { - try { - $builtInDate = new parent($datetime, $timezone ?? $now->getTimezone()); - $timezone = $builtInDate->getTimezone(); - } catch (\Exception $e) { - throw new \DateMalformedStringException($e->getMessage(), $e->getCode(), $e); - } - } else { - $builtInDate = new parent($datetime, $timezone ?? $now->getTimezone()); - $timezone = $builtInDate->getTimezone(); - } - - $now = $now->setTimezone($timezone)->modify($datetime); - - if ('00:00:00.000000' === $builtInDate->format('H:i:s.u')) { - $now = $now->setTime(0, 0); - } - } elseif (null !== $timezone) { - $now = $now->setTimezone($timezone); - } - - if (\PHP_VERSION_ID < 80200) { - $now = (array) $now; - $this->date = $now['date']; - $this->timezone_type = $now['timezone_type']; - $this->timezone = $now['timezone']; - $this->__wakeup(); - - return; - } - - $this->__unserialize((array) $now); - } - - /** - * @throws \DateMalformedStringException When $format or $datetime are invalid - */ - public static function createFromFormat(string $format, string $datetime, ?\DateTimeZone $timezone = null): static - { - return parent::createFromFormat($format, $datetime, $timezone) ?: throw new \DateMalformedStringException(static::getLastErrors()['errors'][0] ?? 'Invalid date string or format.'); - } - - public static function createFromInterface(\DateTimeInterface $object): static - { - return parent::createFromInterface($object); - } - - public static function createFromMutable(\DateTime $object): static - { - return parent::createFromMutable($object); - } - - public function add(\DateInterval $interval): static - { - return parent::add($interval); - } - - public function sub(\DateInterval $interval): static - { - return parent::sub($interval); - } - - /** - * @throws \DateMalformedStringException When $modifier is invalid - */ - public function modify(string $modifier): static - { - if (\PHP_VERSION_ID < 80300) { - return @parent::modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? sprintf('Invalid modifier: "%s".', $modifier)); - } - - return parent::modify($modifier); - } - - public function setTimestamp(int $value): static - { - return parent::setTimestamp($value); - } - - public function setDate(int $year, int $month, int $day): static - { - return parent::setDate($year, $month, $day); - } - - public function setISODate(int $year, int $week, int $day = 1): static - { - return parent::setISODate($year, $week, $day); - } - - public function setTime(int $hour, int $minute, int $second = 0, int $microsecond = 0): static - { - return parent::setTime($hour, $minute, $second, $microsecond); - } - - public function setTimezone(\DateTimeZone $timezone): static - { - return parent::setTimezone($timezone); - } - - public function getTimezone(): \DateTimeZone - { - return parent::getTimezone() ?: throw new \DateInvalidTimeZoneException('The DatePoint object has no timezone.'); - } -} diff --git a/projects/priceservice/vendor/symfony/clock/LICENSE b/projects/priceservice/vendor/symfony/clock/LICENSE deleted file mode 100644 index 733c826..0000000 --- a/projects/priceservice/vendor/symfony/clock/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2022-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/clock/MockClock.php b/projects/priceservice/vendor/symfony/clock/MockClock.php deleted file mode 100644 index ab64f1c..0000000 --- a/projects/priceservice/vendor/symfony/clock/MockClock.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -/** - * A clock that always returns the same date, suitable for testing time-sensitive logic. - * - * Consider using ClockSensitiveTrait in your test cases instead of using this class directly. - * - * @author Nicolas Grekas - */ -final class MockClock implements ClockInterface -{ - private DatePoint $now; - - /** - * @throws \DateMalformedStringException When $now is invalid - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function __construct(\DateTimeImmutable|string $now = 'now', \DateTimeZone|string|null $timezone = null) - { - if (\PHP_VERSION_ID >= 80300 && \is_string($timezone)) { - $timezone = new \DateTimeZone($timezone); - } elseif (\is_string($timezone)) { - try { - $timezone = new \DateTimeZone($timezone); - } catch (\Exception $e) { - throw new \DateInvalidTimeZoneException($e->getMessage(), $e->getCode(), $e); - } - } - - if (\is_string($now)) { - $now = new DatePoint($now, $timezone ?? new \DateTimeZone('UTC')); - } elseif (!$now instanceof DatePoint) { - $now = DatePoint::createFromInterface($now); - } - - $this->now = null !== $timezone ? $now->setTimezone($timezone) : $now; - } - - public function now(): DatePoint - { - return clone $this->now; - } - - public function sleep(float|int $seconds): void - { - $now = (float) $this->now->format('Uu') + $seconds * 1e6; - $now = substr_replace(sprintf('@%07.0F', $now), '.', -6, 0); - $timezone = $this->now->getTimezone(); - - $this->now = DatePoint::createFromInterface(new \DateTimeImmutable($now, $timezone))->setTimezone($timezone); - } - - /** - * @throws \DateMalformedStringException When $modifier is invalid - */ - public function modify(string $modifier): void - { - if (\PHP_VERSION_ID < 80300) { - $this->now = @$this->now->modify($modifier) ?: throw new \DateMalformedStringException(error_get_last()['message'] ?? sprintf('Invalid modifier: "%s". Could not modify MockClock.', $modifier)); - - return; - } - - $this->now = $this->now->modify($modifier); - } - - /** - * @throws \DateInvalidTimeZoneException When the timezone name is invalid - */ - public function withTimeZone(\DateTimeZone|string $timezone): static - { - if (\PHP_VERSION_ID >= 80300 && \is_string($timezone)) { - $timezone = new \DateTimeZone($timezone); - } elseif (\is_string($timezone)) { - try { - $timezone = new \DateTimeZone($timezone); - } catch (\Exception $e) { - throw new \DateInvalidTimeZoneException($e->getMessage(), $e->getCode(), $e); - } - } - - $clone = clone $this; - $clone->now = $clone->now->setTimezone($timezone); - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/clock/MonotonicClock.php b/projects/priceservice/vendor/symfony/clock/MonotonicClock.php deleted file mode 100644 index d27bf9c..0000000 --- a/projects/priceservice/vendor/symfony/clock/MonotonicClock.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -/** - * A monotonic clock suitable for performance profiling. - * - * @author Nicolas Grekas - */ -final class MonotonicClock implements ClockInterface -{ - private int $sOffset; - private int $usOffset; - private \DateTimeZone $timezone; - - /** - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function __construct(\DateTimeZone|string|null $timezone = null) - { - if (false === $offset = hrtime()) { - throw new \RuntimeException('hrtime() returned false: the runtime environment does not provide access to a monotonic timer.'); - } - - $time = explode(' ', microtime(), 2); - $this->sOffset = $time[1] - $offset[0]; - $this->usOffset = (int) ($time[0] * 1000000) - (int) ($offset[1] / 1000); - - $this->timezone = \is_string($timezone ??= date_default_timezone_get()) ? $this->withTimeZone($timezone)->timezone : $timezone; - } - - public function now(): DatePoint - { - [$s, $us] = hrtime(); - - if (1000000 <= $us = (int) ($us / 1000) + $this->usOffset) { - ++$s; - $us -= 1000000; - } elseif (0 > $us) { - --$s; - $us += 1000000; - } - - if (6 !== \strlen($now = (string) $us)) { - $now = str_pad($now, 6, '0', \STR_PAD_LEFT); - } - - $now = '@'.($s + $this->sOffset).'.'.$now; - - return DatePoint::createFromInterface(new \DateTimeImmutable($now, $this->timezone))->setTimezone($this->timezone); - } - - public function sleep(float|int $seconds): void - { - if (0 < $s = (int) $seconds) { - sleep($s); - } - - if (0 < $us = $seconds - $s) { - usleep((int) ($us * 1E6)); - } - } - - /** - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function withTimeZone(\DateTimeZone|string $timezone): static - { - if (\PHP_VERSION_ID >= 80300 && \is_string($timezone)) { - $timezone = new \DateTimeZone($timezone); - } elseif (\is_string($timezone)) { - try { - $timezone = new \DateTimeZone($timezone); - } catch (\Exception $e) { - throw new \DateInvalidTimeZoneException($e->getMessage(), $e->getCode(), $e); - } - } - - $clone = clone $this; - $clone->timezone = $timezone; - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/clock/NativeClock.php b/projects/priceservice/vendor/symfony/clock/NativeClock.php deleted file mode 100644 index b580a88..0000000 --- a/projects/priceservice/vendor/symfony/clock/NativeClock.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -/** - * A clock that relies the system time. - * - * @author Nicolas Grekas - */ -final class NativeClock implements ClockInterface -{ - private \DateTimeZone $timezone; - - /** - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function __construct(\DateTimeZone|string|null $timezone = null) - { - $this->timezone = \is_string($timezone ??= date_default_timezone_get()) ? $this->withTimeZone($timezone)->timezone : $timezone; - } - - public function now(): DatePoint - { - return DatePoint::createFromInterface(new \DateTimeImmutable('now', $this->timezone)); - } - - public function sleep(float|int $seconds): void - { - if (0 < $s = (int) $seconds) { - sleep($s); - } - - if (0 < $us = $seconds - $s) { - usleep((int) ($us * 1E6)); - } - } - - /** - * @throws \DateInvalidTimeZoneException When $timezone is invalid - */ - public function withTimeZone(\DateTimeZone|string $timezone): static - { - if (\PHP_VERSION_ID >= 80300 && \is_string($timezone)) { - $timezone = new \DateTimeZone($timezone); - } elseif (\is_string($timezone)) { - try { - $timezone = new \DateTimeZone($timezone); - } catch (\Exception $e) { - throw new \DateInvalidTimeZoneException($e->getMessage(), $e->getCode(), $e); - } - } - - $clone = clone $this; - $clone->timezone = $timezone; - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/clock/README.md b/projects/priceservice/vendor/symfony/clock/README.md deleted file mode 100644 index e860a64..0000000 --- a/projects/priceservice/vendor/symfony/clock/README.md +++ /dev/null @@ -1,47 +0,0 @@ -Clock Component -=============== - -Symfony Clock decouples applications from the system clock. - -Getting Started ---------------- - -``` -$ composer require symfony/clock -``` - -```php -use Symfony\Component\Clock\NativeClock; -use Symfony\Component\Clock\ClockInterface; - -class MyClockSensitiveClass -{ - public function __construct( - private ClockInterface $clock, - ) { - // Only if you need to force a timezone: - //$this->clock = $clock->withTimeZone('UTC'); - } - - public function doSomething() - { - $now = $this->clock->now(); - // [...] do something with $now, which is a \DateTimeImmutable object - - $this->clock->sleep(2.5); // Pause execution for 2.5 seconds - } -} - -$clock = new NativeClock(); -$service = new MyClockSensitiveClass($clock); -$service->doSomething(); -``` - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/clock.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/clock/Resources/now.php b/projects/priceservice/vendor/symfony/clock/Resources/now.php deleted file mode 100644 index 47d086c..0000000 --- a/projects/priceservice/vendor/symfony/clock/Resources/now.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock; - -if (!\function_exists(now::class)) { - /** - * @throws \DateMalformedStringException When the modifier is invalid - */ - function now(string $modifier = 'now'): DatePoint - { - if ('now' !== $modifier) { - return new DatePoint($modifier); - } - - $now = Clock::get()->now(); - - return $now instanceof DatePoint ? $now : DatePoint::createFromInterface($now); - } -} diff --git a/projects/priceservice/vendor/symfony/clock/Test/ClockSensitiveTrait.php b/projects/priceservice/vendor/symfony/clock/Test/ClockSensitiveTrait.php deleted file mode 100644 index fcc2820..0000000 --- a/projects/priceservice/vendor/symfony/clock/Test/ClockSensitiveTrait.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Clock\Test; - -use PHPUnit\Framework\Attributes\After; -use PHPUnit\Framework\Attributes\Before; -use PHPUnit\Framework\Attributes\BeforeClass; -use Psr\Clock\ClockInterface; -use Symfony\Component\Clock\Clock; -use Symfony\Component\Clock\MockClock; - -use function Symfony\Component\Clock\now; - -/** - * Helps with mocking the time in your test cases. - * - * This trait provides one self::mockTime() method that freezes the time. - * It restores the global clock after each test case. - * self::mockTime() accepts either a string (eg '+1 days' or '2022-12-22'), - * a DateTimeImmutable, or a boolean (to freeze/restore the global clock). - * - * @author Nicolas Grekas - */ -trait ClockSensitiveTrait -{ - public static function mockTime(string|\DateTimeImmutable|bool $when = true): ClockInterface - { - Clock::set(match (true) { - false === $when => self::saveClockBeforeTest(false), - true === $when => new MockClock(), - $when instanceof \DateTimeImmutable => new MockClock($when), - default => new MockClock(now($when)), - }); - - return Clock::get(); - } - - /** - * @beforeClass - * - * @before - * - * @internal - */ - #[Before] - #[BeforeClass] - public static function saveClockBeforeTest(bool $save = true): ClockInterface - { - static $originalClock; - - if ($save && $originalClock) { - self::restoreClockAfterTest(); - } - - return $save ? $originalClock = Clock::get() : $originalClock; - } - - /** - * @after - * - * @internal - */ - #[After] - protected static function restoreClockAfterTest(): void - { - Clock::set(self::saveClockBeforeTest(false)); - } -} diff --git a/projects/priceservice/vendor/symfony/clock/composer.json b/projects/priceservice/vendor/symfony/clock/composer.json deleted file mode 100644 index d9a0f98..0000000 --- a/projects/priceservice/vendor/symfony/clock/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/clock", - "type": "library", - "description": "Decouples applications from the system clock", - "keywords": ["clock", "time", "psr20"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "provide": { - "psr/clock-implementation": "1.0" - }, - "require": { - "php": ">=8.1", - "psr/clock": "^1.0", - "symfony/polyfill-php83": "^1.28" - }, - "autoload": { - "files": [ "Resources/now.php" ], - "psr-4": { "Symfony\\Component\\Clock\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/ClassBuilder.php b/projects/priceservice/vendor/symfony/config/Builder/ClassBuilder.php deleted file mode 100644 index 619ebd8..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/ClassBuilder.php +++ /dev/null @@ -1,171 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -/** - * Build PHP classes to generate config. - * - * @internal - * - * @author Tobias Nyholm - */ -class ClassBuilder -{ - private string $namespace; - private string $name; - - /** @var Property[] */ - private array $properties = []; - - /** @var Method[] */ - private array $methods = []; - private array $require = []; - private array $use = []; - private array $implements = []; - private bool $allowExtraKeys = false; - - public function __construct(string $namespace, string $name) - { - $this->namespace = $namespace; - $this->name = ucfirst($this->camelCase($name)).'Config'; - } - - public function getDirectory(): string - { - return str_replace('\\', \DIRECTORY_SEPARATOR, $this->namespace); - } - - public function getFilename(): string - { - return $this->name.'.php'; - } - - public function build(): string - { - $rootPath = explode(\DIRECTORY_SEPARATOR, $this->getDirectory()); - $require = ''; - foreach ($this->require as $class) { - // figure out relative path. - $path = explode(\DIRECTORY_SEPARATOR, $class->getDirectory()); - $path[] = $class->getFilename(); - foreach ($rootPath as $key => $value) { - if ($path[$key] !== $value) { - break; - } - unset($path[$key]); - } - $require .= sprintf('require_once __DIR__.\DIRECTORY_SEPARATOR.\'%s\';', implode('\'.\DIRECTORY_SEPARATOR.\'', $path))."\n"; - } - $use = $require ? "\n" : ''; - foreach (array_keys($this->use) as $statement) { - $use .= sprintf('use %s;', $statement)."\n"; - } - - $implements = [] === $this->implements ? '' : 'implements '.implode(', ', $this->implements); - $body = ''; - foreach ($this->properties as $property) { - $body .= ' '.$property->getContent()."\n"; - } - foreach ($this->methods as $method) { - $lines = explode("\n", $method->getContent()); - foreach ($lines as $line) { - $body .= ($line ? ' '.$line : '')."\n"; - } - } - - $content = strtr(' $this->namespace, 'REQUIRE' => $require, 'USE' => $use, 'CLASS' => $this->getName(), 'IMPLEMENTS' => $implements, 'BODY' => $body]); - - return $content; - } - - public function addRequire(self $class): void - { - $this->require[] = $class; - } - - public function addUse(string $class): void - { - $this->use[$class] = true; - } - - public function addImplements(string $interface): void - { - $this->implements[] = '\\'.ltrim($interface, '\\'); - } - - public function addMethod(string $name, string $body, array $params = []): void - { - $this->methods[] = new Method(strtr($body, ['NAME' => $this->camelCase($name)] + $params)); - } - - public function addProperty(string $name, ?string $classType = null, ?string $defaultValue = null): Property - { - $property = new Property($name, '_' !== $name[0] ? $this->camelCase($name) : $name); - if (null !== $classType) { - $property->setType($classType); - } - $this->properties[] = $property; - $defaultValue = null !== $defaultValue ? sprintf(' = %s', $defaultValue) : ''; - $property->setContent(sprintf('private $%s%s;', $property->getName(), $defaultValue)); - - return $property; - } - - public function getProperties(): array - { - return $this->properties; - } - - private function camelCase(string $input): string - { - $output = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $input)))); - - return preg_replace('#\W#', '', $output); - } - - public function getName(): string - { - return $this->name; - } - - public function getNamespace(): string - { - return $this->namespace; - } - - public function getFqcn(): string - { - return '\\'.$this->namespace.'\\'.$this->name; - } - - public function setAllowExtraKeys(bool $allowExtraKeys): void - { - $this->allowExtraKeys = $allowExtraKeys; - } - - public function shouldAllowExtraKeys(): bool - { - return $this->allowExtraKeys; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGenerator.php b/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGenerator.php deleted file mode 100644 index 9649c8d..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGenerator.php +++ /dev/null @@ -1,600 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\BooleanNode; -use Symfony\Component\Config\Definition\Builder\ExprBuilder; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\EnumNode; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\FloatNode; -use Symfony\Component\Config\Definition\IntegerNode; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; -use Symfony\Component\Config\Definition\ScalarNode; -use Symfony\Component\Config\Definition\VariableNode; -use Symfony\Component\Config\Loader\ParamConfigurator; - -/** - * Generate ConfigBuilders to help create valid config. - * - * @author Tobias Nyholm - */ -class ConfigBuilderGenerator implements ConfigBuilderGeneratorInterface -{ - /** - * @var ClassBuilder[] - */ - private array $classes = []; - private string $outputDir; - - public function __construct(string $outputDir) - { - $this->outputDir = $outputDir; - } - - /** - * @return \Closure that will return the root config class - */ - public function build(ConfigurationInterface $configuration): \Closure - { - $this->classes = []; - - $rootNode = $configuration->getConfigTreeBuilder()->buildTree(); - $rootClass = new ClassBuilder('Symfony\\Config', $rootNode->getName()); - - $path = $this->getFullPath($rootClass); - if (!is_file($path)) { - // Generate the class if the file not exists - $this->classes[] = $rootClass; - $this->buildNode($rootNode, $rootClass, $this->getSubNamespace($rootClass)); - $rootClass->addImplements(ConfigBuilderInterface::class); - $rootClass->addMethod('getExtensionAlias', ' -public function NAME(): string -{ - return \'ALIAS\'; -}', ['ALIAS' => $rootNode->getPath()]); - - $this->writeClasses(); - } - - return function () use ($path, $rootClass) { - require_once $path; - $className = $rootClass->getFqcn(); - - return new $className(); - }; - } - - private function getFullPath(ClassBuilder $class): string - { - $directory = $this->outputDir.\DIRECTORY_SEPARATOR.$class->getDirectory(); - if (!is_dir($directory)) { - @mkdir($directory, 0777, true); - } - - return $directory.\DIRECTORY_SEPARATOR.$class->getFilename(); - } - - private function writeClasses(): void - { - foreach ($this->classes as $class) { - $this->buildConstructor($class); - $this->buildToArray($class); - if ($class->getProperties()) { - $class->addProperty('_usedProperties', null, '[]'); - } - $this->buildSetExtraKey($class); - - file_put_contents($this->getFullPath($class), $class->build()); - } - - $this->classes = []; - } - - private function buildNode(NodeInterface $node, ClassBuilder $class, string $namespace): void - { - if (!$node instanceof ArrayNode) { - throw new \LogicException('The node was expected to be an ArrayNode. This Configuration includes an edge case not supported yet.'); - } - - foreach ($node->getChildren() as $child) { - match (true) { - $child instanceof ScalarNode => $this->handleScalarNode($child, $class), - $child instanceof PrototypedArrayNode => $this->handlePrototypedArrayNode($child, $class, $namespace), - $child instanceof VariableNode => $this->handleVariableNode($child, $class), - $child instanceof ArrayNode => $this->handleArrayNode($child, $class, $namespace), - default => throw new \RuntimeException(sprintf('Unknown node "%s".', $child::class)), - }; - } - } - - private function handleArrayNode(ArrayNode $node, ClassBuilder $class, string $namespace): void - { - $childClass = new ClassBuilder($namespace, $node->getName()); - $childClass->setAllowExtraKeys($node->shouldIgnoreExtraKeys()); - $class->addRequire($childClass); - $this->classes[] = $childClass; - - $hasNormalizationClosures = $this->hasNormalizationClosures($node); - $comment = $this->getComment($node); - if ($hasNormalizationClosures) { - $comment = sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment); - $comment .= sprintf(' * @return %s|$this'."\n", $childClass->getFqcn()); - $comment .= sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn()); - } - if ('' !== $comment) { - $comment = "/**\n$comment*/\n"; - } - - $property = $class->addProperty( - $node->getName(), - $this->getType($childClass->getFqcn(), $hasNormalizationClosures) - ); - $nodeTypes = $this->getParameterTypes($node); - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static -{ - if (!\is_array($value)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; - } - - if (!$this->PROPERTY instanceof CLASS) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = new CLASS($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY; -}' : ' -COMMENTpublic function NAME(array $value = []): CLASS -{ - if (null === $this->PROPERTY) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = new CLASS($value); - } elseif (0 < \func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY; -}'; - $class->addUse(InvalidConfigurationException::class); - $class->addMethod($node->getName(), $body, [ - 'COMMENT' => $comment, - 'PROPERTY' => $property->getName(), - 'CLASS' => $childClass->getFqcn(), - 'PARAM_TYPE' => \in_array('mixed', $nodeTypes, true) ? 'mixed' : implode('|', $nodeTypes), - ]); - - $this->buildNode($node, $childClass, $this->getSubNamespace($childClass)); - } - - private function handleVariableNode(VariableNode $node, ClassBuilder $class): void - { - $comment = $this->getComment($node); - $property = $class->addProperty($node->getName()); - $class->addUse(ParamConfigurator::class); - - $body = ' -/** -COMMENT * - * @return $this - */ -public function NAME(mixed $valueDEFAULT): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - $class->addMethod($node->getName(), $body, [ - 'PROPERTY' => $property->getName(), - 'COMMENT' => $comment, - 'DEFAULT' => $node->hasDefaultValue() ? ' = '.var_export($node->getDefaultValue(), true) : '', - ]); - } - - private function handlePrototypedArrayNode(PrototypedArrayNode $node, ClassBuilder $class, string $namespace): void - { - $name = $this->getSingularName($node); - $prototype = $node->getPrototype(); - $methodName = $name; - $hasNormalizationClosures = $this->hasNormalizationClosures($node) || $this->hasNormalizationClosures($prototype); - - $nodeParameterTypes = $this->getParameterTypes($node); - $prototypeParameterTypes = $this->getParameterTypes($prototype); - if (!$prototype instanceof ArrayNode || ($prototype instanceof PrototypedArrayNode && $prototype->getPrototype() instanceof ScalarNode)) { - $class->addUse(ParamConfigurator::class); - $property = $class->addProperty($node->getName()); - if (null === $key = $node->getKeyAttribute()) { - // This is an array of values; don't use singular name - $nodeTypesWithoutArray = array_filter($nodeParameterTypes, static fn ($type) => 'array' !== $type); - $body = ' -/** - * @param ParamConfigurator|listEXTRA_TYPE $value - * - * @return $this - */ -public function NAME(PARAM_TYPE $value): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - - $class->addMethod($node->getName(), $body, [ - 'PROPERTY' => $property->getName(), - 'PROTOTYPE_TYPE' => implode('|', $prototypeParameterTypes), - 'EXTRA_TYPE' => $nodeTypesWithoutArray ? '|'.implode('|', $nodeTypesWithoutArray) : '', - 'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, true) ? 'mixed' : 'ParamConfigurator|'.implode('|', $nodeParameterTypes), - ]); - } else { - $body = ' -/** - * @return $this - */ -public function NAME(string $VAR, TYPE $VALUE): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = $VALUE; - - return $this; -}'; - - $class->addMethod($methodName, $body, [ - 'PROPERTY' => $property->getName(), - 'TYPE' => \in_array('mixed', $prototypeParameterTypes, true) ? 'mixed' : 'ParamConfigurator|'.implode('|', $prototypeParameterTypes), - 'VAR' => '' === $key ? 'key' : $key, - 'VALUE' => 'value' === $key ? 'data' : 'value', - ]); - } - - return; - } - - $childClass = new ClassBuilder($namespace, $name); - if ($prototype instanceof ArrayNode) { - $childClass->setAllowExtraKeys($prototype->shouldIgnoreExtraKeys()); - } - $class->addRequire($childClass); - $this->classes[] = $childClass; - - $property = $class->addProperty( - $node->getName(), - $this->getType($childClass->getFqcn().'[]', $hasNormalizationClosures) - ); - - $comment = $this->getComment($node); - if ($hasNormalizationClosures) { - $comment = sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment); - $comment .= sprintf(' * @return %s|$this'."\n", $childClass->getFqcn()); - $comment .= sprintf(' * @psalm-return (TValue is array ? %s : static)'."\n ", $childClass->getFqcn()); - } - if ('' !== $comment) { - $comment = "/**\n$comment*/\n"; - } - - if (null === $key = $node->getKeyAttribute()) { - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - if (!\is_array($value)) { - $this->PROPERTY[] = $value; - - return $this; - } - - return $this->PROPERTY[] = new CLASS($value); -}' : ' -COMMENTpublic function NAME(array $value = []): CLASS -{ - $this->_usedProperties[\'PROPERTY\'] = true; - - return $this->PROPERTY[] = new CLASS($value); -}'; - $class->addMethod($methodName, $body, [ - 'COMMENT' => $comment, - 'PROPERTY' => $property->getName(), - 'CLASS' => $childClass->getFqcn(), - 'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, true) ? 'mixed' : implode('|', $nodeParameterTypes), - ]); - } else { - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(string $VAR, PARAM_TYPE $VALUE = []): CLASS|static -{ - if (!\is_array($VALUE)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = $VALUE; - - return $this; - } - - if (!isset($this->PROPERTY[$VAR]) || !$this->PROPERTY[$VAR] instanceof CLASS) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = new CLASS($VALUE); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY[$VAR]; -}' : ' -COMMENTpublic function NAME(string $VAR, array $VALUE = []): CLASS -{ - if (!isset($this->PROPERTY[$VAR])) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = new CLASS($VALUE); - } elseif (1 < \func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY[$VAR]; -}'; - $class->addUse(InvalidConfigurationException::class); - $class->addMethod($methodName, str_replace('$value', '$VAR', $body), [ - 'COMMENT' => $comment, 'PROPERTY' => $property->getName(), - 'CLASS' => $childClass->getFqcn(), - 'VAR' => '' === $key ? 'key' : $key, - 'VALUE' => 'value' === $key ? 'data' : 'value', - 'PARAM_TYPE' => \in_array('mixed', $prototypeParameterTypes, true) ? 'mixed' : implode('|', $prototypeParameterTypes), - ]); - } - - $this->buildNode($prototype, $childClass, $namespace.'\\'.$childClass->getName()); - } - - private function handleScalarNode(ScalarNode $node, ClassBuilder $class): void - { - $comment = $this->getComment($node); - $property = $class->addProperty($node->getName()); - $class->addUse(ParamConfigurator::class); - - $body = ' -/** -COMMENT * @return $this - */ -public function NAME($value): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - - $class->addMethod($node->getName(), $body, ['PROPERTY' => $property->getName(), 'COMMENT' => $comment]); - } - - private function getParameterTypes(NodeInterface $node): array - { - $paramTypes = []; - if ($node instanceof BaseNode) { - $types = $node->getNormalizedTypes(); - if (\in_array(ExprBuilder::TYPE_ANY, $types, true)) { - $paramTypes[] = 'mixed'; - } - if (\in_array(ExprBuilder::TYPE_STRING, $types, true)) { - $paramTypes[] = 'string'; - } - } - if ($node instanceof BooleanNode) { - $paramTypes[] = 'bool'; - } elseif ($node instanceof IntegerNode) { - $paramTypes[] = 'int'; - } elseif ($node instanceof FloatNode) { - $paramTypes[] = 'float'; - } elseif ($node instanceof EnumNode) { - $paramTypes[] = 'mixed'; - } elseif ($node instanceof ArrayNode) { - $paramTypes[] = 'array'; - } elseif ($node instanceof VariableNode) { - $paramTypes[] = 'mixed'; - } - - return array_unique($paramTypes); - } - - private function getComment(BaseNode $node): string - { - $comment = ''; - if ('' !== $info = (string) $node->getInfo()) { - $comment .= $info."\n"; - } - - if (!$node instanceof ArrayNode) { - foreach ((array) ($node->getExample() ?? []) as $example) { - $comment .= '@example '.$example."\n"; - } - - if ('' !== $default = $node->getDefaultValue()) { - $comment .= '@default '.(null === $default ? 'null' : var_export($default, true))."\n"; - } - - if ($node instanceof EnumNode) { - $comment .= sprintf('@param ParamConfigurator|%s $value', implode('|', array_unique(array_map(fn ($a) => !$a instanceof \UnitEnum ? var_export($a, true) : '\\'.ltrim(var_export($a, true), '\\'), $node->getValues()))))."\n"; - } else { - $parameterTypes = $this->getParameterTypes($node); - $comment .= '@param ParamConfigurator|'.implode('|', $parameterTypes).' $value'."\n"; - } - } else { - foreach ((array) ($node->getExample() ?? []) as $example) { - $comment .= '@example '.json_encode($example)."\n"; - } - - if ($node->hasDefaultValue() && [] != $default = $node->getDefaultValue()) { - $comment .= '@default '.json_encode($default)."\n"; - } - } - - if ($node->isDeprecated()) { - $comment .= '@deprecated '.$node->getDeprecation($node->getName(), $node->getParent()->getName())['message']."\n"; - } - - return $comment ? ' * '.str_replace("\n", "\n * ", rtrim($comment, "\n"))."\n" : ''; - } - - /** - * Pick a good singular name. - */ - private function getSingularName(PrototypedArrayNode $node): string - { - $name = $node->getName(); - if (!str_ends_with($name, 's')) { - return $name; - } - - $parent = $node->getParent(); - $mappings = $parent instanceof ArrayNode ? $parent->getXmlRemappings() : []; - foreach ($mappings as $map) { - if ($map[1] === $name) { - $name = $map[0]; - break; - } - } - - return $name; - } - - private function buildToArray(ClassBuilder $class): void - { - $body = '$output = [];'; - foreach ($class->getProperties() as $p) { - $code = '$this->PROPERTY'; - if (null !== $p->getType()) { - if ($p->isArray()) { - $code = $p->areScalarsAllowed() - ? 'array_map(fn ($v) => $v instanceof CLASS ? $v->toArray() : $v, $this->PROPERTY)' - : 'array_map(fn ($v) => $v->toArray(), $this->PROPERTY)' - ; - } else { - $code = $p->areScalarsAllowed() - ? '$this->PROPERTY instanceof CLASS ? $this->PROPERTY->toArray() : $this->PROPERTY' - : '$this->PROPERTY->toArray()' - ; - } - } - - $body .= strtr(' - if (isset($this->_usedProperties[\'PROPERTY\'])) { - $output[\'ORG_NAME\'] = '.$code.'; - }', ['PROPERTY' => $p->getName(), 'ORG_NAME' => $p->getOriginalName(), 'CLASS' => $p->getType()]); - } - - $extraKeys = $class->shouldAllowExtraKeys() ? ' + $this->_extraKeys' : ''; - - $class->addMethod('toArray', ' -public function NAME(): array -{ - '.$body.' - - return $output'.$extraKeys.'; -}'); - } - - private function buildConstructor(ClassBuilder $class): void - { - $body = ''; - foreach ($class->getProperties() as $p) { - $code = '$value[\'ORG_NAME\']'; - if (null !== $p->getType()) { - if ($p->isArray()) { - $code = $p->areScalarsAllowed() - ? 'array_map(fn ($v) => \is_array($v) ? new '.$p->getType().'($v) : $v, $value[\'ORG_NAME\'])' - : 'array_map(fn ($v) => new '.$p->getType().'($v), $value[\'ORG_NAME\'])' - ; - } else { - $code = $p->areScalarsAllowed() - ? '\is_array($value[\'ORG_NAME\']) ? new '.$p->getType().'($value[\'ORG_NAME\']) : $value[\'ORG_NAME\']' - : 'new '.$p->getType().'($value[\'ORG_NAME\'])' - ; - } - } - - $body .= strtr(' - if (array_key_exists(\'ORG_NAME\', $value)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = '.$code.'; - unset($value[\'ORG_NAME\']); - } -', ['PROPERTY' => $p->getName(), 'ORG_NAME' => $p->getOriginalName()]); - } - - if ($class->shouldAllowExtraKeys()) { - $body .= ' - $this->_extraKeys = $value; -'; - } else { - $body .= ' - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf(\'The following keys are not supported by "%s": \', __CLASS__).implode(\', \', array_keys($value))); - }'; - - $class->addUse(InvalidConfigurationException::class); - } - - $class->addMethod('__construct', ' -public function __construct(array $value = []) -{'.$body.' -}'); - } - - private function buildSetExtraKey(ClassBuilder $class): void - { - if (!$class->shouldAllowExtraKeys()) { - return; - } - - $class->addUse(ParamConfigurator::class); - - $class->addProperty('_extraKeys'); - - $class->addMethod('set', ' -/** - * @param ParamConfigurator|mixed $value - * - * @return $this - */ -public function NAME(string $key, mixed $value): static -{ - $this->_extraKeys[$key] = $value; - - return $this; -}'); - } - - private function getSubNamespace(ClassBuilder $rootClass): string - { - return sprintf('%s\\%s', $rootClass->getNamespace(), substr($rootClass->getName(), 0, -6)); - } - - private function hasNormalizationClosures(NodeInterface $node): bool - { - try { - $r = new \ReflectionProperty($node, 'normalizationClosures'); - } catch (\ReflectionException) { - return false; - } - - return [] !== $r->getValue($node); - } - - private function getType(string $classType, bool $hasNormalizationClosures): string - { - return $classType.($hasNormalizationClosures ? '|scalar' : ''); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php b/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php deleted file mode 100644 index c52c9e5..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -use Symfony\Component\Config\Definition\ConfigurationInterface; - -/** - * Generates ConfigBuilders to help create valid config. - * - * @author Tobias Nyholm - */ -interface ConfigBuilderGeneratorInterface -{ - /** - * @return \Closure that will return the root config class - */ - public function build(ConfigurationInterface $configuration): \Closure; -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderInterface.php b/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderInterface.php deleted file mode 100644 index fd3129c..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/ConfigBuilderInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -/** - * A ConfigBuilder provides helper methods to build a large complex array. - * - * @author Tobias Nyholm - */ -interface ConfigBuilderInterface -{ - /** - * Gets all configuration represented as an array. - */ - public function toArray(): array; - - /** - * Gets the alias for the extension which config we are building. - */ - public function getExtensionAlias(): string; -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/Method.php b/projects/priceservice/vendor/symfony/config/Builder/Method.php deleted file mode 100644 index c97c986..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/Method.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -/** - * Represents a method when building classes. - * - * @internal - * - * @author Tobias Nyholm - */ -class Method -{ - private string $content; - - public function __construct(string $content) - { - $this->content = $content; - } - - public function getContent(): string - { - return $this->content; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Builder/Property.php b/projects/priceservice/vendor/symfony/config/Builder/Property.php deleted file mode 100644 index cf2f8d5..0000000 --- a/projects/priceservice/vendor/symfony/config/Builder/Property.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Builder; - -/** - * Represents a property when building classes. - * - * @internal - * - * @author Tobias Nyholm - */ -class Property -{ - private string $name; - private string $originalName; - private bool $array = false; - private bool $scalarsAllowed = false; - private ?string $type = null; - private ?string $content = null; - - public function __construct(string $originalName, string $name) - { - $this->name = $name; - $this->originalName = $originalName; - } - - public function getName(): string - { - return $this->name; - } - - public function getOriginalName(): string - { - return $this->originalName; - } - - public function setType(string $type): void - { - $this->array = false; - $this->type = $type; - - if (str_ends_with($type, '|scalar')) { - $this->scalarsAllowed = true; - $this->type = $type = substr($type, 0, -7); - } - - if (str_ends_with($type, '[]')) { - $this->array = true; - $this->type = substr($type, 0, -2); - } - } - - public function getType(): ?string - { - return $this->type; - } - - public function getContent(): ?string - { - return $this->content; - } - - public function setContent(string $content): void - { - $this->content = $content; - } - - public function isArray(): bool - { - return $this->array; - } - - public function areScalarsAllowed(): bool - { - return $this->scalarsAllowed; - } -} diff --git a/projects/priceservice/vendor/symfony/config/CHANGELOG.md b/projects/priceservice/vendor/symfony/config/CHANGELOG.md deleted file mode 100644 index 094d5ab..0000000 --- a/projects/priceservice/vendor/symfony/config/CHANGELOG.md +++ /dev/null @@ -1,153 +0,0 @@ -CHANGELOG -========= - -6.3 ---- - - * Allow enum values in `EnumNode` - -6.2 ---- - - * Deprecate calling `NodeBuilder::setParent()` without any arguments - * Add a more accurate typehint in generated PHP config - -6.1 ---- - - * Allow using environment variables in `EnumNode` - * Add Node's information in generated Config - * Add `DefinitionFileLoader` class to load a TreeBuilder definition from an external file - * Add `DefinitionConfigurator` helper - -6.0 ---- - - * Remove `BaseNode::getDeprecationMessage()` - -5.3.0 ------ - - * Add support for generating `ConfigBuilder` for extensions - -5.1.0 ------ - - * updated the signature of method `NodeDefinition::setDeprecated()` to `NodeDefinition::setDeprecation(string $package, string $version, string $message)` - * updated the signature of method `BaseNode::setDeprecated()` to `BaseNode::setDeprecation(string $package, string $version, string $message)` - * deprecated passing a null message to `BaseNode::setDeprecated()` to un-deprecate a node - * deprecated `BaseNode::getDeprecationMessage()`, use `BaseNode::getDeprecation()` instead - -5.0.0 ------ - - * Dropped support for constructing a `TreeBuilder` without passing root node information. - * Removed the `root()` method in `TreeBuilder`, pass the root node information to the constructor instead - * Added method `getChildNodeDefinitions()` to ParentNodeDefinitionInterface - * Removed `FileLoaderLoadException`, use `LoaderLoadException` instead - -4.4.0 ------ - - * added a way to exclude patterns of resources from being imported by the `import()` method - -4.3.0 ------ - - * deprecated using environment variables with `cannotBeEmpty()` if the value is validated with `validate()` - * made `Resource\*` classes final and not implement `Serializable` anymore - * deprecated the `root()` method in `TreeBuilder`, pass the root node information to the constructor instead - -4.2.0 ------ - - * deprecated constructing a `TreeBuilder` without passing root node information - * renamed `FileLoaderLoadException` to `LoaderLoadException` - -4.1.0 ------ - - * added `setPathSeparator` method to `NodeBuilder` class - * added third `$pathSeparator` constructor argument to `BaseNode` - * the `Processor` class has been made final - -4.0.0 ------ - - * removed `ConfigCachePass` - -3.4.0 ------ - - * added `setDeprecated()` method to indicate a deprecated node - * added `XmlUtils::parse()` method to parse an XML string - * deprecated `ConfigCachePass` - -3.3.0 ------ - - * added `ReflectionClassResource` class - * added second `$exists` constructor argument to `ClassExistenceResource` - * made `ClassExistenceResource` work with interfaces and traits - * added `ConfigCachePass` (originally in FrameworkBundle) - * added `castToArray()` helper to turn any config value into an array - -3.0.0 ------ - - * removed `ReferenceDumper` class - * removed the `ResourceInterface::isFresh()` method - * removed `BCResourceInterfaceChecker` class - * removed `ResourceInterface::getResource()` method - -2.8.0 ------ - -The edge case of defining just one value for nodes of type Enum is now allowed: - -```php -$rootNode - ->children() - ->enumNode('variable') - ->values(['value']) - ->end() - ->end() -; -``` - -Before: `InvalidArgumentException` (variable must contain at least two -distinct elements). -After: the code will work as expected and it will restrict the values of the -`variable` option to just `value`. - - * deprecated the `ResourceInterface::isFresh()` method. If you implement custom resource types and they - can be validated that way, make them implement the new `SelfCheckingResourceInterface`. - * deprecated the getResource() method in ResourceInterface. You can still call this method - on concrete classes implementing the interface, but it does not make sense at the interface - level as you need to know about the particular type of resource at hand to understand the - semantics of the returned value. - -2.7.0 ------ - - * added `ConfigCacheInterface`, `ConfigCacheFactoryInterface` and a basic `ConfigCacheFactory` - implementation to delegate creation of ConfigCache instances - -2.2.0 ------ - - * added `ArrayNodeDefinition::canBeEnabled()` and `ArrayNodeDefinition::canBeDisabled()` - to ease configuration when some sections are respectively disabled / enabled - by default. - * added a `normalizeKeys()` method for array nodes (to avoid key normalization) - * added numerical type handling for config definitions - * added convenience methods for optional configuration sections to `ArrayNodeDefinition` - * added a utils class for XML manipulations - -2.1.0 ------ - - * added a way to add documentation on configuration - * implemented `Serializable` on resources - * `LoaderResolverInterface` is now used instead of `LoaderResolver` for type - hinting diff --git a/projects/priceservice/vendor/symfony/config/ConfigCache.php b/projects/priceservice/vendor/symfony/config/ConfigCache.php deleted file mode 100644 index 8951941..0000000 --- a/projects/priceservice/vendor/symfony/config/ConfigCache.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\SelfCheckingResourceChecker; - -/** - * ConfigCache caches arbitrary content in files on disk. - * - * When in debug mode, those metadata resources that implement - * \Symfony\Component\Config\Resource\SelfCheckingResourceInterface will - * be used to check cache freshness. - * - * @author Fabien Potencier - * @author Matthias Pigulla - */ -class ConfigCache extends ResourceCheckerConfigCache -{ - private bool $debug; - - /** - * @param string $file The absolute cache path - * @param bool $debug Whether debugging is enabled or not - */ - public function __construct(string $file, bool $debug) - { - $this->debug = $debug; - - $checkers = []; - if (true === $this->debug) { - $checkers = [new SelfCheckingResourceChecker()]; - } - - parent::__construct($file, $checkers); - } - - /** - * Checks if the cache is still fresh. - * - * This implementation always returns true when debug is off and the - * cache file exists. - */ - public function isFresh(): bool - { - if (!$this->debug && is_file($this->getPath())) { - return true; - } - - return parent::isFresh(); - } -} diff --git a/projects/priceservice/vendor/symfony/config/ConfigCacheFactory.php b/projects/priceservice/vendor/symfony/config/ConfigCacheFactory.php deleted file mode 100644 index 39adad1..0000000 --- a/projects/priceservice/vendor/symfony/config/ConfigCacheFactory.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * Basic implementation of ConfigCacheFactoryInterface that - * creates an instance of the default ConfigCache. - * - * This factory and/or cache do not support cache validation - * by means of ResourceChecker instances (that is, service-based). - * - * @author Matthias Pigulla - */ -class ConfigCacheFactory implements ConfigCacheFactoryInterface -{ - private bool $debug; - - /** - * @param bool $debug The debug flag to pass to ConfigCache - */ - public function __construct(bool $debug) - { - $this->debug = $debug; - } - - public function cache(string $file, callable $callback): ConfigCacheInterface - { - $cache = new ConfigCache($file, $this->debug); - if (!$cache->isFresh()) { - $callback($cache); - } - - return $cache; - } -} diff --git a/projects/priceservice/vendor/symfony/config/ConfigCacheFactoryInterface.php b/projects/priceservice/vendor/symfony/config/ConfigCacheFactoryInterface.php deleted file mode 100644 index 01c90d1..0000000 --- a/projects/priceservice/vendor/symfony/config/ConfigCacheFactoryInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * Interface for a ConfigCache factory. This factory creates - * an instance of ConfigCacheInterface and initializes the - * cache if necessary. - * - * @author Matthias Pigulla - */ -interface ConfigCacheFactoryInterface -{ - /** - * Creates a cache instance and (re-)initializes it if necessary. - * - * @param string $file The absolute cache file path - * @param callable $callable The callable to be executed when the cache needs to be filled (i. e. is not fresh). The cache will be passed as the only parameter to this callback - */ - public function cache(string $file, callable $callable): ConfigCacheInterface; -} diff --git a/projects/priceservice/vendor/symfony/config/ConfigCacheInterface.php b/projects/priceservice/vendor/symfony/config/ConfigCacheInterface.php deleted file mode 100644 index f8d2706..0000000 --- a/projects/priceservice/vendor/symfony/config/ConfigCacheInterface.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Interface for ConfigCache. - * - * @author Matthias Pigulla - */ -interface ConfigCacheInterface -{ - /** - * Gets the cache file path. - */ - public function getPath(): string; - - /** - * Checks if the cache is still fresh. - * - * This check should take the metadata passed to the write() method into consideration. - */ - public function isFresh(): bool; - - /** - * Writes the given content into the cache file. Metadata will be stored - * independently and can be used to check cache freshness at a later time. - * - * @param string $content The content to write into the cache - * @param ResourceInterface[]|null $metadata An array of ResourceInterface instances - * - * @return void - * - * @throws \RuntimeException When the cache file cannot be written - */ - public function write(string $content, ?array $metadata = null); -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/ArrayNode.php b/projects/priceservice/vendor/symfony/config/Definition/ArrayNode.php deleted file mode 100644 index 1448220..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/ArrayNode.php +++ /dev/null @@ -1,402 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * Represents an Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class ArrayNode extends BaseNode implements PrototypeNodeInterface -{ - protected $xmlRemappings = []; - protected $children = []; - protected $allowFalse = false; - protected $allowNewKeys = true; - protected $addIfNotSet = false; - protected $performDeepMerging = true; - protected $ignoreExtraKeys = false; - protected $removeExtraKeys = true; - protected $normalizeKeys = true; - - /** - * @return void - */ - public function setNormalizeKeys(bool $normalizeKeys) - { - $this->normalizeKeys = $normalizeKeys; - } - - /** - * Namely, you mostly have foo_bar in YAML while you have foo-bar in XML. - * After running this method, all keys are normalized to foo_bar. - * - * If you have a mixed key like foo-bar_moo, it will not be altered. - * The key will also not be altered if the target key already exists. - */ - protected function preNormalize(mixed $value): mixed - { - if (!$this->normalizeKeys || !\is_array($value)) { - return $value; - } - - $normalized = []; - - foreach ($value as $k => $v) { - if (str_contains($k, '-') && !str_contains($k, '_') && !\array_key_exists($normalizedKey = str_replace('-', '_', $k), $value)) { - $normalized[$normalizedKey] = $v; - } else { - $normalized[$k] = $v; - } - } - - return $normalized; - } - - /** - * Retrieves the children of this node. - * - * @return array - */ - public function getChildren(): array - { - return $this->children; - } - - /** - * Sets the xml remappings that should be performed. - * - * @param array $remappings An array of the form [[string, string]] - * - * @return void - */ - public function setXmlRemappings(array $remappings) - { - $this->xmlRemappings = $remappings; - } - - /** - * Gets the xml remappings that should be performed. - * - * @return array an array of the form [[string, string]] - */ - public function getXmlRemappings(): array - { - return $this->xmlRemappings; - } - - /** - * Sets whether to add default values for this array if it has not been - * defined in any of the configuration files. - * - * @return void - */ - public function setAddIfNotSet(bool $boolean) - { - $this->addIfNotSet = $boolean; - } - - /** - * Sets whether false is allowed as value indicating that the array should be unset. - * - * @return void - */ - public function setAllowFalse(bool $allow) - { - $this->allowFalse = $allow; - } - - /** - * Sets whether new keys can be defined in subsequent configurations. - * - * @return void - */ - public function setAllowNewKeys(bool $allow) - { - $this->allowNewKeys = $allow; - } - - /** - * Sets if deep merging should occur. - * - * @return void - */ - public function setPerformDeepMerging(bool $boolean) - { - $this->performDeepMerging = $boolean; - } - - /** - * Whether extra keys should just be ignored without an exception. - * - * @param bool $boolean To allow extra keys - * @param bool $remove To remove extra keys - * - * @return void - */ - public function setIgnoreExtraKeys(bool $boolean, bool $remove = true) - { - $this->ignoreExtraKeys = $boolean; - $this->removeExtraKeys = $this->ignoreExtraKeys && $remove; - } - - /** - * Returns true when extra keys should be ignored without an exception. - */ - public function shouldIgnoreExtraKeys(): bool - { - return $this->ignoreExtraKeys; - } - - /** - * @return void - */ - public function setName(string $name) - { - $this->name = $name; - } - - public function hasDefaultValue(): bool - { - return $this->addIfNotSet; - } - - public function getDefaultValue(): mixed - { - if (!$this->hasDefaultValue()) { - throw new \RuntimeException(sprintf('The node at path "%s" has no default value.', $this->getPath())); - } - - $defaults = []; - foreach ($this->children as $name => $child) { - if ($child->hasDefaultValue()) { - $defaults[$name] = $child->getDefaultValue(); - } - } - - return $defaults; - } - - /** - * Adds a child node. - * - * @return void - * - * @throws \InvalidArgumentException when the child node has no name - * @throws \InvalidArgumentException when the child node's name is not unique - */ - public function addChild(NodeInterface $node) - { - $name = $node->getName(); - if ('' === $name) { - throw new \InvalidArgumentException('Child nodes must be named.'); - } - if (isset($this->children[$name])) { - throw new \InvalidArgumentException(sprintf('A child node named "%s" already exists.', $name)); - } - - $this->children[$name] = $node; - } - - /** - * @throws UnsetKeyException - * @throws InvalidConfigurationException if the node doesn't have enough children - */ - protected function finalizeValue(mixed $value): mixed - { - if (false === $value) { - throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value))); - } - - foreach ($this->children as $name => $child) { - if (!\array_key_exists($name, $value)) { - if ($child->isRequired()) { - $message = sprintf('The child config "%s" under "%s" must be configured', $name, $this->getPath()); - if ($child->getInfo()) { - $message .= sprintf(': %s', $child->getInfo()); - } else { - $message .= '.'; - } - $ex = new InvalidConfigurationException($message); - $ex->setPath($this->getPath()); - - throw $ex; - } - - if ($child->hasDefaultValue()) { - $value[$name] = $child->getDefaultValue(); - } - - continue; - } - - if ($child->isDeprecated()) { - $deprecation = $child->getDeprecation($name, $this->getPath()); - trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - - try { - $value[$name] = $child->finalize($value[$name]); - } catch (UnsetKeyException) { - unset($value[$name]); - } - } - - return $value; - } - - /** - * @return void - */ - protected function validateType(mixed $value) - { - if (!\is_array($value) && (!$this->allowFalse || false !== $value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "array", but got "%s"', $this->getPath(), get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * @throws InvalidConfigurationException - */ - protected function normalizeValue(mixed $value): mixed - { - if (false === $value) { - return $value; - } - - $value = $this->remapXml($value); - - $normalized = []; - foreach ($value as $name => $val) { - if (isset($this->children[$name])) { - try { - $normalized[$name] = $this->children[$name]->normalize($val); - } catch (UnsetKeyException) { - } - unset($value[$name]); - } elseif (!$this->removeExtraKeys) { - $normalized[$name] = $val; - } - } - - // if extra fields are present, throw exception - if (\count($value) && !$this->ignoreExtraKeys) { - $proposals = array_keys($this->children); - sort($proposals); - $guesses = []; - - foreach (array_keys($value) as $subject) { - $minScore = \INF; - foreach ($proposals as $proposal) { - $distance = levenshtein($subject, $proposal); - if ($distance <= $minScore && $distance < 3) { - $guesses[$proposal] = $distance; - $minScore = $distance; - } - } - } - - $msg = sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath()); - - if (\count($guesses)) { - asort($guesses); - $msg .= sprintf('. Did you mean "%s"?', implode('", "', array_keys($guesses))); - } else { - $msg .= sprintf('. Available option%s %s "%s".', 1 === \count($proposals) ? '' : 's', 1 === \count($proposals) ? 'is' : 'are', implode('", "', $proposals)); - } - - $ex = new InvalidConfigurationException($msg); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $normalized; - } - - /** - * Remaps multiple singular values to a single plural value. - */ - protected function remapXml(array $value): array - { - foreach ($this->xmlRemappings as [$singular, $plural]) { - if (!isset($value[$singular])) { - continue; - } - - $value[$plural] = Processor::normalizeConfig($value, $singular, $plural); - unset($value[$singular]); - } - - return $value; - } - - /** - * @throws InvalidConfigurationException - * @throws \RuntimeException - */ - protected function mergeValues(mixed $leftSide, mixed $rightSide): mixed - { - if (false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return false; - } - - if (false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - - foreach ($rightSide as $k => $v) { - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - - $leftSide[$k] = $v; - continue; - } - - if (!isset($this->children[$k])) { - if (!$this->ignoreExtraKeys || $this->removeExtraKeys) { - throw new \RuntimeException('merge() expects a normalized config array.'); - } - - $leftSide[$k] = $v; - continue; - } - - $leftSide[$k] = $this->children[$k]->merge($leftSide[$k], $v); - } - - return $leftSide; - } - - protected function allowPlaceholders(): bool - { - return false; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/BaseNode.php b/projects/priceservice/vendor/symfony/config/Definition/BaseNode.php deleted file mode 100644 index 6e2a192..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/BaseNode.php +++ /dev/null @@ -1,542 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\Exception; -use Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * The base node class. - * - * @author Johannes M. Schmitt - */ -abstract class BaseNode implements NodeInterface -{ - public const DEFAULT_PATH_SEPARATOR = '.'; - - private static array $placeholderUniquePrefixes = []; - private static array $placeholders = []; - - protected $name; - protected $parent; - protected $normalizationClosures = []; - protected $normalizedTypes = []; - protected $finalValidationClosures = []; - protected $allowOverwrite = true; - protected $required = false; - protected $deprecation = []; - protected $equivalentValues = []; - protected $attributes = []; - protected $pathSeparator; - - private mixed $handlingPlaceholder = null; - - /** - * @throws \InvalidArgumentException if the name contains a period - */ - public function __construct(?string $name, ?NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR) - { - if (str_contains($name = (string) $name, $pathSeparator)) { - throw new \InvalidArgumentException('The name must not contain ".'.$pathSeparator.'".'); - } - - $this->name = $name; - $this->parent = $parent; - $this->pathSeparator = $pathSeparator; - } - - /** - * Register possible (dummy) values for a dynamic placeholder value. - * - * Matching configuration values will be processed with a provided value, one by one. After a provided value is - * successfully processed the configuration value is returned as is, thus preserving the placeholder. - * - * @internal - */ - public static function setPlaceholder(string $placeholder, array $values): void - { - if (!$values) { - throw new \InvalidArgumentException('At least one value must be provided.'); - } - - self::$placeholders[$placeholder] = $values; - } - - /** - * Adds a common prefix for dynamic placeholder values. - * - * Matching configuration values will be skipped from being processed and are returned as is, thus preserving the - * placeholder. An exact match provided by {@see setPlaceholder()} might take precedence. - * - * @internal - */ - public static function setPlaceholderUniquePrefix(string $prefix): void - { - self::$placeholderUniquePrefixes[] = $prefix; - } - - /** - * Resets all current placeholders available. - * - * @internal - */ - public static function resetPlaceholders(): void - { - self::$placeholderUniquePrefixes = []; - self::$placeholders = []; - } - - /** - * @return void - */ - public function setAttribute(string $key, mixed $value) - { - $this->attributes[$key] = $value; - } - - public function getAttribute(string $key, mixed $default = null): mixed - { - return $this->attributes[$key] ?? $default; - } - - public function hasAttribute(string $key): bool - { - return isset($this->attributes[$key]); - } - - public function getAttributes(): array - { - return $this->attributes; - } - - /** - * @return void - */ - public function setAttributes(array $attributes) - { - $this->attributes = $attributes; - } - - /** - * @return void - */ - public function removeAttribute(string $key) - { - unset($this->attributes[$key]); - } - - /** - * Sets an info message. - * - * @return void - */ - public function setInfo(string $info) - { - $this->setAttribute('info', $info); - } - - /** - * Returns info message. - */ - public function getInfo(): ?string - { - return $this->getAttribute('info'); - } - - /** - * Sets the example configuration for this node. - * - * @return void - */ - public function setExample(string|array $example) - { - $this->setAttribute('example', $example); - } - - /** - * Retrieves the example configuration for this node. - */ - public function getExample(): string|array|null - { - return $this->getAttribute('example'); - } - - /** - * Adds an equivalent value. - * - * @return void - */ - public function addEquivalentValue(mixed $originalValue, mixed $equivalentValue) - { - $this->equivalentValues[] = [$originalValue, $equivalentValue]; - } - - /** - * Set this node as required. - * - * @return void - */ - public function setRequired(bool $boolean) - { - $this->required = $boolean; - } - - /** - * Sets this node as deprecated. - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message the deprecation message to use - * - * @return void - */ - public function setDeprecated(string $package, string $version, string $message = 'The child node "%node%" at path "%path%" is deprecated.') - { - $this->deprecation = [ - 'package' => $package, - 'version' => $version, - 'message' => $message, - ]; - } - - /** - * Sets if this node can be overridden. - * - * @return void - */ - public function setAllowOverwrite(bool $allow) - { - $this->allowOverwrite = $allow; - } - - /** - * Sets the closures used for normalization. - * - * @param \Closure[] $closures An array of Closures used for normalization - * - * @return void - */ - public function setNormalizationClosures(array $closures) - { - $this->normalizationClosures = $closures; - } - - /** - * Sets the list of types supported by normalization. - * - * see ExprBuilder::TYPE_* constants. - * - * @return void - */ - public function setNormalizedTypes(array $types) - { - $this->normalizedTypes = $types; - } - - /** - * Gets the list of types supported by normalization. - * - * see ExprBuilder::TYPE_* constants. - */ - public function getNormalizedTypes(): array - { - return $this->normalizedTypes; - } - - /** - * Sets the closures used for final validation. - * - * @param \Closure[] $closures An array of Closures used for final validation - * - * @return void - */ - public function setFinalValidationClosures(array $closures) - { - $this->finalValidationClosures = $closures; - } - - public function isRequired(): bool - { - return $this->required; - } - - /** - * Checks if this node is deprecated. - */ - public function isDeprecated(): bool - { - return (bool) $this->deprecation; - } - - /** - * @param string $node The configuration node name - * @param string $path The path of the node - */ - public function getDeprecation(string $node, string $path): array - { - return [ - 'package' => $this->deprecation['package'], - 'version' => $this->deprecation['version'], - 'message' => strtr($this->deprecation['message'], ['%node%' => $node, '%path%' => $path]), - ]; - } - - public function getName(): string - { - return $this->name; - } - - public function getPath(): string - { - if (null !== $this->parent) { - return $this->parent->getPath().$this->pathSeparator.$this->name; - } - - return $this->name; - } - - final public function merge(mixed $leftSide, mixed $rightSide): mixed - { - if (!$this->allowOverwrite) { - throw new ForbiddenOverwriteException(sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath())); - } - - if ($leftSide !== $leftPlaceholders = self::resolvePlaceholderValue($leftSide)) { - foreach ($leftPlaceholders as $leftPlaceholder) { - $this->handlingPlaceholder = $leftSide; - try { - $this->merge($leftPlaceholder, $rightSide); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $rightSide; - } - - if ($rightSide !== $rightPlaceholders = self::resolvePlaceholderValue($rightSide)) { - foreach ($rightPlaceholders as $rightPlaceholder) { - $this->handlingPlaceholder = $rightSide; - try { - $this->merge($leftSide, $rightPlaceholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $rightSide; - } - - $this->doValidateType($leftSide); - $this->doValidateType($rightSide); - - return $this->mergeValues($leftSide, $rightSide); - } - - final public function normalize(mixed $value): mixed - { - $value = $this->preNormalize($value); - - // run custom normalization closures - foreach ($this->normalizationClosures as $closure) { - $value = $closure($value); - } - - // resolve placeholder value - if ($value !== $placeholders = self::resolvePlaceholderValue($value)) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->normalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $value; - } - - // replace value with their equivalent - foreach ($this->equivalentValues as $data) { - if ($data[0] === $value) { - $value = $data[1]; - } - } - - // validate type - $this->doValidateType($value); - - // normalize value - return $this->normalizeValue($value); - } - - /** - * Normalizes the value before any other normalization is applied. - */ - protected function preNormalize(mixed $value): mixed - { - return $value; - } - - /** - * Returns parent node for this node. - */ - public function getParent(): ?NodeInterface - { - return $this->parent; - } - - final public function finalize(mixed $value): mixed - { - if ($value !== $placeholders = self::resolvePlaceholderValue($value)) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->finalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $value; - } - - $this->doValidateType($value); - - $value = $this->finalizeValue($value); - - // Perform validation on the final value if a closure has been set. - // The closure is also allowed to return another value. - foreach ($this->finalValidationClosures as $closure) { - try { - $value = $closure($value); - } catch (Exception $e) { - if ($e instanceof UnsetKeyException && null !== $this->handlingPlaceholder) { - continue; - } - - throw $e; - } catch (\Exception $e) { - throw new InvalidConfigurationException(sprintf('Invalid configuration for path "%s": ', $this->getPath()).$e->getMessage(), $e->getCode(), $e); - } - } - - return $value; - } - - /** - * Validates the type of a Node. - * - * @return void - * - * @throws InvalidTypeException when the value is invalid - */ - abstract protected function validateType(mixed $value); - - /** - * Normalizes the value. - */ - abstract protected function normalizeValue(mixed $value): mixed; - - /** - * Merges two values together. - */ - abstract protected function mergeValues(mixed $leftSide, mixed $rightSide): mixed; - - /** - * Finalizes a value. - */ - abstract protected function finalizeValue(mixed $value): mixed; - - /** - * Tests if placeholder values are allowed for this node. - */ - protected function allowPlaceholders(): bool - { - return true; - } - - /** - * Tests if a placeholder is being handled currently. - */ - protected function isHandlingPlaceholder(): bool - { - return null !== $this->handlingPlaceholder; - } - - /** - * Gets allowed dynamic types for this node. - */ - protected function getValidPlaceholderTypes(): array - { - return []; - } - - private static function resolvePlaceholderValue(mixed $value): mixed - { - if (\is_string($value)) { - if (isset(self::$placeholders[$value])) { - return self::$placeholders[$value]; - } - - foreach (self::$placeholderUniquePrefixes as $placeholderUniquePrefix) { - if (str_starts_with($value, $placeholderUniquePrefix)) { - return []; - } - } - } - - return $value; - } - - private function doValidateType(mixed $value): void - { - if (null !== $this->handlingPlaceholder && !$this->allowPlaceholders()) { - $e = new InvalidTypeException(sprintf('A dynamic value is not compatible with a "%s" node type at path "%s".', static::class, $this->getPath())); - $e->setPath($this->getPath()); - - throw $e; - } - - if (null === $this->handlingPlaceholder || null === $value) { - $this->validateType($value); - - return; - } - - $knownTypes = array_keys(self::$placeholders[$this->handlingPlaceholder]); - $validTypes = $this->getValidPlaceholderTypes(); - - if ($validTypes && array_diff($knownTypes, $validTypes)) { - $e = new InvalidTypeException(sprintf( - 'Invalid type for path "%s". Expected %s, but got %s.', - $this->getPath(), - 1 === \count($validTypes) ? '"'.reset($validTypes).'"' : 'one of "'.implode('", "', $validTypes).'"', - 1 === \count($knownTypes) ? '"'.reset($knownTypes).'"' : 'one of "'.implode('", "', $knownTypes).'"' - )); - if ($hint = $this->getInfo()) { - $e->addHint($hint); - } - $e->setPath($this->getPath()); - - throw $e; - } - - $this->validateType($value); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/BooleanNode.php b/projects/priceservice/vendor/symfony/config/Definition/BooleanNode.php deleted file mode 100644 index 7ec903c..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/BooleanNode.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a Boolean value in the config tree. - * - * @author Johannes M. Schmitt - */ -class BooleanNode extends ScalarNode -{ - /** - * @return void - */ - protected function validateType(mixed $value) - { - if (!\is_bool($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "bool", but got "%s".', $this->getPath(), get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - protected function isValueEmpty(mixed $value): bool - { - // a boolean value cannot be empty - return false; - } - - protected function getValidPlaceholderTypes(): array - { - return ['bool']; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php deleted file mode 100644 index 7a82334..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php +++ /dev/null @@ -1,516 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; - -/** - * This class provides a fluent interface for defining an array node. - * - * @author Johannes M. Schmitt - */ -class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface -{ - protected $performDeepMerging = true; - protected $ignoreExtraKeys = false; - protected $removeExtraKeys = true; - protected $children = []; - protected $prototype; - protected $atLeastOne = false; - protected $allowNewKeys = true; - protected $key; - protected $removeKeyItem; - protected $addDefaults = false; - protected $addDefaultChildren = false; - protected $nodeBuilder; - protected $normalizeKeys = true; - - public function __construct(?string $name, ?NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - - $this->nullEquivalent = []; - $this->trueEquivalent = []; - } - - /** - * @return void - */ - public function setBuilder(NodeBuilder $builder) - { - $this->nodeBuilder = $builder; - } - - public function children(): NodeBuilder - { - return $this->getNodeBuilder(); - } - - /** - * Sets a prototype for child nodes. - */ - public function prototype(string $type): NodeDefinition - { - return $this->prototype = $this->getNodeBuilder()->node(null, $type)->setParent($this); - } - - public function variablePrototype(): VariableNodeDefinition - { - return $this->prototype('variable'); - } - - public function scalarPrototype(): ScalarNodeDefinition - { - return $this->prototype('scalar'); - } - - public function booleanPrototype(): BooleanNodeDefinition - { - return $this->prototype('boolean'); - } - - public function integerPrototype(): IntegerNodeDefinition - { - return $this->prototype('integer'); - } - - public function floatPrototype(): FloatNodeDefinition - { - return $this->prototype('float'); - } - - public function arrayPrototype(): self - { - return $this->prototype('array'); - } - - public function enumPrototype(): EnumNodeDefinition - { - return $this->prototype('enum'); - } - - /** - * Adds the default value if the node is not set in the configuration. - * - * This method is applicable to concrete nodes only (not to prototype nodes). - * If this function has been called and the node is not set during the finalization - * phase, it's default value will be derived from its children default values. - * - * @return $this - */ - public function addDefaultsIfNotSet(): static - { - $this->addDefaults = true; - - return $this; - } - - /** - * Adds children with a default value when none are defined. - * - * This method is applicable to prototype nodes only. - * - * @param int|string|array|null $children The number of children|The child name|The children names to be added - * - * @return $this - */ - public function addDefaultChildrenIfNoneSet(int|string|array|null $children = null): static - { - $this->addDefaultChildren = $children; - - return $this; - } - - /** - * Requires the node to have at least one element. - * - * This method is applicable to prototype nodes only. - * - * @return $this - */ - public function requiresAtLeastOneElement(): static - { - $this->atLeastOne = true; - - return $this; - } - - /** - * Disallows adding news keys in a subsequent configuration. - * - * If used all keys have to be defined in the same configuration file. - * - * @return $this - */ - public function disallowNewKeysInSubsequentConfigs(): static - { - $this->allowNewKeys = false; - - return $this; - } - - /** - * Sets a normalization rule for XML configurations. - * - * @param string $singular The key to remap - * @param string|null $plural The plural of the key for irregular plurals - * - * @return $this - */ - public function fixXmlConfig(string $singular, ?string $plural = null): static - { - $this->normalization()->remap($singular, $plural); - - return $this; - } - - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * This method is applicable to prototype nodes only. - * - * @param string $name The name of the key - * @param bool $removeKeyItem Whether or not the key item should be removed - * - * @return $this - */ - public function useAttributeAsKey(string $name, bool $removeKeyItem = true): static - { - $this->key = $name; - $this->removeKeyItem = $removeKeyItem; - - return $this; - } - - /** - * Sets whether the node can be unset. - * - * @return $this - */ - public function canBeUnset(bool $allow = true): static - { - $this->merge()->allowUnset($allow); - - return $this; - } - - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is disabled. If any configuration is specified then - * the node will be automatically enabled: - * - * enableableArrayNode: {enabled: true, ...} # The config is enabled & default values get overridden - * enableableArrayNode: ~ # The config is enabled & use the default values - * enableableArrayNode: true # The config is enabled & use the default values - * enableableArrayNode: {other: value, ...} # The config is enabled & default values get overridden - * enableableArrayNode: {enabled: false, ...} # The config is disabled - * enableableArrayNode: false # The config is disabled - * - * @return $this - */ - public function canBeEnabled(): static - { - $this - ->addDefaultsIfNotSet() - ->treatFalseLike(['enabled' => false]) - ->treatTrueLike(['enabled' => true]) - ->treatNullLike(['enabled' => true]) - ->beforeNormalization() - ->ifArray() - ->then(function (array $v) { - $v['enabled'] ??= true; - - return $v; - }) - ->end() - ->children() - ->booleanNode('enabled') - ->defaultFalse() - ; - - return $this; - } - - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is enabled. - * - * @return $this - */ - public function canBeDisabled(): static - { - $this - ->addDefaultsIfNotSet() - ->treatFalseLike(['enabled' => false]) - ->treatTrueLike(['enabled' => true]) - ->treatNullLike(['enabled' => true]) - ->children() - ->booleanNode('enabled') - ->defaultTrue() - ; - - return $this; - } - - /** - * Disables the deep merging of the node. - * - * @return $this - */ - public function performNoDeepMerging(): static - { - $this->performDeepMerging = false; - - return $this; - } - - /** - * Allows extra config keys to be specified under an array without - * throwing an exception. - * - * Those config values are ignored and removed from the resulting - * array. This should be used only in special cases where you want - * to send an entire configuration array through a special tree that - * processes only part of the array. - * - * @param bool $remove Whether to remove the extra keys - * - * @return $this - */ - public function ignoreExtraKeys(bool $remove = true): static - { - $this->ignoreExtraKeys = true; - $this->removeExtraKeys = $remove; - - return $this; - } - - /** - * Sets whether to enable key normalization. - * - * @return $this - */ - public function normalizeKeys(bool $bool): static - { - $this->normalizeKeys = $bool; - - return $this; - } - - public function append(NodeDefinition $node): static - { - $this->children[$node->name] = $node->setParent($this); - - return $this; - } - - /** - * Returns a node builder to be used to add children and prototype. - */ - protected function getNodeBuilder(): NodeBuilder - { - $this->nodeBuilder ??= new NodeBuilder(); - - return $this->nodeBuilder->setParent($this); - } - - protected function createNode(): NodeInterface - { - if (!isset($this->prototype)) { - $node = new ArrayNode($this->name, $this->parent, $this->pathSeparator); - - $this->validateConcreteNode($node); - - $node->setAddIfNotSet($this->addDefaults); - - foreach ($this->children as $child) { - $child->parent = $node; - $node->addChild($child->getNode()); - } - } else { - $node = new PrototypedArrayNode($this->name, $this->parent, $this->pathSeparator); - - $this->validatePrototypeNode($node); - - if (null !== $this->key) { - $node->setKeyAttribute($this->key, $this->removeKeyItem); - } - - if (true === $this->atLeastOne || false === $this->allowEmptyValue) { - $node->setMinNumberOfElements(1); - } - - if ($this->default) { - if (!\is_array($this->defaultValue)) { - throw new \InvalidArgumentException(sprintf('%s: the default value of an array node has to be an array.', $node->getPath())); - } - - $node->setDefaultValue($this->defaultValue); - } - - if (false !== $this->addDefaultChildren) { - $node->setAddChildrenIfNoneSet($this->addDefaultChildren); - if ($this->prototype instanceof static && !isset($this->prototype->prototype)) { - $this->prototype->addDefaultsIfNotSet(); - } - } - - $this->prototype->parent = $node; - $node->setPrototype($this->prototype->getNode()); - } - - $node->setAllowNewKeys($this->allowNewKeys); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(true, $this->trueEquivalent); - $node->addEquivalentValue(false, $this->falseEquivalent); - $node->setPerformDeepMerging($this->performDeepMerging); - $node->setRequired($this->required); - $node->setIgnoreExtraKeys($this->ignoreExtraKeys, $this->removeExtraKeys); - $node->setNormalizeKeys($this->normalizeKeys); - - if ($this->deprecation) { - $node->setDeprecated($this->deprecation['package'], $this->deprecation['version'], $this->deprecation['message']); - } - - if (isset($this->normalization)) { - $node->setNormalizationClosures($this->normalization->before); - $node->setNormalizedTypes($this->normalization->declaredTypes); - $node->setXmlRemappings($this->normalization->remappings); - } - - if (isset($this->merge)) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - $node->setAllowFalse($this->merge->allowFalse); - } - - if (isset($this->validation)) { - $node->setFinalValidationClosures($this->validation->rules); - } - - return $node; - } - - /** - * Validate the configuration of a concrete node. - * - * @return void - * - * @throws InvalidDefinitionException - */ - protected function validateConcreteNode(ArrayNode $node) - { - $path = $node->getPath(); - - if (null !== $this->key) { - throw new InvalidDefinitionException(sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s".', $path)); - } - - if (false === $this->allowEmptyValue) { - throw new InvalidDefinitionException(sprintf('->cannotBeEmpty() is not applicable to concrete nodes at path "%s".', $path)); - } - - if (true === $this->atLeastOne) { - throw new InvalidDefinitionException(sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s".', $path)); - } - - if ($this->default) { - throw new InvalidDefinitionException(sprintf('->defaultValue() is not applicable to concrete nodes at path "%s".', $path)); - } - - if (false !== $this->addDefaultChildren) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s".', $path)); - } - } - - /** - * Validate the configuration of a prototype node. - * - * @return void - * - * @throws InvalidDefinitionException - */ - protected function validatePrototypeNode(PrototypedArrayNode $node) - { - $path = $node->getPath(); - - if ($this->addDefaults) { - throw new InvalidDefinitionException(sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s".', $path)); - } - - if (false !== $this->addDefaultChildren) { - if ($this->default) { - throw new InvalidDefinitionException(sprintf('A default value and default children might not be used together at path "%s".', $path)); - } - - if (null !== $this->key && (null === $this->addDefaultChildren || \is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s".', $path)); - } - - if (null === $this->key && (\is_string($this->addDefaultChildren) || \is_array($this->addDefaultChildren))) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s".', $path)); - } - } - } - - /** - * @return NodeDefinition[] - */ - public function getChildNodeDefinitions(): array - { - return $this->children; - } - - /** - * Finds a node defined by the given $nodePath. - * - * @param string $nodePath The path of the node to find. e.g "doctrine.orm.mappings" - */ - public function find(string $nodePath): NodeDefinition - { - $firstPathSegment = (false === $pathSeparatorPos = strpos($nodePath, $this->pathSeparator)) - ? $nodePath - : substr($nodePath, 0, $pathSeparatorPos); - - if (null === $node = ($this->children[$firstPathSegment] ?? null)) { - throw new \RuntimeException(sprintf('Node with name "%s" does not exist in the current node "%s".', $firstPathSegment, $this->name)); - } - - if (false === $pathSeparatorPos) { - return $node; - } - - return $node->find(substr($nodePath, $pathSeparatorPos + \strlen($this->pathSeparator))); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php deleted file mode 100644 index 15e6396..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\BooleanNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class BooleanNodeDefinition extends ScalarNodeDefinition -{ - public function __construct(?string $name, ?NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - - $this->nullEquivalent = true; - } - - /** - * Instantiate a Node. - */ - protected function instantiateNode(): BooleanNode - { - return new BooleanNode($this->name, $this->parent, $this->pathSeparator); - } - - /** - * @throws InvalidDefinitionException - */ - public function cannotBeEmpty(): static - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to BooleanNodeDefinition.'); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php deleted file mode 100644 index bb40307..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that can be implemented by nodes which build other nodes. - * - * @author Roland Franssen - */ -interface BuilderAwareInterface -{ - /** - * Sets a custom children builder. - * - * @return void - */ - public function setBuilder(NodeBuilder $builder); -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php deleted file mode 100644 index 99f3181..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\EnumNode; - -/** - * Enum Node Definition. - * - * @author Johannes M. Schmitt - */ -class EnumNodeDefinition extends ScalarNodeDefinition -{ - private array $values; - - /** - * @return $this - */ - public function values(array $values): static - { - if (!$values) { - throw new \InvalidArgumentException('->values() must be called with at least one value.'); - } - - $this->values = $values; - - return $this; - } - - /** - * Instantiate a Node. - * - * @throws \RuntimeException - */ - protected function instantiateNode(): EnumNode - { - if (!isset($this->values)) { - throw new \RuntimeException('You must call ->values() on enum nodes.'); - } - - return new EnumNode($this->name, $this->parent, $this->values, $this->pathSeparator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/ExprBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/ExprBuilder.php deleted file mode 100644 index 93cdb49..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/ExprBuilder.php +++ /dev/null @@ -1,252 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * This class builds an if expression. - * - * @author Johannes M. Schmitt - * @author Christophe Coevoet - */ -class ExprBuilder -{ - public const TYPE_ANY = 'any'; - public const TYPE_STRING = 'string'; - public const TYPE_NULL = 'null'; - public const TYPE_ARRAY = 'array'; - - protected $node; - - public $allowedTypes; - public $ifPart; - public $thenPart; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Marks the expression as being always used. - * - * @return $this - */ - public function always(?\Closure $then = null): static - { - $this->ifPart = static fn () => true; - $this->allowedTypes = self::TYPE_ANY; - - if (null !== $then) { - $this->thenPart = $then; - } - - return $this; - } - - /** - * Sets a closure to use as tests. - * - * The default one tests if the value is true. - * - * @return $this - */ - public function ifTrue(?\Closure $closure = null): static - { - $this->ifPart = $closure ?? static fn ($v) => true === $v; - $this->allowedTypes = self::TYPE_ANY; - - return $this; - } - - /** - * Tests if the value is a string. - * - * @return $this - */ - public function ifString(): static - { - $this->ifPart = \is_string(...); - $this->allowedTypes = self::TYPE_STRING; - - return $this; - } - - /** - * Tests if the value is null. - * - * @return $this - */ - public function ifNull(): static - { - $this->ifPart = \is_null(...); - $this->allowedTypes = self::TYPE_NULL; - - return $this; - } - - /** - * Tests if the value is empty. - * - * @return $this - */ - public function ifEmpty(): static - { - $this->ifPart = static fn ($v) => empty($v); - $this->allowedTypes = self::TYPE_ANY; - - return $this; - } - - /** - * Tests if the value is an array. - * - * @return $this - */ - public function ifArray(): static - { - $this->ifPart = \is_array(...); - $this->allowedTypes = self::TYPE_ARRAY; - - return $this; - } - - /** - * Tests if the value is in an array. - * - * @return $this - */ - public function ifInArray(array $array): static - { - $this->ifPart = static fn ($v) => \in_array($v, $array, true); - $this->allowedTypes = self::TYPE_ANY; - - return $this; - } - - /** - * Tests if the value is not in an array. - * - * @return $this - */ - public function ifNotInArray(array $array): static - { - $this->ifPart = static fn ($v) => !\in_array($v, $array, true); - $this->allowedTypes = self::TYPE_ANY; - - return $this; - } - - /** - * Transforms variables of any type into an array. - * - * @return $this - */ - public function castToArray(): static - { - $this->ifPart = static fn ($v) => !\is_array($v); - $this->allowedTypes = self::TYPE_ANY; - $this->thenPart = static fn ($v) => [$v]; - - return $this; - } - - /** - * Sets the closure to run if the test pass. - * - * @return $this - */ - public function then(\Closure $closure): static - { - $this->thenPart = $closure; - - return $this; - } - - /** - * Sets a closure returning an empty array. - * - * @return $this - */ - public function thenEmptyArray(): static - { - $this->thenPart = static fn () => []; - - return $this; - } - - /** - * Sets a closure marking the value as invalid at processing time. - * - * if you want to add the value of the node in your message just use a %s placeholder. - * - * @return $this - * - * @throws \InvalidArgumentException - */ - public function thenInvalid(string $message): static - { - $this->thenPart = static fn ($v) => throw new \InvalidArgumentException(sprintf($message, json_encode($v))); - - return $this; - } - - /** - * Sets a closure unsetting this key of the array at processing time. - * - * @return $this - * - * @throws UnsetKeyException - */ - public function thenUnset(): static - { - $this->thenPart = static fn () => throw new UnsetKeyException('Unsetting key.'); - - return $this; - } - - /** - * Returns the related node. - * - * @throws \RuntimeException - */ - public function end(): NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition - { - if (null === $this->ifPart) { - throw new \RuntimeException('You must specify an if part.'); - } - if (null === $this->thenPart) { - throw new \RuntimeException('You must specify a then part.'); - } - - return $this->node; - } - - /** - * Builds the expressions. - * - * @param ExprBuilder[] $expressions An array of ExprBuilder instances to build - */ - public static function buildExpressions(array $expressions): array - { - foreach ($expressions as $k => $expr) { - if ($expr instanceof self) { - $if = $expr->ifPart; - $then = $expr->thenPart; - $expressions[$k] = static fn ($v) => $if($v) ? $then($v) : $v; - } - } - - return $expressions; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php deleted file mode 100644 index 337e971..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\FloatNode; - -/** - * This class provides a fluent interface for defining a float node. - * - * @author Jeanmonod David - */ -class FloatNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - */ - protected function instantiateNode(): FloatNode - { - return new FloatNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php deleted file mode 100644 index 2af81df..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\IntegerNode; - -/** - * This class provides a fluent interface for defining an integer node. - * - * @author Jeanmonod David - */ -class IntegerNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - */ - protected function instantiateNode(): IntegerNode - { - return new IntegerNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/MergeBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/MergeBuilder.php deleted file mode 100644 index f8980a6..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/MergeBuilder.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds merge conditions. - * - * @author Johannes M. Schmitt - */ -class MergeBuilder -{ - protected $node; - public $allowFalse = false; - public $allowOverwrite = true; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Sets whether the node can be unset. - * - * @return $this - */ - public function allowUnset(bool $allow = true): static - { - $this->allowFalse = $allow; - - return $this; - } - - /** - * Sets whether the node can be overwritten. - * - * @return $this - */ - public function denyOverwrite(bool $deny = true): static - { - $this->allowOverwrite = !$deny; - - return $this; - } - - /** - * Returns the related node. - */ - public function end(): NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition - { - return $this->node; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeBuilder.php deleted file mode 100644 index 93069d4..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeBuilder.php +++ /dev/null @@ -1,204 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class provides a fluent interface for building a node. - * - * @author Johannes M. Schmitt - */ -class NodeBuilder implements NodeParentInterface -{ - protected $parent; - protected $nodeMapping; - - public function __construct() - { - $this->nodeMapping = [ - 'variable' => VariableNodeDefinition::class, - 'scalar' => ScalarNodeDefinition::class, - 'boolean' => BooleanNodeDefinition::class, - 'integer' => IntegerNodeDefinition::class, - 'float' => FloatNodeDefinition::class, - 'array' => ArrayNodeDefinition::class, - 'enum' => EnumNodeDefinition::class, - ]; - } - - /** - * Set the parent node. - * - * @return $this - */ - public function setParent(?ParentNodeDefinitionInterface $parent = null): static - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/form', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->parent = $parent; - - return $this; - } - - /** - * Creates a child array node. - */ - public function arrayNode(string $name): ArrayNodeDefinition - { - return $this->node($name, 'array'); - } - - /** - * Creates a child scalar node. - */ - public function scalarNode(string $name): ScalarNodeDefinition - { - return $this->node($name, 'scalar'); - } - - /** - * Creates a child Boolean node. - */ - public function booleanNode(string $name): BooleanNodeDefinition - { - return $this->node($name, 'boolean'); - } - - /** - * Creates a child integer node. - */ - public function integerNode(string $name): IntegerNodeDefinition - { - return $this->node($name, 'integer'); - } - - /** - * Creates a child float node. - */ - public function floatNode(string $name): FloatNodeDefinition - { - return $this->node($name, 'float'); - } - - /** - * Creates a child EnumNode. - */ - public function enumNode(string $name): EnumNodeDefinition - { - return $this->node($name, 'enum'); - } - - /** - * Creates a child variable node. - */ - public function variableNode(string $name): VariableNodeDefinition - { - return $this->node($name, 'variable'); - } - - /** - * Returns the parent node. - * - * @return NodeDefinition&ParentNodeDefinitionInterface - */ - public function end() - { - return $this->parent; - } - - /** - * Creates a child node. - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - public function node(?string $name, string $type): NodeDefinition - { - $class = $this->getNodeClass($type); - - $node = new $class($name); - - $this->append($node); - - return $node; - } - - /** - * Appends a node definition. - * - * Usage: - * - * $node = new ArrayNodeDefinition('name') - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node): static - { - if ($node instanceof BuilderAwareInterface) { - $builder = clone $this; - $builder->setParent(null); - $node->setBuilder($builder); - } - - if (null !== $this->parent) { - $this->parent->append($node); - // Make this builder the node parent to allow for a fluid interface - $node->setParent($this); - } - - return $this; - } - - /** - * Adds or overrides a node Type. - * - * @param string $type The name of the type - * @param string $class The fully qualified name the node definition class - * - * @return $this - */ - public function setNodeClass(string $type, string $class): static - { - $this->nodeMapping[strtolower($type)] = $class; - - return $this; - } - - /** - * Returns the class name of the node definition. - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - protected function getNodeClass(string $type): string - { - $type = strtolower($type); - - if (!isset($this->nodeMapping[$type])) { - throw new \RuntimeException(sprintf('The node type "%s" is not registered.', $type)); - } - - $class = $this->nodeMapping[$type]; - - if (!class_exists($class)) { - throw new \RuntimeException(sprintf('The node class "%s" does not exist.', $class)); - } - - return $class; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeDefinition.php deleted file mode 100644 index cf2173e..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeDefinition.php +++ /dev/null @@ -1,336 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use Symfony\Component\Config\Definition\NodeInterface; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -abstract class NodeDefinition implements NodeParentInterface -{ - protected $name; - protected $normalization; - protected $validation; - protected $defaultValue; - protected $default = false; - protected $required = false; - protected $deprecation = []; - protected $merge; - protected $allowEmptyValue = true; - protected $nullEquivalent; - protected $trueEquivalent = true; - protected $falseEquivalent = false; - protected $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR; - protected $parent; - protected $attributes = []; - - public function __construct(?string $name, ?NodeParentInterface $parent = null) - { - $this->parent = $parent; - $this->name = $name; - } - - /** - * Sets the parent node. - * - * @return $this - */ - public function setParent(NodeParentInterface $parent): static - { - $this->parent = $parent; - - return $this; - } - - /** - * Sets info message. - * - * @return $this - */ - public function info(string $info): static - { - return $this->attribute('info', $info); - } - - /** - * Sets example configuration. - * - * @return $this - */ - public function example(string|array $example): static - { - return $this->attribute('example', $example); - } - - /** - * Sets an attribute on the node. - * - * @return $this - */ - public function attribute(string $key, mixed $value): static - { - $this->attributes[$key] = $value; - - return $this; - } - - /** - * Returns the parent node. - */ - public function end(): NodeParentInterface|NodeBuilder|self|ArrayNodeDefinition|VariableNodeDefinition|null - { - return $this->parent; - } - - /** - * Creates the node. - */ - public function getNode(bool $forceRootNode = false): NodeInterface - { - if ($forceRootNode) { - $this->parent = null; - } - - if (isset($this->normalization)) { - $allowedTypes = []; - foreach ($this->normalization->before as $expr) { - $allowedTypes[] = $expr->allowedTypes; - } - $allowedTypes = array_unique($allowedTypes); - $this->normalization->before = ExprBuilder::buildExpressions($this->normalization->before); - $this->normalization->declaredTypes = $allowedTypes; - } - - if (isset($this->validation)) { - $this->validation->rules = ExprBuilder::buildExpressions($this->validation->rules); - } - - $node = $this->createNode(); - if ($node instanceof BaseNode) { - $node->setAttributes($this->attributes); - } - - return $node; - } - - /** - * Sets the default value. - * - * @return $this - */ - public function defaultValue(mixed $value): static - { - $this->default = true; - $this->defaultValue = $value; - - return $this; - } - - /** - * Sets the node as required. - * - * @return $this - */ - public function isRequired(): static - { - $this->required = true; - - return $this; - } - - /** - * Sets the node as deprecated. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message the deprecation message to use - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path - * - * @return $this - */ - public function setDeprecated(string $package, string $version, string $message = 'The child node "%node%" at path "%path%" is deprecated.'): static - { - $this->deprecation = [ - 'package' => $package, - 'version' => $version, - 'message' => $message, - ]; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains null. - * - * @return $this - */ - public function treatNullLike(mixed $value): static - { - $this->nullEquivalent = $value; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains true. - * - * @return $this - */ - public function treatTrueLike(mixed $value): static - { - $this->trueEquivalent = $value; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains false. - * - * @return $this - */ - public function treatFalseLike(mixed $value): static - { - $this->falseEquivalent = $value; - - return $this; - } - - /** - * Sets null as the default value. - * - * @return $this - */ - public function defaultNull(): static - { - return $this->defaultValue(null); - } - - /** - * Sets true as the default value. - * - * @return $this - */ - public function defaultTrue(): static - { - return $this->defaultValue(true); - } - - /** - * Sets false as the default value. - * - * @return $this - */ - public function defaultFalse(): static - { - return $this->defaultValue(false); - } - - /** - * Sets an expression to run before the normalization. - */ - public function beforeNormalization(): ExprBuilder - { - return $this->normalization()->before(); - } - - /** - * Denies the node value being empty. - * - * @return $this - */ - public function cannotBeEmpty(): static - { - $this->allowEmptyValue = false; - - return $this; - } - - /** - * Sets an expression to run for the validation. - * - * The expression receives the value of the node and must return it. It can - * modify it. - * An exception should be thrown when the node is not valid. - */ - public function validate(): ExprBuilder - { - return $this->validation()->rule(); - } - - /** - * Sets whether the node can be overwritten. - * - * @return $this - */ - public function cannotBeOverwritten(bool $deny = true): static - { - $this->merge()->denyOverwrite($deny); - - return $this; - } - - /** - * Gets the builder for validation rules. - */ - protected function validation(): ValidationBuilder - { - return $this->validation ??= new ValidationBuilder($this); - } - - /** - * Gets the builder for merging rules. - */ - protected function merge(): MergeBuilder - { - return $this->merge ??= new MergeBuilder($this); - } - - /** - * Gets the builder for normalization rules. - */ - protected function normalization(): NormalizationBuilder - { - return $this->normalization ??= new NormalizationBuilder($this); - } - - /** - * Instantiate and configure the node according to this definition. - * - * @throws InvalidDefinitionException When the definition is invalid - */ - abstract protected function createNode(): NodeInterface; - - /** - * Set PathSeparator to use. - * - * @return $this - */ - public function setPathSeparator(string $separator): static - { - if ($this instanceof ParentNodeDefinitionInterface) { - foreach ($this->getChildNodeDefinitions() as $child) { - $child->setPathSeparator($separator); - } - } - - $this->pathSeparator = $separator; - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeParentInterface.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeParentInterface.php deleted file mode 100644 index 305e993..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/NodeParentInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by all node parents. - * - * @author Victor Berchet - */ -interface NodeParentInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php deleted file mode 100644 index 1f6b344..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds normalization conditions. - * - * @author Johannes M. Schmitt - */ -class NormalizationBuilder -{ - protected $node; - public $before = []; - public $declaredTypes = []; - public $remappings = []; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Registers a key to remap to its plural form. - * - * @param string $key The key to remap - * @param string|null $plural The plural of the key in case of irregular plural - * - * @return $this - */ - public function remap(string $key, ?string $plural = null): static - { - $this->remappings[] = [$key, null === $plural ? $key.'s' : $plural]; - - return $this; - } - - /** - * Registers a closure to run before the normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function before(?\Closure $closure = null): ExprBuilder|static - { - if (null !== $closure) { - $this->before[] = $closure; - - return $this; - } - - return $this->before[] = new ExprBuilder($this->node); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php deleted file mode 100644 index 890910c..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; - -/** - * Abstract class that contains common code of integer and float node definitions. - * - * @author David Jeanmonod - */ -abstract class NumericNodeDefinition extends ScalarNodeDefinition -{ - protected $min; - protected $max; - - /** - * Ensures that the value is smaller than the given reference. - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - */ - public function max(int|float $max): static - { - if (isset($this->min) && $this->min > $max) { - throw new \InvalidArgumentException(sprintf('You cannot define a max(%s) as you already have a min(%s).', $max, $this->min)); - } - $this->max = $max; - - return $this; - } - - /** - * Ensures that the value is bigger than the given reference. - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - */ - public function min(int|float $min): static - { - if (isset($this->max) && $this->max < $min) { - throw new \InvalidArgumentException(sprintf('You cannot define a min(%s) as you already have a max(%s).', $min, $this->max)); - } - $this->min = $min; - - return $this; - } - - /** - * @throws InvalidDefinitionException - */ - public function cannotBeEmpty(): static - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to NumericNodeDefinition.'); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php deleted file mode 100644 index 7b8a7eb..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by nodes which can have children. - * - * @author Victor Berchet - */ -interface ParentNodeDefinitionInterface extends BuilderAwareInterface -{ - /** - * Returns a builder to add children nodes. - */ - public function children(): NodeBuilder; - - /** - * Appends a node definition. - * - * Usage: - * - * $node = $parentNode - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node): static; - - /** - * Gets the child node definitions. - * - * @return NodeDefinition[] - */ - public function getChildNodeDefinitions(): array; -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php deleted file mode 100644 index 37a0af0..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\ScalarNode; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class ScalarNodeDefinition extends VariableNodeDefinition -{ - /** - * Instantiate a Node. - */ - protected function instantiateNode(): ScalarNode - { - return new ScalarNode($this->name, $this->parent, $this->pathSeparator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/TreeBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/TreeBuilder.php deleted file mode 100644 index f7da3e7..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/TreeBuilder.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\NodeInterface; - -/** - * This is the entry class for building a config tree. - * - * @author Johannes M. Schmitt - */ -class TreeBuilder implements NodeParentInterface -{ - /** - * @var NodeInterface|null - */ - protected $tree; - - /** - * @var NodeDefinition - */ - protected $root; - - public function __construct(string $name, string $type = 'array', ?NodeBuilder $builder = null) - { - $builder ??= new NodeBuilder(); - $this->root = $builder->node($name, $type)->setParent($this); - } - - /** - * @return NodeDefinition|ArrayNodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') - */ - public function getRootNode(): NodeDefinition|ArrayNodeDefinition - { - return $this->root; - } - - /** - * Builds the tree. - * - * @throws \RuntimeException - */ - public function buildTree(): NodeInterface - { - return $this->tree ??= $this->root->getNode(true); - } - - /** - * @return void - */ - public function setPathSeparator(string $separator) - { - // unset last built as changing path separator changes all nodes - $this->tree = null; - - $this->root->setPathSeparator($separator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/ValidationBuilder.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/ValidationBuilder.php deleted file mode 100644 index 64623d6..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/ValidationBuilder.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds validation conditions. - * - * @author Christophe Coevoet - */ -class ValidationBuilder -{ - protected $node; - public $rules = []; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Registers a closure to run as normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function rule(?\Closure $closure = null): ExprBuilder|static - { - if (null !== $closure) { - $this->rules[] = $closure; - - return $this; - } - - return $this->rules[] = new ExprBuilder($this->node); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php b/projects/priceservice/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php deleted file mode 100644 index a4cc53a..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\VariableNode; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class VariableNodeDefinition extends NodeDefinition -{ - /** - * Instantiate a Node. - */ - protected function instantiateNode(): VariableNode - { - return new VariableNode($this->name, $this->parent, $this->pathSeparator); - } - - protected function createNode(): NodeInterface - { - $node = $this->instantiateNode(); - - if (isset($this->normalization)) { - $node->setNormalizationClosures($this->normalization->before); - } - - if (isset($this->merge)) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - } - - if (true === $this->default) { - $node->setDefaultValue($this->defaultValue); - } - - $node->setAllowEmptyValue($this->allowEmptyValue); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(true, $this->trueEquivalent); - $node->addEquivalentValue(false, $this->falseEquivalent); - $node->setRequired($this->required); - - if ($this->deprecation) { - $node->setDeprecated($this->deprecation['package'], $this->deprecation['version'], $this->deprecation['message']); - } - - if (isset($this->validation)) { - $node->setFinalValidationClosures($this->validation->rules); - } - - return $node; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/ConfigurableInterface.php b/projects/priceservice/vendor/symfony/config/Definition/ConfigurableInterface.php deleted file mode 100644 index cd46461..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/ConfigurableInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; - -/** - * @author Yonel Ceruto - */ -interface ConfigurableInterface -{ - /** - * Generates the configuration tree builder. - */ - public function configure(DefinitionConfigurator $definition): void; -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Configuration.php b/projects/priceservice/vendor/symfony/config/Definition/Configuration.php deleted file mode 100644 index 32954a6..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Configuration.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Builder\TreeBuilder; -use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use Symfony\Component\Config\Definition\Loader\DefinitionFileLoader; -use Symfony\Component\Config\FileLocator; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * @author Yonel Ceruto - * - * @final - */ -class Configuration implements ConfigurationInterface -{ - public function __construct( - private ConfigurableInterface $subject, - private ?ContainerBuilder $container, - private string $alias, - ) { - } - - public function getConfigTreeBuilder(): TreeBuilder - { - $treeBuilder = new TreeBuilder($this->alias); - $file = (new \ReflectionObject($this->subject))->getFileName(); - $loader = new DefinitionFileLoader($treeBuilder, new FileLocator(\dirname($file)), $this->container); - $configurator = new DefinitionConfigurator($treeBuilder, $loader, $file, $file); - - $this->subject->configure($configurator); - - return $treeBuilder; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/ConfigurationInterface.php b/projects/priceservice/vendor/symfony/config/Definition/ConfigurationInterface.php deleted file mode 100644 index 7b5d443..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/ConfigurationInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Builder\TreeBuilder; - -/** - * Configuration interface. - * - * @author Victor Berchet - */ -interface ConfigurationInterface -{ - /** - * Generates the configuration tree builder. - * - * @return TreeBuilder - */ - public function getConfigTreeBuilder(); -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php b/projects/priceservice/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php deleted file mode 100644 index 13fe45c..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Configurator; - -use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; -use Symfony\Component\Config\Definition\Builder\NodeDefinition; -use Symfony\Component\Config\Definition\Builder\TreeBuilder; -use Symfony\Component\Config\Definition\Loader\DefinitionFileLoader; - -/** - * @author Yonel Ceruto - */ -class DefinitionConfigurator -{ - public function __construct( - private TreeBuilder $treeBuilder, - private DefinitionFileLoader $loader, - private string $path, - private string $file, - ) { - } - - public function import(string $resource, ?string $type = null, bool $ignoreErrors = false): void - { - $this->loader->setCurrentDir(\dirname($this->path)); - $this->loader->import($resource, $type, $ignoreErrors, $this->file); - } - - public function rootNode(): NodeDefinition|ArrayNodeDefinition - { - return $this->treeBuilder->getRootNode(); - } - - public function setPathSeparator(string $separator): void - { - $this->treeBuilder->setPathSeparator($separator); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php b/projects/priceservice/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php deleted file mode 100644 index aac2d84..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php +++ /dev/null @@ -1,299 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Dumper; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\BooleanNode; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\EnumNode; -use Symfony\Component\Config\Definition\FloatNode; -use Symfony\Component\Config\Definition\IntegerNode; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; -use Symfony\Component\Config\Definition\ScalarNode; - -/** - * Dumps an XML reference configuration for the given configuration/node instance. - * - * @author Wouter J - */ -class XmlReferenceDumper -{ - private ?string $reference = null; - - /** - * @return string - */ - public function dump(ConfigurationInterface $configuration, ?string $namespace = null) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree(), $namespace); - } - - /** - * @return string - */ - public function dumpNode(NodeInterface $node, ?string $namespace = null) - { - $this->reference = ''; - $this->writeNode($node, 0, true, $namespace); - $ref = $this->reference; - $this->reference = null; - - return $ref; - } - - private function writeNode(NodeInterface $node, int $depth = 0, bool $root = false, ?string $namespace = null): void - { - $rootName = ($root ? 'config' : $node->getName()); - $rootNamespace = ($namespace ?: ($root ? 'http://example.org/schema/dic/'.$node->getName() : null)); - - // xml remapping - if ($node->getParent()) { - $remapping = array_filter($node->getParent()->getXmlRemappings(), fn (array $mapping) => $rootName === $mapping[1]); - - if (\count($remapping)) { - [$singular] = current($remapping); - $rootName = $singular; - } - } - $rootName = str_replace('_', '-', $rootName); - - $rootAttributes = []; - $rootAttributeComments = []; - $rootChildren = []; - $rootComments = []; - - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - - // comments about the root node - if ($rootInfo = $node->getInfo()) { - $rootComments[] = $rootInfo; - } - - if ($rootNamespace) { - $rootComments[] = 'Namespace: '.$rootNamespace; - } - - // render prototyped nodes - if ($node instanceof PrototypedArrayNode) { - $prototype = $node->getPrototype(); - - $info = 'prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': '.$prototype->getInfo(); - } - array_unshift($rootComments, $info); - - if ($key = $node->getKeyAttribute()) { - $rootAttributes[$key] = str_replace('-', ' ', $rootName).' '.$key; - } - - if ($prototype instanceof PrototypedArrayNode) { - $prototype->setName($key ?? ''); - $children = [$key => $prototype]; - } elseif ($prototype instanceof ArrayNode) { - $children = $prototype->getChildren(); - } else { - if ($prototype->hasDefaultValue()) { - $prototypeValue = $prototype->getDefaultValue(); - } else { - $prototypeValue = match ($prototype::class) { - ScalarNode::class => 'scalar value', - FloatNode::class, - IntegerNode::class => 'numeric value', - BooleanNode::class => 'true|false', - EnumNode::class => $prototype->getPermissibleValues('|'), - default => 'value', - }; - } - } - } - - // get attributes and elements - foreach ($children as $child) { - if ($child instanceof ArrayNode) { - // get elements - $rootChildren[] = $child; - - continue; - } - - // get attributes - - // metadata - $name = str_replace('_', '-', $child->getName()); - $value = '%%%%not_defined%%%%'; // use a string which isn't used in the normal world - - // comments - $comments = []; - if ($child instanceof BaseNode && $info = $child->getInfo()) { - $comments[] = $info; - } - - if ($child instanceof BaseNode && $example = $child->getExample()) { - $comments[] = 'Example: '.(\is_array($example) ? implode(', ', $example) : $example); - } - - if ($child->isRequired()) { - $comments[] = 'Required'; - } - - if ($child instanceof BaseNode && $child->isDeprecated()) { - $deprecation = $child->getDeprecation($child->getName(), $node->getPath()); - $comments[] = sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']); - } - - if ($child instanceof EnumNode) { - $comments[] = 'One of '.$child->getPermissibleValues('; '); - } - - if (\count($comments)) { - $rootAttributeComments[$name] = implode(";\n", $comments); - } - - // default values - if ($child->hasDefaultValue()) { - $value = $child->getDefaultValue(); - } - - // append attribute - $rootAttributes[$name] = $value; - } - } - - // render comments - - // root node comment - if (\count($rootComments)) { - foreach ($rootComments as $comment) { - $this->writeLine('', $depth); - } - } - - // attribute comments - if (\count($rootAttributeComments)) { - foreach ($rootAttributeComments as $attrName => $comment) { - $commentDepth = $depth + 4 + \strlen($attrName) + 2; - $commentLines = explode("\n", $comment); - $multiline = (\count($commentLines) > 1); - $comment = implode(\PHP_EOL.str_repeat(' ', $commentDepth), $commentLines); - - if ($multiline) { - $this->writeLine('', $depth); - } else { - $this->writeLine('', $depth); - } - } - } - - // render start tag + attributes - $rootIsVariablePrototype = isset($prototypeValue); - $rootIsEmptyTag = (0 === \count($rootChildren) && !$rootIsVariablePrototype); - $rootOpenTag = '<'.$rootName; - if (1 >= ($attributesCount = \count($rootAttributes))) { - if (1 === $attributesCount) { - $rootOpenTag .= sprintf(' %s="%s"', current(array_keys($rootAttributes)), $this->writeValue(current($rootAttributes))); - } - - $rootOpenTag .= $rootIsEmptyTag ? ' />' : '>'; - - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue.''; - } - - $this->writeLine($rootOpenTag, $depth); - } else { - $this->writeLine($rootOpenTag, $depth); - - $i = 1; - - foreach ($rootAttributes as $attrName => $attrValue) { - $attr = sprintf('%s="%s"', $attrName, $this->writeValue($attrValue)); - - $this->writeLine($attr, $depth + 4); - - if ($attributesCount === $i++) { - $this->writeLine($rootIsEmptyTag ? '/>' : '>', $depth); - - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue.''; - } - } - } - } - - // render children tags - foreach ($rootChildren as $child) { - $this->writeLine(''); - $this->writeNode($child, $depth + 4); - } - - // render end tag - if (!$rootIsEmptyTag && !$rootIsVariablePrototype) { - $this->writeLine(''); - - $rootEndTag = ''; - $this->writeLine($rootEndTag, $depth); - } - } - - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0): void - { - $indent = \strlen($text) + $indent; - $format = '%'.$indent.'s'; - - $this->reference .= sprintf($format, $text).\PHP_EOL; - } - - /** - * Renders the string conversion of the value. - */ - private function writeValue(mixed $value): string - { - if ('%%%%not_defined%%%%' === $value) { - return ''; - } - - if (\is_string($value) || is_numeric($value)) { - return $value; - } - - if (false === $value) { - return 'false'; - } - - if (true === $value) { - return 'true'; - } - - if (null === $value) { - return 'null'; - } - - if (empty($value)) { - return ''; - } - - if (\is_array($value)) { - return implode(',', $value); - } - - return ''; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php b/projects/priceservice/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php deleted file mode 100644 index abcf1bd..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php +++ /dev/null @@ -1,254 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Dumper; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\EnumNode; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; -use Symfony\Component\Config\Definition\ScalarNode; -use Symfony\Component\Yaml\Inline; - -/** - * Dumps a Yaml reference configuration for the given configuration/node instance. - * - * @author Kevin Bond - */ -class YamlReferenceDumper -{ - private ?string $reference = null; - - /** - * @return string - */ - public function dump(ConfigurationInterface $configuration) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree()); - } - - /** - * @return string - */ - public function dumpAtPath(ConfigurationInterface $configuration, string $path) - { - $rootNode = $node = $configuration->getConfigTreeBuilder()->buildTree(); - - foreach (explode('.', $path) as $step) { - if (!$node instanceof ArrayNode) { - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); - } - - /** @var NodeInterface[] $children */ - $children = $node instanceof PrototypedArrayNode ? $this->getPrototypeChildren($node) : $node->getChildren(); - - foreach ($children as $child) { - if ($child->getName() === $step) { - $node = $child; - - continue 2; - } - } - - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); - } - - return $this->dumpNode($node); - } - - /** - * @return string - */ - public function dumpNode(NodeInterface $node) - { - $this->reference = ''; - $this->writeNode($node); - $ref = $this->reference; - $this->reference = null; - - return $ref; - } - - private function writeNode(NodeInterface $node, ?NodeInterface $parentNode = null, int $depth = 0, bool $prototypedArray = false): void - { - $comments = []; - $default = ''; - $defaultArray = null; - $children = null; - $example = null; - if ($node instanceof BaseNode) { - $example = $node->getExample(); - } - - // defaults - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - - if ($node instanceof PrototypedArrayNode) { - $children = $this->getPrototypeChildren($node); - } - - if (!$children && !($node->hasDefaultValue() && \count($defaultArray = $node->getDefaultValue()))) { - $default = '[]'; - } - } elseif ($node instanceof EnumNode) { - $comments[] = 'One of '.$node->getPermissibleValues('; '); - $default = $node->hasDefaultValue() ? Inline::dump($node->getDefaultValue()) : '~'; - } else { - $default = '~'; - - if ($node->hasDefaultValue()) { - $default = $node->getDefaultValue(); - - if (\is_array($default)) { - if (\count($defaultArray = $node->getDefaultValue())) { - $default = ''; - } elseif (!\is_array($example)) { - $default = '[]'; - } - } else { - $default = Inline::dump($default); - } - } - } - - // required? - if ($node->isRequired()) { - $comments[] = 'Required'; - } - - // deprecated? - if ($node instanceof BaseNode && $node->isDeprecated()) { - $deprecation = $node->getDeprecation($node->getName(), $parentNode ? $parentNode->getPath() : $node->getPath()); - $comments[] = sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']); - } - - // example - if ($example && !\is_array($example)) { - $comments[] = 'Example: '.Inline::dump($example); - } - - $default = '' != (string) $default ? ' '.$default : ''; - $comments = \count($comments) ? '# '.implode(', ', $comments) : ''; - - $key = $prototypedArray ? '-' : $node->getName().':'; - $text = rtrim(sprintf('%-21s%s %s', $key, $default, $comments), ' '); - - if ($node instanceof BaseNode && $info = $node->getInfo()) { - $this->writeLine(''); - // indenting multi-line info - $info = str_replace("\n", sprintf("\n%".($depth * 4).'s# ', ' '), $info); - $this->writeLine('# '.$info, $depth * 4); - } - - $this->writeLine($text, $depth * 4); - - // output defaults - if ($defaultArray) { - $this->writeLine(''); - - $message = \count($defaultArray) > 1 ? 'Defaults' : 'Default'; - - $this->writeLine('# '.$message.':', $depth * 4 + 4); - - $this->writeArray($defaultArray, $depth + 1); - } - - if (\is_array($example)) { - $this->writeLine(''); - - $message = \count($example) > 1 ? 'Examples' : 'Example'; - - $this->writeLine('# '.$message.':', $depth * 4 + 4); - - $this->writeArray(array_map(Inline::dump(...), $example), $depth + 1, true); - } - - if ($children) { - foreach ($children as $childNode) { - $this->writeNode($childNode, $node, $depth + 1, $node instanceof PrototypedArrayNode && !$node->getKeyAttribute()); - } - } - } - - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0): void - { - $indent = \strlen($text) + $indent; - $format = '%'.$indent.'s'; - - $this->reference .= sprintf($format, $text)."\n"; - } - - private function writeArray(array $array, int $depth, bool $asComment = false): void - { - $isIndexed = array_is_list($array); - - foreach ($array as $key => $value) { - if (\is_array($value)) { - $val = ''; - } else { - $val = $value; - } - - $prefix = $asComment ? '# ' : ''; - - if ($isIndexed) { - $this->writeLine($prefix.'- '.$val, $depth * 4); - } else { - $this->writeLine(sprintf('%s%-20s %s', $prefix, $key.':', $val), $depth * 4); - } - - if (\is_array($value)) { - $this->writeArray($value, $depth + 1, $asComment); - } - } - } - - private function getPrototypeChildren(PrototypedArrayNode $node): array - { - $prototype = $node->getPrototype(); - $key = $node->getKeyAttribute(); - - // Do not expand prototype if it isn't an array node nor uses attribute as key - if (!$key && !$prototype instanceof ArrayNode) { - return $node->getChildren(); - } - - if ($prototype instanceof ArrayNode) { - $keyNode = new ArrayNode($key, $node); - $children = $prototype->getChildren(); - - if ($prototype instanceof PrototypedArrayNode && $prototype->getKeyAttribute()) { - $children = $this->getPrototypeChildren($prototype); - } - - // add children - foreach ($children as $childNode) { - $keyNode->addChild($childNode); - } - } else { - $keyNode = new ScalarNode($key, $node); - } - - $info = 'Prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': '.$prototype->getInfo(); - } - $keyNode->setInfo($info); - - return [$key => $keyNode]; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/EnumNode.php b/projects/priceservice/vendor/symfony/config/Definition/EnumNode.php deleted file mode 100644 index f5acbe9..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/EnumNode.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * Node which only allows a finite set of values. - * - * @author Johannes M. Schmitt - */ -class EnumNode extends ScalarNode -{ - private array $values; - - public function __construct(?string $name, ?NodeInterface $parent = null, array $values = [], string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - if (!$values) { - throw new \InvalidArgumentException('$values must contain at least one element.'); - } - - foreach ($values as $value) { - if (null === $value || \is_scalar($value)) { - continue; - } - - if (!$value instanceof \UnitEnum) { - throw new \InvalidArgumentException(sprintf('"%s" only supports scalar, enum, or null values, "%s" given.', __CLASS__, get_debug_type($value))); - } - - if ($value::class !== ($enumClass ??= $value::class)) { - throw new \InvalidArgumentException(sprintf('"%s" only supports one type of enum, "%s" and "%s" passed.', __CLASS__, $enumClass, $value::class)); - } - } - - parent::__construct($name, $parent, $pathSeparator); - $this->values = $values; - } - - /** - * @return array - */ - public function getValues() - { - return $this->values; - } - - /** - * @internal - */ - public function getPermissibleValues(string $separator): string - { - return implode($separator, array_unique(array_map(static function (mixed $value): string { - if (!$value instanceof \UnitEnum) { - return json_encode($value); - } - - return ltrim(var_export($value, true), '\\'); - }, $this->values))); - } - - /** - * @return void - */ - protected function validateType(mixed $value) - { - if ($value instanceof \UnitEnum) { - return; - } - - parent::validateType($value); - } - - protected function finalizeValue(mixed $value): mixed - { - $value = parent::finalizeValue($value); - - if (!\in_array($value, $this->values, true)) { - $ex = new InvalidConfigurationException(sprintf('The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), $this->getPermissibleValues(', '))); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php deleted file mode 100644 index 48dd932..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown whenever the key of an array is not unique. This can - * only be the case if the configuration is coming from an XML file. - * - * @author Johannes M. Schmitt - */ -class DuplicateKeyException extends InvalidConfigurationException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/Exception.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/Exception.php deleted file mode 100644 index 8933a49..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/Exception.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * Base exception for all configuration exceptions. - * - * @author Johannes M. Schmitt - */ -class Exception extends \RuntimeException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php deleted file mode 100644 index 726c07f..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown when a configuration path is overwritten from a - * subsequent configuration file, but the entry node specifically forbids this. - * - * @author Johannes M. Schmitt - */ -class ForbiddenOverwriteException extends InvalidConfigurationException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php deleted file mode 100644 index 794447b..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * A very general exception which can be thrown whenever non of the more specific - * exceptions is suitable. - * - * @author Johannes M. Schmitt - */ -class InvalidConfigurationException extends Exception -{ - private ?string $path = null; - private bool $containsHints = false; - - /** - * @return void - */ - public function setPath(string $path) - { - $this->path = $path; - } - - public function getPath(): ?string - { - return $this->path; - } - - /** - * Adds extra information that is suffixed to the original exception message. - * - * @return void - */ - public function addHint(string $hint) - { - if (!$this->containsHints) { - $this->message .= "\nHint: ".$hint; - $this->containsHints = true; - } else { - $this->message .= ', '.$hint; - } - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php deleted file mode 100644 index 98310da..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * Thrown when an error is detected in a node Definition. - * - * @author Victor Berchet - */ -class InvalidDefinitionException extends Exception -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidTypeException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidTypeException.php deleted file mode 100644 index d7ca8c9..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/InvalidTypeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown if an invalid type is encountered. - * - * @author Johannes M. Schmitt - */ -class InvalidTypeException extends InvalidConfigurationException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Exception/UnsetKeyException.php b/projects/priceservice/vendor/symfony/config/Definition/Exception/UnsetKeyException.php deleted file mode 100644 index 863181a..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Exception/UnsetKeyException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is usually not encountered by the end-user, but only used - * internally to signal the parent scope to unset a key. - * - * @author Johannes M. Schmitt - */ -class UnsetKeyException extends Exception -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/FloatNode.php b/projects/priceservice/vendor/symfony/config/Definition/FloatNode.php deleted file mode 100644 index ce4193e..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/FloatNode.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a float value in the config tree. - * - * @author Jeanmonod David - */ -class FloatNode extends NumericNode -{ - /** - * @return void - */ - protected function validateType(mixed $value) - { - // Integers are also accepted, we just cast them - if (\is_int($value)) { - $value = (float) $value; - } - - if (!\is_float($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "float", but got "%s".', $this->getPath(), get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - protected function getValidPlaceholderTypes(): array - { - return ['float']; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/IntegerNode.php b/projects/priceservice/vendor/symfony/config/Definition/IntegerNode.php deleted file mode 100644 index 4a3e325..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/IntegerNode.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents an integer value in the config tree. - * - * @author Jeanmonod David - */ -class IntegerNode extends NumericNode -{ - /** - * @return void - */ - protected function validateType(mixed $value) - { - if (!\is_int($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "int", but got "%s".', $this->getPath(), get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - protected function getValidPlaceholderTypes(): array - { - return ['int']; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php b/projects/priceservice/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php deleted file mode 100644 index 940b894..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Loader; - -use Symfony\Component\Config\Definition\Builder\TreeBuilder; -use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\Config\Loader\FileLoader; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * DefinitionFileLoader loads config definitions from a PHP file. - * - * The PHP file is required. - * - * @author Yonel Ceruto - */ -class DefinitionFileLoader extends FileLoader -{ - public function __construct( - private TreeBuilder $treeBuilder, - FileLocatorInterface $locator, - private ?ContainerBuilder $container = null, - ) { - parent::__construct($locator); - } - - public function load(mixed $resource, ?string $type = null): mixed - { - // the loader variable is exposed to the included file below - $loader = $this; - - $path = $this->locator->locate($resource); - $this->setCurrentDir(\dirname($path)); - $this->container?->fileExists($path); - - // the closure forbids access to the private scope in the included file - $load = \Closure::bind(static function ($file) use ($loader) { - return include $file; - }, null, ProtectedDefinitionFileLoader::class); - - $callback = $load($path); - - if (\is_object($callback) && \is_callable($callback)) { - $this->executeCallback($callback, new DefinitionConfigurator($this->treeBuilder, $this, $path, $resource), $path); - } - - return null; - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'php' === pathinfo($resource, \PATHINFO_EXTENSION)) { - return true; - } - - return 'php' === $type; - } - - private function executeCallback(callable $callback, DefinitionConfigurator $configurator, string $path): void - { - $callback = $callback(...); - - $arguments = []; - $r = new \ReflectionFunction($callback); - - foreach ($r->getParameters() as $parameter) { - $reflectionType = $parameter->getType(); - - if (!$reflectionType instanceof \ReflectionNamedType) { - throw new \InvalidArgumentException(sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s").', $parameter->getName(), $path, DefinitionConfigurator::class)); - } - - $arguments[] = match ($reflectionType->getName()) { - DefinitionConfigurator::class => $configurator, - TreeBuilder::class => $this->treeBuilder, - FileLoader::class, self::class => $this, - }; - } - - $callback(...$arguments); - } -} - -/** - * @internal - */ -final class ProtectedDefinitionFileLoader extends DefinitionFileLoader -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/NodeInterface.php b/projects/priceservice/vendor/symfony/config/Definition/NodeInterface.php deleted file mode 100644 index d171587..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/NodeInterface.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * Common Interface among all nodes. - * - * In most cases, it is better to inherit from BaseNode instead of implementing - * this interface yourself. - * - * @author Johannes M. Schmitt - */ -interface NodeInterface -{ - /** - * Returns the name of the node. - */ - public function getName(): string; - - /** - * Returns the path of the node. - */ - public function getPath(): string; - - /** - * Returns true when the node is required. - */ - public function isRequired(): bool; - - /** - * Returns true when the node has a default value. - */ - public function hasDefaultValue(): bool; - - /** - * Returns the default value of the node. - * - * @throws \RuntimeException if the node has no default value - */ - public function getDefaultValue(): mixed; - - /** - * Normalizes a value. - * - * @throws InvalidTypeException if the value type is invalid - */ - public function normalize(mixed $value): mixed; - - /** - * Merges two values together. - * - * @throws ForbiddenOverwriteException if the configuration path cannot be overwritten - * @throws InvalidTypeException if the value type is invalid - */ - public function merge(mixed $leftSide, mixed $rightSide): mixed; - - /** - * Finalizes a value. - * - * @throws InvalidTypeException if the value type is invalid - * @throws InvalidConfigurationException if the value is invalid configuration - */ - public function finalize(mixed $value): mixed; -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/NumericNode.php b/projects/priceservice/vendor/symfony/config/Definition/NumericNode.php deleted file mode 100644 index 22359fd..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/NumericNode.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * This node represents a numeric value in the config tree. - * - * @author David Jeanmonod - */ -class NumericNode extends ScalarNode -{ - protected $min; - protected $max; - - public function __construct(?string $name, ?NodeInterface $parent = null, int|float|null $min = null, int|float|null $max = null, string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - parent::__construct($name, $parent, $pathSeparator); - $this->min = $min; - $this->max = $max; - } - - protected function finalizeValue(mixed $value): mixed - { - $value = parent::finalizeValue($value); - - $errorMsg = null; - if (isset($this->min) && $value < $this->min) { - $errorMsg = sprintf('The value %s is too small for path "%s". Should be greater than or equal to %s', $value, $this->getPath(), $this->min); - } - if (isset($this->max) && $value > $this->max) { - $errorMsg = sprintf('The value %s is too big for path "%s". Should be less than or equal to %s', $value, $this->getPath(), $this->max); - } - if (isset($errorMsg)) { - $ex = new InvalidConfigurationException($errorMsg); - $ex->setPath($this->getPath()); - throw $ex; - } - - return $value; - } - - protected function isValueEmpty(mixed $value): bool - { - // a numeric value cannot be empty - return false; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/Processor.php b/projects/priceservice/vendor/symfony/config/Definition/Processor.php deleted file mode 100644 index 272ddcc..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/Processor.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -/** - * This class is the entry point for config normalization/merging/finalization. - * - * @author Johannes M. Schmitt - * - * @final - */ -class Processor -{ - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - */ - public function process(NodeInterface $configTree, array $configs): array - { - $currentConfig = []; - foreach ($configs as $config) { - $config = $configTree->normalize($config); - $currentConfig = $configTree->merge($currentConfig, $config); - } - - return $configTree->finalize($currentConfig); - } - - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - */ - public function processConfiguration(ConfigurationInterface $configuration, array $configs): array - { - return $this->process($configuration->getConfigTreeBuilder()->buildTree(), $configs); - } - - /** - * Normalizes a configuration entry. - * - * This method returns a normalize configuration array for a given key - * to remove the differences due to the original format (YAML and XML mainly). - * - * Here is an example. - * - * The configuration in XML: - * - * twig.extension.foo - * twig.extension.bar - * - * And the same configuration in YAML: - * - * extensions: ['twig.extension.foo', 'twig.extension.bar'] - * - * @param array $config A config array - * @param string $key The key to normalize - * @param string|null $plural The plural form of the key if it is irregular - */ - public static function normalizeConfig(array $config, string $key, ?string $plural = null): array - { - $plural ??= $key.'s'; - - if (isset($config[$plural])) { - return $config[$plural]; - } - - if (isset($config[$key])) { - if (\is_string($config[$key]) || !\is_int(key($config[$key]))) { - // only one - return [$config[$key]]; - } - - return $config[$key]; - } - - return []; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/PrototypeNodeInterface.php b/projects/priceservice/vendor/symfony/config/Definition/PrototypeNodeInterface.php deleted file mode 100644 index 9dce744..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/PrototypeNodeInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -/** - * This interface must be implemented by nodes which can be used as prototypes. - * - * @author Johannes M. Schmitt - */ -interface PrototypeNodeInterface extends NodeInterface -{ - /** - * Sets the name of the node. - * - * @return void - */ - public function setName(string $name); -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/PrototypedArrayNode.php b/projects/priceservice/vendor/symfony/config/Definition/PrototypedArrayNode.php deleted file mode 100644 index c105ac1..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/PrototypedArrayNode.php +++ /dev/null @@ -1,343 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\DuplicateKeyException; -use Symfony\Component\Config\Definition\Exception\Exception; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * Represents a prototyped Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class PrototypedArrayNode extends ArrayNode -{ - protected $prototype; - protected $keyAttribute; - protected $removeKeyAttribute = false; - protected $minNumberOfElements = 0; - protected $defaultValue = []; - protected $defaultChildren; - /** - * @var NodeInterface[] An array of the prototypes of the simplified value children - */ - private array $valuePrototypes = []; - - /** - * Sets the minimum number of elements that a prototype based node must - * contain. By default this is zero, meaning no elements. - * - * @return void - */ - public function setMinNumberOfElements(int $number) - { - $this->minNumberOfElements = $number; - } - - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * @param string $attribute The name of the attribute which value is to be used as a key - * @param bool $remove Whether or not to remove the key - * - * @return void - */ - public function setKeyAttribute(string $attribute, bool $remove = true) - { - $this->keyAttribute = $attribute; - $this->removeKeyAttribute = $remove; - } - - /** - * Retrieves the name of the attribute which value should be used as key. - */ - public function getKeyAttribute(): ?string - { - return $this->keyAttribute; - } - - /** - * Sets the default value of this node. - * - * @return void - */ - public function setDefaultValue(array $value) - { - $this->defaultValue = $value; - } - - public function hasDefaultValue(): bool - { - return true; - } - - /** - * Adds default children when none are set. - * - * @param int|string|array|null $children The number of children|The child name|The children names to be added - * - * @return void - */ - public function setAddChildrenIfNoneSet(int|string|array|null $children = ['defaults']) - { - if (null === $children) { - $this->defaultChildren = ['defaults']; - } else { - $this->defaultChildren = \is_int($children) && $children > 0 ? range(1, $children) : (array) $children; - } - } - - /** - * The default value could be either explicited or derived from the prototype - * default value. - */ - public function getDefaultValue(): mixed - { - if (null !== $this->defaultChildren) { - $default = $this->prototype->hasDefaultValue() ? $this->prototype->getDefaultValue() : []; - $defaults = []; - foreach (array_values($this->defaultChildren) as $i => $name) { - $defaults[null === $this->keyAttribute ? $i : $name] = $default; - } - - return $defaults; - } - - return $this->defaultValue; - } - - /** - * Sets the node prototype. - * - * @return void - */ - public function setPrototype(PrototypeNodeInterface $node) - { - $this->prototype = $node; - } - - /** - * Retrieves the prototype. - */ - public function getPrototype(): PrototypeNodeInterface - { - return $this->prototype; - } - - /** - * Disable adding concrete children for prototyped nodes. - * - * @return never - * - * @throws Exception - */ - public function addChild(NodeInterface $node) - { - throw new Exception('A prototyped array node cannot have concrete children.'); - } - - protected function finalizeValue(mixed $value): mixed - { - if (false === $value) { - throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), json_encode($value))); - } - - foreach ($value as $k => $v) { - $prototype = $this->getPrototypeForChild($k); - try { - $value[$k] = $prototype->finalize($v); - } catch (UnsetKeyException) { - unset($value[$k]); - } - } - - if (\count($value) < $this->minNumberOfElements) { - $ex = new InvalidConfigurationException(sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements)); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } - - /** - * @throws DuplicateKeyException - */ - protected function normalizeValue(mixed $value): mixed - { - if (false === $value) { - return $value; - } - - $value = $this->remapXml($value); - - $isList = array_is_list($value); - $normalized = []; - foreach ($value as $k => $v) { - if (null !== $this->keyAttribute && \is_array($v)) { - if (!isset($v[$this->keyAttribute]) && \is_int($k) && $isList) { - $ex = new InvalidConfigurationException(sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } elseif (isset($v[$this->keyAttribute])) { - $k = $v[$this->keyAttribute]; - - if (\is_float($k)) { - $k = var_export($k, true); - } - - // remove the key attribute when required - if ($this->removeKeyAttribute) { - unset($v[$this->keyAttribute]); - } - - // if only "value" is left - if (array_keys($v) === ['value']) { - $v = $v['value']; - if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && \array_key_exists('value', $children)) { - $valuePrototype = current($this->valuePrototypes) ?: clone $children['value']; - $valuePrototype->parent = $this; - $originalClosures = $this->prototype->normalizationClosures; - if (\is_array($originalClosures)) { - $valuePrototypeClosures = $valuePrototype->normalizationClosures; - $valuePrototype->normalizationClosures = \is_array($valuePrototypeClosures) ? array_merge($originalClosures, $valuePrototypeClosures) : $originalClosures; - } - $this->valuePrototypes[$k] = $valuePrototype; - } - } - } - - if (\array_key_exists($k, $normalized)) { - $ex = new DuplicateKeyException(sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - $prototype = $this->getPrototypeForChild($k); - if (null !== $this->keyAttribute || !$isList) { - $normalized[$k] = $prototype->normalize($v); - } else { - $normalized[] = $prototype->normalize($v); - } - } - - return $normalized; - } - - protected function mergeValues(mixed $leftSide, mixed $rightSide): mixed - { - if (false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return false; - } - - if (false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - - $isList = array_is_list($rightSide); - foreach ($rightSide as $k => $v) { - // prototype, and key is irrelevant there are no named keys, append the element - if (null === $this->keyAttribute && $isList) { - $leftSide[] = $v; - continue; - } - - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - - $leftSide[$k] = $v; - continue; - } - - $prototype = $this->getPrototypeForChild($k); - $leftSide[$k] = $prototype->merge($leftSide[$k], $v); - } - - return $leftSide; - } - - /** - * Returns a prototype for the child node that is associated to $key in the value array. - * For general child nodes, this will be $this->prototype. - * But if $this->removeKeyAttribute is true and there are only two keys in the child node: - * one is same as this->keyAttribute and the other is 'value', then the prototype will be different. - * - * For example, assume $this->keyAttribute is 'name' and the value array is as follows: - * - * [ - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * ] - * - * Now, the key is 0 and the child node is: - * - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * - * When normalizing the value array, the 'name' element will removed from the child node - * and its value becomes the new key of the child node: - * - * [ - * 'name001' => ['value' => 'value001'] - * ] - * - * Now only 'value' element is left in the child node which can be further simplified into a string: - * - * ['name001' => 'value001'] - * - * Now, the key becomes 'name001' and the child node becomes 'value001' and - * the prototype of child node 'name001' should be a ScalarNode instead of an ArrayNode instance. - */ - private function getPrototypeForChild(string $key): mixed - { - $prototype = $this->valuePrototypes[$key] ?? $this->prototype; - $prototype->setName($key); - - return $prototype; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/ScalarNode.php b/projects/priceservice/vendor/symfony/config/Definition/ScalarNode.php deleted file mode 100644 index e11fa1e..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/ScalarNode.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a scalar value in the config tree. - * - * The following values are considered scalars: - * * booleans - * * strings - * * null - * * integers - * * floats - * - * @author Johannes M. Schmitt - */ -class ScalarNode extends VariableNode -{ - /** - * @return void - */ - protected function validateType(mixed $value) - { - if (!\is_scalar($value) && null !== $value) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "scalar", but got "%s".', $this->getPath(), get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - protected function isValueEmpty(mixed $value): bool - { - // assume environment variables are never empty (which in practice is likely to be true during runtime) - // not doing so breaks many configs that are valid today - if ($this->isHandlingPlaceholder()) { - return false; - } - - return null === $value || '' === $value; - } - - protected function getValidPlaceholderTypes(): array - { - return ['bool', 'int', 'float', 'string']; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Definition/VariableNode.php b/projects/priceservice/vendor/symfony/config/Definition/VariableNode.php deleted file mode 100644 index 6bdc65b..0000000 --- a/projects/priceservice/vendor/symfony/config/Definition/VariableNode.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * This node represents a value of variable type in the config tree. - * - * This node is intended for values of arbitrary type. - * Any PHP type is accepted as a value. - * - * @author Jeremy Mikola - */ -class VariableNode extends BaseNode implements PrototypeNodeInterface -{ - protected $defaultValueSet = false; - protected $defaultValue; - protected $allowEmptyValue = true; - - /** - * @return void - */ - public function setDefaultValue(mixed $value) - { - $this->defaultValueSet = true; - $this->defaultValue = $value; - } - - public function hasDefaultValue(): bool - { - return $this->defaultValueSet; - } - - public function getDefaultValue(): mixed - { - $v = $this->defaultValue; - - return $v instanceof \Closure ? $v() : $v; - } - - /** - * Sets if this node is allowed to have an empty value. - * - * @param bool $boolean True if this entity will accept empty values - * - * @return void - */ - public function setAllowEmptyValue(bool $boolean) - { - $this->allowEmptyValue = $boolean; - } - - /** - * @return void - */ - public function setName(string $name) - { - $this->name = $name; - } - - /** - * @return void - */ - protected function validateType(mixed $value) - { - } - - protected function finalizeValue(mixed $value): mixed - { - // deny environment variables only when using custom validators - // this avoids ever passing an empty value to final validation closures - if (!$this->allowEmptyValue && $this->isHandlingPlaceholder() && $this->finalValidationClosures) { - $e = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an environment variable when empty values are not allowed by definition and are validated.', $this->getPath())); - if ($hint = $this->getInfo()) { - $e->addHint($hint); - } - $e->setPath($this->getPath()); - - throw $e; - } - - if (!$this->allowEmptyValue && $this->isValueEmpty($value)) { - $ex = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), json_encode($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } - - protected function normalizeValue(mixed $value): mixed - { - return $value; - } - - protected function mergeValues(mixed $leftSide, mixed $rightSide): mixed - { - return $rightSide; - } - - /** - * Evaluates if the given value is to be treated as empty. - * - * By default, PHP's empty() function is used to test for emptiness. This - * method may be overridden by subtypes to better match their understanding - * of empty data. - * - * @see finalizeValue() - */ - protected function isValueEmpty(mixed $value): bool - { - return empty($value); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php b/projects/priceservice/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php deleted file mode 100644 index 2d2a4de..0000000 --- a/projects/priceservice/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * Exception class for when a circular reference is detected when importing resources. - * - * @author Fabien Potencier - */ -class FileLoaderImportCircularReferenceException extends LoaderLoadException -{ - public function __construct(array $resources, int $code = 0, ?\Throwable $previous = null) - { - $message = sprintf('Circular reference detected in "%s" ("%s" > "%s").', $this->varToString($resources[0]), implode('" > "', $resources), $resources[0]); - - \Exception::__construct($message, $code, $previous); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php b/projects/priceservice/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php deleted file mode 100644 index a3fcc90..0000000 --- a/projects/priceservice/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * File locator exception if a file does not exist. - * - * @author Leo Feyer - */ -class FileLocatorFileNotFoundException extends \InvalidArgumentException -{ - private array $paths; - - public function __construct(string $message = '', int $code = 0, ?\Throwable $previous = null, array $paths = []) - { - parent::__construct($message, $code, $previous); - - $this->paths = $paths; - } - - /** - * @return array - */ - public function getPaths() - { - return $this->paths; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Exception/LoaderLoadException.php b/projects/priceservice/vendor/symfony/config/Exception/LoaderLoadException.php deleted file mode 100644 index 2b40688..0000000 --- a/projects/priceservice/vendor/symfony/config/Exception/LoaderLoadException.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * Exception class for when a resource cannot be loaded or imported. - * - * @author Ryan Weaver - */ -class LoaderLoadException extends \Exception -{ - /** - * @param mixed $resource The resource that could not be imported - * @param string|null $sourceResource The original resource importing the new resource - * @param int $code The error code - * @param \Throwable|null $previous A previous exception - * @param string|null $type The type of resource - */ - public function __construct(mixed $resource, ?string $sourceResource = null, int $code = 0, ?\Throwable $previous = null, ?string $type = null) - { - if (!\is_string($resource)) { - try { - $resource = json_encode($resource, \JSON_THROW_ON_ERROR); - } catch (\JsonException) { - $resource = sprintf('resource of type "%s"', get_debug_type($resource)); - } - } - - $message = ''; - if ($previous) { - // Include the previous exception, to help the user see what might be the underlying cause - - // Trim the trailing period of the previous message. We only want 1 period remove so no rtrim... - if (str_ends_with($previous->getMessage(), '.')) { - $trimmedMessage = substr($previous->getMessage(), 0, -1); - $message .= sprintf('%s', $trimmedMessage).' in '; - } else { - $message .= sprintf('%s', $previous->getMessage()).' in '; - } - $message .= $resource.' '; - - // show tweaked trace to complete the human readable sentence - if (null === $sourceResource) { - $message .= sprintf('(which is loaded in resource "%s")', $resource); - } else { - $message .= sprintf('(which is being imported from "%s")', $sourceResource); - } - $message .= '.'; - - // if there's no previous message, present it the default way - } elseif (null === $sourceResource) { - $message .= sprintf('Cannot load resource "%s".', $resource); - } else { - $message .= sprintf('Cannot import resource "%s" from "%s".', $resource, $sourceResource); - } - - // Is the resource located inside a bundle? - if ('@' === $resource[0]) { - $parts = explode(\DIRECTORY_SEPARATOR, $resource); - $bundle = substr($parts[0], 1); - $message .= sprintf(' Make sure the "%s" bundle is correctly registered and loaded in the application kernel class.', $bundle); - $message .= sprintf(' If the bundle is registered, make sure the bundle path "%s" is not empty.', $resource); - } elseif (null !== $type) { - $message .= sprintf(' Make sure there is a loader supporting the "%s" type.', $type); - } - - parent::__construct($message, $code, $previous); - } - - /** - * @return string - */ - protected function varToString(mixed $var) - { - if (\is_object($var)) { - return sprintf('Object(%s)', $var::class); - } - - if (\is_array($var)) { - $a = []; - foreach ($var as $k => $v) { - $a[] = sprintf('%s => %s', $k, $this->varToString($v)); - } - - return sprintf('Array(%s)', implode(', ', $a)); - } - - if (\is_resource($var)) { - return sprintf('Resource(%s)', get_resource_type($var)); - } - - if (null === $var) { - return 'null'; - } - - if (false === $var) { - return 'false'; - } - - if (true === $var) { - return 'true'; - } - - return (string) $var; - } -} diff --git a/projects/priceservice/vendor/symfony/config/FileLocator.php b/projects/priceservice/vendor/symfony/config/FileLocator.php deleted file mode 100644 index 7f85367..0000000 --- a/projects/priceservice/vendor/symfony/config/FileLocator.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; - -/** - * FileLocator uses an array of pre-defined paths to find files. - * - * @author Fabien Potencier - */ -class FileLocator implements FileLocatorInterface -{ - protected $paths; - - /** - * @param string|string[] $paths A path or an array of paths where to look for resources - */ - public function __construct(string|array $paths = []) - { - $this->paths = (array) $paths; - } - - /** - * @return string|string[] - * - * @psalm-return ($first is true ? string : string[]) - */ - public function locate(string $name, ?string $currentPath = null, bool $first = true) - { - if ('' === $name) { - throw new \InvalidArgumentException('An empty file name is not valid to be located.'); - } - - if ($this->isAbsolutePath($name)) { - if (!file_exists($name)) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist.', $name), 0, null, [$name]); - } - - return $name; - } - - $paths = $this->paths; - - if (null !== $currentPath) { - array_unshift($paths, $currentPath); - } - - $paths = array_unique($paths); - $filepaths = $notfound = []; - - foreach ($paths as $path) { - if (@file_exists($file = $path.\DIRECTORY_SEPARATOR.$name)) { - if (true === $first) { - return $file; - } - $filepaths[] = $file; - } else { - $notfound[] = $file; - } - } - - if (!$filepaths) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist (in: "%s").', $name, implode('", "', $paths)), 0, null, $notfound); - } - - return $filepaths; - } - - /** - * Returns whether the file path is an absolute path. - */ - private function isAbsolutePath(string $file): bool - { - if ('/' === $file[0] || '\\' === $file[0] - || (\strlen($file) > 3 && ctype_alpha($file[0]) - && ':' === $file[1] - && ('\\' === $file[2] || '/' === $file[2]) - ) - || parse_url($file, \PHP_URL_SCHEME) - || str_starts_with($file, 'phar:///') // "parse_url()" doesn't handle absolute phar path, despite being valid - ) { - return true; - } - - return false; - } -} diff --git a/projects/priceservice/vendor/symfony/config/FileLocatorInterface.php b/projects/priceservice/vendor/symfony/config/FileLocatorInterface.php deleted file mode 100644 index 755cf01..0000000 --- a/projects/priceservice/vendor/symfony/config/FileLocatorInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; - -/** - * @author Fabien Potencier - */ -interface FileLocatorInterface -{ - /** - * Returns a full path for a given file name. - * - * @param string $name The file name to locate - * @param string|null $currentPath The current path - * @param bool $first Whether to return the first occurrence or an array of filenames - * - * @return string|string[] The full path to the file or an array of file paths - * - * @throws \InvalidArgumentException If $name is empty - * @throws FileLocatorFileNotFoundException If a file is not found - * - * @psalm-return ($first is true ? string : string[]) - */ - public function locate(string $name, ?string $currentPath = null, bool $first = true); -} diff --git a/projects/priceservice/vendor/symfony/config/LICENSE b/projects/priceservice/vendor/symfony/config/LICENSE deleted file mode 100644 index 0138f8f..0000000 --- a/projects/priceservice/vendor/symfony/config/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/config/Loader/DelegatingLoader.php b/projects/priceservice/vendor/symfony/config/Loader/DelegatingLoader.php deleted file mode 100644 index 045a559..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/DelegatingLoader.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\LoaderLoadException; - -/** - * DelegatingLoader delegates loading to other loaders using a loader resolver. - * - * This loader acts as an array of LoaderInterface objects - each having - * a chance to load a given resource (handled by the resolver) - * - * @author Fabien Potencier - */ -class DelegatingLoader extends Loader -{ - public function __construct(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - - public function load(mixed $resource, ?string $type = null): mixed - { - if (false === $loader = $this->resolver->resolve($resource, $type)) { - throw new LoaderLoadException($resource, null, 0, null, $type); - } - - return $loader->load($resource, $type); - } - - public function supports(mixed $resource, ?string $type = null): bool - { - return false !== $this->resolver->resolve($resource, $type); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php b/projects/priceservice/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php deleted file mode 100644 index 87559cb..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * A loader that can be scoped to a given filesystem directory. - * - * @author Alexander M. Turek - */ -interface DirectoryAwareLoaderInterface -{ - public function forDirectory(string $currentDirectory): static; -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/FileLoader.php b/projects/priceservice/vendor/symfony/config/Loader/FileLoader.php deleted file mode 100644 index 8275ffc..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/FileLoader.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\FileLoaderImportCircularReferenceException; -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use Symfony\Component\Config\Exception\LoaderLoadException; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\Config\Resource\FileExistenceResource; -use Symfony\Component\Config\Resource\GlobResource; - -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends Loader -{ - protected static $loading = []; - - protected $locator; - - private ?string $currentDir = null; - - public function __construct(FileLocatorInterface $locator, ?string $env = null) - { - $this->locator = $locator; - parent::__construct($env); - } - - /** - * Sets the current directory. - * - * @return void - */ - public function setCurrentDir(string $dir) - { - $this->currentDir = $dir; - } - - /** - * Returns the file locator used by this loader. - */ - public function getLocator(): FileLocatorInterface - { - return $this->locator; - } - - /** - * Imports a resource. - * - * @param mixed $resource A Resource - * @param string|null $type The resource type or null if unknown - * @param bool $ignoreErrors Whether to ignore import errors or not - * @param string|null $sourceResource The original resource importing the new resource - * @param string|string[]|null $exclude Glob patterns to exclude from the import - * - * @return mixed - * - * @throws LoaderLoadException - * @throws FileLoaderImportCircularReferenceException - * @throws FileLocatorFileNotFoundException - */ - public function import(mixed $resource, ?string $type = null, bool $ignoreErrors = false, ?string $sourceResource = null, string|array|null $exclude = null) - { - if (\is_string($resource) && \strlen($resource) !== ($i = strcspn($resource, '*?{[')) && !str_contains($resource, "\n")) { - $excluded = []; - foreach ((array) $exclude as $pattern) { - foreach ($this->glob($pattern, true, $_, false, true) as $path => $info) { - // normalize Windows slashes and remove trailing slashes - $excluded[rtrim(str_replace('\\', '/', $path), '/')] = true; - } - } - - $ret = []; - $isSubpath = 0 !== $i && str_contains(substr($resource, 0, $i), '/'); - foreach ($this->glob($resource, false, $_, $ignoreErrors || !$isSubpath, false, $excluded) as $path => $info) { - if (null !== $res = $this->doImport($path, 'glob' === $type ? null : $type, $ignoreErrors, $sourceResource)) { - $ret[] = $res; - } - $isSubpath = true; - } - - if ($isSubpath) { - return isset($ret[1]) ? $ret : ($ret[0] ?? null); - } - } - - return $this->doImport($resource, $type, $ignoreErrors, $sourceResource); - } - - /** - * @internal - */ - protected function glob(string $pattern, bool $recursive, array|GlobResource|null &$resource = null, bool $ignoreErrors = false, bool $forExclusion = false, array $excluded = []): iterable - { - if (\strlen($pattern) === $i = strcspn($pattern, '*?{[')) { - $prefix = $pattern; - $pattern = ''; - } elseif (0 === $i || !str_contains(substr($pattern, 0, $i), '/')) { - $prefix = '.'; - $pattern = '/'.$pattern; - } else { - $prefix = \dirname(substr($pattern, 0, 1 + $i)); - $pattern = substr($pattern, \strlen($prefix)); - } - - try { - $prefix = $this->locator->locate($prefix, $this->currentDir, true); - } catch (FileLocatorFileNotFoundException $e) { - if (!$ignoreErrors) { - throw $e; - } - - $resource = []; - foreach ($e->getPaths() as $path) { - $resource[] = new FileExistenceResource($path); - } - - return; - } - $resource = new GlobResource($prefix, $pattern, $recursive, $forExclusion, $excluded); - - yield from $resource; - } - - private function doImport(mixed $resource, ?string $type = null, bool $ignoreErrors = false, ?string $sourceResource = null): mixed - { - try { - $loader = $this->resolve($resource, $type); - - if ($loader instanceof DirectoryAwareLoaderInterface) { - $loader = $loader->forDirectory($this->currentDir); - } - - if (!$loader instanceof self) { - return $loader->load($resource, $type); - } - - if (null !== $this->currentDir) { - $resource = $loader->getLocator()->locate($resource, $this->currentDir, false); - } - - $resources = \is_array($resource) ? $resource : [$resource]; - for ($i = 0; $i < $resourcesCount = \count($resources); ++$i) { - if (isset(self::$loading[$resources[$i]])) { - if ($i == $resourcesCount - 1) { - throw new FileLoaderImportCircularReferenceException(array_keys(self::$loading)); - } - } else { - $resource = $resources[$i]; - break; - } - } - self::$loading[$resource] = true; - - try { - $ret = $loader->load($resource, $type); - } finally { - unset(self::$loading[$resource]); - } - - return $ret; - } catch (FileLoaderImportCircularReferenceException $e) { - throw $e; - } catch (\Exception $e) { - if (!$ignoreErrors) { - // prevent embedded imports from nesting multiple exceptions - if ($e instanceof LoaderLoadException) { - throw $e; - } - - throw new LoaderLoadException($resource, $sourceResource, 0, $e, $type); - } - } - - return null; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/GlobFileLoader.php b/projects/priceservice/vendor/symfony/config/Loader/GlobFileLoader.php deleted file mode 100644 index 31eebf6..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/GlobFileLoader.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Fabien Potencier - */ -class GlobFileLoader extends FileLoader -{ - public function load(mixed $resource, ?string $type = null): mixed - { - return $this->import($resource); - } - - public function supports(mixed $resource, ?string $type = null): bool - { - return 'glob' === $type; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/Loader.php b/projects/priceservice/vendor/symfony/config/Loader/Loader.php deleted file mode 100644 index 66c38bb..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/Loader.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\LoaderLoadException; - -/** - * Loader is the abstract class used by all built-in loaders. - * - * @author Fabien Potencier - */ -abstract class Loader implements LoaderInterface -{ - protected $resolver; - protected $env; - - public function __construct(?string $env = null) - { - $this->env = $env; - } - - public function getResolver(): LoaderResolverInterface - { - return $this->resolver; - } - - /** - * @return void - */ - public function setResolver(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - - /** - * Imports a resource. - * - * @return mixed - */ - public function import(mixed $resource, ?string $type = null) - { - return $this->resolve($resource, $type)->load($resource, $type); - } - - /** - * Finds a loader able to load an imported resource. - * - * @throws LoaderLoadException If no loader is found - */ - public function resolve(mixed $resource, ?string $type = null): LoaderInterface - { - if ($this->supports($resource, $type)) { - return $this; - } - - $loader = null === $this->resolver ? false : $this->resolver->resolve($resource, $type); - - if (false === $loader) { - throw new LoaderLoadException($resource, null, 0, null, $type); - } - - return $loader; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/LoaderInterface.php b/projects/priceservice/vendor/symfony/config/Loader/LoaderInterface.php deleted file mode 100644 index 190d2c6..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/LoaderInterface.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderInterface is the interface implemented by all loader classes. - * - * @author Fabien Potencier - */ -interface LoaderInterface -{ - /** - * Loads a resource. - * - * @return mixed - * - * @throws \Exception If something went wrong - */ - public function load(mixed $resource, ?string $type = null); - - /** - * Returns whether this class supports the given resource. - * - * @param mixed $resource A resource - * - * @return bool - */ - public function supports(mixed $resource, ?string $type = null); - - /** - * Gets the loader resolver. - * - * @return LoaderResolverInterface - */ - public function getResolver(); - - /** - * Sets the loader resolver. - * - * @return void - */ - public function setResolver(LoaderResolverInterface $resolver); -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/LoaderResolver.php b/projects/priceservice/vendor/symfony/config/Loader/LoaderResolver.php deleted file mode 100644 index 72ab334..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/LoaderResolver.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderResolver selects a loader for a given resource. - * - * A resource can be anything (e.g. a full path to a config file or a Closure). - * Each loader determines whether it can load a resource and how. - * - * @author Fabien Potencier - */ -class LoaderResolver implements LoaderResolverInterface -{ - /** - * @var LoaderInterface[] An array of LoaderInterface objects - */ - private array $loaders = []; - - /** - * @param LoaderInterface[] $loaders An array of loaders - */ - public function __construct(array $loaders = []) - { - foreach ($loaders as $loader) { - $this->addLoader($loader); - } - } - - public function resolve(mixed $resource, ?string $type = null): LoaderInterface|false - { - foreach ($this->loaders as $loader) { - if ($loader->supports($resource, $type)) { - return $loader; - } - } - - return false; - } - - /** - * @return void - */ - public function addLoader(LoaderInterface $loader) - { - $this->loaders[] = $loader; - $loader->setResolver($this); - } - - /** - * Returns the registered loaders. - * - * @return LoaderInterface[] - */ - public function getLoaders(): array - { - return $this->loaders; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/LoaderResolverInterface.php b/projects/priceservice/vendor/symfony/config/Loader/LoaderResolverInterface.php deleted file mode 100644 index a8bb3a4..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/LoaderResolverInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderResolverInterface selects a loader for a given resource. - * - * @author Fabien Potencier - */ -interface LoaderResolverInterface -{ - /** - * Returns a loader able to load the resource. - * - * @param string|null $type The resource type or null if unknown - */ - public function resolve(mixed $resource, ?string $type = null): LoaderInterface|false; -} diff --git a/projects/priceservice/vendor/symfony/config/Loader/ParamConfigurator.php b/projects/priceservice/vendor/symfony/config/Loader/ParamConfigurator.php deleted file mode 100644 index d91de6a..0000000 --- a/projects/priceservice/vendor/symfony/config/Loader/ParamConfigurator.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * Placeholder for a parameter. - * - * @author Tobias Nyholm - */ -class ParamConfigurator -{ - private string $name; - - public function __construct(string $name) - { - $this->name = $name; - } - - public function __toString(): string - { - return '%'.$this->name.'%'; - } -} diff --git a/projects/priceservice/vendor/symfony/config/README.md b/projects/priceservice/vendor/symfony/config/README.md deleted file mode 100644 index 10c2ddd..0000000 --- a/projects/priceservice/vendor/symfony/config/README.md +++ /dev/null @@ -1,15 +0,0 @@ -Config Component -================ - -The Config component helps find, load, combine, autofill and validate -configuration values of any kind, whatever their source may be (YAML, XML, INI -files, or for instance a database). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/config.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/config/Resource/ClassExistenceResource.php b/projects/priceservice/vendor/symfony/config/Resource/ClassExistenceResource.php deleted file mode 100644 index eab04b8..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/ClassExistenceResource.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ClassExistenceResource represents a class existence. - * Freshness is only evaluated against resource existence. - * - * The resource must be a fully-qualified class name. - * - * @author Fabien Potencier - * - * @final - */ -class ClassExistenceResource implements SelfCheckingResourceInterface -{ - private string $resource; - private ?array $exists = null; - - private static int $autoloadLevel = 0; - private static ?string $autoloadedClass = null; - private static array $existsCache = []; - - /** - * @param string $resource The fully-qualified class name - * @param bool|null $exists Boolean when the existence check has already been done - */ - public function __construct(string $resource, ?bool $exists = null) - { - $this->resource = $resource; - if (null !== $exists) { - $this->exists = [$exists, null]; - } - } - - public function __toString(): string - { - return $this->resource; - } - - public function getResource(): string - { - return $this->resource; - } - - /** - * @throws \ReflectionException when a parent class/interface/trait is not found - */ - public function isFresh(int $timestamp): bool - { - $loaded = class_exists($this->resource, false) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - - if (null !== $exists = &self::$existsCache[$this->resource]) { - if ($loaded) { - $exists = [true, null]; - } elseif (0 >= $timestamp && !$exists[0] && null !== $exists[1]) { - throw new \ReflectionException($exists[1]); - } - } elseif ([false, null] === $exists = [$loaded, null]) { - if (!self::$autoloadLevel++) { - spl_autoload_register(__CLASS__.'::throwOnRequiredClass'); - } - $autoloadedClass = self::$autoloadedClass; - self::$autoloadedClass = ltrim($this->resource, '\\'); - - try { - $exists[0] = class_exists($this->resource) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - } catch (\Exception $e) { - $exists[1] = $e->getMessage(); - - try { - self::throwOnRequiredClass($this->resource, $e); - } catch (\ReflectionException $e) { - if (0 >= $timestamp) { - throw $e; - } - } - } catch (\Throwable $e) { - $exists[1] = $e->getMessage(); - - throw $e; - } finally { - self::$autoloadedClass = $autoloadedClass; - if (!--self::$autoloadLevel) { - spl_autoload_unregister(__CLASS__.'::throwOnRequiredClass'); - } - } - } - - $this->exists ??= $exists; - - return $this->exists[0] xor !$exists[0]; - } - - /** - * @internal - */ - public function __sleep(): array - { - if (null === $this->exists) { - $this->isFresh(0); - } - - return ['resource', 'exists']; - } - - /** - * @internal - */ - public function __wakeup(): void - { - if (\is_bool($this->exists)) { - $this->exists = [$this->exists, null]; - } - } - - /** - * Throws a reflection exception when the passed class does not exist but is required. - * - * A class is considered "not required" when it's loaded as part of a "class_exists" or similar check. - * - * This function can be used as an autoload function to throw a reflection - * exception if the class was not found by previous autoload functions. - * - * A previous exception can be passed. In this case, the class is considered as being - * required totally, so if it doesn't exist, a reflection exception is always thrown. - * If it exists, the previous exception is rethrown. - * - * @throws \ReflectionException - * - * @internal - */ - public static function throwOnRequiredClass(string $class, ?\Exception $previous = null): void - { - // If the passed class is the resource being checked, we shouldn't throw. - if (null === $previous && self::$autoloadedClass === $class) { - return; - } - - if (class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) { - if (null !== $previous) { - throw $previous; - } - - return; - } - - if ($previous instanceof \ReflectionException) { - throw $previous; - } - - $message = sprintf('Class "%s" not found.', $class); - - if ($class !== (self::$autoloadedClass ?? $class)) { - $message = substr_replace($message, sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0); - } - - if (null !== $previous) { - $message = $previous->getMessage(); - } - - $e = new \ReflectionException($message, 0, $previous); - - if (null !== $previous) { - throw $e; - } - - $trace = debug_backtrace(); - $autoloadFrame = [ - 'function' => 'spl_autoload_call', - 'args' => [$class], - ]; - - if (isset($trace[1])) { - $callerFrame = $trace[1]; - $i = 2; - } elseif (false !== $i = array_search($autoloadFrame, $trace, true)) { - $callerFrame = $trace[++$i]; - } else { - throw $e; - } - - if (isset($callerFrame['function']) && !isset($callerFrame['class'])) { - switch ($callerFrame['function']) { - case 'get_class_methods': - case 'get_class_vars': - case 'get_parent_class': - case 'is_a': - case 'is_subclass_of': - case 'class_exists': - case 'class_implements': - case 'class_parents': - case 'trait_exists': - case 'defined': - case 'interface_exists': - case 'method_exists': - case 'property_exists': - case 'is_callable': - return; - } - - $props = [ - 'file' => $callerFrame['file'] ?? null, - 'line' => $callerFrame['line'] ?? null, - 'trace' => \array_slice($trace, 1 + $i), - ]; - - foreach ($props as $p => $v) { - if (null !== $v) { - $r = new \ReflectionProperty(\Exception::class, $p); - $r->setValue($e, $v); - } - } - } - - throw $e; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/ComposerResource.php b/projects/priceservice/vendor/symfony/config/Resource/ComposerResource.php deleted file mode 100644 index 8348122..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/ComposerResource.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ComposerResource tracks the PHP version and Composer dependencies. - * - * @author Nicolas Grekas - * - * @final - */ -class ComposerResource implements SelfCheckingResourceInterface -{ - private array $vendors; - - private static array $runtimeVendors; - - public function __construct() - { - self::refresh(); - $this->vendors = self::$runtimeVendors; - } - - public function getVendors(): array - { - return array_keys($this->vendors); - } - - public function __toString(): string - { - return __CLASS__; - } - - public function isFresh(int $timestamp): bool - { - self::refresh(); - - return array_values(self::$runtimeVendors) === array_values($this->vendors); - } - - private static function refresh(): void - { - self::$runtimeVendors = []; - - foreach (get_declared_classes() as $class) { - if ('C' === $class[0] && str_starts_with($class, 'ComposerAutoloaderInit')) { - $r = new \ReflectionClass($class); - $v = \dirname($r->getFileName(), 2); - if (is_file($v.'/composer/installed.json')) { - self::$runtimeVendors[$v] = @filemtime($v.'/composer/installed.json'); - } - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/DirectoryResource.php b/projects/priceservice/vendor/symfony/config/Resource/DirectoryResource.php deleted file mode 100644 index df486a0..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/DirectoryResource.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * DirectoryResource represents a resources stored in a subdirectory tree. - * - * @author Fabien Potencier - * - * @final - */ -class DirectoryResource implements SelfCheckingResourceInterface -{ - private string $resource; - private ?string $pattern; - - /** - * @param string $resource The file path to the resource - * @param string|null $pattern A pattern to restrict monitored files - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource, ?string $pattern = null) - { - $resolvedResource = realpath($resource) ?: (file_exists($resource) ? $resource : false); - $this->pattern = $pattern; - - if (false === $resolvedResource || !is_dir($resolvedResource)) { - throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist.', $resource)); - } - - $this->resource = $resolvedResource; - } - - public function __toString(): string - { - return hash('xxh128', serialize([$this->resource, $this->pattern])); - } - - public function getResource(): string - { - return $this->resource; - } - - public function getPattern(): ?string - { - return $this->pattern; - } - - public function isFresh(int $timestamp): bool - { - if (!is_dir($this->resource)) { - return false; - } - - if ($timestamp < filemtime($this->resource)) { - return false; - } - - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->resource), \RecursiveIteratorIterator::SELF_FIRST) as $file) { - // if regex filtering is enabled only check matching files - if ($this->pattern && $file->isFile() && !preg_match($this->pattern, $file->getBasename())) { - continue; - } - - // always monitor directories for changes, except the .. entries - // (otherwise deleted files wouldn't get detected) - if ($file->isDir() && str_ends_with($file, '/..')) { - continue; - } - - // for broken links - try { - $fileMTime = $file->getMTime(); - } catch (\RuntimeException) { - continue; - } - - // early return if a file's mtime exceeds the passed timestamp - if ($timestamp < $fileMTime) { - return false; - } - } - - return true; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/FileExistenceResource.php b/projects/priceservice/vendor/symfony/config/Resource/FileExistenceResource.php deleted file mode 100644 index 666866e..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/FileExistenceResource.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * FileExistenceResource represents a resource stored on the filesystem. - * Freshness is only evaluated against resource creation or deletion. - * - * The resource can be a file or a directory. - * - * @author Charles-Henri Bruyand - * - * @final - */ -class FileExistenceResource implements SelfCheckingResourceInterface -{ - private string $resource; - - private bool $exists; - - /** - * @param string $resource The file path to the resource - */ - public function __construct(string $resource) - { - $this->resource = $resource; - $this->exists = file_exists($resource); - } - - public function __toString(): string - { - return 'existence.'.$this->resource; - } - - public function getResource(): string - { - return $this->resource; - } - - public function isFresh(int $timestamp): bool - { - return file_exists($this->resource) === $this->exists; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/FileResource.php b/projects/priceservice/vendor/symfony/config/Resource/FileResource.php deleted file mode 100644 index 6e8f9bd..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/FileResource.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * FileResource represents a resource stored on the filesystem. - * - * The resource can be a file or a directory. - * - * @author Fabien Potencier - * - * @final - */ -class FileResource implements SelfCheckingResourceInterface -{ - private string $resource; - - /** - * @param string $resource The file path to the resource - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource) - { - $resolvedResource = realpath($resource) ?: (file_exists($resource) ? $resource : false); - - if (false === $resolvedResource) { - throw new \InvalidArgumentException(sprintf('The file "%s" does not exist.', $resource)); - } - - $this->resource = $resolvedResource; - } - - public function __toString(): string - { - return $this->resource; - } - - /** - * Returns the canonicalized, absolute path to the resource. - */ - public function getResource(): string - { - return $this->resource; - } - - public function isFresh(int $timestamp): bool - { - return false !== ($filemtime = @filemtime($this->resource)) && $filemtime <= $timestamp; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/GlobResource.php b/projects/priceservice/vendor/symfony/config/Resource/GlobResource.php deleted file mode 100644 index 2aedc84..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/GlobResource.php +++ /dev/null @@ -1,249 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\Finder\Finder; -use Symfony\Component\Finder\Glob; - -/** - * GlobResource represents a set of resources stored on the filesystem. - * - * Only existence/removal is tracked (not mtimes.) - * - * @author Nicolas Grekas - * - * @final - * - * @implements \IteratorAggregate - */ -class GlobResource implements \IteratorAggregate, SelfCheckingResourceInterface -{ - private string $prefix; - private string $pattern; - private bool $recursive; - private string $hash; - private bool $forExclusion; - private array $excludedPrefixes; - private int $globBrace; - - /** - * @param string $prefix A directory prefix - * @param string $pattern A glob pattern - * @param bool $recursive Whether directories should be scanned recursively or not - * - * @throws \InvalidArgumentException - */ - public function __construct(string $prefix, string $pattern, bool $recursive, bool $forExclusion = false, array $excludedPrefixes = []) - { - ksort($excludedPrefixes); - $resolvedPrefix = realpath($prefix) ?: (file_exists($prefix) ? $prefix : false); - $this->pattern = $pattern; - $this->recursive = $recursive; - $this->forExclusion = $forExclusion; - $this->excludedPrefixes = $excludedPrefixes; - $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0; - - if (false === $resolvedPrefix) { - throw new \InvalidArgumentException(sprintf('The path "%s" does not exist.', $prefix)); - } - - $this->prefix = $resolvedPrefix; - } - - public function getPrefix(): string - { - return $this->prefix; - } - - public function __toString(): string - { - return 'glob.'.$this->prefix.(int) $this->recursive.$this->pattern.(int) $this->forExclusion.implode("\0", $this->excludedPrefixes); - } - - public function isFresh(int $timestamp): bool - { - $hash = $this->computeHash(); - $this->hash ??= $hash; - - return $this->hash === $hash; - } - - /** - * @internal - */ - public function __sleep(): array - { - $this->hash ??= $this->computeHash(); - - return ['prefix', 'pattern', 'recursive', 'hash', 'forExclusion', 'excludedPrefixes']; - } - - /** - * @internal - */ - public function __wakeup(): void - { - $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0; - } - - public function getIterator(): \Traversable - { - if ((!$this->recursive && '' === $this->pattern) || !file_exists($this->prefix)) { - return; - } - - if (is_file($prefix = str_replace('\\', '/', $this->prefix))) { - $prefix = \dirname($prefix); - $pattern = basename($prefix).$this->pattern; - } else { - $pattern = $this->pattern; - } - - if (class_exists(Finder::class)) { - $regex = Glob::toRegex($pattern); - if ($this->recursive) { - $regex = substr_replace($regex, '(/|$)', -2, 1); - } - } else { - $regex = null; - } - - $prefixLen = \strlen($prefix); - $paths = null; - - if ('' === $this->pattern && is_file($this->prefix)) { - $paths = [$this->prefix => null]; - } elseif (!str_starts_with($this->prefix, 'phar://') && (null !== $regex || !str_contains($this->pattern, '/**/'))) { - if (!str_contains($this->pattern, '/**/') && ($this->globBrace || !str_contains($this->pattern, '{'))) { - $paths = array_fill_keys(glob($this->prefix.$this->pattern, \GLOB_NOSORT | $this->globBrace), null); - } elseif (!str_contains($this->pattern, '\\') || !preg_match('/\\\\[,{}]/', $this->pattern)) { - $paths = []; - foreach ($this->expandGlob($this->pattern) as $p) { - if (false !== $i = strpos($p, '/**/')) { - $p = substr_replace($p, '/*', $i); - } - $paths += array_fill_keys(glob($this->prefix.$p, \GLOB_NOSORT), false !== $i ? $regex : null); - } - } - } - - if (null !== $paths) { - uksort($paths, 'strnatcmp'); - foreach ($paths as $path => $regex) { - if ($this->excludedPrefixes) { - $normalizedPath = str_replace('\\', '/', $path); - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - continue 2; - } - } while ($prefix !== $dirPath && $dirPath !== $normalizedPath = \dirname($dirPath)); - } - - if ((null === $regex || preg_match($regex, substr(str_replace('\\', '/', $path), $prefixLen))) && is_file($path)) { - yield $path => new \SplFileInfo($path); - } - if (!is_dir($path)) { - continue; - } - if ($this->forExclusion && (null === $regex || preg_match($regex, substr(str_replace('\\', '/', $path), $prefixLen)))) { - yield $path => new \SplFileInfo($path); - continue; - } - if (!($this->recursive || null !== $regex) || isset($this->excludedPrefixes[str_replace('\\', '/', $path)])) { - continue; - } - $files = iterator_to_array(new \RecursiveIteratorIterator( - new \RecursiveCallbackFilterIterator( - new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), - fn (\SplFileInfo $file, $path) => !isset($this->excludedPrefixes[$path = str_replace('\\', '/', $path)]) - && (null === $regex || preg_match($regex, substr($path, $prefixLen)) || $file->isDir()) - && '.' !== $file->getBasename()[0] - ), - \RecursiveIteratorIterator::LEAVES_ONLY - )); - uksort($files, 'strnatcmp'); - - foreach ($files as $path => $info) { - if ($info->isFile()) { - yield $path => $info; - } - } - } - - return; - } - - if (!class_exists(Finder::class)) { - throw new \LogicException('Extended glob patterns cannot be used as the Finder component is not installed. Try running "composer require symfony/finder".'); - } - - yield from (new Finder()) - ->followLinks() - ->filter(function (\SplFileInfo $info) use ($regex, $prefixLen, $prefix) { - $normalizedPath = str_replace('\\', '/', $info->getPathname()); - if (!preg_match($regex, substr($normalizedPath, $prefixLen)) || !$info->isFile()) { - return false; - } - if ($this->excludedPrefixes) { - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - return false; - } - } while ($prefix !== $dirPath && $dirPath !== $normalizedPath = \dirname($dirPath)); - } - }) - ->sortByName() - ->in($prefix) - ; - } - - private function computeHash(): string - { - $hash = hash_init('xxh128'); - - foreach ($this->getIterator() as $path => $info) { - hash_update($hash, $path."\n"); - } - - return hash_final($hash); - } - - private function expandGlob(string $pattern): array - { - $segments = preg_split('/\{([^{}]*+)\}/', $pattern, -1, \PREG_SPLIT_DELIM_CAPTURE); - $paths = [$segments[0]]; - $patterns = []; - - for ($i = 1; $i < \count($segments); $i += 2) { - $patterns = []; - - foreach (explode(',', $segments[$i]) as $s) { - foreach ($paths as $p) { - $patterns[] = $p.$s.$segments[1 + $i]; - } - } - - $paths = $patterns; - } - - $j = 0; - foreach ($patterns as $i => $p) { - if (str_contains($p, '{')) { - $p = $this->expandGlob($p); - array_splice($paths, $i + $j, 1, $p); - $j += \count($p) - 1; - } - } - - return $paths; - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/ReflectionClassResource.php b/projects/priceservice/vendor/symfony/config/Resource/ReflectionClassResource.php deleted file mode 100644 index dbd47e6..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/ReflectionClassResource.php +++ /dev/null @@ -1,206 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\Messenger\Handler\MessageSubscriberInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * @author Nicolas Grekas - * - * @final - */ -class ReflectionClassResource implements SelfCheckingResourceInterface -{ - private array $files = []; - private string $className; - private \ReflectionClass $classReflector; - private array $excludedVendors = []; - private string $hash; - - public function __construct(\ReflectionClass $classReflector, array $excludedVendors = []) - { - $this->className = $classReflector->name; - $this->classReflector = $classReflector; - $this->excludedVendors = $excludedVendors; - } - - public function isFresh(int $timestamp): bool - { - if (!isset($this->hash)) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - - foreach ($this->files as $file => $v) { - if (false === $filemtime = @filemtime($file)) { - return false; - } - - if ($filemtime > $timestamp) { - return $this->hash === $this->computeHash(); - } - } - - return true; - } - - public function __toString(): string - { - return 'reflection.'.$this->className; - } - - /** - * @internal - */ - public function __sleep(): array - { - if (!isset($this->hash)) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - - return ['files', 'className', 'hash']; - } - - private function loadFiles(\ReflectionClass $class): void - { - foreach ($class->getInterfaces() as $v) { - $this->loadFiles($v); - } - do { - $file = $class->getFileName(); - if (false !== $file && is_file($file)) { - foreach ($this->excludedVendors as $vendor) { - if (str_starts_with($file, $vendor) && false !== strpbrk(substr($file, \strlen($vendor), 1), '/'.\DIRECTORY_SEPARATOR)) { - $file = false; - break; - } - } - if ($file) { - $this->files[$file] = null; - } - } - foreach ($class->getTraits() as $v) { - $this->loadFiles($v); - } - } while ($class = $class->getParentClass()); - } - - private function computeHash(): string - { - try { - $this->classReflector ??= new \ReflectionClass($this->className); - } catch (\ReflectionException) { - // the class does not exist anymore - return false; - } - $hash = hash_init('xxh128'); - - foreach ($this->generateSignature($this->classReflector) as $info) { - hash_update($hash, $info); - } - - return hash_final($hash); - } - - private function generateSignature(\ReflectionClass $class): iterable - { - $attributes = []; - foreach ($class->getAttributes() as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - yield print_r($attributes, true); - $attributes = []; - - yield $class->getDocComment(); - yield (int) $class->isFinal(); - yield (int) $class->isAbstract(); - - if ($class->isTrait()) { - yield print_r(class_uses($class->name), true); - } else { - yield print_r(class_parents($class->name), true); - yield print_r(class_implements($class->name), true); - yield print_r($class->getConstants(), true); - } - - if (!$class->isInterface()) { - $defaults = $class->getDefaultProperties(); - - foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED) as $p) { - foreach ($p->getAttributes() as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - yield print_r($attributes, true); - $attributes = []; - - yield $p->getDocComment(); - yield $p->isDefault() ? '' : ''; - yield $p->isPublic() ? 'public' : 'protected'; - yield $p->isStatic() ? 'static' : ''; - yield '$'.$p->name; - yield print_r(isset($defaults[$p->name]) && !\is_object($defaults[$p->name]) ? $defaults[$p->name] : null, true); - } - } - - foreach ($class->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) as $m) { - foreach ($m->getAttributes() as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - yield print_r($attributes, true); - $attributes = []; - - $defaults = []; - foreach ($m->getParameters() as $p) { - foreach ($p->getAttributes() as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - yield print_r($attributes, true); - $attributes = []; - - if (!$p->isDefaultValueAvailable()) { - $defaults[$p->name] = null; - - continue; - } - - $defaults[$p->name] = (string) $p; - } - - yield preg_replace('/^ @@.*/m', '', $m); - yield print_r($defaults, true); - } - - if ($class->isAbstract() || $class->isInterface() || $class->isTrait()) { - return; - } - - if (interface_exists(EventSubscriberInterface::class, false) && $class->isSubclassOf(EventSubscriberInterface::class)) { - yield EventSubscriberInterface::class; - yield print_r($class->name::getSubscribedEvents(), true); - } - - if (interface_exists(MessageSubscriberInterface::class, false) && $class->isSubclassOf(MessageSubscriberInterface::class)) { - yield MessageSubscriberInterface::class; - foreach ($class->name::getHandledMessages() as $key => $value) { - yield $key.print_r($value, true); - } - } - - if (interface_exists(ServiceSubscriberInterface::class, false) && $class->isSubclassOf(ServiceSubscriberInterface::class)) { - yield ServiceSubscriberInterface::class; - yield print_r($class->name::getSubscribedServices(), true); - } - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/ResourceInterface.php b/projects/priceservice/vendor/symfony/config/Resource/ResourceInterface.php deleted file mode 100644 index a97671d..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/ResourceInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ResourceInterface is the interface that must be implemented by all Resource classes. - * - * @author Fabien Potencier - */ -interface ResourceInterface extends \Stringable -{ - /** - * Returns a string representation of the Resource. - * - * This method is necessary to allow for resource de-duplication, for example by means - * of array_unique(). The string returned need not have a particular meaning, but has - * to be identical for different ResourceInterface instances referring to the same - * resource; and it should be unlikely to collide with that of other, unrelated - * resource instances. - */ - public function __toString(): string; -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php b/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php deleted file mode 100644 index 5abdbad..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\Config\ResourceCheckerInterface; - -/** - * Resource checker for instances of SelfCheckingResourceInterface. - * - * As these resources perform the actual check themselves, we can provide - * this class as a standard way of validating them. - * - * @author Matthias Pigulla - */ -class SelfCheckingResourceChecker implements ResourceCheckerInterface -{ - // Common shared cache, because this checker can be used in different - // situations. For example, when using the full stack framework, the router - // and the container have their own cache. But they may check the very same - // resources - private static array $cache = []; - - public function supports(ResourceInterface $metadata): bool - { - return $metadata instanceof SelfCheckingResourceInterface; - } - - /** - * @param SelfCheckingResourceInterface $resource - */ - public function isFresh(ResourceInterface $resource, int $timestamp): bool - { - $key = "$resource:$timestamp"; - - return self::$cache[$key] ??= $resource->isFresh($timestamp); - } -} diff --git a/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php b/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php deleted file mode 100644 index 197ff1f..0000000 --- a/projects/priceservice/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * Interface for Resources that can check for freshness autonomously, - * without special support from external services. - * - * @author Matthias Pigulla - */ -interface SelfCheckingResourceInterface extends ResourceInterface -{ - /** - * Returns true if the resource has not been updated since the given timestamp. - * - * @param int $timestamp The last time the resource was loaded - */ - public function isFresh(int $timestamp): bool; -} diff --git a/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCache.php b/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCache.php deleted file mode 100644 index 1e58d21..0000000 --- a/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCache.php +++ /dev/null @@ -1,181 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\Filesystem\Exception\IOException; -use Symfony\Component\Filesystem\Filesystem; - -/** - * ResourceCheckerConfigCache uses instances of ResourceCheckerInterface - * to check whether cached data is still fresh. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCache implements ConfigCacheInterface -{ - private string $file; - - /** - * @var iterable - */ - private iterable $resourceCheckers; - - /** - * @param string $file The absolute cache path - * @param iterable $resourceCheckers The ResourceCheckers to use for the freshness check - */ - public function __construct(string $file, iterable $resourceCheckers = []) - { - $this->file = $file; - $this->resourceCheckers = $resourceCheckers; - } - - public function getPath(): string - { - return $this->file; - } - - /** - * Checks if the cache is still fresh. - * - * This implementation will make a decision solely based on the ResourceCheckers - * passed in the constructor. - * - * The first ResourceChecker that supports a given resource is considered authoritative. - * Resources with no matching ResourceChecker will silently be ignored and considered fresh. - */ - public function isFresh(): bool - { - if (!is_file($this->file)) { - return false; - } - - if ($this->resourceCheckers instanceof \Traversable && !$this->resourceCheckers instanceof \Countable) { - $this->resourceCheckers = iterator_to_array($this->resourceCheckers); - } - - if (!\count($this->resourceCheckers)) { - return true; // shortcut - if we don't have any checkers we don't need to bother with the meta file at all - } - - $metadata = $this->getMetaFile(); - - if (!is_file($metadata)) { - return false; - } - - $meta = $this->safelyUnserialize($metadata); - - if (false === $meta) { - return false; - } - - $time = filemtime($this->file); - - foreach ($meta as $resource) { - foreach ($this->resourceCheckers as $checker) { - if (!$checker->supports($resource)) { - continue; // next checker - } - if ($checker->isFresh($resource, $time)) { - break; // no need to further check this resource - } - - return false; // cache is stale - } - // no suitable checker found, ignore this resource - } - - return true; - } - - /** - * Writes cache. - * - * @param string $content The content to write in the cache - * @param ResourceInterface[] $metadata An array of metadata - * - * @return void - * - * @throws \RuntimeException When cache file can't be written - */ - public function write(string $content, ?array $metadata = null) - { - $mode = 0666; - $umask = umask(); - $filesystem = new Filesystem(); - $filesystem->dumpFile($this->file, $content); - try { - $filesystem->chmod($this->file, $mode, $umask); - } catch (IOException) { - // discard chmod failure (some filesystem may not support it) - } - - if (null !== $metadata) { - $filesystem->dumpFile($this->getMetaFile(), serialize($metadata)); - try { - $filesystem->chmod($this->getMetaFile(), $mode, $umask); - } catch (IOException) { - // discard chmod failure (some filesystem may not support it) - } - } - - if (\function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL)) { - @opcache_invalidate($this->file, true); - } - } - - /** - * Gets the meta file path. - */ - private function getMetaFile(): string - { - return $this->file.'.meta'; - } - - private function safelyUnserialize(string $file): mixed - { - $meta = false; - $content = file_get_contents($file); - $signalingException = new \UnexpectedValueException(); - $prevUnserializeHandler = ini_set('unserialize_callback_func', self::class.'::handleUnserializeCallback'); - $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) { - if (__FILE__ === $file && !\in_array($type, [\E_DEPRECATED, \E_USER_DEPRECATED], true)) { - throw $signalingException; - } - - return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : false; - }); - - try { - $meta = unserialize($content); - } catch (\Throwable $e) { - if ($e !== $signalingException) { - throw $e; - } - } finally { - restore_error_handler(); - ini_set('unserialize_callback_func', $prevUnserializeHandler); - } - - return $meta; - } - - /** - * @internal - */ - public static function handleUnserializeCallback(string $class): void - { - trigger_error('Class not found: '.$class); - } -} diff --git a/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php b/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php deleted file mode 100644 index 97d5200..0000000 --- a/projects/priceservice/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * A ConfigCacheFactory implementation that validates the - * cache with an arbitrary set of ResourceCheckers. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCacheFactory implements ConfigCacheFactoryInterface -{ - private iterable $resourceCheckers = []; - - /** - * @param iterable $resourceCheckers - */ - public function __construct(iterable $resourceCheckers = []) - { - $this->resourceCheckers = $resourceCheckers; - } - - public function cache(string $file, callable $callable): ConfigCacheInterface - { - $cache = new ResourceCheckerConfigCache($file, $this->resourceCheckers); - if (!$cache->isFresh()) { - $callable($cache); - } - - return $cache; - } -} diff --git a/projects/priceservice/vendor/symfony/config/ResourceCheckerInterface.php b/projects/priceservice/vendor/symfony/config/ResourceCheckerInterface.php deleted file mode 100644 index 6b1c6c5..0000000 --- a/projects/priceservice/vendor/symfony/config/ResourceCheckerInterface.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Interface for ResourceCheckers. - * - * When a ResourceCheckerConfigCache instance is checked for freshness, all its associated - * metadata resources are passed to ResourceCheckers. The ResourceCheckers - * can then inspect the resources and decide whether the cache can be considered - * fresh or not. - * - * @author Matthias Pigulla - * @author Benjamin Klotz - */ -interface ResourceCheckerInterface -{ - /** - * Queries the ResourceChecker whether it can validate a given - * resource or not. - * - * @return bool - */ - public function supports(ResourceInterface $metadata); - - /** - * Validates the resource. - * - * @param int $timestamp The timestamp at which the cache associated with this resource was created - * - * @return bool - */ - public function isFresh(ResourceInterface $resource, int $timestamp); -} diff --git a/projects/priceservice/vendor/symfony/config/Util/Exception/InvalidXmlException.php b/projects/priceservice/vendor/symfony/config/Util/Exception/InvalidXmlException.php deleted file mode 100644 index 155571c..0000000 --- a/projects/priceservice/vendor/symfony/config/Util/Exception/InvalidXmlException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML parsing with an XSD schema file path or a callable validator produces errors unrelated - * to the actual XML parsing. - * - * @author Ole Rößner - */ -class InvalidXmlException extends XmlParsingException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Util/Exception/XmlParsingException.php b/projects/priceservice/vendor/symfony/config/Util/Exception/XmlParsingException.php deleted file mode 100644 index 9bceed6..0000000 --- a/projects/priceservice/vendor/symfony/config/Util/Exception/XmlParsingException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML cannot be parsed properly. - * - * @author Ole Rößner - */ -class XmlParsingException extends \InvalidArgumentException -{ -} diff --git a/projects/priceservice/vendor/symfony/config/Util/XmlUtils.php b/projects/priceservice/vendor/symfony/config/Util/XmlUtils.php deleted file mode 100644 index eb6f0f5..0000000 --- a/projects/priceservice/vendor/symfony/config/Util/XmlUtils.php +++ /dev/null @@ -1,272 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util; - -use Symfony\Component\Config\Util\Exception\InvalidXmlException; -use Symfony\Component\Config\Util\Exception\XmlParsingException; - -/** - * XMLUtils is a bunch of utility methods to XML operations. - * - * This class contains static methods only and is not meant to be instantiated. - * - * @author Fabien Potencier - * @author Martin Hasoň - * @author Ole Rößner - */ -class XmlUtils -{ - /** - * This class should not be instantiated. - */ - private function __construct() - { - } - - /** - * Parses an XML string. - * - * @param string $content An XML string - * @param string|callable|null $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @throws XmlParsingException When parsing of XML file returns error - * @throws InvalidXmlException When parsing of XML with schema or callable produces any errors unrelated to the XML parsing itself - * @throws \RuntimeException When DOM extension is missing - */ - public static function parse(string $content, string|callable|null $schemaOrCallable = null): \DOMDocument - { - if (!\extension_loaded('dom')) { - throw new \LogicException('Extension DOM is required.'); - } - - $internalErrors = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $dom = new \DOMDocument(); - $dom->validateOnParse = true; - if (!$dom->loadXML($content, \LIBXML_NONET | \LIBXML_COMPACT)) { - throw new XmlParsingException(implode("\n", static::getXmlErrors($internalErrors))); - } - - $dom->normalizeDocument(); - - libxml_use_internal_errors($internalErrors); - - foreach ($dom->childNodes as $child) { - if (\XML_DOCUMENT_TYPE_NODE === $child->nodeType) { - throw new XmlParsingException('Document types are not allowed.'); - } - } - - if (null !== $schemaOrCallable) { - $internalErrors = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $e = null; - if (\is_callable($schemaOrCallable)) { - try { - $valid = $schemaOrCallable($dom, $internalErrors); - } catch (\Exception $e) { - $valid = false; - } - } elseif (is_file($schemaOrCallable)) { - $schemaSource = file_get_contents((string) $schemaOrCallable); - $valid = @$dom->schemaValidateSource($schemaSource); - } else { - libxml_use_internal_errors($internalErrors); - - throw new XmlParsingException(sprintf('Invalid XSD file: "%s".', $schemaOrCallable)); - } - - if (!$valid) { - $messages = static::getXmlErrors($internalErrors); - if (!$messages) { - throw new InvalidXmlException('The XML is not valid.', 0, $e); - } - throw new XmlParsingException(implode("\n", $messages), 0, $e); - } - } - - libxml_clear_errors(); - libxml_use_internal_errors($internalErrors); - - return $dom; - } - - /** - * Loads an XML file. - * - * @param string $file An XML file path - * @param string|callable|null $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @throws \InvalidArgumentException When loading of XML file returns error - * @throws XmlParsingException When XML parsing returns any errors - * @throws \RuntimeException When DOM extension is missing - */ - public static function loadFile(string $file, string|callable|null $schemaOrCallable = null): \DOMDocument - { - if (!is_file($file)) { - throw new \InvalidArgumentException(sprintf('Resource "%s" is not a file.', $file)); - } - - if (!is_readable($file)) { - throw new \InvalidArgumentException(sprintf('File "%s" is not readable.', $file)); - } - - $content = @file_get_contents($file); - - if ('' === trim($content)) { - throw new \InvalidArgumentException(sprintf('File "%s" does not contain valid XML, it is empty.', $file)); - } - - try { - return static::parse($content, $schemaOrCallable); - } catch (InvalidXmlException $e) { - throw new XmlParsingException(sprintf('The XML file "%s" is not valid.', $file), 0, $e->getPrevious()); - } - } - - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - * @param bool $checkPrefix Check prefix in an element or an attribute name - */ - public static function convertDomElementToArray(\DOMElement $element, bool $checkPrefix = true): mixed - { - $prefix = (string) $element->prefix; - $empty = true; - $config = []; - foreach ($element->attributes as $name => $node) { - if ($checkPrefix && !\in_array((string) $node->prefix, ['', $prefix], true)) { - continue; - } - $config[$name] = static::phpize($node->value); - $empty = false; - } - - $nodeValue = false; - foreach ($element->childNodes as $node) { - if ($node instanceof \DOMText) { - if ('' !== trim($node->nodeValue)) { - $nodeValue = trim($node->nodeValue); - $empty = false; - } - } elseif ($checkPrefix && $prefix != (string) $node->prefix) { - continue; - } elseif (!$node instanceof \DOMComment) { - $value = static::convertDomElementToArray($node, $checkPrefix); - - $key = $node->localName; - if (isset($config[$key])) { - if (!\is_array($config[$key]) || !\is_int(key($config[$key]))) { - $config[$key] = [$config[$key]]; - } - $config[$key][] = $value; - } else { - $config[$key] = $value; - } - - $empty = false; - } - } - - if (false !== $nodeValue) { - $value = static::phpize($nodeValue); - if (\count($config)) { - $config['value'] = $value; - } else { - $config = $value; - } - } - - return !$empty ? $config : null; - } - - /** - * Converts an xml value to a PHP type. - */ - public static function phpize(string|\Stringable $value): mixed - { - $value = (string) $value; - $lowercaseValue = strtolower($value); - - switch (true) { - case 'null' === $lowercaseValue: - return null; - case ctype_digit($value): - case isset($value[1]) && '-' === $value[0] && ctype_digit(substr($value, 1)): - $raw = $value; - $cast = (int) $value; - - return self::isOctal($value) ? \intval($value, 8) : (($raw === (string) $cast) ? $cast : $raw); - case 'true' === $lowercaseValue: - return true; - case 'false' === $lowercaseValue: - return false; - case isset($value[1]) && '0b' == $value[0].$value[1] && preg_match('/^0b[01]*$/', $value): - return bindec($value); - case is_numeric($value): - return '0x' === $value[0].$value[1] ? hexdec($value) : (float) $value; - case preg_match('/^0x[0-9a-f]++$/i', $value): - return hexdec($value); - case preg_match('/^[+-]?[0-9]+(\.[0-9]+)?$/', $value): - return (float) $value; - default: - return $value; - } - } - - /** - * @return array - */ - protected static function getXmlErrors(bool $internalErrors) - { - $errors = []; - foreach (libxml_get_errors() as $error) { - $errors[] = sprintf('[%s %s] %s (in %s - line %d, column %d)', - \LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR', - $error->code, - trim($error->message), - $error->file ?: 'n/a', - $error->line, - $error->column - ); - } - - libxml_clear_errors(); - libxml_use_internal_errors($internalErrors); - - return $errors; - } - - private static function isOctal(string $str): bool - { - if ('-' === $str[0]) { - $str = substr($str, 1); - } - - return $str === '0'.decoct(\intval($str, 8)); - } -} diff --git a/projects/priceservice/vendor/symfony/config/composer.json b/projects/priceservice/vendor/symfony/config/composer.json deleted file mode 100644 index dbd34f1..0000000 --- a/projects/priceservice/vendor/symfony/config/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "symfony/config", - "type": "library", - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/polyfill-ctype": "~1.8" - }, - "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/finder": "<5.4", - "symfony/service-contracts": "<2.5" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Config\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/console/Application.php b/projects/priceservice/vendor/symfony/console/Application.php deleted file mode 100644 index b876bc9..0000000 --- a/projects/priceservice/vendor/symfony/console/Application.php +++ /dev/null @@ -1,1331 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Command\CompleteCommand; -use Symfony\Component\Console\Command\DumpCompletionCommand; -use Symfony\Component\Console\Command\HelpCommand; -use Symfony\Component\Console\Command\LazyCommand; -use Symfony\Component\Console\Command\ListCommand; -use Symfony\Component\Console\Command\SignalableCommandInterface; -use Symfony\Component\Console\CommandLoader\CommandLoaderInterface; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Event\ConsoleCommandEvent; -use Symfony\Component\Console\Event\ConsoleErrorEvent; -use Symfony\Component\Console\Event\ConsoleSignalEvent; -use Symfony\Component\Console\Event\ConsoleTerminateEvent; -use Symfony\Component\Console\Exception\CommandNotFoundException; -use Symfony\Component\Console\Exception\ExceptionInterface; -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Exception\NamespaceNotFoundException; -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Helper\DebugFormatterHelper; -use Symfony\Component\Console\Helper\DescriptorHelper; -use Symfony\Component\Console\Helper\FormatterHelper; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Helper\ProcessHelper; -use Symfony\Component\Console\Helper\QuestionHelper; -use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Console\Input\ArrayInput; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputAwareInterface; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\ConsoleOutput; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\SignalRegistry\SignalRegistry; -use Symfony\Component\Console\Style\SymfonyStyle; -use Symfony\Component\ErrorHandler\ErrorHandler; -use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * An Application is the container for a collection of commands. - * - * It is the main entry point of a Console application. - * - * This class is optimized for a standard CLI environment. - * - * Usage: - * - * $app = new Application('myapp', '1.0 (stable)'); - * $app->add(new SimpleCommand()); - * $app->run(); - * - * @author Fabien Potencier - */ -class Application implements ResetInterface -{ - private array $commands = []; - private bool $wantHelps = false; - private ?Command $runningCommand = null; - private string $name; - private string $version; - private ?CommandLoaderInterface $commandLoader = null; - private bool $catchExceptions = true; - private bool $catchErrors = false; - private bool $autoExit = true; - private InputDefinition $definition; - private HelperSet $helperSet; - private ?EventDispatcherInterface $dispatcher = null; - private Terminal $terminal; - private string $defaultCommand; - private bool $singleCommand = false; - private bool $initialized = false; - private ?SignalRegistry $signalRegistry = null; - private array $signalsToDispatchEvent = []; - - public function __construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN') - { - $this->name = $name; - $this->version = $version; - $this->terminal = new Terminal(); - $this->defaultCommand = 'list'; - if (\defined('SIGINT') && SignalRegistry::isSupported()) { - $this->signalRegistry = new SignalRegistry(); - $this->signalsToDispatchEvent = [\SIGINT, \SIGTERM, \SIGUSR1, \SIGUSR2]; - } - } - - /** - * @final - */ - public function setDispatcher(EventDispatcherInterface $dispatcher): void - { - $this->dispatcher = $dispatcher; - } - - /** - * @return void - */ - public function setCommandLoader(CommandLoaderInterface $commandLoader) - { - $this->commandLoader = $commandLoader; - } - - public function getSignalRegistry(): SignalRegistry - { - if (!$this->signalRegistry) { - throw new RuntimeException('Signals are not supported. Make sure that the "pcntl" extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); - } - - return $this->signalRegistry; - } - - /** - * @return void - */ - public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent) - { - $this->signalsToDispatchEvent = $signalsToDispatchEvent; - } - - /** - * Runs the current application. - * - * @return int 0 if everything went fine, or an error code - * - * @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}. - */ - public function run(?InputInterface $input = null, ?OutputInterface $output = null): int - { - if (\function_exists('putenv')) { - @putenv('LINES='.$this->terminal->getHeight()); - @putenv('COLUMNS='.$this->terminal->getWidth()); - } - - $input ??= new ArgvInput(); - $output ??= new ConsoleOutput(); - - $renderException = function (\Throwable $e) use ($output) { - if ($output instanceof ConsoleOutputInterface) { - $this->renderThrowable($e, $output->getErrorOutput()); - } else { - $this->renderThrowable($e, $output); - } - }; - if ($phpHandler = set_exception_handler($renderException)) { - restore_exception_handler(); - if (!\is_array($phpHandler) || !$phpHandler[0] instanceof ErrorHandler) { - $errorHandler = true; - } elseif ($errorHandler = $phpHandler[0]->setExceptionHandler($renderException)) { - $phpHandler[0]->setExceptionHandler($errorHandler); - } - } - - try { - $this->configureIO($input, $output); - - $exitCode = $this->doRun($input, $output); - } catch (\Throwable $e) { - if ($e instanceof \Exception && !$this->catchExceptions) { - throw $e; - } - if (!$e instanceof \Exception && !$this->catchErrors) { - throw $e; - } - - $renderException($e); - - $exitCode = $e->getCode(); - if (is_numeric($exitCode)) { - $exitCode = (int) $exitCode; - if ($exitCode <= 0) { - $exitCode = 1; - } - } else { - $exitCode = 1; - } - } finally { - // if the exception handler changed, keep it - // otherwise, unregister $renderException - if (!$phpHandler) { - if (set_exception_handler($renderException) === $renderException) { - restore_exception_handler(); - } - restore_exception_handler(); - } elseif (!$errorHandler) { - $finalHandler = $phpHandler[0]->setExceptionHandler(null); - if ($finalHandler !== $renderException) { - $phpHandler[0]->setExceptionHandler($finalHandler); - } - } - } - - if ($this->autoExit) { - if ($exitCode > 255) { - $exitCode = 255; - } - - exit($exitCode); - } - - return $exitCode; - } - - /** - * Runs the current application. - * - * @return int 0 if everything went fine, or an error code - */ - public function doRun(InputInterface $input, OutputInterface $output) - { - if (true === $input->hasParameterOption(['--version', '-V'], true)) { - $output->writeln($this->getLongVersion()); - - return 0; - } - - try { - // Makes ArgvInput::getFirstArgument() able to distinguish an option from an argument. - $input->bind($this->getDefinition()); - } catch (ExceptionInterface) { - // Errors must be ignored, full binding/validation happens later when the command is known. - } - - $name = $this->getCommandName($input); - if (true === $input->hasParameterOption(['--help', '-h'], true)) { - if (!$name) { - $name = 'help'; - $input = new ArrayInput(['command_name' => $this->defaultCommand]); - } else { - $this->wantHelps = true; - } - } - - if (!$name) { - $name = $this->defaultCommand; - $definition = $this->getDefinition(); - $definition->setArguments(array_merge( - $definition->getArguments(), - [ - 'command' => new InputArgument('command', InputArgument::OPTIONAL, $definition->getArgument('command')->getDescription(), $name), - ] - )); - } - - try { - $this->runningCommand = null; - // the command name MUST be the first element of the input - $command = $this->find($name); - } catch (\Throwable $e) { - if (($e instanceof CommandNotFoundException && !$e instanceof NamespaceNotFoundException) && 1 === \count($alternatives = $e->getAlternatives()) && $input->isInteractive()) { - $alternative = $alternatives[0]; - - $style = new SymfonyStyle($input, $output); - $output->writeln(''); - $formattedBlock = (new FormatterHelper())->formatBlock(sprintf('Command "%s" is not defined.', $name), 'error', true); - $output->writeln($formattedBlock); - if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) { - if (null !== $this->dispatcher) { - $event = new ConsoleErrorEvent($input, $output, $e); - $this->dispatcher->dispatch($event, ConsoleEvents::ERROR); - - return $event->getExitCode(); - } - - return 1; - } - - $command = $this->find($alternative); - } else { - if (null !== $this->dispatcher) { - $event = new ConsoleErrorEvent($input, $output, $e); - $this->dispatcher->dispatch($event, ConsoleEvents::ERROR); - - if (0 === $event->getExitCode()) { - return 0; - } - - $e = $event->getError(); - } - - try { - if ($e instanceof CommandNotFoundException && $namespace = $this->findNamespace($name)) { - $helper = new DescriptorHelper(); - $helper->describe($output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output, $this, [ - 'format' => 'txt', - 'raw_text' => false, - 'namespace' => $namespace, - 'short' => false, - ]); - - return isset($event) ? $event->getExitCode() : 1; - } - - throw $e; - } catch (NamespaceNotFoundException) { - throw $e; - } - } - } - - if ($command instanceof LazyCommand) { - $command = $command->getCommand(); - } - - $this->runningCommand = $command; - $exitCode = $this->doRunCommand($command, $input, $output); - $this->runningCommand = null; - - return $exitCode; - } - - /** - * @return void - */ - public function reset() - { - } - - /** - * @return void - */ - public function setHelperSet(HelperSet $helperSet) - { - $this->helperSet = $helperSet; - } - - /** - * Get the helper set associated with the command. - */ - public function getHelperSet(): HelperSet - { - return $this->helperSet ??= $this->getDefaultHelperSet(); - } - - /** - * @return void - */ - public function setDefinition(InputDefinition $definition) - { - $this->definition = $definition; - } - - /** - * Gets the InputDefinition related to this Application. - */ - public function getDefinition(): InputDefinition - { - $this->definition ??= $this->getDefaultInputDefinition(); - - if ($this->singleCommand) { - $inputDefinition = $this->definition; - $inputDefinition->setArguments(); - - return $inputDefinition; - } - - return $this->definition; - } - - /** - * Adds suggestions to $suggestions for the current completion input (e.g. option or argument). - */ - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - if ( - CompletionInput::TYPE_ARGUMENT_VALUE === $input->getCompletionType() - && 'command' === $input->getCompletionName() - ) { - foreach ($this->all() as $name => $command) { - // skip hidden commands and aliased commands as they already get added below - if ($command->isHidden() || $command->getName() !== $name) { - continue; - } - $suggestions->suggestValue(new Suggestion($command->getName(), $command->getDescription())); - foreach ($command->getAliases() as $name) { - $suggestions->suggestValue(new Suggestion($name, $command->getDescription())); - } - } - - return; - } - - if (CompletionInput::TYPE_OPTION_NAME === $input->getCompletionType()) { - $suggestions->suggestOptions($this->getDefinition()->getOptions()); - - return; - } - } - - /** - * Gets the help message. - */ - public function getHelp(): string - { - return $this->getLongVersion(); - } - - /** - * Gets whether to catch exceptions or not during commands execution. - */ - public function areExceptionsCaught(): bool - { - return $this->catchExceptions; - } - - /** - * Sets whether to catch exceptions or not during commands execution. - * - * @return void - */ - public function setCatchExceptions(bool $boolean) - { - $this->catchExceptions = $boolean; - } - - /** - * Sets whether to catch errors or not during commands execution. - */ - public function setCatchErrors(bool $catchErrors = true): void - { - $this->catchErrors = $catchErrors; - } - - /** - * Gets whether to automatically exit after a command execution or not. - */ - public function isAutoExitEnabled(): bool - { - return $this->autoExit; - } - - /** - * Sets whether to automatically exit after a command execution or not. - * - * @return void - */ - public function setAutoExit(bool $boolean) - { - $this->autoExit = $boolean; - } - - /** - * Gets the name of the application. - */ - public function getName(): string - { - return $this->name; - } - - /** - * Sets the application name. - * - * @return void - */ - public function setName(string $name) - { - $this->name = $name; - } - - /** - * Gets the application version. - */ - public function getVersion(): string - { - return $this->version; - } - - /** - * Sets the application version. - * - * @return void - */ - public function setVersion(string $version) - { - $this->version = $version; - } - - /** - * Returns the long version of the application. - * - * @return string - */ - public function getLongVersion() - { - if ('UNKNOWN' !== $this->getName()) { - if ('UNKNOWN' !== $this->getVersion()) { - return sprintf('%s %s', $this->getName(), $this->getVersion()); - } - - return $this->getName(); - } - - return 'Console Tool'; - } - - /** - * Registers a new command. - */ - public function register(string $name): Command - { - return $this->add(new Command($name)); - } - - /** - * Adds an array of command objects. - * - * If a Command is not enabled it will not be added. - * - * @param Command[] $commands An array of commands - * - * @return void - */ - public function addCommands(array $commands) - { - foreach ($commands as $command) { - $this->add($command); - } - } - - /** - * Adds a command object. - * - * If a command with the same name already exists, it will be overridden. - * If the command is not enabled it will not be added. - * - * @return Command|null - */ - public function add(Command $command) - { - $this->init(); - - $command->setApplication($this); - - if (!$command->isEnabled()) { - $command->setApplication(null); - - return null; - } - - if (!$command instanceof LazyCommand) { - // Will throw if the command is not correctly initialized. - $command->getDefinition(); - } - - if (!$command->getName()) { - throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_debug_type($command))); - } - - $this->commands[$command->getName()] = $command; - - foreach ($command->getAliases() as $alias) { - $this->commands[$alias] = $command; - } - - return $command; - } - - /** - * Returns a registered command by name or alias. - * - * @return Command - * - * @throws CommandNotFoundException When given command name does not exist - */ - public function get(string $name) - { - $this->init(); - - if (!$this->has($name)) { - throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name)); - } - - // When the command has a different name than the one used at the command loader level - if (!isset($this->commands[$name])) { - throw new CommandNotFoundException(sprintf('The "%s" command cannot be found because it is registered under multiple names. Make sure you don\'t set a different name via constructor or "setName()".', $name)); - } - - $command = $this->commands[$name]; - - if ($this->wantHelps) { - $this->wantHelps = false; - - $helpCommand = $this->get('help'); - $helpCommand->setCommand($command); - - return $helpCommand; - } - - return $command; - } - - /** - * Returns true if the command exists, false otherwise. - */ - public function has(string $name): bool - { - $this->init(); - - return isset($this->commands[$name]) || ($this->commandLoader?->has($name) && $this->add($this->commandLoader->get($name))); - } - - /** - * Returns an array of all unique namespaces used by currently registered commands. - * - * It does not return the global namespace which always exists. - * - * @return string[] - */ - public function getNamespaces(): array - { - $namespaces = []; - foreach ($this->all() as $command) { - if ($command->isHidden()) { - continue; - } - - $namespaces[] = $this->extractAllNamespaces($command->getName()); - - foreach ($command->getAliases() as $alias) { - $namespaces[] = $this->extractAllNamespaces($alias); - } - } - - return array_values(array_unique(array_filter(array_merge([], ...$namespaces)))); - } - - /** - * Finds a registered namespace by a name or an abbreviation. - * - * @throws NamespaceNotFoundException When namespace is incorrect or ambiguous - */ - public function findNamespace(string $namespace): string - { - $allNamespaces = $this->getNamespaces(); - $expr = implode('[^:]*:', array_map('preg_quote', explode(':', $namespace))).'[^:]*'; - $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces); - - if (empty($namespaces)) { - $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace); - - if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) { - if (1 == \count($alternatives)) { - $message .= "\n\nDid you mean this?\n "; - } else { - $message .= "\n\nDid you mean one of these?\n "; - } - - $message .= implode("\n ", $alternatives); - } - - throw new NamespaceNotFoundException($message, $alternatives); - } - - $exact = \in_array($namespace, $namespaces, true); - if (\count($namespaces) > 1 && !$exact) { - throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces)); - } - - return $exact ? $namespace : reset($namespaces); - } - - /** - * Finds a command by name or alias. - * - * Contrary to get, this command tries to find the best - * match if you give it an abbreviation of a name or alias. - * - * @return Command - * - * @throws CommandNotFoundException When command name is incorrect or ambiguous - */ - public function find(string $name) - { - $this->init(); - - $aliases = []; - - foreach ($this->commands as $command) { - foreach ($command->getAliases() as $alias) { - if (!$this->has($alias)) { - $this->commands[$alias] = $command; - } - } - } - - if ($this->has($name)) { - return $this->get($name); - } - - $allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands); - $expr = implode('[^:]*:', array_map('preg_quote', explode(':', $name))).'[^:]*'; - $commands = preg_grep('{^'.$expr.'}', $allCommands); - - if (empty($commands)) { - $commands = preg_grep('{^'.$expr.'}i', $allCommands); - } - - // if no commands matched or we just matched namespaces - if (empty($commands) || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) { - if (false !== $pos = strrpos($name, ':')) { - // check if a namespace exists and contains commands - $this->findNamespace(substr($name, 0, $pos)); - } - - $message = sprintf('Command "%s" is not defined.', $name); - - if ($alternatives = $this->findAlternatives($name, $allCommands)) { - // remove hidden commands - $alternatives = array_filter($alternatives, fn ($name) => !$this->get($name)->isHidden()); - - if (1 == \count($alternatives)) { - $message .= "\n\nDid you mean this?\n "; - } else { - $message .= "\n\nDid you mean one of these?\n "; - } - $message .= implode("\n ", $alternatives); - } - - throw new CommandNotFoundException($message, array_values($alternatives)); - } - - // filter out aliases for commands which are already on the list - if (\count($commands) > 1) { - $commandList = $this->commandLoader ? array_merge(array_flip($this->commandLoader->getNames()), $this->commands) : $this->commands; - $commands = array_unique(array_filter($commands, function ($nameOrAlias) use (&$commandList, $commands, &$aliases) { - if (!$commandList[$nameOrAlias] instanceof Command) { - $commandList[$nameOrAlias] = $this->commandLoader->get($nameOrAlias); - } - - $commandName = $commandList[$nameOrAlias]->getName(); - - $aliases[$nameOrAlias] = $commandName; - - return $commandName === $nameOrAlias || !\in_array($commandName, $commands); - })); - } - - if (\count($commands) > 1) { - $usableWidth = $this->terminal->getWidth() - 10; - $abbrevs = array_values($commands); - $maxLen = 0; - foreach ($abbrevs as $abbrev) { - $maxLen = max(Helper::width($abbrev), $maxLen); - } - $abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen, &$commands) { - if ($commandList[$cmd]->isHidden()) { - unset($commands[array_search($cmd, $commands)]); - - return false; - } - - $abbrev = str_pad($cmd, $maxLen, ' ').' '.$commandList[$cmd]->getDescription(); - - return Helper::width($abbrev) > $usableWidth ? Helper::substr($abbrev, 0, $usableWidth - 3).'...' : $abbrev; - }, array_values($commands)); - - if (\count($commands) > 1) { - $suggestions = $this->getAbbreviationSuggestions(array_filter($abbrevs)); - - throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s.", $name, $suggestions), array_values($commands)); - } - } - - $command = $this->get(reset($commands)); - - if ($command->isHidden()) { - throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name)); - } - - return $command; - } - - /** - * Gets the commands (registered in the given namespace if provided). - * - * The array keys are the full names and the values the command instances. - * - * @return Command[] - */ - public function all(?string $namespace = null) - { - $this->init(); - - if (null === $namespace) { - if (!$this->commandLoader) { - return $this->commands; - } - - $commands = $this->commands; - foreach ($this->commandLoader->getNames() as $name) { - if (!isset($commands[$name]) && $this->has($name)) { - $commands[$name] = $this->get($name); - } - } - - return $commands; - } - - $commands = []; - foreach ($this->commands as $name => $command) { - if ($namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1)) { - $commands[$name] = $command; - } - } - - if ($this->commandLoader) { - foreach ($this->commandLoader->getNames() as $name) { - if (!isset($commands[$name]) && $namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1) && $this->has($name)) { - $commands[$name] = $this->get($name); - } - } - } - - return $commands; - } - - /** - * Returns an array of possible abbreviations given a set of names. - * - * @return string[][] - */ - public static function getAbbreviations(array $names): array - { - $abbrevs = []; - foreach ($names as $name) { - for ($len = \strlen($name); $len > 0; --$len) { - $abbrev = substr($name, 0, $len); - $abbrevs[$abbrev][] = $name; - } - } - - return $abbrevs; - } - - public function renderThrowable(\Throwable $e, OutputInterface $output): void - { - $output->writeln('', OutputInterface::VERBOSITY_QUIET); - - $this->doRenderThrowable($e, $output); - - if (null !== $this->runningCommand) { - $output->writeln(sprintf('%s', OutputFormatter::escape(sprintf($this->runningCommand->getSynopsis(), $this->getName()))), OutputInterface::VERBOSITY_QUIET); - $output->writeln('', OutputInterface::VERBOSITY_QUIET); - } - } - - protected function doRenderThrowable(\Throwable $e, OutputInterface $output): void - { - do { - $message = trim($e->getMessage()); - if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) { - $class = get_debug_type($e); - $title = sprintf(' [%s%s] ', $class, 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : ''); - $len = Helper::width($title); - } else { - $len = 0; - } - - if (str_contains($message, "@anonymous\0")) { - $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message); - } - - $width = $this->terminal->getWidth() ? $this->terminal->getWidth() - 1 : \PHP_INT_MAX; - $lines = []; - foreach ('' !== $message ? preg_split('/\r?\n/', $message) : [] as $line) { - foreach ($this->splitStringByWidth($line, $width - 4) as $line) { - // pre-format lines to get the right string length - $lineLength = Helper::width($line) + 4; - $lines[] = [$line, $lineLength]; - - $len = max($lineLength, $len); - } - } - - $messages = []; - if (!$e instanceof ExceptionInterface || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) { - $messages[] = sprintf('%s', OutputFormatter::escape(sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a'))); - } - $messages[] = $emptyLine = sprintf('%s', str_repeat(' ', $len)); - if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) { - $messages[] = sprintf('%s%s', $title, str_repeat(' ', max(0, $len - Helper::width($title)))); - } - foreach ($lines as $line) { - $messages[] = sprintf(' %s %s', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1])); - } - $messages[] = $emptyLine; - $messages[] = ''; - - $output->writeln($messages, OutputInterface::VERBOSITY_QUIET); - - if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) { - $output->writeln('Exception trace:', OutputInterface::VERBOSITY_QUIET); - - // exception related properties - $trace = $e->getTrace(); - - array_unshift($trace, [ - 'function' => '', - 'file' => $e->getFile() ?: 'n/a', - 'line' => $e->getLine() ?: 'n/a', - 'args' => [], - ]); - - for ($i = 0, $count = \count($trace); $i < $count; ++$i) { - $class = $trace[$i]['class'] ?? ''; - $type = $trace[$i]['type'] ?? ''; - $function = $trace[$i]['function'] ?? ''; - $file = $trace[$i]['file'] ?? 'n/a'; - $line = $trace[$i]['line'] ?? 'n/a'; - - $output->writeln(sprintf(' %s%s at %s:%s', $class, $function ? $type.$function.'()' : '', $file, $line), OutputInterface::VERBOSITY_QUIET); - } - - $output->writeln('', OutputInterface::VERBOSITY_QUIET); - } - } while ($e = $e->getPrevious()); - } - - /** - * Configures the input and output instances based on the user arguments and options. - * - * @return void - */ - protected function configureIO(InputInterface $input, OutputInterface $output) - { - if (true === $input->hasParameterOption(['--ansi'], true)) { - $output->setDecorated(true); - } elseif (true === $input->hasParameterOption(['--no-ansi'], true)) { - $output->setDecorated(false); - } - - if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) { - $input->setInteractive(false); - } - - switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) { - case -1: - $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); - break; - case 1: - $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); - break; - case 2: - $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); - break; - case 3: - $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); - break; - default: - $shellVerbosity = 0; - break; - } - - if (true === $input->hasParameterOption(['--quiet', '-q'], true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); - $shellVerbosity = -1; - } else { - if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); - $shellVerbosity = 3; - } elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); - $shellVerbosity = 2; - } elseif ($input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true)) { - $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); - $shellVerbosity = 1; - } - } - - if (-1 === $shellVerbosity) { - $input->setInteractive(false); - } - - if (\function_exists('putenv')) { - @putenv('SHELL_VERBOSITY='.$shellVerbosity); - } - $_ENV['SHELL_VERBOSITY'] = $shellVerbosity; - $_SERVER['SHELL_VERBOSITY'] = $shellVerbosity; - } - - /** - * Runs the current command. - * - * If an event dispatcher has been attached to the application, - * events are also dispatched during the life-cycle of the command. - * - * @return int 0 if everything went fine, or an error code - */ - protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output) - { - foreach ($command->getHelperSet() as $helper) { - if ($helper instanceof InputAwareInterface) { - $helper->setInput($input); - } - } - - $commandSignals = $command instanceof SignalableCommandInterface ? $command->getSubscribedSignals() : []; - if ($commandSignals || $this->dispatcher && $this->signalsToDispatchEvent) { - if (!$this->signalRegistry) { - throw new RuntimeException('Unable to subscribe to signal events. Make sure that the "pcntl" extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); - } - - if (Terminal::hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); - - foreach ([\SIGINT, \SIGTERM] as $signal) { - $this->signalRegistry->register($signal, static fn () => shell_exec('stty '.$sttyMode)); - } - } - - if ($this->dispatcher) { - // We register application signals, so that we can dispatch the event - foreach ($this->signalsToDispatchEvent as $signal) { - $event = new ConsoleSignalEvent($command, $input, $output, $signal); - - $this->signalRegistry->register($signal, function ($signal) use ($event, $command, $commandSignals) { - $this->dispatcher->dispatch($event, ConsoleEvents::SIGNAL); - $exitCode = $event->getExitCode(); - - // If the command is signalable, we call the handleSignal() method - if (\in_array($signal, $commandSignals, true)) { - $exitCode = $command->handleSignal($signal, $exitCode); - // BC layer for Symfony <= 5 - if (null === $exitCode) { - trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', get_debug_type($command)); - $exitCode = 0; - } - } - - if (false !== $exitCode) { - $event = new ConsoleTerminateEvent($command, $event->getInput(), $event->getOutput(), $exitCode, $signal); - $this->dispatcher->dispatch($event, ConsoleEvents::TERMINATE); - - exit($event->getExitCode()); - } - }); - } - - // then we register command signals, but not if already handled after the dispatcher - $commandSignals = array_diff($commandSignals, $this->signalsToDispatchEvent); - } - - foreach ($commandSignals as $signal) { - $this->signalRegistry->register($signal, function (int $signal) use ($command): void { - $exitCode = $command->handleSignal($signal); - // BC layer for Symfony <= 5 - if (null === $exitCode) { - trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', get_debug_type($command)); - $exitCode = 0; - } - - if (false !== $exitCode) { - exit($exitCode); - } - }); - } - } - - if (null === $this->dispatcher) { - return $command->run($input, $output); - } - - // bind before the console.command event, so the listeners have access to input options/arguments - try { - $command->mergeApplicationDefinition(); - $input->bind($command->getDefinition()); - } catch (ExceptionInterface) { - // ignore invalid options/arguments for now, to allow the event listeners to customize the InputDefinition - } - - $event = new ConsoleCommandEvent($command, $input, $output); - $e = null; - - try { - $this->dispatcher->dispatch($event, ConsoleEvents::COMMAND); - - if ($event->commandShouldRun()) { - $exitCode = $command->run($input, $output); - } else { - $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED; - } - } catch (\Throwable $e) { - $event = new ConsoleErrorEvent($input, $output, $e, $command); - $this->dispatcher->dispatch($event, ConsoleEvents::ERROR); - $e = $event->getError(); - - if (0 === $exitCode = $event->getExitCode()) { - $e = null; - } - } - - $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode); - $this->dispatcher->dispatch($event, ConsoleEvents::TERMINATE); - - if (null !== $e) { - throw $e; - } - - return $event->getExitCode(); - } - - /** - * Gets the name of the command based on input. - */ - protected function getCommandName(InputInterface $input): ?string - { - return $this->singleCommand ? $this->defaultCommand : $input->getFirstArgument(); - } - - /** - * Gets the default input definition. - */ - protected function getDefaultInputDefinition(): InputDefinition - { - return new InputDefinition([ - new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'), - new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display help for the given command. When no command is given display help for the '.$this->defaultCommand.' command'), - new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'), - new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'), - new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version'), - new InputOption('--ansi', '', InputOption::VALUE_NEGATABLE, 'Force (or disable --no-ansi) ANSI output', null), - new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'), - ]); - } - - /** - * Gets the default commands that should always be available. - * - * @return Command[] - */ - protected function getDefaultCommands(): array - { - return [new HelpCommand(), new ListCommand(), new CompleteCommand(), new DumpCompletionCommand()]; - } - - /** - * Gets the default helper set with the helpers that should always be available. - */ - protected function getDefaultHelperSet(): HelperSet - { - return new HelperSet([ - new FormatterHelper(), - new DebugFormatterHelper(), - new ProcessHelper(), - new QuestionHelper(), - ]); - } - - /** - * Returns abbreviated suggestions in string format. - */ - private function getAbbreviationSuggestions(array $abbrevs): string - { - return ' '.implode("\n ", $abbrevs); - } - - /** - * Returns the namespace part of the command name. - * - * This method is not part of public API and should not be used directly. - */ - public function extractNamespace(string $name, ?int $limit = null): string - { - $parts = explode(':', $name, -1); - - return implode(':', null === $limit ? $parts : \array_slice($parts, 0, $limit)); - } - - /** - * Finds alternative of $name among $collection, - * if nothing is found in $collection, try in $abbrevs. - * - * @return string[] - */ - private function findAlternatives(string $name, iterable $collection): array - { - $threshold = 1e3; - $alternatives = []; - - $collectionParts = []; - foreach ($collection as $item) { - $collectionParts[$item] = explode(':', $item); - } - - foreach (explode(':', $name) as $i => $subname) { - foreach ($collectionParts as $collectionName => $parts) { - $exists = isset($alternatives[$collectionName]); - if (!isset($parts[$i]) && $exists) { - $alternatives[$collectionName] += $threshold; - continue; - } elseif (!isset($parts[$i])) { - continue; - } - - $lev = levenshtein($subname, $parts[$i]); - if ($lev <= \strlen($subname) / 3 || '' !== $subname && str_contains($parts[$i], $subname)) { - $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev; - } elseif ($exists) { - $alternatives[$collectionName] += $threshold; - } - } - } - - foreach ($collection as $item) { - $lev = levenshtein($name, $item); - if ($lev <= \strlen($name) / 3 || str_contains($item, $name)) { - $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev; - } - } - - $alternatives = array_filter($alternatives, fn ($lev) => $lev < 2 * $threshold); - ksort($alternatives, \SORT_NATURAL | \SORT_FLAG_CASE); - - return array_keys($alternatives); - } - - /** - * Sets the default Command name. - * - * @return $this - */ - public function setDefaultCommand(string $commandName, bool $isSingleCommand = false): static - { - $this->defaultCommand = explode('|', ltrim($commandName, '|'))[0]; - - if ($isSingleCommand) { - // Ensure the command exist - $this->find($commandName); - - $this->singleCommand = true; - } - - return $this; - } - - /** - * @internal - */ - public function isSingleCommand(): bool - { - return $this->singleCommand; - } - - private function splitStringByWidth(string $string, int $width): array - { - // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. - // additionally, array_slice() is not enough as some character has doubled width. - // we need a function to split string not by character count but by string width - if (false === $encoding = mb_detect_encoding($string, null, true)) { - return str_split($string, $width); - } - - $utf8String = mb_convert_encoding($string, 'utf8', $encoding); - $lines = []; - $line = ''; - - $offset = 0; - while (preg_match('/.{1,10000}/u', $utf8String, $m, 0, $offset)) { - $offset += \strlen($m[0]); - - foreach (preg_split('//u', $m[0]) as $char) { - // test if $char could be appended to current line - if (Helper::width($line.$char) <= $width) { - $line .= $char; - continue; - } - // if not, push current line to array and make new line - $lines[] = str_pad($line, $width); - $line = $char; - } - } - - $lines[] = \count($lines) ? str_pad($line, $width) : $line; - - mb_convert_variables($encoding, 'utf8', $lines); - - return $lines; - } - - /** - * Returns all namespaces of the command name. - * - * @return string[] - */ - private function extractAllNamespaces(string $name): array - { - // -1 as third argument is needed to skip the command short name when exploding - $parts = explode(':', $name, -1); - $namespaces = []; - - foreach ($parts as $part) { - if (\count($namespaces)) { - $namespaces[] = end($namespaces).':'.$part; - } else { - $namespaces[] = $part; - } - } - - return $namespaces; - } - - private function init(): void - { - if ($this->initialized) { - return; - } - $this->initialized = true; - - foreach ($this->getDefaultCommands() as $command) { - $this->add($command); - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Attribute/AsCommand.php b/projects/priceservice/vendor/symfony/console/Attribute/AsCommand.php deleted file mode 100644 index b337f54..0000000 --- a/projects/priceservice/vendor/symfony/console/Attribute/AsCommand.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Attribute; - -/** - * Service tag to autoconfigure commands. - */ -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsCommand -{ - public function __construct( - public string $name, - public ?string $description = null, - array $aliases = [], - bool $hidden = false, - ) { - if (!$hidden && !$aliases) { - return; - } - - $name = explode('|', $name); - $name = array_merge($name, $aliases); - - if ($hidden && '' !== $name[0]) { - array_unshift($name, ''); - } - - $this->name = implode('|', $name); - } -} diff --git a/projects/priceservice/vendor/symfony/console/CHANGELOG.md b/projects/priceservice/vendor/symfony/console/CHANGELOG.md deleted file mode 100644 index 9ccb41d..0000000 --- a/projects/priceservice/vendor/symfony/console/CHANGELOG.md +++ /dev/null @@ -1,261 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * Add `SignalMap` to map signal value to its name - * Multi-line text in vertical tables is aligned properly - * The application can also catch errors with `Application::setCatchErrors(true)` - * Add `RunCommandMessage` and `RunCommandMessageHandler` - * Dispatch `ConsoleTerminateEvent` after an exit on signal handling and add `ConsoleTerminateEvent::getInterruptingSignal()` - -6.3 ---- - - * Add support for choosing exit code while handling signal, or to not exit at all - * Add `ProgressBar::setPlaceholderFormatter` to set a placeholder attached to a instance, instead of being global. - * Add `ReStructuredTextDescriptor` - -6.2 ---- - - * Improve truecolor terminal detection in some cases - * Add support for 256 color terminals (conversion from Ansi24 to Ansi8 if terminal is capable of it) - * Deprecate calling `*Command::setApplication()`, `*FormatterStyle::setForeground/setBackground()`, `Helper::setHelpSet()`, `Input*::setDefault()`, `Question::setAutocompleterCallback/setValidator()`without any arguments - * Change the signature of `OutputFormatterStyleInterface::setForeground/setBackground()` to `setForeground/setBackground(?string)` - * Change the signature of `HelperInterface::setHelperSet()` to `setHelperSet(?HelperSet)` - -6.1 ---- - - * Add support to display table vertically when calling setVertical() - * Add method `__toString()` to `InputInterface` - * Added `OutputWrapper` to prevent truncated URL in `SymfonyStyle::createBlock`. - * Deprecate `Command::$defaultName` and `Command::$defaultDescription`, use the `AsCommand` attribute instead - * Add suggested values for arguments and options in input definition, for input completion - * Add `$resumeAt` parameter to `ProgressBar#start()`, so that one can easily 'resume' progress on longer tasks, and still get accurate `getEstimate()` and `getRemaining()` results. - -6.0 ---- - - * `Command::setHidden()` has a default value (`true`) for `$hidden` parameter and is final - * Remove `Helper::strlen()`, use `Helper::width()` instead - * Remove `Helper::strlenWithoutDecoration()`, use `Helper::removeDecoration()` instead - * `AddConsoleCommandPass` can not be configured anymore - * Remove `HelperSet::setCommand()` and `getCommand()` without replacement - -5.4 ---- - - * Add `TesterTrait::assertCommandIsSuccessful()` to test command - * Deprecate `HelperSet::setCommand()` and `getCommand()` without replacement - -5.3 ---- - - * Add `GithubActionReporter` to render annotations in a Github Action - * Add `InputOption::VALUE_NEGATABLE` flag to handle `--foo`/`--no-foo` options - * Add the `Command::$defaultDescription` static property and the `description` attribute - on the `console.command` tag to allow the `list` command to instantiate commands lazily - * Add option `--short` to the `list` command - * Add support for bright colors - * Add `#[AsCommand]` attribute for declaring commands on PHP 8 - * Add `Helper::width()` and `Helper::length()` - * The `--ansi` and `--no-ansi` options now default to `null`. - -5.2.0 ------ - - * Added `SingleCommandApplication::setAutoExit()` to allow testing via `CommandTester` - * added support for multiline responses to questions through `Question::setMultiline()` - and `Question::isMultiline()` - * Added `SignalRegistry` class to stack signals handlers - * Added support for signals: - * Added `Application::getSignalRegistry()` and `Application::setSignalsToDispatchEvent()` methods - * Added `SignalableCommandInterface` interface - * Added `TableCellStyle` class to customize table cell - * Removed `php ` prefix invocation from help messages. - -5.1.0 ------ - - * `Command::setHidden()` is final since Symfony 5.1 - * Add `SingleCommandApplication` - * Add `Cursor` class - -5.0.0 ------ - - * removed support for finding hidden commands using an abbreviation, use the full name instead - * removed `TableStyle::setCrossingChar()` method in favor of `TableStyle::setDefaultCrossingChar()` - * removed `TableStyle::setHorizontalBorderChar()` method in favor of `TableStyle::setDefaultCrossingChars()` - * removed `TableStyle::getHorizontalBorderChar()` method in favor of `TableStyle::getBorderChars()` - * removed `TableStyle::setVerticalBorderChar()` method in favor of `TableStyle::setVerticalBorderChars()` - * removed `TableStyle::getVerticalBorderChar()` method in favor of `TableStyle::getBorderChars()` - * removed support for returning `null` from `Command::execute()`, return `0` instead - * `ProcessHelper::run()` accepts only `array|Symfony\Component\Process\Process` for its `command` argument - * `Application::setDispatcher` accepts only `Symfony\Contracts\EventDispatcher\EventDispatcherInterface` - for its `dispatcher` argument - * renamed `Application::renderException()` and `Application::doRenderException()` - to `renderThrowable()` and `doRenderThrowable()` respectively. - -4.4.0 ------ - - * deprecated finding hidden commands using an abbreviation, use the full name instead - * added `Question::setTrimmable` default to true to allow the answer to be trimmed - * added method `minSecondsBetweenRedraws()` and `maxSecondsBetweenRedraws()` on `ProgressBar` - * `Application` implements `ResetInterface` - * marked all dispatched event classes as `@final` - * added support for displaying table horizontally - * deprecated returning `null` from `Command::execute()`, return `0` instead - * Deprecated the `Application::renderException()` and `Application::doRenderException()` methods, - use `renderThrowable()` and `doRenderThrowable()` instead. - * added support for the `NO_COLOR` env var (https://no-color.org/) - -4.3.0 ------ - - * added support for hyperlinks - * added `ProgressBar::iterate()` method that simplify updating the progress bar when iterating - * added `Question::setAutocompleterCallback()` to provide a callback function - that dynamically generates suggestions as the user types - -4.2.0 ------ - - * allowed passing commands as `[$process, 'ENV_VAR' => 'value']` to - `ProcessHelper::run()` to pass environment variables - * deprecated passing a command as a string to `ProcessHelper::run()`, - pass it the command as an array of its arguments instead - * made the `ProcessHelper` class final - * added `WrappableOutputFormatterInterface::formatAndWrap()` (implemented in `OutputFormatter`) - * added `capture_stderr_separately` option to `CommandTester::execute()` - -4.1.0 ------ - - * added option to run suggested command if command is not found and only 1 alternative is available - * added option to modify console output and print multiple modifiable sections - * added support for iterable messages in output `write` and `writeln` methods - -4.0.0 ------ - - * `OutputFormatter` throws an exception when unknown options are used - * removed `QuestionHelper::setInputStream()/getInputStream()` - * removed `Application::getTerminalWidth()/getTerminalHeight()` and - `Application::setTerminalDimensions()/getTerminalDimensions()` - * removed `ConsoleExceptionEvent` - * removed `ConsoleEvents::EXCEPTION` - -3.4.0 ------ - - * added `SHELL_VERBOSITY` env var to control verbosity - * added `CommandLoaderInterface`, `FactoryCommandLoader` and PSR-11 - `ContainerCommandLoader` for commands lazy-loading - * added a case-insensitive command name matching fallback - * added static `Command::$defaultName/getDefaultName()`, allowing for - commands to be registered at compile time in the application command loader. - Setting the `$defaultName` property avoids the need for filling the `command` - attribute on the `console.command` tag when using `AddConsoleCommandPass`. - -3.3.0 ------ - - * added `ExceptionListener` - * added `AddConsoleCommandPass` (originally in FrameworkBundle) - * [BC BREAK] `Input::getOption()` no longer returns the default value for options - with value optional explicitly passed empty - * added console.error event to catch exceptions thrown by other listeners - * deprecated console.exception event in favor of console.error - * added ability to handle `CommandNotFoundException` through the - `console.error` event - * deprecated default validation in `SymfonyQuestionHelper::ask` - -3.2.0 ------- - - * added `setInputs()` method to CommandTester for ease testing of commands expecting inputs - * added `setStream()` and `getStream()` methods to Input (implement StreamableInputInterface) - * added StreamableInputInterface - * added LockableTrait - -3.1.0 ------ - - * added truncate method to FormatterHelper - * added setColumnWidth(s) method to Table - -2.8.3 ------ - - * remove readline support from the question helper as it caused issues - -2.8.0 ------ - - * use readline for user input in the question helper when available to allow - the use of arrow keys - -2.6.0 ------ - - * added a Process helper - * added a DebugFormatter helper - -2.5.0 ------ - - * deprecated the dialog helper (use the question helper instead) - * deprecated TableHelper in favor of Table - * deprecated ProgressHelper in favor of ProgressBar - * added ConsoleLogger - * added a question helper - * added a way to set the process name of a command - * added a way to set a default command instead of `ListCommand` - -2.4.0 ------ - - * added a way to force terminal dimensions - * added a convenient method to detect verbosity level - * [BC BREAK] made descriptors use output instead of returning a string - -2.3.0 ------ - - * added multiselect support to the select dialog helper - * added Table Helper for tabular data rendering - * added support for events in `Application` - * added a way to normalize EOLs in `ApplicationTester::getDisplay()` and `CommandTester::getDisplay()` - * added a way to set the progress bar progress via the `setCurrent` method - * added support for multiple InputOption shortcuts, written as `'-a|-b|-c'` - * added two additional verbosity levels, VERBOSITY_VERY_VERBOSE and VERBOSITY_DEBUG - -2.2.0 ------ - - * added support for colorization on Windows via ConEmu - * add a method to Dialog Helper to ask for a question and hide the response - * added support for interactive selections in console (DialogHelper::select()) - * added support for autocompletion as you type in Dialog Helper - -2.1.0 ------ - - * added ConsoleOutputInterface - * added the possibility to disable a command (Command::isEnabled()) - * added suggestions when a command does not exist - * added a --raw option to the list command - * added support for STDERR in the console output class (errors are now sent - to STDERR) - * made the defaults (helper set, commands, input definition) in Application - more easily customizable - * added support for the shell even if readline is not available - * added support for process isolation in Symfony shell via - `--process-isolation` switch - * added support for `--`, which disables options parsing after that point - (tokens will be parsed as arguments) diff --git a/projects/priceservice/vendor/symfony/console/CI/GithubActionReporter.php b/projects/priceservice/vendor/symfony/console/CI/GithubActionReporter.php deleted file mode 100644 index 2cae6fd..0000000 --- a/projects/priceservice/vendor/symfony/console/CI/GithubActionReporter.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\CI; - -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Utility class for Github actions. - * - * @author Maxime Steinhausser - */ -class GithubActionReporter -{ - private OutputInterface $output; - - /** - * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L80-L85 - */ - private const ESCAPED_DATA = [ - '%' => '%25', - "\r" => '%0D', - "\n" => '%0A', - ]; - - /** - * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L87-L94 - */ - private const ESCAPED_PROPERTIES = [ - '%' => '%25', - "\r" => '%0D', - "\n" => '%0A', - ':' => '%3A', - ',' => '%2C', - ]; - - public function __construct(OutputInterface $output) - { - $this->output = $output; - } - - public static function isGithubActionEnvironment(): bool - { - return false !== getenv('GITHUB_ACTIONS'); - } - - /** - * Output an error using the Github annotations format. - * - * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-error-message - */ - public function error(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void - { - $this->log('error', $message, $file, $line, $col); - } - - /** - * Output a warning using the Github annotations format. - * - * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message - */ - public function warning(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void - { - $this->log('warning', $message, $file, $line, $col); - } - - /** - * Output a debug log using the Github annotations format. - * - * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-debug-message - */ - public function debug(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void - { - $this->log('debug', $message, $file, $line, $col); - } - - private function log(string $type, string $message, ?string $file = null, ?int $line = null, ?int $col = null): void - { - // Some values must be encoded. - $message = strtr($message, self::ESCAPED_DATA); - - if (!$file) { - // No file provided, output the message solely: - $this->output->writeln(sprintf('::%s::%s', $type, $message)); - - return; - } - - $this->output->writeln(sprintf('::%s file=%s,line=%s,col=%s::%s', $type, strtr($file, self::ESCAPED_PROPERTIES), strtr($line ?? 1, self::ESCAPED_PROPERTIES), strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message)); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Color.php b/projects/priceservice/vendor/symfony/console/Color.php deleted file mode 100644 index 60ed046..0000000 --- a/projects/priceservice/vendor/symfony/console/Color.php +++ /dev/null @@ -1,133 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * @author Fabien Potencier - */ -final class Color -{ - private const COLORS = [ - 'black' => 0, - 'red' => 1, - 'green' => 2, - 'yellow' => 3, - 'blue' => 4, - 'magenta' => 5, - 'cyan' => 6, - 'white' => 7, - 'default' => 9, - ]; - - private const BRIGHT_COLORS = [ - 'gray' => 0, - 'bright-red' => 1, - 'bright-green' => 2, - 'bright-yellow' => 3, - 'bright-blue' => 4, - 'bright-magenta' => 5, - 'bright-cyan' => 6, - 'bright-white' => 7, - ]; - - private const AVAILABLE_OPTIONS = [ - 'bold' => ['set' => 1, 'unset' => 22], - 'underscore' => ['set' => 4, 'unset' => 24], - 'blink' => ['set' => 5, 'unset' => 25], - 'reverse' => ['set' => 7, 'unset' => 27], - 'conceal' => ['set' => 8, 'unset' => 28], - ]; - - private string $foreground; - private string $background; - private array $options = []; - - public function __construct(string $foreground = '', string $background = '', array $options = []) - { - $this->foreground = $this->parseColor($foreground); - $this->background = $this->parseColor($background, true); - - foreach ($options as $option) { - if (!isset(self::AVAILABLE_OPTIONS[$option])) { - throw new InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s).', $option, implode(', ', array_keys(self::AVAILABLE_OPTIONS)))); - } - - $this->options[$option] = self::AVAILABLE_OPTIONS[$option]; - } - } - - public function apply(string $text): string - { - return $this->set().$text.$this->unset(); - } - - public function set(): string - { - $setCodes = []; - if ('' !== $this->foreground) { - $setCodes[] = $this->foreground; - } - if ('' !== $this->background) { - $setCodes[] = $this->background; - } - foreach ($this->options as $option) { - $setCodes[] = $option['set']; - } - if (0 === \count($setCodes)) { - return ''; - } - - return sprintf("\033[%sm", implode(';', $setCodes)); - } - - public function unset(): string - { - $unsetCodes = []; - if ('' !== $this->foreground) { - $unsetCodes[] = 39; - } - if ('' !== $this->background) { - $unsetCodes[] = 49; - } - foreach ($this->options as $option) { - $unsetCodes[] = $option['unset']; - } - if (0 === \count($unsetCodes)) { - return ''; - } - - return sprintf("\033[%sm", implode(';', $unsetCodes)); - } - - private function parseColor(string $color, bool $background = false): string - { - if ('' === $color) { - return ''; - } - - if ('#' === $color[0]) { - return ($background ? '4' : '3').Terminal::getColorMode()->convertFromHexToAnsiColorCode($color); - } - - if (isset(self::COLORS[$color])) { - return ($background ? '4' : '3').self::COLORS[$color]; - } - - if (isset(self::BRIGHT_COLORS[$color])) { - return ($background ? '10' : '9').self::BRIGHT_COLORS[$color]; - } - - throw new InvalidArgumentException(sprintf('Invalid "%s" color; expected one of (%s).', $color, implode(', ', array_merge(array_keys(self::COLORS), array_keys(self::BRIGHT_COLORS))))); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/Command.php b/projects/priceservice/vendor/symfony/console/Command/Command.php deleted file mode 100644 index 9f9cb2f..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/Command.php +++ /dev/null @@ -1,725 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Attribute\AsCommand; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Exception\ExceptionInterface; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Helper\HelperInterface; -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Base class for all commands. - * - * @author Fabien Potencier - */ -class Command -{ - // see https://tldp.org/LDP/abs/html/exitcodes.html - public const SUCCESS = 0; - public const FAILURE = 1; - public const INVALID = 2; - - /** - * @var string|null The default command name - * - * @deprecated since Symfony 6.1, use the AsCommand attribute instead - */ - protected static $defaultName; - - /** - * @var string|null The default command description - * - * @deprecated since Symfony 6.1, use the AsCommand attribute instead - */ - protected static $defaultDescription; - - private ?Application $application = null; - private ?string $name = null; - private ?string $processTitle = null; - private array $aliases = []; - private InputDefinition $definition; - private bool $hidden = false; - private string $help = ''; - private string $description = ''; - private ?InputDefinition $fullDefinition = null; - private bool $ignoreValidationErrors = false; - private ?\Closure $code = null; - private array $synopsis = []; - private array $usages = []; - private ?HelperSet $helperSet = null; - - public static function getDefaultName(): ?string - { - $class = static::class; - - if ($attribute = (new \ReflectionClass($class))->getAttributes(AsCommand::class)) { - return $attribute[0]->newInstance()->name; - } - - $r = new \ReflectionProperty($class, 'defaultName'); - - if ($class !== $r->class || null === static::$defaultName) { - return null; - } - - trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); - - return static::$defaultName; - } - - public static function getDefaultDescription(): ?string - { - $class = static::class; - - if ($attribute = (new \ReflectionClass($class))->getAttributes(AsCommand::class)) { - return $attribute[0]->newInstance()->description; - } - - $r = new \ReflectionProperty($class, 'defaultDescription'); - - if ($class !== $r->class || null === static::$defaultDescription) { - return null; - } - - trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultDescription" for setting a command description is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); - - return static::$defaultDescription; - } - - /** - * @param string|null $name The name of the command; passing null means it must be set in configure() - * - * @throws LogicException When the command name is empty - */ - public function __construct(?string $name = null) - { - $this->definition = new InputDefinition(); - - if (null === $name && null !== $name = static::getDefaultName()) { - $aliases = explode('|', $name); - - if ('' === $name = array_shift($aliases)) { - $this->setHidden(true); - $name = array_shift($aliases); - } - - $this->setAliases($aliases); - } - - if (null !== $name) { - $this->setName($name); - } - - if ('' === $this->description) { - $this->setDescription(static::getDefaultDescription() ?? ''); - } - - $this->configure(); - } - - /** - * Ignores validation errors. - * - * This is mainly useful for the help command. - * - * @return void - */ - public function ignoreValidationErrors() - { - $this->ignoreValidationErrors = true; - } - - /** - * @return void - */ - public function setApplication(?Application $application = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->application = $application; - if ($application) { - $this->setHelperSet($application->getHelperSet()); - } else { - $this->helperSet = null; - } - - $this->fullDefinition = null; - } - - /** - * @return void - */ - public function setHelperSet(HelperSet $helperSet) - { - $this->helperSet = $helperSet; - } - - /** - * Gets the helper set. - */ - public function getHelperSet(): ?HelperSet - { - return $this->helperSet; - } - - /** - * Gets the application instance for this command. - */ - public function getApplication(): ?Application - { - return $this->application; - } - - /** - * Checks whether the command is enabled or not in the current environment. - * - * Override this to check for x or y and return false if the command cannot - * run properly under the current conditions. - * - * @return bool - */ - public function isEnabled() - { - return true; - } - - /** - * Configures the current command. - * - * @return void - */ - protected function configure() - { - } - - /** - * Executes the current command. - * - * This method is not abstract because you can use this class - * as a concrete class. In this case, instead of defining the - * execute() method, you set the code to execute by passing - * a Closure to the setCode() method. - * - * @return int 0 if everything went fine, or an exit code - * - * @throws LogicException When this abstract method is not implemented - * - * @see setCode() - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - throw new LogicException('You must override the execute() method in the concrete command class.'); - } - - /** - * Interacts with the user. - * - * This method is executed before the InputDefinition is validated. - * This means that this is the only place where the command can - * interactively ask for values of missing required arguments. - * - * @return void - */ - protected function interact(InputInterface $input, OutputInterface $output) - { - } - - /** - * Initializes the command after the input has been bound and before the input - * is validated. - * - * This is mainly useful when a lot of commands extends one main command - * where some things need to be initialized based on the input arguments and options. - * - * @see InputInterface::bind() - * @see InputInterface::validate() - * - * @return void - */ - protected function initialize(InputInterface $input, OutputInterface $output) - { - } - - /** - * Runs the command. - * - * The code to execute is either defined directly with the - * setCode() method or by overriding the execute() method - * in a sub-class. - * - * @return int The command exit code - * - * @throws ExceptionInterface When input binding fails. Bypass this by calling {@link ignoreValidationErrors()}. - * - * @see setCode() - * @see execute() - */ - public function run(InputInterface $input, OutputInterface $output): int - { - // add the application arguments and options - $this->mergeApplicationDefinition(); - - // bind the input against the command specific arguments/options - try { - $input->bind($this->getDefinition()); - } catch (ExceptionInterface $e) { - if (!$this->ignoreValidationErrors) { - throw $e; - } - } - - $this->initialize($input, $output); - - if (null !== $this->processTitle) { - if (\function_exists('cli_set_process_title')) { - if (!@cli_set_process_title($this->processTitle)) { - if ('Darwin' === \PHP_OS) { - $output->writeln('Running "cli_set_process_title" as an unprivileged user is not supported on MacOS.', OutputInterface::VERBOSITY_VERY_VERBOSE); - } else { - cli_set_process_title($this->processTitle); - } - } - } elseif (\function_exists('setproctitle')) { - setproctitle($this->processTitle); - } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) { - $output->writeln('Install the proctitle PECL to be able to change the process title.'); - } - } - - if ($input->isInteractive()) { - $this->interact($input, $output); - } - - // The command name argument is often omitted when a command is executed directly with its run() method. - // It would fail the validation if we didn't make sure the command argument is present, - // since it's required by the application. - if ($input->hasArgument('command') && null === $input->getArgument('command')) { - $input->setArgument('command', $this->getName()); - } - - $input->validate(); - - if ($this->code) { - $statusCode = ($this->code)($input, $output); - } else { - $statusCode = $this->execute($input, $output); - - if (!\is_int($statusCode)) { - throw new \TypeError(sprintf('Return value of "%s::execute()" must be of the type int, "%s" returned.', static::class, get_debug_type($statusCode))); - } - } - - return is_numeric($statusCode) ? (int) $statusCode : 0; - } - - /** - * Adds suggestions to $suggestions for the current completion input (e.g. option or argument). - */ - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - $definition = $this->getDefinition(); - if (CompletionInput::TYPE_OPTION_VALUE === $input->getCompletionType() && $definition->hasOption($input->getCompletionName())) { - $definition->getOption($input->getCompletionName())->complete($input, $suggestions); - } elseif (CompletionInput::TYPE_ARGUMENT_VALUE === $input->getCompletionType() && $definition->hasArgument($input->getCompletionName())) { - $definition->getArgument($input->getCompletionName())->complete($input, $suggestions); - } - } - - /** - * Sets the code to execute when running this command. - * - * If this method is used, it overrides the code defined - * in the execute() method. - * - * @param callable $code A callable(InputInterface $input, OutputInterface $output) - * - * @return $this - * - * @throws InvalidArgumentException - * - * @see execute() - */ - public function setCode(callable $code): static - { - if ($code instanceof \Closure) { - $r = new \ReflectionFunction($code); - if (null === $r->getClosureThis()) { - set_error_handler(static function () {}); - try { - if ($c = \Closure::bind($code, $this)) { - $code = $c; - } - } finally { - restore_error_handler(); - } - } - } else { - $code = $code(...); - } - - $this->code = $code; - - return $this; - } - - /** - * Merges the application definition with the command definition. - * - * This method is not part of public API and should not be used directly. - * - * @param bool $mergeArgs Whether to merge or not the Application definition arguments to Command definition arguments - * - * @internal - */ - public function mergeApplicationDefinition(bool $mergeArgs = true): void - { - if (null === $this->application) { - return; - } - - $this->fullDefinition = new InputDefinition(); - $this->fullDefinition->setOptions($this->definition->getOptions()); - $this->fullDefinition->addOptions($this->application->getDefinition()->getOptions()); - - if ($mergeArgs) { - $this->fullDefinition->setArguments($this->application->getDefinition()->getArguments()); - $this->fullDefinition->addArguments($this->definition->getArguments()); - } else { - $this->fullDefinition->setArguments($this->definition->getArguments()); - } - } - - /** - * Sets an array of argument and option instances. - * - * @return $this - */ - public function setDefinition(array|InputDefinition $definition): static - { - if ($definition instanceof InputDefinition) { - $this->definition = $definition; - } else { - $this->definition->setDefinition($definition); - } - - $this->fullDefinition = null; - - return $this; - } - - /** - * Gets the InputDefinition attached to this Command. - */ - public function getDefinition(): InputDefinition - { - return $this->fullDefinition ?? $this->getNativeDefinition(); - } - - /** - * Gets the InputDefinition to be used to create representations of this Command. - * - * Can be overridden to provide the original command representation when it would otherwise - * be changed by merging with the application InputDefinition. - * - * This method is not part of public API and should not be used directly. - */ - public function getNativeDefinition(): InputDefinition - { - return $this->definition ?? throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', static::class)); - } - - /** - * Adds an argument. - * - * @param $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL - * @param $default The default value (for InputArgument::OPTIONAL mode only) - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - * - * @return $this - * - * @throws InvalidArgumentException When argument mode is not valid - */ - public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = null */): static - { - $suggestedValues = 5 <= \func_num_args() ? func_get_arg(4) : []; - if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) { - throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues))); - } - $this->definition->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues)); - $this->fullDefinition?->addArgument(new InputArgument($name, $mode, $description, $default, $suggestedValues)); - - return $this; - } - - /** - * Adds an option. - * - * @param $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts - * @param $mode The option mode: One of the InputOption::VALUE_* constants - * @param $default The default value (must be null for InputOption::VALUE_NONE) - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - * - * @return $this - * - * @throws InvalidArgumentException If option mode is invalid or incompatible - */ - public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static - { - $suggestedValues = 6 <= \func_num_args() ? func_get_arg(5) : []; - if (!\is_array($suggestedValues) && !$suggestedValues instanceof \Closure) { - throw new \TypeError(sprintf('Argument 5 passed to "%s()" must be array or \Closure, "%s" given.', __METHOD__, get_debug_type($suggestedValues))); - } - $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues)); - $this->fullDefinition?->addOption(new InputOption($name, $shortcut, $mode, $description, $default, $suggestedValues)); - - return $this; - } - - /** - * Sets the name of the command. - * - * This method can set both the namespace and the name if - * you separate them by a colon (:) - * - * $command->setName('foo:bar'); - * - * @return $this - * - * @throws InvalidArgumentException When the name is invalid - */ - public function setName(string $name): static - { - $this->validateName($name); - - $this->name = $name; - - return $this; - } - - /** - * Sets the process title of the command. - * - * This feature should be used only when creating a long process command, - * like a daemon. - * - * @return $this - */ - public function setProcessTitle(string $title): static - { - $this->processTitle = $title; - - return $this; - } - - /** - * Returns the command name. - */ - public function getName(): ?string - { - return $this->name; - } - - /** - * @param bool $hidden Whether or not the command should be hidden from the list of commands - * - * @return $this - */ - public function setHidden(bool $hidden = true): static - { - $this->hidden = $hidden; - - return $this; - } - - /** - * @return bool whether the command should be publicly shown or not - */ - public function isHidden(): bool - { - return $this->hidden; - } - - /** - * Sets the description for the command. - * - * @return $this - */ - public function setDescription(string $description): static - { - $this->description = $description; - - return $this; - } - - /** - * Returns the description for the command. - */ - public function getDescription(): string - { - return $this->description; - } - - /** - * Sets the help for the command. - * - * @return $this - */ - public function setHelp(string $help): static - { - $this->help = $help; - - return $this; - } - - /** - * Returns the help for the command. - */ - public function getHelp(): string - { - return $this->help; - } - - /** - * Returns the processed help for the command replacing the %command.name% and - * %command.full_name% patterns with the real values dynamically. - */ - public function getProcessedHelp(): string - { - $name = $this->name; - $isSingleCommand = $this->application?->isSingleCommand(); - - $placeholders = [ - '%command.name%', - '%command.full_name%', - ]; - $replacements = [ - $name, - $isSingleCommand ? $_SERVER['PHP_SELF'] : $_SERVER['PHP_SELF'].' '.$name, - ]; - - return str_replace($placeholders, $replacements, $this->getHelp() ?: $this->getDescription()); - } - - /** - * Sets the aliases for the command. - * - * @param string[] $aliases An array of aliases for the command - * - * @return $this - * - * @throws InvalidArgumentException When an alias is invalid - */ - public function setAliases(iterable $aliases): static - { - $list = []; - - foreach ($aliases as $alias) { - $this->validateName($alias); - $list[] = $alias; - } - - $this->aliases = \is_array($aliases) ? $aliases : $list; - - return $this; - } - - /** - * Returns the aliases for the command. - */ - public function getAliases(): array - { - return $this->aliases; - } - - /** - * Returns the synopsis for the command. - * - * @param bool $short Whether to show the short version of the synopsis (with options folded) or not - */ - public function getSynopsis(bool $short = false): string - { - $key = $short ? 'short' : 'long'; - - if (!isset($this->synopsis[$key])) { - $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short))); - } - - return $this->synopsis[$key]; - } - - /** - * Add a command usage example, it'll be prefixed with the command name. - * - * @return $this - */ - public function addUsage(string $usage): static - { - if (!str_starts_with($usage, $this->name)) { - $usage = sprintf('%s %s', $this->name, $usage); - } - - $this->usages[] = $usage; - - return $this; - } - - /** - * Returns alternative usages of the command. - */ - public function getUsages(): array - { - return $this->usages; - } - - /** - * Gets a helper instance by name. - * - * @return HelperInterface - * - * @throws LogicException if no HelperSet is defined - * @throws InvalidArgumentException if the helper is not defined - */ - public function getHelper(string $name): mixed - { - if (null === $this->helperSet) { - throw new LogicException(sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name)); - } - - return $this->helperSet->get($name); - } - - /** - * Validates a command name. - * - * It must be non-empty and parts can optionally be separated by ":". - * - * @throws InvalidArgumentException When the name is invalid - */ - private function validateName(string $name): void - { - if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) { - throw new InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name)); - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/CompleteCommand.php b/projects/priceservice/vendor/symfony/console/Command/CompleteCommand.php deleted file mode 100644 index 23be557..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/CompleteCommand.php +++ /dev/null @@ -1,223 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Attribute\AsCommand; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Output\BashCompletionOutput; -use Symfony\Component\Console\Completion\Output\CompletionOutputInterface; -use Symfony\Component\Console\Completion\Output\FishCompletionOutput; -use Symfony\Component\Console\Completion\Output\ZshCompletionOutput; -use Symfony\Component\Console\Exception\CommandNotFoundException; -use Symfony\Component\Console\Exception\ExceptionInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Responsible for providing the values to the shell completion. - * - * @author Wouter de Jong - */ -#[AsCommand(name: '|_complete', description: 'Internal command to provide shell completion suggestions')] -final class CompleteCommand extends Command -{ - public const COMPLETION_API_VERSION = '1'; - - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultName = '|_complete'; - - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultDescription = 'Internal command to provide shell completion suggestions'; - - private array $completionOutputs; - - private bool $isDebug = false; - - /** - * @param array> $completionOutputs A list of additional completion outputs, with shell name as key and FQCN as value - */ - public function __construct(array $completionOutputs = []) - { - // must be set before the parent constructor, as the property value is used in configure() - $this->completionOutputs = $completionOutputs + [ - 'bash' => BashCompletionOutput::class, - 'fish' => FishCompletionOutput::class, - 'zsh' => ZshCompletionOutput::class, - ]; - - parent::__construct(); - } - - protected function configure(): void - { - $this - ->addOption('shell', 's', InputOption::VALUE_REQUIRED, 'The shell type ("'.implode('", "', array_keys($this->completionOutputs)).'")') - ->addOption('input', 'i', InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'An array of input tokens (e.g. COMP_WORDS or argv)') - ->addOption('current', 'c', InputOption::VALUE_REQUIRED, 'The index of the "input" array that the cursor is in (e.g. COMP_CWORD)') - ->addOption('api-version', 'a', InputOption::VALUE_REQUIRED, 'The API version of the completion script') - ->addOption('symfony', 'S', InputOption::VALUE_REQUIRED, 'deprecated') - ; - } - - protected function initialize(InputInterface $input, OutputInterface $output): void - { - $this->isDebug = filter_var(getenv('SYMFONY_COMPLETION_DEBUG'), \FILTER_VALIDATE_BOOL); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - try { - // "symfony" must be kept for compat with the shell scripts generated by Symfony Console 5.4 - 6.1 - $version = $input->getOption('symfony') ? '1' : $input->getOption('api-version'); - if ($version && version_compare($version, self::COMPLETION_API_VERSION, '<')) { - $message = sprintf('Completion script version is not supported ("%s" given, ">=%s" required).', $version, self::COMPLETION_API_VERSION); - $this->log($message); - - $output->writeln($message.' Install the Symfony completion script again by using the "completion" command.'); - - return 126; - } - - $shell = $input->getOption('shell'); - if (!$shell) { - throw new \RuntimeException('The "--shell" option must be set.'); - } - - if (!$completionOutput = $this->completionOutputs[$shell] ?? false) { - throw new \RuntimeException(sprintf('Shell completion is not supported for your shell: "%s" (supported: "%s").', $shell, implode('", "', array_keys($this->completionOutputs)))); - } - - $completionInput = $this->createCompletionInput($input); - $suggestions = new CompletionSuggestions(); - - $this->log([ - '', - ''.date('Y-m-d H:i:s').'', - 'Input: ("|" indicates the cursor position)', - ' '.(string) $completionInput, - 'Command:', - ' '.(string) implode(' ', $_SERVER['argv']), - 'Messages:', - ]); - - $command = $this->findCommand($completionInput, $output); - if (null === $command) { - $this->log(' No command found, completing using the Application class.'); - - $this->getApplication()->complete($completionInput, $suggestions); - } elseif ( - $completionInput->mustSuggestArgumentValuesFor('command') - && $command->getName() !== $completionInput->getCompletionValue() - && !\in_array($completionInput->getCompletionValue(), $command->getAliases(), true) - ) { - $this->log(' No command found, completing using the Application class.'); - - // expand shortcut names ("cache:cl") into their full name ("cache:clear") - $suggestions->suggestValues(array_filter(array_merge([$command->getName()], $command->getAliases()))); - } else { - $command->mergeApplicationDefinition(); - $completionInput->bind($command->getDefinition()); - - if (CompletionInput::TYPE_OPTION_NAME === $completionInput->getCompletionType()) { - $this->log(' Completing option names for the '.($command instanceof LazyCommand ? $command->getCommand() : $command)::class.' command.'); - - $suggestions->suggestOptions($command->getDefinition()->getOptions()); - } else { - $this->log([ - ' Completing using the '.($command instanceof LazyCommand ? $command->getCommand() : $command)::class.' class.', - ' Completing '.$completionInput->getCompletionType().' for '.$completionInput->getCompletionName().'', - ]); - if (null !== $compval = $completionInput->getCompletionValue()) { - $this->log(' Current value: '.$compval.''); - } - - $command->complete($completionInput, $suggestions); - } - } - - /** @var CompletionOutputInterface $completionOutput */ - $completionOutput = new $completionOutput(); - - $this->log('Suggestions:'); - if ($options = $suggestions->getOptionSuggestions()) { - $this->log(' --'.implode(' --', array_map(fn ($o) => $o->getName(), $options))); - } elseif ($values = $suggestions->getValueSuggestions()) { - $this->log(' '.implode(' ', $values)); - } else { - $this->log(' No suggestions were provided'); - } - - $completionOutput->write($suggestions, $output); - } catch (\Throwable $e) { - $this->log([ - 'Error!', - (string) $e, - ]); - - if ($output->isDebug()) { - throw $e; - } - - return 2; - } - - return 0; - } - - private function createCompletionInput(InputInterface $input): CompletionInput - { - $currentIndex = $input->getOption('current'); - if (!$currentIndex || !ctype_digit($currentIndex)) { - throw new \RuntimeException('The "--current" option must be set and it must be an integer.'); - } - - $completionInput = CompletionInput::fromTokens($input->getOption('input'), (int) $currentIndex); - - try { - $completionInput->bind($this->getApplication()->getDefinition()); - } catch (ExceptionInterface) { - } - - return $completionInput; - } - - private function findCommand(CompletionInput $completionInput, OutputInterface $output): ?Command - { - try { - $inputName = $completionInput->getFirstArgument(); - if (null === $inputName) { - return null; - } - - return $this->getApplication()->find($inputName); - } catch (CommandNotFoundException) { - } - - return null; - } - - private function log($messages): void - { - if (!$this->isDebug) { - return; - } - - $commandName = basename($_SERVER['argv'][0]); - file_put_contents(sys_get_temp_dir().'/sf_'.$commandName.'.log', implode(\PHP_EOL, (array) $messages).\PHP_EOL, \FILE_APPEND); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/DumpCompletionCommand.php b/projects/priceservice/vendor/symfony/console/Command/DumpCompletionCommand.php deleted file mode 100644 index 51b613a..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/DumpCompletionCommand.php +++ /dev/null @@ -1,161 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Attribute\AsCommand; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Process\Process; - -/** - * Dumps the completion script for the current shell. - * - * @author Wouter de Jong - */ -#[AsCommand(name: 'completion', description: 'Dump the shell completion script')] -final class DumpCompletionCommand extends Command -{ - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultName = 'completion'; - - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultDescription = 'Dump the shell completion script'; - - private array $supportedShells; - - protected function configure(): void - { - $fullCommand = $_SERVER['PHP_SELF']; - $commandName = basename($fullCommand); - $fullCommand = @realpath($fullCommand) ?: $fullCommand; - - $shell = $this->guessShell(); - [$rcFile, $completionFile] = match ($shell) { - 'fish' => ['~/.config/fish/config.fish', "/etc/fish/completions/$commandName.fish"], - 'zsh' => ['~/.zshrc', '$fpath[1]/_'.$commandName], - default => ['~/.bashrc', "/etc/bash_completion.d/$commandName"], - }; - - $supportedShells = implode(', ', $this->getSupportedShells()); - - $this - ->setHelp(<<%command.name% command dumps the shell completion script required -to use shell autocompletion (currently, {$supportedShells} completion are supported). - -Static installation -------------------- - -Dump the script to a global completion file and restart your shell: - - %command.full_name% {$shell} | sudo tee {$completionFile} - -Or dump the script to a local file and source it: - - %command.full_name% {$shell} > completion.sh - - # source the file whenever you use the project - source completion.sh - - # or add this line at the end of your "{$rcFile}" file: - source /path/to/completion.sh - -Dynamic installation --------------------- - -Add this to the end of your shell configuration file (e.g. "{$rcFile}"): - - eval "$({$fullCommand} completion {$shell})" -EOH - ) - ->addArgument('shell', InputArgument::OPTIONAL, 'The shell type (e.g. "bash"), the value of the "$SHELL" env var will be used if this is not given', null, $this->getSupportedShells(...)) - ->addOption('debug', null, InputOption::VALUE_NONE, 'Tail the completion debug log') - ; - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $commandName = basename($_SERVER['argv'][0]); - - if ($input->getOption('debug')) { - $this->tailDebugLog($commandName, $output); - - return 0; - } - - $shell = $input->getArgument('shell') ?? self::guessShell(); - $completionFile = __DIR__.'/../Resources/completion.'.$shell; - if (!file_exists($completionFile)) { - $supportedShells = $this->getSupportedShells(); - - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - if ($shell) { - $output->writeln(sprintf('Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").', $shell, implode('", "', $supportedShells))); - } else { - $output->writeln(sprintf('Shell not detected, Symfony shell completion only supports "%s").', implode('", "', $supportedShells))); - } - - return 2; - } - - $output->write(str_replace(['{{ COMMAND_NAME }}', '{{ VERSION }}'], [$commandName, CompleteCommand::COMPLETION_API_VERSION], file_get_contents($completionFile))); - - return 0; - } - - private static function guessShell(): string - { - return basename($_SERVER['SHELL'] ?? ''); - } - - private function tailDebugLog(string $commandName, OutputInterface $output): void - { - $debugFile = sys_get_temp_dir().'/sf_'.$commandName.'.log'; - if (!file_exists($debugFile)) { - touch($debugFile); - } - $process = new Process(['tail', '-f', $debugFile], null, null, null, 0); - $process->run(function (string $type, string $line) use ($output): void { - $output->write($line); - }); - } - - /** - * @return string[] - */ - private function getSupportedShells(): array - { - if (isset($this->supportedShells)) { - return $this->supportedShells; - } - - $shells = []; - - foreach (new \DirectoryIterator(__DIR__.'/../Resources/') as $file) { - if (str_starts_with($file->getBasename(), 'completion.') && $file->isFile()) { - $shells[] = $file->getExtension(); - } - } - sort($shells); - - return $this->supportedShells = $shells; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/HelpCommand.php b/projects/priceservice/vendor/symfony/console/Command/HelpCommand.php deleted file mode 100644 index e6447b0..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/HelpCommand.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Descriptor\ApplicationDescription; -use Symfony\Component\Console\Helper\DescriptorHelper; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * HelpCommand displays the help for a given command. - * - * @author Fabien Potencier - */ -class HelpCommand extends Command -{ - private Command $command; - - /** - * @return void - */ - protected function configure() - { - $this->ignoreValidationErrors(); - - $this - ->setName('help') - ->setDefinition([ - new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help', fn () => array_keys((new ApplicationDescription($this->getApplication()))->getCommands())), - new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()), - new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'), - ]) - ->setDescription('Display help for a command') - ->setHelp(<<<'EOF' -The %command.name% command displays help for a given command: - - %command.full_name% list - -You can also output the help in other formats by using the --format option: - - %command.full_name% --format=xml list - -To display the list of available commands, please use the list command. -EOF - ) - ; - } - - /** - * @return void - */ - public function setCommand(Command $command) - { - $this->command = $command; - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $this->command ??= $this->getApplication()->find($input->getArgument('command_name')); - - $helper = new DescriptorHelper(); - $helper->describe($output, $this->command, [ - 'format' => $input->getOption('format'), - 'raw_text' => $input->getOption('raw'), - ]); - - unset($this->command); - - return 0; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/LazyCommand.php b/projects/priceservice/vendor/symfony/console/Command/LazyCommand.php deleted file mode 100644 index b94da66..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/LazyCommand.php +++ /dev/null @@ -1,207 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Helper\HelperInterface; -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Nicolas Grekas - */ -final class LazyCommand extends Command -{ - private \Closure|Command $command; - private ?bool $isEnabled; - - public function __construct(string $name, array $aliases, string $description, bool $isHidden, \Closure $commandFactory, ?bool $isEnabled = true) - { - $this->setName($name) - ->setAliases($aliases) - ->setHidden($isHidden) - ->setDescription($description); - - $this->command = $commandFactory; - $this->isEnabled = $isEnabled; - } - - public function ignoreValidationErrors(): void - { - $this->getCommand()->ignoreValidationErrors(); - } - - public function setApplication(?Application $application = null): void - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - if ($this->command instanceof parent) { - $this->command->setApplication($application); - } - - parent::setApplication($application); - } - - public function setHelperSet(HelperSet $helperSet): void - { - if ($this->command instanceof parent) { - $this->command->setHelperSet($helperSet); - } - - parent::setHelperSet($helperSet); - } - - public function isEnabled(): bool - { - return $this->isEnabled ?? $this->getCommand()->isEnabled(); - } - - public function run(InputInterface $input, OutputInterface $output): int - { - return $this->getCommand()->run($input, $output); - } - - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - $this->getCommand()->complete($input, $suggestions); - } - - public function setCode(callable $code): static - { - $this->getCommand()->setCode($code); - - return $this; - } - - /** - * @internal - */ - public function mergeApplicationDefinition(bool $mergeArgs = true): void - { - $this->getCommand()->mergeApplicationDefinition($mergeArgs); - } - - public function setDefinition(array|InputDefinition $definition): static - { - $this->getCommand()->setDefinition($definition); - - return $this; - } - - public function getDefinition(): InputDefinition - { - return $this->getCommand()->getDefinition(); - } - - public function getNativeDefinition(): InputDefinition - { - return $this->getCommand()->getNativeDefinition(); - } - - /** - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - */ - public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static - { - $suggestedValues = 5 <= \func_num_args() ? func_get_arg(4) : []; - $this->getCommand()->addArgument($name, $mode, $description, $default, $suggestedValues); - - return $this; - } - - /** - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - */ - public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null /* array|\Closure $suggestedValues = [] */): static - { - $suggestedValues = 6 <= \func_num_args() ? func_get_arg(5) : []; - $this->getCommand()->addOption($name, $shortcut, $mode, $description, $default, $suggestedValues); - - return $this; - } - - public function setProcessTitle(string $title): static - { - $this->getCommand()->setProcessTitle($title); - - return $this; - } - - public function setHelp(string $help): static - { - $this->getCommand()->setHelp($help); - - return $this; - } - - public function getHelp(): string - { - return $this->getCommand()->getHelp(); - } - - public function getProcessedHelp(): string - { - return $this->getCommand()->getProcessedHelp(); - } - - public function getSynopsis(bool $short = false): string - { - return $this->getCommand()->getSynopsis($short); - } - - public function addUsage(string $usage): static - { - $this->getCommand()->addUsage($usage); - - return $this; - } - - public function getUsages(): array - { - return $this->getCommand()->getUsages(); - } - - public function getHelper(string $name): HelperInterface - { - return $this->getCommand()->getHelper($name); - } - - public function getCommand(): parent - { - if (!$this->command instanceof \Closure) { - return $this->command; - } - - $command = $this->command = ($this->command)(); - $command->setApplication($this->getApplication()); - - if (null !== $this->getHelperSet()) { - $command->setHelperSet($this->getHelperSet()); - } - - $command->setName($this->getName()) - ->setAliases($this->getAliases()) - ->setHidden($this->isHidden()) - ->setDescription($this->getDescription()); - - // Will throw if the command is not correctly initialized. - $command->getDefinition(); - - return $command; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/ListCommand.php b/projects/priceservice/vendor/symfony/console/Command/ListCommand.php deleted file mode 100644 index 5850c3d..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/ListCommand.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Descriptor\ApplicationDescription; -use Symfony\Component\Console\Helper\DescriptorHelper; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * ListCommand displays the list of all available commands for the application. - * - * @author Fabien Potencier - */ -class ListCommand extends Command -{ - /** - * @return void - */ - protected function configure() - { - $this - ->setName('list') - ->setDefinition([ - new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name', null, fn () => array_keys((new ApplicationDescription($this->getApplication()))->getNamespaces())), - new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'), - new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()), - new InputOption('short', null, InputOption::VALUE_NONE, 'To skip describing commands\' arguments'), - ]) - ->setDescription('List commands') - ->setHelp(<<<'EOF' -The %command.name% command lists all commands: - - %command.full_name% - -You can also display the commands for a specific namespace: - - %command.full_name% test - -You can also output the information in other formats by using the --format option: - - %command.full_name% --format=xml - -It's also possible to get raw list of commands (useful for embedding command runner): - - %command.full_name% --raw -EOF - ) - ; - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $helper = new DescriptorHelper(); - $helper->describe($output, $this->getApplication(), [ - 'format' => $input->getOption('format'), - 'raw_text' => $input->getOption('raw'), - 'namespace' => $input->getArgument('namespace'), - 'short' => $input->getOption('short'), - ]); - - return 0; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/LockableTrait.php b/projects/priceservice/vendor/symfony/console/Command/LockableTrait.php deleted file mode 100644 index cd7548f..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/LockableTrait.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Lock\LockFactory; -use Symfony\Component\Lock\LockInterface; -use Symfony\Component\Lock\Store\FlockStore; -use Symfony\Component\Lock\Store\SemaphoreStore; - -/** - * Basic lock feature for commands. - * - * @author Geoffrey Brier - */ -trait LockableTrait -{ - private ?LockInterface $lock = null; - - /** - * Locks a command. - */ - private function lock(?string $name = null, bool $blocking = false): bool - { - if (!class_exists(SemaphoreStore::class)) { - throw new LogicException('To enable the locking feature you must install the symfony/lock component. Try running "composer require symfony/lock".'); - } - - if (null !== $this->lock) { - throw new LogicException('A lock is already in place.'); - } - - if (SemaphoreStore::isSupported()) { - $store = new SemaphoreStore(); - } else { - $store = new FlockStore(); - } - - $this->lock = (new LockFactory($store))->createLock($name ?: $this->getName()); - if (!$this->lock->acquire($blocking)) { - $this->lock = null; - - return false; - } - - return true; - } - - /** - * Releases the command lock if there is one. - */ - private function release(): void - { - if ($this->lock) { - $this->lock->release(); - $this->lock = null; - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Command/SignalableCommandInterface.php b/projects/priceservice/vendor/symfony/console/Command/SignalableCommandInterface.php deleted file mode 100644 index f8eb8e5..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/SignalableCommandInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -/** - * Interface for command reacting to signal. - * - * @author Grégoire Pineau - */ -interface SignalableCommandInterface -{ - /** - * Returns the list of signals to subscribe. - */ - public function getSubscribedSignals(): array; - - /** - * The method will be called when the application is signaled. - * - * @param int|false $previousExitCode - * - * @return int|false The exit code to return or false to continue the normal execution - */ - public function handleSignal(int $signal, /* int|false $previousExitCode = 0 */); -} diff --git a/projects/priceservice/vendor/symfony/console/Command/TraceableCommand.php b/projects/priceservice/vendor/symfony/console/Command/TraceableCommand.php deleted file mode 100644 index 9ffb68d..0000000 --- a/projects/priceservice/vendor/symfony/console/Command/TraceableCommand.php +++ /dev/null @@ -1,356 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Command; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Helper\HelperInterface; -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @internal - * - * @author Jules Pietri - */ -final class TraceableCommand extends Command implements SignalableCommandInterface -{ - public readonly Command $command; - public int $exitCode; - public ?int $interruptedBySignal = null; - public bool $ignoreValidation; - public bool $isInteractive = false; - public string $duration = 'n/a'; - public string $maxMemoryUsage = 'n/a'; - public InputInterface $input; - public OutputInterface $output; - /** @var array */ - public array $arguments; - /** @var array */ - public array $options; - /** @var array */ - public array $interactiveInputs = []; - public array $handledSignals = []; - - public function __construct( - Command $command, - private readonly Stopwatch $stopwatch, - ) { - if ($command instanceof LazyCommand) { - $command = $command->getCommand(); - } - - $this->command = $command; - - // prevent call to self::getDefaultDescription() - $this->setDescription($command->getDescription()); - - parent::__construct($command->getName()); - - // init below enables calling {@see parent::run()} - [$code, $processTitle, $ignoreValidationErrors] = \Closure::bind(function () { - return [$this->code, $this->processTitle, $this->ignoreValidationErrors]; - }, $command, Command::class)(); - - if (\is_callable($code)) { - $this->setCode($code); - } - - if ($processTitle) { - parent::setProcessTitle($processTitle); - } - - if ($ignoreValidationErrors) { - parent::ignoreValidationErrors(); - } - - $this->ignoreValidation = $ignoreValidationErrors; - } - - public function __call(string $name, array $arguments): mixed - { - return $this->command->{$name}(...$arguments); - } - - public function getSubscribedSignals(): array - { - return $this->command instanceof SignalableCommandInterface ? $this->command->getSubscribedSignals() : []; - } - - public function handleSignal(int $signal, int|false $previousExitCode = 0): int|false - { - if (!$this->command instanceof SignalableCommandInterface) { - return false; - } - - $event = $this->stopwatch->start($this->getName().'.handle_signal'); - - $exit = $this->command->handleSignal($signal, $previousExitCode); - - $event->stop(); - - if (!isset($this->handledSignals[$signal])) { - $this->handledSignals[$signal] = [ - 'handled' => 0, - 'duration' => 0, - 'memory' => 0, - ]; - } - - ++$this->handledSignals[$signal]['handled']; - $this->handledSignals[$signal]['duration'] += $event->getDuration(); - $this->handledSignals[$signal]['memory'] = max( - $this->handledSignals[$signal]['memory'], - $event->getMemory() >> 20 - ); - - return $exit; - } - - /** - * {@inheritdoc} - * - * Calling parent method is required to be used in {@see parent::run()}. - */ - public function ignoreValidationErrors(): void - { - $this->ignoreValidation = true; - $this->command->ignoreValidationErrors(); - - parent::ignoreValidationErrors(); - } - - public function setApplication(?Application $application = null): void - { - $this->command->setApplication($application); - } - - public function getApplication(): ?Application - { - return $this->command->getApplication(); - } - - public function setHelperSet(HelperSet $helperSet): void - { - $this->command->setHelperSet($helperSet); - } - - public function getHelperSet(): ?HelperSet - { - return $this->command->getHelperSet(); - } - - public function isEnabled(): bool - { - return $this->command->isEnabled(); - } - - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - $this->command->complete($input, $suggestions); - } - - /** - * {@inheritdoc} - * - * Calling parent method is required to be used in {@see parent::run()}. - */ - public function setCode(callable $code): static - { - $this->command->setCode($code); - - return parent::setCode(function (InputInterface $input, OutputInterface $output) use ($code): int { - $event = $this->stopwatch->start($this->getName().'.code'); - - $this->exitCode = $code($input, $output); - - $event->stop(); - - return $this->exitCode; - }); - } - - /** - * @internal - */ - public function mergeApplicationDefinition(bool $mergeArgs = true): void - { - $this->command->mergeApplicationDefinition($mergeArgs); - } - - public function setDefinition(array|InputDefinition $definition): static - { - $this->command->setDefinition($definition); - - return $this; - } - - public function getDefinition(): InputDefinition - { - return $this->command->getDefinition(); - } - - public function getNativeDefinition(): InputDefinition - { - return $this->command->getNativeDefinition(); - } - - public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static - { - $this->command->addArgument($name, $mode, $description, $default, $suggestedValues); - - return $this; - } - - public function addOption(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = []): static - { - $this->command->addOption($name, $shortcut, $mode, $description, $default, $suggestedValues); - - return $this; - } - - /** - * {@inheritdoc} - * - * Calling parent method is required to be used in {@see parent::run()}. - */ - public function setProcessTitle(string $title): static - { - $this->command->setProcessTitle($title); - - return parent::setProcessTitle($title); - } - - public function setHelp(string $help): static - { - $this->command->setHelp($help); - - return $this; - } - - public function getHelp(): string - { - return $this->command->getHelp(); - } - - public function getProcessedHelp(): string - { - return $this->command->getProcessedHelp(); - } - - public function getSynopsis(bool $short = false): string - { - return $this->command->getSynopsis($short); - } - - public function addUsage(string $usage): static - { - $this->command->addUsage($usage); - - return $this; - } - - public function getUsages(): array - { - return $this->command->getUsages(); - } - - public function getHelper(string $name): HelperInterface - { - return $this->command->getHelper($name); - } - - public function run(InputInterface $input, OutputInterface $output): int - { - $this->input = $input; - $this->output = $output; - $this->arguments = $input->getArguments(); - $this->options = $input->getOptions(); - $event = $this->stopwatch->start($this->getName(), 'command'); - - try { - $this->exitCode = parent::run($input, $output); - } finally { - $event->stop(); - - if ($output instanceof ConsoleOutputInterface && $output->isDebug()) { - $output->getErrorOutput()->writeln((string) $event); - } - - $this->duration = $event->getDuration().' ms'; - $this->maxMemoryUsage = ($event->getMemory() >> 20).' MiB'; - - if ($this->isInteractive) { - $this->extractInteractiveInputs($input->getArguments(), $input->getOptions()); - } - } - - return $this->exitCode; - } - - protected function initialize(InputInterface $input, OutputInterface $output): void - { - $event = $this->stopwatch->start($this->getName().'.init', 'command'); - - $this->command->initialize($input, $output); - - $event->stop(); - } - - protected function interact(InputInterface $input, OutputInterface $output): void - { - if (!$this->isInteractive = Command::class !== (new \ReflectionMethod($this->command, 'interact'))->getDeclaringClass()->getName()) { - return; - } - - $event = $this->stopwatch->start($this->getName().'.interact', 'command'); - - $this->command->interact($input, $output); - - $event->stop(); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $event = $this->stopwatch->start($this->getName().'.execute', 'command'); - - $exitCode = $this->command->execute($input, $output); - - $event->stop(); - - return $exitCode; - } - - private function extractInteractiveInputs(array $arguments, array $options): void - { - foreach ($arguments as $argName => $argValue) { - if (\array_key_exists($argName, $this->arguments) && $this->arguments[$argName] === $argValue) { - continue; - } - - $this->interactiveInputs[$argName] = $argValue; - } - - foreach ($options as $optName => $optValue) { - if (\array_key_exists($optName, $this->options) && $this->options[$optName] === $optValue) { - continue; - } - - $this->interactiveInputs['--'.$optName] = $optValue; - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php b/projects/priceservice/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php deleted file mode 100644 index b6b637c..0000000 --- a/projects/priceservice/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\CommandLoader; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\CommandNotFoundException; - -/** - * @author Robin Chalas - */ -interface CommandLoaderInterface -{ - /** - * Loads a command. - * - * @throws CommandNotFoundException - */ - public function get(string $name): Command; - - /** - * Checks if a command exists. - */ - public function has(string $name): bool; - - /** - * @return string[] - */ - public function getNames(): array; -} diff --git a/projects/priceservice/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/projects/priceservice/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php deleted file mode 100644 index bfa0ac4..0000000 --- a/projects/priceservice/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\CommandLoader; - -use Psr\Container\ContainerInterface; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\CommandNotFoundException; - -/** - * Loads commands from a PSR-11 container. - * - * @author Robin Chalas - */ -class ContainerCommandLoader implements CommandLoaderInterface -{ - private ContainerInterface $container; - private array $commandMap; - - /** - * @param array $commandMap An array with command names as keys and service ids as values - */ - public function __construct(ContainerInterface $container, array $commandMap) - { - $this->container = $container; - $this->commandMap = $commandMap; - } - - public function get(string $name): Command - { - if (!$this->has($name)) { - throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name)); - } - - return $this->container->get($this->commandMap[$name]); - } - - public function has(string $name): bool - { - return isset($this->commandMap[$name]) && $this->container->has($this->commandMap[$name]); - } - - public function getNames(): array - { - return array_keys($this->commandMap); - } -} diff --git a/projects/priceservice/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/projects/priceservice/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php deleted file mode 100644 index 9ced75a..0000000 --- a/projects/priceservice/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\CommandLoader; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\CommandNotFoundException; - -/** - * A simple command loader using factories to instantiate commands lazily. - * - * @author Maxime Steinhausser - */ -class FactoryCommandLoader implements CommandLoaderInterface -{ - private array $factories; - - /** - * @param callable[] $factories Indexed by command names - */ - public function __construct(array $factories) - { - $this->factories = $factories; - } - - public function has(string $name): bool - { - return isset($this->factories[$name]); - } - - public function get(string $name): Command - { - if (!isset($this->factories[$name])) { - throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name)); - } - - $factory = $this->factories[$name]; - - return $factory(); - } - - public function getNames(): array - { - return array_keys($this->factories); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/CompletionInput.php b/projects/priceservice/vendor/symfony/console/Completion/CompletionInput.php deleted file mode 100644 index 79c2f65..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/CompletionInput.php +++ /dev/null @@ -1,248 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion; - -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; - -/** - * An input specialized for shell completion. - * - * This input allows unfinished option names or values and exposes what kind of - * completion is expected. - * - * @author Wouter de Jong - */ -final class CompletionInput extends ArgvInput -{ - public const TYPE_ARGUMENT_VALUE = 'argument_value'; - public const TYPE_OPTION_VALUE = 'option_value'; - public const TYPE_OPTION_NAME = 'option_name'; - public const TYPE_NONE = 'none'; - - private array $tokens; - private int $currentIndex; - private string $completionType; - private ?string $completionName = null; - private string $completionValue = ''; - - /** - * Converts a terminal string into tokens. - * - * This is required for shell completions without COMP_WORDS support. - */ - public static function fromString(string $inputStr, int $currentIndex): self - { - preg_match_all('/(?<=^|\s)([\'"]?)(.+?)(?tokens = $tokens; - $input->currentIndex = $currentIndex; - - return $input; - } - - public function bind(InputDefinition $definition): void - { - parent::bind($definition); - - $relevantToken = $this->getRelevantToken(); - if ('-' === $relevantToken[0]) { - // the current token is an input option: complete either option name or option value - [$optionToken, $optionValue] = explode('=', $relevantToken, 2) + ['', '']; - - $option = $this->getOptionFromToken($optionToken); - if (null === $option && !$this->isCursorFree()) { - $this->completionType = self::TYPE_OPTION_NAME; - $this->completionValue = $relevantToken; - - return; - } - - if ($option?->acceptValue()) { - $this->completionType = self::TYPE_OPTION_VALUE; - $this->completionName = $option->getName(); - $this->completionValue = $optionValue ?: (!str_starts_with($optionToken, '--') ? substr($optionToken, 2) : ''); - - return; - } - } - - $previousToken = $this->tokens[$this->currentIndex - 1]; - if ('-' === $previousToken[0] && '' !== trim($previousToken, '-')) { - // check if previous option accepted a value - $previousOption = $this->getOptionFromToken($previousToken); - if ($previousOption?->acceptValue()) { - $this->completionType = self::TYPE_OPTION_VALUE; - $this->completionName = $previousOption->getName(); - $this->completionValue = $relevantToken; - - return; - } - } - - // complete argument value - $this->completionType = self::TYPE_ARGUMENT_VALUE; - - foreach ($this->definition->getArguments() as $argumentName => $argument) { - if (!isset($this->arguments[$argumentName])) { - break; - } - - $argumentValue = $this->arguments[$argumentName]; - $this->completionName = $argumentName; - if (\is_array($argumentValue)) { - $this->completionValue = $argumentValue ? $argumentValue[array_key_last($argumentValue)] : null; - } else { - $this->completionValue = $argumentValue; - } - } - - if ($this->currentIndex >= \count($this->tokens)) { - if (!isset($this->arguments[$argumentName]) || $this->definition->getArgument($argumentName)->isArray()) { - $this->completionName = $argumentName; - $this->completionValue = ''; - } else { - // we've reached the end - $this->completionType = self::TYPE_NONE; - $this->completionName = null; - $this->completionValue = ''; - } - } - } - - /** - * Returns the type of completion required. - * - * TYPE_ARGUMENT_VALUE when completing the value of an input argument - * TYPE_OPTION_VALUE when completing the value of an input option - * TYPE_OPTION_NAME when completing the name of an input option - * TYPE_NONE when nothing should be completed - * - * TYPE_OPTION_NAME and TYPE_NONE are already implemented by the Console component. - * - * @return self::TYPE_* - */ - public function getCompletionType(): string - { - return $this->completionType; - } - - /** - * The name of the input option or argument when completing a value. - * - * @return string|null returns null when completing an option name - */ - public function getCompletionName(): ?string - { - return $this->completionName; - } - - /** - * The value already typed by the user (or empty string). - */ - public function getCompletionValue(): string - { - return $this->completionValue; - } - - public function mustSuggestOptionValuesFor(string $optionName): bool - { - return self::TYPE_OPTION_VALUE === $this->getCompletionType() && $optionName === $this->getCompletionName(); - } - - public function mustSuggestArgumentValuesFor(string $argumentName): bool - { - return self::TYPE_ARGUMENT_VALUE === $this->getCompletionType() && $argumentName === $this->getCompletionName(); - } - - protected function parseToken(string $token, bool $parseOptions): bool - { - try { - return parent::parseToken($token, $parseOptions); - } catch (RuntimeException) { - // suppress errors, completed input is almost never valid - } - - return $parseOptions; - } - - private function getOptionFromToken(string $optionToken): ?InputOption - { - $optionName = ltrim($optionToken, '-'); - if (!$optionName) { - return null; - } - - if ('-' === ($optionToken[1] ?? ' ')) { - // long option name - return $this->definition->hasOption($optionName) ? $this->definition->getOption($optionName) : null; - } - - // short option name - return $this->definition->hasShortcut($optionName[0]) ? $this->definition->getOptionForShortcut($optionName[0]) : null; - } - - /** - * The token of the cursor, or the last token if the cursor is at the end of the input. - */ - private function getRelevantToken(): string - { - return $this->tokens[$this->isCursorFree() ? $this->currentIndex - 1 : $this->currentIndex]; - } - - /** - * Whether the cursor is "free" (i.e. at the end of the input preceded by a space). - */ - private function isCursorFree(): bool - { - $nrOfTokens = \count($this->tokens); - if ($this->currentIndex > $nrOfTokens) { - throw new \LogicException('Current index is invalid, it must be the number of input tokens or one more.'); - } - - return $this->currentIndex >= $nrOfTokens; - } - - public function __toString() - { - $str = ''; - foreach ($this->tokens as $i => $token) { - $str .= $token; - - if ($this->currentIndex === $i) { - $str .= '|'; - } - - $str .= ' '; - } - - if ($this->currentIndex > $i) { - $str .= '|'; - } - - return rtrim($str); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/CompletionSuggestions.php b/projects/priceservice/vendor/symfony/console/Completion/CompletionSuggestions.php deleted file mode 100644 index 549bbaf..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/CompletionSuggestions.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion; - -use Symfony\Component\Console\Input\InputOption; - -/** - * Stores all completion suggestions for the current input. - * - * @author Wouter de Jong - */ -final class CompletionSuggestions -{ - private array $valueSuggestions = []; - private array $optionSuggestions = []; - - /** - * Add a suggested value for an input option or argument. - * - * @return $this - */ - public function suggestValue(string|Suggestion $value): static - { - $this->valueSuggestions[] = !$value instanceof Suggestion ? new Suggestion($value) : $value; - - return $this; - } - - /** - * Add multiple suggested values at once for an input option or argument. - * - * @param list $values - * - * @return $this - */ - public function suggestValues(array $values): static - { - foreach ($values as $value) { - $this->suggestValue($value); - } - - return $this; - } - - /** - * Add a suggestion for an input option name. - * - * @return $this - */ - public function suggestOption(InputOption $option): static - { - $this->optionSuggestions[] = $option; - - return $this; - } - - /** - * Add multiple suggestions for input option names at once. - * - * @param InputOption[] $options - * - * @return $this - */ - public function suggestOptions(array $options): static - { - foreach ($options as $option) { - $this->suggestOption($option); - } - - return $this; - } - - /** - * @return InputOption[] - */ - public function getOptionSuggestions(): array - { - return $this->optionSuggestions; - } - - /** - * @return Suggestion[] - */ - public function getValueSuggestions(): array - { - return $this->valueSuggestions; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/projects/priceservice/vendor/symfony/console/Completion/Output/BashCompletionOutput.php deleted file mode 100644 index c6f76eb..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion\Output; - -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Wouter de Jong - */ -class BashCompletionOutput implements CompletionOutputInterface -{ - public function write(CompletionSuggestions $suggestions, OutputInterface $output): void - { - $values = $suggestions->getValueSuggestions(); - foreach ($suggestions->getOptionSuggestions() as $option) { - $values[] = '--'.$option->getName(); - if ($option->isNegatable()) { - $values[] = '--no-'.$option->getName(); - } - } - $output->writeln(implode("\n", $values)); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php b/projects/priceservice/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php deleted file mode 100644 index 659e596..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion\Output; - -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Transforms the {@see CompletionSuggestions} object into output readable by the shell completion. - * - * @author Wouter de Jong - */ -interface CompletionOutputInterface -{ - public function write(CompletionSuggestions $suggestions, OutputInterface $output): void; -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/projects/priceservice/vendor/symfony/console/Completion/Output/FishCompletionOutput.php deleted file mode 100644 index d2c414e..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion\Output; - -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Guillaume Aveline - */ -class FishCompletionOutput implements CompletionOutputInterface -{ - public function write(CompletionSuggestions $suggestions, OutputInterface $output): void - { - $values = $suggestions->getValueSuggestions(); - foreach ($suggestions->getOptionSuggestions() as $option) { - $values[] = '--'.$option->getName(); - if ($option->isNegatable()) { - $values[] = '--no-'.$option->getName(); - } - } - $output->write(implode("\n", $values)); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php b/projects/priceservice/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php deleted file mode 100644 index bb4ce70..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion\Output; - -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Jitendra A - */ -class ZshCompletionOutput implements CompletionOutputInterface -{ - public function write(CompletionSuggestions $suggestions, OutputInterface $output): void - { - $values = []; - foreach ($suggestions->getValueSuggestions() as $value) { - $values[] = $value->getValue().($value->getDescription() ? "\t".$value->getDescription() : ''); - } - foreach ($suggestions->getOptionSuggestions() as $option) { - $values[] = '--'.$option->getName().($option->getDescription() ? "\t".$option->getDescription() : ''); - if ($option->isNegatable()) { - $values[] = '--no-'.$option->getName().($option->getDescription() ? "\t".$option->getDescription() : ''); - } - } - $output->write(implode("\n", $values)."\n"); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Completion/Suggestion.php b/projects/priceservice/vendor/symfony/console/Completion/Suggestion.php deleted file mode 100644 index 7392965..0000000 --- a/projects/priceservice/vendor/symfony/console/Completion/Suggestion.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Completion; - -/** - * Represents a single suggested value. - * - * @author Wouter de Jong - */ -class Suggestion implements \Stringable -{ - public function __construct( - private readonly string $value, - private readonly string $description = '' - ) { - } - - public function getValue(): string - { - return $this->value; - } - - public function getDescription(): string - { - return $this->description; - } - - public function __toString(): string - { - return $this->getValue(); - } -} diff --git a/projects/priceservice/vendor/symfony/console/ConsoleEvents.php b/projects/priceservice/vendor/symfony/console/ConsoleEvents.php deleted file mode 100644 index 6ae8f32..0000000 --- a/projects/priceservice/vendor/symfony/console/ConsoleEvents.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Event\ConsoleCommandEvent; -use Symfony\Component\Console\Event\ConsoleErrorEvent; -use Symfony\Component\Console\Event\ConsoleSignalEvent; -use Symfony\Component\Console\Event\ConsoleTerminateEvent; - -/** - * Contains all events dispatched by an Application. - * - * @author Francesco Levorato - */ -final class ConsoleEvents -{ - /** - * The COMMAND event allows you to attach listeners before any command is - * executed by the console. It also allows you to modify the command, input and output - * before they are handed to the command. - * - * @Event("Symfony\Component\Console\Event\ConsoleCommandEvent") - */ - public const COMMAND = 'console.command'; - - /** - * The SIGNAL event allows you to perform some actions - * after the command execution was interrupted. - * - * @Event("Symfony\Component\Console\Event\ConsoleSignalEvent") - */ - public const SIGNAL = 'console.signal'; - - /** - * The TERMINATE event allows you to attach listeners after a command is - * executed by the console. - * - * @Event("Symfony\Component\Console\Event\ConsoleTerminateEvent") - */ - public const TERMINATE = 'console.terminate'; - - /** - * The ERROR event occurs when an uncaught exception or error appears. - * - * This event allows you to deal with the exception/error or - * to modify the thrown exception. - * - * @Event("Symfony\Component\Console\Event\ConsoleErrorEvent") - */ - public const ERROR = 'console.error'; - - /** - * Event aliases. - * - * These aliases can be consumed by RegisterListenersPass. - */ - public const ALIASES = [ - ConsoleCommandEvent::class => self::COMMAND, - ConsoleErrorEvent::class => self::ERROR, - ConsoleSignalEvent::class => self::SIGNAL, - ConsoleTerminateEvent::class => self::TERMINATE, - ]; -} diff --git a/projects/priceservice/vendor/symfony/console/Cursor.php b/projects/priceservice/vendor/symfony/console/Cursor.php deleted file mode 100644 index 69fd382..0000000 --- a/projects/priceservice/vendor/symfony/console/Cursor.php +++ /dev/null @@ -1,204 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Pierre du Plessis - */ -final class Cursor -{ - private OutputInterface $output; - /** @var resource */ - private $input; - - /** - * @param resource|null $input - */ - public function __construct(OutputInterface $output, $input = null) - { - $this->output = $output; - $this->input = $input ?? (\defined('STDIN') ? \STDIN : fopen('php://input', 'r+')); - } - - /** - * @return $this - */ - public function moveUp(int $lines = 1): static - { - $this->output->write(sprintf("\x1b[%dA", $lines)); - - return $this; - } - - /** - * @return $this - */ - public function moveDown(int $lines = 1): static - { - $this->output->write(sprintf("\x1b[%dB", $lines)); - - return $this; - } - - /** - * @return $this - */ - public function moveRight(int $columns = 1): static - { - $this->output->write(sprintf("\x1b[%dC", $columns)); - - return $this; - } - - /** - * @return $this - */ - public function moveLeft(int $columns = 1): static - { - $this->output->write(sprintf("\x1b[%dD", $columns)); - - return $this; - } - - /** - * @return $this - */ - public function moveToColumn(int $column): static - { - $this->output->write(sprintf("\x1b[%dG", $column)); - - return $this; - } - - /** - * @return $this - */ - public function moveToPosition(int $column, int $row): static - { - $this->output->write(sprintf("\x1b[%d;%dH", $row + 1, $column)); - - return $this; - } - - /** - * @return $this - */ - public function savePosition(): static - { - $this->output->write("\x1b7"); - - return $this; - } - - /** - * @return $this - */ - public function restorePosition(): static - { - $this->output->write("\x1b8"); - - return $this; - } - - /** - * @return $this - */ - public function hide(): static - { - $this->output->write("\x1b[?25l"); - - return $this; - } - - /** - * @return $this - */ - public function show(): static - { - $this->output->write("\x1b[?25h\x1b[?0c"); - - return $this; - } - - /** - * Clears all the output from the current line. - * - * @return $this - */ - public function clearLine(): static - { - $this->output->write("\x1b[2K"); - - return $this; - } - - /** - * Clears all the output from the current line after the current position. - */ - public function clearLineAfter(): self - { - $this->output->write("\x1b[K"); - - return $this; - } - - /** - * Clears all the output from the cursors' current position to the end of the screen. - * - * @return $this - */ - public function clearOutput(): static - { - $this->output->write("\x1b[0J"); - - return $this; - } - - /** - * Clears the entire screen. - * - * @return $this - */ - public function clearScreen(): static - { - $this->output->write("\x1b[2J"); - - return $this; - } - - /** - * Returns the current cursor position as x,y coordinates. - */ - public function getCurrentPosition(): array - { - static $isTtySupported; - - if (!$isTtySupported ??= '/' === \DIRECTORY_SEPARATOR && stream_isatty(\STDOUT)) { - return [1, 1]; - } - - $sttyMode = shell_exec('stty -g'); - shell_exec('stty -icanon -echo'); - - @fwrite($this->input, "\033[6n"); - - $code = trim(fread($this->input, 1024)); - - shell_exec(sprintf('stty %s', $sttyMode)); - - sscanf($code, "\033[%d;%dR", $row, $col); - - return [$col, $row]; - } -} diff --git a/projects/priceservice/vendor/symfony/console/DataCollector/CommandDataCollector.php b/projects/priceservice/vendor/symfony/console/DataCollector/CommandDataCollector.php deleted file mode 100644 index 45138c7..0000000 --- a/projects/priceservice/vendor/symfony/console/DataCollector/CommandDataCollector.php +++ /dev/null @@ -1,234 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\DataCollector; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Debug\CliRequest; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\SignalRegistry\SignalMap; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\DataCollector\DataCollector; -use Symfony\Component\VarDumper\Cloner\Data; - -/** - * @internal - * - * @author Jules Pietri - */ -final class CommandDataCollector extends DataCollector -{ - public function collect(Request $request, Response $response, ?\Throwable $exception = null): void - { - if (!$request instanceof CliRequest) { - return; - } - - $command = $request->command; - $application = $command->getApplication(); - - $this->data = [ - 'command' => $this->cloneVar($command->command), - 'exit_code' => $command->exitCode, - 'interrupted_by_signal' => $command->interruptedBySignal, - 'duration' => $command->duration, - 'max_memory_usage' => $command->maxMemoryUsage, - 'verbosity_level' => match ($command->output->getVerbosity()) { - OutputInterface::VERBOSITY_QUIET => 'quiet', - OutputInterface::VERBOSITY_NORMAL => 'normal', - OutputInterface::VERBOSITY_VERBOSE => 'verbose', - OutputInterface::VERBOSITY_VERY_VERBOSE => 'very verbose', - OutputInterface::VERBOSITY_DEBUG => 'debug', - }, - 'interactive' => $command->isInteractive, - 'validate_input' => !$command->ignoreValidation, - 'enabled' => $command->isEnabled(), - 'visible' => !$command->isHidden(), - 'input' => $this->cloneVar($command->input), - 'output' => $this->cloneVar($command->output), - 'interactive_inputs' => array_map($this->cloneVar(...), $command->interactiveInputs), - 'signalable' => $command->getSubscribedSignals(), - 'handled_signals' => $command->handledSignals, - 'helper_set' => array_map($this->cloneVar(...), iterator_to_array($command->getHelperSet())), - ]; - - $baseDefinition = $application->getDefinition(); - - foreach ($command->arguments as $argName => $argValue) { - if ($baseDefinition->hasArgument($argName)) { - $this->data['application_inputs'][$argName] = $this->cloneVar($argValue); - } else { - $this->data['arguments'][$argName] = $this->cloneVar($argValue); - } - } - - foreach ($command->options as $optName => $optValue) { - if ($baseDefinition->hasOption($optName)) { - $this->data['application_inputs']['--'.$optName] = $this->cloneVar($optValue); - } else { - $this->data['options'][$optName] = $this->cloneVar($optValue); - } - } - } - - public function getName(): string - { - return 'command'; - } - - /** - * @return array{ - * class?: class-string, - * executor?: string, - * file: string, - * line: int, - * } - */ - public function getCommand(): array - { - $class = $this->data['command']->getType(); - $r = new \ReflectionMethod($class, 'execute'); - - if (Command::class !== $r->getDeclaringClass()) { - return [ - 'executor' => $class.'::'.$r->name, - 'file' => $r->getFileName(), - 'line' => $r->getStartLine(), - ]; - } - - $r = new \ReflectionClass($class); - - return [ - 'class' => $class, - 'file' => $r->getFileName(), - 'line' => $r->getStartLine(), - ]; - } - - public function getInterruptedBySignal(): ?string - { - if (isset($this->data['interrupted_by_signal'])) { - return sprintf('%s (%d)', SignalMap::getSignalName($this->data['interrupted_by_signal']), $this->data['interrupted_by_signal']); - } - - return null; - } - - public function getDuration(): string - { - return $this->data['duration']; - } - - public function getMaxMemoryUsage(): string - { - return $this->data['max_memory_usage']; - } - - public function getVerbosityLevel(): string - { - return $this->data['verbosity_level']; - } - - public function getInteractive(): bool - { - return $this->data['interactive']; - } - - public function getValidateInput(): bool - { - return $this->data['validate_input']; - } - - public function getEnabled(): bool - { - return $this->data['enabled']; - } - - public function getVisible(): bool - { - return $this->data['visible']; - } - - public function getInput(): Data - { - return $this->data['input']; - } - - public function getOutput(): Data - { - return $this->data['output']; - } - - /** - * @return Data[] - */ - public function getArguments(): array - { - return $this->data['arguments'] ?? []; - } - - /** - * @return Data[] - */ - public function getOptions(): array - { - return $this->data['options'] ?? []; - } - - /** - * @return Data[] - */ - public function getApplicationInputs(): array - { - return $this->data['application_inputs'] ?? []; - } - - /** - * @return Data[] - */ - public function getInteractiveInputs(): array - { - return $this->data['interactive_inputs'] ?? []; - } - - public function getSignalable(): array - { - return array_map( - static fn (int $signal): string => sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal), - $this->data['signalable'] - ); - } - - public function getHandledSignals(): array - { - $keys = array_map( - static fn (int $signal): string => sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal), - array_keys($this->data['handled_signals']) - ); - - return array_combine($keys, array_values($this->data['handled_signals'])); - } - - /** - * @return Data[] - */ - public function getHelperSet(): array - { - return $this->data['helper_set'] ?? []; - } - - public function reset(): void - { - $this->data = []; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Debug/CliRequest.php b/projects/priceservice/vendor/symfony/console/Debug/CliRequest.php deleted file mode 100644 index b023db0..0000000 --- a/projects/priceservice/vendor/symfony/console/Debug/CliRequest.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Debug; - -use Symfony\Component\Console\Command\TraceableCommand; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; - -/** - * @internal - */ -final class CliRequest extends Request -{ - public function __construct( - public readonly TraceableCommand $command, - ) { - parent::__construct( - attributes: ['_controller' => \get_class($command->command), '_virtual_type' => 'command'], - server: $_SERVER, - ); - } - - // Methods below allow to populate a profile, thus enable search and filtering - public function getUri(): string - { - if ($this->server->has('SYMFONY_CLI_BINARY_NAME')) { - $binary = $this->server->get('SYMFONY_CLI_BINARY_NAME').' console'; - } else { - $binary = $this->server->get('argv')[0]; - } - - return $binary.' '.$this->command->input; - } - - public function getMethod(): string - { - return $this->command->isInteractive ? 'INTERACTIVE' : 'BATCH'; - } - - public function getResponse(): Response - { - return new class($this->command->exitCode) extends Response { - public function __construct(private readonly int $exitCode) - { - parent::__construct(); - } - - public function getStatusCode(): int - { - return $this->exitCode; - } - }; - } - - public function getClientIp(): string - { - $application = $this->command->getApplication(); - - return $application->getName().' '.$application->getVersion(); - } -} diff --git a/projects/priceservice/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/projects/priceservice/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php deleted file mode 100644 index 27705dd..0000000 --- a/projects/priceservice/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\DependencyInjection; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Command\LazyCommand; -use Symfony\Component\Console\CommandLoader\ContainerCommandLoader; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Registers console commands. - * - * @author Grégoire Pineau - */ -class AddConsoleCommandPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $commandServices = $container->findTaggedServiceIds('console.command', true); - $lazyCommandMap = []; - $lazyCommandRefs = []; - $serviceIds = []; - - foreach ($commandServices as $id => $tags) { - $definition = $container->getDefinition($id); - $definition->addTag('container.no_preload'); - $class = $container->getParameterBag()->resolveValue($definition->getClass()); - - if (isset($tags[0]['command'])) { - $aliases = $tags[0]['command']; - } else { - if (!$r = $container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } - if (!$r->isSubclassOf(Command::class)) { - throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class)); - } - $aliases = str_replace('%', '%%', $class::getDefaultName() ?? ''); - } - - $aliases = explode('|', $aliases ?? ''); - $commandName = array_shift($aliases); - - if ($isHidden = '' === $commandName) { - $commandName = array_shift($aliases); - } - - if (null === $commandName) { - if (!$definition->isPublic() || $definition->isPrivate() || $definition->hasTag('container.private')) { - $commandId = 'console.command.public_alias.'.$id; - $container->setAlias($commandId, $id)->setPublic(true); - $id = $commandId; - } - $serviceIds[] = $id; - - continue; - } - - $description = $tags[0]['description'] ?? null; - - unset($tags[0]); - $lazyCommandMap[$commandName] = $id; - $lazyCommandRefs[$id] = new TypedReference($id, $class); - - foreach ($aliases as $alias) { - $lazyCommandMap[$alias] = $id; - } - - foreach ($tags as $tag) { - if (isset($tag['command'])) { - $aliases[] = $tag['command']; - $lazyCommandMap[$tag['command']] = $id; - } - - $description ??= $tag['description'] ?? null; - } - - $definition->addMethodCall('setName', [$commandName]); - - if ($aliases) { - $definition->addMethodCall('setAliases', [$aliases]); - } - - if ($isHidden) { - $definition->addMethodCall('setHidden', [true]); - } - - if (!$description) { - if (!$r = $container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } - if (!$r->isSubclassOf(Command::class)) { - throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, 'console.command', Command::class)); - } - $description = str_replace('%', '%%', $class::getDefaultDescription() ?? ''); - } - - if ($description) { - $definition->addMethodCall('setDescription', [$description]); - - $container->register('.'.$id.'.lazy', LazyCommand::class) - ->setArguments([$commandName, $aliases, $description, $isHidden, new ServiceClosureArgument($lazyCommandRefs[$id])]); - - $lazyCommandRefs[$id] = new Reference('.'.$id.'.lazy'); - } - } - - $container - ->register('console.command_loader', ContainerCommandLoader::class) - ->setPublic(true) - ->addTag('container.no_preload') - ->setArguments([ServiceLocatorTagPass::register($container, $lazyCommandRefs), $lazyCommandMap]); - - $container->setParameter('console.command.ids', $serviceIds); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/ApplicationDescription.php b/projects/priceservice/vendor/symfony/console/Descriptor/ApplicationDescription.php deleted file mode 100644 index ef9e8a6..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ /dev/null @@ -1,139 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\CommandNotFoundException; - -/** - * @author Jean-François Simon - * - * @internal - */ -class ApplicationDescription -{ - public const GLOBAL_NAMESPACE = '_global'; - - private Application $application; - private ?string $namespace; - private bool $showHidden; - private array $namespaces; - - /** - * @var array - */ - private array $commands; - - /** - * @var array - */ - private array $aliases = []; - - public function __construct(Application $application, ?string $namespace = null, bool $showHidden = false) - { - $this->application = $application; - $this->namespace = $namespace; - $this->showHidden = $showHidden; - } - - public function getNamespaces(): array - { - if (!isset($this->namespaces)) { - $this->inspectApplication(); - } - - return $this->namespaces; - } - - /** - * @return Command[] - */ - public function getCommands(): array - { - if (!isset($this->commands)) { - $this->inspectApplication(); - } - - return $this->commands; - } - - /** - * @throws CommandNotFoundException - */ - public function getCommand(string $name): Command - { - if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) { - throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name)); - } - - return $this->commands[$name] ?? $this->aliases[$name]; - } - - private function inspectApplication(): void - { - $this->commands = []; - $this->namespaces = []; - - $all = $this->application->all($this->namespace ? $this->application->findNamespace($this->namespace) : null); - foreach ($this->sortCommands($all) as $namespace => $commands) { - $names = []; - - /** @var Command $command */ - foreach ($commands as $name => $command) { - if (!$command->getName() || (!$this->showHidden && $command->isHidden())) { - continue; - } - - if ($command->getName() === $name) { - $this->commands[$name] = $command; - } else { - $this->aliases[$name] = $command; - } - - $names[] = $name; - } - - $this->namespaces[$namespace] = ['id' => $namespace, 'commands' => $names]; - } - } - - private function sortCommands(array $commands): array - { - $namespacedCommands = []; - $globalCommands = []; - $sortedCommands = []; - foreach ($commands as $name => $command) { - $key = $this->application->extractNamespace($name, 1); - if (\in_array($key, ['', self::GLOBAL_NAMESPACE], true)) { - $globalCommands[$name] = $command; - } else { - $namespacedCommands[$key][$name] = $command; - } - } - - if ($globalCommands) { - ksort($globalCommands); - $sortedCommands[self::GLOBAL_NAMESPACE] = $globalCommands; - } - - if ($namespacedCommands) { - ksort($namespacedCommands, \SORT_STRING); - foreach ($namespacedCommands as $key => $commandsSet) { - ksort($commandsSet); - $sortedCommands[$key] = $commandsSet; - } - } - - return $sortedCommands; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/Descriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/Descriptor.php deleted file mode 100644 index 7b2509c..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/Descriptor.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Jean-François Simon - * - * @internal - */ -abstract class Descriptor implements DescriptorInterface -{ - protected OutputInterface $output; - - public function describe(OutputInterface $output, object $object, array $options = []): void - { - $this->output = $output; - - match (true) { - $object instanceof InputArgument => $this->describeInputArgument($object, $options), - $object instanceof InputOption => $this->describeInputOption($object, $options), - $object instanceof InputDefinition => $this->describeInputDefinition($object, $options), - $object instanceof Command => $this->describeCommand($object, $options), - $object instanceof Application => $this->describeApplication($object, $options), - default => throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object))), - }; - } - - protected function write(string $content, bool $decorated = false): void - { - $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW); - } - - /** - * Describes an InputArgument instance. - */ - abstract protected function describeInputArgument(InputArgument $argument, array $options = []): void; - - /** - * Describes an InputOption instance. - */ - abstract protected function describeInputOption(InputOption $option, array $options = []): void; - - /** - * Describes an InputDefinition instance. - */ - abstract protected function describeInputDefinition(InputDefinition $definition, array $options = []): void; - - /** - * Describes a Command instance. - */ - abstract protected function describeCommand(Command $command, array $options = []): void; - - /** - * Describes an Application instance. - */ - abstract protected function describeApplication(Application $application, array $options = []): void; -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/DescriptorInterface.php b/projects/priceservice/vendor/symfony/console/Descriptor/DescriptorInterface.php deleted file mode 100644 index ab468a2..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Descriptor interface. - * - * @author Jean-François Simon - */ -interface DescriptorInterface -{ - /** - * @return void - */ - public function describe(OutputInterface $output, object $object, array $options = []); -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/JsonDescriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/JsonDescriptor.php deleted file mode 100644 index 9563037..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/JsonDescriptor.php +++ /dev/null @@ -1,166 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; - -/** - * JSON descriptor. - * - * @author Jean-François Simon - * - * @internal - */ -class JsonDescriptor extends Descriptor -{ - protected function describeInputArgument(InputArgument $argument, array $options = []): void - { - $this->writeData($this->getInputArgumentData($argument), $options); - } - - protected function describeInputOption(InputOption $option, array $options = []): void - { - $this->writeData($this->getInputOptionData($option), $options); - if ($option->isNegatable()) { - $this->writeData($this->getInputOptionData($option, true), $options); - } - } - - protected function describeInputDefinition(InputDefinition $definition, array $options = []): void - { - $this->writeData($this->getInputDefinitionData($definition), $options); - } - - protected function describeCommand(Command $command, array $options = []): void - { - $this->writeData($this->getCommandData($command, $options['short'] ?? false), $options); - } - - protected function describeApplication(Application $application, array $options = []): void - { - $describedNamespace = $options['namespace'] ?? null; - $description = new ApplicationDescription($application, $describedNamespace, true); - $commands = []; - - foreach ($description->getCommands() as $command) { - $commands[] = $this->getCommandData($command, $options['short'] ?? false); - } - - $data = []; - if ('UNKNOWN' !== $application->getName()) { - $data['application']['name'] = $application->getName(); - if ('UNKNOWN' !== $application->getVersion()) { - $data['application']['version'] = $application->getVersion(); - } - } - - $data['commands'] = $commands; - - if ($describedNamespace) { - $data['namespace'] = $describedNamespace; - } else { - $data['namespaces'] = array_values($description->getNamespaces()); - } - - $this->writeData($data, $options); - } - - /** - * Writes data as json. - */ - private function writeData(array $data, array $options): void - { - $flags = $options['json_encoding'] ?? 0; - - $this->write(json_encode($data, $flags)); - } - - private function getInputArgumentData(InputArgument $argument): array - { - return [ - 'name' => $argument->getName(), - 'is_required' => $argument->isRequired(), - 'is_array' => $argument->isArray(), - 'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $argument->getDescription()), - 'default' => \INF === $argument->getDefault() ? 'INF' : $argument->getDefault(), - ]; - } - - private function getInputOptionData(InputOption $option, bool $negated = false): array - { - return $negated ? [ - 'name' => '--no-'.$option->getName(), - 'shortcut' => '', - 'accept_value' => false, - 'is_value_required' => false, - 'is_multiple' => false, - 'description' => 'Negate the "--'.$option->getName().'" option', - 'default' => false, - ] : [ - 'name' => '--'.$option->getName(), - 'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '', - 'accept_value' => $option->acceptValue(), - 'is_value_required' => $option->isValueRequired(), - 'is_multiple' => $option->isArray(), - 'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $option->getDescription()), - 'default' => \INF === $option->getDefault() ? 'INF' : $option->getDefault(), - ]; - } - - private function getInputDefinitionData(InputDefinition $definition): array - { - $inputArguments = []; - foreach ($definition->getArguments() as $name => $argument) { - $inputArguments[$name] = $this->getInputArgumentData($argument); - } - - $inputOptions = []; - foreach ($definition->getOptions() as $name => $option) { - $inputOptions[$name] = $this->getInputOptionData($option); - if ($option->isNegatable()) { - $inputOptions['no-'.$name] = $this->getInputOptionData($option, true); - } - } - - return ['arguments' => $inputArguments, 'options' => $inputOptions]; - } - - private function getCommandData(Command $command, bool $short = false): array - { - $data = [ - 'name' => $command->getName(), - 'description' => $command->getDescription(), - ]; - - if ($short) { - $data += [ - 'usage' => $command->getAliases(), - ]; - } else { - $command->mergeApplicationDefinition(false); - - $data += [ - 'usage' => array_merge([$command->getSynopsis()], $command->getUsages(), $command->getAliases()), - 'help' => $command->getProcessedHelp(), - 'definition' => $this->getInputDefinitionData($command->getDefinition()), - ]; - } - - $data['hidden'] = $command->isHidden(); - - return $data; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/MarkdownDescriptor.php deleted file mode 100644 index b3f16ee..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ /dev/null @@ -1,173 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Markdown descriptor. - * - * @author Jean-François Simon - * - * @internal - */ -class MarkdownDescriptor extends Descriptor -{ - public function describe(OutputInterface $output, object $object, array $options = []): void - { - $decorated = $output->isDecorated(); - $output->setDecorated(false); - - parent::describe($output, $object, $options); - - $output->setDecorated($decorated); - } - - protected function write(string $content, bool $decorated = true): void - { - parent::write($content, $decorated); - } - - protected function describeInputArgument(InputArgument $argument, array $options = []): void - { - $this->write( - '#### `'.($argument->getName() ?: '')."`\n\n" - .($argument->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $argument->getDescription())."\n\n" : '') - .'* Is required: '.($argument->isRequired() ? 'yes' : 'no')."\n" - .'* Is array: '.($argument->isArray() ? 'yes' : 'no')."\n" - .'* Default: `'.str_replace("\n", '', var_export($argument->getDefault(), true)).'`' - ); - } - - protected function describeInputOption(InputOption $option, array $options = []): void - { - $name = '--'.$option->getName(); - if ($option->isNegatable()) { - $name .= '|--no-'.$option->getName(); - } - if ($option->getShortcut()) { - $name .= '|-'.str_replace('|', '|-', $option->getShortcut()).''; - } - - $this->write( - '#### `'.$name.'`'."\n\n" - .($option->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $option->getDescription())."\n\n" : '') - .'* Accept value: '.($option->acceptValue() ? 'yes' : 'no')."\n" - .'* Is value required: '.($option->isValueRequired() ? 'yes' : 'no')."\n" - .'* Is multiple: '.($option->isArray() ? 'yes' : 'no')."\n" - .'* Is negatable: '.($option->isNegatable() ? 'yes' : 'no')."\n" - .'* Default: `'.str_replace("\n", '', var_export($option->getDefault(), true)).'`' - ); - } - - protected function describeInputDefinition(InputDefinition $definition, array $options = []): void - { - if ($showArguments = \count($definition->getArguments()) > 0) { - $this->write('### Arguments'); - foreach ($definition->getArguments() as $argument) { - $this->write("\n\n"); - $this->describeInputArgument($argument); - } - } - - if (\count($definition->getOptions()) > 0) { - if ($showArguments) { - $this->write("\n\n"); - } - - $this->write('### Options'); - foreach ($definition->getOptions() as $option) { - $this->write("\n\n"); - $this->describeInputOption($option); - } - } - } - - protected function describeCommand(Command $command, array $options = []): void - { - if ($options['short'] ?? false) { - $this->write( - '`'.$command->getName()."`\n" - .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n" - .($command->getDescription() ? $command->getDescription()."\n\n" : '') - .'### Usage'."\n\n" - .array_reduce($command->getAliases(), fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n") - ); - - return; - } - - $command->mergeApplicationDefinition(false); - - $this->write( - '`'.$command->getName()."`\n" - .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n" - .($command->getDescription() ? $command->getDescription()."\n\n" : '') - .'### Usage'."\n\n" - .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), fn ($carry, $usage) => $carry.'* `'.$usage.'`'."\n") - ); - - if ($help = $command->getProcessedHelp()) { - $this->write("\n"); - $this->write($help); - } - - $definition = $command->getDefinition(); - if ($definition->getOptions() || $definition->getArguments()) { - $this->write("\n\n"); - $this->describeInputDefinition($definition); - } - } - - protected function describeApplication(Application $application, array $options = []): void - { - $describedNamespace = $options['namespace'] ?? null; - $description = new ApplicationDescription($application, $describedNamespace); - $title = $this->getApplicationTitle($application); - - $this->write($title."\n".str_repeat('=', Helper::width($title))); - - foreach ($description->getNamespaces() as $namespace) { - if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) { - $this->write("\n\n"); - $this->write('**'.$namespace['id'].':**'); - } - - $this->write("\n\n"); - $this->write(implode("\n", array_map(fn ($commandName) => sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName())), $namespace['commands']))); - } - - foreach ($description->getCommands() as $command) { - $this->write("\n\n"); - $this->describeCommand($command, $options); - } - } - - private function getApplicationTitle(Application $application): string - { - if ('UNKNOWN' !== $application->getName()) { - if ('UNKNOWN' !== $application->getVersion()) { - return sprintf('%s %s', $application->getName(), $application->getVersion()); - } - - return $application->getName(); - } - - return 'Console Tool'; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php deleted file mode 100644 index d4423fd..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ /dev/null @@ -1,272 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\String\UnicodeString; - -class ReStructuredTextDescriptor extends Descriptor -{ - //

- private string $partChar = '='; - //

- private string $chapterChar = '-'; - //

- private string $sectionChar = '~'; - //

- private string $subsectionChar = '.'; - //

- private string $subsubsectionChar = '^'; - //
- private string $paragraphsChar = '"'; - - private array $visibleNamespaces = []; - - public function describe(OutputInterface $output, object $object, array $options = []): void - { - $decorated = $output->isDecorated(); - $output->setDecorated(false); - - parent::describe($output, $object, $options); - - $output->setDecorated($decorated); - } - - /** - * Override parent method to set $decorated = true. - */ - protected function write(string $content, bool $decorated = true): void - { - parent::write($content, $decorated); - } - - protected function describeInputArgument(InputArgument $argument, array $options = []): void - { - $this->write( - $argument->getName() ?: ''."\n".str_repeat($this->paragraphsChar, Helper::width($argument->getName()))."\n\n" - .($argument->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $argument->getDescription())."\n\n" : '') - .'- **Is required**: '.($argument->isRequired() ? 'yes' : 'no')."\n" - .'- **Is array**: '.($argument->isArray() ? 'yes' : 'no')."\n" - .'- **Default**: ``'.str_replace("\n", '', var_export($argument->getDefault(), true)).'``' - ); - } - - protected function describeInputOption(InputOption $option, array $options = []): void - { - $name = '\-\-'.$option->getName(); - if ($option->isNegatable()) { - $name .= '|\-\-no-'.$option->getName(); - } - if ($option->getShortcut()) { - $name .= '|-'.str_replace('|', '|-', $option->getShortcut()); - } - - $optionDescription = $option->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n\n", $option->getDescription())."\n\n" : ''; - $optionDescription = (new UnicodeString($optionDescription))->ascii(); - $this->write( - $name."\n".str_repeat($this->paragraphsChar, Helper::width($name))."\n\n" - .$optionDescription - .'- **Accept value**: '.($option->acceptValue() ? 'yes' : 'no')."\n" - .'- **Is value required**: '.($option->isValueRequired() ? 'yes' : 'no')."\n" - .'- **Is multiple**: '.($option->isArray() ? 'yes' : 'no')."\n" - .'- **Is negatable**: '.($option->isNegatable() ? 'yes' : 'no')."\n" - .'- **Default**: ``'.str_replace("\n", '', var_export($option->getDefault(), true)).'``'."\n" - ); - } - - protected function describeInputDefinition(InputDefinition $definition, array $options = []): void - { - if ($showArguments = ((bool) $definition->getArguments())) { - $this->write("Arguments\n".str_repeat($this->subsubsectionChar, 9))."\n\n"; - foreach ($definition->getArguments() as $argument) { - $this->write("\n\n"); - $this->describeInputArgument($argument); - } - } - - if ($nonDefaultOptions = $this->getNonDefaultOptions($definition)) { - if ($showArguments) { - $this->write("\n\n"); - } - - $this->write("Options\n".str_repeat($this->subsubsectionChar, 7)."\n\n"); - foreach ($nonDefaultOptions as $option) { - $this->describeInputOption($option); - $this->write("\n"); - } - } - } - - protected function describeCommand(Command $command, array $options = []): void - { - if ($options['short'] ?? false) { - $this->write( - '``'.$command->getName()."``\n" - .str_repeat($this->subsectionChar, Helper::width($command->getName()))."\n\n" - .($command->getDescription() ? $command->getDescription()."\n\n" : '') - ."Usage\n".str_repeat($this->paragraphsChar, 5)."\n\n" - .array_reduce($command->getAliases(), static fn ($carry, $usage) => $carry.'- ``'.$usage.'``'."\n") - ); - - return; - } - - $command->mergeApplicationDefinition(false); - - foreach ($command->getAliases() as $alias) { - $this->write('.. _'.$alias.":\n\n"); - } - $this->write( - $command->getName()."\n" - .str_repeat($this->subsectionChar, Helper::width($command->getName()))."\n\n" - .($command->getDescription() ? $command->getDescription()."\n\n" : '') - ."Usage\n".str_repeat($this->subsubsectionChar, 5)."\n\n" - .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), static fn ($carry, $usage) => $carry.'- ``'.$usage.'``'."\n") - ); - - if ($help = $command->getProcessedHelp()) { - $this->write("\n"); - $this->write($help); - } - - $definition = $command->getDefinition(); - if ($definition->getOptions() || $definition->getArguments()) { - $this->write("\n\n"); - $this->describeInputDefinition($definition); - } - } - - protected function describeApplication(Application $application, array $options = []): void - { - $description = new ApplicationDescription($application, $options['namespace'] ?? null); - $title = $this->getApplicationTitle($application); - - $this->write($title."\n".str_repeat($this->partChar, Helper::width($title))); - $this->createTableOfContents($description, $application); - $this->describeCommands($application, $options); - } - - private function getApplicationTitle(Application $application): string - { - if ('UNKNOWN' === $application->getName()) { - return 'Console Tool'; - } - if ('UNKNOWN' !== $application->getVersion()) { - return sprintf('%s %s', $application->getName(), $application->getVersion()); - } - - return $application->getName(); - } - - private function describeCommands($application, array $options): void - { - $title = 'Commands'; - $this->write("\n\n$title\n".str_repeat($this->chapterChar, Helper::width($title))."\n\n"); - foreach ($this->visibleNamespaces as $namespace) { - if ('_global' === $namespace) { - $commands = $application->all(''); - $this->write('Global'."\n".str_repeat($this->sectionChar, Helper::width('Global'))."\n\n"); - } else { - $commands = $application->all($namespace); - $this->write($namespace."\n".str_repeat($this->sectionChar, Helper::width($namespace))."\n\n"); - } - - foreach ($this->removeAliasesAndHiddenCommands($commands) as $command) { - $this->describeCommand($command, $options); - $this->write("\n\n"); - } - } - } - - private function createTableOfContents(ApplicationDescription $description, Application $application): void - { - $this->setVisibleNamespaces($description); - $chapterTitle = 'Table of Contents'; - $this->write("\n\n$chapterTitle\n".str_repeat($this->chapterChar, Helper::width($chapterTitle))."\n\n"); - foreach ($this->visibleNamespaces as $namespace) { - if ('_global' === $namespace) { - $commands = $application->all(''); - } else { - $commands = $application->all($namespace); - $this->write("\n\n"); - $this->write($namespace."\n".str_repeat($this->sectionChar, Helper::width($namespace))."\n\n"); - } - $commands = $this->removeAliasesAndHiddenCommands($commands); - - $this->write("\n\n"); - $this->write(implode("\n", array_map(static fn ($commandName) => sprintf('- `%s`_', $commandName), array_keys($commands)))); - } - } - - private function getNonDefaultOptions(InputDefinition $definition): array - { - $globalOptions = [ - 'help', - 'quiet', - 'verbose', - 'version', - 'ansi', - 'no-interaction', - ]; - $nonDefaultOptions = []; - foreach ($definition->getOptions() as $option) { - // Skip global options. - if (!\in_array($option->getName(), $globalOptions)) { - $nonDefaultOptions[] = $option; - } - } - - return $nonDefaultOptions; - } - - private function setVisibleNamespaces(ApplicationDescription $description): void - { - $commands = $description->getCommands(); - foreach ($description->getNamespaces() as $namespace) { - try { - $namespaceCommands = $namespace['commands']; - foreach ($namespaceCommands as $key => $commandName) { - if (!\array_key_exists($commandName, $commands)) { - // If the array key does not exist, then this is an alias. - unset($namespaceCommands[$key]); - } elseif ($commands[$commandName]->isHidden()) { - unset($namespaceCommands[$key]); - } - } - if (!$namespaceCommands) { - // If the namespace contained only aliases or hidden commands, skip the namespace. - continue; - } - } catch (\Exception) { - } - $this->visibleNamespaces[] = $namespace['id']; - } - } - - private function removeAliasesAndHiddenCommands(array $commands): array - { - foreach ($commands as $key => $command) { - if ($command->isHidden() || \in_array($key, $command->getAliases(), true)) { - unset($commands[$key]); - } - } - unset($commands['completion']); - - return $commands; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/TextDescriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/TextDescriptor.php deleted file mode 100644 index d04d102..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/TextDescriptor.php +++ /dev/null @@ -1,317 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; - -/** - * Text descriptor. - * - * @author Jean-François Simon - * - * @internal - */ -class TextDescriptor extends Descriptor -{ - protected function describeInputArgument(InputArgument $argument, array $options = []): void - { - if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) { - $default = sprintf(' [default: %s]', $this->formatDefaultValue($argument->getDefault())); - } else { - $default = ''; - } - - $totalWidth = $options['total_width'] ?? Helper::width($argument->getName()); - $spacingWidth = $totalWidth - \strlen($argument->getName()); - - $this->writeText(sprintf(' %s %s%s%s', - $argument->getName(), - str_repeat(' ', $spacingWidth), - // + 4 = 2 spaces before , 2 spaces after - preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $argument->getDescription()), - $default - ), $options); - } - - protected function describeInputOption(InputOption $option, array $options = []): void - { - if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) { - $default = sprintf(' [default: %s]', $this->formatDefaultValue($option->getDefault())); - } else { - $default = ''; - } - - $value = ''; - if ($option->acceptValue()) { - $value = '='.strtoupper($option->getName()); - - if ($option->isValueOptional()) { - $value = '['.$value.']'; - } - } - - $totalWidth = $options['total_width'] ?? $this->calculateTotalWidthForOptions([$option]); - $synopsis = sprintf('%s%s', - $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : ' ', - sprintf($option->isNegatable() ? '--%1$s|--no-%1$s' : '--%1$s%2$s', $option->getName(), $value) - ); - - $spacingWidth = $totalWidth - Helper::width($synopsis); - - $this->writeText(sprintf(' %s %s%s%s%s', - $synopsis, - str_repeat(' ', $spacingWidth), - // + 4 = 2 spaces before , 2 spaces after - preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $option->getDescription()), - $default, - $option->isArray() ? ' (multiple values allowed)' : '' - ), $options); - } - - protected function describeInputDefinition(InputDefinition $definition, array $options = []): void - { - $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions()); - foreach ($definition->getArguments() as $argument) { - $totalWidth = max($totalWidth, Helper::width($argument->getName())); - } - - if ($definition->getArguments()) { - $this->writeText('Arguments:', $options); - $this->writeText("\n"); - foreach ($definition->getArguments() as $argument) { - $this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth])); - $this->writeText("\n"); - } - } - - if ($definition->getArguments() && $definition->getOptions()) { - $this->writeText("\n"); - } - - if ($definition->getOptions()) { - $laterOptions = []; - - $this->writeText('Options:', $options); - foreach ($definition->getOptions() as $option) { - if (\strlen($option->getShortcut() ?? '') > 1) { - $laterOptions[] = $option; - continue; - } - $this->writeText("\n"); - $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); - } - foreach ($laterOptions as $option) { - $this->writeText("\n"); - $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); - } - } - } - - protected function describeCommand(Command $command, array $options = []): void - { - $command->mergeApplicationDefinition(false); - - if ($description = $command->getDescription()) { - $this->writeText('Description:', $options); - $this->writeText("\n"); - $this->writeText(' '.$description); - $this->writeText("\n\n"); - } - - $this->writeText('Usage:', $options); - foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) { - $this->writeText("\n"); - $this->writeText(' '.OutputFormatter::escape($usage), $options); - } - $this->writeText("\n"); - - $definition = $command->getDefinition(); - if ($definition->getOptions() || $definition->getArguments()) { - $this->writeText("\n"); - $this->describeInputDefinition($definition, $options); - $this->writeText("\n"); - } - - $help = $command->getProcessedHelp(); - if ($help && $help !== $description) { - $this->writeText("\n"); - $this->writeText('Help:', $options); - $this->writeText("\n"); - $this->writeText(' '.str_replace("\n", "\n ", $help), $options); - $this->writeText("\n"); - } - } - - protected function describeApplication(Application $application, array $options = []): void - { - $describedNamespace = $options['namespace'] ?? null; - $description = new ApplicationDescription($application, $describedNamespace); - - if (isset($options['raw_text']) && $options['raw_text']) { - $width = $this->getColumnWidth($description->getCommands()); - - foreach ($description->getCommands() as $command) { - $this->writeText(sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options); - $this->writeText("\n"); - } - } else { - if ('' != $help = $application->getHelp()) { - $this->writeText("$help\n\n", $options); - } - - $this->writeText("Usage:\n", $options); - $this->writeText(" command [options] [arguments]\n\n", $options); - - $this->describeInputDefinition(new InputDefinition($application->getDefinition()->getOptions()), $options); - - $this->writeText("\n"); - $this->writeText("\n"); - - $commands = $description->getCommands(); - $namespaces = $description->getNamespaces(); - if ($describedNamespace && $namespaces) { - // make sure all alias commands are included when describing a specific namespace - $describedNamespaceInfo = reset($namespaces); - foreach ($describedNamespaceInfo['commands'] as $name) { - $commands[$name] = $description->getCommand($name); - } - } - - // calculate max. width based on available commands per namespace - $width = $this->getColumnWidth(array_merge(...array_values(array_map(fn ($namespace) => array_intersect($namespace['commands'], array_keys($commands)), array_values($namespaces))))); - - if ($describedNamespace) { - $this->writeText(sprintf('Available commands for the "%s" namespace:', $describedNamespace), $options); - } else { - $this->writeText('Available commands:', $options); - } - - foreach ($namespaces as $namespace) { - $namespace['commands'] = array_filter($namespace['commands'], fn ($name) => isset($commands[$name])); - - if (!$namespace['commands']) { - continue; - } - - if (!$describedNamespace && ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) { - $this->writeText("\n"); - $this->writeText(' '.$namespace['id'].'', $options); - } - - foreach ($namespace['commands'] as $name) { - $this->writeText("\n"); - $spacingWidth = $width - Helper::width($name); - $command = $commands[$name]; - $commandAliases = $name === $command->getName() ? $this->getCommandAliasesText($command) : ''; - $this->writeText(sprintf(' %s%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options); - } - } - - $this->writeText("\n"); - } - } - - private function writeText(string $content, array $options = []): void - { - $this->write( - isset($options['raw_text']) && $options['raw_text'] ? strip_tags($content) : $content, - isset($options['raw_output']) ? !$options['raw_output'] : true - ); - } - - /** - * Formats command aliases to show them in the command description. - */ - private function getCommandAliasesText(Command $command): string - { - $text = ''; - $aliases = $command->getAliases(); - - if ($aliases) { - $text = '['.implode('|', $aliases).'] '; - } - - return $text; - } - - /** - * Formats input option/argument default value. - */ - private function formatDefaultValue(mixed $default): string - { - if (\INF === $default) { - return 'INF'; - } - - if (\is_string($default)) { - $default = OutputFormatter::escape($default); - } elseif (\is_array($default)) { - foreach ($default as $key => $value) { - if (\is_string($value)) { - $default[$key] = OutputFormatter::escape($value); - } - } - } - - return str_replace('\\\\', '\\', json_encode($default, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)); - } - - /** - * @param array $commands - */ - private function getColumnWidth(array $commands): int - { - $widths = []; - - foreach ($commands as $command) { - if ($command instanceof Command) { - $widths[] = Helper::width($command->getName()); - foreach ($command->getAliases() as $alias) { - $widths[] = Helper::width($alias); - } - } else { - $widths[] = Helper::width($command); - } - } - - return $widths ? max($widths) + 2 : 0; - } - - /** - * @param InputOption[] $options - */ - private function calculateTotalWidthForOptions(array $options): int - { - $totalWidth = 0; - foreach ($options as $option) { - // "-" + shortcut + ", --" + name - $nameLength = 1 + max(Helper::width($option->getShortcut()), 1) + 4 + Helper::width($option->getName()); - if ($option->isNegatable()) { - $nameLength += 6 + Helper::width($option->getName()); // |--no- + name - } elseif ($option->acceptValue()) { - $valueLength = 1 + Helper::width($option->getName()); // = + value - $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ] - - $nameLength += $valueLength; - } - $totalWidth = max($totalWidth, $nameLength); - } - - return $totalWidth; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Descriptor/XmlDescriptor.php b/projects/priceservice/vendor/symfony/console/Descriptor/XmlDescriptor.php deleted file mode 100644 index 866c718..0000000 --- a/projects/priceservice/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ /dev/null @@ -1,232 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Descriptor; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputDefinition; -use Symfony\Component\Console\Input\InputOption; - -/** - * XML descriptor. - * - * @author Jean-François Simon - * - * @internal - */ -class XmlDescriptor extends Descriptor -{ - public function getInputDefinitionDocument(InputDefinition $definition): \DOMDocument - { - $dom = new \DOMDocument('1.0', 'UTF-8'); - $dom->appendChild($definitionXML = $dom->createElement('definition')); - - $definitionXML->appendChild($argumentsXML = $dom->createElement('arguments')); - foreach ($definition->getArguments() as $argument) { - $this->appendDocument($argumentsXML, $this->getInputArgumentDocument($argument)); - } - - $definitionXML->appendChild($optionsXML = $dom->createElement('options')); - foreach ($definition->getOptions() as $option) { - $this->appendDocument($optionsXML, $this->getInputOptionDocument($option)); - } - - return $dom; - } - - public function getCommandDocument(Command $command, bool $short = false): \DOMDocument - { - $dom = new \DOMDocument('1.0', 'UTF-8'); - $dom->appendChild($commandXML = $dom->createElement('command')); - - $commandXML->setAttribute('id', $command->getName()); - $commandXML->setAttribute('name', $command->getName()); - $commandXML->setAttribute('hidden', $command->isHidden() ? 1 : 0); - - $commandXML->appendChild($usagesXML = $dom->createElement('usages')); - - $commandXML->appendChild($descriptionXML = $dom->createElement('description')); - $descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription()))); - - if ($short) { - foreach ($command->getAliases() as $usage) { - $usagesXML->appendChild($dom->createElement('usage', $usage)); - } - } else { - $command->mergeApplicationDefinition(false); - - foreach (array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()) as $usage) { - $usagesXML->appendChild($dom->createElement('usage', $usage)); - } - - $commandXML->appendChild($helpXML = $dom->createElement('help')); - $helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp()))); - - $definitionXML = $this->getInputDefinitionDocument($command->getDefinition()); - $this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')->item(0)); - } - - return $dom; - } - - public function getApplicationDocument(Application $application, ?string $namespace = null, bool $short = false): \DOMDocument - { - $dom = new \DOMDocument('1.0', 'UTF-8'); - $dom->appendChild($rootXml = $dom->createElement('symfony')); - - if ('UNKNOWN' !== $application->getName()) { - $rootXml->setAttribute('name', $application->getName()); - if ('UNKNOWN' !== $application->getVersion()) { - $rootXml->setAttribute('version', $application->getVersion()); - } - } - - $rootXml->appendChild($commandsXML = $dom->createElement('commands')); - - $description = new ApplicationDescription($application, $namespace, true); - - if ($namespace) { - $commandsXML->setAttribute('namespace', $namespace); - } - - foreach ($description->getCommands() as $command) { - $this->appendDocument($commandsXML, $this->getCommandDocument($command, $short)); - } - - if (!$namespace) { - $rootXml->appendChild($namespacesXML = $dom->createElement('namespaces')); - - foreach ($description->getNamespaces() as $namespaceDescription) { - $namespacesXML->appendChild($namespaceArrayXML = $dom->createElement('namespace')); - $namespaceArrayXML->setAttribute('id', $namespaceDescription['id']); - - foreach ($namespaceDescription['commands'] as $name) { - $namespaceArrayXML->appendChild($commandXML = $dom->createElement('command')); - $commandXML->appendChild($dom->createTextNode($name)); - } - } - } - - return $dom; - } - - protected function describeInputArgument(InputArgument $argument, array $options = []): void - { - $this->writeDocument($this->getInputArgumentDocument($argument)); - } - - protected function describeInputOption(InputOption $option, array $options = []): void - { - $this->writeDocument($this->getInputOptionDocument($option)); - } - - protected function describeInputDefinition(InputDefinition $definition, array $options = []): void - { - $this->writeDocument($this->getInputDefinitionDocument($definition)); - } - - protected function describeCommand(Command $command, array $options = []): void - { - $this->writeDocument($this->getCommandDocument($command, $options['short'] ?? false)); - } - - protected function describeApplication(Application $application, array $options = []): void - { - $this->writeDocument($this->getApplicationDocument($application, $options['namespace'] ?? null, $options['short'] ?? false)); - } - - /** - * Appends document children to parent node. - */ - private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent): void - { - foreach ($importedParent->childNodes as $childNode) { - $parentNode->appendChild($parentNode->ownerDocument->importNode($childNode, true)); - } - } - - /** - * Writes DOM document. - */ - private function writeDocument(\DOMDocument $dom): void - { - $dom->formatOutput = true; - $this->write($dom->saveXML()); - } - - private function getInputArgumentDocument(InputArgument $argument): \DOMDocument - { - $dom = new \DOMDocument('1.0', 'UTF-8'); - - $dom->appendChild($objectXML = $dom->createElement('argument')); - $objectXML->setAttribute('name', $argument->getName()); - $objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0); - $objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0); - $objectXML->appendChild($descriptionXML = $dom->createElement('description')); - $descriptionXML->appendChild($dom->createTextNode($argument->getDescription())); - - $objectXML->appendChild($defaultsXML = $dom->createElement('defaults')); - $defaults = \is_array($argument->getDefault()) ? $argument->getDefault() : (\is_bool($argument->getDefault()) ? [var_export($argument->getDefault(), true)] : ($argument->getDefault() ? [$argument->getDefault()] : [])); - foreach ($defaults as $default) { - $defaultsXML->appendChild($defaultXML = $dom->createElement('default')); - $defaultXML->appendChild($dom->createTextNode($default)); - } - - return $dom; - } - - private function getInputOptionDocument(InputOption $option): \DOMDocument - { - $dom = new \DOMDocument('1.0', 'UTF-8'); - - $dom->appendChild($objectXML = $dom->createElement('option')); - $objectXML->setAttribute('name', '--'.$option->getName()); - $pos = strpos($option->getShortcut() ?? '', '|'); - if (false !== $pos) { - $objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos)); - $objectXML->setAttribute('shortcuts', '-'.str_replace('|', '|-', $option->getShortcut())); - } else { - $objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : ''); - } - $objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0); - $objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0); - $objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0); - $objectXML->appendChild($descriptionXML = $dom->createElement('description')); - $descriptionXML->appendChild($dom->createTextNode($option->getDescription())); - - if ($option->acceptValue()) { - $defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [var_export($option->getDefault(), true)] : ($option->getDefault() ? [$option->getDefault()] : [])); - $objectXML->appendChild($defaultsXML = $dom->createElement('defaults')); - - if (!empty($defaults)) { - foreach ($defaults as $default) { - $defaultsXML->appendChild($defaultXML = $dom->createElement('default')); - $defaultXML->appendChild($dom->createTextNode($default)); - } - } - } - - if ($option->isNegatable()) { - $dom->appendChild($objectXML = $dom->createElement('option')); - $objectXML->setAttribute('name', '--no-'.$option->getName()); - $objectXML->setAttribute('shortcut', ''); - $objectXML->setAttribute('accept_value', 0); - $objectXML->setAttribute('is_value_required', 0); - $objectXML->setAttribute('is_multiple', 0); - $objectXML->appendChild($descriptionXML = $dom->createElement('description')); - $descriptionXML->appendChild($dom->createTextNode('Negate the "--'.$option->getName().'" option')); - } - - return $dom; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Event/ConsoleCommandEvent.php b/projects/priceservice/vendor/symfony/console/Event/ConsoleCommandEvent.php deleted file mode 100644 index 0757a23..0000000 --- a/projects/priceservice/vendor/symfony/console/Event/ConsoleCommandEvent.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Event; - -/** - * Allows to do things before the command is executed, like skipping the command or executing code before the command is - * going to be executed. - * - * Changing the input arguments will have no effect. - * - * @author Fabien Potencier - */ -final class ConsoleCommandEvent extends ConsoleEvent -{ - /** - * The return code for skipped commands, this will also be passed into the terminate event. - */ - public const RETURN_CODE_DISABLED = 113; - - /** - * Indicates if the command should be run or skipped. - */ - private bool $commandShouldRun = true; - - /** - * Disables the command, so it won't be run. - */ - public function disableCommand(): bool - { - return $this->commandShouldRun = false; - } - - public function enableCommand(): bool - { - return $this->commandShouldRun = true; - } - - /** - * Returns true if the command is runnable, false otherwise. - */ - public function commandShouldRun(): bool - { - return $this->commandShouldRun; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Event/ConsoleErrorEvent.php b/projects/priceservice/vendor/symfony/console/Event/ConsoleErrorEvent.php deleted file mode 100644 index 7be2ff8..0000000 --- a/projects/priceservice/vendor/symfony/console/Event/ConsoleErrorEvent.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Event; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Allows to handle throwables thrown while running a command. - * - * @author Wouter de Jong - */ -final class ConsoleErrorEvent extends ConsoleEvent -{ - private \Throwable $error; - private int $exitCode; - - public function __construct(InputInterface $input, OutputInterface $output, \Throwable $error, ?Command $command = null) - { - parent::__construct($command, $input, $output); - - $this->error = $error; - } - - public function getError(): \Throwable - { - return $this->error; - } - - public function setError(\Throwable $error): void - { - $this->error = $error; - } - - public function setExitCode(int $exitCode): void - { - $this->exitCode = $exitCode; - - $r = new \ReflectionProperty($this->error, 'code'); - $r->setValue($this->error, $this->exitCode); - } - - public function getExitCode(): int - { - return $this->exitCode ?? (\is_int($this->error->getCode()) && 0 !== $this->error->getCode() ? $this->error->getCode() : 1); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Event/ConsoleEvent.php b/projects/priceservice/vendor/symfony/console/Event/ConsoleEvent.php deleted file mode 100644 index 6ba1615..0000000 --- a/projects/priceservice/vendor/symfony/console/Event/ConsoleEvent.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Event; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Contracts\EventDispatcher\Event; - -/** - * Allows to inspect input and output of a command. - * - * @author Francesco Levorato - */ -class ConsoleEvent extends Event -{ - protected $command; - - private InputInterface $input; - private OutputInterface $output; - - public function __construct(?Command $command, InputInterface $input, OutputInterface $output) - { - $this->command = $command; - $this->input = $input; - $this->output = $output; - } - - /** - * Gets the command that is executed. - */ - public function getCommand(): ?Command - { - return $this->command; - } - - /** - * Gets the input instance. - */ - public function getInput(): InputInterface - { - return $this->input; - } - - /** - * Gets the output instance. - */ - public function getOutput(): OutputInterface - { - return $this->output; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Event/ConsoleSignalEvent.php b/projects/priceservice/vendor/symfony/console/Event/ConsoleSignalEvent.php deleted file mode 100644 index 95af1f9..0000000 --- a/projects/priceservice/vendor/symfony/console/Event/ConsoleSignalEvent.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Event; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author marie - */ -final class ConsoleSignalEvent extends ConsoleEvent -{ - private int $handlingSignal; - private int|false $exitCode; - - public function __construct(Command $command, InputInterface $input, OutputInterface $output, int $handlingSignal, int|false $exitCode = 0) - { - parent::__construct($command, $input, $output); - $this->handlingSignal = $handlingSignal; - $this->exitCode = $exitCode; - } - - public function getHandlingSignal(): int - { - return $this->handlingSignal; - } - - public function setExitCode(int $exitCode): void - { - if ($exitCode < 0 || $exitCode > 255) { - throw new \InvalidArgumentException('Exit code must be between 0 and 255.'); - } - - $this->exitCode = $exitCode; - } - - public function abortExit(): void - { - $this->exitCode = false; - } - - public function getExitCode(): int|false - { - return $this->exitCode; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Event/ConsoleTerminateEvent.php b/projects/priceservice/vendor/symfony/console/Event/ConsoleTerminateEvent.php deleted file mode 100644 index 38f7253..0000000 --- a/projects/priceservice/vendor/symfony/console/Event/ConsoleTerminateEvent.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Event; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Allows to manipulate the exit code of a command after its execution. - * - * @author Francesco Levorato - * @author Jules Pietri - */ -final class ConsoleTerminateEvent extends ConsoleEvent -{ - public function __construct( - Command $command, - InputInterface $input, - OutputInterface $output, - private int $exitCode, - private readonly ?int $interruptingSignal = null, - ) { - parent::__construct($command, $input, $output); - } - - public function setExitCode(int $exitCode): void - { - $this->exitCode = $exitCode; - } - - public function getExitCode(): int - { - return $this->exitCode; - } - - public function getInterruptingSignal(): ?int - { - return $this->interruptingSignal; - } -} diff --git a/projects/priceservice/vendor/symfony/console/EventListener/ErrorListener.php b/projects/priceservice/vendor/symfony/console/EventListener/ErrorListener.php deleted file mode 100644 index c9ec244..0000000 --- a/projects/priceservice/vendor/symfony/console/EventListener/ErrorListener.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\EventListener; - -use Psr\Log\LoggerInterface; -use Symfony\Component\Console\ConsoleEvents; -use Symfony\Component\Console\Event\ConsoleErrorEvent; -use Symfony\Component\Console\Event\ConsoleEvent; -use Symfony\Component\Console\Event\ConsoleTerminateEvent; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; - -/** - * @author James Halsall - * @author Robin Chalas - */ -class ErrorListener implements EventSubscriberInterface -{ - private ?LoggerInterface $logger; - - public function __construct(?LoggerInterface $logger = null) - { - $this->logger = $logger; - } - - /** - * @return void - */ - public function onConsoleError(ConsoleErrorEvent $event) - { - if (null === $this->logger) { - return; - } - - $error = $event->getError(); - - if (!$inputString = $this->getInputString($event)) { - $this->logger->critical('An error occurred while using the console. Message: "{message}"', ['exception' => $error, 'message' => $error->getMessage()]); - - return; - } - - $this->logger->critical('Error thrown while running command "{command}". Message: "{message}"', ['exception' => $error, 'command' => $inputString, 'message' => $error->getMessage()]); - } - - /** - * @return void - */ - public function onConsoleTerminate(ConsoleTerminateEvent $event) - { - if (null === $this->logger) { - return; - } - - $exitCode = $event->getExitCode(); - - if (0 === $exitCode) { - return; - } - - if (!$inputString = $this->getInputString($event)) { - $this->logger->debug('The console exited with code "{code}"', ['code' => $exitCode]); - - return; - } - - $this->logger->debug('Command "{command}" exited with code "{code}"', ['command' => $inputString, 'code' => $exitCode]); - } - - public static function getSubscribedEvents(): array - { - return [ - ConsoleEvents::ERROR => ['onConsoleError', -128], - ConsoleEvents::TERMINATE => ['onConsoleTerminate', -128], - ]; - } - - private static function getInputString(ConsoleEvent $event): ?string - { - $commandName = $event->getCommand()?->getName(); - $input = $event->getInput(); - - if ($input instanceof \Stringable) { - if ($commandName) { - return str_replace(["'$commandName'", "\"$commandName\""], $commandName, (string) $input); - } - - return (string) $input; - } - - return $commandName; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/CommandNotFoundException.php b/projects/priceservice/vendor/symfony/console/Exception/CommandNotFoundException.php deleted file mode 100644 index 541b32b..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/CommandNotFoundException.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * Represents an incorrect command name typed in the console. - * - * @author Jérôme Tamarelle - */ -class CommandNotFoundException extends \InvalidArgumentException implements ExceptionInterface -{ - private array $alternatives; - - /** - * @param string $message Exception message to throw - * @param string[] $alternatives List of similar defined names - * @param int $code Exception code - * @param \Throwable|null $previous Previous exception used for the exception chaining - */ - public function __construct(string $message, array $alternatives = [], int $code = 0, ?\Throwable $previous = null) - { - parent::__construct($message, $code, $previous); - - $this->alternatives = $alternatives; - } - - /** - * @return string[] - */ - public function getAlternatives(): array - { - return $this->alternatives; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/ExceptionInterface.php b/projects/priceservice/vendor/symfony/console/Exception/ExceptionInterface.php deleted file mode 100644 index 1624e13..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * ExceptionInterface. - * - * @author Jérôme Tamarelle - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/InvalidArgumentException.php b/projects/priceservice/vendor/symfony/console/Exception/InvalidArgumentException.php deleted file mode 100644 index 07cc0b6..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * @author Jérôme Tamarelle - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/InvalidOptionException.php b/projects/priceservice/vendor/symfony/console/Exception/InvalidOptionException.php deleted file mode 100644 index 5cf6279..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/InvalidOptionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * Represents an incorrect option name or value typed in the console. - * - * @author Jérôme Tamarelle - */ -class InvalidOptionException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/LogicException.php b/projects/priceservice/vendor/symfony/console/Exception/LogicException.php deleted file mode 100644 index fc37b8d..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/LogicException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * @author Jérôme Tamarelle - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/MissingInputException.php b/projects/priceservice/vendor/symfony/console/Exception/MissingInputException.php deleted file mode 100644 index 04f02ad..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/MissingInputException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * Represents failure to read input from stdin. - * - * @author Gabriel Ostrolucký - */ -class MissingInputException extends RuntimeException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/NamespaceNotFoundException.php b/projects/priceservice/vendor/symfony/console/Exception/NamespaceNotFoundException.php deleted file mode 100644 index dd16e45..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/NamespaceNotFoundException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * Represents an incorrect namespace typed in the console. - * - * @author Pierre du Plessis - */ -class NamespaceNotFoundException extends CommandNotFoundException -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/RunCommandFailedException.php b/projects/priceservice/vendor/symfony/console/Exception/RunCommandFailedException.php deleted file mode 100644 index 5d87ec9..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/RunCommandFailedException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -use Symfony\Component\Console\Messenger\RunCommandContext; - -/** - * @author Kevin Bond - */ -final class RunCommandFailedException extends RuntimeException -{ - public function __construct(\Throwable|string $exception, public readonly RunCommandContext $context) - { - parent::__construct( - $exception instanceof \Throwable ? $exception->getMessage() : $exception, - $exception instanceof \Throwable ? $exception->getCode() : 0, - $exception instanceof \Throwable ? $exception : null, - ); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Exception/RuntimeException.php b/projects/priceservice/vendor/symfony/console/Exception/RuntimeException.php deleted file mode 100644 index 51d7d80..0000000 --- a/projects/priceservice/vendor/symfony/console/Exception/RuntimeException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Exception; - -/** - * @author Jérôme Tamarelle - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatter.php b/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatter.php deleted file mode 100644 index 5c11c76..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatter.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -/** - * @author Tien Xuan Vo - */ -final class NullOutputFormatter implements OutputFormatterInterface -{ - private NullOutputFormatterStyle $style; - - public function format(?string $message): ?string - { - return null; - } - - public function getStyle(string $name): OutputFormatterStyleInterface - { - // to comply with the interface we must return a OutputFormatterStyleInterface - return $this->style ??= new NullOutputFormatterStyle(); - } - - public function hasStyle(string $name): bool - { - return false; - } - - public function isDecorated(): bool - { - return false; - } - - public function setDecorated(bool $decorated): void - { - // do nothing - } - - public function setStyle(string $name, OutputFormatterStyleInterface $style): void - { - // do nothing - } -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php deleted file mode 100644 index ae23dec..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -/** - * @author Tien Xuan Vo - */ -final class NullOutputFormatterStyle implements OutputFormatterStyleInterface -{ - public function apply(string $text): string - { - return $text; - } - - public function setBackground(?string $color = null): void - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - // do nothing - } - - public function setForeground(?string $color = null): void - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - // do nothing - } - - public function setOption(string $option): void - { - // do nothing - } - - public function setOptions(array $options): void - { - // do nothing - } - - public function unsetOption(string $option): void - { - // do nothing - } -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatter.php b/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatter.php deleted file mode 100644 index 3e4897c..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatter.php +++ /dev/null @@ -1,277 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -use function Symfony\Component\String\b; - -/** - * Formatter class for console output. - * - * @author Konstantin Kudryashov - * @author Roland Franssen - */ -class OutputFormatter implements WrappableOutputFormatterInterface -{ - private bool $decorated; - private array $styles = []; - private OutputFormatterStyleStack $styleStack; - - public function __clone() - { - $this->styleStack = clone $this->styleStack; - foreach ($this->styles as $key => $value) { - $this->styles[$key] = clone $value; - } - } - - /** - * Escapes "<" and ">" special chars in given text. - */ - public static function escape(string $text): string - { - $text = preg_replace('/([^\\\\]|^)([<>])/', '$1\\\\$2', $text); - - return self::escapeTrailingBackslash($text); - } - - /** - * Escapes trailing "\" in given text. - * - * @internal - */ - public static function escapeTrailingBackslash(string $text): string - { - if (str_ends_with($text, '\\')) { - $len = \strlen($text); - $text = rtrim($text, '\\'); - $text = str_replace("\0", '', $text); - $text .= str_repeat("\0", $len - \strlen($text)); - } - - return $text; - } - - /** - * Initializes console output formatter. - * - * @param OutputFormatterStyleInterface[] $styles Array of "name => FormatterStyle" instances - */ - public function __construct(bool $decorated = false, array $styles = []) - { - $this->decorated = $decorated; - - $this->setStyle('error', new OutputFormatterStyle('white', 'red')); - $this->setStyle('info', new OutputFormatterStyle('green')); - $this->setStyle('comment', new OutputFormatterStyle('yellow')); - $this->setStyle('question', new OutputFormatterStyle('black', 'cyan')); - - foreach ($styles as $name => $style) { - $this->setStyle($name, $style); - } - - $this->styleStack = new OutputFormatterStyleStack(); - } - - /** - * @return void - */ - public function setDecorated(bool $decorated) - { - $this->decorated = $decorated; - } - - public function isDecorated(): bool - { - return $this->decorated; - } - - /** - * @return void - */ - public function setStyle(string $name, OutputFormatterStyleInterface $style) - { - $this->styles[strtolower($name)] = $style; - } - - public function hasStyle(string $name): bool - { - return isset($this->styles[strtolower($name)]); - } - - public function getStyle(string $name): OutputFormatterStyleInterface - { - if (!$this->hasStyle($name)) { - throw new InvalidArgumentException(sprintf('Undefined style: "%s".', $name)); - } - - return $this->styles[strtolower($name)]; - } - - public function format(?string $message): ?string - { - return $this->formatAndWrap($message, 0); - } - - /** - * @return string - */ - public function formatAndWrap(?string $message, int $width) - { - if (null === $message) { - return ''; - } - - $offset = 0; - $output = ''; - $openTagRegex = '[a-z](?:[^\\\\<>]*+ | \\\\.)*'; - $closeTagRegex = '[a-z][^<>]*+'; - $currentLineLength = 0; - preg_match_all("#<(($openTagRegex) | /($closeTagRegex)?)>#ix", $message, $matches, \PREG_OFFSET_CAPTURE); - foreach ($matches[0] as $i => $match) { - $pos = $match[1]; - $text = $match[0]; - - if (0 != $pos && '\\' == $message[$pos - 1]) { - continue; - } - - // add the text up to the next tag - $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset), $output, $width, $currentLineLength); - $offset = $pos + \strlen($text); - - // opening tag? - if ($open = '/' !== $text[1]) { - $tag = $matches[1][$i][0]; - } else { - $tag = $matches[3][$i][0] ?? ''; - } - - if (!$open && !$tag) { - // - $this->styleStack->pop(); - } elseif (null === $style = $this->createStyleFromString($tag)) { - $output .= $this->applyCurrentStyle($text, $output, $width, $currentLineLength); - } elseif ($open) { - $this->styleStack->push($style); - } else { - $this->styleStack->pop($style); - } - } - - $output .= $this->applyCurrentStyle(substr($message, $offset), $output, $width, $currentLineLength); - - return strtr($output, ["\0" => '\\', '\\<' => '<', '\\>' => '>']); - } - - public function getStyleStack(): OutputFormatterStyleStack - { - return $this->styleStack; - } - - /** - * Tries to create new style instance from string. - */ - private function createStyleFromString(string $string): ?OutputFormatterStyleInterface - { - if (isset($this->styles[$string])) { - return $this->styles[$string]; - } - - if (!preg_match_all('/([^=]+)=([^;]+)(;|$)/', $string, $matches, \PREG_SET_ORDER)) { - return null; - } - - $style = new OutputFormatterStyle(); - foreach ($matches as $match) { - array_shift($match); - $match[0] = strtolower($match[0]); - - if ('fg' == $match[0]) { - $style->setForeground(strtolower($match[1])); - } elseif ('bg' == $match[0]) { - $style->setBackground(strtolower($match[1])); - } elseif ('href' === $match[0]) { - $url = preg_replace('{\\\\([<>])}', '$1', $match[1]); - $style->setHref($url); - } elseif ('options' === $match[0]) { - preg_match_all('([^,;]+)', strtolower($match[1]), $options); - $options = array_shift($options); - foreach ($options as $option) { - $style->setOption($option); - } - } else { - return null; - } - } - - return $style; - } - - /** - * Applies current style from stack to text, if must be applied. - */ - private function applyCurrentStyle(string $text, string $current, int $width, int &$currentLineLength): string - { - if ('' === $text) { - return ''; - } - - if (!$width) { - return $this->isDecorated() ? $this->styleStack->getCurrent()->apply($text) : $text; - } - - if (!$currentLineLength && '' !== $current) { - $text = ltrim($text); - } - - if ($currentLineLength) { - $prefix = substr($text, 0, $i = $width - $currentLineLength)."\n"; - $text = substr($text, $i); - } else { - $prefix = ''; - } - - preg_match('~(\\n)$~', $text, $matches); - $text = $prefix.$this->addLineBreaks($text, $width); - $text = rtrim($text, "\n").($matches[1] ?? ''); - - if (!$currentLineLength && '' !== $current && !str_ends_with($current, "\n")) { - $text = "\n".$text; - } - - $lines = explode("\n", $text); - - foreach ($lines as $line) { - $currentLineLength += \strlen($line); - if ($width <= $currentLineLength) { - $currentLineLength = 0; - } - } - - if ($this->isDecorated()) { - foreach ($lines as $i => $line) { - $lines[$i] = $this->styleStack->getCurrent()->apply($line); - } - } - - return implode("\n", $lines); - } - - private function addLineBreaks(string $text, int $width): string - { - $encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8'; - - return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterInterface.php deleted file mode 100644 index 433cd41..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -/** - * Formatter interface for console output. - * - * @author Konstantin Kudryashov - */ -interface OutputFormatterInterface -{ - /** - * Sets the decorated flag. - * - * @return void - */ - public function setDecorated(bool $decorated); - - /** - * Whether the output will decorate messages. - */ - public function isDecorated(): bool; - - /** - * Sets a new style. - * - * @return void - */ - public function setStyle(string $name, OutputFormatterStyleInterface $style); - - /** - * Checks if output formatter has style with specified name. - */ - public function hasStyle(string $name): bool; - - /** - * Gets style options from style with specified name. - * - * @throws \InvalidArgumentException When style isn't defined - */ - public function getStyle(string $name): OutputFormatterStyleInterface; - - /** - * Formats a message according to the given styles. - */ - public function format(?string $message): ?string; -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyle.php deleted file mode 100644 index 21e7f5a..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -use Symfony\Component\Console\Color; - -/** - * Formatter style class for defining styles. - * - * @author Konstantin Kudryashov - */ -class OutputFormatterStyle implements OutputFormatterStyleInterface -{ - private Color $color; - private string $foreground; - private string $background; - private array $options; - private ?string $href = null; - private bool $handlesHrefGracefully; - - /** - * Initializes output formatter style. - * - * @param string|null $foreground The style foreground color name - * @param string|null $background The style background color name - */ - public function __construct(?string $foreground = null, ?string $background = null, array $options = []) - { - $this->color = new Color($this->foreground = $foreground ?: '', $this->background = $background ?: '', $this->options = $options); - } - - /** - * @return void - */ - public function setForeground(?string $color = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->color = new Color($this->foreground = $color ?: '', $this->background, $this->options); - } - - /** - * @return void - */ - public function setBackground(?string $color = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->color = new Color($this->foreground, $this->background = $color ?: '', $this->options); - } - - public function setHref(string $url): void - { - $this->href = $url; - } - - /** - * @return void - */ - public function setOption(string $option) - { - $this->options[] = $option; - $this->color = new Color($this->foreground, $this->background, $this->options); - } - - /** - * @return void - */ - public function unsetOption(string $option) - { - $pos = array_search($option, $this->options); - if (false !== $pos) { - unset($this->options[$pos]); - } - - $this->color = new Color($this->foreground, $this->background, $this->options); - } - - /** - * @return void - */ - public function setOptions(array $options) - { - $this->color = new Color($this->foreground, $this->background, $this->options = $options); - } - - public function apply(string $text): string - { - $this->handlesHrefGracefully ??= 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') - && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100) - && !isset($_SERVER['IDEA_INITIAL_DIRECTORY']); - - if (null !== $this->href && $this->handlesHrefGracefully) { - $text = "\033]8;;$this->href\033\\$text\033]8;;\033\\"; - } - - return $this->color->apply($text); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php deleted file mode 100644 index 3b15098..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -/** - * Formatter style interface for defining styles. - * - * @author Konstantin Kudryashov - */ -interface OutputFormatterStyleInterface -{ - /** - * Sets style foreground color. - * - * @return void - */ - public function setForeground(?string $color); - - /** - * Sets style background color. - * - * @return void - */ - public function setBackground(?string $color); - - /** - * Sets some specific style option. - * - * @return void - */ - public function setOption(string $option); - - /** - * Unsets some specific style option. - * - * @return void - */ - public function unsetOption(string $option); - - /** - * Sets multiple style options at once. - * - * @return void - */ - public function setOptions(array $options); - - /** - * Applies the style to a given text. - */ - public function apply(string $text): string; -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php deleted file mode 100644 index 62d2ca0..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Contracts\Service\ResetInterface; - -/** - * @author Jean-François Simon - */ -class OutputFormatterStyleStack implements ResetInterface -{ - /** - * @var OutputFormatterStyleInterface[] - */ - private array $styles = []; - - private OutputFormatterStyleInterface $emptyStyle; - - public function __construct(?OutputFormatterStyleInterface $emptyStyle = null) - { - $this->emptyStyle = $emptyStyle ?? new OutputFormatterStyle(); - $this->reset(); - } - - /** - * Resets stack (ie. empty internal arrays). - * - * @return void - */ - public function reset() - { - $this->styles = []; - } - - /** - * Pushes a style in the stack. - * - * @return void - */ - public function push(OutputFormatterStyleInterface $style) - { - $this->styles[] = $style; - } - - /** - * Pops a style from the stack. - * - * @throws InvalidArgumentException When style tags incorrectly nested - */ - public function pop(?OutputFormatterStyleInterface $style = null): OutputFormatterStyleInterface - { - if (!$this->styles) { - return $this->emptyStyle; - } - - if (null === $style) { - return array_pop($this->styles); - } - - foreach (array_reverse($this->styles, true) as $index => $stackedStyle) { - if ($style->apply('') === $stackedStyle->apply('')) { - $this->styles = \array_slice($this->styles, 0, $index); - - return $stackedStyle; - } - } - - throw new InvalidArgumentException('Incorrectly nested style tag found.'); - } - - /** - * Computes current style with stacks top codes. - */ - public function getCurrent(): OutputFormatterStyleInterface - { - if (!$this->styles) { - return $this->emptyStyle; - } - - return $this->styles[\count($this->styles) - 1]; - } - - /** - * @return $this - */ - public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle): static - { - $this->emptyStyle = $emptyStyle; - - return $this; - } - - public function getEmptyStyle(): OutputFormatterStyleInterface - { - return $this->emptyStyle; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/projects/priceservice/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php deleted file mode 100644 index 746cd27..0000000 --- a/projects/priceservice/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Formatter; - -/** - * Formatter interface for console output that supports word wrapping. - * - * @author Roland Franssen - */ -interface WrappableOutputFormatterInterface extends OutputFormatterInterface -{ - /** - * Formats a message according to the given styles, wrapping at `$width` (0 means no wrapping). - * - * @return string - */ - public function formatAndWrap(?string $message, int $width); -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/DebugFormatterHelper.php b/projects/priceservice/vendor/symfony/console/Helper/DebugFormatterHelper.php deleted file mode 100644 index 9ea7fb9..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/DebugFormatterHelper.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -/** - * Helps outputting debug information when running an external program from a command. - * - * An external program can be a Process, an HTTP request, or anything else. - * - * @author Fabien Potencier - */ -class DebugFormatterHelper extends Helper -{ - private const COLORS = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'default']; - private array $started = []; - private int $count = -1; - - /** - * Starts a debug formatting session. - */ - public function start(string $id, string $message, string $prefix = 'RUN'): string - { - $this->started[$id] = ['border' => ++$this->count % \count(self::COLORS)]; - - return sprintf("%s %s %s\n", $this->getBorder($id), $prefix, $message); - } - - /** - * Adds progress to a formatting session. - */ - public function progress(string $id, string $buffer, bool $error = false, string $prefix = 'OUT', string $errorPrefix = 'ERR'): string - { - $message = ''; - - if ($error) { - if (isset($this->started[$id]['out'])) { - $message .= "\n"; - unset($this->started[$id]['out']); - } - if (!isset($this->started[$id]['err'])) { - $message .= sprintf('%s %s ', $this->getBorder($id), $errorPrefix); - $this->started[$id]['err'] = true; - } - - $message .= str_replace("\n", sprintf("\n%s %s ", $this->getBorder($id), $errorPrefix), $buffer); - } else { - if (isset($this->started[$id]['err'])) { - $message .= "\n"; - unset($this->started[$id]['err']); - } - if (!isset($this->started[$id]['out'])) { - $message .= sprintf('%s %s ', $this->getBorder($id), $prefix); - $this->started[$id]['out'] = true; - } - - $message .= str_replace("\n", sprintf("\n%s %s ", $this->getBorder($id), $prefix), $buffer); - } - - return $message; - } - - /** - * Stops a formatting session. - */ - public function stop(string $id, string $message, bool $successful, string $prefix = 'RES'): string - { - $trailingEOL = isset($this->started[$id]['out']) || isset($this->started[$id]['err']) ? "\n" : ''; - - if ($successful) { - return sprintf("%s%s %s %s\n", $trailingEOL, $this->getBorder($id), $prefix, $message); - } - - $message = sprintf("%s%s %s %s\n", $trailingEOL, $this->getBorder($id), $prefix, $message); - - unset($this->started[$id]['out'], $this->started[$id]['err']); - - return $message; - } - - private function getBorder(string $id): string - { - return sprintf(' ', self::COLORS[$this->started[$id]['border']]); - } - - public function getName(): string - { - return 'debug_formatter'; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/DescriptorHelper.php b/projects/priceservice/vendor/symfony/console/Helper/DescriptorHelper.php deleted file mode 100644 index eb32bce..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/DescriptorHelper.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Descriptor\DescriptorInterface; -use Symfony\Component\Console\Descriptor\JsonDescriptor; -use Symfony\Component\Console\Descriptor\MarkdownDescriptor; -use Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; -use Symfony\Component\Console\Descriptor\TextDescriptor; -use Symfony\Component\Console\Descriptor\XmlDescriptor; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * This class adds helper method to describe objects in various formats. - * - * @author Jean-François Simon - */ -class DescriptorHelper extends Helper -{ - /** - * @var DescriptorInterface[] - */ - private array $descriptors = []; - - public function __construct() - { - $this - ->register('txt', new TextDescriptor()) - ->register('xml', new XmlDescriptor()) - ->register('json', new JsonDescriptor()) - ->register('md', new MarkdownDescriptor()) - ->register('rst', new ReStructuredTextDescriptor()) - ; - } - - /** - * Describes an object if supported. - * - * Available options are: - * * format: string, the output format name - * * raw_text: boolean, sets output type as raw - * - * @return void - * - * @throws InvalidArgumentException when the given format is not supported - */ - public function describe(OutputInterface $output, ?object $object, array $options = []) - { - $options = array_merge([ - 'raw_text' => false, - 'format' => 'txt', - ], $options); - - if (!isset($this->descriptors[$options['format']])) { - throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $options['format'])); - } - - $descriptor = $this->descriptors[$options['format']]; - $descriptor->describe($output, $object, $options); - } - - /** - * Registers a descriptor. - * - * @return $this - */ - public function register(string $format, DescriptorInterface $descriptor): static - { - $this->descriptors[$format] = $descriptor; - - return $this; - } - - public function getName(): string - { - return 'descriptor'; - } - - public function getFormats(): array - { - return array_keys($this->descriptors); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/Dumper.php b/projects/priceservice/vendor/symfony/console/Helper/Dumper.php deleted file mode 100644 index a3b8e39..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/Dumper.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\VarDumper\Cloner\ClonerInterface; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use Symfony\Component\VarDumper\Dumper\CliDumper; - -/** - * @author Roland Franssen - */ -final class Dumper -{ - private OutputInterface $output; - private ?CliDumper $dumper; - private ?ClonerInterface $cloner; - private \Closure $handler; - - public function __construct(OutputInterface $output, ?CliDumper $dumper = null, ?ClonerInterface $cloner = null) - { - $this->output = $output; - $this->dumper = $dumper; - $this->cloner = $cloner; - - if (class_exists(CliDumper::class)) { - $this->handler = function ($var): string { - $dumper = $this->dumper ??= new CliDumper(null, null, CliDumper::DUMP_LIGHT_ARRAY | CliDumper::DUMP_COMMA_SEPARATOR); - $dumper->setColors($this->output->isDecorated()); - - return rtrim($dumper->dump(($this->cloner ??= new VarCloner())->cloneVar($var)->withRefHandles(false), true)); - }; - } else { - $this->handler = fn ($var): string => match (true) { - null === $var => 'null', - true === $var => 'true', - false === $var => 'false', - \is_string($var) => '"'.$var.'"', - default => rtrim(print_r($var, true)), - }; - } - } - - public function __invoke(mixed $var): string - { - return ($this->handler)($var); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/FormatterHelper.php b/projects/priceservice/vendor/symfony/console/Helper/FormatterHelper.php deleted file mode 100644 index 279e4c7..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/FormatterHelper.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Formatter\OutputFormatter; - -/** - * The Formatter class provides helpers to format messages. - * - * @author Fabien Potencier - */ -class FormatterHelper extends Helper -{ - /** - * Formats a message within a section. - */ - public function formatSection(string $section, string $message, string $style = 'info'): string - { - return sprintf('<%s>[%s] %s', $style, $section, $style, $message); - } - - /** - * Formats a message as a block of text. - */ - public function formatBlock(string|array $messages, string $style, bool $large = false): string - { - if (!\is_array($messages)) { - $messages = [$messages]; - } - - $len = 0; - $lines = []; - foreach ($messages as $message) { - $message = OutputFormatter::escape($message); - $lines[] = sprintf($large ? ' %s ' : ' %s ', $message); - $len = max(self::width($message) + ($large ? 4 : 2), $len); - } - - $messages = $large ? [str_repeat(' ', $len)] : []; - for ($i = 0; isset($lines[$i]); ++$i) { - $messages[] = $lines[$i].str_repeat(' ', $len - self::width($lines[$i])); - } - if ($large) { - $messages[] = str_repeat(' ', $len); - } - - for ($i = 0; isset($messages[$i]); ++$i) { - $messages[$i] = sprintf('<%s>%s', $style, $messages[$i], $style); - } - - return implode("\n", $messages); - } - - /** - * Truncates a message to the given length. - */ - public function truncate(string $message, int $length, string $suffix = '...'): string - { - $computedLength = $length - self::width($suffix); - - if ($computedLength > self::width($message)) { - return $message; - } - - return self::substr($message, 0, $length).$suffix; - } - - public function getName(): string - { - return 'formatter'; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/Helper.php b/projects/priceservice/vendor/symfony/console/Helper/Helper.php deleted file mode 100644 index 5999537..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/Helper.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Formatter\OutputFormatterInterface; -use Symfony\Component\String\UnicodeString; - -/** - * Helper is the base class for all helper classes. - * - * @author Fabien Potencier - */ -abstract class Helper implements HelperInterface -{ - protected $helperSet; - - /** - * @return void - */ - public function setHelperSet(?HelperSet $helperSet = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->helperSet = $helperSet; - } - - public function getHelperSet(): ?HelperSet - { - return $this->helperSet; - } - - /** - * Returns the width of a string, using mb_strwidth if it is available. - * The width is how many characters positions the string will use. - */ - public static function width(?string $string): int - { - $string ??= ''; - - if (preg_match('//u', $string)) { - $string = preg_replace('/[\p{Cc}\x7F]++/u', '', $string, -1, $count); - - return (new UnicodeString($string))->width(false) + $count; - } - - if (false === $encoding = mb_detect_encoding($string, null, true)) { - return \strlen($string); - } - - return mb_strwidth($string, $encoding); - } - - /** - * Returns the length of a string, using mb_strlen if it is available. - * The length is related to how many bytes the string will use. - */ - public static function length(?string $string): int - { - $string ??= ''; - - if (preg_match('//u', $string)) { - return (new UnicodeString($string))->length(); - } - - if (false === $encoding = mb_detect_encoding($string, null, true)) { - return \strlen($string); - } - - return mb_strlen($string, $encoding); - } - - /** - * Returns the subset of a string, using mb_substr if it is available. - */ - public static function substr(?string $string, int $from, ?int $length = null): string - { - $string ??= ''; - - if (false === $encoding = mb_detect_encoding($string, null, true)) { - return substr($string, $from, $length); - } - - return mb_substr($string, $from, $length, $encoding); - } - - /** - * @return string - */ - public static function formatTime(int|float $secs, int $precision = 1) - { - $secs = (int) floor($secs); - - if (0 === $secs) { - return '< 1 sec'; - } - - static $timeFormats = [ - [1, '1 sec', 'secs'], - [60, '1 min', 'mins'], - [3600, '1 hr', 'hrs'], - [86400, '1 day', 'days'], - ]; - - $times = []; - foreach ($timeFormats as $index => $format) { - $seconds = isset($timeFormats[$index + 1]) ? $secs % $timeFormats[$index + 1][0] : $secs; - - if (isset($times[$index - $precision])) { - unset($times[$index - $precision]); - } - - if (0 === $seconds) { - continue; - } - - $unitCount = ($seconds / $format[0]); - $times[$index] = 1 === $unitCount ? $format[1] : $unitCount.' '.$format[2]; - - if ($secs === $seconds) { - break; - } - - $secs -= $seconds; - } - - return implode(', ', array_reverse($times)); - } - - /** - * @return string - */ - public static function formatMemory(int $memory) - { - if ($memory >= 1024 * 1024 * 1024) { - return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024); - } - - if ($memory >= 1024 * 1024) { - return sprintf('%.1f MiB', $memory / 1024 / 1024); - } - - if ($memory >= 1024) { - return sprintf('%d KiB', $memory / 1024); - } - - return sprintf('%d B', $memory); - } - - /** - * @return string - */ - public static function removeDecoration(OutputFormatterInterface $formatter, ?string $string) - { - $isDecorated = $formatter->isDecorated(); - $formatter->setDecorated(false); - // remove <...> formatting - $string = $formatter->format($string ?? ''); - // remove already formatted characters - $string = preg_replace("/\033\[[^m]*m/", '', $string ?? ''); - // remove terminal hyperlinks - $string = preg_replace('/\\033]8;[^;]*;[^\\033]*\\033\\\\/', '', $string ?? ''); - $formatter->setDecorated($isDecorated); - - return $string; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/HelperInterface.php b/projects/priceservice/vendor/symfony/console/Helper/HelperInterface.php deleted file mode 100644 index ab626c9..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/HelperInterface.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -/** - * HelperInterface is the interface all helpers must implement. - * - * @author Fabien Potencier - */ -interface HelperInterface -{ - /** - * Sets the helper set associated with this helper. - * - * @return void - */ - public function setHelperSet(?HelperSet $helperSet); - - /** - * Gets the helper set associated with this helper. - */ - public function getHelperSet(): ?HelperSet; - - /** - * Returns the canonical name of this helper. - * - * @return string - */ - public function getName(); -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/HelperSet.php b/projects/priceservice/vendor/symfony/console/Helper/HelperSet.php deleted file mode 100644 index f8c74ca..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/HelperSet.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * HelperSet represents a set of helpers to be used with a command. - * - * @author Fabien Potencier - * - * @implements \IteratorAggregate - */ -class HelperSet implements \IteratorAggregate -{ - /** @var array */ - private array $helpers = []; - - /** - * @param HelperInterface[] $helpers - */ - public function __construct(array $helpers = []) - { - foreach ($helpers as $alias => $helper) { - $this->set($helper, \is_int($alias) ? null : $alias); - } - } - - /** - * @return void - */ - public function set(HelperInterface $helper, ?string $alias = null) - { - $this->helpers[$helper->getName()] = $helper; - if (null !== $alias) { - $this->helpers[$alias] = $helper; - } - - $helper->setHelperSet($this); - } - - /** - * Returns true if the helper if defined. - */ - public function has(string $name): bool - { - return isset($this->helpers[$name]); - } - - /** - * Gets a helper value. - * - * @throws InvalidArgumentException if the helper is not defined - */ - public function get(string $name): HelperInterface - { - if (!$this->has($name)) { - throw new InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name)); - } - - return $this->helpers[$name]; - } - - public function getIterator(): \Traversable - { - return new \ArrayIterator($this->helpers); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/InputAwareHelper.php b/projects/priceservice/vendor/symfony/console/Helper/InputAwareHelper.php deleted file mode 100644 index 6f82259..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/InputAwareHelper.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Input\InputAwareInterface; -use Symfony\Component\Console\Input\InputInterface; - -/** - * An implementation of InputAwareInterface for Helpers. - * - * @author Wouter J - */ -abstract class InputAwareHelper extends Helper implements InputAwareInterface -{ - protected $input; - - /** - * @return void - */ - public function setInput(InputInterface $input) - { - $this->input = $input; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/OutputWrapper.php b/projects/priceservice/vendor/symfony/console/Helper/OutputWrapper.php deleted file mode 100644 index 2ec819c..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/OutputWrapper.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -/** - * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow - * answer: https://stackoverflow.com/a/20434776/1476819 from user557597 (alias SLN). - * - * (?: - * # -- Words/Characters - * ( # (1 start) - * (?> # Atomic Group - Match words with valid breaks - * .{1,16} # 1-N characters - * # Followed by one of 4 prioritized, non-linebreak whitespace - * (?: # break types: - * (?<= [^\S\r\n] ) # 1. - Behind a non-linebreak whitespace - * [^\S\r\n]? # ( optionally accept an extra non-linebreak whitespace ) - * | (?= \r? \n ) # 2. - Ahead a linebreak - * | $ # 3. - EOS - * | [^\S\r\n] # 4. - Accept an extra non-linebreak whitespace - * ) - * ) # End atomic group - * | - * .{1,16} # No valid word breaks, just break on the N'th character - * ) # (1 end) - * (?: \r? \n )? # Optional linebreak after Words/Characters - * | - * # -- Or, Linebreak - * (?: \r? \n | $ ) # Stand alone linebreak or at EOS - * ) - * - * @author Krisztián Ferenczi - * - * @see https://stackoverflow.com/a/20434776/1476819 - */ -final class OutputWrapper -{ - private const TAG_OPEN_REGEX_SEGMENT = '[a-z](?:[^\\\\<>]*+ | \\\\.)*'; - private const TAG_CLOSE_REGEX_SEGMENT = '[a-z][^<>]*+'; - private const URL_PATTERN = 'https?://\S+'; - - public function __construct( - private bool $allowCutUrls = false - ) { - } - - public function wrap(string $text, int $width, string $break = "\n"): string - { - if (!$width) { - return $text; - } - - $tagPattern = sprintf('<(?:(?:%s)|/(?:%s)?)>', self::TAG_OPEN_REGEX_SEGMENT, self::TAG_CLOSE_REGEX_SEGMENT); - $limitPattern = "{1,$width}"; - $patternBlocks = [$tagPattern]; - if (!$this->allowCutUrls) { - $patternBlocks[] = self::URL_PATTERN; - } - $patternBlocks[] = '.'; - $blocks = implode('|', $patternBlocks); - $rowPattern = "(?:$blocks)$limitPattern"; - $pattern = sprintf('#(?:((?>(%1$s)((?<=[^\S\r\n])[^\S\r\n]?|(?=\r?\n)|$|[^\S\r\n]))|(%1$s))(?:\r?\n)?|(?:\r?\n|$))#imux', $rowPattern); - $output = rtrim(preg_replace($pattern, '\\1'.$break, $text), $break); - - return str_replace(' '.$break, $break, $output); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/ProcessHelper.php b/projects/priceservice/vendor/symfony/console/Helper/ProcessHelper.php deleted file mode 100644 index 3ef6f71..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/ProcessHelper.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Process\Exception\ProcessFailedException; -use Symfony\Component\Process\Process; - -/** - * The ProcessHelper class provides helpers to run external processes. - * - * @author Fabien Potencier - * - * @final - */ -class ProcessHelper extends Helper -{ - /** - * Runs an external process. - * - * @param array|Process $cmd An instance of Process or an array of the command and arguments - * @param callable|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - */ - public function run(OutputInterface $output, array|Process $cmd, ?string $error = null, ?callable $callback = null, int $verbosity = OutputInterface::VERBOSITY_VERY_VERBOSE): Process - { - if (!class_exists(Process::class)) { - throw new \LogicException('The ProcessHelper cannot be run as the Process component is not installed. Try running "compose require symfony/process".'); - } - - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - - $formatter = $this->getHelperSet()->get('debug_formatter'); - - if ($cmd instanceof Process) { - $cmd = [$cmd]; - } - - if (\is_string($cmd[0] ?? null)) { - $process = new Process($cmd); - $cmd = []; - } elseif (($cmd[0] ?? null) instanceof Process) { - $process = $cmd[0]; - unset($cmd[0]); - } else { - throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__)); - } - - if ($verbosity <= $output->getVerbosity()) { - $output->write($formatter->start(spl_object_hash($process), $this->escapeString($process->getCommandLine()))); - } - - if ($output->isDebug()) { - $callback = $this->wrapCallback($output, $process, $callback); - } - - $process->run($callback, $cmd); - - if ($verbosity <= $output->getVerbosity()) { - $message = $process->isSuccessful() ? 'Command ran successfully' : sprintf('%s Command did not run successfully', $process->getExitCode()); - $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful())); - } - - if (!$process->isSuccessful() && null !== $error) { - $output->writeln(sprintf('%s', $this->escapeString($error))); - } - - return $process; - } - - /** - * Runs the process. - * - * This is identical to run() except that an exception is thrown if the process - * exits with a non-zero exit code. - * - * @param array|Process $cmd An instance of Process or a command to run - * @param callable|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @throws ProcessFailedException - * - * @see run() - */ - public function mustRun(OutputInterface $output, array|Process $cmd, ?string $error = null, ?callable $callback = null): Process - { - $process = $this->run($output, $cmd, $error, $callback); - - if (!$process->isSuccessful()) { - throw new ProcessFailedException($process); - } - - return $process; - } - - /** - * Wraps a Process callback to add debugging output. - */ - public function wrapCallback(OutputInterface $output, Process $process, ?callable $callback = null): callable - { - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - - $formatter = $this->getHelperSet()->get('debug_formatter'); - - return function ($type, $buffer) use ($output, $process, $callback, $formatter) { - $output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type)); - - if (null !== $callback) { - $callback($type, $buffer); - } - }; - } - - private function escapeString(string $str): string - { - return str_replace('<', '\\<', $str); - } - - public function getName(): string - { - return 'process'; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/ProgressBar.php b/projects/priceservice/vendor/symfony/console/Helper/ProgressBar.php deleted file mode 100644 index 3dc06d7..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/ProgressBar.php +++ /dev/null @@ -1,627 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Cursor; -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\ConsoleSectionOutput; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Terminal; - -/** - * The ProgressBar provides helpers to display progress output. - * - * @author Fabien Potencier - * @author Chris Jones - */ -final class ProgressBar -{ - public const FORMAT_VERBOSE = 'verbose'; - public const FORMAT_VERY_VERBOSE = 'very_verbose'; - public const FORMAT_DEBUG = 'debug'; - public const FORMAT_NORMAL = 'normal'; - - private const FORMAT_VERBOSE_NOMAX = 'verbose_nomax'; - private const FORMAT_VERY_VERBOSE_NOMAX = 'very_verbose_nomax'; - private const FORMAT_DEBUG_NOMAX = 'debug_nomax'; - private const FORMAT_NORMAL_NOMAX = 'normal_nomax'; - - private int $barWidth = 28; - private string $barChar; - private string $emptyBarChar = '-'; - private string $progressChar = '>'; - private ?string $format = null; - private ?string $internalFormat = null; - private ?int $redrawFreq = 1; - private int $writeCount = 0; - private float $lastWriteTime = 0; - private float $minSecondsBetweenRedraws = 0; - private float $maxSecondsBetweenRedraws = 1; - private OutputInterface $output; - private int $step = 0; - private int $startingStep = 0; - private ?int $max = null; - private int $startTime; - private int $stepWidth; - private float $percent = 0.0; - private array $messages = []; - private bool $overwrite = true; - private Terminal $terminal; - private ?string $previousMessage = null; - private Cursor $cursor; - private array $placeholders = []; - - private static array $formatters; - private static array $formats; - - /** - * @param int $max Maximum steps (0 if unknown) - */ - public function __construct(OutputInterface $output, int $max = 0, float $minSecondsBetweenRedraws = 1 / 25) - { - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - - $this->output = $output; - $this->setMaxSteps($max); - $this->terminal = new Terminal(); - - if (0 < $minSecondsBetweenRedraws) { - $this->redrawFreq = null; - $this->minSecondsBetweenRedraws = $minSecondsBetweenRedraws; - } - - if (!$this->output->isDecorated()) { - // disable overwrite when output does not support ANSI codes. - $this->overwrite = false; - - // set a reasonable redraw frequency so output isn't flooded - $this->redrawFreq = null; - } - - $this->startTime = time(); - $this->cursor = new Cursor($output); - } - - /** - * Sets a placeholder formatter for a given name, globally for all instances of ProgressBar. - * - * This method also allow you to override an existing placeholder. - * - * @param string $name The placeholder name (including the delimiter char like %) - * @param callable(ProgressBar):string $callable A PHP callable - */ - public static function setPlaceholderFormatterDefinition(string $name, callable $callable): void - { - self::$formatters ??= self::initPlaceholderFormatters(); - - self::$formatters[$name] = $callable; - } - - /** - * Gets the placeholder formatter for a given name. - * - * @param string $name The placeholder name (including the delimiter char like %) - */ - public static function getPlaceholderFormatterDefinition(string $name): ?callable - { - self::$formatters ??= self::initPlaceholderFormatters(); - - return self::$formatters[$name] ?? null; - } - - /** - * Sets a placeholder formatter for a given name, for this instance only. - * - * @param callable(ProgressBar):string $callable A PHP callable - */ - public function setPlaceholderFormatter(string $name, callable $callable): void - { - $this->placeholders[$name] = $callable; - } - - /** - * Gets the placeholder formatter for a given name. - * - * @param string $name The placeholder name (including the delimiter char like %) - */ - public function getPlaceholderFormatter(string $name): ?callable - { - return $this->placeholders[$name] ?? $this::getPlaceholderFormatterDefinition($name); - } - - /** - * Sets a format for a given name. - * - * This method also allow you to override an existing format. - * - * @param string $name The format name - * @param string $format A format string - */ - public static function setFormatDefinition(string $name, string $format): void - { - self::$formats ??= self::initFormats(); - - self::$formats[$name] = $format; - } - - /** - * Gets the format for a given name. - * - * @param string $name The format name - */ - public static function getFormatDefinition(string $name): ?string - { - self::$formats ??= self::initFormats(); - - return self::$formats[$name] ?? null; - } - - /** - * Associates a text with a named placeholder. - * - * The text is displayed when the progress bar is rendered but only - * when the corresponding placeholder is part of the custom format line - * (by wrapping the name with %). - * - * @param string $message The text to associate with the placeholder - * @param string $name The name of the placeholder - */ - public function setMessage(string $message, string $name = 'message'): void - { - $this->messages[$name] = $message; - } - - public function getMessage(string $name = 'message'): ?string - { - return $this->messages[$name] ?? null; - } - - public function getStartTime(): int - { - return $this->startTime; - } - - public function getMaxSteps(): int - { - return $this->max; - } - - public function getProgress(): int - { - return $this->step; - } - - private function getStepWidth(): int - { - return $this->stepWidth; - } - - public function getProgressPercent(): float - { - return $this->percent; - } - - public function getBarOffset(): float - { - return floor($this->max ? $this->percent * $this->barWidth : (null === $this->redrawFreq ? (int) (min(5, $this->barWidth / 15) * $this->writeCount) : $this->step) % $this->barWidth); - } - - public function getEstimated(): float - { - if (0 === $this->step || $this->step === $this->startingStep) { - return 0; - } - - return round((time() - $this->startTime) / ($this->step - $this->startingStep) * $this->max); - } - - public function getRemaining(): float - { - if (0 === $this->step || $this->step === $this->startingStep) { - return 0; - } - - return round((time() - $this->startTime) / ($this->step - $this->startingStep) * ($this->max - $this->step)); - } - - public function setBarWidth(int $size): void - { - $this->barWidth = max(1, $size); - } - - public function getBarWidth(): int - { - return $this->barWidth; - } - - public function setBarCharacter(string $char): void - { - $this->barChar = $char; - } - - public function getBarCharacter(): string - { - return $this->barChar ?? ($this->max ? '=' : $this->emptyBarChar); - } - - public function setEmptyBarCharacter(string $char): void - { - $this->emptyBarChar = $char; - } - - public function getEmptyBarCharacter(): string - { - return $this->emptyBarChar; - } - - public function setProgressCharacter(string $char): void - { - $this->progressChar = $char; - } - - public function getProgressCharacter(): string - { - return $this->progressChar; - } - - public function setFormat(string $format): void - { - $this->format = null; - $this->internalFormat = $format; - } - - /** - * Sets the redraw frequency. - * - * @param int|null $freq The frequency in steps - */ - public function setRedrawFrequency(?int $freq): void - { - $this->redrawFreq = null !== $freq ? max(1, $freq) : null; - } - - public function minSecondsBetweenRedraws(float $seconds): void - { - $this->minSecondsBetweenRedraws = $seconds; - } - - public function maxSecondsBetweenRedraws(float $seconds): void - { - $this->maxSecondsBetweenRedraws = $seconds; - } - - /** - * Returns an iterator that will automatically update the progress bar when iterated. - * - * @template TKey - * @template TValue - * - * @param iterable $iterable - * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable - * - * @return iterable - */ - public function iterate(iterable $iterable, ?int $max = null): iterable - { - $this->start($max ?? (is_countable($iterable) ? \count($iterable) : 0)); - - foreach ($iterable as $key => $value) { - yield $key => $value; - - $this->advance(); - } - - $this->finish(); - } - - /** - * Starts the progress output. - * - * @param int|null $max Number of steps to complete the bar (0 if indeterminate), null to leave unchanged - * @param int $startAt The starting point of the bar (useful e.g. when resuming a previously started bar) - */ - public function start(?int $max = null, int $startAt = 0): void - { - $this->startTime = time(); - $this->step = $startAt; - $this->startingStep = $startAt; - - $startAt > 0 ? $this->setProgress($startAt) : $this->percent = 0.0; - - if (null !== $max) { - $this->setMaxSteps($max); - } - - $this->display(); - } - - /** - * Advances the progress output X steps. - * - * @param int $step Number of steps to advance - */ - public function advance(int $step = 1): void - { - $this->setProgress($this->step + $step); - } - - /** - * Sets whether to overwrite the progressbar, false for new line. - */ - public function setOverwrite(bool $overwrite): void - { - $this->overwrite = $overwrite; - } - - public function setProgress(int $step): void - { - if ($this->max && $step > $this->max) { - $this->max = $step; - } elseif ($step < 0) { - $step = 0; - } - - $redrawFreq = $this->redrawFreq ?? (($this->max ?: 10) / 10); - $prevPeriod = (int) ($this->step / $redrawFreq); - $currPeriod = (int) ($step / $redrawFreq); - $this->step = $step; - $this->percent = $this->max ? (float) $this->step / $this->max : 0; - $timeInterval = microtime(true) - $this->lastWriteTime; - - // Draw regardless of other limits - if ($this->max === $step) { - $this->display(); - - return; - } - - // Throttling - if ($timeInterval < $this->minSecondsBetweenRedraws) { - return; - } - - // Draw each step period, but not too late - if ($prevPeriod !== $currPeriod || $timeInterval >= $this->maxSecondsBetweenRedraws) { - $this->display(); - } - } - - public function setMaxSteps(int $max): void - { - $this->format = null; - $this->max = max(0, $max); - $this->stepWidth = $this->max ? Helper::width((string) $this->max) : 4; - } - - /** - * Finishes the progress output. - */ - public function finish(): void - { - if (!$this->max) { - $this->max = $this->step; - } - - if ($this->step === $this->max && !$this->overwrite) { - // prevent double 100% output - return; - } - - $this->setProgress($this->max); - } - - /** - * Outputs the current progress string. - */ - public function display(): void - { - if (OutputInterface::VERBOSITY_QUIET === $this->output->getVerbosity()) { - return; - } - - if (null === $this->format) { - $this->setRealFormat($this->internalFormat ?: $this->determineBestFormat()); - } - - $this->overwrite($this->buildLine()); - } - - /** - * Removes the progress bar from the current line. - * - * This is useful if you wish to write some output - * while a progress bar is running. - * Call display() to show the progress bar again. - */ - public function clear(): void - { - if (!$this->overwrite) { - return; - } - - if (null === $this->format) { - $this->setRealFormat($this->internalFormat ?: $this->determineBestFormat()); - } - - $this->overwrite(''); - } - - private function setRealFormat(string $format): void - { - // try to use the _nomax variant if available - if (!$this->max && null !== self::getFormatDefinition($format.'_nomax')) { - $this->format = self::getFormatDefinition($format.'_nomax'); - } elseif (null !== self::getFormatDefinition($format)) { - $this->format = self::getFormatDefinition($format); - } else { - $this->format = $format; - } - } - - /** - * Overwrites a previous message to the output. - */ - private function overwrite(string $message): void - { - if ($this->previousMessage === $message) { - return; - } - - $originalMessage = $message; - - if ($this->overwrite) { - if (null !== $this->previousMessage) { - if ($this->output instanceof ConsoleSectionOutput) { - $messageLines = explode("\n", $this->previousMessage); - $lineCount = \count($messageLines); - - $lastLineWithoutDecoration = Helper::removeDecoration($this->output->getFormatter(), end($messageLines) ?? ''); - - // When the last previous line is empty (without formatting) it is already cleared by the section output, so we don't need to clear it again - if ('' === $lastLineWithoutDecoration) { - --$lineCount; - } - - foreach ($messageLines as $messageLine) { - $messageLineLength = Helper::width(Helper::removeDecoration($this->output->getFormatter(), $messageLine)); - if ($messageLineLength > $this->terminal->getWidth()) { - $lineCount += floor($messageLineLength / $this->terminal->getWidth()); - } - } - - $this->output->clear($lineCount); - } else { - $lineCount = substr_count($this->previousMessage, "\n"); - for ($i = 0; $i < $lineCount; ++$i) { - $this->cursor->moveToColumn(1); - $this->cursor->clearLine(); - $this->cursor->moveUp(); - } - - $this->cursor->moveToColumn(1); - $this->cursor->clearLine(); - } - } - } elseif ($this->step > 0) { - $message = \PHP_EOL.$message; - } - - $this->previousMessage = $originalMessage; - $this->lastWriteTime = microtime(true); - - $this->output->write($message); - ++$this->writeCount; - } - - private function determineBestFormat(): string - { - return match ($this->output->getVerbosity()) { - // OutputInterface::VERBOSITY_QUIET: display is disabled anyway - OutputInterface::VERBOSITY_VERBOSE => $this->max ? self::FORMAT_VERBOSE : self::FORMAT_VERBOSE_NOMAX, - OutputInterface::VERBOSITY_VERY_VERBOSE => $this->max ? self::FORMAT_VERY_VERBOSE : self::FORMAT_VERY_VERBOSE_NOMAX, - OutputInterface::VERBOSITY_DEBUG => $this->max ? self::FORMAT_DEBUG : self::FORMAT_DEBUG_NOMAX, - default => $this->max ? self::FORMAT_NORMAL : self::FORMAT_NORMAL_NOMAX, - }; - } - - private static function initPlaceholderFormatters(): array - { - return [ - 'bar' => function (self $bar, OutputInterface $output) { - $completeBars = $bar->getBarOffset(); - $display = str_repeat($bar->getBarCharacter(), $completeBars); - if ($completeBars < $bar->getBarWidth()) { - $emptyBars = $bar->getBarWidth() - $completeBars - Helper::length(Helper::removeDecoration($output->getFormatter(), $bar->getProgressCharacter())); - $display .= $bar->getProgressCharacter().str_repeat($bar->getEmptyBarCharacter(), $emptyBars); - } - - return $display; - }, - 'elapsed' => fn (self $bar) => Helper::formatTime(time() - $bar->getStartTime(), 2), - 'remaining' => function (self $bar) { - if (!$bar->getMaxSteps()) { - throw new LogicException('Unable to display the remaining time if the maximum number of steps is not set.'); - } - - return Helper::formatTime($bar->getRemaining(), 2); - }, - 'estimated' => function (self $bar) { - if (!$bar->getMaxSteps()) { - throw new LogicException('Unable to display the estimated time if the maximum number of steps is not set.'); - } - - return Helper::formatTime($bar->getEstimated(), 2); - }, - 'memory' => fn (self $bar) => Helper::formatMemory(memory_get_usage(true)), - 'current' => fn (self $bar) => str_pad($bar->getProgress(), $bar->getStepWidth(), ' ', \STR_PAD_LEFT), - 'max' => fn (self $bar) => $bar->getMaxSteps(), - 'percent' => fn (self $bar) => floor($bar->getProgressPercent() * 100), - ]; - } - - private static function initFormats(): array - { - return [ - self::FORMAT_NORMAL => ' %current%/%max% [%bar%] %percent:3s%%', - self::FORMAT_NORMAL_NOMAX => ' %current% [%bar%]', - - self::FORMAT_VERBOSE => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%', - self::FORMAT_VERBOSE_NOMAX => ' %current% [%bar%] %elapsed:6s%', - - self::FORMAT_VERY_VERBOSE => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s%', - self::FORMAT_VERY_VERBOSE_NOMAX => ' %current% [%bar%] %elapsed:6s%', - - self::FORMAT_DEBUG => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%', - self::FORMAT_DEBUG_NOMAX => ' %current% [%bar%] %elapsed:6s% %memory:6s%', - ]; - } - - private function buildLine(): string - { - \assert(null !== $this->format); - - $regex = "{%([a-z\-_]+)(?:\:([^%]+))?%}i"; - $callback = function ($matches) { - if ($formatter = $this->getPlaceholderFormatter($matches[1])) { - $text = $formatter($this, $this->output); - } elseif (isset($this->messages[$matches[1]])) { - $text = $this->messages[$matches[1]]; - } else { - return $matches[0]; - } - - if (isset($matches[2])) { - $text = sprintf('%'.$matches[2], $text); - } - - return $text; - }; - $line = preg_replace_callback($regex, $callback, $this->format); - - // gets string length for each sub line with multiline format - $linesLength = array_map(fn ($subLine) => Helper::width(Helper::removeDecoration($this->output->getFormatter(), rtrim($subLine, "\r"))), explode("\n", $line)); - - $linesWidth = max($linesLength); - - $terminalWidth = $this->terminal->getWidth(); - if ($linesWidth <= $terminalWidth) { - return $line; - } - - $this->setBarWidth($this->barWidth - $linesWidth + $terminalWidth); - - return preg_replace_callback($regex, $callback, $this->format); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/ProgressIndicator.php b/projects/priceservice/vendor/symfony/console/Helper/ProgressIndicator.php deleted file mode 100644 index 92106ca..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/ProgressIndicator.php +++ /dev/null @@ -1,235 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Kevin Bond - */ -class ProgressIndicator -{ - private const FORMATS = [ - 'normal' => ' %indicator% %message%', - 'normal_no_ansi' => ' %message%', - - 'verbose' => ' %indicator% %message% (%elapsed:6s%)', - 'verbose_no_ansi' => ' %message% (%elapsed:6s%)', - - 'very_verbose' => ' %indicator% %message% (%elapsed:6s%, %memory:6s%)', - 'very_verbose_no_ansi' => ' %message% (%elapsed:6s%, %memory:6s%)', - ]; - - private OutputInterface $output; - private int $startTime; - private ?string $format = null; - private ?string $message = null; - private array $indicatorValues; - private int $indicatorCurrent; - private int $indicatorChangeInterval; - private float $indicatorUpdateTime; - private bool $started = false; - - /** - * @var array - */ - private static array $formatters; - - /** - * @param int $indicatorChangeInterval Change interval in milliseconds - * @param array|null $indicatorValues Animated indicator characters - */ - public function __construct(OutputInterface $output, ?string $format = null, int $indicatorChangeInterval = 100, ?array $indicatorValues = null) - { - $this->output = $output; - - $format ??= $this->determineBestFormat(); - $indicatorValues ??= ['-', '\\', '|', '/']; - $indicatorValues = array_values($indicatorValues); - - if (2 > \count($indicatorValues)) { - throw new InvalidArgumentException('Must have at least 2 indicator value characters.'); - } - - $this->format = self::getFormatDefinition($format); - $this->indicatorChangeInterval = $indicatorChangeInterval; - $this->indicatorValues = $indicatorValues; - $this->startTime = time(); - } - - /** - * Sets the current indicator message. - * - * @return void - */ - public function setMessage(?string $message) - { - $this->message = $message; - - $this->display(); - } - - /** - * Starts the indicator output. - * - * @return void - */ - public function start(string $message) - { - if ($this->started) { - throw new LogicException('Progress indicator already started.'); - } - - $this->message = $message; - $this->started = true; - $this->startTime = time(); - $this->indicatorUpdateTime = $this->getCurrentTimeInMilliseconds() + $this->indicatorChangeInterval; - $this->indicatorCurrent = 0; - - $this->display(); - } - - /** - * Advances the indicator. - * - * @return void - */ - public function advance() - { - if (!$this->started) { - throw new LogicException('Progress indicator has not yet been started.'); - } - - if (!$this->output->isDecorated()) { - return; - } - - $currentTime = $this->getCurrentTimeInMilliseconds(); - - if ($currentTime < $this->indicatorUpdateTime) { - return; - } - - $this->indicatorUpdateTime = $currentTime + $this->indicatorChangeInterval; - ++$this->indicatorCurrent; - - $this->display(); - } - - /** - * Finish the indicator with message. - * - * @return void - */ - public function finish(string $message) - { - if (!$this->started) { - throw new LogicException('Progress indicator has not yet been started.'); - } - - $this->message = $message; - $this->display(); - $this->output->writeln(''); - $this->started = false; - } - - /** - * Gets the format for a given name. - */ - public static function getFormatDefinition(string $name): ?string - { - return self::FORMATS[$name] ?? null; - } - - /** - * Sets a placeholder formatter for a given name. - * - * This method also allow you to override an existing placeholder. - * - * @return void - */ - public static function setPlaceholderFormatterDefinition(string $name, callable $callable) - { - self::$formatters ??= self::initPlaceholderFormatters(); - - self::$formatters[$name] = $callable; - } - - /** - * Gets the placeholder formatter for a given name (including the delimiter char like %). - */ - public static function getPlaceholderFormatterDefinition(string $name): ?callable - { - self::$formatters ??= self::initPlaceholderFormatters(); - - return self::$formatters[$name] ?? null; - } - - private function display(): void - { - if (OutputInterface::VERBOSITY_QUIET === $this->output->getVerbosity()) { - return; - } - - $this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) { - if ($formatter = self::getPlaceholderFormatterDefinition($matches[1])) { - return $formatter($this); - } - - return $matches[0]; - }, $this->format ?? '')); - } - - private function determineBestFormat(): string - { - return match ($this->output->getVerbosity()) { - // OutputInterface::VERBOSITY_QUIET: display is disabled anyway - OutputInterface::VERBOSITY_VERBOSE => $this->output->isDecorated() ? 'verbose' : 'verbose_no_ansi', - OutputInterface::VERBOSITY_VERY_VERBOSE, - OutputInterface::VERBOSITY_DEBUG => $this->output->isDecorated() ? 'very_verbose' : 'very_verbose_no_ansi', - default => $this->output->isDecorated() ? 'normal' : 'normal_no_ansi', - }; - } - - /** - * Overwrites a previous message to the output. - */ - private function overwrite(string $message): void - { - if ($this->output->isDecorated()) { - $this->output->write("\x0D\x1B[2K"); - $this->output->write($message); - } else { - $this->output->writeln($message); - } - } - - private function getCurrentTimeInMilliseconds(): float - { - return round(microtime(true) * 1000); - } - - /** - * @return array - */ - private static function initPlaceholderFormatters(): array - { - return [ - 'indicator' => fn (self $indicator) => $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)], - 'message' => fn (self $indicator) => $indicator->message, - 'elapsed' => fn (self $indicator) => Helper::formatTime(time() - $indicator->startTime, 2), - 'memory' => fn () => Helper::formatMemory(memory_get_usage(true)), - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/QuestionHelper.php b/projects/priceservice/vendor/symfony/console/Helper/QuestionHelper.php deleted file mode 100644 index b40b131..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/QuestionHelper.php +++ /dev/null @@ -1,600 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Cursor; -use Symfony\Component\Console\Exception\MissingInputException; -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Formatter\OutputFormatterStyle; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\StreamableInputInterface; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\ConsoleSectionOutput; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ChoiceQuestion; -use Symfony\Component\Console\Question\Question; -use Symfony\Component\Console\Terminal; - -use function Symfony\Component\String\s; - -/** - * The QuestionHelper class provides helpers to interact with the user. - * - * @author Fabien Potencier - */ -class QuestionHelper extends Helper -{ - /** - * @var resource|null - */ - private $inputStream; - - private static bool $stty = true; - private static bool $stdinIsInteractive; - - /** - * Asks a question to the user. - * - * @return mixed The user answer - * - * @throws RuntimeException If there is no data to read in the input stream - */ - public function ask(InputInterface $input, OutputInterface $output, Question $question): mixed - { - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - - if (!$input->isInteractive()) { - return $this->getDefaultAnswer($question); - } - - if ($input instanceof StreamableInputInterface && $stream = $input->getStream()) { - $this->inputStream = $stream; - } - - try { - if (!$question->getValidator()) { - return $this->doAsk($output, $question); - } - - $interviewer = fn () => $this->doAsk($output, $question); - - return $this->validateAttempts($interviewer, $output, $question); - } catch (MissingInputException $exception) { - $input->setInteractive(false); - - if (null === $fallbackOutput = $this->getDefaultAnswer($question)) { - throw $exception; - } - - return $fallbackOutput; - } - } - - public function getName(): string - { - return 'question'; - } - - /** - * Prevents usage of stty. - * - * @return void - */ - public static function disableStty() - { - self::$stty = false; - } - - /** - * Asks the question to the user. - * - * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden - */ - private function doAsk(OutputInterface $output, Question $question): mixed - { - $this->writePrompt($output, $question); - - $inputStream = $this->inputStream ?: \STDIN; - $autocomplete = $question->getAutocompleterCallback(); - - if (null === $autocomplete || !self::$stty || !Terminal::hasSttyAvailable()) { - $ret = false; - if ($question->isHidden()) { - try { - $hiddenResponse = $this->getHiddenResponse($output, $inputStream, $question->isTrimmable()); - $ret = $question->isTrimmable() ? trim($hiddenResponse) : $hiddenResponse; - } catch (RuntimeException $e) { - if (!$question->isHiddenFallback()) { - throw $e; - } - } - } - - if (false === $ret) { - $isBlocked = stream_get_meta_data($inputStream)['blocked'] ?? true; - - if (!$isBlocked) { - stream_set_blocking($inputStream, true); - } - - $ret = $this->readInput($inputStream, $question); - - if (!$isBlocked) { - stream_set_blocking($inputStream, false); - } - - if (false === $ret) { - throw new MissingInputException('Aborted.'); - } - if ($question->isTrimmable()) { - $ret = trim($ret); - } - } - } else { - $autocomplete = $this->autocomplete($output, $question, $inputStream, $autocomplete); - $ret = $question->isTrimmable() ? trim($autocomplete) : $autocomplete; - } - - if ($output instanceof ConsoleSectionOutput) { - $output->addContent(''); // add EOL to the question - $output->addContent($ret); - } - - $ret = \strlen($ret) > 0 ? $ret : $question->getDefault(); - - if ($normalizer = $question->getNormalizer()) { - return $normalizer($ret); - } - - return $ret; - } - - private function getDefaultAnswer(Question $question): mixed - { - $default = $question->getDefault(); - - if (null === $default) { - return $default; - } - - if ($validator = $question->getValidator()) { - return \call_user_func($validator, $default); - } elseif ($question instanceof ChoiceQuestion) { - $choices = $question->getChoices(); - - if (!$question->isMultiselect()) { - return $choices[$default] ?? $default; - } - - $default = explode(',', $default); - foreach ($default as $k => $v) { - $v = $question->isTrimmable() ? trim($v) : $v; - $default[$k] = $choices[$v] ?? $v; - } - } - - return $default; - } - - /** - * Outputs the question prompt. - * - * @return void - */ - protected function writePrompt(OutputInterface $output, Question $question) - { - $message = $question->getQuestion(); - - if ($question instanceof ChoiceQuestion) { - $output->writeln(array_merge([ - $question->getQuestion(), - ], $this->formatChoiceQuestionChoices($question, 'info'))); - - $message = $question->getPrompt(); - } - - $output->write($message); - } - - /** - * @return string[] - */ - protected function formatChoiceQuestionChoices(ChoiceQuestion $question, string $tag): array - { - $messages = []; - - $maxWidth = max(array_map([__CLASS__, 'width'], array_keys($choices = $question->getChoices()))); - - foreach ($choices as $key => $value) { - $padding = str_repeat(' ', $maxWidth - self::width($key)); - - $messages[] = sprintf(" [<$tag>%s$padding] %s", $key, $value); - } - - return $messages; - } - - /** - * Outputs an error message. - * - * @return void - */ - protected function writeError(OutputInterface $output, \Exception $error) - { - if (null !== $this->getHelperSet() && $this->getHelperSet()->has('formatter')) { - $message = $this->getHelperSet()->get('formatter')->formatBlock($error->getMessage(), 'error'); - } else { - $message = ''.$error->getMessage().''; - } - - $output->writeln($message); - } - - /** - * Autocompletes a question. - * - * @param resource $inputStream - */ - private function autocomplete(OutputInterface $output, Question $question, $inputStream, callable $autocomplete): string - { - $cursor = new Cursor($output, $inputStream); - - $fullChoice = ''; - $ret = ''; - - $i = 0; - $ofs = -1; - $matches = $autocomplete($ret); - $numMatches = \count($matches); - - $sttyMode = shell_exec('stty -g'); - $isStdin = 'php://stdin' === (stream_get_meta_data($inputStream)['uri'] ?? null); - $r = [$inputStream]; - $w = []; - - // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead) - shell_exec('stty -icanon -echo'); - - // Add highlighted text style - $output->getFormatter()->setStyle('hl', new OutputFormatterStyle('black', 'white')); - - // Read a keypress - while (!feof($inputStream)) { - while ($isStdin && 0 === @stream_select($r, $w, $w, 0, 100)) { - // Give signal handlers a chance to run - $r = [$inputStream]; - } - $c = fread($inputStream, 1); - - // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false. - if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) { - shell_exec('stty '.$sttyMode); - throw new MissingInputException('Aborted.'); - } elseif ("\177" === $c) { // Backspace Character - if (0 === $numMatches && 0 !== $i) { - --$i; - $cursor->moveLeft(s($fullChoice)->slice(-1)->width(false)); - - $fullChoice = self::substr($fullChoice, 0, $i); - } - - if (0 === $i) { - $ofs = -1; - $matches = $autocomplete($ret); - $numMatches = \count($matches); - } else { - $numMatches = 0; - } - - // Pop the last character off the end of our string - $ret = self::substr($ret, 0, $i); - } elseif ("\033" === $c) { - // Did we read an escape sequence? - $c .= fread($inputStream, 2); - - // A = Up Arrow. B = Down Arrow - if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) { - if ('A' === $c[2] && -1 === $ofs) { - $ofs = 0; - } - - if (0 === $numMatches) { - continue; - } - - $ofs += ('A' === $c[2]) ? -1 : 1; - $ofs = ($numMatches + $ofs) % $numMatches; - } - } elseif (\ord($c) < 32) { - if ("\t" === $c || "\n" === $c) { - if ($numMatches > 0 && -1 !== $ofs) { - $ret = (string) $matches[$ofs]; - // Echo out remaining chars for current match - $remainingCharacters = substr($ret, \strlen(trim($this->mostRecentlyEnteredValue($fullChoice)))); - $output->write($remainingCharacters); - $fullChoice .= $remainingCharacters; - $i = (false === $encoding = mb_detect_encoding($fullChoice, null, true)) ? \strlen($fullChoice) : mb_strlen($fullChoice, $encoding); - - $matches = array_filter( - $autocomplete($ret), - fn ($match) => '' === $ret || str_starts_with($match, $ret) - ); - $numMatches = \count($matches); - $ofs = -1; - } - - if ("\n" === $c) { - $output->write($c); - break; - } - - $numMatches = 0; - } - - continue; - } else { - if ("\x80" <= $c) { - $c .= fread($inputStream, ["\xC0" => 1, "\xD0" => 1, "\xE0" => 2, "\xF0" => 3][$c & "\xF0"]); - } - - $output->write($c); - $ret .= $c; - $fullChoice .= $c; - ++$i; - - $tempRet = $ret; - - if ($question instanceof ChoiceQuestion && $question->isMultiselect()) { - $tempRet = $this->mostRecentlyEnteredValue($fullChoice); - } - - $numMatches = 0; - $ofs = 0; - - foreach ($autocomplete($ret) as $value) { - // If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle) - if (str_starts_with($value, $tempRet)) { - $matches[$numMatches++] = $value; - } - } - } - - $cursor->clearLineAfter(); - - if ($numMatches > 0 && -1 !== $ofs) { - $cursor->savePosition(); - // Write highlighted text, complete the partially entered response - $charactersEntered = \strlen(trim($this->mostRecentlyEnteredValue($fullChoice))); - $output->write(''.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $charactersEntered)).''); - $cursor->restorePosition(); - } - } - - // Reset stty so it behaves normally again - shell_exec('stty '.$sttyMode); - - return $fullChoice; - } - - private function mostRecentlyEnteredValue(string $entered): string - { - // Determine the most recent value that the user entered - if (!str_contains($entered, ',')) { - return $entered; - } - - $choices = explode(',', $entered); - if ('' !== $lastChoice = trim($choices[\count($choices) - 1])) { - return $lastChoice; - } - - return $entered; - } - - /** - * Gets a hidden response from user. - * - * @param resource $inputStream The handler resource - * @param bool $trimmable Is the answer trimmable - * - * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden - */ - private function getHiddenResponse(OutputInterface $output, $inputStream, bool $trimmable = true): string - { - if ('\\' === \DIRECTORY_SEPARATOR) { - $exe = __DIR__.'/../Resources/bin/hiddeninput.exe'; - - // handle code running from a phar - if (str_starts_with(__FILE__, 'phar:')) { - $tmpExe = sys_get_temp_dir().'/hiddeninput.exe'; - copy($exe, $tmpExe); - $exe = $tmpExe; - } - - $sExec = shell_exec('"'.$exe.'"'); - $value = $trimmable ? rtrim($sExec) : $sExec; - $output->writeln(''); - - if (isset($tmpExe)) { - unlink($tmpExe); - } - - return $value; - } - - if (self::$stty && Terminal::hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); - shell_exec('stty -echo'); - } elseif ($this->isInteractiveInput($inputStream)) { - throw new RuntimeException('Unable to hide the response.'); - } - - $value = fgets($inputStream, 4096); - - if (4095 === \strlen($value)) { - $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; - $errOutput->warning('The value was possibly truncated by your shell or terminal emulator'); - } - - if (self::$stty && Terminal::hasSttyAvailable()) { - shell_exec('stty '.$sttyMode); - } - - if (false === $value) { - throw new MissingInputException('Aborted.'); - } - if ($trimmable) { - $value = trim($value); - } - $output->writeln(''); - - return $value; - } - - /** - * Validates an attempt. - * - * @param callable $interviewer A callable that will ask for a question and return the result - * - * @throws \Exception In case the max number of attempts has been reached and no valid response has been given - */ - private function validateAttempts(callable $interviewer, OutputInterface $output, Question $question): mixed - { - $error = null; - $attempts = $question->getMaxAttempts(); - - while (null === $attempts || $attempts--) { - if (null !== $error) { - $this->writeError($output, $error); - } - - try { - return $question->getValidator()($interviewer()); - } catch (RuntimeException $e) { - throw $e; - } catch (\Exception $error) { - } - } - - throw $error; - } - - private function isInteractiveInput($inputStream): bool - { - if ('php://stdin' !== (stream_get_meta_data($inputStream)['uri'] ?? null)) { - return false; - } - - if (isset(self::$stdinIsInteractive)) { - return self::$stdinIsInteractive; - } - - return self::$stdinIsInteractive = @stream_isatty(fopen('php://stdin', 'r')); - } - - /** - * Reads one or more lines of input and returns what is read. - * - * @param resource $inputStream The handler resource - * @param Question $question The question being asked - */ - private function readInput($inputStream, Question $question): string|false - { - if (!$question->isMultiline()) { - $cp = $this->setIOCodepage(); - $ret = fgets($inputStream, 4096); - - return $this->resetIOCodepage($cp, $ret); - } - - $multiLineStreamReader = $this->cloneInputStream($inputStream); - if (null === $multiLineStreamReader) { - return false; - } - - $ret = ''; - $cp = $this->setIOCodepage(); - while (false !== ($char = fgetc($multiLineStreamReader))) { - if (\PHP_EOL === "{$ret}{$char}") { - break; - } - $ret .= $char; - } - - return $this->resetIOCodepage($cp, $ret); - } - - private function setIOCodepage(): int - { - if (\function_exists('sapi_windows_cp_set')) { - $cp = sapi_windows_cp_get(); - sapi_windows_cp_set(sapi_windows_cp_get('oem')); - - return $cp; - } - - return 0; - } - - /** - * Sets console I/O to the specified code page and converts the user input. - */ - private function resetIOCodepage(int $cp, string|false $input): string|false - { - if (0 !== $cp) { - sapi_windows_cp_set($cp); - - if (false !== $input && '' !== $input) { - $input = sapi_windows_cp_conv(sapi_windows_cp_get('oem'), $cp, $input); - } - } - - return $input; - } - - /** - * Clones an input stream in order to act on one instance of the same - * stream without affecting the other instance. - * - * @param resource $inputStream The handler resource - * - * @return resource|null The cloned resource, null in case it could not be cloned - */ - private function cloneInputStream($inputStream) - { - $streamMetaData = stream_get_meta_data($inputStream); - $seekable = $streamMetaData['seekable'] ?? false; - $mode = $streamMetaData['mode'] ?? 'rb'; - $uri = $streamMetaData['uri'] ?? null; - - if (null === $uri) { - return null; - } - - $cloneStream = fopen($uri, $mode); - - // For seekable and writable streams, add all the same data to the - // cloned stream and then seek to the same offset. - if (true === $seekable && !\in_array($mode, ['r', 'rb', 'rt'])) { - $offset = ftell($inputStream); - rewind($inputStream); - stream_copy_to_stream($inputStream, $cloneStream); - fseek($inputStream, $offset); - fseek($cloneStream, $offset); - } - - return $cloneStream; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/projects/priceservice/vendor/symfony/console/Helper/SymfonyQuestionHelper.php deleted file mode 100644 index 8ebc843..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ChoiceQuestion; -use Symfony\Component\Console\Question\ConfirmationQuestion; -use Symfony\Component\Console\Question\Question; -use Symfony\Component\Console\Style\SymfonyStyle; - -/** - * Symfony Style Guide compliant question helper. - * - * @author Kevin Bond - */ -class SymfonyQuestionHelper extends QuestionHelper -{ - /** - * @return void - */ - protected function writePrompt(OutputInterface $output, Question $question) - { - $text = OutputFormatter::escapeTrailingBackslash($question->getQuestion()); - $default = $question->getDefault(); - - if ($question->isMultiline()) { - $text .= sprintf(' (press %s to continue)', $this->getEofShortcut()); - } - - switch (true) { - case null === $default: - $text = sprintf(' %s:', $text); - - break; - - case $question instanceof ConfirmationQuestion: - $text = sprintf(' %s (yes/no) [%s]:', $text, $default ? 'yes' : 'no'); - - break; - - case $question instanceof ChoiceQuestion && $question->isMultiselect(): - $choices = $question->getChoices(); - $default = explode(',', $default); - - foreach ($default as $key => $value) { - $default[$key] = $choices[trim($value)]; - } - - $text = sprintf(' %s [%s]:', $text, OutputFormatter::escape(implode(', ', $default))); - - break; - - case $question instanceof ChoiceQuestion: - $choices = $question->getChoices(); - $text = sprintf(' %s [%s]:', $text, OutputFormatter::escape($choices[$default] ?? $default)); - - break; - - default: - $text = sprintf(' %s [%s]:', $text, OutputFormatter::escape($default)); - } - - $output->writeln($text); - - $prompt = ' > '; - - if ($question instanceof ChoiceQuestion) { - $output->writeln($this->formatChoiceQuestionChoices($question, 'comment')); - - $prompt = $question->getPrompt(); - } - - $output->write($prompt); - } - - /** - * @return void - */ - protected function writeError(OutputInterface $output, \Exception $error) - { - if ($output instanceof SymfonyStyle) { - $output->newLine(); - $output->error($error->getMessage()); - - return; - } - - parent::writeError($output, $error); - } - - private function getEofShortcut(): string - { - if ('Windows' === \PHP_OS_FAMILY) { - return 'Ctrl+Z then Enter'; - } - - return 'Ctrl+D'; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/Table.php b/projects/priceservice/vendor/symfony/console/Helper/Table.php deleted file mode 100644 index 0ef771d..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/Table.php +++ /dev/null @@ -1,967 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; -use Symfony\Component\Console\Output\ConsoleSectionOutput; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Provides helpers to display a table. - * - * @author Fabien Potencier - * @author Саша Стаменковић - * @author Abdellatif Ait boudad - * @author Max Grigorian - * @author Dany Maillard - */ -class Table -{ - private const SEPARATOR_TOP = 0; - private const SEPARATOR_TOP_BOTTOM = 1; - private const SEPARATOR_MID = 2; - private const SEPARATOR_BOTTOM = 3; - private const BORDER_OUTSIDE = 0; - private const BORDER_INSIDE = 1; - private const DISPLAY_ORIENTATION_DEFAULT = 'default'; - private const DISPLAY_ORIENTATION_HORIZONTAL = 'horizontal'; - private const DISPLAY_ORIENTATION_VERTICAL = 'vertical'; - - private ?string $headerTitle = null; - private ?string $footerTitle = null; - private array $headers = []; - private array $rows = []; - private array $effectiveColumnWidths = []; - private int $numberOfColumns; - private OutputInterface $output; - private TableStyle $style; - private array $columnStyles = []; - private array $columnWidths = []; - private array $columnMaxWidths = []; - private bool $rendered = false; - private string $displayOrientation = self::DISPLAY_ORIENTATION_DEFAULT; - - private static array $styles; - - public function __construct(OutputInterface $output) - { - $this->output = $output; - - self::$styles ??= self::initStyles(); - - $this->setStyle('default'); - } - - /** - * Sets a style definition. - * - * @return void - */ - public static function setStyleDefinition(string $name, TableStyle $style) - { - self::$styles ??= self::initStyles(); - - self::$styles[$name] = $style; - } - - /** - * Gets a style definition by name. - */ - public static function getStyleDefinition(string $name): TableStyle - { - self::$styles ??= self::initStyles(); - - return self::$styles[$name] ?? throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name)); - } - - /** - * Sets table style. - * - * @return $this - */ - public function setStyle(TableStyle|string $name): static - { - $this->style = $this->resolveStyle($name); - - return $this; - } - - /** - * Gets the current table style. - */ - public function getStyle(): TableStyle - { - return $this->style; - } - - /** - * Sets table column style. - * - * @param TableStyle|string $name The style name or a TableStyle instance - * - * @return $this - */ - public function setColumnStyle(int $columnIndex, TableStyle|string $name): static - { - $this->columnStyles[$columnIndex] = $this->resolveStyle($name); - - return $this; - } - - /** - * Gets the current style for a column. - * - * If style was not set, it returns the global table style. - */ - public function getColumnStyle(int $columnIndex): TableStyle - { - return $this->columnStyles[$columnIndex] ?? $this->getStyle(); - } - - /** - * Sets the minimum width of a column. - * - * @return $this - */ - public function setColumnWidth(int $columnIndex, int $width): static - { - $this->columnWidths[$columnIndex] = $width; - - return $this; - } - - /** - * Sets the minimum width of all columns. - * - * @return $this - */ - public function setColumnWidths(array $widths): static - { - $this->columnWidths = []; - foreach ($widths as $index => $width) { - $this->setColumnWidth($index, $width); - } - - return $this; - } - - /** - * Sets the maximum width of a column. - * - * Any cell within this column which contents exceeds the specified width will be wrapped into multiple lines, while - * formatted strings are preserved. - * - * @return $this - */ - public function setColumnMaxWidth(int $columnIndex, int $width): static - { - if (!$this->output->getFormatter() instanceof WrappableOutputFormatterInterface) { - throw new \LogicException(sprintf('Setting a maximum column width is only supported when using a "%s" formatter, got "%s".', WrappableOutputFormatterInterface::class, get_debug_type($this->output->getFormatter()))); - } - - $this->columnMaxWidths[$columnIndex] = $width; - - return $this; - } - - /** - * @return $this - */ - public function setHeaders(array $headers): static - { - $headers = array_values($headers); - if ($headers && !\is_array($headers[0])) { - $headers = [$headers]; - } - - $this->headers = $headers; - - return $this; - } - - /** - * @return $this - */ - public function setRows(array $rows) - { - $this->rows = []; - - return $this->addRows($rows); - } - - /** - * @return $this - */ - public function addRows(array $rows): static - { - foreach ($rows as $row) { - $this->addRow($row); - } - - return $this; - } - - /** - * @return $this - */ - public function addRow(TableSeparator|array $row): static - { - if ($row instanceof TableSeparator) { - $this->rows[] = $row; - - return $this; - } - - $this->rows[] = array_values($row); - - return $this; - } - - /** - * Adds a row to the table, and re-renders the table. - * - * @return $this - */ - public function appendRow(TableSeparator|array $row): static - { - if (!$this->output instanceof ConsoleSectionOutput) { - throw new RuntimeException(sprintf('Output should be an instance of "%s" when calling "%s".', ConsoleSectionOutput::class, __METHOD__)); - } - - if ($this->rendered) { - $this->output->clear($this->calculateRowCount()); - } - - $this->addRow($row); - $this->render(); - - return $this; - } - - /** - * @return $this - */ - public function setRow(int|string $column, array $row): static - { - $this->rows[$column] = $row; - - return $this; - } - - /** - * @return $this - */ - public function setHeaderTitle(?string $title): static - { - $this->headerTitle = $title; - - return $this; - } - - /** - * @return $this - */ - public function setFooterTitle(?string $title): static - { - $this->footerTitle = $title; - - return $this; - } - - /** - * @return $this - */ - public function setHorizontal(bool $horizontal = true): static - { - $this->displayOrientation = $horizontal ? self::DISPLAY_ORIENTATION_HORIZONTAL : self::DISPLAY_ORIENTATION_DEFAULT; - - return $this; - } - - /** - * @return $this - */ - public function setVertical(bool $vertical = true): static - { - $this->displayOrientation = $vertical ? self::DISPLAY_ORIENTATION_VERTICAL : self::DISPLAY_ORIENTATION_DEFAULT; - - return $this; - } - - /** - * Renders table to output. - * - * Example: - * - * +---------------+-----------------------+------------------+ - * | ISBN | Title | Author | - * +---------------+-----------------------+------------------+ - * | 99921-58-10-7 | Divine Comedy | Dante Alighieri | - * | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | - * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien | - * +---------------+-----------------------+------------------+ - * - * @return void - */ - public function render() - { - $divider = new TableSeparator(); - $isCellWithColspan = static fn ($cell) => $cell instanceof TableCell && $cell->getColspan() >= 2; - - $horizontal = self::DISPLAY_ORIENTATION_HORIZONTAL === $this->displayOrientation; - $vertical = self::DISPLAY_ORIENTATION_VERTICAL === $this->displayOrientation; - - $rows = []; - if ($horizontal) { - foreach ($this->headers[0] ?? [] as $i => $header) { - $rows[$i] = [$header]; - foreach ($this->rows as $row) { - if ($row instanceof TableSeparator) { - continue; - } - if (isset($row[$i])) { - $rows[$i][] = $row[$i]; - } elseif ($isCellWithColspan($rows[$i][0])) { - // Noop, there is a "title" - } else { - $rows[$i][] = null; - } - } - } - } elseif ($vertical) { - $formatter = $this->output->getFormatter(); - $maxHeaderLength = array_reduce($this->headers[0] ?? [], static fn ($max, $header) => max($max, Helper::width(Helper::removeDecoration($formatter, $header))), 0); - - foreach ($this->rows as $row) { - if ($row instanceof TableSeparator) { - continue; - } - - if ($rows) { - $rows[] = [$divider]; - } - - $containsColspan = false; - foreach ($row as $cell) { - if ($containsColspan = $isCellWithColspan($cell)) { - break; - } - } - - $headers = $this->headers[0] ?? []; - $maxRows = max(\count($headers), \count($row)); - for ($i = 0; $i < $maxRows; ++$i) { - $cell = (string) ($row[$i] ?? ''); - - $eol = str_contains($cell, "\r\n") ? "\r\n" : "\n"; - $parts = explode($eol, $cell); - foreach ($parts as $idx => $part) { - if ($headers && !$containsColspan) { - if (0 === $idx) { - $rows[] = [sprintf( - '%s%s: %s', - str_repeat(' ', $maxHeaderLength - Helper::width(Helper::removeDecoration($formatter, $headers[$i] ?? ''))), - $headers[$i] ?? '', - $part - )]; - } else { - $rows[] = [sprintf( - '%s %s', - str_pad('', $maxHeaderLength, ' ', \STR_PAD_LEFT), - $part - )]; - } - } elseif ('' !== $cell) { - $rows[] = [$part]; - } - } - } - } - } else { - $rows = array_merge($this->headers, [$divider], $this->rows); - } - - $this->calculateNumberOfColumns($rows); - - $rowGroups = $this->buildTableRows($rows); - $this->calculateColumnsWidth($rowGroups); - - $isHeader = !$horizontal; - $isFirstRow = $horizontal; - $hasTitle = (bool) $this->headerTitle; - - foreach ($rowGroups as $rowGroup) { - $isHeaderSeparatorRendered = false; - - foreach ($rowGroup as $row) { - if ($divider === $row) { - $isHeader = false; - $isFirstRow = true; - - continue; - } - - if ($row instanceof TableSeparator) { - $this->renderRowSeparator(); - - continue; - } - - if (!$row) { - continue; - } - - if ($isHeader && !$isHeaderSeparatorRendered) { - $this->renderRowSeparator( - self::SEPARATOR_TOP, - $hasTitle ? $this->headerTitle : null, - $hasTitle ? $this->style->getHeaderTitleFormat() : null - ); - $hasTitle = false; - $isHeaderSeparatorRendered = true; - } - - if ($isFirstRow) { - $this->renderRowSeparator( - $horizontal ? self::SEPARATOR_TOP : self::SEPARATOR_TOP_BOTTOM, - $hasTitle ? $this->headerTitle : null, - $hasTitle ? $this->style->getHeaderTitleFormat() : null - ); - $isFirstRow = false; - $hasTitle = false; - } - - if ($vertical) { - $isHeader = false; - $isFirstRow = false; - } - - if ($horizontal) { - $this->renderRow($row, $this->style->getCellRowFormat(), $this->style->getCellHeaderFormat()); - } else { - $this->renderRow($row, $isHeader ? $this->style->getCellHeaderFormat() : $this->style->getCellRowFormat()); - } - } - } - $this->renderRowSeparator(self::SEPARATOR_BOTTOM, $this->footerTitle, $this->style->getFooterTitleFormat()); - - $this->cleanup(); - $this->rendered = true; - } - - /** - * Renders horizontal header separator. - * - * Example: - * - * +-----+-----------+-------+ - */ - private function renderRowSeparator(int $type = self::SEPARATOR_MID, ?string $title = null, ?string $titleFormat = null): void - { - if (!$count = $this->numberOfColumns) { - return; - } - - $borders = $this->style->getBorderChars(); - if (!$borders[0] && !$borders[2] && !$this->style->getCrossingChar()) { - return; - } - - $crossings = $this->style->getCrossingChars(); - if (self::SEPARATOR_MID === $type) { - [$horizontal, $leftChar, $midChar, $rightChar] = [$borders[2], $crossings[8], $crossings[0], $crossings[4]]; - } elseif (self::SEPARATOR_TOP === $type) { - [$horizontal, $leftChar, $midChar, $rightChar] = [$borders[0], $crossings[1], $crossings[2], $crossings[3]]; - } elseif (self::SEPARATOR_TOP_BOTTOM === $type) { - [$horizontal, $leftChar, $midChar, $rightChar] = [$borders[0], $crossings[9], $crossings[10], $crossings[11]]; - } else { - [$horizontal, $leftChar, $midChar, $rightChar] = [$borders[0], $crossings[7], $crossings[6], $crossings[5]]; - } - - $markup = $leftChar; - for ($column = 0; $column < $count; ++$column) { - $markup .= str_repeat($horizontal, $this->effectiveColumnWidths[$column]); - $markup .= $column === $count - 1 ? $rightChar : $midChar; - } - - if (null !== $title) { - $titleLength = Helper::width(Helper::removeDecoration($formatter = $this->output->getFormatter(), $formattedTitle = sprintf($titleFormat, $title))); - $markupLength = Helper::width($markup); - if ($titleLength > $limit = $markupLength - 4) { - $titleLength = $limit; - $formatLength = Helper::width(Helper::removeDecoration($formatter, sprintf($titleFormat, ''))); - $formattedTitle = sprintf($titleFormat, Helper::substr($title, 0, $limit - $formatLength - 3).'...'); - } - - $titleStart = intdiv($markupLength - $titleLength, 2); - if (false === mb_detect_encoding($markup, null, true)) { - $markup = substr_replace($markup, $formattedTitle, $titleStart, $titleLength); - } else { - $markup = mb_substr($markup, 0, $titleStart).$formattedTitle.mb_substr($markup, $titleStart + $titleLength); - } - } - - $this->output->writeln(sprintf($this->style->getBorderFormat(), $markup)); - } - - /** - * Renders vertical column separator. - */ - private function renderColumnSeparator(int $type = self::BORDER_OUTSIDE): string - { - $borders = $this->style->getBorderChars(); - - return sprintf($this->style->getBorderFormat(), self::BORDER_OUTSIDE === $type ? $borders[1] : $borders[3]); - } - - /** - * Renders table row. - * - * Example: - * - * | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | - */ - private function renderRow(array $row, string $cellFormat, ?string $firstCellFormat = null): void - { - $rowContent = $this->renderColumnSeparator(self::BORDER_OUTSIDE); - $columns = $this->getRowColumns($row); - $last = \count($columns) - 1; - foreach ($columns as $i => $column) { - if ($firstCellFormat && 0 === $i) { - $rowContent .= $this->renderCell($row, $column, $firstCellFormat); - } else { - $rowContent .= $this->renderCell($row, $column, $cellFormat); - } - $rowContent .= $this->renderColumnSeparator($last === $i ? self::BORDER_OUTSIDE : self::BORDER_INSIDE); - } - $this->output->writeln($rowContent); - } - - /** - * Renders table cell with padding. - */ - private function renderCell(array $row, int $column, string $cellFormat): string - { - $cell = $row[$column] ?? ''; - $width = $this->effectiveColumnWidths[$column]; - if ($cell instanceof TableCell && $cell->getColspan() > 1) { - // add the width of the following columns(numbers of colspan). - foreach (range($column + 1, $column + $cell->getColspan() - 1) as $nextColumn) { - $width += $this->getColumnSeparatorWidth() + $this->effectiveColumnWidths[$nextColumn]; - } - } - - // str_pad won't work properly with multi-byte strings, we need to fix the padding - $width += \strlen($cell) - Helper::width($cell) - substr_count($cell, "\0"); - $style = $this->getColumnStyle($column); - - if ($cell instanceof TableSeparator) { - return sprintf($style->getBorderFormat(), str_repeat($style->getBorderChars()[2], $width)); - } - - $width += Helper::length($cell) - Helper::length(Helper::removeDecoration($this->output->getFormatter(), $cell)); - $content = sprintf($style->getCellRowContentFormat(), $cell); - - $padType = $style->getPadType(); - if ($cell instanceof TableCell && $cell->getStyle() instanceof TableCellStyle) { - $isNotStyledByTag = !preg_match('/^<(\w+|(\w+=[\w,]+;?)*)>.+<\/(\w+|(\w+=\w+;?)*)?>$/', $cell); - if ($isNotStyledByTag) { - $cellFormat = $cell->getStyle()->getCellFormat(); - if (!\is_string($cellFormat)) { - $tag = http_build_query($cell->getStyle()->getTagOptions(), '', ';'); - $cellFormat = '<'.$tag.'>%s'; - } - - if (str_contains($content, '')) { - $content = str_replace('', '', $content); - $width -= 3; - } - if (str_contains($content, '')) { - $content = str_replace('', '', $content); - $width -= \strlen(''); - } - } - - $padType = $cell->getStyle()->getPadByAlign(); - } - - return sprintf($cellFormat, str_pad($content, $width, $style->getPaddingChar(), $padType)); - } - - /** - * Calculate number of columns for this table. - */ - private function calculateNumberOfColumns(array $rows): void - { - $columns = [0]; - foreach ($rows as $row) { - if ($row instanceof TableSeparator) { - continue; - } - - $columns[] = $this->getNumberOfColumns($row); - } - - $this->numberOfColumns = max($columns); - } - - private function buildTableRows(array $rows): TableRows - { - /** @var WrappableOutputFormatterInterface $formatter */ - $formatter = $this->output->getFormatter(); - $unmergedRows = []; - for ($rowKey = 0; $rowKey < \count($rows); ++$rowKey) { - $rows = $this->fillNextRows($rows, $rowKey); - - // Remove any new line breaks and replace it with a new line - foreach ($rows[$rowKey] as $column => $cell) { - $colspan = $cell instanceof TableCell ? $cell->getColspan() : 1; - - $minWrappedWidth = 0; - $widthApplied = []; - $lengthColumnBorder = $this->getColumnSeparatorWidth() + Helper::width($this->style->getCellRowContentFormat()) - 2; - for ($i = $column; $i < ($column + $colspan); ++$i) { - if (isset($this->columnMaxWidths[$i])) { - $minWrappedWidth += $this->columnMaxWidths[$i]; - $widthApplied[] = ['type' => 'max', 'column' => $i]; - } elseif (($this->columnWidths[$i] ?? 0) > 0 && $colspan > 1) { - $minWrappedWidth += $this->columnWidths[$i]; - $widthApplied[] = ['type' => 'min', 'column' => $i]; - } - } - if (1 === \count($widthApplied)) { - if ($colspan > 1) { - $minWrappedWidth *= $colspan; // previous logic - } - } elseif (\count($widthApplied) > 1) { - $minWrappedWidth += (\count($widthApplied) - 1) * $lengthColumnBorder; - } - - $cellWidth = Helper::width(Helper::removeDecoration($formatter, $cell)); - if ($minWrappedWidth && $cellWidth > $minWrappedWidth) { - $cell = $formatter->formatAndWrap($cell, $minWrappedWidth); - } - // update minimal columnWidths for spanned columns - if ($colspan > 1 && $minWrappedWidth > 0) { - $columnsMinWidthProcessed = []; - $cellWidth = min($cellWidth, $minWrappedWidth); - foreach ($widthApplied as $item) { - if ('max' === $item['type'] && $cellWidth >= $this->columnMaxWidths[$item['column']]) { - $minWidthColumn = $this->columnMaxWidths[$item['column']]; - $this->columnWidths[$item['column']] = $minWidthColumn; - $columnsMinWidthProcessed[$item['column']] = true; - $cellWidth -= $minWidthColumn + $lengthColumnBorder; - } - } - for ($i = $column; $i < ($column + $colspan); ++$i) { - if (isset($columnsMinWidthProcessed[$i])) { - continue; - } - $this->columnWidths[$i] = $cellWidth + $lengthColumnBorder; - } - } - if (!str_contains($cell ?? '', "\n")) { - continue; - } - $eol = str_contains($cell ?? '', "\r\n") ? "\r\n" : "\n"; - $escaped = implode($eol, array_map(OutputFormatter::escapeTrailingBackslash(...), explode($eol, $cell))); - $cell = $cell instanceof TableCell ? new TableCell($escaped, ['colspan' => $cell->getColspan()]) : $escaped; - $lines = explode($eol, str_replace($eol, ''.$eol, $cell)); - foreach ($lines as $lineKey => $line) { - if ($colspan > 1) { - $line = new TableCell($line, ['colspan' => $colspan]); - } - if (0 === $lineKey) { - $rows[$rowKey][$column] = $line; - } else { - if (!\array_key_exists($rowKey, $unmergedRows) || !\array_key_exists($lineKey, $unmergedRows[$rowKey])) { - $unmergedRows[$rowKey][$lineKey] = $this->copyRow($rows, $rowKey); - } - $unmergedRows[$rowKey][$lineKey][$column] = $line; - } - } - } - } - - return new TableRows(function () use ($rows, $unmergedRows): \Traversable { - foreach ($rows as $rowKey => $row) { - $rowGroup = [$row instanceof TableSeparator ? $row : $this->fillCells($row)]; - - if (isset($unmergedRows[$rowKey])) { - foreach ($unmergedRows[$rowKey] as $row) { - $rowGroup[] = $row instanceof TableSeparator ? $row : $this->fillCells($row); - } - } - yield $rowGroup; - } - }); - } - - private function calculateRowCount(): int - { - $numberOfRows = \count(iterator_to_array($this->buildTableRows(array_merge($this->headers, [new TableSeparator()], $this->rows)))); - - if ($this->headers) { - ++$numberOfRows; // Add row for header separator - } - - if ($this->rows) { - ++$numberOfRows; // Add row for footer separator - } - - return $numberOfRows; - } - - /** - * fill rows that contains rowspan > 1. - * - * @throws InvalidArgumentException - */ - private function fillNextRows(array $rows, int $line): array - { - $unmergedRows = []; - foreach ($rows[$line] as $column => $cell) { - if (null !== $cell && !$cell instanceof TableCell && !\is_scalar($cell) && !$cell instanceof \Stringable) { - throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', get_debug_type($cell))); - } - if ($cell instanceof TableCell && $cell->getRowspan() > 1) { - $nbLines = $cell->getRowspan() - 1; - $lines = [$cell]; - if (str_contains($cell, "\n")) { - $eol = str_contains($cell, "\r\n") ? "\r\n" : "\n"; - $lines = explode($eol, str_replace($eol, ''.$eol.'', $cell)); - $nbLines = \count($lines) > $nbLines ? substr_count($cell, $eol) : $nbLines; - - $rows[$line][$column] = new TableCell($lines[0], ['colspan' => $cell->getColspan(), 'style' => $cell->getStyle()]); - unset($lines[0]); - } - - // create a two dimensional array (rowspan x colspan) - $unmergedRows = array_replace_recursive(array_fill($line + 1, $nbLines, []), $unmergedRows); - foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) { - $value = $lines[$unmergedRowKey - $line] ?? ''; - $unmergedRows[$unmergedRowKey][$column] = new TableCell($value, ['colspan' => $cell->getColspan(), 'style' => $cell->getStyle()]); - if ($nbLines === $unmergedRowKey - $line) { - break; - } - } - } - } - - foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) { - // we need to know if $unmergedRow will be merged or inserted into $rows - if (isset($rows[$unmergedRowKey]) && \is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) { - foreach ($unmergedRow as $cellKey => $cell) { - // insert cell into row at cellKey position - array_splice($rows[$unmergedRowKey], $cellKey, 0, [$cell]); - } - } else { - $row = $this->copyRow($rows, $unmergedRowKey - 1); - foreach ($unmergedRow as $column => $cell) { - if (!empty($cell)) { - $row[$column] = $unmergedRow[$column]; - } - } - array_splice($rows, $unmergedRowKey, 0, [$row]); - } - } - - return $rows; - } - - /** - * fill cells for a row that contains colspan > 1. - */ - private function fillCells(iterable $row): iterable - { - $newRow = []; - - foreach ($row as $column => $cell) { - $newRow[] = $cell; - if ($cell instanceof TableCell && $cell->getColspan() > 1) { - foreach (range($column + 1, $column + $cell->getColspan() - 1) as $position) { - // insert empty value at column position - $newRow[] = ''; - } - } - } - - return $newRow ?: $row; - } - - private function copyRow(array $rows, int $line): array - { - $row = $rows[$line]; - foreach ($row as $cellKey => $cellValue) { - $row[$cellKey] = ''; - if ($cellValue instanceof TableCell) { - $row[$cellKey] = new TableCell('', ['colspan' => $cellValue->getColspan()]); - } - } - - return $row; - } - - /** - * Gets number of columns by row. - */ - private function getNumberOfColumns(array $row): int - { - $columns = \count($row); - foreach ($row as $column) { - $columns += $column instanceof TableCell ? ($column->getColspan() - 1) : 0; - } - - return $columns; - } - - /** - * Gets list of columns for the given row. - */ - private function getRowColumns(array $row): array - { - $columns = range(0, $this->numberOfColumns - 1); - foreach ($row as $cellKey => $cell) { - if ($cell instanceof TableCell && $cell->getColspan() > 1) { - // exclude grouped columns. - $columns = array_diff($columns, range($cellKey + 1, $cellKey + $cell->getColspan() - 1)); - } - } - - return $columns; - } - - /** - * Calculates columns widths. - */ - private function calculateColumnsWidth(iterable $groups): void - { - for ($column = 0; $column < $this->numberOfColumns; ++$column) { - $lengths = []; - foreach ($groups as $group) { - foreach ($group as $row) { - if ($row instanceof TableSeparator) { - continue; - } - - foreach ($row as $i => $cell) { - if ($cell instanceof TableCell) { - $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell); - $textLength = Helper::width($textContent); - if ($textLength > 0) { - $contentColumns = mb_str_split($textContent, ceil($textLength / $cell->getColspan())); - foreach ($contentColumns as $position => $content) { - $row[$i + $position] = $content; - } - } - } - } - - $lengths[] = $this->getCellWidth($row, $column); - } - } - - $this->effectiveColumnWidths[$column] = max($lengths) + Helper::width($this->style->getCellRowContentFormat()) - 2; - } - } - - private function getColumnSeparatorWidth(): int - { - return Helper::width(sprintf($this->style->getBorderFormat(), $this->style->getBorderChars()[3])); - } - - private function getCellWidth(array $row, int $column): int - { - $cellWidth = 0; - - if (isset($row[$column])) { - $cell = $row[$column]; - $cellWidth = Helper::width(Helper::removeDecoration($this->output->getFormatter(), $cell)); - } - - $columnWidth = $this->columnWidths[$column] ?? 0; - $cellWidth = max($cellWidth, $columnWidth); - - return isset($this->columnMaxWidths[$column]) ? min($this->columnMaxWidths[$column], $cellWidth) : $cellWidth; - } - - /** - * Called after rendering to cleanup cache data. - */ - private function cleanup(): void - { - $this->effectiveColumnWidths = []; - unset($this->numberOfColumns); - } - - /** - * @return array - */ - private static function initStyles(): array - { - $borderless = new TableStyle(); - $borderless - ->setHorizontalBorderChars('=') - ->setVerticalBorderChars(' ') - ->setDefaultCrossingChar(' ') - ; - - $compact = new TableStyle(); - $compact - ->setHorizontalBorderChars('') - ->setVerticalBorderChars('') - ->setDefaultCrossingChar('') - ->setCellRowContentFormat('%s ') - ; - - $styleGuide = new TableStyle(); - $styleGuide - ->setHorizontalBorderChars('-') - ->setVerticalBorderChars(' ') - ->setDefaultCrossingChar(' ') - ->setCellHeaderFormat('%s') - ; - - $box = (new TableStyle()) - ->setHorizontalBorderChars('─') - ->setVerticalBorderChars('│') - ->setCrossingChars('┼', '┌', '┬', '┐', '┤', '┘', '┴', '└', '├') - ; - - $boxDouble = (new TableStyle()) - ->setHorizontalBorderChars('═', '─') - ->setVerticalBorderChars('║', '│') - ->setCrossingChars('┼', '╔', '╤', '╗', '╢', '╝', '╧', '╚', '╟', '╠', '╪', '╣') - ; - - return [ - 'default' => new TableStyle(), - 'borderless' => $borderless, - 'compact' => $compact, - 'symfony-style-guide' => $styleGuide, - 'box' => $box, - 'box-double' => $boxDouble, - ]; - } - - private function resolveStyle(TableStyle|string $name): TableStyle - { - if ($name instanceof TableStyle) { - return $name; - } - - return self::$styles[$name] ?? throw new InvalidArgumentException(sprintf('Style "%s" is not defined.', $name)); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/TableCell.php b/projects/priceservice/vendor/symfony/console/Helper/TableCell.php deleted file mode 100644 index 394b2bc..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/TableCell.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * @author Abdellatif Ait boudad - */ -class TableCell -{ - private string $value; - private array $options = [ - 'rowspan' => 1, - 'colspan' => 1, - 'style' => null, - ]; - - public function __construct(string $value = '', array $options = []) - { - $this->value = $value; - - // check option names - if ($diff = array_diff(array_keys($options), array_keys($this->options))) { - throw new InvalidArgumentException(sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff))); - } - - if (isset($options['style']) && !$options['style'] instanceof TableCellStyle) { - throw new InvalidArgumentException('The style option must be an instance of "TableCellStyle".'); - } - - $this->options = array_merge($this->options, $options); - } - - /** - * Returns the cell value. - */ - public function __toString(): string - { - return $this->value; - } - - /** - * Gets number of colspan. - */ - public function getColspan(): int - { - return (int) $this->options['colspan']; - } - - /** - * Gets number of rowspan. - */ - public function getRowspan(): int - { - return (int) $this->options['rowspan']; - } - - public function getStyle(): ?TableCellStyle - { - return $this->options['style']; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/TableCellStyle.php b/projects/priceservice/vendor/symfony/console/Helper/TableCellStyle.php deleted file mode 100644 index 9419dcb..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/TableCellStyle.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * @author Yewhen Khoptynskyi - */ -class TableCellStyle -{ - public const DEFAULT_ALIGN = 'left'; - - private const TAG_OPTIONS = [ - 'fg', - 'bg', - 'options', - ]; - - private const ALIGN_MAP = [ - 'left' => \STR_PAD_RIGHT, - 'center' => \STR_PAD_BOTH, - 'right' => \STR_PAD_LEFT, - ]; - - private array $options = [ - 'fg' => 'default', - 'bg' => 'default', - 'options' => null, - 'align' => self::DEFAULT_ALIGN, - 'cellFormat' => null, - ]; - - public function __construct(array $options = []) - { - if ($diff = array_diff(array_keys($options), array_keys($this->options))) { - throw new InvalidArgumentException(sprintf('The TableCellStyle does not support the following options: \'%s\'.', implode('\', \'', $diff))); - } - - if (isset($options['align']) && !\array_key_exists($options['align'], self::ALIGN_MAP)) { - throw new InvalidArgumentException(sprintf('Wrong align value. Value must be following: \'%s\'.', implode('\', \'', array_keys(self::ALIGN_MAP)))); - } - - $this->options = array_merge($this->options, $options); - } - - public function getOptions(): array - { - return $this->options; - } - - /** - * Gets options we need for tag for example fg, bg. - * - * @return string[] - */ - public function getTagOptions(): array - { - return array_filter( - $this->getOptions(), - fn ($key) => \in_array($key, self::TAG_OPTIONS) && isset($this->options[$key]), - \ARRAY_FILTER_USE_KEY - ); - } - - public function getPadByAlign(): int - { - return self::ALIGN_MAP[$this->getOptions()['align']]; - } - - public function getCellFormat(): ?string - { - return $this->getOptions()['cellFormat']; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/TableRows.php b/projects/priceservice/vendor/symfony/console/Helper/TableRows.php deleted file mode 100644 index 97d0772..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/TableRows.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -/** - * @internal - */ -class TableRows implements \IteratorAggregate -{ - private \Closure $generator; - - public function __construct(\Closure $generator) - { - $this->generator = $generator; - } - - public function getIterator(): \Traversable - { - return ($this->generator)(); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/TableSeparator.php b/projects/priceservice/vendor/symfony/console/Helper/TableSeparator.php deleted file mode 100644 index e541c53..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/TableSeparator.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -/** - * Marks a row as being a separator. - * - * @author Fabien Potencier - */ -class TableSeparator extends TableCell -{ - public function __construct(array $options = []) - { - parent::__construct('', $options); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Helper/TableStyle.php b/projects/priceservice/vendor/symfony/console/Helper/TableStyle.php deleted file mode 100644 index be956c1..0000000 --- a/projects/priceservice/vendor/symfony/console/Helper/TableStyle.php +++ /dev/null @@ -1,362 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Helper; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; - -/** - * Defines the styles for a Table. - * - * @author Fabien Potencier - * @author Саша Стаменковић - * @author Dany Maillard - */ -class TableStyle -{ - private string $paddingChar = ' '; - private string $horizontalOutsideBorderChar = '-'; - private string $horizontalInsideBorderChar = '-'; - private string $verticalOutsideBorderChar = '|'; - private string $verticalInsideBorderChar = '|'; - private string $crossingChar = '+'; - private string $crossingTopRightChar = '+'; - private string $crossingTopMidChar = '+'; - private string $crossingTopLeftChar = '+'; - private string $crossingMidRightChar = '+'; - private string $crossingBottomRightChar = '+'; - private string $crossingBottomMidChar = '+'; - private string $crossingBottomLeftChar = '+'; - private string $crossingMidLeftChar = '+'; - private string $crossingTopLeftBottomChar = '+'; - private string $crossingTopMidBottomChar = '+'; - private string $crossingTopRightBottomChar = '+'; - private string $headerTitleFormat = ' %s '; - private string $footerTitleFormat = ' %s '; - private string $cellHeaderFormat = '%s'; - private string $cellRowFormat = '%s'; - private string $cellRowContentFormat = ' %s '; - private string $borderFormat = '%s'; - private int $padType = \STR_PAD_RIGHT; - - /** - * Sets padding character, used for cell padding. - * - * @return $this - */ - public function setPaddingChar(string $paddingChar): static - { - if (!$paddingChar) { - throw new LogicException('The padding char must not be empty.'); - } - - $this->paddingChar = $paddingChar; - - return $this; - } - - /** - * Gets padding character, used for cell padding. - */ - public function getPaddingChar(): string - { - return $this->paddingChar; - } - - /** - * Sets horizontal border characters. - * - * - * ╔═══════════════╤══════════════════════════╤══════════════════╗ - * 1 ISBN 2 Title │ Author ║ - * ╠═══════════════╪══════════════════════════╪══════════════════╣ - * ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║ - * ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║ - * ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║ - * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║ - * ╚═══════════════╧══════════════════════════╧══════════════════╝ - * - * - * @return $this - */ - public function setHorizontalBorderChars(string $outside, ?string $inside = null): static - { - $this->horizontalOutsideBorderChar = $outside; - $this->horizontalInsideBorderChar = $inside ?? $outside; - - return $this; - } - - /** - * Sets vertical border characters. - * - * - * ╔═══════════════╤══════════════════════════╤══════════════════╗ - * ║ ISBN │ Title │ Author ║ - * ╠═══════1═══════╪══════════════════════════╪══════════════════╣ - * ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║ - * ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║ - * ╟───────2───────┼──────────────────────────┼──────────────────╢ - * ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║ - * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║ - * ╚═══════════════╧══════════════════════════╧══════════════════╝ - * - * - * @return $this - */ - public function setVerticalBorderChars(string $outside, ?string $inside = null): static - { - $this->verticalOutsideBorderChar = $outside; - $this->verticalInsideBorderChar = $inside ?? $outside; - - return $this; - } - - /** - * Gets border characters. - * - * @internal - */ - public function getBorderChars(): array - { - return [ - $this->horizontalOutsideBorderChar, - $this->verticalOutsideBorderChar, - $this->horizontalInsideBorderChar, - $this->verticalInsideBorderChar, - ]; - } - - /** - * Sets crossing characters. - * - * Example: - * - * 1═══════════════2══════════════════════════2══════════════════3 - * ║ ISBN │ Title │ Author ║ - * 8'══════════════0'═════════════════════════0'═════════════════4' - * ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║ - * ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║ - * 8───────────────0──────────────────────────0──────────────────4 - * ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║ - * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║ - * 7═══════════════6══════════════════════════6══════════════════5 - * - * - * @param string $cross Crossing char (see #0 of example) - * @param string $topLeft Top left char (see #1 of example) - * @param string $topMid Top mid char (see #2 of example) - * @param string $topRight Top right char (see #3 of example) - * @param string $midRight Mid right char (see #4 of example) - * @param string $bottomRight Bottom right char (see #5 of example) - * @param string $bottomMid Bottom mid char (see #6 of example) - * @param string $bottomLeft Bottom left char (see #7 of example) - * @param string $midLeft Mid left char (see #8 of example) - * @param string|null $topLeftBottom Top left bottom char (see #8' of example), equals to $midLeft if null - * @param string|null $topMidBottom Top mid bottom char (see #0' of example), equals to $cross if null - * @param string|null $topRightBottom Top right bottom char (see #4' of example), equals to $midRight if null - * - * @return $this - */ - public function setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, ?string $topLeftBottom = null, ?string $topMidBottom = null, ?string $topRightBottom = null): static - { - $this->crossingChar = $cross; - $this->crossingTopLeftChar = $topLeft; - $this->crossingTopMidChar = $topMid; - $this->crossingTopRightChar = $topRight; - $this->crossingMidRightChar = $midRight; - $this->crossingBottomRightChar = $bottomRight; - $this->crossingBottomMidChar = $bottomMid; - $this->crossingBottomLeftChar = $bottomLeft; - $this->crossingMidLeftChar = $midLeft; - $this->crossingTopLeftBottomChar = $topLeftBottom ?? $midLeft; - $this->crossingTopMidBottomChar = $topMidBottom ?? $cross; - $this->crossingTopRightBottomChar = $topRightBottom ?? $midRight; - - return $this; - } - - /** - * Sets default crossing character used for each cross. - * - * @see {@link setCrossingChars()} for setting each crossing individually. - */ - public function setDefaultCrossingChar(string $char): self - { - return $this->setCrossingChars($char, $char, $char, $char, $char, $char, $char, $char, $char); - } - - /** - * Gets crossing character. - */ - public function getCrossingChar(): string - { - return $this->crossingChar; - } - - /** - * Gets crossing characters. - * - * @internal - */ - public function getCrossingChars(): array - { - return [ - $this->crossingChar, - $this->crossingTopLeftChar, - $this->crossingTopMidChar, - $this->crossingTopRightChar, - $this->crossingMidRightChar, - $this->crossingBottomRightChar, - $this->crossingBottomMidChar, - $this->crossingBottomLeftChar, - $this->crossingMidLeftChar, - $this->crossingTopLeftBottomChar, - $this->crossingTopMidBottomChar, - $this->crossingTopRightBottomChar, - ]; - } - - /** - * Sets header cell format. - * - * @return $this - */ - public function setCellHeaderFormat(string $cellHeaderFormat): static - { - $this->cellHeaderFormat = $cellHeaderFormat; - - return $this; - } - - /** - * Gets header cell format. - */ - public function getCellHeaderFormat(): string - { - return $this->cellHeaderFormat; - } - - /** - * Sets row cell format. - * - * @return $this - */ - public function setCellRowFormat(string $cellRowFormat): static - { - $this->cellRowFormat = $cellRowFormat; - - return $this; - } - - /** - * Gets row cell format. - */ - public function getCellRowFormat(): string - { - return $this->cellRowFormat; - } - - /** - * Sets row cell content format. - * - * @return $this - */ - public function setCellRowContentFormat(string $cellRowContentFormat): static - { - $this->cellRowContentFormat = $cellRowContentFormat; - - return $this; - } - - /** - * Gets row cell content format. - */ - public function getCellRowContentFormat(): string - { - return $this->cellRowContentFormat; - } - - /** - * Sets table border format. - * - * @return $this - */ - public function setBorderFormat(string $borderFormat): static - { - $this->borderFormat = $borderFormat; - - return $this; - } - - /** - * Gets table border format. - */ - public function getBorderFormat(): string - { - return $this->borderFormat; - } - - /** - * Sets cell padding type. - * - * @return $this - */ - public function setPadType(int $padType): static - { - if (!\in_array($padType, [\STR_PAD_LEFT, \STR_PAD_RIGHT, \STR_PAD_BOTH], true)) { - throw new InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).'); - } - - $this->padType = $padType; - - return $this; - } - - /** - * Gets cell padding type. - */ - public function getPadType(): int - { - return $this->padType; - } - - public function getHeaderTitleFormat(): string - { - return $this->headerTitleFormat; - } - - /** - * @return $this - */ - public function setHeaderTitleFormat(string $format): static - { - $this->headerTitleFormat = $format; - - return $this; - } - - public function getFooterTitleFormat(): string - { - return $this->footerTitleFormat; - } - - /** - * @return $this - */ - public function setFooterTitleFormat(string $format): static - { - $this->footerTitleFormat = $format; - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/ArgvInput.php b/projects/priceservice/vendor/symfony/console/Input/ArgvInput.php deleted file mode 100644 index ab9f28c..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/ArgvInput.php +++ /dev/null @@ -1,370 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\RuntimeException; - -/** - * ArgvInput represents an input coming from the CLI arguments. - * - * Usage: - * - * $input = new ArgvInput(); - * - * By default, the `$_SERVER['argv']` array is used for the input values. - * - * This can be overridden by explicitly passing the input values in the constructor: - * - * $input = new ArgvInput($_SERVER['argv']); - * - * If you pass it yourself, don't forget that the first element of the array - * is the name of the running application. - * - * When passing an argument to the constructor, be sure that it respects - * the same rules as the argv one. It's almost always better to use the - * `StringInput` when you want to provide your own input. - * - * @author Fabien Potencier - * - * @see http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html - * @see http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02 - */ -class ArgvInput extends Input -{ - private array $tokens; - private array $parsed; - - public function __construct(?array $argv = null, ?InputDefinition $definition = null) - { - $argv ??= $_SERVER['argv'] ?? []; - - // strip the application name - array_shift($argv); - - $this->tokens = $argv; - - parent::__construct($definition); - } - - /** - * @return void - */ - protected function setTokens(array $tokens) - { - $this->tokens = $tokens; - } - - /** - * @return void - */ - protected function parse() - { - $parseOptions = true; - $this->parsed = $this->tokens; - while (null !== $token = array_shift($this->parsed)) { - $parseOptions = $this->parseToken($token, $parseOptions); - } - } - - protected function parseToken(string $token, bool $parseOptions): bool - { - if ($parseOptions && '' == $token) { - $this->parseArgument($token); - } elseif ($parseOptions && '--' == $token) { - return false; - } elseif ($parseOptions && str_starts_with($token, '--')) { - $this->parseLongOption($token); - } elseif ($parseOptions && '-' === $token[0] && '-' !== $token) { - $this->parseShortOption($token); - } else { - $this->parseArgument($token); - } - - return $parseOptions; - } - - /** - * Parses a short option. - */ - private function parseShortOption(string $token): void - { - $name = substr($token, 1); - - if (\strlen($name) > 1) { - if ($this->definition->hasShortcut($name[0]) && $this->definition->getOptionForShortcut($name[0])->acceptValue()) { - // an option with a value (with no space) - $this->addShortOption($name[0], substr($name, 1)); - } else { - $this->parseShortOptionSet($name); - } - } else { - $this->addShortOption($name, null); - } - } - - /** - * Parses a short option set. - * - * @throws RuntimeException When option given doesn't exist - */ - private function parseShortOptionSet(string $name): void - { - $len = \strlen($name); - for ($i = 0; $i < $len; ++$i) { - if (!$this->definition->hasShortcut($name[$i])) { - $encoding = mb_detect_encoding($name, null, true); - throw new RuntimeException(sprintf('The "-%s" option does not exist.', false === $encoding ? $name[$i] : mb_substr($name, $i, 1, $encoding))); - } - - $option = $this->definition->getOptionForShortcut($name[$i]); - if ($option->acceptValue()) { - $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1)); - - break; - } else { - $this->addLongOption($option->getName(), null); - } - } - } - - /** - * Parses a long option. - */ - private function parseLongOption(string $token): void - { - $name = substr($token, 2); - - if (false !== $pos = strpos($name, '=')) { - if ('' === $value = substr($name, $pos + 1)) { - array_unshift($this->parsed, $value); - } - $this->addLongOption(substr($name, 0, $pos), $value); - } else { - $this->addLongOption($name, null); - } - } - - /** - * Parses an argument. - * - * @throws RuntimeException When too many arguments are given - */ - private function parseArgument(string $token): void - { - $c = \count($this->arguments); - - // if input is expecting another argument, add it - if ($this->definition->hasArgument($c)) { - $arg = $this->definition->getArgument($c); - $this->arguments[$arg->getName()] = $arg->isArray() ? [$token] : $token; - - // if last argument isArray(), append token to last argument - } elseif ($this->definition->hasArgument($c - 1) && $this->definition->getArgument($c - 1)->isArray()) { - $arg = $this->definition->getArgument($c - 1); - $this->arguments[$arg->getName()][] = $token; - - // unexpected argument - } else { - $all = $this->definition->getArguments(); - $symfonyCommandName = null; - if (($inputArgument = $all[$key = array_key_first($all)] ?? null) && 'command' === $inputArgument->getName()) { - $symfonyCommandName = $this->arguments['command'] ?? null; - unset($all[$key]); - } - - if (\count($all)) { - if ($symfonyCommandName) { - $message = sprintf('Too many arguments to "%s" command, expected arguments "%s".', $symfonyCommandName, implode('" "', array_keys($all))); - } else { - $message = sprintf('Too many arguments, expected arguments "%s".', implode('" "', array_keys($all))); - } - } elseif ($symfonyCommandName) { - $message = sprintf('No arguments expected for "%s" command, got "%s".', $symfonyCommandName, $token); - } else { - $message = sprintf('No arguments expected, got "%s".', $token); - } - - throw new RuntimeException($message); - } - } - - /** - * Adds a short option value. - * - * @throws RuntimeException When option given doesn't exist - */ - private function addShortOption(string $shortcut, mixed $value): void - { - if (!$this->definition->hasShortcut($shortcut)) { - throw new RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut)); - } - - $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value); - } - - /** - * Adds a long option value. - * - * @throws RuntimeException When option given doesn't exist - */ - private function addLongOption(string $name, mixed $value): void - { - if (!$this->definition->hasOption($name)) { - if (!$this->definition->hasNegation($name)) { - throw new RuntimeException(sprintf('The "--%s" option does not exist.', $name)); - } - - $optionName = $this->definition->negationToName($name); - if (null !== $value) { - throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name)); - } - $this->options[$optionName] = false; - - return; - } - - $option = $this->definition->getOption($name); - - if (null !== $value && !$option->acceptValue()) { - throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name)); - } - - if (\in_array($value, ['', null], true) && $option->acceptValue() && \count($this->parsed)) { - // if option accepts an optional or mandatory argument - // let's see if there is one provided - $next = array_shift($this->parsed); - if ((isset($next[0]) && '-' !== $next[0]) || \in_array($next, ['', null], true)) { - $value = $next; - } else { - array_unshift($this->parsed, $next); - } - } - - if (null === $value) { - if ($option->isValueRequired()) { - throw new RuntimeException(sprintf('The "--%s" option requires a value.', $name)); - } - - if (!$option->isArray() && !$option->isValueOptional()) { - $value = true; - } - } - - if ($option->isArray()) { - $this->options[$name][] = $value; - } else { - $this->options[$name] = $value; - } - } - - public function getFirstArgument(): ?string - { - $isOption = false; - foreach ($this->tokens as $i => $token) { - if ($token && '-' === $token[0]) { - if (str_contains($token, '=') || !isset($this->tokens[$i + 1])) { - continue; - } - - // If it's a long option, consider that everything after "--" is the option name. - // Otherwise, use the last char (if it's a short option set, only the last one can take a value with space separator) - $name = '-' === $token[1] ? substr($token, 2) : substr($token, -1); - if (!isset($this->options[$name]) && !$this->definition->hasShortcut($name)) { - // noop - } elseif ((isset($this->options[$name]) || isset($this->options[$name = $this->definition->shortcutToName($name)])) && $this->tokens[$i + 1] === $this->options[$name]) { - $isOption = true; - } - - continue; - } - - if ($isOption) { - $isOption = false; - continue; - } - - return $token; - } - - return null; - } - - public function hasParameterOption(string|array $values, bool $onlyParams = false): bool - { - $values = (array) $values; - - foreach ($this->tokens as $token) { - if ($onlyParams && '--' === $token) { - return false; - } - foreach ($values as $value) { - // Options with values: - // For long options, test for '--option=' at beginning - // For short options, test for '-o' at beginning - $leading = str_starts_with($value, '--') ? $value.'=' : $value; - if ($token === $value || '' !== $leading && str_starts_with($token, $leading)) { - return true; - } - } - } - - return false; - } - - public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false): mixed - { - $values = (array) $values; - $tokens = $this->tokens; - - while (0 < \count($tokens)) { - $token = array_shift($tokens); - if ($onlyParams && '--' === $token) { - return $default; - } - - foreach ($values as $value) { - if ($token === $value) { - return array_shift($tokens); - } - // Options with values: - // For long options, test for '--option=' at beginning - // For short options, test for '-o' at beginning - $leading = str_starts_with($value, '--') ? $value.'=' : $value; - if ('' !== $leading && str_starts_with($token, $leading)) { - return substr($token, \strlen($leading)); - } - } - } - - return $default; - } - - /** - * Returns a stringified representation of the args passed to the command. - */ - public function __toString(): string - { - $tokens = array_map(function ($token) { - if (preg_match('{^(-[^=]+=)(.+)}', $token, $match)) { - return $match[1].$this->escapeToken($match[2]); - } - - if ($token && '-' !== $token[0]) { - return $this->escapeToken($token); - } - - return $token; - }, $this->tokens); - - return implode(' ', $tokens); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/ArrayInput.php b/projects/priceservice/vendor/symfony/console/Input/ArrayInput.php deleted file mode 100644 index c1bc914..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/ArrayInput.php +++ /dev/null @@ -1,196 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\InvalidOptionException; - -/** - * ArrayInput represents an input provided as an array. - * - * Usage: - * - * $input = new ArrayInput(['command' => 'foo:bar', 'foo' => 'bar', '--bar' => 'foobar']); - * - * @author Fabien Potencier - */ -class ArrayInput extends Input -{ - private array $parameters; - - public function __construct(array $parameters, ?InputDefinition $definition = null) - { - $this->parameters = $parameters; - - parent::__construct($definition); - } - - public function getFirstArgument(): ?string - { - foreach ($this->parameters as $param => $value) { - if ($param && \is_string($param) && '-' === $param[0]) { - continue; - } - - return $value; - } - - return null; - } - - public function hasParameterOption(string|array $values, bool $onlyParams = false): bool - { - $values = (array) $values; - - foreach ($this->parameters as $k => $v) { - if (!\is_int($k)) { - $v = $k; - } - - if ($onlyParams && '--' === $v) { - return false; - } - - if (\in_array($v, $values)) { - return true; - } - } - - return false; - } - - public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false): mixed - { - $values = (array) $values; - - foreach ($this->parameters as $k => $v) { - if ($onlyParams && ('--' === $k || (\is_int($k) && '--' === $v))) { - return $default; - } - - if (\is_int($k)) { - if (\in_array($v, $values)) { - return true; - } - } elseif (\in_array($k, $values)) { - return $v; - } - } - - return $default; - } - - /** - * Returns a stringified representation of the args passed to the command. - */ - public function __toString(): string - { - $params = []; - foreach ($this->parameters as $param => $val) { - if ($param && \is_string($param) && '-' === $param[0]) { - $glue = ('-' === $param[1]) ? '=' : ' '; - if (\is_array($val)) { - foreach ($val as $v) { - $params[] = $param.('' != $v ? $glue.$this->escapeToken($v) : ''); - } - } else { - $params[] = $param.('' != $val ? $glue.$this->escapeToken($val) : ''); - } - } else { - $params[] = \is_array($val) ? implode(' ', array_map($this->escapeToken(...), $val)) : $this->escapeToken($val); - } - } - - return implode(' ', $params); - } - - /** - * @return void - */ - protected function parse() - { - foreach ($this->parameters as $key => $value) { - if ('--' === $key) { - return; - } - if (str_starts_with($key, '--')) { - $this->addLongOption(substr($key, 2), $value); - } elseif (str_starts_with($key, '-')) { - $this->addShortOption(substr($key, 1), $value); - } else { - $this->addArgument($key, $value); - } - } - } - - /** - * Adds a short option value. - * - * @throws InvalidOptionException When option given doesn't exist - */ - private function addShortOption(string $shortcut, mixed $value): void - { - if (!$this->definition->hasShortcut($shortcut)) { - throw new InvalidOptionException(sprintf('The "-%s" option does not exist.', $shortcut)); - } - - $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value); - } - - /** - * Adds a long option value. - * - * @throws InvalidOptionException When option given doesn't exist - * @throws InvalidOptionException When a required value is missing - */ - private function addLongOption(string $name, mixed $value): void - { - if (!$this->definition->hasOption($name)) { - if (!$this->definition->hasNegation($name)) { - throw new InvalidOptionException(sprintf('The "--%s" option does not exist.', $name)); - } - - $optionName = $this->definition->negationToName($name); - $this->options[$optionName] = false; - - return; - } - - $option = $this->definition->getOption($name); - - if (null === $value) { - if ($option->isValueRequired()) { - throw new InvalidOptionException(sprintf('The "--%s" option requires a value.', $name)); - } - - if (!$option->isValueOptional()) { - $value = true; - } - } - - $this->options[$name] = $value; - } - - /** - * Adds an argument value. - * - * @throws InvalidArgumentException When argument given doesn't exist - */ - private function addArgument(string|int $name, mixed $value): void - { - if (!$this->definition->hasArgument($name)) { - throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - $this->arguments[$name] = $value; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/Input.php b/projects/priceservice/vendor/symfony/console/Input/Input.php deleted file mode 100644 index 1c21573..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/Input.php +++ /dev/null @@ -1,193 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; - -/** - * Input is the base class for all concrete Input classes. - * - * Three concrete classes are provided by default: - * - * * `ArgvInput`: The input comes from the CLI arguments (argv) - * * `StringInput`: The input is provided as a string - * * `ArrayInput`: The input is provided as an array - * - * @author Fabien Potencier - */ -abstract class Input implements InputInterface, StreamableInputInterface -{ - protected $definition; - /** @var resource */ - protected $stream; - protected $options = []; - protected $arguments = []; - protected $interactive = true; - - public function __construct(?InputDefinition $definition = null) - { - if (null === $definition) { - $this->definition = new InputDefinition(); - } else { - $this->bind($definition); - $this->validate(); - } - } - - /** - * @return void - */ - public function bind(InputDefinition $definition) - { - $this->arguments = []; - $this->options = []; - $this->definition = $definition; - - $this->parse(); - } - - /** - * Processes command line arguments. - * - * @return void - */ - abstract protected function parse(); - - /** - * @return void - */ - public function validate() - { - $definition = $this->definition; - $givenArguments = $this->arguments; - - $missingArguments = array_filter(array_keys($definition->getArguments()), fn ($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired()); - - if (\count($missingArguments) > 0) { - throw new RuntimeException(sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments))); - } - } - - public function isInteractive(): bool - { - return $this->interactive; - } - - /** - * @return void - */ - public function setInteractive(bool $interactive) - { - $this->interactive = $interactive; - } - - public function getArguments(): array - { - return array_merge($this->definition->getArgumentDefaults(), $this->arguments); - } - - public function getArgument(string $name): mixed - { - if (!$this->definition->hasArgument($name)) { - throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - return $this->arguments[$name] ?? $this->definition->getArgument($name)->getDefault(); - } - - /** - * @return void - */ - public function setArgument(string $name, mixed $value) - { - if (!$this->definition->hasArgument($name)) { - throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - $this->arguments[$name] = $value; - } - - public function hasArgument(string $name): bool - { - return $this->definition->hasArgument($name); - } - - public function getOptions(): array - { - return array_merge($this->definition->getOptionDefaults(), $this->options); - } - - public function getOption(string $name): mixed - { - if ($this->definition->hasNegation($name)) { - if (null === $value = $this->getOption($this->definition->negationToName($name))) { - return $value; - } - - return !$value; - } - - if (!$this->definition->hasOption($name)) { - throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); - } - - return \array_key_exists($name, $this->options) ? $this->options[$name] : $this->definition->getOption($name)->getDefault(); - } - - /** - * @return void - */ - public function setOption(string $name, mixed $value) - { - if ($this->definition->hasNegation($name)) { - $this->options[$this->definition->negationToName($name)] = !$value; - - return; - } elseif (!$this->definition->hasOption($name)) { - throw new InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); - } - - $this->options[$name] = $value; - } - - public function hasOption(string $name): bool - { - return $this->definition->hasOption($name) || $this->definition->hasNegation($name); - } - - /** - * Escapes a token through escapeshellarg if it contains unsafe chars. - */ - public function escapeToken(string $token): string - { - return preg_match('{^[\w-]+$}', $token) ? $token : escapeshellarg($token); - } - - /** - * @param resource $stream - * - * @return void - */ - public function setStream($stream) - { - $this->stream = $stream; - } - - /** - * @return resource - */ - public function getStream() - { - return $this->stream; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/InputArgument.php b/projects/priceservice/vendor/symfony/console/Input/InputArgument.php deleted file mode 100644 index 4ef79fe..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/InputArgument.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; - -/** - * Represents a command line argument. - * - * @author Fabien Potencier - */ -class InputArgument -{ - public const REQUIRED = 1; - public const OPTIONAL = 2; - public const IS_ARRAY = 4; - - private string $name; - private int $mode; - private string|int|bool|array|null|float $default; - private array|\Closure $suggestedValues; - private string $description; - - /** - * @param string $name The argument name - * @param int|null $mode The argument mode: a bit mask of self::REQUIRED, self::OPTIONAL and self::IS_ARRAY - * @param string $description A description text - * @param string|bool|int|float|array|null $default The default value (for self::OPTIONAL mode only) - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - * - * @throws InvalidArgumentException When argument mode is not valid - */ - public function __construct(string $name, ?int $mode = null, string $description = '', string|bool|int|float|array|null $default = null, \Closure|array $suggestedValues = []) - { - if (null === $mode) { - $mode = self::OPTIONAL; - } elseif ($mode > 7 || $mode < 1) { - throw new InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode)); - } - - $this->name = $name; - $this->mode = $mode; - $this->description = $description; - $this->suggestedValues = $suggestedValues; - - $this->setDefault($default); - } - - /** - * Returns the argument name. - */ - public function getName(): string - { - return $this->name; - } - - /** - * Returns true if the argument is required. - * - * @return bool true if parameter mode is self::REQUIRED, false otherwise - */ - public function isRequired(): bool - { - return self::REQUIRED === (self::REQUIRED & $this->mode); - } - - /** - * Returns true if the argument can take multiple values. - * - * @return bool true if mode is self::IS_ARRAY, false otherwise - */ - public function isArray(): bool - { - return self::IS_ARRAY === (self::IS_ARRAY & $this->mode); - } - - /** - * Sets the default value. - * - * @return void - * - * @throws LogicException When incorrect default value is given - */ - public function setDefault(string|bool|int|float|array|null $default = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - if ($this->isRequired() && null !== $default) { - throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); - } - - if ($this->isArray()) { - if (null === $default) { - $default = []; - } elseif (!\is_array($default)) { - throw new LogicException('A default value for an array argument must be an array.'); - } - } - - $this->default = $default; - } - - /** - * Returns the default value. - */ - public function getDefault(): string|bool|int|float|array|null - { - return $this->default; - } - - public function hasCompletion(): bool - { - return [] !== $this->suggestedValues; - } - - /** - * Adds suggestions to $suggestions for the current completion input. - * - * @see Command::complete() - */ - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - $values = $this->suggestedValues; - if ($values instanceof \Closure && !\is_array($values = $values($input))) { - throw new LogicException(sprintf('Closure for argument "%s" must return an array. Got "%s".', $this->name, get_debug_type($values))); - } - if ($values) { - $suggestions->suggestValues($values); - } - } - - /** - * Returns the description text. - */ - public function getDescription(): string - { - return $this->description; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/InputAwareInterface.php b/projects/priceservice/vendor/symfony/console/Input/InputAwareInterface.php deleted file mode 100644 index 0ad27b4..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/InputAwareInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -/** - * InputAwareInterface should be implemented by classes that depends on the - * Console Input. - * - * @author Wouter J - */ -interface InputAwareInterface -{ - /** - * Sets the Console Input. - * - * @return void - */ - public function setInput(InputInterface $input); -} diff --git a/projects/priceservice/vendor/symfony/console/Input/InputDefinition.php b/projects/priceservice/vendor/symfony/console/Input/InputDefinition.php deleted file mode 100644 index b7162d7..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/InputDefinition.php +++ /dev/null @@ -1,416 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; - -/** - * A InputDefinition represents a set of valid command line arguments and options. - * - * Usage: - * - * $definition = new InputDefinition([ - * new InputArgument('name', InputArgument::REQUIRED), - * new InputOption('foo', 'f', InputOption::VALUE_REQUIRED), - * ]); - * - * @author Fabien Potencier - */ -class InputDefinition -{ - private array $arguments = []; - private int $requiredCount = 0; - private ?InputArgument $lastArrayArgument = null; - private ?InputArgument $lastOptionalArgument = null; - private array $options = []; - private array $negations = []; - private array $shortcuts = []; - - /** - * @param array $definition An array of InputArgument and InputOption instance - */ - public function __construct(array $definition = []) - { - $this->setDefinition($definition); - } - - /** - * Sets the definition of the input. - * - * @return void - */ - public function setDefinition(array $definition) - { - $arguments = []; - $options = []; - foreach ($definition as $item) { - if ($item instanceof InputOption) { - $options[] = $item; - } else { - $arguments[] = $item; - } - } - - $this->setArguments($arguments); - $this->setOptions($options); - } - - /** - * Sets the InputArgument objects. - * - * @param InputArgument[] $arguments An array of InputArgument objects - * - * @return void - */ - public function setArguments(array $arguments = []) - { - $this->arguments = []; - $this->requiredCount = 0; - $this->lastOptionalArgument = null; - $this->lastArrayArgument = null; - $this->addArguments($arguments); - } - - /** - * Adds an array of InputArgument objects. - * - * @param InputArgument[] $arguments An array of InputArgument objects - * - * @return void - */ - public function addArguments(?array $arguments = []) - { - if (null !== $arguments) { - foreach ($arguments as $argument) { - $this->addArgument($argument); - } - } - } - - /** - * @return void - * - * @throws LogicException When incorrect argument is given - */ - public function addArgument(InputArgument $argument) - { - if (isset($this->arguments[$argument->getName()])) { - throw new LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName())); - } - - if (null !== $this->lastArrayArgument) { - throw new LogicException(sprintf('Cannot add a required argument "%s" after an array argument "%s".', $argument->getName(), $this->lastArrayArgument->getName())); - } - - if ($argument->isRequired() && null !== $this->lastOptionalArgument) { - throw new LogicException(sprintf('Cannot add a required argument "%s" after an optional one "%s".', $argument->getName(), $this->lastOptionalArgument->getName())); - } - - if ($argument->isArray()) { - $this->lastArrayArgument = $argument; - } - - if ($argument->isRequired()) { - ++$this->requiredCount; - } else { - $this->lastOptionalArgument = $argument; - } - - $this->arguments[$argument->getName()] = $argument; - } - - /** - * Returns an InputArgument by name or by position. - * - * @throws InvalidArgumentException When argument given doesn't exist - */ - public function getArgument(string|int $name): InputArgument - { - if (!$this->hasArgument($name)) { - throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - $arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments; - - return $arguments[$name]; - } - - /** - * Returns true if an InputArgument object exists by name or position. - */ - public function hasArgument(string|int $name): bool - { - $arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments; - - return isset($arguments[$name]); - } - - /** - * Gets the array of InputArgument objects. - * - * @return InputArgument[] - */ - public function getArguments(): array - { - return $this->arguments; - } - - /** - * Returns the number of InputArguments. - */ - public function getArgumentCount(): int - { - return null !== $this->lastArrayArgument ? \PHP_INT_MAX : \count($this->arguments); - } - - /** - * Returns the number of required InputArguments. - */ - public function getArgumentRequiredCount(): int - { - return $this->requiredCount; - } - - /** - * @return array - */ - public function getArgumentDefaults(): array - { - $values = []; - foreach ($this->arguments as $argument) { - $values[$argument->getName()] = $argument->getDefault(); - } - - return $values; - } - - /** - * Sets the InputOption objects. - * - * @param InputOption[] $options An array of InputOption objects - * - * @return void - */ - public function setOptions(array $options = []) - { - $this->options = []; - $this->shortcuts = []; - $this->negations = []; - $this->addOptions($options); - } - - /** - * Adds an array of InputOption objects. - * - * @param InputOption[] $options An array of InputOption objects - * - * @return void - */ - public function addOptions(array $options = []) - { - foreach ($options as $option) { - $this->addOption($option); - } - } - - /** - * @return void - * - * @throws LogicException When option given already exist - */ - public function addOption(InputOption $option) - { - if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) { - throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName())); - } - if (isset($this->negations[$option->getName()])) { - throw new LogicException(sprintf('An option named "%s" already exists.', $option->getName())); - } - - if ($option->getShortcut()) { - foreach (explode('|', $option->getShortcut()) as $shortcut) { - if (isset($this->shortcuts[$shortcut]) && !$option->equals($this->options[$this->shortcuts[$shortcut]])) { - throw new LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut)); - } - } - } - - $this->options[$option->getName()] = $option; - if ($option->getShortcut()) { - foreach (explode('|', $option->getShortcut()) as $shortcut) { - $this->shortcuts[$shortcut] = $option->getName(); - } - } - - if ($option->isNegatable()) { - $negatedName = 'no-'.$option->getName(); - if (isset($this->options[$negatedName])) { - throw new LogicException(sprintf('An option named "%s" already exists.', $negatedName)); - } - $this->negations[$negatedName] = $option->getName(); - } - } - - /** - * Returns an InputOption by name. - * - * @throws InvalidArgumentException When option given doesn't exist - */ - public function getOption(string $name): InputOption - { - if (!$this->hasOption($name)) { - throw new InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name)); - } - - return $this->options[$name]; - } - - /** - * Returns true if an InputOption object exists by name. - * - * This method can't be used to check if the user included the option when - * executing the command (use getOption() instead). - */ - public function hasOption(string $name): bool - { - return isset($this->options[$name]); - } - - /** - * Gets the array of InputOption objects. - * - * @return InputOption[] - */ - public function getOptions(): array - { - return $this->options; - } - - /** - * Returns true if an InputOption object exists by shortcut. - */ - public function hasShortcut(string $name): bool - { - return isset($this->shortcuts[$name]); - } - - /** - * Returns true if an InputOption object exists by negated name. - */ - public function hasNegation(string $name): bool - { - return isset($this->negations[$name]); - } - - /** - * Gets an InputOption by shortcut. - */ - public function getOptionForShortcut(string $shortcut): InputOption - { - return $this->getOption($this->shortcutToName($shortcut)); - } - - /** - * @return array - */ - public function getOptionDefaults(): array - { - $values = []; - foreach ($this->options as $option) { - $values[$option->getName()] = $option->getDefault(); - } - - return $values; - } - - /** - * Returns the InputOption name given a shortcut. - * - * @throws InvalidArgumentException When option given does not exist - * - * @internal - */ - public function shortcutToName(string $shortcut): string - { - if (!isset($this->shortcuts[$shortcut])) { - throw new InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut)); - } - - return $this->shortcuts[$shortcut]; - } - - /** - * Returns the InputOption name given a negation. - * - * @throws InvalidArgumentException When option given does not exist - * - * @internal - */ - public function negationToName(string $negation): string - { - if (!isset($this->negations[$negation])) { - throw new InvalidArgumentException(sprintf('The "--%s" option does not exist.', $negation)); - } - - return $this->negations[$negation]; - } - - /** - * Gets the synopsis. - */ - public function getSynopsis(bool $short = false): string - { - $elements = []; - - if ($short && $this->getOptions()) { - $elements[] = '[options]'; - } elseif (!$short) { - foreach ($this->getOptions() as $option) { - $value = ''; - if ($option->acceptValue()) { - $value = sprintf( - ' %s%s%s', - $option->isValueOptional() ? '[' : '', - strtoupper($option->getName()), - $option->isValueOptional() ? ']' : '' - ); - } - - $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : ''; - $negation = $option->isNegatable() ? sprintf('|--no-%s', $option->getName()) : ''; - $elements[] = sprintf('[%s--%s%s%s]', $shortcut, $option->getName(), $value, $negation); - } - } - - if (\count($elements) && $this->getArguments()) { - $elements[] = '[--]'; - } - - $tail = ''; - foreach ($this->getArguments() as $argument) { - $element = '<'.$argument->getName().'>'; - if ($argument->isArray()) { - $element .= '...'; - } - - if (!$argument->isRequired()) { - $element = '['.$element; - $tail .= ']'; - } - - $elements[] = $element; - } - - return implode(' ', $elements).$tail; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/InputInterface.php b/projects/priceservice/vendor/symfony/console/Input/InputInterface.php deleted file mode 100644 index aaed5fd..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/InputInterface.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; - -/** - * InputInterface is the interface implemented by all input classes. - * - * @author Fabien Potencier - * - * @method string __toString() Returns a stringified representation of the args passed to the command. - * InputArguments MUST be escaped as well as the InputOption values passed to the command. - */ -interface InputInterface -{ - /** - * Returns the first argument from the raw parameters (not parsed). - */ - public function getFirstArgument(): ?string; - - /** - * Returns true if the raw parameters (not parsed) contain a value. - * - * This method is to be used to introspect the input parameters - * before they have been validated. It must be used carefully. - * Does not necessarily return the correct result for short options - * when multiple flags are combined in the same option. - * - * @param string|array $values The values to look for in the raw parameters (can be an array) - * @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal - */ - public function hasParameterOption(string|array $values, bool $onlyParams = false): bool; - - /** - * Returns the value of a raw option (not parsed). - * - * This method is to be used to introspect the input parameters - * before they have been validated. It must be used carefully. - * Does not necessarily return the correct result for short options - * when multiple flags are combined in the same option. - * - * @param string|array $values The value(s) to look for in the raw parameters (can be an array) - * @param string|bool|int|float|array|null $default The default value to return if no result is found - * @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal - * - * @return mixed - */ - public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false); - - /** - * Binds the current Input instance with the given arguments and options. - * - * @return void - * - * @throws RuntimeException - */ - public function bind(InputDefinition $definition); - - /** - * Validates the input. - * - * @return void - * - * @throws RuntimeException When not enough arguments are given - */ - public function validate(); - - /** - * Returns all the given arguments merged with the default values. - * - * @return array - */ - public function getArguments(): array; - - /** - * Returns the argument value for a given argument name. - * - * @return mixed - * - * @throws InvalidArgumentException When argument given doesn't exist - */ - public function getArgument(string $name); - - /** - * Sets an argument value by name. - * - * @return void - * - * @throws InvalidArgumentException When argument given doesn't exist - */ - public function setArgument(string $name, mixed $value); - - /** - * Returns true if an InputArgument object exists by name or position. - */ - public function hasArgument(string $name): bool; - - /** - * Returns all the given options merged with the default values. - * - * @return array - */ - public function getOptions(): array; - - /** - * Returns the option value for a given option name. - * - * @return mixed - * - * @throws InvalidArgumentException When option given doesn't exist - */ - public function getOption(string $name); - - /** - * Sets an option value by name. - * - * @return void - * - * @throws InvalidArgumentException When option given doesn't exist - */ - public function setOption(string $name, mixed $value); - - /** - * Returns true if an InputOption object exists by name. - */ - public function hasOption(string $name): bool; - - /** - * Is this input means interactive? - */ - public function isInteractive(): bool; - - /** - * Sets the input interactivity. - * - * @return void - */ - public function setInteractive(bool $interactive); -} diff --git a/projects/priceservice/vendor/symfony/console/Input/InputOption.php b/projects/priceservice/vendor/symfony/console/Input/InputOption.php deleted file mode 100644 index bb53380..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/InputOption.php +++ /dev/null @@ -1,255 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Completion\Suggestion; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; - -/** - * Represents a command line option. - * - * @author Fabien Potencier - */ -class InputOption -{ - /** - * Do not accept input for the option (e.g. --yell). This is the default behavior of options. - */ - public const VALUE_NONE = 1; - - /** - * A value must be passed when the option is used (e.g. --iterations=5 or -i5). - */ - public const VALUE_REQUIRED = 2; - - /** - * The option may or may not have a value (e.g. --yell or --yell=loud). - */ - public const VALUE_OPTIONAL = 4; - - /** - * The option accepts multiple values (e.g. --dir=/foo --dir=/bar). - */ - public const VALUE_IS_ARRAY = 8; - - /** - * The option may have either positive or negative value (e.g. --ansi or --no-ansi). - */ - public const VALUE_NEGATABLE = 16; - - private string $name; - private string|array|null $shortcut; - private int $mode; - private string|int|bool|array|null|float $default; - private array|\Closure $suggestedValues; - private string $description; - - /** - * @param string|array|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts - * @param int|null $mode The option mode: One of the VALUE_* constants - * @param string|bool|int|float|array|null $default The default value (must be null for self::VALUE_NONE) - * @param array|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion - * - * @throws InvalidArgumentException If option mode is invalid or incompatible - */ - public function __construct(string $name, string|array|null $shortcut = null, ?int $mode = null, string $description = '', string|bool|int|float|array|null $default = null, array|\Closure $suggestedValues = []) - { - if (str_starts_with($name, '--')) { - $name = substr($name, 2); - } - - if (empty($name)) { - throw new InvalidArgumentException('An option name cannot be empty.'); - } - - if ('' === $shortcut || [] === $shortcut || false === $shortcut) { - $shortcut = null; - } - - if (null !== $shortcut) { - if (\is_array($shortcut)) { - $shortcut = implode('|', $shortcut); - } - $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-')); - $shortcuts = array_filter($shortcuts, 'strlen'); - $shortcut = implode('|', $shortcuts); - - if ('' === $shortcut) { - throw new InvalidArgumentException('An option shortcut cannot be empty.'); - } - } - - if (null === $mode) { - $mode = self::VALUE_NONE; - } elseif ($mode >= (self::VALUE_NEGATABLE << 1) || $mode < 1) { - throw new InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode)); - } - - $this->name = $name; - $this->shortcut = $shortcut; - $this->mode = $mode; - $this->description = $description; - $this->suggestedValues = $suggestedValues; - - if ($suggestedValues && !$this->acceptValue()) { - throw new LogicException('Cannot set suggested values if the option does not accept a value.'); - } - if ($this->isArray() && !$this->acceptValue()) { - throw new InvalidArgumentException('Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.'); - } - if ($this->isNegatable() && $this->acceptValue()) { - throw new InvalidArgumentException('Impossible to have an option mode VALUE_NEGATABLE if the option also accepts a value.'); - } - - $this->setDefault($default); - } - - /** - * Returns the option shortcut. - */ - public function getShortcut(): ?string - { - return $this->shortcut; - } - - /** - * Returns the option name. - */ - public function getName(): string - { - return $this->name; - } - - /** - * Returns true if the option accepts a value. - * - * @return bool true if value mode is not self::VALUE_NONE, false otherwise - */ - public function acceptValue(): bool - { - return $this->isValueRequired() || $this->isValueOptional(); - } - - /** - * Returns true if the option requires a value. - * - * @return bool true if value mode is self::VALUE_REQUIRED, false otherwise - */ - public function isValueRequired(): bool - { - return self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $this->mode); - } - - /** - * Returns true if the option takes an optional value. - * - * @return bool true if value mode is self::VALUE_OPTIONAL, false otherwise - */ - public function isValueOptional(): bool - { - return self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $this->mode); - } - - /** - * Returns true if the option can take multiple values. - * - * @return bool true if mode is self::VALUE_IS_ARRAY, false otherwise - */ - public function isArray(): bool - { - return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode); - } - - public function isNegatable(): bool - { - return self::VALUE_NEGATABLE === (self::VALUE_NEGATABLE & $this->mode); - } - - /** - * @return void - */ - public function setDefault(string|bool|int|float|array|null $default = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { - throw new LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); - } - - if ($this->isArray()) { - if (null === $default) { - $default = []; - } elseif (!\is_array($default)) { - throw new LogicException('A default value for an array option must be an array.'); - } - } - - $this->default = $this->acceptValue() || $this->isNegatable() ? $default : false; - } - - /** - * Returns the default value. - */ - public function getDefault(): string|bool|int|float|array|null - { - return $this->default; - } - - /** - * Returns the description text. - */ - public function getDescription(): string - { - return $this->description; - } - - public function hasCompletion(): bool - { - return [] !== $this->suggestedValues; - } - - /** - * Adds suggestions to $suggestions for the current completion input. - * - * @see Command::complete() - */ - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - $values = $this->suggestedValues; - if ($values instanceof \Closure && !\is_array($values = $values($input))) { - throw new LogicException(sprintf('Closure for option "%s" must return an array. Got "%s".', $this->name, get_debug_type($values))); - } - if ($values) { - $suggestions->suggestValues($values); - } - } - - /** - * Checks whether the given option equals this one. - */ - public function equals(self $option): bool - { - return $option->getName() === $this->getName() - && $option->getShortcut() === $this->getShortcut() - && $option->getDefault() === $this->getDefault() - && $option->isNegatable() === $this->isNegatable() - && $option->isArray() === $this->isArray() - && $option->isValueRequired() === $this->isValueRequired() - && $option->isValueOptional() === $this->isValueOptional() - ; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Input/StreamableInputInterface.php b/projects/priceservice/vendor/symfony/console/Input/StreamableInputInterface.php deleted file mode 100644 index 4b95fcb..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/StreamableInputInterface.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -/** - * StreamableInputInterface is the interface implemented by all input classes - * that have an input stream. - * - * @author Robin Chalas - */ -interface StreamableInputInterface extends InputInterface -{ - /** - * Sets the input stream to read from when interacting with the user. - * - * This is mainly useful for testing purpose. - * - * @param resource $stream The input stream - * - * @return void - */ - public function setStream($stream); - - /** - * Returns the input stream. - * - * @return resource|null - */ - public function getStream(); -} diff --git a/projects/priceservice/vendor/symfony/console/Input/StringInput.php b/projects/priceservice/vendor/symfony/console/Input/StringInput.php deleted file mode 100644 index 82bd214..0000000 --- a/projects/priceservice/vendor/symfony/console/Input/StringInput.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Input; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * StringInput represents an input provided as a string. - * - * Usage: - * - * $input = new StringInput('foo --bar="foobar"'); - * - * @author Fabien Potencier - */ -class StringInput extends ArgvInput -{ - /** - * @deprecated since Symfony 6.1 - */ - public const REGEX_STRING = '([^\s]+?)(?:\s|(?setTokens($this->tokenize($input)); - } - - /** - * Tokenizes a string. - * - * @throws InvalidArgumentException When unable to parse input (should never happen) - */ - private function tokenize(string $input): array - { - $tokens = []; - $length = \strlen($input); - $cursor = 0; - $token = null; - while ($cursor < $length) { - if ('\\' === $input[$cursor]) { - $token .= $input[++$cursor] ?? ''; - ++$cursor; - continue; - } - - if (preg_match('/\s+/A', $input, $match, 0, $cursor)) { - if (null !== $token) { - $tokens[] = $token; - $token = null; - } - } elseif (preg_match('/([^="\'\s]+?)(=?)('.self::REGEX_QUOTED_STRING.'+)/A', $input, $match, 0, $cursor)) { - $token .= $match[1].$match[2].stripcslashes(str_replace(['"\'', '\'"', '\'\'', '""'], '', substr($match[3], 1, -1))); - } elseif (preg_match('/'.self::REGEX_QUOTED_STRING.'/A', $input, $match, 0, $cursor)) { - $token .= stripcslashes(substr($match[0], 1, -1)); - } elseif (preg_match('/'.self::REGEX_UNQUOTED_STRING.'/A', $input, $match, 0, $cursor)) { - $token .= $match[1]; - } else { - // should never happen - throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10))); - } - - $cursor += \strlen($match[0]); - } - - if (null !== $token) { - $tokens[] = $token; - } - - return $tokens; - } -} diff --git a/projects/priceservice/vendor/symfony/console/LICENSE b/projects/priceservice/vendor/symfony/console/LICENSE deleted file mode 100644 index 0138f8f..0000000 --- a/projects/priceservice/vendor/symfony/console/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/console/Logger/ConsoleLogger.php b/projects/priceservice/vendor/symfony/console/Logger/ConsoleLogger.php deleted file mode 100644 index fddef50..0000000 --- a/projects/priceservice/vendor/symfony/console/Logger/ConsoleLogger.php +++ /dev/null @@ -1,119 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Logger; - -use Psr\Log\AbstractLogger; -use Psr\Log\InvalidArgumentException; -use Psr\Log\LogLevel; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * PSR-3 compliant console logger. - * - * @author Kévin Dunglas - * - * @see https://www.php-fig.org/psr/psr-3/ - */ -class ConsoleLogger extends AbstractLogger -{ - public const INFO = 'info'; - public const ERROR = 'error'; - - private OutputInterface $output; - private array $verbosityLevelMap = [ - LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL, - LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL, - LogLevel::CRITICAL => OutputInterface::VERBOSITY_NORMAL, - LogLevel::ERROR => OutputInterface::VERBOSITY_NORMAL, - LogLevel::WARNING => OutputInterface::VERBOSITY_NORMAL, - LogLevel::NOTICE => OutputInterface::VERBOSITY_VERBOSE, - LogLevel::INFO => OutputInterface::VERBOSITY_VERY_VERBOSE, - LogLevel::DEBUG => OutputInterface::VERBOSITY_DEBUG, - ]; - private array $formatLevelMap = [ - LogLevel::EMERGENCY => self::ERROR, - LogLevel::ALERT => self::ERROR, - LogLevel::CRITICAL => self::ERROR, - LogLevel::ERROR => self::ERROR, - LogLevel::WARNING => self::INFO, - LogLevel::NOTICE => self::INFO, - LogLevel::INFO => self::INFO, - LogLevel::DEBUG => self::INFO, - ]; - private bool $errored = false; - - public function __construct(OutputInterface $output, array $verbosityLevelMap = [], array $formatLevelMap = []) - { - $this->output = $output; - $this->verbosityLevelMap = $verbosityLevelMap + $this->verbosityLevelMap; - $this->formatLevelMap = $formatLevelMap + $this->formatLevelMap; - } - - public function log($level, $message, array $context = []): void - { - if (!isset($this->verbosityLevelMap[$level])) { - throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level)); - } - - $output = $this->output; - - // Write to the error output if necessary and available - if (self::ERROR === $this->formatLevelMap[$level]) { - if ($this->output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - $this->errored = true; - } - - // the if condition check isn't necessary -- it's the same one that $output will do internally anyway. - // We only do it for efficiency here as the message formatting is relatively expensive. - if ($output->getVerbosity() >= $this->verbosityLevelMap[$level]) { - $output->writeln(sprintf('<%1$s>[%2$s] %3$s', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)), $this->verbosityLevelMap[$level]); - } - } - - /** - * Returns true when any messages have been logged at error levels. - */ - public function hasErrored(): bool - { - return $this->errored; - } - - /** - * Interpolates context values into the message placeholders. - * - * @author PHP Framework Interoperability Group - */ - private function interpolate(string $message, array $context): string - { - if (!str_contains($message, '{')) { - return $message; - } - - $replacements = []; - foreach ($context as $key => $val) { - if (null === $val || \is_scalar($val) || $val instanceof \Stringable) { - $replacements["{{$key}}"] = $val; - } elseif ($val instanceof \DateTimeInterface) { - $replacements["{{$key}}"] = $val->format(\DateTimeInterface::RFC3339); - } elseif (\is_object($val)) { - $replacements["{{$key}}"] = '[object '.$val::class.']'; - } else { - $replacements["{{$key}}"] = '['.\gettype($val).']'; - } - } - - return strtr($message, $replacements); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandContext.php b/projects/priceservice/vendor/symfony/console/Messenger/RunCommandContext.php deleted file mode 100644 index 2ee5415..0000000 --- a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandContext.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Messenger; - -/** - * @author Kevin Bond - */ -final class RunCommandContext -{ - public function __construct( - public readonly RunCommandMessage $message, - public readonly int $exitCode, - public readonly string $output, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessage.php b/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessage.php deleted file mode 100644 index b530c43..0000000 --- a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessage.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Messenger; - -use Symfony\Component\Console\Exception\RunCommandFailedException; - -/** - * @author Kevin Bond - */ -class RunCommandMessage implements \Stringable -{ - /** - * @param bool $throwOnFailure If the command has a non-zero exit code, throw {@see RunCommandFailedException} - * @param bool $catchExceptions @see Application::setCatchExceptions() - */ - public function __construct( - public readonly string $input, - public readonly bool $throwOnFailure = true, - public readonly bool $catchExceptions = false, - ) { - } - - public function __toString(): string - { - return $this->input; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessageHandler.php deleted file mode 100644 index 14f9c17..0000000 --- a/projects/priceservice/vendor/symfony/console/Messenger/RunCommandMessageHandler.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Messenger; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\RunCommandFailedException; -use Symfony\Component\Console\Input\StringInput; -use Symfony\Component\Console\Output\BufferedOutput; - -/** - * @author Kevin Bond - */ -final class RunCommandMessageHandler -{ - public function __construct(private readonly Application $application) - { - } - - public function __invoke(RunCommandMessage $message): RunCommandContext - { - $input = new StringInput($message->input); - $output = new BufferedOutput(); - - $this->application->setCatchExceptions($message->catchExceptions); - - try { - $exitCode = $this->application->run($input, $output); - } catch (\Throwable $e) { - throw new RunCommandFailedException($e, new RunCommandContext($message, Command::FAILURE, $output->fetch())); - } - - if ($message->throwOnFailure && Command::SUCCESS !== $exitCode) { - throw new RunCommandFailedException(sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch())); - } - - return new RunCommandContext($message, $exitCode, $output->fetch()); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/AnsiColorMode.php b/projects/priceservice/vendor/symfony/console/Output/AnsiColorMode.php deleted file mode 100644 index 5f9f744..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/AnsiColorMode.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * @author Fabien Potencier - * @author Julien Boudry - */ -enum AnsiColorMode -{ - /* - * Classical 4-bit Ansi colors, including 8 classical colors and 8 bright color. Output syntax is "ESC[${foreGroundColorcode};${backGroundColorcode}m" - * Must be compatible with all terminals and it's the minimal version supported. - */ - case Ansi4; - - /* - * 8-bit Ansi colors (240 different colors + 16 duplicate color codes, ensuring backward compatibility). - * Output syntax is: "ESC[38;5;${foreGroundColorcode};48;5;${backGroundColorcode}m" - * Should be compatible with most terminals. - */ - case Ansi8; - - /* - * 24-bit Ansi colors (RGB). - * Output syntax is: "ESC[38;2;${foreGroundColorcodeRed};${foreGroundColorcodeGreen};${foreGroundColorcodeBlue};48;2;${backGroundColorcodeRed};${backGroundColorcodeGreen};${backGroundColorcodeBlue}m" - * May be compatible with many modern terminals. - */ - case Ansi24; - - /** - * Converts an RGB hexadecimal color to the corresponding Ansi code. - */ - public function convertFromHexToAnsiColorCode(string $hexColor): string - { - $hexColor = str_replace('#', '', $hexColor); - - if (3 === \strlen($hexColor)) { - $hexColor = $hexColor[0].$hexColor[0].$hexColor[1].$hexColor[1].$hexColor[2].$hexColor[2]; - } - - if (6 !== \strlen($hexColor)) { - throw new InvalidArgumentException(sprintf('Invalid "#%s" color.', $hexColor)); - } - - $color = hexdec($hexColor); - - $r = ($color >> 16) & 255; - $g = ($color >> 8) & 255; - $b = $color & 255; - - return match ($this) { - self::Ansi4 => (string) $this->convertFromRGB($r, $g, $b), - self::Ansi8 => '8;5;'.((string) $this->convertFromRGB($r, $g, $b)), - self::Ansi24 => sprintf('8;2;%d;%d;%d', $r, $g, $b) - }; - } - - private function convertFromRGB(int $r, int $g, int $b): int - { - return match ($this) { - self::Ansi4 => $this->degradeHexColorToAnsi4($r, $g, $b), - self::Ansi8 => $this->degradeHexColorToAnsi8($r, $g, $b), - default => throw new InvalidArgumentException("RGB cannot be converted to {$this->name}.") - }; - } - - private function degradeHexColorToAnsi4(int $r, int $g, int $b): int - { - return round($b / 255) << 2 | (round($g / 255) << 1) | round($r / 255); - } - - /** - * Inspired from https://github.com/ajalt/colormath/blob/e464e0da1b014976736cf97250063248fc77b8e7/colormath/src/commonMain/kotlin/com/github/ajalt/colormath/model/Ansi256.kt code (MIT license). - */ - private function degradeHexColorToAnsi8(int $r, int $g, int $b): int - { - if ($r === $g && $g === $b) { - if ($r < 8) { - return 16; - } - - if ($r > 248) { - return 231; - } - - return (int) round(($r - 8) / 247 * 24) + 232; - } else { - return 16 + - (36 * (int) round($r / 255 * 5)) + - (6 * (int) round($g / 255 * 5)) + - (int) round($b / 255 * 5); - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/BufferedOutput.php b/projects/priceservice/vendor/symfony/console/Output/BufferedOutput.php deleted file mode 100644 index ef5099b..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/BufferedOutput.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -/** - * @author Jean-François Simon - */ -class BufferedOutput extends Output -{ - private string $buffer = ''; - - /** - * Empties buffer and returns its content. - */ - public function fetch(): string - { - $content = $this->buffer; - $this->buffer = ''; - - return $content; - } - - /** - * @return void - */ - protected function doWrite(string $message, bool $newline) - { - $this->buffer .= $message; - - if ($newline) { - $this->buffer .= \PHP_EOL; - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/ConsoleOutput.php b/projects/priceservice/vendor/symfony/console/Output/ConsoleOutput.php deleted file mode 100644 index 5837e74..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/ConsoleOutput.php +++ /dev/null @@ -1,165 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR. - * - * This class is a convenient wrapper around `StreamOutput` for both STDOUT and STDERR. - * - * $output = new ConsoleOutput(); - * - * This is equivalent to: - * - * $output = new StreamOutput(fopen('php://stdout', 'w')); - * $stdErr = new StreamOutput(fopen('php://stderr', 'w')); - * - * @author Fabien Potencier - */ -class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface -{ - private OutputInterface $stderr; - private array $consoleSectionOutputs = []; - - /** - * @param int $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface) - * @param bool|null $decorated Whether to decorate messages (null for auto-guessing) - * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) - */ - public function __construct(int $verbosity = self::VERBOSITY_NORMAL, ?bool $decorated = null, ?OutputFormatterInterface $formatter = null) - { - parent::__construct($this->openOutputStream(), $verbosity, $decorated, $formatter); - - if (null === $formatter) { - // for BC reasons, stdErr has it own Formatter only when user don't inject a specific formatter. - $this->stderr = new StreamOutput($this->openErrorStream(), $verbosity, $decorated); - - return; - } - - $actualDecorated = $this->isDecorated(); - $this->stderr = new StreamOutput($this->openErrorStream(), $verbosity, $decorated, $this->getFormatter()); - - if (null === $decorated) { - $this->setDecorated($actualDecorated && $this->stderr->isDecorated()); - } - } - - /** - * Creates a new output section. - */ - public function section(): ConsoleSectionOutput - { - return new ConsoleSectionOutput($this->getStream(), $this->consoleSectionOutputs, $this->getVerbosity(), $this->isDecorated(), $this->getFormatter()); - } - - /** - * @return void - */ - public function setDecorated(bool $decorated) - { - parent::setDecorated($decorated); - $this->stderr->setDecorated($decorated); - } - - /** - * @return void - */ - public function setFormatter(OutputFormatterInterface $formatter) - { - parent::setFormatter($formatter); - $this->stderr->setFormatter($formatter); - } - - /** - * @return void - */ - public function setVerbosity(int $level) - { - parent::setVerbosity($level); - $this->stderr->setVerbosity($level); - } - - public function getErrorOutput(): OutputInterface - { - return $this->stderr; - } - - /** - * @return void - */ - public function setErrorOutput(OutputInterface $error) - { - $this->stderr = $error; - } - - /** - * Returns true if current environment supports writing console output to - * STDOUT. - */ - protected function hasStdoutSupport(): bool - { - return false === $this->isRunningOS400(); - } - - /** - * Returns true if current environment supports writing console output to - * STDERR. - */ - protected function hasStderrSupport(): bool - { - return false === $this->isRunningOS400(); - } - - /** - * Checks if current executing environment is IBM iSeries (OS400), which - * doesn't properly convert character-encodings between ASCII to EBCDIC. - */ - private function isRunningOS400(): bool - { - $checks = [ - \function_exists('php_uname') ? php_uname('s') : '', - getenv('OSTYPE'), - \PHP_OS, - ]; - - return false !== stripos(implode(';', $checks), 'OS400'); - } - - /** - * @return resource - */ - private function openOutputStream() - { - if (!$this->hasStdoutSupport()) { - return fopen('php://output', 'w'); - } - - // Use STDOUT when possible to prevent from opening too many file descriptors - return \defined('STDOUT') ? \STDOUT : (@fopen('php://stdout', 'w') ?: fopen('php://output', 'w')); - } - - /** - * @return resource - */ - private function openErrorStream() - { - if (!$this->hasStderrSupport()) { - return fopen('php://output', 'w'); - } - - // Use STDERR when possible to prevent from opening too many file descriptors - return \defined('STDERR') ? \STDERR : (@fopen('php://stderr', 'w') ?: fopen('php://output', 'w')); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/ConsoleOutputInterface.php b/projects/priceservice/vendor/symfony/console/Output/ConsoleOutputInterface.php deleted file mode 100644 index 9c0049c..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -/** - * ConsoleOutputInterface is the interface implemented by ConsoleOutput class. - * This adds information about stderr and section output stream. - * - * @author Dariusz Górecki - */ -interface ConsoleOutputInterface extends OutputInterface -{ - /** - * Gets the OutputInterface for errors. - */ - public function getErrorOutput(): OutputInterface; - - /** - * @return void - */ - public function setErrorOutput(OutputInterface $error); - - public function section(): ConsoleSectionOutput; -} diff --git a/projects/priceservice/vendor/symfony/console/Output/ConsoleSectionOutput.php b/projects/priceservice/vendor/symfony/console/Output/ConsoleSectionOutput.php deleted file mode 100644 index f2d7933..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ /dev/null @@ -1,244 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Formatter\OutputFormatterInterface; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Terminal; - -/** - * @author Pierre du Plessis - * @author Gabriel Ostrolucký - */ -class ConsoleSectionOutput extends StreamOutput -{ - private array $content = []; - private int $lines = 0; - private array $sections; - private Terminal $terminal; - private int $maxHeight = 0; - - /** - * @param resource $stream - * @param ConsoleSectionOutput[] $sections - */ - public function __construct($stream, array &$sections, int $verbosity, bool $decorated, OutputFormatterInterface $formatter) - { - parent::__construct($stream, $verbosity, $decorated, $formatter); - array_unshift($sections, $this); - $this->sections = &$sections; - $this->terminal = new Terminal(); - } - - /** - * Defines a maximum number of lines for this section. - * - * When more lines are added, the section will automatically scroll to the - * end (i.e. remove the first lines to comply with the max height). - */ - public function setMaxHeight(int $maxHeight): void - { - // when changing max height, clear output of current section and redraw again with the new height - $previousMaxHeight = $this->maxHeight; - $this->maxHeight = $maxHeight; - $existingContent = $this->popStreamContentUntilCurrentSection($previousMaxHeight ? min($previousMaxHeight, $this->lines) : $this->lines); - - parent::doWrite($this->getVisibleContent(), false); - parent::doWrite($existingContent, false); - } - - /** - * Clears previous output for this section. - * - * @param int $lines Number of lines to clear. If null, then the entire output of this section is cleared - * - * @return void - */ - public function clear(?int $lines = null) - { - if (empty($this->content) || !$this->isDecorated()) { - return; - } - - if ($lines) { - array_splice($this->content, -$lines); - } else { - $lines = $this->lines; - $this->content = []; - } - - $this->lines -= $lines; - - parent::doWrite($this->popStreamContentUntilCurrentSection($this->maxHeight ? min($this->maxHeight, $lines) : $lines), false); - } - - /** - * Overwrites the previous output with a new message. - * - * @return void - */ - public function overwrite(string|iterable $message) - { - $this->clear(); - $this->writeln($message); - } - - public function getContent(): string - { - return implode('', $this->content); - } - - public function getVisibleContent(): string - { - if (0 === $this->maxHeight) { - return $this->getContent(); - } - - return implode('', \array_slice($this->content, -$this->maxHeight)); - } - - /** - * @internal - */ - public function addContent(string $input, bool $newline = true): int - { - $width = $this->terminal->getWidth(); - $lines = explode(\PHP_EOL, $input); - $linesAdded = 0; - $count = \count($lines) - 1; - foreach ($lines as $i => $lineContent) { - // re-add the line break (that has been removed in the above `explode()` for - // - every line that is not the last line - // - if $newline is required, also add it to the last line - if ($i < $count || $newline) { - $lineContent .= \PHP_EOL; - } - - // skip line if there is no text (or newline for that matter) - if ('' === $lineContent) { - continue; - } - - // For the first line, check if the previous line (last entry of `$this->content`) - // needs to be continued (i.e. does not end with a line break). - if (0 === $i - && (false !== $lastLine = end($this->content)) - && !str_ends_with($lastLine, \PHP_EOL) - ) { - // deduct the line count of the previous line - $this->lines -= (int) ceil($this->getDisplayLength($lastLine) / $width) ?: 1; - // concatenate previous and new line - $lineContent = $lastLine.$lineContent; - // replace last entry of `$this->content` with the new expanded line - array_splice($this->content, -1, 1, $lineContent); - } else { - // otherwise just add the new content - $this->content[] = $lineContent; - } - - $linesAdded += (int) ceil($this->getDisplayLength($lineContent) / $width) ?: 1; - } - - $this->lines += $linesAdded; - - return $linesAdded; - } - - /** - * @internal - */ - public function addNewLineOfInputSubmit(): void - { - $this->content[] = \PHP_EOL; - ++$this->lines; - } - - /** - * @return void - */ - protected function doWrite(string $message, bool $newline) - { - // Simulate newline behavior for consistent output formatting, avoiding extra logic - if (!$newline && str_ends_with($message, \PHP_EOL)) { - $message = substr($message, 0, -\strlen(\PHP_EOL)); - $newline = true; - } - - if (!$this->isDecorated()) { - parent::doWrite($message, $newline); - - return; - } - - // Check if the previous line (last entry of `$this->content`) needs to be continued - // (i.e. does not end with a line break). In which case, it needs to be erased first. - $linesToClear = $deleteLastLine = ($lastLine = end($this->content) ?: '') && !str_ends_with($lastLine, \PHP_EOL) ? 1 : 0; - - $linesAdded = $this->addContent($message, $newline); - - if ($lineOverflow = $this->maxHeight > 0 && $this->lines > $this->maxHeight) { - // on overflow, clear the whole section and redraw again (to remove the first lines) - $linesToClear = $this->maxHeight; - } - - $erasedContent = $this->popStreamContentUntilCurrentSection($linesToClear); - - if ($lineOverflow) { - // redraw existing lines of the section - $previousLinesOfSection = \array_slice($this->content, $this->lines - $this->maxHeight, $this->maxHeight - $linesAdded); - parent::doWrite(implode('', $previousLinesOfSection), false); - } - - // if the last line was removed, re-print its content together with the new content. - // otherwise, just print the new content. - parent::doWrite($deleteLastLine ? $lastLine.$message : $message, true); - parent::doWrite($erasedContent, false); - } - - /** - * At initial stage, cursor is at the end of stream output. This method makes cursor crawl upwards until it hits - * current section. Then it erases content it crawled through. Optionally, it erases part of current section too. - */ - private function popStreamContentUntilCurrentSection(int $numberOfLinesToClearFromCurrentSection = 0): string - { - $numberOfLinesToClear = $numberOfLinesToClearFromCurrentSection; - $erasedContent = []; - - foreach ($this->sections as $section) { - if ($section === $this) { - break; - } - - $numberOfLinesToClear += $section->maxHeight ? min($section->lines, $section->maxHeight) : $section->lines; - if ('' !== $sectionContent = $section->getVisibleContent()) { - if (!str_ends_with($sectionContent, \PHP_EOL)) { - $sectionContent .= \PHP_EOL; - } - $erasedContent[] = $sectionContent; - } - } - - if ($numberOfLinesToClear > 0) { - // move cursor up n lines - parent::doWrite(sprintf("\x1b[%dA", $numberOfLinesToClear), false); - // erase to end of screen - parent::doWrite("\x1b[0J", false); - } - - return implode('', array_reverse($erasedContent)); - } - - private function getDisplayLength(string $text): int - { - return Helper::width(Helper::removeDecoration($this->getFormatter(), str_replace("\t", ' ', $text))); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/NullOutput.php b/projects/priceservice/vendor/symfony/console/Output/NullOutput.php deleted file mode 100644 index f3aa15b..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/NullOutput.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Formatter\NullOutputFormatter; -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * NullOutput suppresses all output. - * - * $output = new NullOutput(); - * - * @author Fabien Potencier - * @author Tobias Schultze - */ -class NullOutput implements OutputInterface -{ - private NullOutputFormatter $formatter; - - /** - * @return void - */ - public function setFormatter(OutputFormatterInterface $formatter) - { - // do nothing - } - - public function getFormatter(): OutputFormatterInterface - { - // to comply with the interface we must return a OutputFormatterInterface - return $this->formatter ??= new NullOutputFormatter(); - } - - /** - * @return void - */ - public function setDecorated(bool $decorated) - { - // do nothing - } - - public function isDecorated(): bool - { - return false; - } - - /** - * @return void - */ - public function setVerbosity(int $level) - { - // do nothing - } - - public function getVerbosity(): int - { - return self::VERBOSITY_QUIET; - } - - public function isQuiet(): bool - { - return true; - } - - public function isVerbose(): bool - { - return false; - } - - public function isVeryVerbose(): bool - { - return false; - } - - public function isDebug(): bool - { - return false; - } - - /** - * @return void - */ - public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL) - { - // do nothing - } - - /** - * @return void - */ - public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) - { - // do nothing - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/Output.php b/projects/priceservice/vendor/symfony/console/Output/Output.php deleted file mode 100644 index 00f481e..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/Output.php +++ /dev/null @@ -1,155 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * Base class for output classes. - * - * There are five levels of verbosity: - * - * * normal: no option passed (normal output) - * * verbose: -v (more output) - * * very verbose: -vv (highly extended output) - * * debug: -vvv (all debug output) - * * quiet: -q (no output) - * - * @author Fabien Potencier - */ -abstract class Output implements OutputInterface -{ - private int $verbosity; - private OutputFormatterInterface $formatter; - - /** - * @param int|null $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface) - * @param bool $decorated Whether to decorate messages - * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) - */ - public function __construct(?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, ?OutputFormatterInterface $formatter = null) - { - $this->verbosity = $verbosity ?? self::VERBOSITY_NORMAL; - $this->formatter = $formatter ?? new OutputFormatter(); - $this->formatter->setDecorated($decorated); - } - - /** - * @return void - */ - public function setFormatter(OutputFormatterInterface $formatter) - { - $this->formatter = $formatter; - } - - public function getFormatter(): OutputFormatterInterface - { - return $this->formatter; - } - - /** - * @return void - */ - public function setDecorated(bool $decorated) - { - $this->formatter->setDecorated($decorated); - } - - public function isDecorated(): bool - { - return $this->formatter->isDecorated(); - } - - /** - * @return void - */ - public function setVerbosity(int $level) - { - $this->verbosity = $level; - } - - public function getVerbosity(): int - { - return $this->verbosity; - } - - public function isQuiet(): bool - { - return self::VERBOSITY_QUIET === $this->verbosity; - } - - public function isVerbose(): bool - { - return self::VERBOSITY_VERBOSE <= $this->verbosity; - } - - public function isVeryVerbose(): bool - { - return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity; - } - - public function isDebug(): bool - { - return self::VERBOSITY_DEBUG <= $this->verbosity; - } - - /** - * @return void - */ - public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL) - { - $this->write($messages, true, $options); - } - - /** - * @return void - */ - public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) - { - if (!is_iterable($messages)) { - $messages = [$messages]; - } - - $types = self::OUTPUT_NORMAL | self::OUTPUT_RAW | self::OUTPUT_PLAIN; - $type = $types & $options ?: self::OUTPUT_NORMAL; - - $verbosities = self::VERBOSITY_QUIET | self::VERBOSITY_NORMAL | self::VERBOSITY_VERBOSE | self::VERBOSITY_VERY_VERBOSE | self::VERBOSITY_DEBUG; - $verbosity = $verbosities & $options ?: self::VERBOSITY_NORMAL; - - if ($verbosity > $this->getVerbosity()) { - return; - } - - foreach ($messages as $message) { - switch ($type) { - case OutputInterface::OUTPUT_NORMAL: - $message = $this->formatter->format($message); - break; - case OutputInterface::OUTPUT_RAW: - break; - case OutputInterface::OUTPUT_PLAIN: - $message = strip_tags($this->formatter->format($message)); - break; - } - - $this->doWrite($message ?? '', $newline); - } - } - - /** - * Writes a message to the output. - * - * @return void - */ - abstract protected function doWrite(string $message, bool $newline); -} diff --git a/projects/priceservice/vendor/symfony/console/Output/OutputInterface.php b/projects/priceservice/vendor/symfony/console/Output/OutputInterface.php deleted file mode 100644 index 19a8179..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/OutputInterface.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * OutputInterface is the interface implemented by all Output classes. - * - * @author Fabien Potencier - */ -interface OutputInterface -{ - public const VERBOSITY_QUIET = 16; - public const VERBOSITY_NORMAL = 32; - public const VERBOSITY_VERBOSE = 64; - public const VERBOSITY_VERY_VERBOSE = 128; - public const VERBOSITY_DEBUG = 256; - - public const OUTPUT_NORMAL = 1; - public const OUTPUT_RAW = 2; - public const OUTPUT_PLAIN = 4; - - /** - * Writes a message to the output. - * - * @param bool $newline Whether to add a newline - * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), - * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL - * - * @return void - */ - public function write(string|iterable $messages, bool $newline = false, int $options = 0); - - /** - * Writes a message to the output and adds a newline at the end. - * - * @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), - * 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL - * - * @return void - */ - public function writeln(string|iterable $messages, int $options = 0); - - /** - * Sets the verbosity of the output. - * - * @param self::VERBOSITY_* $level - * - * @return void - */ - public function setVerbosity(int $level); - - /** - * Gets the current verbosity of the output. - * - * @return self::VERBOSITY_* - */ - public function getVerbosity(): int; - - /** - * Returns whether verbosity is quiet (-q). - */ - public function isQuiet(): bool; - - /** - * Returns whether verbosity is verbose (-v). - */ - public function isVerbose(): bool; - - /** - * Returns whether verbosity is very verbose (-vv). - */ - public function isVeryVerbose(): bool; - - /** - * Returns whether verbosity is debug (-vvv). - */ - public function isDebug(): bool; - - /** - * Sets the decorated flag. - * - * @return void - */ - public function setDecorated(bool $decorated); - - /** - * Gets the decorated flag. - */ - public function isDecorated(): bool; - - /** - * @return void - */ - public function setFormatter(OutputFormatterInterface $formatter); - - /** - * Returns current output formatter instance. - */ - public function getFormatter(): OutputFormatterInterface; -} diff --git a/projects/priceservice/vendor/symfony/console/Output/StreamOutput.php b/projects/priceservice/vendor/symfony/console/Output/StreamOutput.php deleted file mode 100644 index f51d037..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/StreamOutput.php +++ /dev/null @@ -1,125 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * StreamOutput writes the output to a given stream. - * - * Usage: - * - * $output = new StreamOutput(fopen('php://stdout', 'w')); - * - * As `StreamOutput` can use any stream, you can also use a file: - * - * $output = new StreamOutput(fopen('/path/to/output.log', 'a', false)); - * - * @author Fabien Potencier - */ -class StreamOutput extends Output -{ - /** @var resource */ - private $stream; - - /** - * @param resource $stream A stream resource - * @param int $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface) - * @param bool|null $decorated Whether to decorate messages (null for auto-guessing) - * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) - * - * @throws InvalidArgumentException When first argument is not a real stream - */ - public function __construct($stream, int $verbosity = self::VERBOSITY_NORMAL, ?bool $decorated = null, ?OutputFormatterInterface $formatter = null) - { - if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) { - throw new InvalidArgumentException('The StreamOutput class needs a stream as its first argument.'); - } - - $this->stream = $stream; - - $decorated ??= $this->hasColorSupport(); - - parent::__construct($verbosity, $decorated, $formatter); - } - - /** - * Gets the stream attached to this StreamOutput instance. - * - * @return resource - */ - public function getStream() - { - return $this->stream; - } - - /** - * @return void - */ - protected function doWrite(string $message, bool $newline) - { - if ($newline) { - $message .= \PHP_EOL; - } - - @fwrite($this->stream, $message); - - fflush($this->stream); - } - - /** - * Returns true if the stream supports colorization. - * - * Colorization is disabled if not supported by the stream: - * - * This is tricky on Windows, because Cygwin, Msys2 etc emulate pseudo - * terminals via named pipes, so we can only check the environment. - * - * Reference: Composer\XdebugHandler\Process::supportsColor - * https://github.com/composer/xdebug-handler - * - * @return bool true if the stream supports colorization, false otherwise - */ - protected function hasColorSupport(): bool - { - // Follow https://no-color.org/ - if ('' !== (($_SERVER['NO_COLOR'] ?? getenv('NO_COLOR'))[0] ?? '')) { - return false; - } - - // Detect msysgit/mingw and assume this is a tty because detection - // does not work correctly, see https://github.com/composer/composer/issues/9690 - if (!@stream_isatty($this->stream) && !\in_array(strtoupper((string) getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], true)) { - return false; - } - - if ('\\' === \DIRECTORY_SEPARATOR && @sapi_windows_vt100_support($this->stream)) { - return true; - } - - if ('Hyper' === getenv('TERM_PROGRAM') - || false !== getenv('COLORTERM') - || false !== getenv('ANSICON') - || 'ON' === getenv('ConEmuANSI') - ) { - return true; - } - - if ('dumb' === $term = (string) getenv('TERM')) { - return false; - } - - // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 - return preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Output/TrimmedBufferOutput.php b/projects/priceservice/vendor/symfony/console/Output/TrimmedBufferOutput.php deleted file mode 100644 index 23a2be8..0000000 --- a/projects/priceservice/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Output; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Formatter\OutputFormatterInterface; - -/** - * A BufferedOutput that keeps only the last N chars. - * - * @author Jérémy Derussé - */ -class TrimmedBufferOutput extends Output -{ - private int $maxLength; - private string $buffer = ''; - - public function __construct(int $maxLength, ?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, ?OutputFormatterInterface $formatter = null) - { - if ($maxLength <= 0) { - throw new InvalidArgumentException(sprintf('"%s()" expects a strictly positive maxLength. Got %d.', __METHOD__, $maxLength)); - } - - parent::__construct($verbosity, $decorated, $formatter); - $this->maxLength = $maxLength; - } - - /** - * Empties buffer and returns its content. - */ - public function fetch(): string - { - $content = $this->buffer; - $this->buffer = ''; - - return $content; - } - - /** - * @return void - */ - protected function doWrite(string $message, bool $newline) - { - $this->buffer .= $message; - - if ($newline) { - $this->buffer .= \PHP_EOL; - } - - $this->buffer = substr($this->buffer, 0 - $this->maxLength); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Question/ChoiceQuestion.php b/projects/priceservice/vendor/symfony/console/Question/ChoiceQuestion.php deleted file mode 100644 index 465f318..0000000 --- a/projects/priceservice/vendor/symfony/console/Question/ChoiceQuestion.php +++ /dev/null @@ -1,177 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Question; - -use Symfony\Component\Console\Exception\InvalidArgumentException; - -/** - * Represents a choice question. - * - * @author Fabien Potencier - */ -class ChoiceQuestion extends Question -{ - private array $choices; - private bool $multiselect = false; - private string $prompt = ' > '; - private string $errorMessage = 'Value "%s" is invalid'; - - /** - * @param string $question The question to ask to the user - * @param array $choices The list of available choices - * @param string|bool|int|float|null $default The default answer to return - */ - public function __construct(string $question, array $choices, string|bool|int|float|null $default = null) - { - if (!$choices) { - throw new \LogicException('Choice question must have at least 1 choice available.'); - } - - parent::__construct($question, $default); - - $this->choices = $choices; - $this->setValidator($this->getDefaultValidator()); - $this->setAutocompleterValues($choices); - } - - /** - * Returns available choices. - */ - public function getChoices(): array - { - return $this->choices; - } - - /** - * Sets multiselect option. - * - * When multiselect is set to true, multiple choices can be answered. - * - * @return $this - */ - public function setMultiselect(bool $multiselect): static - { - $this->multiselect = $multiselect; - $this->setValidator($this->getDefaultValidator()); - - return $this; - } - - /** - * Returns whether the choices are multiselect. - */ - public function isMultiselect(): bool - { - return $this->multiselect; - } - - /** - * Gets the prompt for choices. - */ - public function getPrompt(): string - { - return $this->prompt; - } - - /** - * Sets the prompt for choices. - * - * @return $this - */ - public function setPrompt(string $prompt): static - { - $this->prompt = $prompt; - - return $this; - } - - /** - * Sets the error message for invalid values. - * - * The error message has a string placeholder (%s) for the invalid value. - * - * @return $this - */ - public function setErrorMessage(string $errorMessage): static - { - $this->errorMessage = $errorMessage; - $this->setValidator($this->getDefaultValidator()); - - return $this; - } - - private function getDefaultValidator(): callable - { - $choices = $this->choices; - $errorMessage = $this->errorMessage; - $multiselect = $this->multiselect; - $isAssoc = $this->isAssoc($choices); - - return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) { - if ($multiselect) { - // Check for a separated comma values - if (!preg_match('/^[^,]+(?:,[^,]+)*$/', (string) $selected, $matches)) { - throw new InvalidArgumentException(sprintf($errorMessage, $selected)); - } - - $selectedChoices = explode(',', (string) $selected); - } else { - $selectedChoices = [$selected]; - } - - if ($this->isTrimmable()) { - foreach ($selectedChoices as $k => $v) { - $selectedChoices[$k] = trim((string) $v); - } - } - - $multiselectChoices = []; - foreach ($selectedChoices as $value) { - $results = []; - foreach ($choices as $key => $choice) { - if ($choice === $value) { - $results[] = $key; - } - } - - if (\count($results) > 1) { - throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of "%s".', implode('" or "', $results))); - } - - $result = array_search($value, $choices); - - if (!$isAssoc) { - if (false !== $result) { - $result = $choices[$result]; - } elseif (isset($choices[$value])) { - $result = $choices[$value]; - } - } elseif (false === $result && isset($choices[$value])) { - $result = $value; - } - - if (false === $result) { - throw new InvalidArgumentException(sprintf($errorMessage, $value)); - } - - // For associative choices, consistently return the key as string: - $multiselectChoices[] = $isAssoc ? (string) $result : $result; - } - - if ($multiselect) { - return $multiselectChoices; - } - - return current($multiselectChoices); - }; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Question/ConfirmationQuestion.php b/projects/priceservice/vendor/symfony/console/Question/ConfirmationQuestion.php deleted file mode 100644 index 40eab24..0000000 --- a/projects/priceservice/vendor/symfony/console/Question/ConfirmationQuestion.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Question; - -/** - * Represents a yes/no question. - * - * @author Fabien Potencier - */ -class ConfirmationQuestion extends Question -{ - private string $trueAnswerRegex; - - /** - * @param string $question The question to ask to the user - * @param bool $default The default answer to return, true or false - * @param string $trueAnswerRegex A regex to match the "yes" answer - */ - public function __construct(string $question, bool $default = true, string $trueAnswerRegex = '/^y/i') - { - parent::__construct($question, $default); - - $this->trueAnswerRegex = $trueAnswerRegex; - $this->setNormalizer($this->getDefaultNormalizer()); - } - - /** - * Returns the default answer normalizer. - */ - private function getDefaultNormalizer(): callable - { - $default = $this->getDefault(); - $regex = $this->trueAnswerRegex; - - return function ($answer) use ($default, $regex) { - if (\is_bool($answer)) { - return $answer; - } - - $answerIsTrue = (bool) preg_match($regex, $answer); - if (false === $default) { - return $answer && $answerIsTrue; - } - - return '' === $answer || $answerIsTrue; - }; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Question/Question.php b/projects/priceservice/vendor/symfony/console/Question/Question.php deleted file mode 100644 index 94c688f..0000000 --- a/projects/priceservice/vendor/symfony/console/Question/Question.php +++ /dev/null @@ -1,291 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Question; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\LogicException; - -/** - * Represents a Question. - * - * @author Fabien Potencier - */ -class Question -{ - private string $question; - private ?int $attempts = null; - private bool $hidden = false; - private bool $hiddenFallback = true; - private ?\Closure $autocompleterCallback = null; - private ?\Closure $validator = null; - private string|int|bool|null|float $default; - private ?\Closure $normalizer = null; - private bool $trimmable = true; - private bool $multiline = false; - - /** - * @param string $question The question to ask to the user - * @param string|bool|int|float|null $default The default answer to return if the user enters nothing - */ - public function __construct(string $question, string|bool|int|float|null $default = null) - { - $this->question = $question; - $this->default = $default; - } - - /** - * Returns the question. - */ - public function getQuestion(): string - { - return $this->question; - } - - /** - * Returns the default answer. - */ - public function getDefault(): string|bool|int|float|null - { - return $this->default; - } - - /** - * Returns whether the user response accepts newline characters. - */ - public function isMultiline(): bool - { - return $this->multiline; - } - - /** - * Sets whether the user response should accept newline characters. - * - * @return $this - */ - public function setMultiline(bool $multiline): static - { - $this->multiline = $multiline; - - return $this; - } - - /** - * Returns whether the user response must be hidden. - */ - public function isHidden(): bool - { - return $this->hidden; - } - - /** - * Sets whether the user response must be hidden or not. - * - * @return $this - * - * @throws LogicException In case the autocompleter is also used - */ - public function setHidden(bool $hidden): static - { - if ($this->autocompleterCallback) { - throw new LogicException('A hidden question cannot use the autocompleter.'); - } - - $this->hidden = $hidden; - - return $this; - } - - /** - * In case the response cannot be hidden, whether to fallback on non-hidden question or not. - */ - public function isHiddenFallback(): bool - { - return $this->hiddenFallback; - } - - /** - * Sets whether to fallback on non-hidden question if the response cannot be hidden. - * - * @return $this - */ - public function setHiddenFallback(bool $fallback): static - { - $this->hiddenFallback = $fallback; - - return $this; - } - - /** - * Gets values for the autocompleter. - */ - public function getAutocompleterValues(): ?iterable - { - $callback = $this->getAutocompleterCallback(); - - return $callback ? $callback('') : null; - } - - /** - * Sets values for the autocompleter. - * - * @return $this - * - * @throws LogicException - */ - public function setAutocompleterValues(?iterable $values): static - { - if (\is_array($values)) { - $values = $this->isAssoc($values) ? array_merge(array_keys($values), array_values($values)) : array_values($values); - - $callback = static fn () => $values; - } elseif ($values instanceof \Traversable) { - $callback = static function () use ($values) { - static $valueCache; - - return $valueCache ??= iterator_to_array($values, false); - }; - } else { - $callback = null; - } - - return $this->setAutocompleterCallback($callback); - } - - /** - * Gets the callback function used for the autocompleter. - */ - public function getAutocompleterCallback(): ?callable - { - return $this->autocompleterCallback; - } - - /** - * Sets the callback function used for the autocompleter. - * - * The callback is passed the user input as argument and should return an iterable of corresponding suggestions. - * - * @return $this - */ - public function setAutocompleterCallback(?callable $callback = null): static - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - if ($this->hidden && null !== $callback) { - throw new LogicException('A hidden question cannot use the autocompleter.'); - } - - $this->autocompleterCallback = null === $callback ? null : $callback(...); - - return $this; - } - - /** - * Sets a validator for the question. - * - * @return $this - */ - public function setValidator(?callable $validator = null): static - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->validator = null === $validator ? null : $validator(...); - - return $this; - } - - /** - * Gets the validator for the question. - */ - public function getValidator(): ?callable - { - return $this->validator; - } - - /** - * Sets the maximum number of attempts. - * - * Null means an unlimited number of attempts. - * - * @return $this - * - * @throws InvalidArgumentException in case the number of attempts is invalid - */ - public function setMaxAttempts(?int $attempts): static - { - if (null !== $attempts && $attempts < 1) { - throw new InvalidArgumentException('Maximum number of attempts must be a positive value.'); - } - - $this->attempts = $attempts; - - return $this; - } - - /** - * Gets the maximum number of attempts. - * - * Null means an unlimited number of attempts. - */ - public function getMaxAttempts(): ?int - { - return $this->attempts; - } - - /** - * Sets a normalizer for the response. - * - * The normalizer can be a callable (a string), a closure or a class implementing __invoke. - * - * @return $this - */ - public function setNormalizer(callable $normalizer): static - { - $this->normalizer = $normalizer(...); - - return $this; - } - - /** - * Gets the normalizer for the response. - * - * The normalizer can ba a callable (a string), a closure or a class implementing __invoke. - */ - public function getNormalizer(): ?callable - { - return $this->normalizer; - } - - /** - * @return bool - */ - protected function isAssoc(array $array) - { - return (bool) \count(array_filter(array_keys($array), 'is_string')); - } - - public function isTrimmable(): bool - { - return $this->trimmable; - } - - /** - * @return $this - */ - public function setTrimmable(bool $trimmable): static - { - $this->trimmable = $trimmable; - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/console/README.md b/projects/priceservice/vendor/symfony/console/README.md deleted file mode 100644 index e901318..0000000 --- a/projects/priceservice/vendor/symfony/console/README.md +++ /dev/null @@ -1,36 +0,0 @@ -Console Component -================= - -The Console component eases the creation of beautiful and testable command line -interfaces. - -Sponsor -------- - -The Console component for Symfony 6.4 is [backed][1] by [Les-Tilleuls.coop][2]. - -Les-Tilleuls.coop is a team of 70+ Symfony experts who can help you design, develop and -fix your projects. They provide a wide range of professional services including development, -consulting, coaching, training and audits. They also are highly skilled in JS, Go and DevOps. -They are a worker cooperative! - -Help Symfony by [sponsoring][3] its development! - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/console.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) - -Credits -------- - -`Resources/bin/hiddeninput.exe` is a third party binary provided within this -component. Find sources and license at https://github.com/Seldaek/hidden-input. - -[1]: https://symfony.com/backers -[2]: https://les-tilleuls.coop -[3]: https://symfony.com/sponsor diff --git a/projects/priceservice/vendor/symfony/console/Resources/bin/hiddeninput.exe b/projects/priceservice/vendor/symfony/console/Resources/bin/hiddeninput.exe deleted file mode 100644 index c8cf65e8d819e6e525121cf6b21f1c2429746038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 zcmeHNe{@sVeZR8hV88~S)=Hp|Mpn({rC^@)BwNOI{ERJXCYlx+k1K6PLHo z_e!z_fhOzeA3JTX&-Z@s{rFOgjEwBlqjr!)9f zjyHz`A+ni`!0Taby{Uj5Y>jQq(k5A+X})PLWAi|{IZbtc8n^^trM{GI=P_15U6d?l zJJ3PW8XjfHpR}6`k{&5@JcEeH_SqQoQbU62o2YS30W)p_t&Fjy*RXQCZt$gCf|ao| zx&3R}m6|-Lfi@pua=$26n(UlnWo$>K67*|+#(qL_An=?l0M02AhOSJDv3;~?1ORfw z76EdK#MpSHqACHLcnJLIYlCSiX4eS@Pr8rN)Xwz0dk7O*y^0_C(Yks2Kvg! z-d-fJ)F9@k?>)m(XqDKIe2OKfhCQde9fpO0ko24yn*4xzX7q+ze`Z*=aJgwV?D?73 zaJ8UkSk|NN>@-|mB*f`EIK7$ElgAB<7p&p`^Vuq$58#;?B^*Bz7&d$B#+AYUC z(^m|`7{lqx&b^5$;i`j|S!+u|lcaQplp_&Nb)!>r>vGh3wb!tW zLq6%bkSt8jO|(vWH>LiPV(Xkp%BiGhl1q!PXXNKVKE!>Y5cHc2%cJOJA{-&ZsSn`T z#8~TA#(HWH4m>uCd+kCMTFgMI*s*n3!iCOwEI`{vGcVhzDu!Lw%-Ea^JATtrF`q3`+#KvvYJ0vM~A}D#LOD zlw`4ncB0U*Jji=--Wz#>I&5?hy;MgYW2u91d8ob=7MWfY`u;7Xe-J{Qsb0=0p|SM2 zG|=~mERIj4?gi)Ew|{LIN#oAsh20k_khIYjJBBN6rrIJ=eQO=nE;rTnPSiaQS$1$# z+|JRh0!IbQIa*f1(TZ}QM;|WO0+jTy(e)ggN4>zqp2E>C>hGPLHjHBh--2%@{EZNE zbUk{<3MABX&20QwK{MxK8`1Vk>^%dO5i@VTfu>NG3$K4NC=hSPsj9UYy`rNO}sBnB9QdKdIk7G+2_amnWstdTYVg z7HgLJGC~XLZG`63GwH8PdO_+G(k6~?J8Wj5mQos#21kC4W#2)guQXI)!z^{@F)U)5 z*re+r(2dib3D4P~%Z6TL=$PIkpmm<_#isu%t=%DcIwNkJhMeJ|bpahHO%8h|y~Ccf zUg#xVk+dyu>Q1O7JZ~8KS>tqi0qK**X*y6yHM71`bT=kFZ=@E%oe2!Km1^2sa>v+onZ%x_>aOJF+N0{i~z|<(IzgT*{0PpQq}E zQpU35@bm;qI?t_znGI&5&4sZV>+%m}w$(4hSDvLk)l<{5XyMlnCl7C%AjM3XnWvVz z{NoFsX)JB)SoqABZxUa*Yq+^^(cbq4mL%^lO12c${z{pf+)|kTTI~nQywyYF6}6|8 zlsN9&{-vwTrTyu<5^90_AsIU-ID#ZG@6d%poU44<**%xVe?`uxf}_Mr$SLHLS|K_N zQnw>(Lr2U=%$-<2D~RSzbG)2W2u^KMDnFFE?GmmbQ)V)fty957F`4OvQ_25E68ITr z5?`suu`|v?r!y=gFOGj$%9IJ zuTP=&2GcnoZZ0qSe6YL-*-lg>Q#>?Ew`a=GDc4vI#<1sNdKn?n7iSj0Orl$-#FMFi zykr>X-Xvi>sVr;92+8*H!r|3L$#o~hXa0z>AmF=z z?|@FF;*S|S0yqsw0j>Z(3mX-HD!|{N-vYc9paC8Ld=|6?00!6(_%lERupO`&um*4k z0b~W>e*uhTe4;V;mq>(ox$9FB`wLt!*DKj~!aOh|fL&#Pg*b??tm%5~_6M#02wqeC zS~wO>TWGnSp^r<0&8f2V6W->w=C+p~daC5e5wNQM*(* z66^}b0(!q3)zq$mu&VnbR#nr3;h5DS*o7{y66=!#;Dy4$pd1ZH<6WEOi0oJ8SxRL* z*v-9@Z^2w%^S(w5dO{_9Duby%2RT~;ppxaE$l()x6&}>7Wcg=u_&>f`Vs8OJGTy{X z2HpG=ThJz<{%|4Qq-~ad0qcrc87n88DHpM(nypwXIkZn<{zIT$ul&BQ?{ApCAZtyr zs2YpNt@x(G*faTU*HCKnAk(G=Tl~>r1QK8LY~J8mFFGoN5iIkYSwlm4Lsj#g4dsE5 zU-4;*Kdh-zv!rT4N$O}Q&n)?v0-9Y)lRFz58^P-KtKonzrfQ1p@0V_10^0||cGRn9 zRG<-#_TEV2nn4{BOh{YVBR4e!V!D?0K%BAlQN!D%M#k1bHypiIHT)5tlj>p0Pp_;+ z!cqC-JIs@JRhB+#teGs$Cib_=(yjRo4OJg^YPg%58aJVsC(LQ?W6%pn!-#aMZwoPcopo^Rn6BE z3=c5&W5~pP(C(-2r;PnH-S0{F`runM0ERCf3rESX$+S(MKOXmKJL9zXF}9-lf^xUs z+bb)+P%L&gV@<4q{6w^xEJ>Y>TQFUeoz0o-yq)jUqww=?wjUO8Y{a5G;DJ0Jr!LL+ zWhgsLuzi&eDrGDn$2DJwpFfH-?SGWbr>qRb?v{P`_%)So)CQgzO^HQ%;y#tJ=knH4 z95jX;^bF#BiuTH^%-j}{9VrZD=R%Q%wselH^p>5 z7d>gWB-st&3Fj%Mt*|tR5iK3J=`xhs&G)I7E>`FO@o7L z@S$B!pYMuzz5DN@X!O4DPm5n@raPJn-Q#o*m*e^5lk$g?0esg%$;>g5QW-|;c=H2GM}bo2tW^D924wmOkrUbWxcQ# z#v6bP%Tdfe~jtCRzAL;-OahZ=#yvUixu2-9fD2j$*|YY`F?0wF-{a# ztr<&kZjZ+81}6ZESqtgW)8kP#s@VLTSUR{}6?U^R*x7RE3Rl&n=VnFFqg9Uqz1n@N9N|=9<4} zuJfy^+}|D9X&vm3MAdqmu0&UMd^=K>b1hLAm_E!$rZC2b;;T~Dl zI`Eo_yRY76uM})|6wk9->of(=9&4jLv5#p@OzS~Yl>@pG)^>6`R+KtL{<4ly4o9WiM!%p_pfROU354)e8PIeE z1_s?#;OX6waNvvb&UQRN(WLbR+}&b#jo&WY-LlwCX}Q*$jGuKYuOGoIoyR(>e}}ix z+t}Q^cEcC8Y{@h}>HmJ^gD!l@gzwHmiBKl26x_lZVZG2UY!`w;RJd122;US&geQdW z3Qq}R!gIo5;ka;0I4c-Jq5X6A6?VzK&c4y!ZXdAUYu{r}*!SBXw?Aor+J4-A(*COb zb^CwV-?3k`zi-cX*c`VzL`RLI(b4MgIrGN z%ojf`E*6)Gg1A9!7q^N##2zsss^V9~-Qt7d!{UDNZ^XY9pA^3@9ui*?e=7c5d`nD; z?}~R(p>y1Kw!>|X4ycYEAkcZa*n-R%y! zqi)Up756UpqwfE7=hfigw$k~G@25gaxF9UGTkV>C(7x1Rbx4jb#|}rxq0vQ!n-c#f J0sQ~1{4brj`U(I5 diff --git a/projects/priceservice/vendor/symfony/console/Resources/completion.bash b/projects/priceservice/vendor/symfony/console/Resources/completion.bash deleted file mode 100644 index 64c6a33..0000000 --- a/projects/priceservice/vendor/symfony/console/Resources/completion.bash +++ /dev/null @@ -1,94 +0,0 @@ -# This file is part of the Symfony package. -# -# (c) Fabien Potencier -# -# For the full copyright and license information, please view -# https://symfony.com/doc/current/contributing/code/license.html - -_sf_{{ COMMAND_NAME }}() { - - # Use the default completion for shell redirect operators. - for w in '>' '>>' '&>' '<'; do - if [[ $w = "${COMP_WORDS[COMP_CWORD-1]}" ]]; then - compopt -o filenames - COMPREPLY=($(compgen -f -- "${COMP_WORDS[COMP_CWORD]}")) - return 0 - fi - done - - # Use newline as only separator to allow space in completion values - local IFS=$'\n' - local sf_cmd="${COMP_WORDS[0]}" - - # for an alias, get the real script behind it - sf_cmd_type=$(type -t $sf_cmd) - if [[ $sf_cmd_type == "alias" ]]; then - sf_cmd=$(alias $sf_cmd | sed -E "s/alias $sf_cmd='(.*)'/\1/") - elif [[ $sf_cmd_type == "file" ]]; then - sf_cmd=$(type -p $sf_cmd) - fi - - if [[ $sf_cmd_type != "function" && ! -x $sf_cmd ]]; then - return 1 - fi - - local cur prev words cword - _get_comp_words_by_ref -n := cur prev words cword - - local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-a{{ VERSION }}") - for w in ${words[@]}; do - w=$(printf -- '%b' "$w") - # remove quotes from typed values - quote="${w:0:1}" - if [ "$quote" == \' ]; then - w="${w%\'}" - w="${w#\'}" - elif [ "$quote" == \" ]; then - w="${w%\"}" - w="${w#\"}" - fi - # empty values are ignored - if [ ! -z "$w" ]; then - completecmd+=("-i$w") - fi - done - - local sfcomplete - if sfcomplete=$(${completecmd[@]} 2>&1); then - local quote suggestions - quote=${cur:0:1} - - # Use single quotes by default if suggestions contains backslash (FQCN) - if [ "$quote" == '' ] && [[ "$sfcomplete" =~ \\ ]]; then - quote=\' - fi - - if [ "$quote" == \' ]; then - # single quotes: no additional escaping (does not accept ' in values) - suggestions=$(for s in $sfcomplete; do printf $'%q%q%q\n' "$quote" "$s" "$quote"; done) - elif [ "$quote" == \" ]; then - # double quotes: double escaping for \ $ ` " - suggestions=$(for s in $sfcomplete; do - s=${s//\\/\\\\} - s=${s//\$/\\\$} - s=${s//\`/\\\`} - s=${s//\"/\\\"} - printf $'%q%q%q\n' "$quote" "$s" "$quote"; - done) - else - # no quotes: double escaping - suggestions=$(for s in $sfcomplete; do printf $'%q\n' $(printf '%q' "$s"); done) - fi - COMPREPLY=($(IFS=$'\n' compgen -W "$suggestions" -- $(printf -- "%q" "$cur"))) - __ltrim_colon_completions "$cur" - else - if [[ "$sfcomplete" != *"Command \"_complete\" is not defined."* ]]; then - >&2 echo - >&2 echo $sfcomplete - fi - - return 1 - fi -} - -complete -F _sf_{{ COMMAND_NAME }} {{ COMMAND_NAME }} diff --git a/projects/priceservice/vendor/symfony/console/Resources/completion.fish b/projects/priceservice/vendor/symfony/console/Resources/completion.fish deleted file mode 100644 index 1c34292..0000000 --- a/projects/priceservice/vendor/symfony/console/Resources/completion.fish +++ /dev/null @@ -1,29 +0,0 @@ -# This file is part of the Symfony package. -# -# (c) Fabien Potencier -# -# For the full copyright and license information, please view -# https://symfony.com/doc/current/contributing/code/license.html - -function _sf_{{ COMMAND_NAME }} - set sf_cmd (commandline -o) - set c (count (commandline -oc)) - - set completecmd "$sf_cmd[1]" "_complete" "--no-interaction" "-sfish" "-a{{ VERSION }}" - - for i in $sf_cmd - if [ $i != "" ] - set completecmd $completecmd "-i$i" - end - end - - set completecmd $completecmd "-c$c" - - set sfcomplete ($completecmd) - - for i in $sfcomplete - echo $i - end -end - -complete -c '{{ COMMAND_NAME }}' -a '(_sf_{{ COMMAND_NAME }})' -f diff --git a/projects/priceservice/vendor/symfony/console/Resources/completion.zsh b/projects/priceservice/vendor/symfony/console/Resources/completion.zsh deleted file mode 100644 index ff76fe5..0000000 --- a/projects/priceservice/vendor/symfony/console/Resources/completion.zsh +++ /dev/null @@ -1,82 +0,0 @@ -#compdef {{ COMMAND_NAME }} - -# This file is part of the Symfony package. -# -# (c) Fabien Potencier -# -# For the full copyright and license information, please view -# https://symfony.com/doc/current/contributing/code/license.html - -# -# zsh completions for {{ COMMAND_NAME }} -# -# References: -# - https://github.com/spf13/cobra/blob/master/zsh_completions.go -# - https://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/Console/Resources/completion.bash -# -_sf_{{ COMMAND_NAME }}() { - local lastParam flagPrefix requestComp out comp - local -a completions - - # The user could have moved the cursor backwards on the command-line. - # We need to trigger completion from the $CURRENT location, so we need - # to truncate the command-line ($words) up to the $CURRENT location. - # (We cannot use $CURSOR as its value does not work when a command is an alias.) - words=("${=words[1,CURRENT]}") lastParam=${words[-1]} - - # For zsh, when completing a flag with an = (e.g., {{ COMMAND_NAME }} -n=) - # completions must be prefixed with the flag - setopt local_options BASH_REMATCH - if [[ "${lastParam}" =~ '-.*=' ]]; then - # We are dealing with a flag with an = - flagPrefix="-P ${BASH_REMATCH}" - fi - - # Prepare the command to obtain completions - requestComp="${words[0]} ${words[1]} _complete --no-interaction -szsh -a{{ VERSION }} -c$((CURRENT-1))" i="" - for w in ${words[@]}; do - w=$(printf -- '%b' "$w") - # remove quotes from typed values - quote="${w:0:1}" - if [ "$quote" = \' ]; then - w="${w%\'}" - w="${w#\'}" - elif [ "$quote" = \" ]; then - w="${w%\"}" - w="${w#\"}" - fi - # empty values are ignored - if [ ! -z "$w" ]; then - i="${i}-i${w} " - fi - done - - # Ensure at least 1 input - if [ "${i}" = "" ]; then - requestComp="${requestComp} -i\" \"" - else - requestComp="${requestComp} ${i}" - fi - - # Use eval to handle any environment variables and such - out=$(eval ${requestComp} 2>/dev/null) - - while IFS='\n' read -r comp; do - if [ -n "$comp" ]; then - # If requested, completions are returned with a description. - # The description is preceded by a TAB character. - # For zsh's _describe, we need to use a : instead of a TAB. - # We first need to escape any : as part of the completion itself. - comp=${comp//:/\\:} - local tab=$(printf '\t') - comp=${comp//$tab/:} - completions+=${comp} - fi - done < <(printf "%s\n" "${out[@]}") - - # Let inbuilt _describe handle completions - eval _describe "completions" completions $flagPrefix - return $? -} - -compdef _sf_{{ COMMAND_NAME }} {{ COMMAND_NAME }} diff --git a/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalMap.php b/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalMap.php deleted file mode 100644 index 2f9aa67..0000000 --- a/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalMap.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\SignalRegistry; - -/** - * @author Grégoire Pineau - */ -class SignalMap -{ - private static array $map; - - public static function getSignalName(int $signal): ?string - { - if (!\extension_loaded('pcntl')) { - return null; - } - - if (!isset(self::$map)) { - $r = new \ReflectionExtension('pcntl'); - $c = $r->getConstants(); - $map = array_filter($c, fn ($k) => str_starts_with($k, 'SIG') && !str_starts_with($k, 'SIG_') && 'SIGBABY' !== $k, \ARRAY_FILTER_USE_KEY); - self::$map = array_flip($map); - } - - return self::$map[$signal] ?? null; - } -} diff --git a/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalRegistry.php deleted file mode 100644 index ef2e5f0..0000000 --- a/projects/priceservice/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\SignalRegistry; - -final class SignalRegistry -{ - private array $signalHandlers = []; - - public function __construct() - { - if (\function_exists('pcntl_async_signals')) { - pcntl_async_signals(true); - } - } - - public function register(int $signal, callable $signalHandler): void - { - if (!isset($this->signalHandlers[$signal])) { - $previousCallback = pcntl_signal_get_handler($signal); - - if (\is_callable($previousCallback)) { - $this->signalHandlers[$signal][] = $previousCallback; - } - } - - $this->signalHandlers[$signal][] = $signalHandler; - - pcntl_signal($signal, $this->handle(...)); - } - - public static function isSupported(): bool - { - return \function_exists('pcntl_signal'); - } - - /** - * @internal - */ - public function handle(int $signal): void - { - $count = \count($this->signalHandlers[$signal]); - - foreach ($this->signalHandlers[$signal] as $i => $signalHandler) { - $hasNext = $i !== $count - 1; - $signalHandler($signal, $hasNext); - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/SingleCommandApplication.php b/projects/priceservice/vendor/symfony/console/SingleCommandApplication.php deleted file mode 100644 index ff1c172..0000000 --- a/projects/priceservice/vendor/symfony/console/SingleCommandApplication.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * @author Grégoire Pineau - */ -class SingleCommandApplication extends Command -{ - private string $version = 'UNKNOWN'; - private bool $autoExit = true; - private bool $running = false; - - /** - * @return $this - */ - public function setVersion(string $version): static - { - $this->version = $version; - - return $this; - } - - /** - * @final - * - * @return $this - */ - public function setAutoExit(bool $autoExit): static - { - $this->autoExit = $autoExit; - - return $this; - } - - public function run(?InputInterface $input = null, ?OutputInterface $output = null): int - { - if ($this->running) { - return parent::run($input, $output); - } - - // We use the command name as the application name - $application = new Application($this->getName() ?: 'UNKNOWN', $this->version); - $application->setAutoExit($this->autoExit); - // Fix the usage of the command displayed with "--help" - $this->setName($_SERVER['argv'][0]); - $application->add($this); - $application->setDefaultCommand($this->getName(), true); - - $this->running = true; - try { - $ret = $application->run($input, $output); - } finally { - $this->running = false; - } - - return $ret ?? 1; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Style/OutputStyle.php b/projects/priceservice/vendor/symfony/console/Style/OutputStyle.php deleted file mode 100644 index ddfa8de..0000000 --- a/projects/priceservice/vendor/symfony/console/Style/OutputStyle.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Style; - -use Symfony\Component\Console\Formatter\OutputFormatterInterface; -use Symfony\Component\Console\Helper\ProgressBar; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Decorates output to add console style guide helpers. - * - * @author Kevin Bond - */ -abstract class OutputStyle implements OutputInterface, StyleInterface -{ - private OutputInterface $output; - - public function __construct(OutputInterface $output) - { - $this->output = $output; - } - - /** - * @return void - */ - public function newLine(int $count = 1) - { - $this->output->write(str_repeat(\PHP_EOL, $count)); - } - - public function createProgressBar(int $max = 0): ProgressBar - { - return new ProgressBar($this->output, $max); - } - - /** - * @return void - */ - public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) - { - $this->output->write($messages, $newline, $type); - } - - /** - * @return void - */ - public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL) - { - $this->output->writeln($messages, $type); - } - - /** - * @return void - */ - public function setVerbosity(int $level) - { - $this->output->setVerbosity($level); - } - - public function getVerbosity(): int - { - return $this->output->getVerbosity(); - } - - /** - * @return void - */ - public function setDecorated(bool $decorated) - { - $this->output->setDecorated($decorated); - } - - public function isDecorated(): bool - { - return $this->output->isDecorated(); - } - - /** - * @return void - */ - public function setFormatter(OutputFormatterInterface $formatter) - { - $this->output->setFormatter($formatter); - } - - public function getFormatter(): OutputFormatterInterface - { - return $this->output->getFormatter(); - } - - public function isQuiet(): bool - { - return $this->output->isQuiet(); - } - - public function isVerbose(): bool - { - return $this->output->isVerbose(); - } - - public function isVeryVerbose(): bool - { - return $this->output->isVeryVerbose(); - } - - public function isDebug(): bool - { - return $this->output->isDebug(); - } - - /** - * @return OutputInterface - */ - protected function getErrorOutput() - { - if (!$this->output instanceof ConsoleOutputInterface) { - return $this->output; - } - - return $this->output->getErrorOutput(); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Style/StyleInterface.php b/projects/priceservice/vendor/symfony/console/Style/StyleInterface.php deleted file mode 100644 index 6bced15..0000000 --- a/projects/priceservice/vendor/symfony/console/Style/StyleInterface.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Style; - -/** - * Output style helpers. - * - * @author Kevin Bond - */ -interface StyleInterface -{ - /** - * Formats a command title. - * - * @return void - */ - public function title(string $message); - - /** - * Formats a section title. - * - * @return void - */ - public function section(string $message); - - /** - * Formats a list. - * - * @return void - */ - public function listing(array $elements); - - /** - * Formats informational text. - * - * @return void - */ - public function text(string|array $message); - - /** - * Formats a success result bar. - * - * @return void - */ - public function success(string|array $message); - - /** - * Formats an error result bar. - * - * @return void - */ - public function error(string|array $message); - - /** - * Formats an warning result bar. - * - * @return void - */ - public function warning(string|array $message); - - /** - * Formats a note admonition. - * - * @return void - */ - public function note(string|array $message); - - /** - * Formats a caution admonition. - * - * @return void - */ - public function caution(string|array $message); - - /** - * Formats a table. - * - * @return void - */ - public function table(array $headers, array $rows); - - /** - * Asks a question. - */ - public function ask(string $question, ?string $default = null, ?callable $validator = null): mixed; - - /** - * Asks a question with the user input hidden. - */ - public function askHidden(string $question, ?callable $validator = null): mixed; - - /** - * Asks for confirmation. - */ - public function confirm(string $question, bool $default = true): bool; - - /** - * Asks a choice question. - */ - public function choice(string $question, array $choices, mixed $default = null): mixed; - - /** - * Add newline(s). - * - * @return void - */ - public function newLine(int $count = 1); - - /** - * Starts the progress output. - * - * @return void - */ - public function progressStart(int $max = 0); - - /** - * Advances the progress output X steps. - * - * @return void - */ - public function progressAdvance(int $step = 1); - - /** - * Finishes the progress output. - * - * @return void - */ - public function progressFinish(); -} diff --git a/projects/priceservice/vendor/symfony/console/Style/SymfonyStyle.php b/projects/priceservice/vendor/symfony/console/Style/SymfonyStyle.php deleted file mode 100644 index 03bda87..0000000 --- a/projects/priceservice/vendor/symfony/console/Style/SymfonyStyle.php +++ /dev/null @@ -1,514 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Style; - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Helper\Helper; -use Symfony\Component\Console\Helper\OutputWrapper; -use Symfony\Component\Console\Helper\ProgressBar; -use Symfony\Component\Console\Helper\SymfonyQuestionHelper; -use Symfony\Component\Console\Helper\Table; -use Symfony\Component\Console\Helper\TableCell; -use Symfony\Component\Console\Helper\TableSeparator; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\ConsoleOutputInterface; -use Symfony\Component\Console\Output\ConsoleSectionOutput; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Output\TrimmedBufferOutput; -use Symfony\Component\Console\Question\ChoiceQuestion; -use Symfony\Component\Console\Question\ConfirmationQuestion; -use Symfony\Component\Console\Question\Question; -use Symfony\Component\Console\Terminal; - -/** - * Output decorator helpers for the Symfony Style Guide. - * - * @author Kevin Bond - */ -class SymfonyStyle extends OutputStyle -{ - public const MAX_LINE_LENGTH = 120; - - private InputInterface $input; - private OutputInterface $output; - private SymfonyQuestionHelper $questionHelper; - private ProgressBar $progressBar; - private int $lineLength; - private TrimmedBufferOutput $bufferedOutput; - - public function __construct(InputInterface $input, OutputInterface $output) - { - $this->input = $input; - $this->bufferedOutput = new TrimmedBufferOutput(\DIRECTORY_SEPARATOR === '\\' ? 4 : 2, $output->getVerbosity(), false, clone $output->getFormatter()); - // Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not. - $width = (new Terminal())->getWidth() ?: self::MAX_LINE_LENGTH; - $this->lineLength = min($width - (int) (\DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH); - - parent::__construct($this->output = $output); - } - - /** - * Formats a message as a block of text. - * - * @return void - */ - public function block(string|array $messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = true) - { - $messages = \is_array($messages) ? array_values($messages) : [$messages]; - - $this->autoPrependBlock(); - $this->writeln($this->createBlock($messages, $type, $style, $prefix, $padding, $escape)); - $this->newLine(); - } - - /** - * @return void - */ - public function title(string $message) - { - $this->autoPrependBlock(); - $this->writeln([ - sprintf('%s', OutputFormatter::escapeTrailingBackslash($message)), - sprintf('%s', str_repeat('=', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))), - ]); - $this->newLine(); - } - - /** - * @return void - */ - public function section(string $message) - { - $this->autoPrependBlock(); - $this->writeln([ - sprintf('%s', OutputFormatter::escapeTrailingBackslash($message)), - sprintf('%s', str_repeat('-', Helper::width(Helper::removeDecoration($this->getFormatter(), $message)))), - ]); - $this->newLine(); - } - - /** - * @return void - */ - public function listing(array $elements) - { - $this->autoPrependText(); - $elements = array_map(fn ($element) => sprintf(' * %s', $element), $elements); - - $this->writeln($elements); - $this->newLine(); - } - - /** - * @return void - */ - public function text(string|array $message) - { - $this->autoPrependText(); - - $messages = \is_array($message) ? array_values($message) : [$message]; - foreach ($messages as $message) { - $this->writeln(sprintf(' %s', $message)); - } - } - - /** - * Formats a command comment. - * - * @return void - */ - public function comment(string|array $message) - { - $this->block($message, null, null, ' // ', false, false); - } - - /** - * @return void - */ - public function success(string|array $message) - { - $this->block($message, 'OK', 'fg=black;bg=green', ' ', true); - } - - /** - * @return void - */ - public function error(string|array $message) - { - $this->block($message, 'ERROR', 'fg=white;bg=red', ' ', true); - } - - /** - * @return void - */ - public function warning(string|array $message) - { - $this->block($message, 'WARNING', 'fg=black;bg=yellow', ' ', true); - } - - /** - * @return void - */ - public function note(string|array $message) - { - $this->block($message, 'NOTE', 'fg=yellow', ' ! '); - } - - /** - * Formats an info message. - * - * @return void - */ - public function info(string|array $message) - { - $this->block($message, 'INFO', 'fg=green', ' ', true); - } - - /** - * @return void - */ - public function caution(string|array $message) - { - $this->block($message, 'CAUTION', 'fg=white;bg=red', ' ! ', true); - } - - /** - * @return void - */ - public function table(array $headers, array $rows) - { - $this->createTable() - ->setHeaders($headers) - ->setRows($rows) - ->render() - ; - - $this->newLine(); - } - - /** - * Formats a horizontal table. - * - * @return void - */ - public function horizontalTable(array $headers, array $rows) - { - $this->createTable() - ->setHorizontal(true) - ->setHeaders($headers) - ->setRows($rows) - ->render() - ; - - $this->newLine(); - } - - /** - * Formats a list of key/value horizontally. - * - * Each row can be one of: - * * 'A title' - * * ['key' => 'value'] - * * new TableSeparator() - * - * @return void - */ - public function definitionList(string|array|TableSeparator ...$list) - { - $headers = []; - $row = []; - foreach ($list as $value) { - if ($value instanceof TableSeparator) { - $headers[] = $value; - $row[] = $value; - continue; - } - if (\is_string($value)) { - $headers[] = new TableCell($value, ['colspan' => 2]); - $row[] = null; - continue; - } - if (!\is_array($value)) { - throw new InvalidArgumentException('Value should be an array, string, or an instance of TableSeparator.'); - } - $headers[] = key($value); - $row[] = current($value); - } - - $this->horizontalTable($headers, [$row]); - } - - public function ask(string $question, ?string $default = null, ?callable $validator = null): mixed - { - $question = new Question($question, $default); - $question->setValidator($validator); - - return $this->askQuestion($question); - } - - public function askHidden(string $question, ?callable $validator = null): mixed - { - $question = new Question($question); - - $question->setHidden(true); - $question->setValidator($validator); - - return $this->askQuestion($question); - } - - public function confirm(string $question, bool $default = true): bool - { - return $this->askQuestion(new ConfirmationQuestion($question, $default)); - } - - public function choice(string $question, array $choices, mixed $default = null, bool $multiSelect = false): mixed - { - if (null !== $default) { - $values = array_flip($choices); - $default = $values[$default] ?? $default; - } - - $questionChoice = new ChoiceQuestion($question, $choices, $default); - $questionChoice->setMultiselect($multiSelect); - - return $this->askQuestion($questionChoice); - } - - /** - * @return void - */ - public function progressStart(int $max = 0) - { - $this->progressBar = $this->createProgressBar($max); - $this->progressBar->start(); - } - - /** - * @return void - */ - public function progressAdvance(int $step = 1) - { - $this->getProgressBar()->advance($step); - } - - /** - * @return void - */ - public function progressFinish() - { - $this->getProgressBar()->finish(); - $this->newLine(2); - unset($this->progressBar); - } - - public function createProgressBar(int $max = 0): ProgressBar - { - $progressBar = parent::createProgressBar($max); - - if ('\\' !== \DIRECTORY_SEPARATOR || 'Hyper' === getenv('TERM_PROGRAM')) { - $progressBar->setEmptyBarCharacter('░'); // light shade character \u2591 - $progressBar->setProgressCharacter(''); - $progressBar->setBarCharacter('▓'); // dark shade character \u2593 - } - - return $progressBar; - } - - /** - * @see ProgressBar::iterate() - * - * @template TKey - * @template TValue - * - * @param iterable $iterable - * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable - * - * @return iterable - */ - public function progressIterate(iterable $iterable, ?int $max = null): iterable - { - yield from $this->createProgressBar()->iterate($iterable, $max); - - $this->newLine(2); - } - - public function askQuestion(Question $question): mixed - { - if ($this->input->isInteractive()) { - $this->autoPrependBlock(); - } - - $this->questionHelper ??= new SymfonyQuestionHelper(); - - $answer = $this->questionHelper->ask($this->input, $this, $question); - - if ($this->input->isInteractive()) { - if ($this->output instanceof ConsoleSectionOutput) { - // add the new line of the `return` to submit the input to ConsoleSectionOutput, because ConsoleSectionOutput is holding all it's lines. - // this is relevant when a `ConsoleSectionOutput::clear` is called. - $this->output->addNewLineOfInputSubmit(); - } - $this->newLine(); - $this->bufferedOutput->write("\n"); - } - - return $answer; - } - - /** - * @return void - */ - public function writeln(string|iterable $messages, int $type = self::OUTPUT_NORMAL) - { - if (!is_iterable($messages)) { - $messages = [$messages]; - } - - foreach ($messages as $message) { - parent::writeln($message, $type); - $this->writeBuffer($message, true, $type); - } - } - - /** - * @return void - */ - public function write(string|iterable $messages, bool $newline = false, int $type = self::OUTPUT_NORMAL) - { - if (!is_iterable($messages)) { - $messages = [$messages]; - } - - foreach ($messages as $message) { - parent::write($message, $newline, $type); - $this->writeBuffer($message, $newline, $type); - } - } - - /** - * @return void - */ - public function newLine(int $count = 1) - { - parent::newLine($count); - $this->bufferedOutput->write(str_repeat("\n", $count)); - } - - /** - * Returns a new instance which makes use of stderr if available. - */ - public function getErrorStyle(): self - { - return new self($this->input, $this->getErrorOutput()); - } - - public function createTable(): Table - { - $output = $this->output instanceof ConsoleOutputInterface ? $this->output->section() : $this->output; - $style = clone Table::getStyleDefinition('symfony-style-guide'); - $style->setCellHeaderFormat('%s'); - - return (new Table($output))->setStyle($style); - } - - private function getProgressBar(): ProgressBar - { - return $this->progressBar - ?? throw new RuntimeException('The ProgressBar is not started.'); - } - - private function autoPrependBlock(): void - { - $chars = substr(str_replace(\PHP_EOL, "\n", $this->bufferedOutput->fetch()), -2); - - if (!isset($chars[0])) { - $this->newLine(); // empty history, so we should start with a new line. - - return; - } - // Prepend new line for each non LF chars (This means no blank line was output before) - $this->newLine(2 - substr_count($chars, "\n")); - } - - private function autoPrependText(): void - { - $fetched = $this->bufferedOutput->fetch(); - // Prepend new line if last char isn't EOL: - if ($fetched && !str_ends_with($fetched, "\n")) { - $this->newLine(); - } - } - - private function writeBuffer(string $message, bool $newLine, int $type): void - { - // We need to know if the last chars are PHP_EOL - $this->bufferedOutput->write($message, $newLine, $type); - } - - private function createBlock(iterable $messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false): array - { - $indentLength = 0; - $prefixLength = Helper::width(Helper::removeDecoration($this->getFormatter(), $prefix)); - $lines = []; - - if (null !== $type) { - $type = sprintf('[%s] ', $type); - $indentLength = Helper::width($type); - $lineIndentation = str_repeat(' ', $indentLength); - } - - // wrap and add newlines for each element - $outputWrapper = new OutputWrapper(); - foreach ($messages as $key => $message) { - if ($escape) { - $message = OutputFormatter::escape($message); - } - - $lines = array_merge( - $lines, - explode(\PHP_EOL, $outputWrapper->wrap( - $message, - $this->lineLength - $prefixLength - $indentLength, - \PHP_EOL - )) - ); - - if (\count($messages) > 1 && $key < \count($messages) - 1) { - $lines[] = ''; - } - } - - $firstLineIndex = 0; - if ($padding && $this->isDecorated()) { - $firstLineIndex = 1; - array_unshift($lines, ''); - $lines[] = ''; - } - - foreach ($lines as $i => &$line) { - if (null !== $type) { - $line = $firstLineIndex === $i ? $type.$line : $lineIndentation.$line; - } - - $line = $prefix.$line; - $line .= str_repeat(' ', max($this->lineLength - Helper::width(Helper::removeDecoration($this->getFormatter(), $line)), 0)); - - if ($style) { - $line = sprintf('<%s>%s', $style, $line); - } - } - - return $lines; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Terminal.php b/projects/priceservice/vendor/symfony/console/Terminal.php deleted file mode 100644 index f094ade..0000000 --- a/projects/priceservice/vendor/symfony/console/Terminal.php +++ /dev/null @@ -1,235 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console; - -use Symfony\Component\Console\Output\AnsiColorMode; - -class Terminal -{ - public const DEFAULT_COLOR_MODE = AnsiColorMode::Ansi4; - - private static ?AnsiColorMode $colorMode = null; - private static ?int $width = null; - private static ?int $height = null; - private static ?bool $stty = null; - - /** - * About Ansi color types: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors - * For more information about true color support with terminals https://github.com/termstandard/colors/. - */ - public static function getColorMode(): AnsiColorMode - { - // Use Cache from previous run (or user forced mode) - if (null !== self::$colorMode) { - return self::$colorMode; - } - - // Try with $COLORTERM first - if (\is_string($colorterm = getenv('COLORTERM'))) { - $colorterm = strtolower($colorterm); - - if (str_contains($colorterm, 'truecolor')) { - self::setColorMode(AnsiColorMode::Ansi24); - - return self::$colorMode; - } - - if (str_contains($colorterm, '256color')) { - self::setColorMode(AnsiColorMode::Ansi8); - - return self::$colorMode; - } - } - - // Try with $TERM - if (\is_string($term = getenv('TERM'))) { - $term = strtolower($term); - - if (str_contains($term, 'truecolor')) { - self::setColorMode(AnsiColorMode::Ansi24); - - return self::$colorMode; - } - - if (str_contains($term, '256color')) { - self::setColorMode(AnsiColorMode::Ansi8); - - return self::$colorMode; - } - } - - self::setColorMode(self::DEFAULT_COLOR_MODE); - - return self::$colorMode; - } - - /** - * Force a terminal color mode rendering. - */ - public static function setColorMode(?AnsiColorMode $colorMode): void - { - self::$colorMode = $colorMode; - } - - /** - * Gets the terminal width. - */ - public function getWidth(): int - { - $width = getenv('COLUMNS'); - if (false !== $width) { - return (int) trim($width); - } - - if (null === self::$width) { - self::initDimensions(); - } - - return self::$width ?: 80; - } - - /** - * Gets the terminal height. - */ - public function getHeight(): int - { - $height = getenv('LINES'); - if (false !== $height) { - return (int) trim($height); - } - - if (null === self::$height) { - self::initDimensions(); - } - - return self::$height ?: 50; - } - - /** - * @internal - */ - public static function hasSttyAvailable(): bool - { - if (null !== self::$stty) { - return self::$stty; - } - - // skip check if shell_exec function is disabled - if (!\function_exists('shell_exec')) { - return false; - } - - return self::$stty = (bool) shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); - } - - private static function initDimensions(): void - { - if ('\\' === \DIRECTORY_SEPARATOR) { - $ansicon = getenv('ANSICON'); - if (false !== $ansicon && preg_match('/^(\d+)x(\d+)(?: \((\d+)x(\d+)\))?$/', trim($ansicon), $matches)) { - // extract [w, H] from "wxh (WxH)" - // or [w, h] from "wxh" - self::$width = (int) $matches[1]; - self::$height = isset($matches[4]) ? (int) $matches[4] : (int) $matches[2]; - } elseif (!self::hasVt100Support() && self::hasSttyAvailable()) { - // only use stty on Windows if the terminal does not support vt100 (e.g. Windows 7 + git-bash) - // testing for stty in a Windows 10 vt100-enabled console will implicitly disable vt100 support on STDOUT - self::initDimensionsUsingStty(); - } elseif (null !== $dimensions = self::getConsoleMode()) { - // extract [w, h] from "wxh" - self::$width = (int) $dimensions[0]; - self::$height = (int) $dimensions[1]; - } - } else { - self::initDimensionsUsingStty(); - } - } - - /** - * Returns whether STDOUT has vt100 support (some Windows 10+ configurations). - */ - private static function hasVt100Support(): bool - { - return \function_exists('sapi_windows_vt100_support') && sapi_windows_vt100_support(fopen('php://stdout', 'w')); - } - - /** - * Initializes dimensions using the output of an stty columns line. - */ - private static function initDimensionsUsingStty(): void - { - if ($sttyString = self::getSttyColumns()) { - if (preg_match('/rows.(\d+);.columns.(\d+);/is', $sttyString, $matches)) { - // extract [w, h] from "rows h; columns w;" - self::$width = (int) $matches[2]; - self::$height = (int) $matches[1]; - } elseif (preg_match('/;.(\d+).rows;.(\d+).columns/is', $sttyString, $matches)) { - // extract [w, h] from "; h rows; w columns" - self::$width = (int) $matches[2]; - self::$height = (int) $matches[1]; - } - } - } - - /** - * Runs and parses mode CON if it's available, suppressing any error output. - * - * @return int[]|null An array composed of the width and the height or null if it could not be parsed - */ - private static function getConsoleMode(): ?array - { - $info = self::readFromProcess('mode CON'); - - if (null === $info || !preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', $info, $matches)) { - return null; - } - - return [(int) $matches[2], (int) $matches[1]]; - } - - /** - * Runs and parses stty -a if it's available, suppressing any error output. - */ - private static function getSttyColumns(): ?string - { - return self::readFromProcess(['stty', '-a']); - } - - private static function readFromProcess(string|array $command): ?string - { - if (!\function_exists('proc_open')) { - return null; - } - - $descriptorspec = [ - 1 => ['pipe', 'w'], - 2 => ['pipe', 'w'], - ]; - - $cp = \function_exists('sapi_windows_cp_set') ? sapi_windows_cp_get() : 0; - - if (!$process = @proc_open($command, $descriptorspec, $pipes, null, null, ['suppress_errors' => true])) { - return null; - } - - $info = stream_get_contents($pipes[1]); - fclose($pipes[1]); - fclose($pipes[2]); - proc_close($process); - - if ($cp) { - sapi_windows_cp_set($cp); - } - - return $info; - } -} diff --git a/projects/priceservice/vendor/symfony/console/Tester/ApplicationTester.php b/projects/priceservice/vendor/symfony/console/Tester/ApplicationTester.php deleted file mode 100644 index 58aee54..0000000 --- a/projects/priceservice/vendor/symfony/console/Tester/ApplicationTester.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Tester; - -use Symfony\Component\Console\Application; -use Symfony\Component\Console\Input\ArrayInput; - -/** - * Eases the testing of console applications. - * - * When testing an application, don't forget to disable the auto exit flag: - * - * $application = new Application(); - * $application->setAutoExit(false); - * - * @author Fabien Potencier - */ -class ApplicationTester -{ - use TesterTrait; - - private Application $application; - - public function __construct(Application $application) - { - $this->application = $application; - } - - /** - * Executes the application. - * - * Available options: - * - * * interactive: Sets the input interactive flag - * * decorated: Sets the output decorated flag - * * verbosity: Sets the output verbosity flag - * * capture_stderr_separately: Make output of stdOut and stdErr separately available - * - * @return int The command exit code - */ - public function run(array $input, array $options = []): int - { - $prevShellVerbosity = getenv('SHELL_VERBOSITY'); - - try { - $this->input = new ArrayInput($input); - if (isset($options['interactive'])) { - $this->input->setInteractive($options['interactive']); - } - - if ($this->inputs) { - $this->input->setStream(self::createStream($this->inputs)); - } - - $this->initOutput($options); - - return $this->statusCode = $this->application->run($this->input, $this->output); - } finally { - // SHELL_VERBOSITY is set by Application::configureIO so we need to unset/reset it - // to its previous value to avoid one test's verbosity to spread to the following tests - if (false === $prevShellVerbosity) { - if (\function_exists('putenv')) { - @putenv('SHELL_VERBOSITY'); - } - unset($_ENV['SHELL_VERBOSITY']); - unset($_SERVER['SHELL_VERBOSITY']); - } else { - if (\function_exists('putenv')) { - @putenv('SHELL_VERBOSITY='.$prevShellVerbosity); - } - $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity; - $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity; - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/console/Tester/CommandCompletionTester.php b/projects/priceservice/vendor/symfony/console/Tester/CommandCompletionTester.php deleted file mode 100644 index a90fe52..0000000 --- a/projects/priceservice/vendor/symfony/console/Tester/CommandCompletionTester.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Tester; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; - -/** - * Eases the testing of command completion. - * - * @author Jérôme Tamarelle - */ -class CommandCompletionTester -{ - private Command $command; - - public function __construct(Command $command) - { - $this->command = $command; - } - - /** - * Create completion suggestions from input tokens. - */ - public function complete(array $input): array - { - $currentIndex = \count($input); - if ('' === end($input)) { - array_pop($input); - } - array_unshift($input, $this->command->getName()); - - $completionInput = CompletionInput::fromTokens($input, $currentIndex); - $completionInput->bind($this->command->getDefinition()); - $suggestions = new CompletionSuggestions(); - - $this->command->complete($completionInput, $suggestions); - - $options = []; - foreach ($suggestions->getOptionSuggestions() as $option) { - $options[] = '--'.$option->getName(); - } - - return array_map('strval', array_merge($options, $suggestions->getValueSuggestions())); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Tester/CommandTester.php b/projects/priceservice/vendor/symfony/console/Tester/CommandTester.php deleted file mode 100644 index 2ff813b..0000000 --- a/projects/priceservice/vendor/symfony/console/Tester/CommandTester.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Tester; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\ArrayInput; - -/** - * Eases the testing of console commands. - * - * @author Fabien Potencier - * @author Robin Chalas - */ -class CommandTester -{ - use TesterTrait; - - private Command $command; - - public function __construct(Command $command) - { - $this->command = $command; - } - - /** - * Executes the command. - * - * Available execution options: - * - * * interactive: Sets the input interactive flag - * * decorated: Sets the output decorated flag - * * verbosity: Sets the output verbosity flag - * * capture_stderr_separately: Make output of stdOut and stdErr separately available - * - * @param array $input An array of command arguments and options - * @param array $options An array of execution options - * - * @return int The command exit code - */ - public function execute(array $input, array $options = []): int - { - // set the command name automatically if the application requires - // this argument and no command name was passed - if (!isset($input['command']) - && (null !== $application = $this->command->getApplication()) - && $application->getDefinition()->hasArgument('command') - ) { - $input = array_merge(['command' => $this->command->getName()], $input); - } - - $this->input = new ArrayInput($input); - // Use an in-memory input stream even if no inputs are set so that QuestionHelper::ask() does not rely on the blocking STDIN. - $this->input->setStream(self::createStream($this->inputs)); - - if (isset($options['interactive'])) { - $this->input->setInteractive($options['interactive']); - } - - if (!isset($options['decorated'])) { - $options['decorated'] = false; - } - - $this->initOutput($options); - - return $this->statusCode = $this->command->run($this->input, $this->output); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Tester/Constraint/CommandIsSuccessful.php b/projects/priceservice/vendor/symfony/console/Tester/Constraint/CommandIsSuccessful.php deleted file mode 100644 index 09c6194..0000000 --- a/projects/priceservice/vendor/symfony/console/Tester/Constraint/CommandIsSuccessful.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Tester\Constraint; - -use PHPUnit\Framework\Constraint\Constraint; -use Symfony\Component\Console\Command\Command; - -final class CommandIsSuccessful extends Constraint -{ - public function toString(): string - { - return 'is successful'; - } - - protected function matches($other): bool - { - return Command::SUCCESS === $other; - } - - protected function failureDescription($other): string - { - return 'the command '.$this->toString(); - } - - protected function additionalFailureDescription($other): string - { - $mapping = [ - Command::FAILURE => 'Command failed.', - Command::INVALID => 'Command was invalid.', - ]; - - return $mapping[$other] ?? sprintf('Command returned exit status %d.', $other); - } -} diff --git a/projects/priceservice/vendor/symfony/console/Tester/TesterTrait.php b/projects/priceservice/vendor/symfony/console/Tester/TesterTrait.php deleted file mode 100644 index 1ab7a70..0000000 --- a/projects/priceservice/vendor/symfony/console/Tester/TesterTrait.php +++ /dev/null @@ -1,178 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Console\Tester; - -use PHPUnit\Framework\Assert; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\ConsoleOutput; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Output\StreamOutput; -use Symfony\Component\Console\Tester\Constraint\CommandIsSuccessful; - -/** - * @author Amrouche Hamza - */ -trait TesterTrait -{ - private StreamOutput $output; - private array $inputs = []; - private bool $captureStreamsIndependently = false; - private InputInterface $input; - private int $statusCode; - - /** - * Gets the display returned by the last execution of the command or application. - * - * @throws \RuntimeException If it's called before the execute method - */ - public function getDisplay(bool $normalize = false): string - { - if (!isset($this->output)) { - throw new \RuntimeException('Output not initialized, did you execute the command before requesting the display?'); - } - - rewind($this->output->getStream()); - - $display = stream_get_contents($this->output->getStream()); - - if ($normalize) { - $display = str_replace(\PHP_EOL, "\n", $display); - } - - return $display; - } - - /** - * Gets the output written to STDERR by the application. - * - * @param bool $normalize Whether to normalize end of lines to \n or not - */ - public function getErrorOutput(bool $normalize = false): string - { - if (!$this->captureStreamsIndependently) { - throw new \LogicException('The error output is not available when the tester is run without "capture_stderr_separately" option set.'); - } - - rewind($this->output->getErrorOutput()->getStream()); - - $display = stream_get_contents($this->output->getErrorOutput()->getStream()); - - if ($normalize) { - $display = str_replace(\PHP_EOL, "\n", $display); - } - - return $display; - } - - /** - * Gets the input instance used by the last execution of the command or application. - */ - public function getInput(): InputInterface - { - return $this->input; - } - - /** - * Gets the output instance used by the last execution of the command or application. - */ - public function getOutput(): OutputInterface - { - return $this->output; - } - - /** - * Gets the status code returned by the last execution of the command or application. - * - * @throws \RuntimeException If it's called before the execute method - */ - public function getStatusCode(): int - { - return $this->statusCode ?? throw new \RuntimeException('Status code not initialized, did you execute the command before requesting the status code?'); - } - - public function assertCommandIsSuccessful(string $message = ''): void - { - Assert::assertThat($this->statusCode, new CommandIsSuccessful(), $message); - } - - /** - * Sets the user inputs. - * - * @param array $inputs An array of strings representing each input - * passed to the command input stream - * - * @return $this - */ - public function setInputs(array $inputs): static - { - $this->inputs = $inputs; - - return $this; - } - - /** - * Initializes the output property. - * - * Available options: - * - * * decorated: Sets the output decorated flag - * * verbosity: Sets the output verbosity flag - * * capture_stderr_separately: Make output of stdOut and stdErr separately available - */ - private function initOutput(array $options): void - { - $this->captureStreamsIndependently = $options['capture_stderr_separately'] ?? false; - if (!$this->captureStreamsIndependently) { - $this->output = new StreamOutput(fopen('php://memory', 'w', false)); - if (isset($options['decorated'])) { - $this->output->setDecorated($options['decorated']); - } - if (isset($options['verbosity'])) { - $this->output->setVerbosity($options['verbosity']); - } - } else { - $this->output = new ConsoleOutput( - $options['verbosity'] ?? ConsoleOutput::VERBOSITY_NORMAL, - $options['decorated'] ?? null - ); - - $errorOutput = new StreamOutput(fopen('php://memory', 'w', false)); - $errorOutput->setFormatter($this->output->getFormatter()); - $errorOutput->setVerbosity($this->output->getVerbosity()); - $errorOutput->setDecorated($this->output->isDecorated()); - - $reflectedOutput = new \ReflectionObject($this->output); - $strErrProperty = $reflectedOutput->getProperty('stderr'); - $strErrProperty->setValue($this->output, $errorOutput); - - $reflectedParent = $reflectedOutput->getParentClass(); - $streamProperty = $reflectedParent->getProperty('stream'); - $streamProperty->setValue($this->output, fopen('php://memory', 'w', false)); - } - } - - /** - * @return resource - */ - private static function createStream(array $inputs) - { - $stream = fopen('php://memory', 'r+', false); - - foreach ($inputs as $input) { - fwrite($stream, $input.\PHP_EOL); - } - - rewind($stream); - - return $stream; - } -} diff --git a/projects/priceservice/vendor/symfony/console/composer.json b/projects/priceservice/vendor/symfony/console/composer.json deleted file mode 100644 index 1610f73..0000000 --- a/projects/priceservice/vendor/symfony/console/composer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "symfony/console", - "type": "library", - "description": "Eases the creation of beautiful and testable command line interfaces", - "keywords": ["console", "cli", "command-line", "terminal"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "require-dev": { - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0", - "psr/log": "^1|^2|^3" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Console\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Alias.php b/projects/priceservice/vendor/symfony/dependency-injection/Alias.php deleted file mode 100644 index c5b91ed..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Alias.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -class Alias -{ - private const DEFAULT_DEPRECATION_TEMPLATE = 'The "%alias_id%" service alias is deprecated. You should stop using it, as it will be removed in the future.'; - - private string $id; - private bool $public; - private array $deprecation = []; - - public function __construct(string $id, bool $public = false) - { - $this->id = $id; - $this->public = $public; - } - - /** - * Checks if this DI Alias should be public or not. - */ - public function isPublic(): bool - { - return $this->public; - } - - /** - * Sets if this Alias is public. - * - * @return $this - */ - public function setPublic(bool $boolean): static - { - $this->public = $boolean; - - return $this; - } - - /** - * Whether this alias is private. - */ - public function isPrivate(): bool - { - return !$this->public; - } - - /** - * Whether this alias is deprecated, that means it should not be referenced - * anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated(string $package, string $version, string $message): static - { - if ('' !== $message) { - if (preg_match('#[\r\n]|\*/#', $message)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - - if (!str_contains($message, '%alias_id%')) { - throw new InvalidArgumentException('The deprecation template must contain the "%alias_id%" placeholder.'); - } - } - - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message ?: self::DEFAULT_DEPRECATION_TEMPLATE]; - - return $this; - } - - public function isDeprecated(): bool - { - return (bool) $this->deprecation; - } - - /** - * @param string $id Service id relying on this definition - */ - public function getDeprecation(string $id): array - { - return [ - 'package' => $this->deprecation['package'], - 'version' => $this->deprecation['version'], - 'message' => str_replace('%alias_id%', $id, $this->deprecation['message']), - ]; - } - - public function __toString(): string - { - return $this->id; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/AbstractArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/AbstractArgument.php deleted file mode 100644 index b04f9b8..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/AbstractArgument.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents an abstract service argument, which have to be set by a compiler pass or a DI extension. - */ -final class AbstractArgument -{ - private string $text; - private string $context = ''; - - public function __construct(string $text = '') - { - $this->text = trim($text, '. '); - } - - public function setContext(string $context): void - { - $this->context = $context.' is abstract'.('' === $this->text ? '' : ': '); - } - - public function getText(): string - { - return $this->text; - } - - public function getTextWithContext(): string - { - return $this->context.$this->text.'.'; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php deleted file mode 100644 index 3b39f36..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a complex argument containing nested values. - * - * @author Titouan Galopin - */ -interface ArgumentInterface -{ - public function getValues(): array; - - /** - * @return void - */ - public function setValues(array $values); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/BoundArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/BoundArgument.php deleted file mode 100644 index 22d9414..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/BoundArgument.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * @author Guilhem Niot - */ -final class BoundArgument implements ArgumentInterface -{ - public const SERVICE_BINDING = 0; - public const DEFAULTS_BINDING = 1; - public const INSTANCEOF_BINDING = 2; - - private static int $sequence = 0; - - private mixed $value; - private ?int $identifier = null; - private ?bool $used = null; - private int $type; - private ?string $file; - - public function __construct(mixed $value, bool $trackUsage = true, int $type = 0, ?string $file = null) - { - $this->value = $value; - if ($trackUsage) { - $this->identifier = ++self::$sequence; - } else { - $this->used = true; - } - $this->type = $type; - $this->file = $file; - } - - public function getValues(): array - { - return [$this->value, $this->identifier, $this->used, $this->type, $this->file]; - } - - public function setValues(array $values): void - { - if (5 === \count($values)) { - [$this->value, $this->identifier, $this->used, $this->type, $this->file] = $values; - } else { - [$this->value, $this->identifier, $this->used] = $values; - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/IteratorArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/IteratorArgument.php deleted file mode 100644 index aedd1e6..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/IteratorArgument.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of values to lazily iterate over. - * - * @author Titouan Galopin - */ -class IteratorArgument implements ArgumentInterface -{ - private array $values; - - public function __construct(array $values) - { - $this->setValues($values); - } - - public function getValues(): array - { - return $this->values; - } - - /** - * @return void - */ - public function setValues(array $values) - { - $this->values = $values; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/LazyClosure.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/LazyClosure.php deleted file mode 100644 index 45e1c9d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/LazyClosure.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\VarExporter\ProxyHelper; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class LazyClosure -{ - public readonly object $service; - - public function __construct( - private \Closure $initializer, - ) { - unset($this->service); - } - - public function __get(mixed $name): mixed - { - if ('service' !== $name) { - throw new InvalidArgumentException(sprintf('Cannot read property "%s" from a lazy closure.', $name)); - } - - if (isset($this->initializer)) { - if (\is_string($service = ($this->initializer)())) { - $service = (new \ReflectionClass($service))->newInstanceWithoutConstructor(); - } - $this->service = $service; - unset($this->initializer); - } - - return $this->service; - } - - public static function getCode(string $initializer, array $callable, string $class, ContainerBuilder $container, ?string $id): string - { - $method = $callable[1]; - - if ($asClosure = 'Closure' === $class) { - $class = ($callable[0] instanceof Reference ? $container->findDefinition($callable[0]) : $callable[0])->getClass(); - } - - $r = $container->getReflectionClass($class); - - if (null !== $id) { - $id = sprintf(' for service "%s"', $id); - } - - if (!$asClosure) { - $id = str_replace('%', '%%', (string) $id); - - if (!$r || !$r->isInterface()) { - throw new RuntimeException(sprintf("Cannot create adapter{$id} because \"%s\" is not an interface.", $class)); - } - if (1 !== \count($method = $r->getMethods())) { - throw new RuntimeException(sprintf("Cannot create adapter{$id} because interface \"%s\" doesn't have exactly one method.", $class)); - } - $method = $method[0]->name; - } elseif (!$r || !$r->hasMethod($method)) { - throw new RuntimeException("Cannot create lazy closure{$id} because its corresponding callable is invalid."); - } - - $methodReflector = $r->getMethod($method); - $code = ProxyHelper::exportSignature($methodReflector, true, $args); - - if ($asClosure) { - $code = ' { '.preg_replace('/: static$/', ': \\'.$r->name, $code); - } else { - $code = ' implements \\'.$r->name.' { '.$code; - } - - $code = 'new class('.$initializer.') extends \\'.self::class - .$code.' { '.($methodReflector->hasReturnType() && 'void' === (string) $methodReflector->getReturnType() ? '' : 'return ').'$this->service->'.$callable[1].'('.$args.'); } ' - .'}'; - - return $asClosure ? '('.$code.')->'.$method.'(...)' : $code; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php deleted file mode 100644 index 293d9a0..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -trigger_deprecation('symfony/dependency-injection', '6.1', '"%s" is deprecated.', ReferenceSetArgumentTrait::class); - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Titouan Galopin - * @author Nicolas Grekas - * - * @deprecated since Symfony 6.1 - */ -trait ReferenceSetArgumentTrait -{ - private array $values; - - /** - * @param Reference[] $values - */ - public function __construct(array $values) - { - $this->setValues($values); - } - - /** - * @return Reference[] - */ - public function getValues(): array - { - return $this->values; - } - - /** - * @param Reference[] $values The service references to put in the set - * - * @return void - */ - public function setValues(array $values) - { - foreach ($values as $k => $v) { - if (null !== $v && !$v instanceof Reference) { - throw new InvalidArgumentException(sprintf('A "%s" must hold only Reference instances, "%s" given.', __CLASS__, get_debug_type($v))); - } - } - - $this->values = $values; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php deleted file mode 100644 index 9fee374..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * @internal - */ -class RewindableGenerator implements \IteratorAggregate, \Countable -{ - private \Closure $generator; - private \Closure|int $count; - - public function __construct(callable $generator, int|callable $count) - { - $this->generator = $generator(...); - $this->count = \is_int($count) ? $count : $count(...); - } - - public function getIterator(): \Traversable - { - $g = $this->generator; - - return $g(); - } - - public function count(): int - { - if (!\is_int($count = $this->count)) { - $this->count = $count(); - } - - return $this->count; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php deleted file mode 100644 index be86412..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Represents a service wrapped in a memoizing closure. - * - * @author Nicolas Grekas - */ -class ServiceClosureArgument implements ArgumentInterface -{ - private array $values; - - public function __construct(mixed $value) - { - $this->values = [$value]; - } - - public function getValues(): array - { - return $this->values; - } - - /** - * @return void - */ - public function setValues(array $values) - { - if ([0] !== array_keys($values)) { - throw new InvalidArgumentException('A ServiceClosureArgument must hold one and only one value.'); - } - - $this->values = $values; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocator.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocator.php deleted file mode 100644 index 8276f6a..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocator.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class ServiceLocator extends BaseServiceLocator -{ - private \Closure $factory; - private array $serviceMap; - private ?array $serviceTypes; - - public function __construct(\Closure $factory, array $serviceMap, ?array $serviceTypes = null) - { - $this->factory = $factory; - $this->serviceMap = $serviceMap; - $this->serviceTypes = $serviceTypes; - parent::__construct($serviceMap); - } - - public function get(string $id): mixed - { - return match (\count($this->serviceMap[$id] ?? [])) { - 0 => parent::get($id), - 1 => $this->serviceMap[$id][0], - default => ($this->factory)(...$this->serviceMap[$id]), - }; - } - - public function getProvidedServices(): array - { - return $this->serviceTypes ??= array_map(fn () => '?', $this->serviceMap); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php deleted file mode 100644 index de533fc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a closure acting as a service locator. - * - * @author Nicolas Grekas - */ -class ServiceLocatorArgument implements ArgumentInterface -{ - private array $values; - private ?TaggedIteratorArgument $taggedIteratorArgument = null; - - public function __construct(array|TaggedIteratorArgument $values = []) - { - if ($values instanceof TaggedIteratorArgument) { - $this->taggedIteratorArgument = $values; - $values = []; - } - - $this->setValues($values); - } - - public function getTaggedIteratorArgument(): ?TaggedIteratorArgument - { - return $this->taggedIteratorArgument; - } - - public function getValues(): array - { - return $this->values; - } - - /** - * @return void - */ - public function setValues(array $values) - { - $this->values = $values; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php b/projects/priceservice/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php deleted file mode 100644 index bba5e34..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of services found by tag name to lazily iterate over. - * - * @author Roland Franssen - */ -class TaggedIteratorArgument extends IteratorArgument -{ - private string $tag; - private mixed $indexAttribute; - private ?string $defaultIndexMethod; - private ?string $defaultPriorityMethod; - private bool $needsIndexes; - private array $exclude; - private bool $excludeSelf = true; - - /** - * @param string $tag The name of the tag identifying the target services - * @param string|null $indexAttribute The name of the attribute that defines the key referencing each service in the tagged collection - * @param string|null $defaultIndexMethod The static method that should be called to get each service's key when their tag doesn't define the previous attribute - * @param bool $needsIndexes Whether indexes are required and should be generated when computing the map - * @param string|null $defaultPriorityMethod The static method that should be called to get each service's priority when their tag doesn't define the "priority" attribute - * @param array $exclude Services to exclude from the iterator - * @param bool $excludeSelf Whether to automatically exclude the referencing service from the iterator - */ - public function __construct(string $tag, ?string $indexAttribute = null, ?string $defaultIndexMethod = null, bool $needsIndexes = false, ?string $defaultPriorityMethod = null, array $exclude = [], bool $excludeSelf = true) - { - parent::__construct([]); - - if (null === $indexAttribute && $needsIndexes) { - $indexAttribute = preg_match('/[^.]++$/', $tag, $m) ? $m[0] : $tag; - } - - $this->tag = $tag; - $this->indexAttribute = $indexAttribute; - $this->defaultIndexMethod = $defaultIndexMethod ?: ($indexAttribute ? 'getDefault'.str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $indexAttribute))).'Name' : null); - $this->needsIndexes = $needsIndexes; - $this->defaultPriorityMethod = $defaultPriorityMethod ?: ($indexAttribute ? 'getDefault'.str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $indexAttribute))).'Priority' : null); - $this->exclude = $exclude; - $this->excludeSelf = $excludeSelf; - } - - /** - * @return string - */ - public function getTag() - { - return $this->tag; - } - - public function getIndexAttribute(): ?string - { - return $this->indexAttribute; - } - - public function getDefaultIndexMethod(): ?string - { - return $this->defaultIndexMethod; - } - - public function needsIndexes(): bool - { - return $this->needsIndexes; - } - - public function getDefaultPriorityMethod(): ?string - { - return $this->defaultPriorityMethod; - } - - public function getExclude(): array - { - return $this->exclude; - } - - public function excludeSelf(): bool - { - return $this->excludeSelf; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsAlias.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsAlias.php deleted file mode 100644 index 8068959..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsAlias.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell under which alias a service should be registered or to use the implemented interface if no parameter is given. - * - * @author Alan Poulain - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -final class AsAlias -{ - public function __construct( - public ?string $id = null, - public bool $public = false, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsDecorator.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsDecorator.php deleted file mode 100644 index 0f80c16..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsDecorator.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\ContainerInterface; - -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsDecorator -{ - public function __construct( - public string $decorates, - public int $priority = 0, - public int $onInvalid = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php deleted file mode 100644 index 2320336..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell under which index and priority a service class should be found in tagged iterators/locators. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsTaggedItem -{ - public function __construct( - public ?string $index = null, - public ?int $priority = null, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php deleted file mode 100644 index 4560ed6..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell how a base type should be autoconfigured. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -class Autoconfigure -{ - public function __construct( - public ?array $tags = null, - public ?array $calls = null, - public ?array $bind = null, - public bool|string|null $lazy = null, - public ?bool $public = null, - public ?bool $shared = null, - public ?bool $autowire = null, - public ?array $properties = null, - public array|string|null $configurator = null, - public ?string $constructor = null, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php deleted file mode 100644 index a83a6e9..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell how a base type should be tagged. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -class AutoconfigureTag extends Autoconfigure -{ - public function __construct(?string $name = null, array $attributes = []) - { - parent::__construct( - tags: [ - [$name ?? 0 => $attributes], - ] - ); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autowire.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autowire.php deleted file mode 100644 index 8740926..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Autowire.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * Attribute to tell a parameter how to be autowired. - * - * @author Kevin Bond - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class Autowire -{ - public readonly string|array|Expression|Reference|ArgumentInterface|null $value; - public readonly bool|array $lazy; - - /** - * Use only ONE of the following. - * - * @param string|array|ArgumentInterface|null $value Value to inject (ie "%kernel.project_dir%/some/path") - * @param string|null $service Service ID (ie "some.service") - * @param string|null $expression Expression (ie 'service("some.service").someMethod()') - * @param string|null $env Environment variable name (ie 'SOME_ENV_VARIABLE') - * @param string|null $param Parameter name (ie 'some.parameter.name') - * @param bool|class-string|class-string[] $lazy Whether to use lazy-loading for this argument - */ - public function __construct( - string|array|ArgumentInterface|null $value = null, - ?string $service = null, - ?string $expression = null, - ?string $env = null, - ?string $param = null, - bool|string|array $lazy = false, - ) { - if ($this->lazy = \is_string($lazy) ? [$lazy] : $lazy) { - if (null !== ($expression ?? $env ?? $param)) { - throw new LogicException('#[Autowire] attribute cannot be $lazy and use $expression, $env, or $param.'); - } - if (null !== $value && null !== $service) { - throw new LogicException('#[Autowire] attribute cannot declare $value and $service at the same time.'); - } - } elseif (!(null !== $value xor null !== $service xor null !== $expression xor null !== $env xor null !== $param)) { - throw new LogicException('#[Autowire] attribute must declare exactly one of $service, $expression, $env, $param or $value.'); - } - - if (\is_string($value) && str_starts_with($value, '@')) { - match (true) { - str_starts_with($value, '@@') => $value = substr($value, 1), - str_starts_with($value, '@=') => $expression = substr($value, 2), - default => $service = substr($value, 1), - }; - } - - $this->value = match (true) { - null !== $service => new Reference($service), - null !== $expression => class_exists(Expression::class) ? new Expression($expression) : throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed. Try running "composer require symfony/expression-language".'), - null !== $env => "%env($env)%", - null !== $param => "%$param%", - default => $value, - }; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireCallable.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireCallable.php deleted file mode 100644 index da9ac0d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireCallable.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Attribute to tell which callable to give to an argument of type Closure. - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class AutowireCallable extends Autowire -{ - /** - * @param bool|class-string $lazy Whether to use lazy-loading for this argument - */ - public function __construct( - string|array|null $callable = null, - ?string $service = null, - ?string $method = null, - bool|string $lazy = false, - ) { - if (!(null !== $callable xor null !== $service)) { - throw new LogicException('#[AutowireCallable] attribute must declare exactly one of $callable or $service.'); - } - if (null === $service && null !== $method) { - throw new LogicException('#[AutowireCallable] attribute cannot have a $method without a $service.'); - } - - parent::__construct($callable ?? [new Reference($service), $method ?? '__invoke'], lazy: $lazy); - } - - public function buildDefinition(mixed $value, ?string $type, \ReflectionParameter $parameter): Definition - { - return (new Definition($type = \is_array($this->lazy) ? current($this->lazy) : ($type ?: 'Closure'))) - ->setFactory(['Closure', 'fromCallable']) - ->setArguments([\is_array($value) ? $value + [1 => '__invoke'] : $value]) - ->setLazy($this->lazy || 'Closure' !== $type && 'callable' !== (string) $parameter->getType()); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireDecorated.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireDecorated.php deleted file mode 100644 index ed8f33e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireDecorated.php +++ /dev/null @@ -1,17 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class AutowireDecorated -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireIterator.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireIterator.php deleted file mode 100644 index 1c4d2a3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireIterator.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; - -/** - * Autowires an iterator of services based on a tag name. - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class AutowireIterator extends Autowire -{ - /** - * @param string|string[] $exclude A service or a list of services to exclude - */ - public function __construct( - string $tag, - ?string $indexAttribute = null, - ?string $defaultIndexMethod = null, - ?string $defaultPriorityMethod = null, - string|array $exclude = [], - bool $excludeSelf = true, - ) { - parent::__construct(new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, false, $defaultPriorityMethod, (array) $exclude, $excludeSelf)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireLocator.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireLocator.php deleted file mode 100644 index 5d3cf37..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireLocator.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Contracts\Service\Attribute\SubscribedService; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * Autowires a service locator based on a tag name or an explicit list of key => service-type pairs. - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class AutowireLocator extends Autowire -{ - /** - * @see ServiceSubscriberInterface::getSubscribedServices() - * - * @param string|array $services An explicit list of services or a tag name - * @param string|string[] $exclude A service or a list of services to exclude - */ - public function __construct( - string|array $services, - ?string $indexAttribute = null, - ?string $defaultIndexMethod = null, - ?string $defaultPriorityMethod = null, - string|array $exclude = [], - bool $excludeSelf = true, - ) { - if (\is_string($services)) { - parent::__construct(new ServiceLocatorArgument(new TaggedIteratorArgument($services, $indexAttribute, $defaultIndexMethod, true, $defaultPriorityMethod, (array) $exclude, $excludeSelf))); - - return; - } - - $references = []; - - foreach ($services as $key => $type) { - $attributes = []; - - if ($type instanceof Autowire) { - $references[$key] = $type; - continue; - } - - if ($type instanceof SubscribedService) { - $key = $type->key ?? $key; - $attributes = $type->attributes; - $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(sprintf('When "%s" is used, a type must be set.', SubscribedService::class))); - } - - if (!\is_string($type) || !preg_match('/(?(DEFINE)(?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+))(?(DEFINE)(?(?&cn)(?:\\\\(?&cn))*+))^\??(?&fqcn)(?:(?:\|(?&fqcn))*+|(?:&(?&fqcn))*+)$/', $type)) { - throw new InvalidArgumentException(sprintf('"%s" is not a PHP type for key "%s".', \is_string($type) ? $type : get_debug_type($type), $key)); - } - $optionalBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if ('?' === $type[0]) { - $type = substr($type, 1); - $optionalBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } - if (\is_int($name = $key)) { - $key = $type; - $name = null; - } - - $references[$key] = new TypedReference($type, $type, $optionalBehavior, $name, $attributes); - } - - parent::__construct(new ServiceLocatorArgument($references)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireServiceClosure.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireServiceClosure.php deleted file mode 100644 index a468414..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/AutowireServiceClosure.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Attribute to wrap a service in a closure that returns it. - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class AutowireServiceClosure extends Autowire -{ - public function __construct(string $service) - { - parent::__construct(new ServiceClosureArgument(new Reference($service))); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Exclude.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Exclude.php deleted file mode 100644 index 43efdcf..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Exclude.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell the class should not be registered as service. - * - * @author Grégoire Pineau - */ -#[\Attribute(\Attribute::TARGET_CLASS)] -class Exclude -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/MapDecorated.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/MapDecorated.php deleted file mode 100644 index d63f056..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/MapDecorated.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -trigger_deprecation('symfony/dependency-injection', '6.3', 'The "%s" class is deprecated, use "%s" instead.', MapDecorated::class, AutowireDecorated::class); - -/** - * @deprecated since Symfony 6.3, use AutowireDecorated instead - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class MapDecorated -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php deleted file mode 100644 index dce969b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class TaggedIterator extends AutowireIterator -{ - public function __construct( - public string $tag, - public ?string $indexAttribute = null, - public ?string $defaultIndexMethod = null, - public ?string $defaultPriorityMethod = null, - public string|array $exclude = [], - public bool $excludeSelf = true, - ) { - parent::__construct($tag, $indexAttribute, $defaultIndexMethod, $defaultPriorityMethod, $exclude, $excludeSelf); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php deleted file mode 100644 index 15fb62d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class TaggedLocator extends AutowireLocator -{ - public function __construct( - public string $tag, - public ?string $indexAttribute = null, - public ?string $defaultIndexMethod = null, - public ?string $defaultPriorityMethod = null, - public string|array $exclude = [], - public bool $excludeSelf = true, - ) { - parent::__construct($tag, $indexAttribute, $defaultIndexMethod, $defaultPriorityMethod, $exclude, $excludeSelf); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Target.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Target.php deleted file mode 100644 index 028be55..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/Target.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; - -/** - * An attribute to tell how a dependency is used and hint named autowiring aliases. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -final class Target -{ - public function __construct( - public ?string $name = null, - ) { - } - - public function getParsedName(): string - { - if (null === $this->name) { - throw new LogicException(sprintf('Cannot parse the name of a #[Target] attribute that has not been resolved. Did you forget to call "%s::parseName()"?', __CLASS__)); - } - - return lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $this->name)))); - } - - public static function parseName(\ReflectionParameter $parameter, ?self &$attribute = null, ?string &$parsedName = null): string - { - $attribute = null; - if (!$target = $parameter->getAttributes(self::class)[0] ?? null) { - $parsedName = (new self($parameter->name))->getParsedName(); - - return $parameter->name; - } - - $attribute = $target->newInstance(); - $name = $attribute->name ??= $parameter->name; - $parsedName = $attribute->getParsedName(); - - if (!preg_match('/^[a-zA-Z_\x7f-\xff]/', $parsedName)) { - if (($function = $parameter->getDeclaringFunction()) instanceof \ReflectionMethod) { - $function = $function->class.'::'.$function->name; - } else { - $function = $function->name; - } - - throw new InvalidArgumentException(sprintf('Invalid #[Target] name "%s" on parameter "$%s" of "%s()": the first character must be a letter.', $name, $parameter->name, $function)); - } - - return preg_match('/^[a-zA-Z0-9_\x7f-\xff]++$/', $name) ? $name : $parsedName; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/When.php b/projects/priceservice/vendor/symfony/dependency-injection/Attribute/When.php deleted file mode 100644 index 302b7b0..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Attribute/When.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell under which environment this class should be registered as a service. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION | \Attribute::IS_REPEATABLE)] -class When -{ - public function __construct( - public string $env, - ) { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/CHANGELOG.md b/projects/priceservice/vendor/symfony/dependency-injection/CHANGELOG.md deleted file mode 100644 index 0f38ac8..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/CHANGELOG.md +++ /dev/null @@ -1,371 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * Allow using `#[Target]` with no arguments to state that a parameter must match a named autowiring alias - * Deprecate `ContainerAwareInterface` and `ContainerAwareTrait`, use dependency injection instead - * Add `defined` env var processor that returns `true` for defined and neither null nor empty env vars - * Add `#[AutowireLocator]` and `#[AutowireIterator]` attributes - -6.3 ---- - - * Add options `inline_factories` and `inline_class_loader` to `PhpDumper::dump()` - * Deprecate `PhpDumper` options `inline_factories_parameter` and `inline_class_loader_parameter` - * Add `RemoveBuildParametersPass`, which removes parameters starting with a dot during compilation - * Add support for nesting autowiring-related attributes into `#[Autowire(...)]` - * Deprecate undefined and numeric keys with `service_locator` config - * Fail if Target attribute does not exist during compilation - * Enable deprecating parameters with `ContainerBuilder::deprecateParameter()` - * Add `#[AsAlias]` attribute to tell under which alias a service should be registered or to use the implemented interface if no parameter is given - * Allow to trim XML service parameters value by using `trim="true"` attribute - * Allow extending the `Autowire` attribute - * Add `#[Exclude]` to skip autoregistering a class - * Add support for generating lazy closures - * Add support for autowiring services as closures using `#[AutowireCallable]` or `#[AutowireServiceClosure]` - * Add support for `#[Autowire(lazy: true|class-string)]` - * Make it possible to cast callables into single-method interfaces - * Deprecate `#[MapDecorated]`, use `#[AutowireDecorated]` instead - * Deprecate the `@required` annotation, use the `Symfony\Contracts\Service\Attribute\Required` attribute instead - * Add `constructor` option to services declaration and to `#[Autoconfigure]` - -6.2 ---- - - * Use lazy-loading ghost objects and virtual proxies out of the box - * Add arguments `&$asGhostObject` and `$id` to LazyProxy's `DumperInterface` to allow using ghost objects for lazy loading services - * Add `enum` env var processor - * Add `shuffle` env var processor - * Allow #[When] to be extended - * Change the signature of `ContainerAwareInterface::setContainer()` to `setContainer(?ContainerInterface)` - * Deprecate calling `ContainerAwareTrait::setContainer()` without arguments - * Deprecate using numeric parameter names - * Add support for tagged iterators/locators `exclude` option to the xml and yaml loaders/dumpers - * Allow injecting `string $env` into php config closures - * Add `excludeSelf` parameter to `TaggedIteratorArgument` with default value to `true` - to control whether the referencing service should be automatically excluded from the iterator - -6.1 ---- - - * Add `#[MapDecorated]` attribute telling to which parameter the decorated service should be mapped in a decorator - * Add `#[AsDecorator]` attribute to make a service decorates another - * Add `$exclude` to `TaggedIterator` and `TaggedLocator` attributes - * Add `$exclude` to `tagged_iterator` and `tagged_locator` configurator - * Add an `env` function to the expression language provider - * Add an `Autowire` attribute to tell a parameter how to be autowired - * Allow using expressions as service factories - * Add argument type `closure` to help passing closures to services - * Deprecate `ReferenceSetArgumentTrait` - * Add `AbstractExtension` class for DI configuration/definition on a single file - -6.0 ---- - - * Remove `Definition::setPrivate()` and `Alias::setPrivate()`, use `setPublic()` instead - * Remove `inline()` in favor of `inline_service()` and `ref()` in favor of `service()` when using the PHP-DSL - * Remove `Definition::getDeprecationMessage()`, use `Definition::getDeprecation()` instead - * Remove `Alias::getDeprecationMessage()`, use `Alias::getDeprecation()` instead - * Remove the `Psr\Container\ContainerInterface` and `Symfony\Component\DependencyInjection\ContainerInterface` aliases of the `service_container` service - -5.4 ---- - * Add `$defaultIndexMethod` and `$defaultPriorityMethod` to `TaggedIterator` and `TaggedLocator` attributes - * Add `service_closure()` to the PHP-DSL - * Add support for autoconfigurable attributes on methods, properties and parameters - * Make auto-aliases private by default - * Add support for autowiring union and intersection types - -5.3 ---- - - * Add `ServicesConfigurator::remove()` in the PHP-DSL - * Add `%env(not:...)%` processor to negate boolean values - * Add support for loading autoconfiguration rules via the `#[Autoconfigure]` and `#[AutoconfigureTag]` attributes on PHP 8 - * Add `#[AsTaggedItem]` attribute for defining the index and priority of classes found in tagged iterators/locators - * Add autoconfigurable attributes - * Add support for autowiring tagged iterators and locators via attributes on PHP 8 - * Add support for per-env configuration in XML and Yaml loaders - * Add `ContainerBuilder::willBeAvailable()` to help with conditional configuration - * Add support an integer return value for default_index_method - * Add `#[When(env: 'foo')]` to skip autoregistering a class when the env doesn't match - * Add `env()` and `EnvConfigurator` in the PHP-DSL - * Add support for `ConfigBuilder` in the `PhpFileLoader` - * Add `ContainerConfigurator::env()` to get the current environment - * Add `#[Target]` to tell how a dependency is used and hint named autowiring aliases - -5.2.0 ------ - - * added `param()` and `abstract_arg()` in the PHP-DSL - * deprecated `Definition::setPrivate()` and `Alias::setPrivate()`, use `setPublic()` instead - * added support for the `#[Required]` attribute - -5.1.0 ------ - - * deprecated `inline()` in favor of `inline_service()` and `ref()` in favor of `service()` when using the PHP-DSL - * allow decorators to reference their decorated service using the special `.inner` id - * added support to autowire public typed properties in php 7.4 - * added support for defining method calls, a configurator, and property setters in `InlineServiceConfigurator` - * added possibility to define abstract service arguments - * allowed mixing "parent" and instanceof-conditionals/defaults/bindings - * updated the signature of method `Definition::setDeprecated()` to `Definition::setDeprecation(string $package, string $version, string $message)` - * updated the signature of method `Alias::setDeprecated()` to `Alias::setDeprecation(string $package, string $version, string $message)` - * updated the signature of method `DeprecateTrait::deprecate()` to `DeprecateTrait::deprecation(string $package, string $version, string $message)` - * deprecated the `Psr\Container\ContainerInterface` and `Symfony\Component\DependencyInjection\ContainerInterface` aliases of the `service_container` service, - configure them explicitly instead - * added class `Symfony\Component\DependencyInjection\Dumper\Preloader` to help with preloading on PHP 7.4+ - * added tags `container.preload`/`.no_preload` to declare extra classes to preload/services to not preload - * allowed loading and dumping tags with an attribute named "name" - * deprecated `Definition::getDeprecationMessage()`, use `Definition::getDeprecation()` instead - * deprecated `Alias::getDeprecationMessage()`, use `Alias::getDeprecation()` instead - * added support of PHP8 static return type for withers - * added `AliasDeprecatedPublicServicesPass` to deprecate public services to private - -5.0.0 ------ - - * removed support for auto-discovered extension configuration class which does not implement `ConfigurationInterface` - * removed support for non-string default env() parameters - * moved `ServiceSubscriberInterface` to the `Symfony\Contracts\Service` namespace - * removed `RepeatedPass` and `RepeatablePassInterface` - * removed support for short factory/configurator syntax from `YamlFileLoader` - * removed `ResettableContainerInterface`, use `ResetInterface` instead - * added argument `$returnsClone` to `Definition::addMethodCall()` - * removed `tagged`, use `tagged_iterator` instead - -4.4.0 ------ - - * added `CheckTypeDeclarationsPass` to check injected parameters type during compilation - * added support for opcache.preload by generating a preloading script in the cache folder - * added support for dumping the container in one file instead of many files - * deprecated support for short factories and short configurators in Yaml - * added `tagged_iterator` alias for `tagged` which might be deprecated in a future version - * deprecated passing an instance of `Symfony\Component\DependencyInjection\Parameter` as class name to `Symfony\Component\DependencyInjection\Definition` - * added support for binding iterable and tagged services - * made singly-implemented interfaces detection be scoped by file - * added ability to define a static priority method for tagged service - * added support for improved syntax to define method calls in Yaml - * made the `%env(base64:...)%` processor able to decode base64url - * added ability to choose behavior of decorations on non existent decorated services - -4.3.0 ------ - - * added `%env(trim:...)%` processor to trim a string value - * added `%env(default:param_name:...)%` processor to fallback to a parameter or to null when using `%env(default::...)%` - * added `%env(url:...)%` processor to convert a URL or DNS into an array of components - * added `%env(query_string:...)%` processor to convert a query string into an array of key values - * added support for deprecating aliases - * made `ContainerParametersResource` final and not implement `Serializable` anymore - * added `ReverseContainer`: a container that turns services back to their ids - * added ability to define an index for a tagged collection - * added ability to define an index for services in an injected service locator argument - * made `ServiceLocator` implement `ServiceProviderInterface` - * deprecated support for non-string default env() parameters - * added `%env(require:...)%` processor to `require()` a PHP file and use the value returned from it - -4.2.0 ------ - - * added `ContainerBuilder::registerAliasForArgument()` to support autowiring by type+name - * added support for binding by type+name - * added `ServiceSubscriberTrait` to ease implementing `ServiceSubscriberInterface` using methods' return types - * added `ServiceLocatorArgument` and `!service_locator` config tag for creating optimized service-locators - * added support for autoconfiguring bindings - * added `%env(key:...)%` processor to fetch a specific key from an array - * deprecated `ServiceSubscriberInterface`, use the same interface from the `Symfony\Contracts\Service` namespace instead - * deprecated `ResettableContainerInterface`, use `Symfony\Contracts\Service\ResetInterface` instead - -4.1.0 ------ - - * added support for variadics in named arguments - * added PSR-11 `ContainerBagInterface` and its `ContainerBag` implementation to access parameters as-a-service - * added support for service's decorators autowiring - * deprecated the `TypedReference::canBeAutoregistered()` and `TypedReference::getRequiringClass()` methods - * environment variables are validated when used in extension configuration - * deprecated support for auto-discovered extension configuration class which does not implement `ConfigurationInterface` - -4.0.0 ------ - - * Relying on service auto-registration while autowiring is not supported anymore. - Explicitly inject your dependencies or create services whose ids are - their fully-qualified class name. - - Before: - - ```php - namespace App\Controller; - - use App\Mailer; - - class DefaultController - { - public function __construct(Mailer $mailer) { - // ... - } - - // ... - } - ``` - ```yml - services: - App\Controller\DefaultController: - autowire: true - ``` - - After: - - ```php - // same PHP code - ``` - ```yml - services: - App\Controller\DefaultController: - autowire: true - - # or - # App\Controller\DefaultController: - # arguments: { $mailer: "@App\Mailer" } - - App\Mailer: - autowire: true - ``` - * removed autowiring services based on the types they implement - * added a third `$methodName` argument to the `getProxyFactoryCode()` method - of the `DumperInterface` - * removed support for autowiring types - * removed `Container::isFrozen` - * removed support for dumping an ucompiled container in `PhpDumper` - * removed support for generating a dumped `Container` without populating the method map - * removed support for case insensitive service identifiers - * removed the `DefinitionDecorator` class, replaced by `ChildDefinition` - * removed the `AutowireServiceResource` class and related `AutowirePass::createResourceForClass()` method - * removed `LoggingFormatter`, `Compiler::getLoggingFormatter()` and `addLogMessage()` class and methods, use the `ContainerBuilder::log()` method instead - * removed `FactoryReturnTypePass` - * removed `ContainerBuilder::addClassResource()`, use the `addObjectResource()` or the `getReflectionClass()` method instead. - * removed support for top-level anonymous services - * removed silent behavior for unused attributes and elements - * removed support for setting and accessing private services in `Container` - * removed support for setting pre-defined services in `Container` - * removed support for case insensitivity of parameter names - * removed `AutowireExceptionPass` and `AutowirePass::getAutowiringExceptions()`, use `Definition::addError()` and the `DefinitionErrorExceptionPass` instead - -3.4.0 ------ - - * moved the `ExtensionCompilerPass` to before-optimization passes with priority -1000 - * deprecated "public-by-default" definitions and aliases, the new default will be "private" in 4.0 - * added `EnvVarProcessorInterface` and corresponding "container.env_var_processor" tag for processing env vars - * added support for ignore-on-uninitialized references - * deprecated service auto-registration while autowiring - * deprecated the ability to check for the initialization of a private service with the `Container::initialized()` method - * deprecated support for top-level anonymous services in XML - * deprecated case insensitivity of parameter names - * deprecated the `ResolveDefinitionTemplatesPass` class in favor of `ResolveChildDefinitionsPass` - * added `TaggedIteratorArgument` with YAML (`!tagged foo`) and XML (``) support - * deprecated `AutowireExceptionPass` and `AutowirePass::getAutowiringExceptions()`, use `Definition::addError()` and the `DefinitionErrorExceptionPass` instead - -3.3.0 ------ - - * deprecated autowiring services based on the types they implement; - rename (or alias) your services to their FQCN id to make them autowirable - * added "ServiceSubscriberInterface" - to allow for per-class explicit service-locator definitions - * added "container.service_locator" tag for defining service-locator services - * added anonymous services support in YAML configuration files using the `!service` tag. - * added "TypedReference" and "ServiceClosureArgument" for creating service-locator services - * added `ServiceLocator` - a PSR-11 container holding a set of services to be lazily loaded - * added "instanceof" section for local interface-defined configs - * added prototype services for PSR4-based discovery and registration - * added `ContainerBuilder::getReflectionClass()` for retrieving and tracking reflection class info - * deprecated `ContainerBuilder::getClassResource()`, use `ContainerBuilder::getReflectionClass()` or `ContainerBuilder::addObjectResource()` instead - * added `ContainerBuilder::fileExists()` for checking and tracking file or directory existence - * deprecated autowiring-types, use aliases instead - * added support for omitting the factory class name in a service definition if the definition class is set - * deprecated case insensitivity of service identifiers - * added "iterator" argument type for lazy iteration over a set of values and services - * added file-wide configurable defaults for service attributes "public", "tags", - "autowire" and "autoconfigure" - * made the "class" attribute optional, using the "id" as fallback - * using the `PhpDumper` with an uncompiled `ContainerBuilder` is deprecated and - will not be supported anymore in 4.0 - * deprecated the `DefinitionDecorator` class in favor of `ChildDefinition` - * allow config files to be loaded using a glob pattern - * [BC BREAK] the `NullDumper` class is now final - -3.2.0 ------ - - * allowed to prioritize compiler passes by introducing a third argument to `PassConfig::addPass()`, to `Compiler::addPass` and to `ContainerBuilder::addCompilerPass()` - * added support for PHP constants in YAML configuration files - * deprecated the ability to set or unset a private service with the `Container::set()` method - * deprecated the ability to check for the existence of a private service with the `Container::has()` method - * deprecated the ability to request a private service with the `Container::get()` method - * deprecated support for generating a dumped `Container` without populating the method map - -3.0.0 ------ - - * removed all deprecated codes from 2.x versions - -2.8.0 ------ - - * deprecated the abstract ContainerAware class in favor of ContainerAwareTrait - * deprecated IntrospectableContainerInterface, to be merged with ContainerInterface in 3.0 - * allowed specifying a directory to recursively load all configuration files it contains - * deprecated the concept of scopes - * added `Definition::setShared()` and `Definition::isShared()` - * added ResettableContainerInterface to be able to reset the container to release memory on shutdown - * added a way to define the priority of service decoration - * added support for service autowiring - -2.7.0 ------ - - * deprecated synchronized services - -2.6.0 ------ - - * added new factory syntax and deprecated the old one - -2.5.0 ------ - - * added DecoratorServicePass and a way to override a service definition (Definition::setDecoratedService()) - * deprecated SimpleXMLElement class. - -2.4.0 ------ - - * added support for expressions in service definitions - * added ContainerAwareTrait to add default container aware behavior to a class - -2.2.0 ------ - - * added Extension::isConfigEnabled() to ease working with enableable configurations - * added an Extension base class with sensible defaults to be used in conjunction - with the Config component. - * added PrependExtensionInterface (to be able to allow extensions to prepend - application configuration settings for any Bundle) - -2.1.0 ------ - - * added IntrospectableContainerInterface (to be able to check if a service - has been initialized or not) - * added ConfigurationExtensionInterface - * added Definition::clearTag() - * component exceptions that inherit base SPL classes are now used exclusively - (this includes dumped containers) - * [BC BREAK] fixed unescaping of class arguments, method - ParameterBag::unescapeValue() was made public diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ChildDefinition.php b/projects/priceservice/vendor/symfony/dependency-injection/ChildDefinition.php deleted file mode 100644 index c5905a4..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ChildDefinition.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; - -/** - * This definition extends another definition. - * - * @author Johannes M. Schmitt - */ -class ChildDefinition extends Definition -{ - private string $parent; - - /** - * @param string $parent The id of Definition instance to decorate - */ - public function __construct(string $parent) - { - $this->parent = $parent; - } - - /** - * Returns the Definition to inherit from. - */ - public function getParent(): string - { - return $this->parent; - } - - /** - * Sets the Definition to inherit from. - * - * @return $this - */ - public function setParent(string $parent): static - { - $this->parent = $parent; - - return $this; - } - - /** - * Gets an argument to pass to the service constructor/factory method. - * - * If replaceArgument() has been used to replace an argument, this method - * will return the replacement value. - * - * @throws OutOfBoundsException When the argument does not exist - */ - public function getArgument(int|string $index): mixed - { - if (\array_key_exists('index_'.$index, $this->arguments)) { - return $this->arguments['index_'.$index]; - } - - return parent::getArgument($index); - } - - /** - * You should always use this method when overwriting existing arguments - * of the parent definition. - * - * If you directly call setArguments() keep in mind that you must follow - * certain conventions when you want to overwrite the arguments of the - * parent definition, otherwise your arguments will only be appended. - * - * @return $this - * - * @throws InvalidArgumentException when $index isn't an integer - */ - public function replaceArgument(int|string $index, mixed $value): static - { - if (\is_int($index)) { - $this->arguments['index_'.$index] = $value; - } elseif (str_starts_with($index, '$')) { - $this->arguments[$index] = $value; - } else { - throw new InvalidArgumentException('The argument must be an existing index or the name of a constructor\'s parameter.'); - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php deleted file mode 100644 index fd395be..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php +++ /dev/null @@ -1,263 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * @author Nicolas Grekas - */ -abstract class AbstractRecursivePass implements CompilerPassInterface -{ - /** - * @var ContainerBuilder - */ - protected $container; - protected $currentId; - protected bool $skipScalars = false; - - private bool $processExpressions = false; - private ExpressionLanguage $expressionLanguage; - private bool $inExpression = false; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - - try { - $this->processValue($container->getDefinitions(), true); - } finally { - $this->container = null; - } - } - - /** - * @return void - */ - protected function enableExpressionProcessing() - { - $this->processExpressions = true; - } - - protected function inExpression(bool $reset = true): bool - { - $inExpression = $this->inExpression; - if ($reset) { - $this->inExpression = false; - } - - return $inExpression; - } - - /** - * Processes a value found in a definition tree. - * - * @return mixed - */ - protected function processValue(mixed $value, bool $isRoot = false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - if ((!$v || \is_scalar($v)) && $this->skipScalars) { - continue; - } - if ($isRoot) { - if ($v instanceof Definition && $v->hasTag('container.excluded')) { - continue; - } - $this->currentId = $k; - } - if ($v !== $processedValue = $this->processValue($v, $isRoot)) { - $value[$k] = $processedValue; - } - } - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues())); - } elseif ($value instanceof Expression && $this->processExpressions) { - $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container', 'args' => 'args']); - } elseif ($value instanceof Definition) { - $value->setArguments($this->processValue($value->getArguments())); - $value->setProperties($this->processValue($value->getProperties())); - $value->setMethodCalls($this->processValue($value->getMethodCalls())); - - $changes = $value->getChanges(); - if (isset($changes['factory'])) { - if (\is_string($factory = $value->getFactory()) && str_starts_with($factory, '@=')) { - if (!class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used in service factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $factory = new Expression(substr($factory, 2)); - } - if (($factory = $this->processValue($factory)) instanceof Expression) { - $factory = '@='.$factory; - } - $value->setFactory($factory); - } - if (isset($changes['configurator'])) { - $value->setConfigurator($this->processValue($value->getConfigurator())); - } - } - - return $value; - } - - /** - * @throws RuntimeException - */ - protected function getConstructor(Definition $definition, bool $required): ?\ReflectionFunctionAbstract - { - if ($definition->isSynthetic()) { - return null; - } - - if (\is_string($factory = $definition->getFactory())) { - if (str_starts_with($factory, '@=')) { - return new \ReflectionFunction(static function (...$args) {}); - } - - if (!\function_exists($factory)) { - throw new RuntimeException(sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory)); - } - $r = new \ReflectionFunction($factory); - if (false !== $r->getFileName() && file_exists($r->getFileName())) { - $this->container->fileExists($r->getFileName()); - } - - return $r; - } - - if ($factory) { - [$class, $method] = $factory; - - if ('__construct' === $method) { - throw new RuntimeException(sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId)); - } - - if ($class instanceof Reference) { - $factoryDefinition = $this->container->findDefinition((string) $class); - while ((null === $class = $factoryDefinition->getClass()) && $factoryDefinition instanceof ChildDefinition) { - $factoryDefinition = $this->container->findDefinition($factoryDefinition->getParent()); - } - } elseif ($class instanceof Definition) { - $class = $class->getClass(); - } else { - $class ??= $definition->getClass(); - } - - return $this->getReflectionMethod(new Definition($class), $method); - } - - while ((null === $class = $definition->getClass()) && $definition instanceof ChildDefinition) { - $definition = $this->container->findDefinition($definition->getParent()); - } - - try { - if (!$r = $this->container->getReflectionClass($class)) { - if (null === $class) { - throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId)); - } - - throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - } catch (\ReflectionException $e) { - throw new RuntimeException(sprintf('Invalid service "%s": ', $this->currentId).lcfirst($e->getMessage())); - } - if (!$r = $r->getConstructor()) { - if ($required) { - throw new RuntimeException(sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, sprintf($class !== $this->currentId ? ' "%s"' : '', $class))); - } - } elseif (!$r->isPublic()) { - throw new RuntimeException(sprintf('Invalid service "%s": ', $this->currentId).sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class).' must be public.'); - } - - return $r; - } - - /** - * @throws RuntimeException - */ - protected function getReflectionMethod(Definition $definition, string $method): \ReflectionFunctionAbstract - { - if ('__construct' === $method) { - return $this->getConstructor($definition, true); - } - - while ((null === $class = $definition->getClass()) && $definition instanceof ChildDefinition) { - $definition = $this->container->findDefinition($definition->getParent()); - } - - if (null === $class) { - throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId)); - } - - if (!$r = $this->container->getReflectionClass($class)) { - throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - - if (!$r->hasMethod($method)) { - if ($r->hasMethod('__call') && ($r = $r->getMethod('__call')) && $r->isPublic()) { - return new \ReflectionMethod(static function (...$arguments) {}, '__invoke'); - } - - if ($r->hasMethod('__callStatic') && ($r = $r->getMethod('__callStatic')) && $r->isPublic()) { - return new \ReflectionMethod(static function (...$arguments) {}, '__invoke'); - } - - throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method)); - } - - $r = $r->getMethod($method); - if (!$r->isPublic()) { - throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method)); - } - - return $r; - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!class_exists(ExpressionLanguage::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed. Try running "composer require symfony/expression-language".'); - } - - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function (string $arg): string { - if ('""' === substr_replace($arg, '', 1, -1)) { - $id = stripcslashes(substr($arg, 1, -1)); - $this->inExpression = true; - $arg = $this->processValue(new Reference($id)); - $this->inExpression = false; - if (!$arg instanceof Reference) { - throw new RuntimeException(sprintf('"%s::processValue()" must return a Reference when processing an expression, "%s" returned for service("%s").', static::class, get_debug_type($arg), $id)); - } - $arg = sprintf('"%s"', $arg); - } - - return sprintf('$this->get(%s)', $arg); - }); - } - - return $this->expressionLanguage; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php deleted file mode 100644 index 7aa7ec2..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -final class AliasDeprecatedPublicServicesPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $aliases = []; - - public function process(ContainerBuilder $container): void - { - foreach ($container->findTaggedServiceIds('container.private') as $id => $tags) { - if (null === $package = $tags[0]['package'] ?? null) { - throw new InvalidArgumentException(sprintf('The "package" attribute is mandatory for the "container.private" tag on the "%s" service.', $id)); - } - - if (null === $version = $tags[0]['version'] ?? null) { - throw new InvalidArgumentException(sprintf('The "version" attribute is mandatory for the "container.private" tag on the "%s" service.', $id)); - } - - $definition = $container->getDefinition($id); - if (!$definition->isPublic() || $definition->isPrivate()) { - continue; - } - - $container - ->setAlias($id, $aliasId = '.container.private.'.$id) - ->setPublic(true) - ->setDeprecated($package, $version, 'Accessing the "%alias_id%" service directly from the container is deprecated, use dependency injection instead.'); - - $container->setDefinition($aliasId, $definition); - - $this->aliases[$id] = $aliasId; - } - - parent::process($container); - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Reference && isset($this->aliases[$id = (string) $value])) { - return new Reference($this->aliases[$id], $value->getInvalidBehavior()); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php deleted file mode 100644 index 4fea732..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php +++ /dev/null @@ -1,205 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * Run this pass before passes that need to know more about the relation of - * your services. - * - * This class will populate the ServiceReferenceGraph with information. You can - * retrieve the graph in other passes from the compiler. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class AnalyzeServiceReferencesPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private ServiceReferenceGraph $graph; - private ?Definition $currentDefinition = null; - private bool $onlyConstructorArguments; - private bool $hasProxyDumper; - private bool $lazy; - private bool $byConstructor; - private bool $byFactory; - private array $definitions; - private array $aliases; - - /** - * @param bool $onlyConstructorArguments Sets this Service Reference pass to ignore method calls - */ - public function __construct(bool $onlyConstructorArguments = false, bool $hasProxyDumper = true) - { - $this->onlyConstructorArguments = $onlyConstructorArguments; - $this->hasProxyDumper = $hasProxyDumper; - $this->enableExpressionProcessing(); - } - - /** - * Processes a ContainerBuilder object to populate the service reference graph. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->graph = $container->getCompiler()->getServiceReferenceGraph(); - $this->graph->clear(); - $this->lazy = false; - $this->byConstructor = false; - $this->byFactory = false; - $this->definitions = $container->getDefinitions(); - $this->aliases = $container->getAliases(); - - foreach ($this->aliases as $id => $alias) { - $targetId = $this->getDefinitionId((string) $alias); - $this->graph->connect($id, $alias, $targetId, null !== $targetId ? $this->container->getDefinition($targetId) : null, null); - } - - try { - parent::process($container); - } finally { - $this->aliases = $this->definitions = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - $lazy = $this->lazy; - $inExpression = $this->inExpression(); - - if ($value instanceof ArgumentInterface) { - $this->lazy = !$this->byFactory || !$value instanceof IteratorArgument; - parent::processValue($value->getValues()); - $this->lazy = $lazy; - - return $value; - } - if ($value instanceof Reference) { - $targetId = $this->getDefinitionId((string) $value); - $targetDefinition = null !== $targetId ? $this->container->getDefinition($targetId) : null; - - $this->graph->connect( - $this->currentId, - $this->currentDefinition, - $targetId, - $targetDefinition, - $value, - $this->lazy || ($this->hasProxyDumper && $targetDefinition?->isLazy()), - ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior(), - $this->byConstructor - ); - - if ($inExpression) { - $this->graph->connect( - '.internal.reference_in_expression', - null, - $targetId, - $targetDefinition, - $value, - $this->lazy || $targetDefinition?->isLazy(), - true - ); - } - - return $value; - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $this->currentDefinition = $value; - } elseif ($this->currentDefinition === $value) { - return $value; - } - $this->lazy = false; - - $byConstructor = $this->byConstructor; - $this->byConstructor = $isRoot || $byConstructor; - - $byFactory = $this->byFactory; - $this->byFactory = true; - if (\is_string($factory = $value->getFactory()) && str_starts_with($factory, '@=')) { - if (!class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used in service factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - - $factory = new Expression(substr($factory, 2)); - } - $this->processValue($factory); - $this->byFactory = $byFactory; - - $this->processValue($value->getArguments()); - - $properties = $value->getProperties(); - $setters = $value->getMethodCalls(); - - // Any references before a "wither" are part of the constructor-instantiation graph - $lastWitherIndex = null; - foreach ($setters as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (null !== $lastWitherIndex) { - $this->processValue($properties); - $setters = $properties = []; - - foreach ($value->getMethodCalls() as $k => $call) { - if (null === $lastWitherIndex) { - $setters[] = $call; - continue; - } - - if ($lastWitherIndex === $k) { - $lastWitherIndex = null; - } - - $this->processValue($call); - } - } - - $this->byConstructor = $byConstructor; - - if (!$this->onlyConstructorArguments) { - $this->processValue($properties); - $this->processValue($setters); - $this->processValue($value->getConfigurator()); - } - $this->lazy = $lazy; - - return $value; - } - - private function getDefinitionId(string $id): ?string - { - while (isset($this->aliases[$id])) { - $id = (string) $this->aliases[$id]; - } - - return isset($this->definitions[$id]) ? $id : null; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php deleted file mode 100644 index cb42856..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Alexander M. Turek - */ -final class AttributeAutoconfigurationPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $classAttributeConfigurators = []; - private array $methodAttributeConfigurators = []; - private array $propertyAttributeConfigurators = []; - private array $parameterAttributeConfigurators = []; - - public function process(ContainerBuilder $container): void - { - if (!$container->getAutoconfiguredAttributes()) { - return; - } - - foreach ($container->getAutoconfiguredAttributes() as $attributeName => $callable) { - $callableReflector = new \ReflectionFunction($callable(...)); - if ($callableReflector->getNumberOfParameters() <= 2) { - $this->classAttributeConfigurators[$attributeName] = $callable; - continue; - } - - $reflectorParameter = $callableReflector->getParameters()[2]; - $parameterType = $reflectorParameter->getType(); - $types = []; - if ($parameterType instanceof \ReflectionUnionType) { - foreach ($parameterType->getTypes() as $type) { - $types[] = $type->getName(); - } - } elseif ($parameterType instanceof \ReflectionNamedType) { - $types[] = $parameterType->getName(); - } else { - throw new LogicException(sprintf('Argument "$%s" of attribute autoconfigurator should have a type, use one or more of "\ReflectionClass|\ReflectionMethod|\ReflectionProperty|\ReflectionParameter|\Reflector" in "%s" on line "%d".', $reflectorParameter->getName(), $callableReflector->getFileName(), $callableReflector->getStartLine())); - } - - try { - $attributeReflector = new \ReflectionClass($attributeName); - } catch (\ReflectionException) { - continue; - } - - $targets = $attributeReflector->getAttributes(\Attribute::class)[0] ?? 0; - $targets = $targets ? $targets->getArguments()[0] ?? -1 : 0; - - foreach (['class', 'method', 'property', 'parameter'] as $symbol) { - if (['Reflector'] !== $types) { - if (!\in_array('Reflection'.ucfirst($symbol), $types, true)) { - continue; - } - if (!($targets & \constant('Attribute::TARGET_'.strtoupper($symbol)))) { - throw new LogicException(sprintf('Invalid type "Reflection%s" on argument "$%s": attribute "%s" cannot target a '.$symbol.' in "%s" on line "%d".', ucfirst($symbol), $reflectorParameter->getName(), $attributeName, $callableReflector->getFileName(), $callableReflector->getStartLine())); - } - } - $this->{$symbol.'AttributeConfigurators'}[$attributeName] = $callable; - } - } - - parent::process($container); - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Definition - || !$value->isAutoconfigured() - || $value->isAbstract() - || $value->hasTag('container.ignore_attributes') - || !($classReflector = $this->container->getReflectionClass($value->getClass(), false)) - ) { - return parent::processValue($value, $isRoot); - } - - $instanceof = $value->getInstanceofConditionals(); - $conditionals = $instanceof[$classReflector->getName()] ?? new ChildDefinition(''); - - if ($this->classAttributeConfigurators) { - foreach ($classReflector->getAttributes() as $attribute) { - if ($configurator = $this->classAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $classReflector); - } - } - } - - if ($this->parameterAttributeConfigurators) { - try { - $constructorReflector = $this->getConstructor($value, false); - } catch (RuntimeException) { - $constructorReflector = null; - } - - if ($constructorReflector) { - foreach ($constructorReflector->getParameters() as $parameterReflector) { - foreach ($parameterReflector->getAttributes() as $attribute) { - if ($configurator = $this->parameterAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $parameterReflector); - } - } - } - } - } - - if ($this->methodAttributeConfigurators || $this->parameterAttributeConfigurators) { - foreach ($classReflector->getMethods(\ReflectionMethod::IS_PUBLIC) as $methodReflector) { - if ($methodReflector->isConstructor() || $methodReflector->isDestructor()) { - continue; - } - - if ($this->methodAttributeConfigurators) { - foreach ($methodReflector->getAttributes() as $attribute) { - if ($configurator = $this->methodAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $methodReflector); - } - } - } - - if ($this->parameterAttributeConfigurators) { - foreach ($methodReflector->getParameters() as $parameterReflector) { - foreach ($parameterReflector->getAttributes() as $attribute) { - if ($configurator = $this->parameterAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $parameterReflector); - } - } - } - } - } - } - - if ($this->propertyAttributeConfigurators) { - foreach ($classReflector->getProperties(\ReflectionProperty::IS_PUBLIC) as $propertyReflector) { - if ($propertyReflector->isStatic()) { - continue; - } - - foreach ($propertyReflector->getAttributes() as $attribute) { - if ($configurator = $this->propertyAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $propertyReflector); - } - } - } - } - - if (!isset($instanceof[$classReflector->getName()]) && new ChildDefinition('') != $conditionals) { - $instanceof[$classReflector->getName()] = $conditionals; - $value->setInstanceofConditionals($instanceof); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php deleted file mode 100644 index 3f070dc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Sets a service to be an alias of another one, given a format pattern. - */ -class AutoAliasServicePass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) { - foreach ($tags as $tag) { - if (!isset($tag['format'])) { - throw new InvalidArgumentException(sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId)); - } - - $aliasId = $container->getParameterBag()->resolveValue($tag['format']); - if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) { - $alias = new Alias($aliasId, $container->getDefinition($serviceId)->isPublic()); - $container->setAlias($serviceId, $alias); - } - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php deleted file mode 100644 index 1e812c7..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Attribute\AsDecorator; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Reads #[AsDecorator] attributes on definitions that are autowired - * and don't have the "container.ignore_attributes" tag. - */ -final class AutowireAsDecoratorPass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container): void - { - foreach ($container->getDefinitions() as $definition) { - if ($this->accept($definition) && $reflectionClass = $container->getReflectionClass($definition->getClass(), false)) { - $this->processClass($definition, $reflectionClass); - } - } - } - - private function accept(Definition $definition): bool - { - return !$definition->hasTag('container.ignore_attributes') && $definition->isAutowired(); - } - - private function processClass(Definition $definition, \ReflectionClass $reflectionClass): void - { - foreach ($reflectionClass->getAttributes(AsDecorator::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { - $attribute = $attribute->newInstance(); - - $definition->setDecoratedService($attribute->decorates, null, $attribute->priority, $attribute->onInvalid); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowirePass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowirePass.php deleted file mode 100644 index d622c33..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowirePass.php +++ /dev/null @@ -1,746 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Resource\ClassExistenceResource; -use Symfony\Component\DependencyInjection\Attribute\Autowire; -use Symfony\Component\DependencyInjection\Attribute\AutowireCallable; -use Symfony\Component\DependencyInjection\Attribute\AutowireDecorated; -use Symfony\Component\DependencyInjection\Attribute\MapDecorated; -use Symfony\Component\DependencyInjection\Attribute\Target; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\AutowiringFailedException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Component\VarExporter\ProxyHelper; - -/** - * Inspects existing service definitions and wires the autowired ones using the type hints of their classes. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class AutowirePass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $types; - private array $ambiguousServiceTypes; - private array $autowiringAliases; - private ?string $lastFailure = null; - private bool $throwOnAutowiringException; - private ?string $decoratedClass = null; - private ?string $decoratedId = null; - private ?array $methodCalls = null; - private object $defaultArgument; - private ?\Closure $getPreviousValue = null; - private ?int $decoratedMethodIndex = null; - private ?int $decoratedMethodArgumentIndex = null; - private ?self $typesClone = null; - - public function __construct(bool $throwOnAutowireException = true) - { - $this->throwOnAutowiringException = $throwOnAutowireException; - $this->defaultArgument = new class() { - public $value; - public $names; - public $bag; - - public function withValue(\ReflectionParameter $parameter): self - { - $clone = clone $this; - $clone->value = $this->bag->escapeValue($parameter->getDefaultValue()); - - return $clone; - } - }; - } - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->defaultArgument->bag = $container->getParameterBag(); - - try { - $this->typesClone = clone $this; - parent::process($container); - } finally { - $this->decoratedClass = null; - $this->decoratedId = null; - $this->methodCalls = null; - $this->defaultArgument->bag = null; - $this->defaultArgument->names = null; - $this->getPreviousValue = null; - $this->decoratedMethodIndex = null; - $this->decoratedMethodArgumentIndex = null; - $this->typesClone = null; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Autowire) { - return $this->processValue($this->container->getParameterBag()->resolveValue($value->value)); - } - - if ($value instanceof AutowireDecorated || $value instanceof MapDecorated) { - $definition = $this->container->getDefinition($this->currentId); - - return new Reference($definition->innerServiceId ?? $this->currentId.'.inner', $definition->decorationOnInvalid ?? ContainerInterface::NULL_ON_INVALID_REFERENCE); - } - - try { - return $this->doProcessValue($value, $isRoot); - } catch (AutowiringFailedException $e) { - if ($this->throwOnAutowiringException) { - throw $e; - } - - $this->container->getDefinition($this->currentId)->addError($e->getMessageCallback() ?? $e->getMessage()); - - return parent::processValue($value, $isRoot); - } - } - - private function doProcessValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof TypedReference) { - foreach ($value->getAttributes() as $attribute) { - if ($attribute === $v = $this->processValue($attribute)) { - continue; - } - if (!$attribute instanceof Autowire || !$v instanceof Reference) { - return $v; - } - - $invalidBehavior = ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE !== $v->getInvalidBehavior() ? $v->getInvalidBehavior() : $value->getInvalidBehavior(); - $value = $v instanceof TypedReference - ? new TypedReference($v, $v->getType(), $invalidBehavior, $v->getName() ?? $value->getName(), array_merge($v->getAttributes(), $value->getAttributes())) - : new TypedReference($v, $value->getType(), $invalidBehavior, $value->getName(), $value->getAttributes()); - break; - } - if ($ref = $this->getAutowiredReference($value, true)) { - return $ref; - } - if (ContainerBuilder::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $message = $this->createTypeNotFoundMessageCallback($value, 'it'); - - // since the error message varies by referenced id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType()) - ->addError($message); - - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior(), $value->getName()); - } - } - $value = parent::processValue($value, $isRoot); - - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) { - $this->container->log($this, sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass())); - - return $value; - } - - $this->methodCalls = $value->getMethodCalls(); - - try { - $constructor = $this->getConstructor($value, false); - } catch (RuntimeException $e) { - throw new AutowiringFailedException($this->currentId, $e->getMessage(), 0, $e); - } - - if ($constructor) { - array_unshift($this->methodCalls, [$constructor, $value->getArguments()]); - } - - $checkAttributes = !$value->hasTag('container.ignore_attributes'); - $this->methodCalls = $this->autowireCalls($reflectionClass, $isRoot, $checkAttributes); - - if ($constructor) { - [, $arguments] = array_shift($this->methodCalls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - - if ($this->methodCalls !== $value->getMethodCalls()) { - $value->setMethodCalls($this->methodCalls); - } - - return $value; - } - - private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot, bool $checkAttributes): array - { - $this->decoratedId = null; - $this->decoratedClass = null; - $this->getPreviousValue = null; - - if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && null !== ($this->decoratedId = $definition->innerServiceId) && $this->container->has($this->decoratedId)) { - $this->decoratedClass = $this->container->findDefinition($this->decoratedId)->getClass(); - } - - $patchedIndexes = []; - - foreach ($this->methodCalls as $i => $call) { - [$method, $arguments] = $call; - - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - $definition = new Definition($reflectionClass->name); - try { - $reflectionMethod = $this->getReflectionMethod($definition, $method); - } catch (RuntimeException $e) { - if ($definition->getFactory()) { - continue; - } - throw $e; - } - } - - $arguments = $this->autowireMethod($reflectionMethod, $arguments, $checkAttributes, $i); - - if ($arguments !== $call[1]) { - $this->methodCalls[$i][1] = $arguments; - $patchedIndexes[] = $i; - } - } - - // use named arguments to skip complex default values - foreach ($patchedIndexes as $i) { - $namedArguments = null; - $arguments = $this->methodCalls[$i][1]; - - foreach ($arguments as $j => $value) { - if ($namedArguments && !$value instanceof $this->defaultArgument) { - unset($arguments[$j]); - $arguments[$namedArguments[$j]] = $value; - } - if (!$value instanceof $this->defaultArgument) { - continue; - } - - if (\is_array($value->value) ? $value->value : \is_object($value->value)) { - unset($arguments[$j]); - $namedArguments = $value->names; - } - - if ($namedArguments) { - unset($arguments[$j]); - } else { - $arguments[$j] = $value->value; - } - } - - $this->methodCalls[$i][1] = $arguments; - } - - return $this->methodCalls; - } - - /** - * Autowires the constructor or a method. - * - * @throws AutowiringFailedException - */ - private function autowireMethod(\ReflectionFunctionAbstract $reflectionMethod, array $arguments, bool $checkAttributes, int $methodIndex): array - { - $class = $reflectionMethod instanceof \ReflectionMethod ? $reflectionMethod->class : $this->currentId; - $method = $reflectionMethod->name; - $parameters = $reflectionMethod->getParameters(); - if ($reflectionMethod->isVariadic()) { - array_pop($parameters); - } - $this->defaultArgument->names = new \ArrayObject(); - - foreach ($parameters as $index => $parameter) { - $this->defaultArgument->names[$index] = $parameter->name; - - if (\array_key_exists($parameter->name, $arguments)) { - $arguments[$index] = $arguments[$parameter->name]; - unset($arguments[$parameter->name]); - } - if (\array_key_exists($index, $arguments) && '' !== $arguments[$index]) { - continue; - } - - $type = ProxyHelper::exportType($parameter, true); - $target = null; - $name = Target::parseName($parameter, $target); - $target = $target ? [$target] : []; - - $getValue = function () use ($type, $parameter, $class, $method, $name, $target) { - if (!$value = $this->getAutowiredReference($ref = new TypedReference($type, $type, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $name, $target), false)) { - $failureMessage = $this->createTypeNotFoundMessageCallback($ref, sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method)); - - if ($parameter->isDefaultValueAvailable()) { - $value = $this->defaultArgument->withValue($parameter); - } elseif (!$parameter->allowsNull()) { - throw new AutowiringFailedException($this->currentId, $failureMessage); - } - } - - return $value; - }; - - if ($checkAttributes) { - foreach ($parameter->getAttributes(Autowire::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { - $attribute = $attribute->newInstance(); - $invalidBehavior = $parameter->allowsNull() ? ContainerInterface::NULL_ON_INVALID_REFERENCE : ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE; - - try { - $value = $this->processValue(new TypedReference($type ?: '?', $type ?: 'mixed', $invalidBehavior, $name, [$attribute, ...$target])); - } catch (ParameterNotFoundException $e) { - if (!$parameter->isDefaultValueAvailable()) { - throw new AutowiringFailedException($this->currentId, $e->getMessage(), 0, $e); - } - $arguments[$index] = clone $this->defaultArgument; - $arguments[$index]->value = $parameter->getDefaultValue(); - - continue 2; - } - - if ($attribute instanceof AutowireCallable) { - $value = $attribute->buildDefinition($value, $type, $parameter); - } elseif ($lazy = $attribute->lazy) { - $definition = (new Definition($type)) - ->setFactory('current') - ->setArguments([[$value ??= $getValue()]]) - ->setLazy(true); - - if (!\is_array($lazy)) { - if (str_contains($type, '|')) { - throw new AutowiringFailedException($this->currentId, sprintf('Cannot use #[Autowire] with option "lazy: true" on union types for service "%s"; set the option to the interface(s) that should be proxied instead.', $this->currentId)); - } - $lazy = str_contains($type, '&') ? explode('&', $type) : []; - } - - if ($lazy) { - if (!class_exists($type) && !interface_exists($type, false)) { - $definition->setClass('object'); - } - foreach ($lazy as $v) { - $definition->addTag('proxy', ['interface' => $v]); - } - } - - if ($definition->getClass() !== (string) $value || $definition->getTag('proxy')) { - $value .= '.'.$this->container->hash([$definition->getClass(), $definition->getTag('proxy')]); - } - $this->container->setDefinition($value = '.lazy.'.$value, $definition); - $value = new Reference($value); - } - $arguments[$index] = $value; - - continue 2; - } - - foreach ($parameter->getAttributes(AutowireDecorated::class) as $attribute) { - $arguments[$index] = $this->processValue($attribute->newInstance()); - - continue 2; - } - - foreach ($parameter->getAttributes(MapDecorated::class) as $attribute) { - $arguments[$index] = $this->processValue($attribute->newInstance()); - - continue 2; - } - } - - if (!$type) { - if (isset($arguments[$index])) { - continue; - } - - // no default value? Then fail - if (!$parameter->isDefaultValueAvailable()) { - // For core classes, isDefaultValueAvailable() can - // be false when isOptional() returns true. If the - // argument *is* optional, allow it to be missing - if ($parameter->isOptional()) { - --$index; - break; - } - $type = ProxyHelper::exportType($parameter); - $type = $type ? sprintf('is type-hinted "%s"', preg_replace('/(^|[(|&])\\\\|^\?\\\\?/', '\1', $type)) : 'has no type-hint'; - - throw new AutowiringFailedException($this->currentId, sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method, $type)); - } - - // specifically pass the default value - $arguments[$index] = $this->defaultArgument->withValue($parameter); - - continue; - } - - if ($this->decoratedClass && is_a($this->decoratedClass, $type, true)) { - if ($this->getPreviousValue) { - // The inner service is injected only if there is only 1 argument matching the type of the decorated class - // across all arguments of all autowired methods. - // If a second matching argument is found, the default behavior is restored. - - $getPreviousValue = $this->getPreviousValue; - $this->methodCalls[$this->decoratedMethodIndex][1][$this->decoratedMethodArgumentIndex] = $getPreviousValue(); - $this->decoratedClass = null; // Prevent further checks - } else { - $arguments[$index] = new TypedReference($this->decoratedId, $this->decoratedClass); - $this->getPreviousValue = $getValue; - $this->decoratedMethodIndex = $methodIndex; - $this->decoratedMethodArgumentIndex = $index; - - continue; - } - } - - $arguments[$index] = $getValue(); - } - - if ($parameters && !isset($arguments[++$index])) { - while (0 <= --$index) { - if (!$arguments[$index] instanceof $this->defaultArgument) { - break; - } - unset($arguments[$index]); - } - } - - // it's possible index 1 was set, then index 0, then 2, etc - // make sure that we re-order so they're injected as expected - ksort($arguments, \SORT_NATURAL); - - return $arguments; - } - - /** - * Returns a reference to the service matching the given type, if any. - */ - private function getAutowiredReference(TypedReference $reference, bool $filterType): ?TypedReference - { - $this->lastFailure = null; - $type = $reference->getType(); - - if ($type !== (string) $reference) { - return $reference; - } - - if ($filterType && false !== $m = strpbrk($type, '&|')) { - $types = array_diff(explode($m[0], $type), ['int', 'string', 'array', 'bool', 'float', 'iterable', 'object', 'callable', 'null']); - - sort($types); - - $type = implode($m[0], $types); - } - - $name = $target = (array_filter($reference->getAttributes(), static fn ($a) => $a instanceof Target)[0] ?? null)?->name; - - if (null !== $name ??= $reference->getName()) { - if ($this->container->has($alias = $type.' $'.$name) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - if (null !== ($alias = $this->getCombinedAlias($type, $name)) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - $parsedName = (new Target($name))->getParsedName(); - - if ($this->container->has($alias = $type.' $'.$parsedName) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - if (null !== ($alias = $this->getCombinedAlias($type, $parsedName)) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - if (($this->container->has($n = $name) && !$this->container->findDefinition($n)->isAbstract()) - || ($this->container->has($n = $parsedName) && !$this->container->findDefinition($n)->isAbstract()) - ) { - foreach ($this->container->getAliases() as $id => $alias) { - if ($n === (string) $alias && str_starts_with($id, $type.' $')) { - return new TypedReference($n, $type, $reference->getInvalidBehavior()); - } - } - } - - if (null !== $target) { - return null; - } - } - - if ($this->container->has($type) && !$this->container->findDefinition($type)->isAbstract()) { - return new TypedReference($type, $type, $reference->getInvalidBehavior()); - } - - if (null !== ($alias = $this->getCombinedAlias($type)) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - return null; - } - - /** - * Populates the list of available types. - */ - private function populateAvailableTypes(ContainerBuilder $container): void - { - $this->types = []; - $this->ambiguousServiceTypes = []; - $this->autowiringAliases = []; - - foreach ($container->getDefinitions() as $id => $definition) { - $this->populateAvailableType($container, $id, $definition); - } - - $prev = null; - foreach ($container->getAliases() as $id => $alias) { - $this->populateAutowiringAlias($id, $prev); - $prev = $id; - } - } - - /** - * Populates the list of available types for a given definition. - */ - private function populateAvailableType(ContainerBuilder $container, string $id, Definition $definition): void - { - // Never use abstract services - if ($definition->isAbstract()) { - return; - } - - if ('' === $id || '.' === $id[0] || $definition->isDeprecated() || !$reflectionClass = $container->getReflectionClass($definition->getClass(), false)) { - return; - } - - foreach ($reflectionClass->getInterfaces() as $reflectionInterface) { - $this->set($reflectionInterface->name, $id); - } - - do { - $this->set($reflectionClass->name, $id); - } while ($reflectionClass = $reflectionClass->getParentClass()); - - $this->populateAutowiringAlias($id); - } - - /** - * Associates a type and a service id if applicable. - */ - private function set(string $type, string $id): void - { - // is this already a type/class that is known to match multiple services? - if (isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type][] = $id; - - return; - } - - // check to make sure the type doesn't match multiple services - if (!isset($this->types[$type]) || $this->types[$type] === $id) { - $this->types[$type] = $id; - - return; - } - - // keep an array of all services matching this type - if (!isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type] = [$this->types[$type]]; - unset($this->types[$type]); - } - $this->ambiguousServiceTypes[$type][] = $id; - } - - private function createTypeNotFoundMessageCallback(TypedReference $reference, string $label): \Closure - { - if (!isset($this->typesClone->container)) { - $this->typesClone->container = new ContainerBuilder($this->container->getParameterBag()); - $this->typesClone->container->setAliases($this->container->getAliases()); - $this->typesClone->container->setDefinitions($this->container->getDefinitions()); - $this->typesClone->container->setResourceTracking(false); - } - $currentId = $this->currentId; - - return (fn () => $this->createTypeNotFoundMessage($reference, $label, $currentId))->bindTo($this->typesClone); - } - - private function createTypeNotFoundMessage(TypedReference $reference, string $label, string $currentId): string - { - $type = $reference->getType(); - - $i = null; - $namespace = $type; - do { - $namespace = substr($namespace, 0, $i); - - if ($this->container->hasDefinition($namespace) && $tag = $this->container->getDefinition($namespace)->getTag('container.excluded')) { - return sprintf('Cannot autowire service "%s": %s needs an instance of "%s" but this type has been excluded %s.', $currentId, $label, $type, $tag[0]['source'] ?? 'from autowiring'); - } - } while (false !== $i = strrpos($namespace, '\\')); - - if (!$r = $this->container->getReflectionClass($type, false)) { - // either $type does not exist or a parent class does not exist - try { - if (class_exists(ClassExistenceResource::class)) { - $resource = new ClassExistenceResource($type, false); - // isFresh() will explode ONLY if a parent class/trait does not exist - $resource->isFresh(0); - $parentMsg = false; - } else { - $parentMsg = "couldn't be loaded. Either it was not found or it is missing a parent class or a trait"; - } - } catch (\ReflectionException $e) { - $parentMsg = sprintf('is missing a parent class (%s)', $e->getMessage()); - } - - $message = sprintf('has type "%s" but this class %s.', $type, $parentMsg ?: 'was not found'); - } else { - $alternatives = $this->createTypeAlternatives($this->container, $reference); - - if (null !== $target = (array_filter($reference->getAttributes(), static fn ($a) => $a instanceof Target)[0] ?? null)) { - $target = null !== $target->name ? "('{$target->name}')" : ''; - $message = sprintf('has "#[Target%s]" but no such target exists.%s', $target, $alternatives); - } else { - $message = $this->container->has($type) ? 'this service is abstract' : 'no such service exists'; - $message = sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives); - } - - if ($r->isInterface() && !$alternatives) { - $message .= ' Did you create a class that implements this interface?'; - } - } - - $message = sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message); - - if (null !== $this->lastFailure) { - $message = $this->lastFailure."\n".$message; - $this->lastFailure = null; - } - - return $message; - } - - private function createTypeAlternatives(ContainerBuilder $container, TypedReference $reference): string - { - // try suggesting available aliases first - if ($message = $this->getAliasesSuggestionForType($container, $type = $reference->getType())) { - return ' '.$message; - } - if (!isset($this->ambiguousServiceTypes)) { - $this->populateAvailableTypes($container); - } - - $servicesAndAliases = $container->getServiceIds(); - $autowiringAliases = $this->autowiringAliases[$type] ?? []; - unset($autowiringAliases['']); - - if ($autowiringAliases) { - return sprintf(' Did you mean to target%s "%s" instead?', 1 < \count($autowiringAliases) ? ' one of' : '', implode('", "', $autowiringAliases)); - } - - if (!$container->has($type) && false !== $key = array_search(strtolower($type), array_map('strtolower', $servicesAndAliases))) { - return sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]); - } elseif (isset($this->ambiguousServiceTypes[$type])) { - $message = sprintf('one of these existing services: "%s"', implode('", "', $this->ambiguousServiceTypes[$type])); - } elseif (isset($this->types[$type])) { - $message = sprintf('the existing "%s" service', $this->types[$type]); - } else { - return ''; - } - - return sprintf(' You should maybe alias this %s to %s.', class_exists($type, false) ? 'class' : 'interface', $message); - } - - private function getAliasesSuggestionForType(ContainerBuilder $container, string $type): ?string - { - $aliases = []; - foreach (class_parents($type) + class_implements($type) as $parent) { - if ($container->has($parent) && !$container->findDefinition($parent)->isAbstract()) { - $aliases[] = $parent; - } - } - - if (1 < $len = \count($aliases)) { - $message = 'Try changing the type-hint to one of its parents: '; - for ($i = 0, --$len; $i < $len; ++$i) { - $message .= sprintf('%s "%s", ', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]); - } - $message .= sprintf('or %s "%s".', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]); - - return $message; - } - - if ($aliases) { - return sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]); - } - - return null; - } - - private function populateAutowiringAlias(string $id, ?string $target = null): void - { - if (!preg_match('/(?(DEFINE)(?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+))^((?&V)(?:\\\\(?&V))*+)(?: \$((?&V)))?$/', $id, $m)) { - return; - } - - $type = $m[2]; - $name = $m[3] ?? ''; - - if (class_exists($type, false) || interface_exists($type, false)) { - if (null !== $target && str_starts_with($target, '.'.$type.' $') - && (new Target($target = substr($target, \strlen($type) + 3)))->getParsedName() === $name - ) { - $name = $target; - } - - $this->autowiringAliases[$type][$name] = $name; - } - } - - private function getCombinedAlias(string $type, ?string $name = null): ?string - { - if (str_contains($type, '&')) { - $types = explode('&', $type); - } elseif (str_contains($type, '|')) { - $types = explode('|', $type); - } else { - return null; - } - - $alias = null; - $suffix = $name ? ' $'.$name : ''; - - foreach ($types as $type) { - if (!$this->container->hasAlias($type.$suffix)) { - return null; - } - - if (null === $alias) { - $alias = (string) $this->container->getAlias($type.$suffix); - } elseif ((string) $this->container->getAlias($type.$suffix) !== $alias) { - return null; - } - } - - return $alias; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php deleted file mode 100644 index dcc04ea..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Contracts\Service\Attribute\Required; - -/** - * Looks for definitions with autowiring enabled and registers their corresponding "#[Required]" methods as setters. - * - * @author Nicolas Grekas - */ -class AutowireRequiredMethodsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - $value = parent::processValue($value, $isRoot); - - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) { - return $value; - } - - $alreadyCalledMethods = []; - $withers = []; - - foreach ($value->getMethodCalls() as [$method]) { - $alreadyCalledMethods[strtolower($method)] = true; - } - - foreach ($reflectionClass->getMethods() as $reflectionMethod) { - $r = $reflectionMethod; - - if ($r->isConstructor() || isset($alreadyCalledMethods[strtolower($r->name)])) { - continue; - } - - while (true) { - if ($r->getAttributes(Required::class)) { - if ($this->isWither($r, $r->getDocComment() ?: '')) { - $withers[] = [$r->name, [], true]; - } else { - $value->addMethodCall($r->name, []); - } - break; - } - if (false !== $doc = $r->getDocComment()) { - if (false !== stripos($doc, '@required') && preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@required(?:\s|\*/$)#i', $doc)) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Relying on the "@required" annotation on method "%s::%s()" is deprecated, use the "Symfony\Contracts\Service\Attribute\Required" attribute instead.', $reflectionMethod->class, $reflectionMethod->name); - - if ($this->isWither($reflectionMethod, $doc)) { - $withers[] = [$reflectionMethod->name, [], true]; - } else { - $value->addMethodCall($reflectionMethod->name, []); - } - break; - } - if (false === stripos($doc, '@inheritdoc') || !preg_match('#(?:^/\*\*|\n\s*+\*)\s*+(?:\{@inheritdoc\}|@inheritdoc)(?:\s|\*/$)#i', $doc)) { - break; - } - } - try { - $r = $r->getPrototype(); - } catch (\ReflectionException) { - break; // method has no prototype - } - } - } - - if ($withers) { - // Prepend withers to prevent creating circular loops - $setters = $value->getMethodCalls(); - $value->setMethodCalls($withers); - foreach ($setters as $call) { - $value->addMethodCall($call[0], $call[1], $call[2] ?? false); - } - } - - return $value; - } - - private function isWither(\ReflectionMethod $reflectionMethod, string $doc): bool - { - $match = preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@return\s++(static|\$this)[\s\*]#i', $doc, $matches); - if ($match && 'static' === $matches[1]) { - return true; - } - - if ($match && '$this' === $matches[1]) { - return false; - } - - $reflectionType = $reflectionMethod->hasReturnType() ? $reflectionMethod->getReturnType() : null; - - return $reflectionType instanceof \ReflectionNamedType && 'static' === $reflectionType->getName(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php deleted file mode 100644 index 5682110..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Contracts\Service\Attribute\Required; - -/** - * Looks for definitions with autowiring enabled and registers their corresponding "#[Required]" properties. - * - * @author Sebastien Morel (Plopix) - * @author Nicolas Grekas - */ -class AutowireRequiredPropertiesPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - $value = parent::processValue($value, $isRoot); - - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) { - return $value; - } - - $properties = $value->getProperties(); - foreach ($reflectionClass->getProperties() as $reflectionProperty) { - if (!($type = $reflectionProperty->getType()) instanceof \ReflectionNamedType) { - continue; - } - $doc = false; - if (!$reflectionProperty->getAttributes(Required::class) - && ((false === $doc = $reflectionProperty->getDocComment()) || false === stripos($doc, '@required') || !preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@required(?:\s|\*/$)#i', $doc)) - ) { - continue; - } - if ($doc) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Using the "@required" annotation on property "%s::$%s" is deprecated, use the "Symfony\Contracts\Service\Attribute\Required" attribute instead.', $reflectionProperty->class, $reflectionProperty->name); - } - if (\array_key_exists($name = $reflectionProperty->getName(), $properties)) { - continue; - } - - $type = $type->getName(); - $value->setProperty($name, new TypedReference($type, $type, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name)); - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php deleted file mode 100644 index 8cbd722..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Checks if arguments of methods are properly configured. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class CheckArgumentsValidityPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private bool $throwExceptions; - - public function __construct(bool $throwExceptions = true) - { - $this->throwExceptions = $throwExceptions; - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $i = 0; - $hasNamedArgs = false; - foreach ($value->getArguments() as $k => $v) { - if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $k)) { - $hasNamedArgs = true; - continue; - } - - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - - $msg = sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - - if ($hasNamedArgs) { - $msg = sprintf('Invalid constructor argument for service "%s": cannot use positional argument after named argument. Check your service definition.', $this->currentId); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - } - - foreach ($value->getMethodCalls() as $methodCall) { - $i = 0; - $hasNamedArgs = false; - foreach ($methodCall[1] as $k => $v) { - if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $k)) { - $hasNamedArgs = true; - continue; - } - - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - - $msg = sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - - if ($hasNamedArgs) { - $msg = sprintf('Invalid argument for method call "%s" of service "%s": cannot use positional argument after named argument. Check your service definition.', $methodCall[0], $this->currentId); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - } - } - - return null; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php deleted file mode 100644 index a4a8ce3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; - -/** - * Checks your services for circular references. - * - * References from method calls are ignored since we might be able to resolve - * these references depending on the order in which services are called. - * - * Circular reference from method calls will only be detected at run-time. - * - * @author Johannes M. Schmitt - */ -class CheckCircularReferencesPass implements CompilerPassInterface -{ - private array $currentPath; - private array $checkedNodes; - private array $checkedLazyNodes; - - /** - * Checks the ContainerBuilder object for circular references. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - $graph = $container->getCompiler()->getServiceReferenceGraph(); - - $this->checkedNodes = []; - foreach ($graph->getNodes() as $id => $node) { - $this->currentPath = [$id]; - - $this->checkOutEdges($node->getOutEdges()); - } - } - - /** - * Checks for circular references. - * - * @param ServiceReferenceGraphEdge[] $edges An array of Edges - * - * @throws ServiceCircularReferenceException when a circular reference is found - */ - private function checkOutEdges(array $edges): void - { - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - - if (!empty($this->checkedNodes[$id])) { - continue; - } - - $isLeaf = !!$node->getValue(); - $isConcrete = !$edge->isLazy() && !$edge->isWeak(); - - // Skip already checked lazy services if they are still lazy. Will not gain any new information. - if (!empty($this->checkedLazyNodes[$id]) && (!$isLeaf || !$isConcrete)) { - continue; - } - - // Process concrete references, otherwise defer check circular references for lazy edges. - if (!$isLeaf || $isConcrete) { - $searchKey = array_search($id, $this->currentPath); - $this->currentPath[] = $id; - - if (false !== $searchKey) { - throw new ServiceCircularReferenceException($id, \array_slice($this->currentPath, $searchKey)); - } - - $this->checkOutEdges($node->getOutEdges()); - - $this->checkedNodes[$id] = true; - unset($this->checkedLazyNodes[$id]); - } else { - $this->checkedLazyNodes[$id] = true; - } - - array_pop($this->currentPath); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php deleted file mode 100644 index c62345f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Loader\FileLoader; - -/** - * This pass validates each definition individually only taking the information - * into account which is contained in the definition itself. - * - * Later passes can rely on the following, and specifically do not need to - * perform these checks themselves: - * - * - non synthetic, non abstract services always have a class set - * - synthetic services are always public - * - * @author Johannes M. Schmitt - */ -class CheckDefinitionValidityPass implements CompilerPassInterface -{ - /** - * Processes the ContainerBuilder to validate the Definition. - * - * @return void - * - * @throws RuntimeException When the Definition is invalid - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - // synthetic service is public - if ($definition->isSynthetic() && !$definition->isPublic()) { - throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id)); - } - - // non-synthetic, non-abstract service has class - if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && !$definition->hasTag('container.service_locator') && (!$definition->getFactory() || !preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id))) { - if ($definition->getFactory()) { - throw new RuntimeException(sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id)); - } - if (class_exists($id) || interface_exists($id, false)) { - if (str_starts_with($id, '\\') && 1 < substr_count($id, '\\')) { - throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, substr($id, 1))); - } - - throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id)); - } - - throw new RuntimeException(sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id)); - } - - // tag attribute values must be scalars - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - $this->validateAttributes($id, $name, $attributes); - } - } - - if ($definition->isPublic() && !$definition->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'A service name ("%s") cannot contain dynamic values.'); - } - } - } - - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic() && !$alias->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'An alias name ("%s") cannot contain dynamic values.'); - } - } - } - } - - private function validateAttributes(string $id, string $tag, array $attributes, array $path = []): void - { - foreach ($attributes as $name => $value) { - if (\is_array($value)) { - $this->validateAttributes($id, $tag, $value, [...$path, $name]); - } elseif (!\is_scalar($value) && null !== $value) { - $name = implode('.', [...$path, $name]); - throw new RuntimeException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $tag, $name)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php deleted file mode 100644 index bbf3189..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Checks that all references are pointing to a valid service. - * - * @author Johannes M. Schmitt - */ -class CheckExceptionOnInvalidReferenceBehaviorPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $serviceLocatorContextIds = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->serviceLocatorContextIds = []; - foreach ($container->findTaggedServiceIds('container.service_locator_context') as $id => $tags) { - $this->serviceLocatorContextIds[$id] = $tags[0]['id']; - $container->getDefinition($id)->clearTag('container.service_locator_context'); - } - - try { - parent::process($container); - } finally { - $this->serviceLocatorContextIds = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $value->getInvalidBehavior() || $this->container->has($id = (string) $value)) { - return $value; - } - - $currentId = $this->currentId; - $graph = $this->container->getCompiler()->getServiceReferenceGraph(); - - if (isset($this->serviceLocatorContextIds[$currentId])) { - $currentId = $this->serviceLocatorContextIds[$currentId]; - $locator = $this->container->getDefinition($this->currentId)->getFactory()[0]; - $this->throwServiceNotFoundException($value, $currentId, $locator->getArgument(0)); - } - - if ('.' === $currentId[0] && $graph->hasNode($currentId)) { - foreach ($graph->getNode($currentId)->getInEdges() as $edge) { - if (!$edge->getValue() instanceof Reference || ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $edge->getValue()->getInvalidBehavior()) { - continue; - } - $sourceId = $edge->getSourceNode()->getId(); - - if ('.' !== $sourceId[0]) { - $currentId = $sourceId; - break; - } - - if (isset($this->serviceLocatorContextIds[$sourceId])) { - $currentId = $this->serviceLocatorContextIds[$sourceId]; - $locator = $this->container->getDefinition($this->currentId); - $this->throwServiceNotFoundException($value, $currentId, $locator->getArgument(0)); - } - } - } - - $this->throwServiceNotFoundException($value, $currentId, $value); - } - - private function throwServiceNotFoundException(Reference $ref, string $sourceId, $value): void - { - $id = (string) $ref; - $alternatives = []; - foreach ($this->container->getServiceIds() as $knownId) { - if ('' === $knownId || '.' === $knownId[0] || $knownId === $this->currentId) { - continue; - } - - $lev = levenshtein($id, $knownId); - if ($lev <= \strlen($id) / 3 || str_contains($knownId, $id)) { - $alternatives[] = $knownId; - } - } - - $pass = new class() extends AbstractRecursivePass { - public Reference $ref; - public string $sourceId; - public array $alternatives; - - public function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($this->ref !== $value) { - return parent::processValue($value, $isRoot); - } - $sourceId = $this->sourceId; - if (null !== $this->currentId && $this->currentId !== (string) $value) { - $sourceId = $this->currentId.'" in the container provided to "'.$sourceId; - } - - throw new ServiceNotFoundException((string) $value, $sourceId, null, $this->alternatives); - } - }; - $pass->ref = $ref; - $pass->sourceId = $sourceId; - $pass->alternatives = $alternatives; - - $pass->processValue($value, true); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php deleted file mode 100644 index 5c54a65..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Checks the validity of references. - * - * The following checks are performed by this pass: - * - target definitions are not abstract - * - * @author Johannes M. Schmitt - */ -class CheckReferenceValidityPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($isRoot && $value instanceof Definition && ($value->isSynthetic() || $value->isAbstract())) { - return $value; - } - if ($value instanceof Reference && $this->container->hasDefinition((string) $value)) { - $targetDefinition = $this->container->getDefinition((string) $value); - - if ($targetDefinition->isAbstract()) { - throw new RuntimeException(sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value)); - } - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php deleted file mode 100644 index 074d899..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php +++ /dev/null @@ -1,334 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\InvalidParameterTypeException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * Checks whether injected parameters are compatible with type declarations. - * - * This pass should be run after all optimization passes. - * - * It can be added either: - * * before removing passes to check all services even if they are not currently used, - * * after removing passes to check only services are used in the app. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -final class CheckTypeDeclarationsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private const SCALAR_TYPES = [ - 'int' => true, - 'float' => true, - 'bool' => true, - 'string' => true, - ]; - - private const BUILTIN_TYPES = [ - 'array' => true, - 'bool' => true, - 'callable' => true, - 'float' => true, - 'int' => true, - 'iterable' => true, - 'object' => true, - 'string' => true, - ]; - - private bool $autoload; - private array $skippedIds; - - private ExpressionLanguage $expressionLanguage; - - /** - * @param bool $autoload Whether services who's class in not loaded should be checked or not. - * Defaults to false to save loading code during compilation. - * @param array $skippedIds An array indexed by the service ids to skip - */ - public function __construct(bool $autoload = false, array $skippedIds = []) - { - $this->autoload = $autoload; - $this->skippedIds = $skippedIds; - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (isset($this->skippedIds[$this->currentId])) { - return $value; - } - - if (!$value instanceof Definition || $value->hasErrors() || $value->isDeprecated()) { - return parent::processValue($value, $isRoot); - } - - if (!$this->autoload) { - if (!$class = $value->getClass()) { - return parent::processValue($value, $isRoot); - } - if (!class_exists($class, false) && !interface_exists($class, false)) { - return parent::processValue($value, $isRoot); - } - } - - if (ServiceLocator::class === $value->getClass()) { - return parent::processValue($value, $isRoot); - } - - if ($constructor = $this->getConstructor($value, false)) { - $this->checkTypeDeclarations($value, $constructor, $value->getArguments()); - } - - foreach ($value->getMethodCalls() as $methodCall) { - try { - $reflectionMethod = $this->getReflectionMethod($value, $methodCall[0]); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - - throw $e; - } - - $this->checkTypeDeclarations($value, $reflectionMethod, $methodCall[1]); - } - - return parent::processValue($value, $isRoot); - } - - /** - * @throws InvalidArgumentException When not enough parameters are defined for the method - */ - private function checkTypeDeclarations(Definition $checkedDefinition, \ReflectionFunctionAbstract $reflectionFunction, array $values): void - { - $numberOfRequiredParameters = $reflectionFunction->getNumberOfRequiredParameters(); - - if (\count($values) < $numberOfRequiredParameters) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values))); - } - - $reflectionParameters = $reflectionFunction->getParameters(); - $checksCount = min($reflectionFunction->getNumberOfParameters(), \count($values)); - - $envPlaceholderUniquePrefix = $this->container->getParameterBag() instanceof EnvPlaceholderParameterBag ? $this->container->getParameterBag()->getEnvPlaceholderUniquePrefix() : null; - - for ($i = 0; $i < $checksCount; ++$i) { - $p = $reflectionParameters[$i]; - if (!$p->hasType() || $p->isVariadic()) { - continue; - } - if (\array_key_exists($p->name, $values)) { - $i = $p->name; - } elseif (!\array_key_exists($i, $values)) { - continue; - } - - $this->checkType($checkedDefinition, $values[$i], $p, $envPlaceholderUniquePrefix); - } - - if ($reflectionFunction->isVariadic() && ($lastParameter = end($reflectionParameters))->hasType()) { - $variadicParameters = \array_slice($values, $lastParameter->getPosition()); - - foreach ($variadicParameters as $variadicParameter) { - $this->checkType($checkedDefinition, $variadicParameter, $lastParameter, $envPlaceholderUniquePrefix); - } - } - } - - /** - * @throws InvalidParameterTypeException When a parameter is not compatible with the declared type - */ - private function checkType(Definition $checkedDefinition, mixed $value, \ReflectionParameter $parameter, ?string $envPlaceholderUniquePrefix, ?\ReflectionType $reflectionType = null): void - { - $reflectionType ??= $parameter->getType(); - - if ($reflectionType instanceof \ReflectionUnionType) { - foreach ($reflectionType->getTypes() as $t) { - try { - $this->checkType($checkedDefinition, $value, $parameter, $envPlaceholderUniquePrefix, $t); - - return; - } catch (InvalidParameterTypeException $e) { - } - } - - throw new InvalidParameterTypeException($this->currentId, $e->getCode(), $parameter); - } - if ($reflectionType instanceof \ReflectionIntersectionType) { - foreach ($reflectionType->getTypes() as $t) { - $this->checkType($checkedDefinition, $value, $parameter, $envPlaceholderUniquePrefix, $t); - } - - return; - } - if (!$reflectionType instanceof \ReflectionNamedType) { - return; - } - - $type = $reflectionType->getName(); - - if ($value instanceof Reference) { - if (!$this->container->has($value = (string) $value)) { - return; - } - - if ('service_container' === $value && is_a($type, Container::class, true)) { - return; - } - - $value = $this->container->findDefinition($value); - } - - if ('self' === $type) { - $type = $parameter->getDeclaringClass()->getName(); - } - - if ('static' === $type) { - $type = $checkedDefinition->getClass(); - } - - $class = null; - - if ($value instanceof Definition) { - if ($value->hasErrors() || $value->getFactory()) { - return; - } - - $class = $value->getClass(); - - if ($class && isset(self::BUILTIN_TYPES[strtolower($class)])) { - $class = strtolower($class); - } elseif (!$class || (!$this->autoload && !class_exists($class, false) && !interface_exists($class, false))) { - return; - } - } elseif ($value instanceof Parameter) { - $value = $this->container->getParameter($value); - } elseif ($value instanceof Expression) { - try { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this->container]); - } catch (\Exception) { - // If a service from the expression cannot be fetched from the container, we skip the validation. - return; - } - } elseif (\is_string($value)) { - if ('%' === ($value[0] ?? '') && preg_match('/^%([^%]+)%$/', $value, $match)) { - $value = $this->container->getParameter(substr($value, 1, -1)); - } - - if ($envPlaceholderUniquePrefix && \is_string($value) && str_contains($value, 'env_')) { - // If the value is an env placeholder that is either mixed with a string or with another env placeholder, then its resolved value will always be a string, so we don't need to resolve it. - // We don't need to change the value because it is already a string. - if ('' === preg_replace('/'.$envPlaceholderUniquePrefix.'_\w+_[a-f0-9]{32}/U', '', $value, -1, $c) && 1 === $c) { - try { - $value = $this->container->resolveEnvPlaceholders($value, true); - } catch (\Exception) { - // If an env placeholder cannot be resolved, we skip the validation. - return; - } - } - } - } - - if (null === $value && $parameter->allowsNull()) { - return; - } - - if (null === $class) { - if ($value instanceof IteratorArgument) { - $class = RewindableGenerator::class; - } elseif ($value instanceof ServiceClosureArgument) { - $class = \Closure::class; - } elseif ($value instanceof ServiceLocatorArgument) { - $class = ServiceLocator::class; - } elseif (\is_object($value)) { - $class = $value::class; - } else { - $class = \gettype($value); - $class = ['integer' => 'int', 'double' => 'float', 'boolean' => 'bool'][$class] ?? $class; - } - } - - if (isset(self::SCALAR_TYPES[$type]) && isset(self::SCALAR_TYPES[$class])) { - return; - } - - if ('string' === $type && method_exists($class, '__toString')) { - return; - } - - if ('callable' === $type && (\Closure::class === $class || method_exists($class, '__invoke'))) { - return; - } - - if ('callable' === $type && \is_array($value) && isset($value[0]) && ($value[0] instanceof Reference || $value[0] instanceof Definition || \is_string($value[0]))) { - return; - } - - if ('iterable' === $type && (\is_array($value) || 'array' === $class || is_subclass_of($class, \Traversable::class))) { - return; - } - - if ($type === $class) { - return; - } - - if ('object' === $type && !isset(self::BUILTIN_TYPES[$class])) { - return; - } - - if ('mixed' === $type) { - return; - } - - if (is_a($class, $type, true)) { - return; - } - - if ('false' === $type) { - if (false === $value) { - return; - } - } elseif ('true' === $type) { - if (true === $value) { - return; - } - } elseif ($reflectionType->isBuiltin()) { - $checkFunction = sprintf('is_%s', $type); - if ($checkFunction($value)) { - return; - } - } - - throw new InvalidParameterTypeException($this->currentId, \is_object($value) ? $class : get_debug_type($value), $parameter); - } - - private function getExpressionLanguage(): ExpressionLanguage - { - return $this->expressionLanguage ??= new ExpressionLanguage(null, $this->container->getExpressionLanguageProviders()); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/Compiler.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/Compiler.php deleted file mode 100644 index c8cbccb..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/Compiler.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; - -/** - * This class is used to remove circular dependencies between individual passes. - * - * @author Johannes M. Schmitt - */ -class Compiler -{ - private PassConfig $passConfig; - private array $log = []; - private ServiceReferenceGraph $serviceReferenceGraph; - - public function __construct() - { - $this->passConfig = new PassConfig(); - $this->serviceReferenceGraph = new ServiceReferenceGraph(); - } - - public function getPassConfig(): PassConfig - { - return $this->passConfig; - } - - public function getServiceReferenceGraph(): ServiceReferenceGraph - { - return $this->serviceReferenceGraph; - } - - /** - * @return void - */ - public function addPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $this->passConfig->addPass($pass, $type, $priority); - } - - /** - * @final - * - * @return void - */ - public function log(CompilerPassInterface $pass, string $message) - { - if (str_contains($message, "\n")) { - $message = str_replace("\n", "\n".$pass::class.': ', trim($message)); - } - - $this->log[] = $pass::class.': '.$message; - } - - public function getLog(): array - { - return $this->log; - } - - /** - * Run the Compiler and process all Passes. - * - * @return void - */ - public function compile(ContainerBuilder $container) - { - try { - foreach ($this->passConfig->getPasses() as $pass) { - $pass->process($container); - } - } catch (\Exception $e) { - $usedEnvs = []; - $prev = $e; - - do { - $msg = $prev->getMessage(); - - if ($msg !== $resolvedMsg = $container->resolveEnvPlaceholders($msg, null, $usedEnvs)) { - $r = new \ReflectionProperty($prev, 'message'); - $r->setValue($prev, $resolvedMsg); - } - } while ($prev = $prev->getPrevious()); - - if ($usedEnvs) { - $e = new EnvParameterException($usedEnvs, $e); - } - - throw $e; - } finally { - $this->getServiceReferenceGraph()->clear(); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php deleted file mode 100644 index 2ad4a04..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Interface that must be implemented by compilation passes. - * - * @author Johannes M. Schmitt - */ -interface CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - * - * @return void - */ - public function process(ContainerBuilder $container); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php deleted file mode 100644 index 92e1e2d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php +++ /dev/null @@ -1,133 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Overwrites a service but keeps the overridden one. - * - * @author Christophe Coevoet - * @author Fabien Potencier - * @author Diego Saint Esteben - */ -class DecoratorServicePass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $definitions = new \SplPriorityQueue(); - $order = \PHP_INT_MAX; - - foreach ($container->getDefinitions() as $id => $definition) { - if (!$decorated = $definition->getDecoratedService()) { - continue; - } - $definitions->insert([$id, $definition], [$decorated[2], --$order]); - } - $decoratingDefinitions = []; - $decoratedIds = []; - - $tagsToKeep = $container->hasParameter('container.behavior_describing_tags') - ? $container->getParameter('container.behavior_describing_tags') - : ['proxy', 'container.do_not_inline', 'container.service_locator', 'container.service_subscriber', 'container.service_subscriber.locator']; - - foreach ($definitions as [$id, $definition]) { - $decoratedService = $definition->getDecoratedService(); - [$inner, $renamedId] = $decoratedService; - $invalidBehavior = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - - $definition->setDecoratedService(null); - - if (!$renamedId) { - $renamedId = $id.'.inner'; - } - - $decoratedIds[$inner] ??= $renamedId; - $this->currentId = $renamedId; - $this->processValue($definition); - - $definition->innerServiceId = $renamedId; - $definition->decorationOnInvalid = $invalidBehavior; - - // we create a new alias/service for the service we are replacing - // to be able to reference it in the new one - if ($container->hasAlias($inner)) { - $alias = $container->getAlias($inner); - $public = $alias->isPublic(); - $container->setAlias($renamedId, new Alias((string) $alias, false)); - $decoratedDefinition = $container->findDefinition($alias); - } elseif ($container->hasDefinition($inner)) { - $decoratedDefinition = $container->getDefinition($inner); - $public = $decoratedDefinition->isPublic(); - $decoratedDefinition->setPublic(false); - $container->setDefinition($renamedId, $decoratedDefinition); - $decoratingDefinitions[$inner] = $decoratedDefinition; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - $container->removeDefinition($id); - continue; - } elseif (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $public = $definition->isPublic(); - $decoratedDefinition = null; - } else { - throw new ServiceNotFoundException($inner, $id); - } - - if ($decoratedDefinition?->isSynthetic()) { - throw new InvalidArgumentException(sprintf('A synthetic service cannot be decorated: service "%s" cannot decorate "%s".', $id, $inner)); - } - - if (isset($decoratingDefinitions[$inner])) { - $decoratingDefinition = $decoratingDefinitions[$inner]; - - $decoratingTags = $decoratingDefinition->getTags(); - $resetTags = []; - - // Behavior-describing tags must not be transferred out to decorators - foreach ($tagsToKeep as $containerTag) { - if (isset($decoratingTags[$containerTag])) { - $resetTags[$containerTag] = $decoratingTags[$containerTag]; - unset($decoratingTags[$containerTag]); - } - } - - $definition->setTags(array_merge($decoratingTags, $definition->getTags())); - $decoratingDefinition->setTags($resetTags); - $decoratingDefinitions[$inner] = $definition; - } - - $container->setAlias($inner, $id)->setPublic($public); - } - - foreach ($decoratingDefinitions as $inner => $definition) { - $definition->addTag('container.decorator', ['id' => $inner, 'inner' => $decoratedIds[$inner]]); - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Reference && '.inner' === (string) $value) { - return new Reference($this->currentId, $value->getInvalidBehavior()); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php deleted file mode 100644 index 204401c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Throws an exception for any Definitions that have errors and still exist. - * - * @author Ryan Weaver - */ -class DefinitionErrorExceptionPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $erroredDefinitions = []; - private array $sourceReferences = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - try { - parent::process($container); - - $visitedIds = []; - - foreach ($this->erroredDefinitions as $id => $definition) { - if ($this->isErrorForRuntime($id, $visitedIds)) { - continue; - } - - // only show the first error so the user can focus on it - $errors = $definition->getErrors(); - - throw new RuntimeException(reset($errors)); - } - } finally { - $this->erroredDefinitions = []; - $this->sourceReferences = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof ArgumentInterface) { - parent::processValue($value->getValues()); - - return $value; - } - - if ($value instanceof Reference && $this->currentId !== $targetId = (string) $value) { - if ( - ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior() - || ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior() - ) { - $this->sourceReferences[$targetId][$this->currentId] ??= true; - } else { - $this->sourceReferences[$targetId][$this->currentId] = false; - } - - return $value; - } - - if (!$value instanceof Definition || !$value->hasErrors() || $value->hasTag('container.error')) { - return parent::processValue($value, $isRoot); - } - - $this->erroredDefinitions[$this->currentId] = $value; - - return parent::processValue($value); - } - - private function isErrorForRuntime(string $id, array &$visitedIds): bool - { - if (!isset($this->sourceReferences[$id])) { - return false; - } - - if (isset($visitedIds[$id])) { - return $visitedIds[$id]; - } - - $visitedIds[$id] = true; - - foreach ($this->sourceReferences[$id] as $sourceId => $isRuntime) { - if ($visitedIds[$sourceId] ?? $visitedIds[$sourceId] = $this->isErrorForRuntime($sourceId, $visitedIds)) { - continue; - } - - if (!$isRuntime) { - return false; - } - } - - return true; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php deleted file mode 100644 index 953b7f9..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * A pass to automatically process extensions if they implement - * CompilerPassInterface. - * - * @author Wouter J - */ -class ExtensionCompilerPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getExtensions() as $extension) { - if (!$extension instanceof CompilerPassInterface) { - continue; - } - - $extension->process($container); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php deleted file mode 100644 index c87ee3e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php +++ /dev/null @@ -1,230 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Inline service definitions where this is possible. - * - * @author Johannes M. Schmitt - */ -class InlineServiceDefinitionsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private ?AnalyzeServiceReferencesPass $analyzingPass; - private array $cloningIds = []; - private array $connectedIds = []; - private array $notInlinedIds = []; - private array $inlinedIds = []; - private array $notInlinableIds = []; - private ?ServiceReferenceGraph $graph = null; - - public function __construct(?AnalyzeServiceReferencesPass $analyzingPass = null) - { - $this->analyzingPass = $analyzingPass; - } - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - if ($this->analyzingPass) { - $analyzedContainer = new ContainerBuilder(); - $analyzedContainer->setAliases($container->getAliases()); - $analyzedContainer->setDefinitions($container->getDefinitions()); - foreach ($container->getExpressionLanguageProviders() as $provider) { - $analyzedContainer->addExpressionLanguageProvider($provider); - } - } else { - $analyzedContainer = $container; - } - try { - $notInlinableIds = []; - $remainingInlinedIds = []; - $this->connectedIds = $this->notInlinedIds = $container->getDefinitions(); - do { - if ($this->analyzingPass) { - $analyzedContainer->setDefinitions(array_intersect_key($analyzedContainer->getDefinitions(), $this->connectedIds)); - $this->analyzingPass->process($analyzedContainer); - } - $this->graph = $analyzedContainer->getCompiler()->getServiceReferenceGraph(); - $notInlinedIds = $this->notInlinedIds; - $notInlinableIds += $this->notInlinableIds; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = $this->notInlinableIds = []; - - foreach ($analyzedContainer->getDefinitions() as $id => $definition) { - if (!$this->graph->hasNode($id)) { - continue; - } - if ($definition->isPublic()) { - $this->connectedIds[$id] = true; - } - foreach ($this->graph->getNode($id)->getOutEdges() as $edge) { - if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) { - $this->currentId = $id; - $this->processValue($definition, true); - break; - } - } - } - - foreach ($this->inlinedIds as $id => $isPublicOrNotShared) { - if ($isPublicOrNotShared) { - $remainingInlinedIds[$id] = $id; - } else { - $container->removeDefinition($id); - $analyzedContainer->removeDefinition($id); - } - } - } while ($this->inlinedIds && $this->analyzingPass); - - foreach ($remainingInlinedIds as $id) { - if (isset($notInlinableIds[$id])) { - continue; - } - - $definition = $container->getDefinition($id); - - if (!$definition->isShared() && !$definition->isPublic()) { - $container->removeDefinition($id); - } - } - } finally { - $this->container = null; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = []; - $this->notInlinableIds = []; - $this->graph = null; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof ArgumentInterface) { - // References found in ArgumentInterface::getValues() are not inlineable - return $value; - } - - if ($value instanceof Definition && $this->cloningIds) { - if ($value->isShared()) { - return $value; - } - $value = clone $value; - } - - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } elseif (!$this->container->hasDefinition($id = (string) $value)) { - return $value; - } - - $definition = $this->container->getDefinition($id); - - if (isset($this->notInlinableIds[$id]) || !$this->isInlineableDefinition($id, $definition)) { - if ($this->currentId !== $id) { - $this->notInlinableIds[$id] = true; - } - - return $value; - } - - $this->container->log($this, sprintf('Inlined service "%s" to "%s".', $id, $this->currentId)); - $this->inlinedIds[$id] = $definition->isPublic() || !$definition->isShared(); - $this->notInlinedIds[$this->currentId] = true; - - if ($definition->isShared()) { - return $definition; - } - - if (isset($this->cloningIds[$id])) { - $ids = array_keys($this->cloningIds); - $ids[] = $id; - - throw new ServiceCircularReferenceException($id, \array_slice($ids, array_search($id, $ids))); - } - - $this->cloningIds[$id] = true; - try { - return $this->processValue($definition); - } finally { - unset($this->cloningIds[$id]); - } - } - - /** - * Checks if the definition is inlineable. - */ - private function isInlineableDefinition(string $id, Definition $definition): bool - { - if ($definition->hasErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic() || $definition->hasTag('container.do_not_inline')) { - return false; - } - - if (!$definition->isShared()) { - if (!$this->graph->hasNode($id)) { - return true; - } - - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = true; - if ($edge->isWeak() || $edge->isLazy()) { - return !$this->connectedIds[$id] = true; - } - } - - return true; - } - - if ($definition->isPublic() - || $this->currentId === $id - || !$this->graph->hasNode($id) - ) { - return false; - } - - $this->connectedIds[$id] = true; - - $srcIds = []; - $srcCount = 0; - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = true; - if ($edge->isWeak() || $edge->isLazy()) { - return false; - } - $srcIds[$srcId] = true; - ++$srcCount; - } - - if (1 !== \count($srcIds)) { - $this->notInlinedIds[$id] = true; - - return false; - } - - if ($srcCount > 1 && \is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) { - return false; - } - - $srcDefinition = $this->container->getDefinition($srcId); - - return $srcDefinition->isShared() && !$srcDefinition->isLazy(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php deleted file mode 100644 index b7a4444..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php +++ /dev/null @@ -1,207 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\Extension; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; - -/** - * Merges extension configs into the container builder. - * - * @author Fabien Potencier - */ -class MergeExtensionConfigurationPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $parameters = $container->getParameterBag()->all(); - $definitions = $container->getDefinitions(); - $aliases = $container->getAliases(); - $exprLangProviders = $container->getExpressionLanguageProviders(); - $configAvailable = class_exists(BaseNode::class); - - foreach ($container->getExtensions() as $extension) { - if ($extension instanceof PrependExtensionInterface) { - $extension->prepend($container); - } - } - - foreach ($container->getExtensions() as $name => $extension) { - if (!$config = $container->getExtensionConfig($name)) { - // this extension was not called - continue; - } - $resolvingBag = $container->getParameterBag(); - if ($resolvingBag instanceof EnvPlaceholderParameterBag && $extension instanceof Extension) { - // create a dedicated bag so that we can track env vars per-extension - $resolvingBag = new MergeExtensionConfigurationParameterBag($resolvingBag); - if ($configAvailable) { - BaseNode::setPlaceholderUniquePrefix($resolvingBag->getEnvPlaceholderUniquePrefix()); - } - } - $config = $resolvingBag->resolveValue($config); - - try { - $tmpContainer = new MergeExtensionConfigurationContainerBuilder($extension, $resolvingBag); - $tmpContainer->setResourceTracking($container->isTrackingResources()); - $tmpContainer->addObjectResource($extension); - if ($extension instanceof ConfigurationExtensionInterface && null !== $configuration = $extension->getConfiguration($config, $tmpContainer)) { - $tmpContainer->addObjectResource($configuration); - } - - foreach ($exprLangProviders as $provider) { - $tmpContainer->addExpressionLanguageProvider($provider); - } - - $extension->load($config, $tmpContainer); - } catch (\Exception $e) { - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - $container->getParameterBag()->mergeEnvPlaceholders($resolvingBag); - } - - throw $e; - } - - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - // don't keep track of env vars that are *overridden* when configs are merged - $resolvingBag->freezeAfterProcessing($extension, $tmpContainer); - } - - $container->merge($tmpContainer); - $container->getParameterBag()->add($parameters); - } - - $container->addDefinitions($definitions); - $container->addAliases($aliases); - } -} - -/** - * @internal - */ -class MergeExtensionConfigurationParameterBag extends EnvPlaceholderParameterBag -{ - private array $processedEnvPlaceholders; - - public function __construct(parent $parameterBag) - { - parent::__construct($parameterBag->all()); - $this->mergeEnvPlaceholders($parameterBag); - } - - public function freezeAfterProcessing(Extension $extension, ContainerBuilder $container): void - { - if (!$config = $extension->getProcessedConfigs()) { - // Extension::processConfiguration() wasn't called, we cannot know how configs were merged - return; - } - $this->processedEnvPlaceholders = []; - - // serialize config and container to catch env vars nested in object graphs - $config = serialize($config).serialize($container->getDefinitions()).serialize($container->getAliases()).serialize($container->getParameterBag()->all()); - - if (false === stripos($config, 'env_')) { - return; - } - - preg_match_all('/env_[a-f0-9]{16}_\w+_[a-f0-9]{32}/Ui', $config, $matches); - $usedPlaceholders = array_flip($matches[0]); - foreach (parent::getEnvPlaceholders() as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (isset($usedPlaceholders[$placeholder])) { - $this->processedEnvPlaceholders[$env] = $placeholders; - break; - } - } - } - } - - public function getEnvPlaceholders(): array - { - return $this->processedEnvPlaceholders ?? parent::getEnvPlaceholders(); - } - - public function getUnusedEnvPlaceholders(): array - { - return !isset($this->processedEnvPlaceholders) ? [] : array_diff_key(parent::getEnvPlaceholders(), $this->processedEnvPlaceholders); - } -} - -/** - * A container builder preventing using methods that wouldn't have any effect from extensions. - * - * @internal - */ -class MergeExtensionConfigurationContainerBuilder extends ContainerBuilder -{ - private string $extensionClass; - - public function __construct(ExtensionInterface $extension, ?ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - - $this->extensionClass = $extension::class; - } - - public function addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): static - { - throw new LogicException(sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', get_debug_type($pass), $this->extensionClass)); - } - - public function registerExtension(ExtensionInterface $extension) - { - throw new LogicException(sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', get_debug_type($extension), $this->extensionClass)); - } - - public function compile(bool $resolveEnvPlaceholders = false) - { - throw new LogicException(sprintf('Cannot compile the container in extension "%s".', $this->extensionClass)); - } - - public function resolveEnvPlaceholders(mixed $value, string|bool|null $format = null, ?array &$usedEnvs = null): mixed - { - if (true !== $format || !\is_string($value)) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - - $bag = $this->getParameterBag(); - $value = $bag->resolveValue($value); - - if (!$bag instanceof EnvPlaceholderParameterBag) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - - foreach ($bag->getEnvPlaceholders() as $env => $placeholders) { - if (!str_contains($env, ':')) { - continue; - } - foreach ($placeholders as $placeholder) { - if (false !== stripos($value, $placeholder)) { - throw new RuntimeException(sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass)); - } - } - } - - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PassConfig.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PassConfig.php deleted file mode 100644 index 16b24cc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PassConfig.php +++ /dev/null @@ -1,287 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Compiler Pass Configuration. - * - * This class has a default configuration embedded. - * - * @author Johannes M. Schmitt - */ -class PassConfig -{ - public const TYPE_AFTER_REMOVING = 'afterRemoving'; - public const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization'; - public const TYPE_BEFORE_REMOVING = 'beforeRemoving'; - public const TYPE_OPTIMIZE = 'optimization'; - public const TYPE_REMOVE = 'removing'; - - private MergeExtensionConfigurationPass $mergePass; - private array $afterRemovingPasses; - private array $beforeOptimizationPasses; - private array $beforeRemovingPasses = []; - private array $optimizationPasses; - private array $removingPasses; - - public function __construct() - { - $this->mergePass = new MergeExtensionConfigurationPass(); - - $this->beforeOptimizationPasses = [ - 100 => [ - new ResolveClassPass(), - new RegisterAutoconfigureAttributesPass(), - new AutowireAsDecoratorPass(), - new AttributeAutoconfigurationPass(), - new ResolveInstanceofConditionalsPass(), - new RegisterEnvVarProcessorsPass(), - ], - -1000 => [new ExtensionCompilerPass()], - ]; - - $this->optimizationPasses = [[ - new AutoAliasServicePass(), - new ValidateEnvPlaceholdersPass(), - new ResolveDecoratorStackPass(), - new ResolveChildDefinitionsPass(), - new RegisterServiceSubscribersPass(), - new ResolveParameterPlaceHoldersPass(false, false), - new ResolveFactoryClassPass(), - new ResolveNamedArgumentsPass(), - new AutowireRequiredMethodsPass(), - new AutowireRequiredPropertiesPass(), - new ResolveBindingsPass(), - new ServiceLocatorTagPass(), - new DecoratorServicePass(), - new CheckDefinitionValidityPass(), - new AutowirePass(false), - new ServiceLocatorTagPass(), - new ResolveTaggedIteratorArgumentPass(), - new ResolveServiceSubscribersPass(), - new ResolveReferencesToAliasesPass(), - new ResolveInvalidReferencesPass(), - new AnalyzeServiceReferencesPass(true), - new CheckCircularReferencesPass(), - new CheckReferenceValidityPass(), - new CheckArgumentsValidityPass(false), - ]]; - - $this->removingPasses = [[ - new RemovePrivateAliasesPass(), - new ReplaceAliasByActualDefinitionPass(), - new RemoveAbstractDefinitionsPass(), - new RemoveUnusedDefinitionsPass(), - new AnalyzeServiceReferencesPass(), - new CheckExceptionOnInvalidReferenceBehaviorPass(), - new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()), - new AnalyzeServiceReferencesPass(), - new DefinitionErrorExceptionPass(), - ]]; - - $this->afterRemovingPasses = [ - 0 => [ - new ResolveHotPathPass(), - new ResolveNoPreloadPass(), - new AliasDeprecatedPublicServicesPass(), - ], - // Let build parameters be available as late as possible - -2048 => [new RemoveBuildParametersPass()], - ]; - } - - /** - * Returns all passes in order to be processed. - * - * @return CompilerPassInterface[] - */ - public function getPasses(): array - { - return array_merge( - [$this->mergePass], - $this->getBeforeOptimizationPasses(), - $this->getOptimizationPasses(), - $this->getBeforeRemovingPasses(), - $this->getRemovingPasses(), - $this->getAfterRemovingPasses() - ); - } - - /** - * Adds a pass. - * - * @return void - * - * @throws InvalidArgumentException when a pass type doesn't exist - */ - public function addPass(CompilerPassInterface $pass, string $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $property = $type.'Passes'; - if (!isset($this->$property)) { - throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type)); - } - - $passes = &$this->$property; - - if (!isset($passes[$priority])) { - $passes[$priority] = []; - } - $passes[$priority][] = $pass; - } - - /** - * Gets all passes for the AfterRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getAfterRemovingPasses(): array - { - return $this->sortPasses($this->afterRemovingPasses); - } - - /** - * Gets all passes for the BeforeOptimization pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeOptimizationPasses(): array - { - return $this->sortPasses($this->beforeOptimizationPasses); - } - - /** - * Gets all passes for the BeforeRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeRemovingPasses(): array - { - return $this->sortPasses($this->beforeRemovingPasses); - } - - /** - * Gets all passes for the Optimization pass. - * - * @return CompilerPassInterface[] - */ - public function getOptimizationPasses(): array - { - return $this->sortPasses($this->optimizationPasses); - } - - /** - * Gets all passes for the Removing pass. - * - * @return CompilerPassInterface[] - */ - public function getRemovingPasses(): array - { - return $this->sortPasses($this->removingPasses); - } - - /** - * Gets the Merge pass. - */ - public function getMergePass(): CompilerPassInterface - { - return $this->mergePass; - } - - /** - * @return void - */ - public function setMergePass(CompilerPassInterface $pass) - { - $this->mergePass = $pass; - } - - /** - * Sets the AfterRemoving passes. - * - * @param CompilerPassInterface[] $passes - * - * @return void - */ - public function setAfterRemovingPasses(array $passes) - { - $this->afterRemovingPasses = [$passes]; - } - - /** - * Sets the BeforeOptimization passes. - * - * @param CompilerPassInterface[] $passes - * - * @return void - */ - public function setBeforeOptimizationPasses(array $passes) - { - $this->beforeOptimizationPasses = [$passes]; - } - - /** - * Sets the BeforeRemoving passes. - * - * @param CompilerPassInterface[] $passes - * - * @return void - */ - public function setBeforeRemovingPasses(array $passes) - { - $this->beforeRemovingPasses = [$passes]; - } - - /** - * Sets the Optimization passes. - * - * @param CompilerPassInterface[] $passes - * - * @return void - */ - public function setOptimizationPasses(array $passes) - { - $this->optimizationPasses = [$passes]; - } - - /** - * Sets the Removing passes. - * - * @param CompilerPassInterface[] $passes - * - * @return void - */ - public function setRemovingPasses(array $passes) - { - $this->removingPasses = [$passes]; - } - - /** - * Sort passes by priority. - * - * @param array $passes CompilerPassInterface instances with their priority as key - * - * @return CompilerPassInterface[] - */ - private function sortPasses(array $passes): array - { - if (0 === \count($passes)) { - return []; - } - - krsort($passes); - - // Flatten the array - return array_merge(...$passes); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php deleted file mode 100644 index 5d2110b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\Attribute\AsTaggedItem; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Trait that allows a generic method to find and sort service by priority option in the tag. - * - * @author Iltar van der Berg - */ -trait PriorityTaggedServiceTrait -{ - /** - * Finds all services with the given tag name and order them by their priority. - * - * The order of additions must be respected for services having the same priority, - * and knowing that the \SplPriorityQueue class does not respect the FIFO method, - * we should not use that class. - * - * @see https://bugs.php.net/53710 - * @see https://bugs.php.net/60926 - * - * @return Reference[] - */ - private function findAndSortTaggedServices(string|TaggedIteratorArgument $tagName, ContainerBuilder $container, array $exclude = []): array - { - $indexAttribute = $defaultIndexMethod = $needsIndexes = $defaultPriorityMethod = null; - - if ($tagName instanceof TaggedIteratorArgument) { - $indexAttribute = $tagName->getIndexAttribute(); - $defaultIndexMethod = $tagName->getDefaultIndexMethod(); - $needsIndexes = $tagName->needsIndexes(); - $defaultPriorityMethod = $tagName->getDefaultPriorityMethod() ?? 'getDefaultPriority'; - $exclude = array_merge($exclude, $tagName->getExclude()); - $tagName = $tagName->getTag(); - } - - $i = 0; - $services = []; - - foreach ($container->findTaggedServiceIds($tagName, true) as $serviceId => $attributes) { - if (\in_array($serviceId, $exclude, true)) { - continue; - } - - $defaultPriority = null; - $defaultIndex = null; - $definition = $container->getDefinition($serviceId); - $class = $definition->getClass(); - $class = $container->getParameterBag()->resolveValue($class) ?: null; - $checkTaggedItem = !$definition->hasTag($definition->isAutoconfigured() ? 'container.ignore_attributes' : $tagName); - - foreach ($attributes as $attribute) { - $index = $priority = null; - - if (isset($attribute['priority'])) { - $priority = $attribute['priority']; - } elseif (null === $defaultPriority && $defaultPriorityMethod && $class) { - $defaultPriority = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultPriorityMethod, $tagName, 'priority', $checkTaggedItem); - } - $priority ??= $defaultPriority ??= 0; - - if (null === $indexAttribute && !$defaultIndexMethod && !$needsIndexes) { - $services[] = [$priority, ++$i, null, $serviceId, null]; - continue 2; - } - - if (null !== $indexAttribute && isset($attribute[$indexAttribute])) { - $index = $attribute[$indexAttribute]; - } elseif (null === $defaultIndex && $defaultPriorityMethod && $class) { - $defaultIndex = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultIndexMethod ?? 'getDefaultName', $tagName, $indexAttribute, $checkTaggedItem); - } - $decorated = $definition->getTag('container.decorator')[0]['id'] ?? null; - $index = $index ?? $defaultIndex ?? $defaultIndex = $decorated ?? $serviceId; - - $services[] = [$priority, ++$i, $index, $serviceId, $class]; - } - } - - uasort($services, static fn ($a, $b) => $b[0] <=> $a[0] ?: $a[1] <=> $b[1]); - - $refs = []; - foreach ($services as [, , $index, $serviceId, $class]) { - if (!$class) { - $reference = new Reference($serviceId); - } elseif ($index === $serviceId) { - $reference = new TypedReference($serviceId, $class); - } else { - $reference = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $index); - } - - if (null === $index) { - $refs[] = $reference; - } else { - $refs[$index] = $reference; - } - } - - return $refs; - } -} - -/** - * @internal - */ -class PriorityTaggedServiceUtil -{ - public static function getDefault(ContainerBuilder $container, string $serviceId, string $class, string $defaultMethod, string $tagName, ?string $indexAttribute, bool $checkTaggedItem): string|int|null - { - if (!($r = $container->getReflectionClass($class)) || (!$checkTaggedItem && !$r->hasMethod($defaultMethod))) { - return null; - } - - if ($checkTaggedItem && !$r->hasMethod($defaultMethod)) { - foreach ($r->getAttributes(AsTaggedItem::class) as $attribute) { - return 'priority' === $indexAttribute ? $attribute->newInstance()->priority : $attribute->newInstance()->index; - } - - return null; - } - - if ($r->isInterface()) { - return null; - } - - if (null !== $indexAttribute) { - $service = $class !== $serviceId ? sprintf('service "%s"', $serviceId) : 'on the corresponding service'; - $message = [sprintf('Either method "%s::%s()" should ', $class, $defaultMethod), sprintf(' or tag "%s" on %s is missing attribute "%s".', $tagName, $service, $indexAttribute)]; - } else { - $message = [sprintf('Method "%s::%s()" should ', $class, $defaultMethod), '.']; - } - - if (!($rm = $r->getMethod($defaultMethod))->isStatic()) { - throw new InvalidArgumentException(implode('be static', $message)); - } - - if (!$rm->isPublic()) { - throw new InvalidArgumentException(implode('be public', $message)); - } - - $default = $rm->invoke(null); - - if ('priority' === $indexAttribute) { - if (!\is_int($default)) { - throw new InvalidArgumentException(implode(sprintf('return int (got "%s")', get_debug_type($default)), $message)); - } - - return $default; - } - - if (\is_int($default)) { - $default = (string) $default; - } - - if (!\is_string($default)) { - throw new InvalidArgumentException(implode(sprintf('return string|int (got "%s")', get_debug_type($default)), $message)); - } - - return $default; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php deleted file mode 100644 index d479743..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Attribute\Autoconfigure; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; - -/** - * Reads #[Autoconfigure] attributes on definitions that are autoconfigured - * and don't have the "container.ignore_attributes" tag. - * - * @author Nicolas Grekas - */ -final class RegisterAutoconfigureAttributesPass implements CompilerPassInterface -{ - private static \Closure $registerForAutoconfiguration; - - public function process(ContainerBuilder $container): void - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($this->accept($definition) && $class = $container->getReflectionClass($definition->getClass(), false)) { - $this->processClass($container, $class); - } - } - } - - public function accept(Definition $definition): bool - { - return $definition->isAutoconfigured() && !$definition->hasTag('container.ignore_attributes'); - } - - public function processClass(ContainerBuilder $container, \ReflectionClass $class): void - { - foreach ($class->getAttributes(Autoconfigure::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { - self::registerForAutoconfiguration($container, $class, $attribute); - } - } - - private static function registerForAutoconfiguration(ContainerBuilder $container, \ReflectionClass $class, \ReflectionAttribute $attribute): void - { - if (isset(self::$registerForAutoconfiguration)) { - (self::$registerForAutoconfiguration)($container, $class, $attribute); - - return; - } - - $parseDefinitions = new \ReflectionMethod(YamlFileLoader::class, 'parseDefinitions'); - $yamlLoader = $parseDefinitions->getDeclaringClass()->newInstanceWithoutConstructor(); - - self::$registerForAutoconfiguration = static function (ContainerBuilder $container, \ReflectionClass $class, \ReflectionAttribute $attribute) use ($parseDefinitions, $yamlLoader) { - $attribute = (array) $attribute->newInstance(); - - foreach ($attribute['tags'] ?? [] as $i => $tag) { - if (\is_array($tag) && [0] === array_keys($tag)) { - $attribute['tags'][$i] = [$class->name => $tag[0]]; - } - } - - $parseDefinitions->invoke( - $yamlLoader, - [ - 'services' => [ - '_instanceof' => [ - $class->name => [$container->registerForAutoconfiguration($class->name)] + $attribute, - ], - ], - ], - $class->getFileName(), - false - ); - }; - - (self::$registerForAutoconfiguration)($container, $class, $attribute); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php deleted file mode 100644 index 2a706bf..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\EnvVarProcessor; -use Symfony\Component\DependencyInjection\EnvVarProcessorInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Creates the container.env_var_processors_locator service. - * - * @author Nicolas Grekas - */ -class RegisterEnvVarProcessorsPass implements CompilerPassInterface -{ - private const ALLOWED_TYPES = ['array', 'bool', 'float', 'int', 'string', \BackedEnum::class]; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $bag = $container->getParameterBag(); - $types = []; - $processors = []; - foreach ($container->findTaggedServiceIds('container.env_var_processor') as $id => $tags) { - if (!$r = $container->getReflectionClass($class = $container->getDefinition($id)->getClass())) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } elseif (!$r->isSubclassOf(EnvVarProcessorInterface::class)) { - throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class)); - } - foreach ($class::getProvidedTypes() as $prefix => $type) { - $processors[$prefix] = new Reference($id); - $types[$prefix] = self::validateProvidedTypes($type, $class); - } - } - - if ($bag instanceof EnvPlaceholderParameterBag) { - foreach (EnvVarProcessor::getProvidedTypes() as $prefix => $type) { - if (!isset($types[$prefix])) { - $types[$prefix] = self::validateProvidedTypes($type, EnvVarProcessor::class); - } - } - $bag->setProvidedTypes($types); - } - - if ($processors) { - $container->setAlias('container.env_var_processors_locator', (string) ServiceLocatorTagPass::register($container, $processors)) - ->setPublic(true) - ; - } - } - - private static function validateProvidedTypes(string $types, string $class): array - { - $types = explode('|', $types); - - foreach ($types as $type) { - if (!\in_array($type, self::ALLOWED_TYPES)) { - throw new InvalidArgumentException(sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, implode('", "', self::ALLOWED_TYPES))); - } - } - - return $types; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php deleted file mode 100644 index aa4cca3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class RegisterReverseContainerPass implements CompilerPassInterface -{ - private bool $beforeRemoving; - - public function __construct(bool $beforeRemoving) - { - $this->beforeRemoving = $beforeRemoving; - } - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition('reverse_container')) { - return; - } - - $refType = $this->beforeRemoving ? ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - $services = []; - foreach ($container->findTaggedServiceIds('container.reversible') as $id => $tags) { - $services[$id] = new Reference($id, $refType); - } - - if ($this->beforeRemoving) { - // prevent inlining of the reverse container - $services['reverse_container'] = new Reference('reverse_container', $refType); - } - $locator = $container->getDefinition('reverse_container')->getArgument(1); - - if ($locator instanceof Reference) { - $locator = $container->getDefinition((string) $locator); - } - if ($locator instanceof Definition) { - foreach ($services as $id => $ref) { - $services[$id] = new ServiceClosureArgument($ref); - } - $locator->replaceArgument(0, $services); - } else { - $locator->setValues($services); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php deleted file mode 100644 index dab84cd..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Attribute\Autowire; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Component\HttpFoundation\Session\SessionInterface; -use Symfony\Contracts\Service\Attribute\SubscribedService; -use Symfony\Contracts\Service\ServiceProviderInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * Compiler pass to register tagged services that require a service locator. - * - * @author Nicolas Grekas - */ -class RegisterServiceSubscribersPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Definition || $value->isAbstract() || $value->isSynthetic() || !$value->hasTag('container.service_subscriber')) { - return parent::processValue($value, $isRoot); - } - - $serviceMap = []; - $autowire = $value->isAutowired(); - - foreach ($value->getTag('container.service_subscriber') as $attributes) { - if (!$attributes) { - $autowire = true; - continue; - } - ksort($attributes); - if ([] !== array_diff(array_keys($attributes), ['id', 'key'])) { - throw new InvalidArgumentException(sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', implode('", "', array_keys($attributes)), $this->currentId)); - } - if (!\array_key_exists('id', $attributes)) { - throw new InvalidArgumentException(sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId)); - } - if (!\array_key_exists('key', $attributes)) { - $attributes['key'] = $attributes['id']; - } - if (isset($serviceMap[$attributes['key']])) { - continue; - } - $serviceMap[$attributes['key']] = new Reference($attributes['id']); - } - $class = $value->getClass(); - - if (!$r = $this->container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId)); - } - if (!$r->isSubclassOf(ServiceSubscriberInterface::class)) { - throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class)); - } - $class = $r->name; - // to remove when symfony/dependency-injection will stop being compatible with symfony/framework-bundle<6.0 - $replaceDeprecatedSession = $this->container->has('.session.deprecated') && $r->isSubclassOf(AbstractController::class); - $subscriberMap = []; - - foreach ($class::getSubscribedServices() as $key => $type) { - $attributes = []; - - if (!isset($serviceMap[$key]) && $type instanceof Autowire) { - $subscriberMap[$key] = $type; - continue; - } - - if ($type instanceof SubscribedService) { - $key = $type->key ?? $key; - $attributes = $type->attributes; - $type = ($type->nullable ? '?' : '').($type->type ?? throw new InvalidArgumentException(sprintf('When "%s::getSubscribedServices()" returns "%s", a type must be set.', $class, SubscribedService::class))); - } - - if (!\is_string($type) || !preg_match('/(?(DEFINE)(?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+))(?(DEFINE)(?(?&cn)(?:\\\\(?&cn))*+))^\??(?&fqcn)(?:(?:\|(?&fqcn))*+|(?:&(?&fqcn))*+)$/', $type)) { - throw new InvalidArgumentException(sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : get_debug_type($type))); - } - $optionalBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if ('?' === $type[0]) { - $type = substr($type, 1); - $optionalBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } - if (\is_int($name = $key)) { - $key = $type; - $name = null; - } - if (!isset($serviceMap[$key])) { - if (!$autowire) { - throw new InvalidArgumentException(sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class)); - } - if ($replaceDeprecatedSession && SessionInterface::class === $type) { - // This prevents triggering the deprecation when building the container - // to remove when symfony/dependency-injection will stop being compatible with symfony/framework-bundle<6.0 - $type = '.session.deprecated'; - } - $serviceMap[$key] = new Reference($type); - } - - if ($name) { - if (false !== $i = strpos($name, '::get')) { - $name = lcfirst(substr($name, 5 + $i)); - } elseif (str_contains($name, '::')) { - $name = null; - } - } - - if (null !== $name && !$this->container->has($name) && !$this->container->has($type.' $'.$name)) { - $camelCaseName = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $name)))); - $name = $this->container->has($type.' $'.$camelCaseName) ? $camelCaseName : $name; - } - - $subscriberMap[$key] = new TypedReference((string) $serviceMap[$key], $type, $optionalBehavior, $name, $attributes); - unset($serviceMap[$key]); - } - - if ($serviceMap = array_keys($serviceMap)) { - $message = sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', str_replace('%', '%%', implode('", "', $serviceMap))); - throw new InvalidArgumentException(sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId)); - } - - $locatorRef = ServiceLocatorTagPass::register($this->container, $subscriberMap, $this->currentId); - - $value->addTag('container.service_subscriber.locator', ['id' => (string) $locatorRef]); - - $value->setBindings([ - PsrContainerInterface::class => new BoundArgument($locatorRef, false), - ServiceProviderInterface::class => new BoundArgument($locatorRef, false), - ] + $value->getBindings()); - - return parent::processValue($value); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php deleted file mode 100644 index d0ebfcc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Removes abstract Definitions. - */ -class RemoveAbstractDefinitionsPass implements CompilerPassInterface -{ - /** - * Removes abstract definitions from the ContainerBuilder. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isAbstract()) { - $container->removeDefinition($id); - $container->log($this, sprintf('Removed service "%s"; reason: abstract.', $id)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveBuildParametersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveBuildParametersPass.php deleted file mode 100644 index 75e7144..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveBuildParametersPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -class RemoveBuildParametersPass implements CompilerPassInterface -{ - /** - * @var array - */ - private array $removedParameters = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $parameterBag = $container->getParameterBag(); - $this->removedParameters = []; - - foreach ($parameterBag->all() as $name => $value) { - if ('.' === ($name[0] ?? '')) { - $this->removedParameters[$name] = $value; - - $parameterBag->remove($name); - $container->log($this, sprintf('Removing build parameter "%s".', $name)); - } - } - } - - /** - * @return array - */ - public function getRemovedParameters(): array - { - return $this->removedParameters; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php deleted file mode 100644 index 93c3fd2..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Remove private aliases from the container. They were only used to establish - * dependencies between services, and these dependencies have been resolved in - * one of the previous passes. - * - * @author Johannes M. Schmitt - */ -class RemovePrivateAliasesPass implements CompilerPassInterface -{ - /** - * Removes private aliases from the ContainerBuilder. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic()) { - continue; - } - - $container->removeAlias($id); - $container->log($this, sprintf('Removed service "%s"; reason: private alias.', $id)); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php deleted file mode 100644 index d6ee5ea..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Removes unused service definitions from the container. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class RemoveUnusedDefinitionsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $connectedIds = []; - - /** - * Processes the ContainerBuilder to remove unused definitions. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - try { - $this->enableExpressionProcessing(); - $this->container = $container; - $connectedIds = []; - $aliases = $container->getAliases(); - - foreach ($aliases as $id => $alias) { - if ($alias->isPublic()) { - $this->connectedIds[] = (string) $aliases[$id]; - } - } - - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPublic()) { - $connectedIds[$id] = true; - $this->processValue($definition); - } - } - - while ($this->connectedIds) { - $ids = $this->connectedIds; - $this->connectedIds = []; - foreach ($ids as $id) { - if (!isset($connectedIds[$id]) && $container->hasDefinition($id)) { - $connectedIds[$id] = true; - $this->processValue($container->getDefinition($id)); - } - } - } - - foreach ($container->getDefinitions() as $id => $definition) { - if (!isset($connectedIds[$id])) { - $container->removeDefinition($id); - $container->resolveEnvPlaceholders(!$definition->hasErrors() ? serialize($definition) : $definition); - $container->log($this, sprintf('Removed service "%s"; reason: unused.', $id)); - } - } - } finally { - $this->container = null; - $this->connectedIds = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - - if (ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior()) { - $this->connectedIds[] = (string) $value; - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php deleted file mode 100644 index 46d615f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Replaces aliases with actual service definitions, effectively removing these - * aliases. - * - * @author Johannes M. Schmitt - */ -class ReplaceAliasByActualDefinitionPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $replacements; - - /** - * Process the Container to replace aliases with service definitions. - * - * @return void - * - * @throws InvalidArgumentException if the service definition does not exist - */ - public function process(ContainerBuilder $container) - { - // First collect all alias targets that need to be replaced - $seenAliasTargets = []; - $replacements = []; - - foreach ($container->getAliases() as $definitionId => $target) { - $targetId = (string) $target; - // Special case: leave this target alone - if ('service_container' === $targetId) { - continue; - } - // Check if target needs to be replaced - if (isset($replacements[$targetId])) { - $container->setAlias($definitionId, $replacements[$targetId])->setPublic($target->isPublic()); - - if ($target->isDeprecated()) { - $container->getAlias($definitionId)->setDeprecated(...array_values($target->getDeprecation('%alias_id%'))); - } - } - // No need to process the same target twice - if (isset($seenAliasTargets[$targetId])) { - continue; - } - // Process new target - $seenAliasTargets[$targetId] = true; - try { - $definition = $container->getDefinition($targetId); - } catch (ServiceNotFoundException $e) { - if ('' !== $e->getId() && '@' === $e->getId()[0]) { - throw new ServiceNotFoundException($e->getId(), $e->getSourceId(), null, [substr($e->getId(), 1)]); - } - - throw $e; - } - if ($definition->isPublic()) { - continue; - } - // Remove private definition and schedule for replacement - $definition->setPublic($target->isPublic()); - $container->setDefinition($definitionId, $definition); - $container->removeDefinition($targetId); - $replacements[$targetId] = $definitionId; - - if ($target->isPublic() && $target->isDeprecated()) { - $definition->addTag('container.private', $target->getDeprecation('%service_id%')); - } - } - $this->replacements = $replacements; - - parent::process($container); - $this->replacements = []; - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Reference && isset($this->replacements[$referenceId = (string) $value])) { - // Perform the replacement - $newId = $this->replacements[$referenceId]; - $value = new Reference($newId, $value->getInvalidBehavior()); - $this->container->log($this, sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId)); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php deleted file mode 100644 index f041d17..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php +++ /dev/null @@ -1,271 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\Attribute\Autowire; -use Symfony\Component\DependencyInjection\Attribute\Target; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Component\VarExporter\ProxyHelper; - -/** - * @author Guilhem Niot - */ -class ResolveBindingsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $usedBindings = []; - private array $unusedBindings = []; - private array $errorMessages = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->usedBindings = $container->getRemovedBindingIds(); - - try { - parent::process($container); - - foreach ($this->unusedBindings as [$key, $serviceId, $bindingType, $file]) { - $argumentType = $argumentName = $message = null; - - if (str_contains($key, ' ')) { - [$argumentType, $argumentName] = explode(' ', $key, 2); - } elseif ('$' === $key[0]) { - $argumentName = $key; - } else { - $argumentType = $key; - } - - if ($argumentType) { - $message .= sprintf('of type "%s" ', $argumentType); - } - - if ($argumentName) { - $message .= sprintf('named "%s" ', $argumentName); - } - - if (BoundArgument::DEFAULTS_BINDING === $bindingType) { - $message .= 'under "_defaults"'; - } elseif (BoundArgument::INSTANCEOF_BINDING === $bindingType) { - $message .= 'under "_instanceof"'; - } else { - $message .= sprintf('for service "%s"', $serviceId); - } - - if ($file) { - $message .= sprintf(' in file "%s"', $file); - } - - $message = sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message); - - if ($this->errorMessages) { - $message .= sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : ''); - } - foreach ($this->errorMessages as $m) { - $message .= "\n - ".$m; - } - throw new InvalidArgumentException($message); - } - } finally { - $this->usedBindings = []; - $this->unusedBindings = []; - $this->errorMessages = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof TypedReference && $value->getType() === (string) $value) { - // Already checked - $bindings = $this->container->getDefinition($this->currentId)->getBindings(); - $name = $value->getName(); - - if (isset($name, $bindings[$name = $value.' $'.$name])) { - return $this->getBindingValue($bindings[$name]); - } - - if (isset($bindings[$value->getType()])) { - return $this->getBindingValue($bindings[$value->getType()]); - } - - return parent::processValue($value, $isRoot); - } - - if (!$value instanceof Definition || !$bindings = $value->getBindings()) { - return parent::processValue($value, $isRoot); - } - - $bindingNames = []; - - foreach ($bindings as $key => $binding) { - [$bindingValue, $bindingId, $used, $bindingType, $file] = $binding->getValues(); - if ($used) { - $this->usedBindings[$bindingId] = true; - unset($this->unusedBindings[$bindingId]); - } elseif (!isset($this->usedBindings[$bindingId])) { - $this->unusedBindings[$bindingId] = [$key, $this->currentId, $bindingType, $file]; - } - - if (preg_match('/^(?:(?:array|bool|float|int|string|iterable|([^ $]++)) )\$/', $key, $m)) { - $bindingNames[substr($key, \strlen($m[0]))] = $binding; - } - - if (!isset($m[1])) { - continue; - } - - if (is_subclass_of($m[1], \UnitEnum::class)) { - $bindingNames[substr($key, \strlen($m[0]))] = $binding; - continue; - } - - if (null !== $bindingValue && !$bindingValue instanceof Reference && !$bindingValue instanceof Definition && !$bindingValue instanceof TaggedIteratorArgument && !$bindingValue instanceof ServiceLocatorArgument) { - throw new InvalidArgumentException(sprintf('Invalid value for binding key "%s" for service "%s": expected "%s", "%s", "%s", "%s" or null, "%s" given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, ServiceLocatorArgument::class, get_debug_type($bindingValue))); - } - } - - if ($value->isAbstract()) { - return parent::processValue($value, $isRoot); - } - - $calls = $value->getMethodCalls(); - - try { - if ($constructor = $this->getConstructor($value, false)) { - $calls[] = [$constructor, $value->getArguments()]; - } - } catch (RuntimeException $e) { - $this->errorMessages[] = $e->getMessage(); - $this->container->getDefinition($this->currentId)->addError($e->getMessage()); - - return parent::processValue($value, $isRoot); - } - - foreach ($calls as $i => $call) { - [$method, $arguments] = $call; - - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - try { - $reflectionMethod = $this->getReflectionMethod($value, $method); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - throw $e; - } - } - - $names = []; - - foreach ($reflectionMethod->getParameters() as $key => $parameter) { - $names[$key] = $parameter->name; - - if (\array_key_exists($key, $arguments) && '' !== $arguments[$key] && !$arguments[$key] instanceof AbstractArgument) { - continue; - } - if (\array_key_exists($parameter->name, $arguments) && '' !== $arguments[$parameter->name] && !$arguments[$parameter->name] instanceof AbstractArgument) { - continue; - } - if ( - $value->isAutowired() - && !$value->hasTag('container.ignore_attributes') - && $parameter->getAttributes(Autowire::class, \ReflectionAttribute::IS_INSTANCEOF) - ) { - continue; - } - - $typeHint = ltrim(ProxyHelper::exportType($parameter) ?? '', '?'); - - $name = Target::parseName($parameter, parsedName: $parsedName); - - if ($typeHint && ( - \array_key_exists($k = preg_replace('/(^|[(|&])\\\\/', '\1', $typeHint).' $'.$name, $bindings) - || \array_key_exists($k = preg_replace('/(^|[(|&])\\\\/', '\1', $typeHint).' $'.$parsedName, $bindings) - )) { - $arguments[$key] = $this->getBindingValue($bindings[$k]); - - continue; - } - - if (\array_key_exists($k = '$'.$name, $bindings) || \array_key_exists($k = '$'.$parsedName, $bindings)) { - $arguments[$key] = $this->getBindingValue($bindings[$k]); - - continue; - } - - if ($typeHint && '\\' === $typeHint[0] && isset($bindings[$typeHint = substr($typeHint, 1)])) { - $arguments[$key] = $this->getBindingValue($bindings[$typeHint]); - - continue; - } - - if (isset($bindingNames[$name]) || isset($bindingNames[$parsedName]) || isset($bindingNames[$parameter->name])) { - $bindingKey = array_search($binding, $bindings, true); - $argumentType = substr($bindingKey, 0, strpos($bindingKey, ' ')); - $this->errorMessages[] = sprintf('Did you forget to add the type "%s" to argument "$%s" of method "%s::%s()"?', $argumentType, $parameter->name, $reflectionMethod->class, $reflectionMethod->name); - } - } - - foreach ($names as $key => $name) { - if (\array_key_exists($name, $arguments) && (0 === $key || \array_key_exists($key - 1, $arguments))) { - if (!array_key_exists($key, $arguments)) { - $arguments[$key] = $arguments[$name]; - } - unset($arguments[$name]); - } - } - - if ($arguments !== $call[1]) { - ksort($arguments, \SORT_NATURAL); - $calls[$i][1] = $arguments; - } - } - - if ($constructor) { - [, $arguments] = array_pop($calls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - - return parent::processValue($value, $isRoot); - } - - private function getBindingValue(BoundArgument $binding): mixed - { - [$bindingValue, $bindingId] = $binding->getValues(); - - $this->usedBindings[$bindingId] = true; - unset($this->unusedBindings[$bindingId]); - - return $bindingValue; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php deleted file mode 100644 index bc1eeeb..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php +++ /dev/null @@ -1,201 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ExceptionInterface; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; - -/** - * This replaces all ChildDefinition instances with their equivalent fully - * merged Definition instance. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class ResolveChildDefinitionsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $currentPath; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - // yes, we are specifically fetching the definition from the - // container to ensure we are not operating on stale data - $value = $this->container->getDefinition($this->currentId); - } - if ($value instanceof ChildDefinition) { - $this->currentPath = []; - $value = $this->resolveDefinition($value); - if ($isRoot) { - $this->container->setDefinition($this->currentId, $value); - } - } - - return parent::processValue($value, $isRoot); - } - - /** - * Resolves the definition. - * - * @throws RuntimeException When the definition is invalid - */ - private function resolveDefinition(ChildDefinition $definition): Definition - { - try { - return $this->doResolveDefinition($definition); - } catch (ServiceCircularReferenceException $e) { - throw $e; - } catch (ExceptionInterface $e) { - $r = new \ReflectionProperty($e, 'message'); - $r->setValue($e, sprintf('Service "%s": %s', $this->currentId, $e->getMessage())); - - throw $e; - } - } - - private function doResolveDefinition(ChildDefinition $definition): Definition - { - if (!$this->container->has($parent = $definition->getParent())) { - throw new RuntimeException(sprintf('Parent definition "%s" does not exist.', $parent)); - } - - $searchKey = array_search($parent, $this->currentPath); - $this->currentPath[] = $parent; - - if (false !== $searchKey) { - throw new ServiceCircularReferenceException($parent, \array_slice($this->currentPath, $searchKey)); - } - - $parentDef = $this->container->findDefinition($parent); - if ($parentDef instanceof ChildDefinition) { - $id = $this->currentId; - $this->currentId = $parent; - $parentDef = $this->resolveDefinition($parentDef); - $this->container->setDefinition($parent, $parentDef); - $this->currentId = $id; - } - - $this->container->log($this, sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent)); - $def = new Definition(); - - // merge in parent definition - // purposely ignored attributes: abstract, shared, tags, autoconfigured - $def->setClass($parentDef->getClass()); - $def->setArguments($parentDef->getArguments()); - $def->setMethodCalls($parentDef->getMethodCalls()); - $def->setProperties($parentDef->getProperties()); - if ($parentDef->isDeprecated()) { - $deprecation = $parentDef->getDeprecation('%service_id%'); - $def->setDeprecated($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - $def->setFactory($parentDef->getFactory()); - $def->setConfigurator($parentDef->getConfigurator()); - $def->setFile($parentDef->getFile()); - $def->setPublic($parentDef->isPublic()); - $def->setLazy($parentDef->isLazy()); - $def->setAutowired($parentDef->isAutowired()); - $def->setChanges($parentDef->getChanges()); - - $def->setBindings($definition->getBindings() + $parentDef->getBindings()); - - $def->setSynthetic($definition->isSynthetic()); - - // overwrite with values specified in the decorator - $changes = $definition->getChanges(); - if (isset($changes['class'])) { - $def->setClass($definition->getClass()); - } - if (isset($changes['factory'])) { - $def->setFactory($definition->getFactory()); - } - if (isset($changes['configurator'])) { - $def->setConfigurator($definition->getConfigurator()); - } - if (isset($changes['file'])) { - $def->setFile($definition->getFile()); - } - if (isset($changes['public'])) { - $def->setPublic($definition->isPublic()); - } else { - $def->setPublic($parentDef->isPublic()); - } - if (isset($changes['lazy'])) { - $def->setLazy($definition->isLazy()); - } - if (isset($changes['deprecated']) && $definition->isDeprecated()) { - $deprecation = $definition->getDeprecation('%service_id%'); - $def->setDeprecated($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - if (isset($changes['autowired'])) { - $def->setAutowired($definition->isAutowired()); - } - if (isset($changes['shared'])) { - $def->setShared($definition->isShared()); - } - if (isset($changes['decorated_service'])) { - $decoratedService = $definition->getDecoratedService(); - if (null === $decoratedService) { - $def->setDecoratedService($decoratedService); - } else { - $def->setDecoratedService($decoratedService[0], $decoratedService[1], $decoratedService[2], $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } - } - - // merge arguments - foreach ($definition->getArguments() as $k => $v) { - if (is_numeric($k)) { - $def->addArgument($v); - } elseif (str_starts_with($k, 'index_')) { - $def->replaceArgument((int) substr($k, \strlen('index_')), $v); - } else { - $def->setArgument($k, $v); - } - } - - // merge properties - foreach ($definition->getProperties() as $k => $v) { - $def->setProperty($k, $v); - } - - // append method calls - if ($calls = $definition->getMethodCalls()) { - $def->setMethodCalls(array_merge($def->getMethodCalls(), $calls)); - } - - $def->addError($parentDef); - $def->addError($definition); - - // these attributes are always taken from the child - $def->setAbstract($definition->isAbstract()); - $def->setTags($definition->getTags()); - // autoconfigure is never taken from parent (on purpose) - // and it's not legal on an instanceof - $def->setAutoconfigured($definition->isAutoconfigured()); - - if (!$def->hasTag('proxy')) { - foreach ($parentDef->getTag('proxy') as $v) { - $def->addTag('proxy', $v); - } - } - - return $def; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php deleted file mode 100644 index 4688376..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - */ -class ResolveClassPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isSynthetic() || null !== $definition->getClass()) { - continue; - } - if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)++$/', $id)) { - if ($definition instanceof ChildDefinition && !class_exists($id)) { - throw new InvalidArgumentException(sprintf('Service definition "%s" has a parent but no class, and its name looks like an FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id)); - } - $definition->setClass($id); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php deleted file mode 100644 index da02622..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class ResolveDecoratorStackPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $stacks = []; - - foreach ($container->findTaggedServiceIds('container.stack') as $id => $tags) { - $definition = $container->getDefinition($id); - - if (!$definition instanceof ChildDefinition) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": only definitions with a "parent" can have the "container.stack" tag.', $id)); - } - - if (!$stack = $definition->getArguments()) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": the stack of decorators is empty.', $id)); - } - - $stacks[$id] = $stack; - } - - if (!$stacks) { - return; - } - - $resolvedDefinitions = []; - - foreach ($container->getDefinitions() as $id => $definition) { - if (!isset($stacks[$id])) { - $resolvedDefinitions[$id] = $definition; - continue; - } - - foreach (array_reverse($this->resolveStack($stacks, [$id]), true) as $k => $v) { - $resolvedDefinitions[$k] = $v; - } - - $alias = $container->setAlias($id, $k); - - if ($definition->getChanges()['public'] ?? false) { - $alias->setPublic($definition->isPublic()); - } - - if ($definition->isDeprecated()) { - $alias->setDeprecated(...array_values($definition->getDeprecation('%alias_id%'))); - } - } - - $container->setDefinitions($resolvedDefinitions); - } - - private function resolveStack(array $stacks, array $path): array - { - $definitions = []; - $id = end($path); - $prefix = '.'.$id.'.'; - - if (!isset($stacks[$id])) { - return [$id => new ChildDefinition($id)]; - } - - if (key($path) !== $searchKey = array_search($id, $path)) { - throw new ServiceCircularReferenceException($id, \array_slice($path, $searchKey)); - } - - foreach ($stacks[$id] as $k => $definition) { - if ($definition instanceof ChildDefinition && isset($stacks[$definition->getParent()])) { - $path[] = $definition->getParent(); - $definition = unserialize(serialize($definition)); // deep clone - } elseif ($definition instanceof Definition) { - $definitions[$decoratedId = $prefix.$k] = $definition; - continue; - } elseif ($definition instanceof Reference || $definition instanceof Alias) { - $path[] = (string) $definition; - } else { - throw new InvalidArgumentException(sprintf('Invalid service "%s": unexpected value of type "%s" found in the stack of decorators.', $id, get_debug_type($definition))); - } - - $p = $prefix.$k; - - foreach ($this->resolveStack($stacks, $path) as $k => $v) { - $definitions[$decoratedId = $p.$k] = $definition instanceof ChildDefinition ? $definition->setParent($k) : new ChildDefinition($k); - $definition = null; - } - array_pop($path); - } - - if (1 === \count($path)) { - foreach ($definitions as $k => $definition) { - $definition->setPublic(false)->setTags([])->setDecoratedService($decoratedId); - } - $definition->setDecoratedService(null); - } - - return $definitions; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php deleted file mode 100644 index ea077cb..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Replaces env var placeholders by their current values. - */ -class ResolveEnvPlaceholdersPass extends AbstractRecursivePass -{ - protected bool $skipScalars = false; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (\is_string($value)) { - return $this->container->resolveEnvPlaceholders($value, true); - } - if ($value instanceof Definition) { - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), true)); - } - if (isset($changes['file'])) { - $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), true)); - } - } - - $value = parent::processValue($value, $isRoot); - - if ($value && \is_array($value) && !$isRoot) { - $value = array_combine($this->container->resolveEnvPlaceholders(array_keys($value), true), $value); - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php deleted file mode 100644 index 2beaa01..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Maxime Steinhausser - */ -class ResolveFactoryClassPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Definition && \is_array($factory = $value->getFactory()) && null === $factory[0]) { - if (null === $class = $value->getClass()) { - throw new RuntimeException(sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId)); - } - - $factory[0] = $class; - $value->setFactory($factory); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php deleted file mode 100644 index 705bb83..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Propagate "container.hot_path" tags to referenced services. - * - * @author Nicolas Grekas - */ -class ResolveHotPathPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private array $resolvedIds = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - try { - parent::process($container); - $container->getDefinition('service_container')->clearTag('container.hot_path'); - } finally { - $this->resolvedIds = []; - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof ArgumentInterface) { - return $value; - } - - if ($value instanceof Definition && $isRoot) { - if ($value->isDeprecated()) { - return $value->clearTag('container.hot_path'); - } - - $this->resolvedIds[$this->currentId] = true; - - if (!$value->hasTag('container.hot_path')) { - return $value; - } - } - - if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->hasDefinition($id = (string) $value)) { - $definition = $this->container->getDefinition($id); - - if ($definition->isDeprecated() || $definition->hasTag('container.hot_path')) { - return $value; - } - - $definition->addTag('container.hot_path'); - - if (isset($this->resolvedIds[$id])) { - parent::processValue($definition, false); - } - - return $value; - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php deleted file mode 100644 index fbce044..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php +++ /dev/null @@ -1,178 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Applies instanceof conditionals to definitions. - * - * @author Nicolas Grekas - */ -class ResolveInstanceofConditionalsPass implements CompilerPassInterface -{ - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAutoconfiguredInstanceof() as $interface => $definition) { - if ($definition->getArguments()) { - throw new InvalidArgumentException(sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface)); - } - } - - $tagsToKeep = []; - - if ($container->hasParameter('container.behavior_describing_tags')) { - $tagsToKeep = $container->getParameter('container.behavior_describing_tags'); - } - - foreach ($container->getDefinitions() as $id => $definition) { - $container->setDefinition($id, $this->processDefinition($container, $id, $definition, $tagsToKeep)); - } - - if ($container->hasParameter('container.behavior_describing_tags')) { - $container->getParameterBag()->remove('container.behavior_describing_tags'); - } - } - - private function processDefinition(ContainerBuilder $container, string $id, Definition $definition, array $tagsToKeep): Definition - { - $instanceofConditionals = $definition->getInstanceofConditionals(); - $autoconfiguredInstanceof = $definition->isAutoconfigured() ? $container->getAutoconfiguredInstanceof() : []; - if (!$instanceofConditionals && !$autoconfiguredInstanceof) { - return $definition; - } - - if (!$class = $container->getParameterBag()->resolveValue($definition->getClass())) { - return $definition; - } - - $conditionals = $this->mergeConditionals($autoconfiguredInstanceof, $instanceofConditionals, $container); - - $definition->setInstanceofConditionals([]); - $shared = null; - $instanceofTags = []; - $instanceofCalls = []; - $instanceofBindings = []; - $reflectionClass = null; - $parent = $definition instanceof ChildDefinition ? $definition->getParent() : null; - - foreach ($conditionals as $interface => $instanceofDefs) { - if ($interface !== $class && !($reflectionClass ??= $container->getReflectionClass($class, false) ?: false)) { - continue; - } - - if ($interface !== $class && !is_subclass_of($class, $interface)) { - continue; - } - - foreach ($instanceofDefs as $key => $instanceofDef) { - /** @var ChildDefinition $instanceofDef */ - $instanceofDef = clone $instanceofDef; - $instanceofDef->setAbstract(true)->setParent($parent ?: '.abstract.instanceof.'.$id); - $parent = '.instanceof.'.$interface.'.'.$key.'.'.$id; - $container->setDefinition($parent, $instanceofDef); - $instanceofTags[] = [$interface, $instanceofDef->getTags()]; - $instanceofBindings = $instanceofDef->getBindings() + $instanceofBindings; - - foreach ($instanceofDef->getMethodCalls() as $methodCall) { - $instanceofCalls[] = $methodCall; - } - - $instanceofDef->setTags([]); - $instanceofDef->setMethodCalls([]); - $instanceofDef->setBindings([]); - - if (isset($instanceofDef->getChanges()['shared'])) { - $shared = $instanceofDef->isShared(); - } - } - } - - if ($parent) { - $bindings = $definition->getBindings(); - $abstract = $container->setDefinition('.abstract.instanceof.'.$id, $definition); - $definition->setBindings([]); - $definition = serialize($definition); - - if (Definition::class === $abstract::class) { - // cast Definition to ChildDefinition - $definition = substr_replace($definition, '53', 2, 2); - $definition = substr_replace($definition, 'Child', 44, 0); - } - /** @var ChildDefinition $definition */ - $definition = unserialize($definition); - $definition->setParent($parent); - - if (null !== $shared && !isset($definition->getChanges()['shared'])) { - $definition->setShared($shared); - } - - // Don't add tags to service decorators - $i = \count($instanceofTags); - while (0 <= --$i) { - [$interface, $tags] = $instanceofTags[$i]; - foreach ($tags as $k => $v) { - if (null === $definition->getDecoratedService() || $interface === $definition->getClass() || \in_array($k, $tagsToKeep, true)) { - foreach ($v as $v) { - if ($definition->hasTag($k) && \in_array($v, $definition->getTag($k))) { - continue; - } - $definition->addTag($k, $v); - } - } - } - } - - $definition->setMethodCalls(array_merge($instanceofCalls, $definition->getMethodCalls())); - $definition->setBindings($bindings + $instanceofBindings); - - // reset fields with "merge" behavior - $abstract - ->setBindings([]) - ->setArguments([]) - ->setMethodCalls([]) - ->setDecoratedService(null) - ->setTags([]) - ->setAbstract(true); - } - - return $definition; - } - - private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container): array - { - // make each value an array of ChildDefinition - $conditionals = array_map(fn ($childDef) => [$childDef], $autoconfiguredInstanceof); - - foreach ($instanceofConditionals as $interface => $instanceofDef) { - // make sure the interface/class exists (but don't validate automaticInstanceofConditionals) - if (!$container->getReflectionClass($interface)) { - throw new RuntimeException(sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface)); - } - - if (!isset($autoconfiguredInstanceof[$interface])) { - $conditionals[$interface] = []; - } - - $conditionals[$interface][] = $instanceofDef; - } - - return $conditionals; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php deleted file mode 100644 index 7a2a69a..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Emulates the invalid behavior if the reference is not found within the - * container. - * - * @author Johannes M. Schmitt - */ -class ResolveInvalidReferencesPass implements CompilerPassInterface -{ - private ContainerBuilder $container; - private RuntimeException $signalingException; - private string $currentId; - - /** - * Process the ContainerBuilder to resolve invalid references. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->signalingException = new RuntimeException('Invalid reference.'); - - try { - foreach ($container->getDefinitions() as $this->currentId => $definition) { - $this->processValue($definition); - } - } finally { - unset($this->container, $this->signalingException); - } - } - - /** - * Processes arguments to determine invalid references. - * - * @throws RuntimeException When an invalid reference is found - */ - private function processValue(mixed $value, int $rootLevel = 0, int $level = 0): mixed - { - if ($value instanceof ServiceClosureArgument) { - $value->setValues($this->processValue($value->getValues(), 1, 1)); - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues(), $rootLevel, 1 + $level)); - } elseif ($value instanceof Definition) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $value->setArguments($this->processValue($value->getArguments(), 0)); - $value->setProperties($this->processValue($value->getProperties(), 1)); - $value->setMethodCalls($this->processValue($value->getMethodCalls(), 2)); - } elseif (\is_array($value)) { - $i = 0; - - foreach ($value as $k => $v) { - try { - if (false !== $i && $k !== $i++) { - $i = false; - } - if ($v !== $processedValue = $this->processValue($v, $rootLevel, 1 + $level)) { - $value[$k] = $processedValue; - } - } catch (RuntimeException $e) { - if ($rootLevel < $level || ($rootLevel && !$level)) { - unset($value[$k]); - } elseif ($rootLevel) { - throw $e; - } else { - $value[$k] = null; - } - } - } - - // Ensure numerically indexed arguments have sequential numeric keys. - if (false !== $i) { - $value = array_values($value); - } - } elseif ($value instanceof Reference) { - if ($this->container->hasDefinition($id = (string) $value) ? !$this->container->getDefinition($id)->hasTag('container.excluded') : $this->container->hasAlias($id)) { - return $value; - } - - $currentDefinition = $this->container->getDefinition($this->currentId); - - // resolve decorated service behavior depending on decorator service - if ($currentDefinition->innerServiceId === $id && ContainerInterface::NULL_ON_INVALID_REFERENCE === $currentDefinition->decorationOnInvalid) { - return null; - } - - $invalidBehavior = $value->getInvalidBehavior(); - - if (ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior && $value instanceof TypedReference && !$this->container->has($id)) { - $e = new ServiceNotFoundException($id, $this->currentId); - - // since the error message varies by $id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType()) - ->addError($e->getMessage()); - - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior()); - } - - // resolve invalid behavior - if (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $value = null; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - if (0 < $level || $rootLevel) { - throw $this->signalingException; - } - $value = null; - } - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php deleted file mode 100644 index 24fac73..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\VarExporter\ProxyHelper; - -/** - * Resolves named arguments to their corresponding numeric index. - * - * @author Kévin Dunglas - */ -class ResolveNamedArgumentsPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof AbstractArgument && $value->getText().'.' === $value->getTextWithContext()) { - $value->setContext(sprintf('A value found in service "%s"', $this->currentId)); - } - - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $calls = $value->getMethodCalls(); - $calls[] = ['__construct', $value->getArguments()]; - - foreach ($calls as $i => $call) { - [$method, $arguments] = $call; - $parameters = null; - $resolvedKeys = []; - $resolvedArguments = []; - - foreach ($arguments as $key => $argument) { - if ($argument instanceof AbstractArgument && $argument->getText().'.' === $argument->getTextWithContext()) { - $argument->setContext(sprintf('Argument '.(\is_int($key) ? 1 + $key : '"%3$s"').' of '.('__construct' === $method ? 'service "%s"' : 'method call "%s::%s()"'), $this->currentId, $method, $key)); - } - - if (\is_int($key)) { - $resolvedKeys[$key] = $key; - $resolvedArguments[$key] = $argument; - continue; - } - - if (null === $parameters) { - $r = $this->getReflectionMethod($value, $method); - $class = $r instanceof \ReflectionMethod ? $r->class : $this->currentId; - $method = $r->getName(); - $parameters = $r->getParameters(); - } - - if (isset($key[0]) && '$' !== $key[0] && !class_exists($key) && !interface_exists($key, false)) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key)); - } - - if (isset($key[0]) && '$' === $key[0]) { - foreach ($parameters as $j => $p) { - if ($key === '$'.$p->name) { - if ($p->isVariadic() && \is_array($argument)) { - foreach ($argument as $variadicArgument) { - $resolvedKeys[$j] = $j; - $resolvedArguments[$j++] = $variadicArgument; - } - } else { - $resolvedKeys[$j] = $p->name; - $resolvedArguments[$j] = $argument; - } - - continue 2; - } - } - - throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key)); - } - - if (null !== $argument && !$argument instanceof Reference && !$argument instanceof Definition) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of "%s" or an instance of "%s", "%s" given.', $this->currentId, $key, $class !== $this->currentId ? $class.'::'.$method : $method, Reference::class, Definition::class, get_debug_type($argument))); - } - - $typeFound = false; - foreach ($parameters as $j => $p) { - if (!\array_key_exists($j, $resolvedArguments) && ProxyHelper::exportType($p, true) === $key) { - $resolvedKeys[$j] = $p->name; - $resolvedArguments[$j] = $argument; - $typeFound = true; - } - } - - if (!$typeFound) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key)); - } - } - - if ($resolvedArguments !== $call[1]) { - ksort($resolvedArguments); - - if (!$value->isAutowired() && !array_is_list($resolvedArguments)) { - ksort($resolvedKeys); - $resolvedArguments = array_combine($resolvedKeys, $resolvedArguments); - } - - $calls[$i][1] = $resolvedArguments; - } - } - - [, $arguments] = array_pop($calls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - - foreach ($value->getProperties() as $key => $argument) { - if ($argument instanceof AbstractArgument && $argument->getText().'.' === $argument->getTextWithContext()) { - $argument->setContext(sprintf('Property "%s" of service "%s"', $key, $this->currentId)); - } - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php deleted file mode 100644 index fb79912..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Propagate the "container.no_preload" tag. - * - * @author Nicolas Grekas - */ -class ResolveNoPreloadPass extends AbstractRecursivePass -{ - private const DO_PRELOAD_TAG = '.container.do_preload'; - - protected bool $skipScalars = true; - - private array $resolvedIds = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - - try { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPublic() && !$definition->isPrivate() && !isset($this->resolvedIds[$id])) { - $this->resolvedIds[$id] = true; - $this->processValue($definition, true); - } - } - - foreach ($container->getAliases() as $alias) { - if ($alias->isPublic() && !$alias->isPrivate() && !isset($this->resolvedIds[$id = (string) $alias]) && $container->hasDefinition($id)) { - $this->resolvedIds[$id] = true; - $this->processValue($container->getDefinition($id), true); - } - } - } finally { - $this->resolvedIds = []; - $this->container = null; - } - - foreach ($container->getDefinitions() as $definition) { - if ($definition->hasTag(self::DO_PRELOAD_TAG)) { - $definition->clearTag(self::DO_PRELOAD_TAG); - } elseif (!$definition->isDeprecated() && !$definition->hasErrors()) { - $definition->addTag('container.no_preload'); - } - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->hasDefinition($id = (string) $value)) { - $definition = $this->container->getDefinition($id); - - if (!isset($this->resolvedIds[$id]) && (!$definition->isPublic() || $definition->isPrivate())) { - $this->resolvedIds[$id] = true; - $this->processValue($definition, true); - } - - return $value; - } - - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - if ($value->hasTag('container.no_preload') || $value->isDeprecated() || $value->hasErrors()) { - return $value; - } - - if ($isRoot) { - $value->addTag(self::DO_PRELOAD_TAG); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php deleted file mode 100644 index a78a6e5..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; - -/** - * Resolves all parameter placeholders "%somevalue%" to their real values. - * - * @author Johannes M. Schmitt - */ -class ResolveParameterPlaceHoldersPass extends AbstractRecursivePass -{ - protected bool $skipScalars = false; - - private ParameterBagInterface $bag; - - public function __construct( - private bool $resolveArrays = true, - private bool $throwOnResolveException = true, - ) { - } - - /** - * @return void - * - * @throws ParameterNotFoundException - */ - public function process(ContainerBuilder $container) - { - $this->bag = $container->getParameterBag(); - - try { - parent::process($container); - - $aliases = []; - foreach ($container->getAliases() as $name => $target) { - $this->currentId = $name; - $aliases[$this->bag->resolveValue($name)] = $target; - } - $container->setAliases($aliases); - } catch (ParameterNotFoundException $e) { - $e->setSourceId($this->currentId); - - throw $e; - } - - $this->bag->resolve(); - unset($this->bag); - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (\is_string($value)) { - try { - $v = $this->bag->resolveValue($value); - } catch (ParameterNotFoundException $e) { - if ($this->throwOnResolveException) { - throw $e; - } - - $v = null; - $this->container->getDefinition($this->currentId)->addError($e->getMessage()); - } - - return $this->resolveArrays || !$v || !\is_array($v) ? $v : $value; - } - if ($value instanceof Definition) { - $value->setBindings($this->processValue($value->getBindings())); - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->bag->resolveValue($value->getClass())); - } - if (isset($changes['file'])) { - $value->setFile($this->bag->resolveValue($value->getFile())); - } - $tags = $value->getTags(); - if (isset($tags['proxy'])) { - $tags['proxy'] = $this->bag->resolveValue($tags['proxy']); - $value->setTags($tags); - } - } - - $value = parent::processValue($value, $isRoot); - - if ($value && \is_array($value)) { - $value = array_combine($this->bag->resolveValue(array_keys($value)), $value); - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php deleted file mode 100644 index 16d0e9f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Replaces all references to aliases with references to the actual service. - * - * @author Johannes M. Schmitt - */ -class ResolveReferencesToAliasesPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - parent::process($container); - - foreach ($container->getAliases() as $id => $alias) { - $aliasId = (string) $alias; - $this->currentId = $id; - - if ($aliasId !== $defId = $this->getDefinitionId($aliasId, $container)) { - $container->setAlias($id, $defId)->setPublic($alias->isPublic()); - } - } - } - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - - $defId = $this->getDefinitionId($id = (string) $value, $this->container); - - return $defId !== $id ? new Reference($defId, $value->getInvalidBehavior()) : $value; - } - - private function getDefinitionId(string $id, ContainerBuilder $container): string - { - if (!$container->hasAlias($id)) { - return $id; - } - - $alias = $container->getAlias($id); - - if ($alias->isDeprecated()) { - $referencingDefinition = $container->hasDefinition($this->currentId) ? $container->getDefinition($this->currentId) : $container->getAlias($this->currentId); - if (!$referencingDefinition->isDeprecated()) { - $deprecation = $alias->getDeprecation($id); - trigger_deprecation($deprecation['package'], $deprecation['version'], rtrim($deprecation['message'], '. ').'. It is being referenced by the "%s" '.($container->hasDefinition($this->currentId) ? 'service.' : 'alias.'), $this->currentId); - } - } - - $seen = []; - do { - if (isset($seen[$id])) { - throw new ServiceCircularReferenceException($id, array_merge(array_keys($seen), [$id])); - } - - $seen[$id] = true; - $id = (string) $container->getAlias($id); - } while ($container->hasAlias($id)); - - return $id; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php deleted file mode 100644 index 9171412..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Contracts\Service\ServiceProviderInterface; - -/** - * Compiler pass to inject their service locator to service subscribers. - * - * @author Nicolas Grekas - */ -class ResolveServiceSubscribersPass extends AbstractRecursivePass -{ - protected bool $skipScalars = true; - - private ?string $serviceLocator = null; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof Reference && $this->serviceLocator && \in_array((string) $value, [ContainerInterface::class, ServiceProviderInterface::class], true)) { - return new Reference($this->serviceLocator); - } - - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $serviceLocator = $this->serviceLocator; - $this->serviceLocator = null; - - if ($value->hasTag('container.service_subscriber.locator')) { - $this->serviceLocator = $value->getTag('container.service_subscriber.locator')[0]['id']; - $value->clearTag('container.service_subscriber.locator'); - } - - try { - return parent::processValue($value); - } finally { - $this->serviceLocator = $serviceLocator; - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php deleted file mode 100644 index c01e90b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; - -/** - * Resolves all TaggedIteratorArgument arguments. - * - * @author Roland Franssen - */ -class ResolveTaggedIteratorArgumentPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if (!$value instanceof TaggedIteratorArgument) { - return parent::processValue($value, $isRoot); - } - - $exclude = $value->getExclude(); - if ($value->excludeSelf()) { - $exclude[] = $this->currentId; - } - - $value->setValues($this->findAndSortTaggedServices($value, $this->container, $exclude)); - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php deleted file mode 100644 index 8454821..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator; - -/** - * Applies the "container.service_locator" tag by wrapping references into ServiceClosureArgument instances. - * - * @author Nicolas Grekas - */ -final class ServiceLocatorTagPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - - protected bool $skipScalars = true; - - protected function processValue(mixed $value, bool $isRoot = false): mixed - { - if ($value instanceof ServiceLocatorArgument) { - if ($value->getTaggedIteratorArgument()) { - $value->setValues($this->findAndSortTaggedServices($value->getTaggedIteratorArgument(), $this->container)); - } - - return self::register($this->container, $value->getValues()); - } - - if ($value instanceof Definition) { - $value->setBindings(parent::processValue($value->getBindings())); - } - - if (!$value instanceof Definition || !$value->hasTag('container.service_locator')) { - return parent::processValue($value, $isRoot); - } - - if (!$value->getClass()) { - $value->setClass(ServiceLocator::class); - } - - $services = $value->getArguments()[0] ?? null; - - if ($services instanceof TaggedIteratorArgument) { - $services = $this->findAndSortTaggedServices($services, $this->container); - } - - if (!\is_array($services)) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId)); - } - - $i = 0; - - foreach ($services as $k => $v) { - if ($v instanceof ServiceClosureArgument) { - continue; - } - - if ($i === $k) { - if ($v instanceof Reference) { - unset($services[$k]); - $k = (string) $v; - } - ++$i; - } elseif (\is_int($k)) { - $i = null; - } - - $services[$k] = new ServiceClosureArgument($v); - } - ksort($services); - - $value->setArgument(0, $services); - - $id = '.service_locator.'.ContainerBuilder::hash($value); - - if ($isRoot) { - if ($id !== $this->currentId) { - $this->container->setAlias($id, new Alias($this->currentId, false)); - } - - return $value; - } - - $this->container->setDefinition($id, $value->setPublic(false)); - - return new Reference($id); - } - - public static function register(ContainerBuilder $container, array $map, ?string $callerId = null): Reference - { - foreach ($map as $k => $v) { - $map[$k] = new ServiceClosureArgument($v); - } - - $locator = (new Definition(ServiceLocator::class)) - ->addArgument($map) - ->addTag('container.service_locator'); - - if (null !== $callerId && $container->hasDefinition($callerId)) { - $locator->setBindings($container->getDefinition($callerId)->getBindings()); - } - - if (!$container->hasDefinition($id = '.service_locator.'.ContainerBuilder::hash($locator))) { - $container->setDefinition($id, $locator); - } - - if (null !== $callerId) { - $locatorId = $id; - // Locators are shared when they hold the exact same list of factories; - // to have them specialized per consumer service, we use a cloning factory - // to derivate customized instances from the prototype one. - $container->register($id .= '.'.$callerId, ServiceLocator::class) - ->setFactory([new Reference($locatorId), 'withContext']) - ->addTag('container.service_locator_context', ['id' => $callerId]) - ->addArgument($callerId) - ->addArgument(new Reference('service_container')); - } - - return new Reference($id); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php deleted file mode 100644 index 8310fb2..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * This is a directed graph of your services. - * - * This information can be used by your compiler passes instead of collecting - * it themselves which improves performance quite a lot. - * - * @author Johannes M. Schmitt - * - * @final - */ -class ServiceReferenceGraph -{ - /** - * @var ServiceReferenceGraphNode[] - */ - private array $nodes = []; - - public function hasNode(string $id): bool - { - return isset($this->nodes[$id]); - } - - /** - * Gets a node by identifier. - * - * @throws InvalidArgumentException if no node matches the supplied identifier - */ - public function getNode(string $id): ServiceReferenceGraphNode - { - if (!isset($this->nodes[$id])) { - throw new InvalidArgumentException(sprintf('There is no node with id "%s".', $id)); - } - - return $this->nodes[$id]; - } - - /** - * Returns all nodes. - * - * @return ServiceReferenceGraphNode[] - */ - public function getNodes(): array - { - return $this->nodes; - } - - /** - * Clears all nodes. - */ - public function clear(): void - { - foreach ($this->nodes as $node) { - $node->clear(); - } - $this->nodes = []; - } - - /** - * Connects 2 nodes together in the Graph. - */ - public function connect(?string $sourceId, mixed $sourceValue, ?string $destId, mixed $destValue = null, ?Reference $reference = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false): void - { - if (null === $sourceId || null === $destId) { - return; - } - - $sourceNode = $this->createNode($sourceId, $sourceValue); - $destNode = $this->createNode($destId, $destValue); - $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor); - - $sourceNode->addOutEdge($edge); - $destNode->addInEdge($edge); - } - - private function createNode(string $id, mixed $value): ServiceReferenceGraphNode - { - if (isset($this->nodes[$id]) && $this->nodes[$id]->getValue() === $value) { - return $this->nodes[$id]; - } - - return $this->nodes[$id] = new ServiceReferenceGraphNode($id, $value); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php deleted file mode 100644 index b607164..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -/** - * Represents an edge in your service graph. - * - * Value is typically a reference. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphEdge -{ - private ServiceReferenceGraphNode $sourceNode; - private ServiceReferenceGraphNode $destNode; - private mixed $value; - private bool $lazy; - private bool $weak; - private bool $byConstructor; - - public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, mixed $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false) - { - $this->sourceNode = $sourceNode; - $this->destNode = $destNode; - $this->value = $value; - $this->lazy = $lazy; - $this->weak = $weak; - $this->byConstructor = $byConstructor; - } - - /** - * Returns the value of the edge. - */ - public function getValue(): mixed - { - return $this->value; - } - - /** - * Returns the source node. - */ - public function getSourceNode(): ServiceReferenceGraphNode - { - return $this->sourceNode; - } - - /** - * Returns the destination node. - */ - public function getDestNode(): ServiceReferenceGraphNode - { - return $this->destNode; - } - - /** - * Returns true if the edge is lazy, meaning it's a dependency not requiring direct instantiation. - */ - public function isLazy(): bool - { - return $this->lazy; - } - - /** - * Returns true if the edge is weak, meaning it shouldn't prevent removing the target service. - */ - public function isWeak(): bool - { - return $this->weak; - } - - /** - * Returns true if the edge links with a constructor argument. - */ - public function isReferencedByConstructor(): bool - { - return $this->byConstructor; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php deleted file mode 100644 index e7f42f8..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php +++ /dev/null @@ -1,114 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Represents a node in your service graph. - * - * Value is typically a definition, or an alias. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphNode -{ - private string $id; - private array $inEdges = []; - private array $outEdges = []; - private mixed $value; - - public function __construct(string $id, mixed $value) - { - $this->id = $id; - $this->value = $value; - } - - /** - * @return void - */ - public function addInEdge(ServiceReferenceGraphEdge $edge) - { - $this->inEdges[] = $edge; - } - - /** - * @return void - */ - public function addOutEdge(ServiceReferenceGraphEdge $edge) - { - $this->outEdges[] = $edge; - } - - /** - * Checks if the value of this node is an Alias. - */ - public function isAlias(): bool - { - return $this->value instanceof Alias; - } - - /** - * Checks if the value of this node is a Definition. - */ - public function isDefinition(): bool - { - return $this->value instanceof Definition; - } - - /** - * Returns the identifier. - */ - public function getId(): string - { - return $this->id; - } - - /** - * Returns the in edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getInEdges(): array - { - return $this->inEdges; - } - - /** - * Returns the out edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getOutEdges(): array - { - return $this->outEdges; - } - - /** - * Returns the value of this Node. - */ - public function getValue(): mixed - { - return $this->value; - } - - /** - * Clears all edges. - * - * @return void - */ - public function clear() - { - $this->inEdges = $this->outEdges = []; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php b/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php deleted file mode 100644 index 75bd609..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\Processor; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; - -/** - * Validates environment variable placeholders used in extension configuration with dummy values. - * - * @author Roland Franssen - */ -class ValidateEnvPlaceholdersPass implements CompilerPassInterface -{ - private const TYPE_FIXTURES = ['array' => [], 'bool' => false, 'float' => 0.0, 'int' => 0, 'string' => '']; - - private array $extensionConfig = []; - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->extensionConfig = []; - - if (!class_exists(BaseNode::class) || !$extensions = $container->getExtensions()) { - return; - } - - $resolvingBag = $container->getParameterBag(); - if (!$resolvingBag instanceof EnvPlaceholderParameterBag) { - return; - } - - $defaultBag = new ParameterBag($resolvingBag->all()); - $envTypes = $resolvingBag->getProvidedTypes(); - foreach ($resolvingBag->getEnvPlaceholders() + $resolvingBag->getUnusedEnvPlaceholders() as $env => $placeholders) { - $values = $this->getPlaceholderValues($env, $defaultBag, $envTypes); - - foreach ($placeholders as $placeholder) { - BaseNode::setPlaceholder($placeholder, $values); - } - } - - $processor = new Processor(); - - foreach ($extensions as $name => $extension) { - if (!($extension instanceof ConfigurationExtensionInterface || $extension instanceof ConfigurationInterface) - || !$config = array_filter($container->getExtensionConfig($name)) - ) { - // this extension has no semantic configuration or was not called - continue; - } - - $config = $resolvingBag->resolveValue($config); - - if ($extension instanceof ConfigurationInterface) { - $configuration = $extension; - } elseif (null === $configuration = $extension->getConfiguration($config, $container)) { - continue; - } - - $this->extensionConfig[$name] = $processor->processConfiguration($configuration, $config); - } - - $resolvingBag->clearUnusedEnvPlaceholders(); - } - - /** - * @internal - */ - public function getExtensionConfig(): array - { - try { - return $this->extensionConfig; - } finally { - $this->extensionConfig = []; - } - } - - /** - * @param array> $envTypes - * - * @return array - */ - private function getPlaceholderValues(string $env, ParameterBag $defaultBag, array $envTypes): array - { - if (false === $i = strpos($env, ':')) { - [$default, $defaultType] = $this->getParameterDefaultAndDefaultType("env($env)", $defaultBag); - - return [$defaultType => $default]; - } - - $prefix = substr($env, 0, $i); - if ('default' === $prefix) { - $parts = explode(':', $env); - array_shift($parts); // Remove 'default' prefix - $parameter = array_shift($parts); // Retrieve and remove parameter - - [$defaultParameter, $defaultParameterType] = $this->getParameterDefaultAndDefaultType($parameter, $defaultBag); - - return [ - $defaultParameterType => $defaultParameter, - ...$this->getPlaceholderValues(implode(':', $parts), $defaultBag, $envTypes), - ]; - } - - $values = []; - foreach ($envTypes[$prefix] ?? ['string'] as $type) { - $values[$type] = self::TYPE_FIXTURES[$type] ?? null; - } - - return $values; - } - - /** - * @return array{0: string, 1: string} - */ - private function getParameterDefaultAndDefaultType(string $name, ParameterBag $defaultBag): array - { - $default = $defaultBag->has($name) ? $defaultBag->get($name) : self::TYPE_FIXTURES['string']; - $defaultType = null !== $default ? get_debug_type($default) : 'string'; - - return [$default, $defaultType]; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php b/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php deleted file mode 100644 index b066b5f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Tracks container parameters. - * - * @author Maxime Steinhausser - * - * @final - */ -class ContainerParametersResource implements ResourceInterface -{ - private array $parameters; - - /** - * @param array $parameters The container parameters to track - */ - public function __construct(array $parameters) - { - $this->parameters = $parameters; - } - - public function __toString(): string - { - return 'container_parameters_'.hash('xxh128', serialize($this->parameters)); - } - - public function getParameters(): array - { - return $this->parameters; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php b/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php deleted file mode 100644 index 619c5e1..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\Config\ResourceCheckerInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * @author Maxime Steinhausser - */ -class ContainerParametersResourceChecker implements ResourceCheckerInterface -{ - private ContainerInterface $container; - - public function __construct(ContainerInterface $container) - { - $this->container = $container; - } - - public function supports(ResourceInterface $metadata): bool - { - return $metadata instanceof ContainerParametersResource; - } - - public function isFresh(ResourceInterface $resource, int $timestamp): bool - { - foreach ($resource->getParameters() as $key => $value) { - if (!$this->container->hasParameter($key) || $this->container->getParameter($key) !== $value) { - return false; - } - } - - return true; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Container.php b/projects/priceservice/vendor/symfony/dependency-injection/Container.php deleted file mode 100644 index f21028e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Container.php +++ /dev/null @@ -1,416 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use Symfony\Component\DependencyInjection\Argument\ServiceLocator as ArgumentServiceLocator; -use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use Symfony\Contracts\Service\ResetInterface; - -// Help opcache.preload discover always-needed symbols -class_exists(RewindableGenerator::class); -class_exists(ArgumentServiceLocator::class); - -/** - * Container is a dependency injection container. - * - * It gives access to object instances (services). - * Services and parameters are simple key/pair stores. - * The container can have four possible behaviors when a service - * does not exist (or is not initialized for the last case): - * - * * EXCEPTION_ON_INVALID_REFERENCE: Throws an exception at compilation time (the default) - * * NULL_ON_INVALID_REFERENCE: Returns null - * * IGNORE_ON_INVALID_REFERENCE: Ignores the wrapping command asking for the reference - * (for instance, ignore a setter if the service does not exist) - * * IGNORE_ON_UNINITIALIZED_REFERENCE: Ignores/returns null for uninitialized services or invalid references - * * RUNTIME_EXCEPTION_ON_INVALID_REFERENCE: Throws an exception at runtime - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class Container implements ContainerInterface, ResetInterface -{ - protected $parameterBag; - protected $services = []; - protected $privates = []; - protected $fileMap = []; - protected $methodMap = []; - protected $factories = []; - protected $aliases = []; - protected $loading = []; - protected $resolving = []; - protected $syntheticIds = []; - - private array $envCache = []; - private bool $compiled = false; - private \Closure $getEnv; - - private static \Closure $make; - - public function __construct(?ParameterBagInterface $parameterBag = null) - { - $this->parameterBag = $parameterBag ?? new EnvPlaceholderParameterBag(); - } - - /** - * Compiles the container. - * - * This method does two things: - * - * * Parameter values are resolved; - * * The parameter bag is frozen. - * - * @return void - */ - public function compile() - { - $this->parameterBag->resolve(); - - $this->parameterBag = new FrozenParameterBag( - $this->parameterBag->all(), - $this->parameterBag instanceof ParameterBag ? $this->parameterBag->allDeprecated() : [] - ); - - $this->compiled = true; - } - - /** - * Returns true if the container is compiled. - */ - public function isCompiled(): bool - { - return $this->compiled; - } - - /** - * Gets the service container parameter bag. - */ - public function getParameterBag(): ParameterBagInterface - { - return $this->parameterBag; - } - - /** - * Gets a parameter. - * - * @return array|bool|string|int|float|\UnitEnum|null - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function getParameter(string $name) - { - return $this->parameterBag->get($name); - } - - public function hasParameter(string $name): bool - { - return $this->parameterBag->has($name); - } - - /** - * @return void - */ - public function setParameter(string $name, array|bool|string|int|float|\UnitEnum|null $value) - { - $this->parameterBag->set($name, $value); - } - - /** - * Sets a service. - * - * Setting a synthetic service to null resets it: has() returns false and get() - * behaves in the same way as if the service was never created. - * - * @return void - */ - public function set(string $id, ?object $service) - { - // Runs the internal initializer; used by the dumped container to include always-needed files - if (isset($this->privates['service_container']) && $this->privates['service_container'] instanceof \Closure) { - $initialize = $this->privates['service_container']; - unset($this->privates['service_container']); - $initialize($this); - } - - if ('service_container' === $id) { - throw new InvalidArgumentException('You cannot set service "service_container".'); - } - - if (!(isset($this->fileMap[$id]) || isset($this->methodMap[$id]))) { - if (isset($this->syntheticIds[$id]) || !isset($this->getRemovedIds()[$id])) { - // no-op - } elseif (null === $service) { - throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot unset it.', $id)); - } else { - throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot replace it.', $id)); - } - } elseif (isset($this->services[$id])) { - throw new InvalidArgumentException(sprintf('The "%s" service is already initialized, you cannot replace it.', $id)); - } - - if (isset($this->aliases[$id])) { - unset($this->aliases[$id]); - } - - if (null === $service) { - unset($this->services[$id]); - - return; - } - - $this->services[$id] = $service; - } - - public function has(string $id): bool - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - if (isset($this->services[$id])) { - return true; - } - if ('service_container' === $id) { - return true; - } - - return isset($this->fileMap[$id]) || isset($this->methodMap[$id]); - } - - /** - * Gets a service. - * - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): ?object - { - return $this->services[$id] - ?? $this->services[$id = $this->aliases[$id] ?? $id] - ?? ('service_container' === $id ? $this : ($this->factories[$id] ?? self::$make ??= self::make(...))($this, $id, $invalidBehavior)); - } - - /** - * Creates a service. - * - * As a separate method to allow "get()" to use the really fast `??` operator. - */ - private static function make(self $container, string $id, int $invalidBehavior): ?object - { - if (isset($container->loading[$id])) { - throw new ServiceCircularReferenceException($id, array_merge(array_keys($container->loading), [$id])); - } - - $container->loading[$id] = true; - - try { - if (isset($container->fileMap[$id])) { - return /* self::IGNORE_ON_UNINITIALIZED_REFERENCE */ 4 === $invalidBehavior ? null : $container->load($container->fileMap[$id]); - } elseif (isset($container->methodMap[$id])) { - return /* self::IGNORE_ON_UNINITIALIZED_REFERENCE */ 4 === $invalidBehavior ? null : $container->{$container->methodMap[$id]}($container); - } - } catch (\Exception $e) { - unset($container->services[$id]); - - throw $e; - } finally { - unset($container->loading[$id]); - } - - if (self::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) { - if (!$id) { - throw new ServiceNotFoundException($id); - } - if (isset($container->syntheticIds[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id)); - } - if (isset($container->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id)); - } - - $alternatives = []; - foreach ($container->getServiceIds() as $knownId) { - if ('' === $knownId || '.' === $knownId[0]) { - continue; - } - $lev = levenshtein($id, $knownId); - if ($lev <= \strlen($id) / 3 || str_contains($knownId, $id)) { - $alternatives[] = $knownId; - } - } - - throw new ServiceNotFoundException($id, null, null, $alternatives); - } - - return null; - } - - /** - * Returns true if the given service has actually been initialized. - */ - public function initialized(string $id): bool - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - - if ('service_container' === $id) { - return false; - } - - return isset($this->services[$id]); - } - - /** - * @return void - */ - public function reset() - { - $services = $this->services + $this->privates; - - foreach ($services as $service) { - try { - if ($service instanceof ResetInterface) { - $service->reset(); - } - } catch (\Throwable) { - continue; - } - } - - $this->services = $this->factories = $this->privates = []; - } - - /** - * Gets all service ids. - * - * @return string[] - */ - public function getServiceIds(): array - { - return array_map('strval', array_unique(array_merge(['service_container'], array_keys($this->fileMap), array_keys($this->methodMap), array_keys($this->aliases), array_keys($this->services)))); - } - - /** - * Gets service ids that existed at compile time. - */ - public function getRemovedIds(): array - { - return []; - } - - /** - * Camelizes a string. - */ - public static function camelize(string $id): string - { - return strtr(ucwords(strtr($id, ['_' => ' ', '.' => '_ ', '\\' => '_ '])), [' ' => '']); - } - - /** - * A string to underscore. - */ - public static function underscore(string $id): string - { - return strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], ['\\1_\\2', '\\1_\\2'], str_replace('_', '.', $id))); - } - - /** - * Creates a service by requiring its factory file. - * - * @return mixed - */ - protected function load(string $file) - { - return require $file; - } - - /** - * Fetches a variable from the environment. - * - * @throws EnvNotFoundException When the environment variable is not found and has no default value - */ - protected function getEnv(string $name): mixed - { - if (isset($this->resolving[$envName = "env($name)"])) { - throw new ParameterCircularReferenceException(array_keys($this->resolving)); - } - if (isset($this->envCache[$name]) || \array_key_exists($name, $this->envCache)) { - return $this->envCache[$name]; - } - if (!$this->has($id = 'container.env_var_processors_locator')) { - $this->set($id, new ServiceLocator([])); - } - $this->getEnv ??= $this->getEnv(...); - $processors = $this->get($id); - - if (false !== $i = strpos($name, ':')) { - $prefix = substr($name, 0, $i); - $localName = substr($name, 1 + $i); - } else { - $prefix = 'string'; - $localName = $name; - } - - $processor = $processors->has($prefix) ? $processors->get($prefix) : new EnvVarProcessor($this); - if (false === $i) { - $prefix = ''; - } - - $this->resolving[$envName] = true; - try { - return $this->envCache[$name] = $processor->getEnv($prefix, $localName, $this->getEnv); - } finally { - unset($this->resolving[$envName]); - } - } - - /** - * @internal - */ - final protected function getService(string|false $registry, string $id, ?string $method, string|bool $load): mixed - { - if ('service_container' === $id) { - return $this; - } - if (\is_string($load)) { - throw new RuntimeException($load); - } - if (null === $method) { - return false !== $registry ? $this->{$registry}[$id] ?? null : null; - } - if (false !== $registry) { - return $this->{$registry}[$id] ??= $load ? $this->load($method) : $this->{$method}($this); - } - if (!$load) { - return $this->{$method}($this); - } - - return ($factory = $this->factories[$id] ?? $this->factories['service_container'][$id] ?? null) ? $factory($this) : $this->load($method); - } - - private function __clone() - { - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareInterface.php deleted file mode 100644 index 9b3709c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * ContainerAwareInterface should be implemented by classes that depends on a Container. - * - * @author Fabien Potencier - * - * @deprecated since Symfony 6.4, use dependency injection instead - */ -interface ContainerAwareInterface -{ - /** - * Sets the container. - * - * @return void - */ - public function setContainer(?ContainerInterface $container); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareTrait.php deleted file mode 100644 index d716a58..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ContainerAwareTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -trigger_deprecation('symfony/dependency-injection', '6.4', '"%s" is deprecated, use dependency injection instead.', ContainerAwareTrait::class); - -/** - * ContainerAware trait. - * - * @author Fabien Potencier - * - * @deprecated since Symfony 6.4, use dependency injection instead - */ -trait ContainerAwareTrait -{ - /** - * @var ContainerInterface|null - */ - protected $container; - - /** - * @return void - */ - public function setContainer(?ContainerInterface $container = null) - { - if (1 > \func_num_args()) { - trigger_deprecation('symfony/dependency-injection', '6.2', 'Calling "%s::%s()" without any arguments is deprecated, pass null explicitly instead.', __CLASS__, __FUNCTION__); - } - - $this->container = $container; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ContainerBuilder.php b/projects/priceservice/vendor/symfony/dependency-injection/ContainerBuilder.php deleted file mode 100644 index 4dc7c4e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ContainerBuilder.php +++ /dev/null @@ -1,1731 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Composer\InstalledVersions; -use Symfony\Component\Config\Resource\ClassExistenceResource; -use Symfony\Component\Config\Resource\ComposerResource; -use Symfony\Component\Config\Resource\DirectoryResource; -use Symfony\Component\Config\Resource\FileExistenceResource; -use Symfony\Component\Config\Resource\FileResource; -use Symfony\Component\Config\Resource\GlobResource; -use Symfony\Component\Config\Resource\ReflectionClassResource; -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\LazyClosure; -use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Attribute\Target; -use Symfony\Component\DependencyInjection\Compiler\Compiler; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Compiler\PassConfig; -use Symfony\Component\DependencyInjection\Compiler\ResolveEnvPlaceholdersPass; -use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface; -use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\LazyServiceInstantiator; -use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; - -/** - * ContainerBuilder is a DI container that provides an API to easily describe services. - * - * @author Fabien Potencier - */ -class ContainerBuilder extends Container implements TaggedContainerInterface -{ - /** - * @var array - */ - private array $extensions = []; - - /** - * @var array - */ - private array $extensionsByNs = []; - - /** - * @var array - */ - private array $definitions = []; - - /** - * @var array - */ - private array $aliasDefinitions = []; - - /** - * @var array - */ - private array $resources = []; - - /** - * @var array>> - */ - private array $extensionConfigs = []; - - private Compiler $compiler; - private bool $trackResources; - private InstantiatorInterface $proxyInstantiator; - private ExpressionLanguage $expressionLanguage; - - /** - * @var ExpressionFunctionProviderInterface[] - */ - private array $expressionLanguageProviders = []; - - /** - * @var string[] with tag names used by findTaggedServiceIds - */ - private array $usedTags = []; - - /** - * @var string[][] a map of env var names to their placeholders - */ - private array $envPlaceholders = []; - - /** - * @var int[] a map of env vars to their resolution counter - */ - private array $envCounters = []; - - /** - * @var string[] the list of vendor directories - */ - private array $vendors; - - /** - * @var array the cache for paths being in vendor directories - */ - private array $pathsInVendor = []; - - /** - * @var array - */ - private array $autoconfiguredInstanceof = []; - - /** - * @var array - */ - private array $autoconfiguredAttributes = []; - - /** - * @var array - */ - private array $removedIds = []; - - /** - * @var array - */ - private array $removedBindingIds = []; - - private const INTERNAL_TYPES = [ - 'int' => true, - 'float' => true, - 'string' => true, - 'bool' => true, - 'resource' => true, - 'object' => true, - 'array' => true, - 'null' => true, - 'callable' => true, - 'iterable' => true, - 'mixed' => true, - ]; - - public function __construct(?ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - - $this->trackResources = interface_exists(ResourceInterface::class); - $this->setDefinition('service_container', (new Definition(ContainerInterface::class))->setSynthetic(true)->setPublic(true)); - } - - /** - * @var array - */ - private array $classReflectors; - - /** - * Sets the track resources flag. - * - * If you are not using the loaders and therefore don't want - * to depend on the Config component, set this flag to false. - * - * @return void - */ - public function setResourceTracking(bool $track) - { - $this->trackResources = $track; - } - - /** - * Checks if resources are tracked. - */ - public function isTrackingResources(): bool - { - return $this->trackResources; - } - - /** - * Sets the instantiator to be used when fetching proxies. - * - * @return void - */ - public function setProxyInstantiator(InstantiatorInterface $proxyInstantiator) - { - $this->proxyInstantiator = $proxyInstantiator; - } - - /** - * @return void - */ - public function registerExtension(ExtensionInterface $extension) - { - $this->extensions[$extension->getAlias()] = $extension; - - if (false !== $extension->getNamespace()) { - $this->extensionsByNs[$extension->getNamespace()] = $extension; - } - } - - /** - * Returns an extension by alias or namespace. - * - * @throws LogicException if the extension is not registered - */ - public function getExtension(string $name): ExtensionInterface - { - if (isset($this->extensions[$name])) { - return $this->extensions[$name]; - } - - if (isset($this->extensionsByNs[$name])) { - return $this->extensionsByNs[$name]; - } - - throw new LogicException(sprintf('Container extension "%s" is not registered.', $name)); - } - - /** - * Returns all registered extensions. - * - * @return array - */ - public function getExtensions(): array - { - return $this->extensions; - } - - /** - * Checks if we have an extension. - */ - public function hasExtension(string $name): bool - { - return isset($this->extensions[$name]) || isset($this->extensionsByNs[$name]); - } - - /** - * Returns an array of resources loaded to build this configuration. - * - * @return ResourceInterface[] - */ - public function getResources(): array - { - return array_values($this->resources); - } - - /** - * @return $this - */ - public function addResource(ResourceInterface $resource): static - { - if (!$this->trackResources) { - return $this; - } - - if ($resource instanceof GlobResource && $this->inVendors($resource->getPrefix())) { - return $this; - } - - $this->resources[(string) $resource] = $resource; - - return $this; - } - - /** - * Sets the resources for this configuration. - * - * @param array $resources - * - * @return $this - */ - public function setResources(array $resources): static - { - if (!$this->trackResources) { - return $this; - } - - $this->resources = $resources; - - return $this; - } - - /** - * Adds the object class hierarchy as resources. - * - * @param object|string $object An object instance or class name - * - * @return $this - */ - public function addObjectResource(object|string $object): static - { - if ($this->trackResources) { - if (\is_object($object)) { - $object = $object::class; - } - if (!isset($this->classReflectors[$object])) { - $this->classReflectors[$object] = new \ReflectionClass($object); - } - $class = $this->classReflectors[$object]; - - foreach ($class->getInterfaceNames() as $name) { - if (null === $interface = &$this->classReflectors[$name]) { - $interface = new \ReflectionClass($name); - } - $file = $interface->getFileName(); - if (false !== $file && file_exists($file)) { - $this->fileExists($file); - } - } - do { - $file = $class->getFileName(); - if (false !== $file && file_exists($file)) { - $this->fileExists($file); - } - foreach ($class->getTraitNames() as $name) { - $this->addObjectResource($name); - } - } while ($class = $class->getParentClass()); - } - - return $this; - } - - /** - * Retrieves the requested reflection class and registers it for resource tracking. - * - * @throws \ReflectionException when a parent class/interface/trait is not found and $throw is true - * - * @final - */ - public function getReflectionClass(?string $class, bool $throw = true): ?\ReflectionClass - { - if (!$class = $this->getParameterBag()->resolveValue($class)) { - return null; - } - - if (isset(self::INTERNAL_TYPES[$class])) { - return null; - } - - $resource = $classReflector = null; - - try { - if (isset($this->classReflectors[$class])) { - $classReflector = $this->classReflectors[$class]; - } elseif (class_exists(ClassExistenceResource::class)) { - $resource = new ClassExistenceResource($class, false); - $classReflector = $resource->isFresh(0) ? false : new \ReflectionClass($class); - } else { - $classReflector = class_exists($class) || interface_exists($class, false) ? new \ReflectionClass($class) : false; - } - } catch (\ReflectionException $e) { - if ($throw) { - throw $e; - } - } - - if ($this->trackResources) { - if (!$classReflector) { - $this->addResource($resource ?? new ClassExistenceResource($class, false)); - } elseif (!$classReflector->isInternal()) { - $path = $classReflector->getFileName(); - - if (!$this->inVendors($path)) { - $this->addResource(new ReflectionClassResource($classReflector, $this->vendors)); - } - } - $this->classReflectors[$class] = $classReflector; - } - - return $classReflector ?: null; - } - - /** - * Checks whether the requested file or directory exists and registers the result for resource tracking. - * - * @param string $path The file or directory path for which to check the existence - * @param bool|string $trackContents Whether to track contents of the given resource. If a string is passed, - * it will be used as pattern for tracking contents of the requested directory - * - * @final - */ - public function fileExists(string $path, bool|string $trackContents = true): bool - { - $exists = file_exists($path); - - if (!$this->trackResources || $this->inVendors($path)) { - return $exists; - } - - if (!$exists) { - $this->addResource(new FileExistenceResource($path)); - - return $exists; - } - - if (is_dir($path)) { - if ($trackContents) { - $this->addResource(new DirectoryResource($path, \is_string($trackContents) ? $trackContents : null)); - } else { - $this->addResource(new GlobResource($path, '/*', false)); - } - } elseif ($trackContents) { - $this->addResource(new FileResource($path)); - } - - return $exists; - } - - /** - * Loads the configuration for an extension. - * - * @param string $extension The extension alias or namespace - * @param array|null $values An array of values that customizes the extension - * - * @return $this - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - * @throws \LogicException if the extension is not registered - */ - public function loadFromExtension(string $extension, ?array $values = null): static - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot load from an extension on a compiled container.'); - } - - $namespace = $this->getExtension($extension)->getAlias(); - - $this->extensionConfigs[$namespace][] = $values ?? []; - - return $this; - } - - /** - * Adds a compiler pass. - * - * @param string $type The type of compiler pass - * @param int $priority Used to sort the passes - * - * @return $this - */ - public function addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): static - { - $this->getCompiler()->addPass($pass, $type, $priority); - - $this->addObjectResource($pass); - - return $this; - } - - /** - * Returns the compiler pass config which can then be modified. - */ - public function getCompilerPassConfig(): PassConfig - { - return $this->getCompiler()->getPassConfig(); - } - - /** - * Returns the compiler. - */ - public function getCompiler(): Compiler - { - return $this->compiler ??= new Compiler(); - } - - /** - * Sets a service. - * - * @return void - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function set(string $id, ?object $service) - { - if ($this->isCompiled() && (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())) { - // setting a synthetic service on a compiled container is alright - throw new BadMethodCallException(sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id)); - } - - unset($this->definitions[$id], $this->aliasDefinitions[$id], $this->removedIds[$id]); - - parent::set($id, $service); - } - - /** - * Removes a service definition. - * - * @return void - */ - public function removeDefinition(string $id) - { - if (isset($this->definitions[$id])) { - unset($this->definitions[$id]); - $this->removedIds[$id] = true; - } - } - - public function has(string $id): bool - { - return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || parent::has($id); - } - - /** - * @throws InvalidArgumentException when no definitions are available - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * @throws \Exception - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): ?object - { - if ($this->isCompiled() && isset($this->removedIds[$id])) { - return ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $invalidBehavior ? parent::get($id) : null; - } - - return $this->doGet($id, $invalidBehavior); - } - - private function doGet(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, ?array &$inlineServices = null, bool $isConstructorArgument = false): mixed - { - if (isset($inlineServices[$id])) { - return $inlineServices[$id]; - } - if (null === $inlineServices) { - $isConstructorArgument = true; - $inlineServices = []; - } - try { - if (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $invalidBehavior) { - return $this->privates[$id] ?? parent::get($id, $invalidBehavior); - } - if (null !== $service = $this->privates[$id] ?? parent::get($id, ContainerInterface::NULL_ON_INVALID_REFERENCE)) { - return $service; - } - } catch (ServiceCircularReferenceException $e) { - if ($isConstructorArgument) { - throw $e; - } - } - - if (!isset($this->definitions[$id]) && isset($this->aliasDefinitions[$id])) { - $alias = $this->aliasDefinitions[$id]; - - if ($alias->isDeprecated()) { - $deprecation = $alias->getDeprecation($id); - trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - - return $this->doGet((string) $alias, $invalidBehavior, $inlineServices, $isConstructorArgument); - } - - try { - $definition = $this->getDefinition($id); - } catch (ServiceNotFoundException $e) { - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $invalidBehavior) { - return null; - } - - throw $e; - } - - if ($definition->hasErrors() && $e = $definition->getErrors()) { - throw new RuntimeException(reset($e)); - } - - if ($isConstructorArgument) { - $this->loading[$id] = true; - } - - try { - return $this->createService($definition, $inlineServices, $isConstructorArgument, $id); - } finally { - if ($isConstructorArgument) { - unset($this->loading[$id]); - } - } - } - - /** - * Merges a ContainerBuilder with the current ContainerBuilder configuration. - * - * Service definitions overrides the current defined ones. - * - * But for parameters, they are overridden by the current ones. It allows - * the parameters passed to the container constructor to have precedence - * over the loaded ones. - * - * $container = new ContainerBuilder(new ParameterBag(['foo' => 'bar'])); - * $loader = new LoaderXXX($container); - * $loader->load('resource_name'); - * $container->register('foo', 'stdClass'); - * - * In the above example, even if the loaded resource defines a foo - * parameter, the value will still be 'bar' as defined in the ContainerBuilder - * constructor. - * - * @return void - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function merge(self $container) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot merge on a compiled container.'); - } - - foreach ($container->getDefinitions() as $id => $definition) { - if (!$definition->hasTag('container.excluded') || !$this->has($id)) { - $this->setDefinition($id, $definition); - } - } - $this->addAliases($container->getAliases()); - $parameterBag = $this->getParameterBag(); - $otherBag = $container->getParameterBag(); - $parameterBag->add($otherBag->all()); - - if ($parameterBag instanceof ParameterBag && $otherBag instanceof ParameterBag) { - foreach ($otherBag->allDeprecated() as $name => $deprecated) { - $parameterBag->deprecate($name, ...$deprecated); - } - } - - if ($this->trackResources) { - foreach ($container->getResources() as $resource) { - $this->addResource($resource); - } - } - - foreach ($this->extensions as $name => $extension) { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - $this->extensionConfigs[$name] = array_merge($this->extensionConfigs[$name], $container->getExtensionConfig($name)); - } - - if ($parameterBag instanceof EnvPlaceholderParameterBag && $otherBag instanceof EnvPlaceholderParameterBag) { - $envPlaceholders = $otherBag->getEnvPlaceholders(); - $parameterBag->mergeEnvPlaceholders($otherBag); - } else { - $envPlaceholders = []; - } - - foreach ($container->envCounters as $env => $count) { - if (!$count && !isset($envPlaceholders[$env])) { - continue; - } - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = $count; - } else { - $this->envCounters[$env] += $count; - } - } - - foreach ($container->getAutoconfiguredInstanceof() as $interface => $childDefinition) { - if (isset($this->autoconfiguredInstanceof[$interface])) { - throw new InvalidArgumentException(sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same class/interface.', $interface)); - } - - $this->autoconfiguredInstanceof[$interface] = $childDefinition; - } - - foreach ($container->getAutoconfiguredAttributes() as $attribute => $configurator) { - if (isset($this->autoconfiguredAttributes[$attribute])) { - throw new InvalidArgumentException(sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same attribute.', $attribute)); - } - - $this->autoconfiguredAttributes[$attribute] = $configurator; - } - } - - /** - * Returns the configuration array for the given extension. - * - * @return array> - */ - public function getExtensionConfig(string $name): array - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - return $this->extensionConfigs[$name]; - } - - /** - * Prepends a config array to the configs of the given extension. - * - * @param array $config - * - * @return void - */ - public function prependExtensionConfig(string $name, array $config) - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - array_unshift($this->extensionConfigs[$name], $config); - } - - /** - * Deprecates a service container parameter. - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function deprecateParameter(string $name, string $package, string $version, string $message = 'The parameter "%s" is deprecated.'): void - { - if (!$this->parameterBag instanceof ParameterBag) { - throw new BadMethodCallException(sprintf('The parameter bag must be an instance of "%s" to call "%s".', ParameterBag::class, __METHOD__)); - } - - $this->parameterBag->deprecate($name, $package, $version, $message); - } - - /** - * Compiles the container. - * - * This method passes the container to compiler - * passes whose job is to manipulate and optimize - * the container. - * - * The main compiler passes roughly do four things: - * - * * The extension configurations are merged; - * * Parameter values are resolved; - * * The parameter bag is frozen; - * * Extension loading is disabled. - * - * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved at build time using - * the current env var values (true), or be resolved at runtime based - * on the environment (false). In general, this should be set to "true" - * when you want to use the current ContainerBuilder directly, and to - * "false" when the container is dumped instead. - * - * @return void - */ - public function compile(bool $resolveEnvPlaceholders = false) - { - $compiler = $this->getCompiler(); - - if ($this->trackResources) { - foreach ($compiler->getPassConfig()->getPasses() as $pass) { - $this->addObjectResource($pass); - } - } - $bag = $this->getParameterBag(); - - if ($resolveEnvPlaceholders && $bag instanceof EnvPlaceholderParameterBag) { - $compiler->addPass(new ResolveEnvPlaceholdersPass(), PassConfig::TYPE_AFTER_REMOVING, -1000); - } - - $compiler->compile($this); - - foreach ($this->definitions as $id => $definition) { - if ($this->trackResources && $definition->isLazy()) { - $this->getReflectionClass($definition->getClass()); - } - } - - $this->extensionConfigs = []; - - if ($bag instanceof EnvPlaceholderParameterBag) { - if ($resolveEnvPlaceholders) { - $this->parameterBag = new ParameterBag($this->resolveEnvPlaceholders($bag->all(), true)); - } - - $this->envPlaceholders = $bag->getEnvPlaceholders(); - } - - parent::compile(); - - foreach ($this->definitions + $this->aliasDefinitions as $id => $definition) { - if (!$definition->isPublic() || $definition->isPrivate()) { - $this->removedIds[$id] = true; - } - } - } - - public function getServiceIds(): array - { - return array_map('strval', array_unique(array_merge(array_keys($this->getDefinitions()), array_keys($this->aliasDefinitions), parent::getServiceIds()))); - } - - /** - * Gets removed service or alias ids. - * - * @return array - */ - public function getRemovedIds(): array - { - return $this->removedIds; - } - - /** - * Adds the service aliases. - * - * @param array $aliases - * - * @return void - */ - public function addAliases(array $aliases) - { - foreach ($aliases as $alias => $id) { - $this->setAlias($alias, $id); - } - } - - /** - * Sets the service aliases. - * - * @param array $aliases - * - * @return void - */ - public function setAliases(array $aliases) - { - $this->aliasDefinitions = []; - $this->addAliases($aliases); - } - - /** - * Sets an alias for an existing service. - * - * @throws InvalidArgumentException if the id is not a string or an Alias - * @throws InvalidArgumentException if the alias is for itself - */ - public function setAlias(string $alias, string|Alias $id): Alias - { - if ('' === $alias || '\\' === $alias[-1] || \strlen($alias) !== strcspn($alias, "\0\r\n'")) { - throw new InvalidArgumentException(sprintf('Invalid alias id: "%s".', $alias)); - } - - if (\is_string($id)) { - $id = new Alias($id); - } - - if ($alias === (string) $id) { - throw new InvalidArgumentException(sprintf('An alias cannot reference itself, got a circular reference on "%s".', $alias)); - } - - unset($this->definitions[$alias], $this->removedIds[$alias]); - - return $this->aliasDefinitions[$alias] = $id; - } - - /** - * @return void - */ - public function removeAlias(string $alias) - { - if (isset($this->aliasDefinitions[$alias])) { - unset($this->aliasDefinitions[$alias]); - $this->removedIds[$alias] = true; - } - } - - public function hasAlias(string $id): bool - { - return isset($this->aliasDefinitions[$id]); - } - - /** - * @return array - */ - public function getAliases(): array - { - return $this->aliasDefinitions; - } - - /** - * @throws InvalidArgumentException if the alias does not exist - */ - public function getAlias(string $id): Alias - { - if (!isset($this->aliasDefinitions[$id])) { - throw new InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $id)); - } - - return $this->aliasDefinitions[$id]; - } - - /** - * Registers a service definition. - * - * This methods allows for simple registration of service definition - * with a fluid interface. - */ - public function register(string $id, ?string $class = null): Definition - { - return $this->setDefinition($id, new Definition($class)); - } - - /** - * Registers an autowired service definition. - * - * This method implements a shortcut for using setDefinition() with - * an autowired definition. - */ - public function autowire(string $id, ?string $class = null): Definition - { - return $this->setDefinition($id, (new Definition($class))->setAutowired(true)); - } - - /** - * Adds the service definitions. - * - * @param array $definitions - * - * @return void - */ - public function addDefinitions(array $definitions) - { - foreach ($definitions as $id => $definition) { - $this->setDefinition($id, $definition); - } - } - - /** - * Sets the service definitions. - * - * @param array $definitions - * - * @return void - */ - public function setDefinitions(array $definitions) - { - $this->definitions = []; - $this->addDefinitions($definitions); - } - - /** - * Gets all service definitions. - * - * @return array - */ - public function getDefinitions(): array - { - return $this->definitions; - } - - /** - * Sets a service definition. - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function setDefinition(string $id, Definition $definition): Definition - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Adding definition to a compiled container is not allowed.'); - } - - if ('' === $id || '\\' === $id[-1] || \strlen($id) !== strcspn($id, "\0\r\n'")) { - throw new InvalidArgumentException(sprintf('Invalid service id: "%s".', $id)); - } - - unset($this->aliasDefinitions[$id], $this->removedIds[$id]); - - return $this->definitions[$id] = $definition; - } - - /** - * Returns true if a service definition exists under the given identifier. - */ - public function hasDefinition(string $id): bool - { - return isset($this->definitions[$id]); - } - - /** - * Gets a service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function getDefinition(string $id): Definition - { - if (!isset($this->definitions[$id])) { - throw new ServiceNotFoundException($id); - } - - return $this->definitions[$id]; - } - - /** - * Gets a service definition by id or alias. - * - * The method "unaliases" recursively to return a Definition instance. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function findDefinition(string $id): Definition - { - $seen = []; - while (isset($this->aliasDefinitions[$id])) { - $id = (string) $this->aliasDefinitions[$id]; - - if (isset($seen[$id])) { - $seen = array_values($seen); - $seen = \array_slice($seen, array_search($id, $seen)); - $seen[] = $id; - - throw new ServiceCircularReferenceException($id, $seen); - } - - $seen[$id] = $id; - } - - return $this->getDefinition($id); - } - - /** - * Creates a service for a service definition. - * - * @throws RuntimeException When the factory definition is incomplete - * @throws RuntimeException When the service is a synthetic service - * @throws InvalidArgumentException When configure callable is not callable - */ - private function createService(Definition $definition, array &$inlineServices, bool $isConstructorArgument = false, ?string $id = null, bool|object $tryProxy = true): mixed - { - if (null === $id && isset($inlineServices[$h = spl_object_hash($definition)])) { - return $inlineServices[$h]; - } - - if ($definition instanceof ChildDefinition) { - throw new RuntimeException(sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id)); - } - - if ($definition->isSynthetic()) { - throw new RuntimeException(sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id)); - } - - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation($id); - trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - - $parameterBag = $this->getParameterBag(); - $class = $parameterBag->resolveValue($definition->getClass()) ?: (['Closure', 'fromCallable'] === $definition->getFactory() ? 'Closure' : null); - - if (['Closure', 'fromCallable'] === $definition->getFactory() && ('Closure' !== $class || $definition->isLazy())) { - $callable = $parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArgument(0))); - - if ($callable instanceof Reference || $callable instanceof Definition) { - $callable = [$callable, '__invoke']; - } - - if (\is_array($callable) && ( - 'Closure' !== $class - || $callable[0] instanceof Reference - || $callable[0] instanceof Definition && !isset($inlineServices[spl_object_hash($callable[0])]) - )) { - $initializer = function () use ($callable, &$inlineServices) { - return $this->doResolveServices($callable[0], $inlineServices); - }; - - $proxy = eval('return '.LazyClosure::getCode('$initializer', $callable, $class, $this, $id).';'); - $this->shareService($definition, $proxy, $id, $inlineServices); - - return $proxy; - } - } - - if (true === $tryProxy && $definition->isLazy() && ['Closure', 'fromCallable'] !== $definition->getFactory() - && !$tryProxy = !($proxy = $this->proxyInstantiator ??= new LazyServiceInstantiator()) || $proxy instanceof RealServiceInstantiator - ) { - $proxy = $proxy->instantiateProxy( - $this, - (clone $definition) - ->setClass($class) - ->setTags(($definition->hasTag('proxy') ? ['proxy' => $parameterBag->resolveValue($definition->getTag('proxy'))] : []) + $definition->getTags()), - $id, function ($proxy = false) use ($definition, &$inlineServices, $id) { - return $this->createService($definition, $inlineServices, true, $id, $proxy); - } - ); - $this->shareService($definition, $proxy, $id, $inlineServices); - - return $proxy; - } - - if (null !== $definition->getFile()) { - require_once $parameterBag->resolveValue($definition->getFile()); - } - - $arguments = $definition->getArguments(); - - if (null !== $factory = $definition->getFactory()) { - if (\is_array($factory)) { - $factory = [$this->doResolveServices($parameterBag->resolveValue($factory[0]), $inlineServices, $isConstructorArgument), $factory[1]]; - } elseif (!\is_string($factory)) { - throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory.', $id)); - } elseif (str_starts_with($factory, '@=')) { - $factory = fn (ServiceLocator $arguments) => $this->getExpressionLanguage()->evaluate(substr($factory, 2), ['container' => $this, 'args' => $arguments]); - $arguments = [new ServiceLocatorArgument($arguments)]; - } - } - - $arguments = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($arguments)), $inlineServices, $isConstructorArgument); - - if (null !== $id && $definition->isShared() && (isset($this->services[$id]) || isset($this->privates[$id])) && (true === $tryProxy || !$definition->isLazy())) { - return $this->services[$id] ?? $this->privates[$id]; - } - - if (!array_is_list($arguments)) { - $arguments = array_combine(array_map(fn ($k) => preg_replace('/^.*\\$/', '', $k), array_keys($arguments)), $arguments); - } - - if (null !== $factory) { - $service = $factory(...$arguments); - - if (!$definition->isDeprecated() && \is_array($factory) && \is_string($factory[0])) { - $r = new \ReflectionClass($factory[0]); - - if (0 < strpos($r->getDocComment(), "\n * @deprecated ")) { - trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" factory class. It should either be deprecated or its factory upgraded.', $id, $r->name); - } - } - } else { - $r = new \ReflectionClass($class); - - if (\is_object($tryProxy)) { - if ($r->getConstructor()) { - $tryProxy->__construct(...$arguments); - } - - $service = $tryProxy; - } else { - $service = $r->getConstructor() ? $r->newInstanceArgs($arguments) : $r->newInstance(); - } - - if (!$definition->isDeprecated() && 0 < strpos($r->getDocComment(), "\n * @deprecated ")) { - trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" class. It should either be deprecated or its implementation upgraded.', $id, $r->name); - } - } - - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (null === $lastWitherIndex && (true === $tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and if no withers are found - $this->shareService($definition, $service, $id, $inlineServices); - } - - $properties = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getProperties())), $inlineServices); - foreach ($properties as $name => $value) { - $service->$name = $value; - } - - foreach ($definition->getMethodCalls() as $k => $call) { - $service = $this->callMethod($service, $call, $inlineServices); - - if ($lastWitherIndex === $k && (true === $tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and this is the last wither - $this->shareService($definition, $service, $id, $inlineServices); - } - } - - if ($callable = $definition->getConfigurator()) { - if (\is_array($callable)) { - $callable[0] = $parameterBag->resolveValue($callable[0]); - - if ($callable[0] instanceof Reference) { - $callable[0] = $this->doGet((string) $callable[0], $callable[0]->getInvalidBehavior(), $inlineServices); - } elseif ($callable[0] instanceof Definition) { - $callable[0] = $this->createService($callable[0], $inlineServices); - } - } - - if (!\is_callable($callable)) { - throw new InvalidArgumentException(sprintf('The configure callable for class "%s" is not a callable.', get_debug_type($service))); - } - - $callable($service); - } - - return $service; - } - - /** - * Replaces service references by the real service instance and evaluates expressions. - * - * @return mixed The same value with all service references replaced by - * the real service instances and all expressions evaluated - */ - public function resolveServices(mixed $value): mixed - { - return $this->doResolveServices($value); - } - - private function doResolveServices(mixed $value, array &$inlineServices = [], bool $isConstructorArgument = false): mixed - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->doResolveServices($v, $inlineServices, $isConstructorArgument); - } - } elseif ($value instanceof ServiceClosureArgument) { - $reference = $value->getValues()[0]; - $value = fn () => $this->resolveServices($reference); - } elseif ($value instanceof IteratorArgument) { - $value = new RewindableGenerator(function () use ($value, &$inlineServices) { - foreach ($value->getValues() as $k => $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE, $inlineServices)) { - continue 2; - } - } - - yield $k => $this->doResolveServices($v, $inlineServices); - } - }, function () use ($value): int { - $count = 0; - foreach ($value->getValues() as $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE)) { - continue 2; - } - } - - ++$count; - } - - return $count; - }); - } elseif ($value instanceof ServiceLocatorArgument) { - $refs = $types = []; - foreach ($value->getValues() as $k => $v) { - $refs[$k] = [$v, null]; - $types[$k] = $v instanceof TypedReference ? $v->getType() : '?'; - } - $value = new ServiceLocator($this->resolveServices(...), $refs, $types); - } elseif ($value instanceof Reference) { - $value = $this->doGet((string) $value, $value->getInvalidBehavior(), $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Definition) { - $value = $this->createService($value, $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Parameter) { - $value = $this->getParameter((string) $value); - } elseif ($value instanceof Expression) { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this]); - } elseif ($value instanceof AbstractArgument) { - throw new RuntimeException($value->getTextWithContext()); - } - - return $value; - } - - /** - * Returns service ids for a given tag. - * - * Example: - * - * $container->register('foo')->addTag('my.tag', ['hello' => 'world']); - * - * $serviceIds = $container->findTaggedServiceIds('my.tag'); - * foreach ($serviceIds as $serviceId => $tags) { - * foreach ($tags as $tag) { - * echo $tag['hello']; - * } - * } - * - * @return array An array of tags with the tagged service as key, holding a list of attribute arrays - */ - public function findTaggedServiceIds(string $name, bool $throwOnAbstract = false): array - { - $this->usedTags[] = $name; - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - if ($definition->hasTag($name) && !$definition->hasTag('container.excluded')) { - if ($throwOnAbstract && $definition->isAbstract()) { - throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must not be abstract.', $id, $name)); - } - $tags[$id] = $definition->getTag($name); - } - } - - return $tags; - } - - /** - * Returns all tags the defined services use. - * - * @return string[] - */ - public function findTags(): array - { - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - $tags[] = array_keys($definition->getTags()); - } - - return array_unique(array_merge([], ...$tags)); - } - - /** - * Returns all tags not queried by findTaggedServiceIds. - * - * @return string[] - */ - public function findUnusedTags(): array - { - return array_values(array_diff($this->findTags(), $this->usedTags)); - } - - /** - * @return void - */ - public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) - { - $this->expressionLanguageProviders[] = $provider; - } - - /** - * @return ExpressionFunctionProviderInterface[] - */ - public function getExpressionLanguageProviders(): array - { - return $this->expressionLanguageProviders; - } - - /** - * Returns a ChildDefinition that will be used for autoconfiguring the interface/class. - */ - public function registerForAutoconfiguration(string $interface): ChildDefinition - { - if (!isset($this->autoconfiguredInstanceof[$interface])) { - $this->autoconfiguredInstanceof[$interface] = new ChildDefinition(''); - } - - return $this->autoconfiguredInstanceof[$interface]; - } - - /** - * Registers an attribute that will be used for autoconfiguring annotated classes. - * - * The third argument passed to the callable is the reflector of the - * class/method/property/parameter that the attribute targets. Using one or many of - * \ReflectionClass|\ReflectionMethod|\ReflectionProperty|\ReflectionParameter as a type-hint - * for this argument allows filtering which attributes should be passed to the callable. - * - * @template T - * - * @param class-string $attributeClass - * @param callable(ChildDefinition, T, \Reflector): void $configurator - */ - public function registerAttributeForAutoconfiguration(string $attributeClass, callable $configurator): void - { - $this->autoconfiguredAttributes[$attributeClass] = $configurator; - } - - /** - * Registers an autowiring alias that only binds to a specific argument name. - * - * The argument name is derived from $name if provided (from $id otherwise) - * using camel case: "foo.bar" or "foo_bar" creates an alias bound to - * "$fooBar"-named arguments with $type as type-hint. Such arguments will - * receive the service $id when autowiring is used. - */ - public function registerAliasForArgument(string $id, string $type, ?string $name = null): Alias - { - $parsedName = (new Target($name ??= $id))->getParsedName(); - - if (!preg_match('/^[a-zA-Z_\x7f-\xff]/', $parsedName)) { - if ($id !== $name) { - $id = sprintf(' for service "%s"', $id); - } - - throw new InvalidArgumentException(sprintf('Invalid argument name "%s"'.$id.': the first character must be a letter.', $name)); - } - - if ($parsedName !== $name) { - $this->setAlias('.'.$type.' $'.$name, $type.' $'.$parsedName); - } - - return $this->setAlias($type.' $'.$parsedName, $id); - } - - /** - * Returns an array of ChildDefinition[] keyed by interface. - * - * @return array - */ - public function getAutoconfiguredInstanceof(): array - { - return $this->autoconfiguredInstanceof; - } - - /** - * @return array - */ - public function getAutoconfiguredAttributes(): array - { - return $this->autoconfiguredAttributes; - } - - /** - * Resolves env parameter placeholders in a string or an array. - * - * @param string|true|null $format A sprintf() format returning the replacement for each env var name or - * null to resolve back to the original "%env(VAR)%" format or - * true to resolve to the actual values of the referenced env vars - * @param array &$usedEnvs Env vars found while resolving are added to this array - * - * @return mixed The value with env parameters resolved if a string or an array is passed - */ - public function resolveEnvPlaceholders(mixed $value, string|bool|null $format = null, ?array &$usedEnvs = null): mixed - { - $bag = $this->getParameterBag(); - if (true === $format ??= '%%env(%s)%%') { - $value = $bag->resolveValue($value); - } - - if ($value instanceof Definition) { - $value = (array) $value; - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[\is_string($k) ? $this->resolveEnvPlaceholders($k, $format, $usedEnvs) : $k] = $this->resolveEnvPlaceholders($v, $format, $usedEnvs); - } - - return $result; - } - - if (!\is_string($value) || 38 > \strlen($value) || false === stripos($value, 'env_')) { - return $value; - } - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - - $completed = false; - preg_match_all('/env_[a-f0-9]{16}_\w+_[a-f0-9]{32}/Ui', $value, $matches); - $usedPlaceholders = array_flip($matches[0]); - foreach ($envPlaceholders as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (isset($usedPlaceholders[$placeholder])) { - if (true === $format) { - $resolved = $bag->escapeValue($this->getEnv($env)); - } else { - $resolved = sprintf($format, $env); - } - if ($placeholder === $value) { - $value = $resolved; - $completed = true; - } else { - if (!\is_string($resolved) && !is_numeric($resolved)) { - throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "env(%s)" of type "%s" inside string value "%s".', $env, get_debug_type($resolved), $this->resolveEnvPlaceholders($value))); - } - $value = str_ireplace($placeholder, $resolved, $value); - } - $usedEnvs[$env] = $env; - $this->envCounters[$env] = isset($this->envCounters[$env]) ? 1 + $this->envCounters[$env] : 1; - - if ($completed) { - break 2; - } - } - } - } - - return $value; - } - - /** - * Get statistics about env usage. - * - * @return int[] The number of time each env vars has been resolved - */ - public function getEnvCounters(): array - { - $bag = $this->getParameterBag(); - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - - foreach ($envPlaceholders as $env => $placeholders) { - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = 0; - } - } - - return $this->envCounters; - } - - /** - * @final - */ - public function log(CompilerPassInterface $pass, string $message): void - { - $this->getCompiler()->log($pass, $this->resolveEnvPlaceholders($message)); - } - - /** - * Checks whether a class is available and will remain available in the "no-dev" mode of Composer. - * - * When parent packages are provided and if any of them is in dev-only mode, - * the class will be considered available even if it is also in dev-only mode. - * - * @throws \LogicException If dependencies have been installed with Composer 1 - */ - final public static function willBeAvailable(string $package, string $class, array $parentPackages): bool - { - if (!class_exists(InstalledVersions::class)) { - throw new \LogicException(sprintf('Calling "%s" when dependencies have been installed with Composer 1 is not supported. Consider upgrading to Composer 2.', __METHOD__)); - } - - if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { - return false; - } - - if (!InstalledVersions::isInstalled($package) || InstalledVersions::isInstalled($package, false)) { - return true; - } - - // the package is installed but in dev-mode only, check if this applies to one of the parent packages too - - $rootPackage = InstalledVersions::getRootPackage()['name'] ?? ''; - - if ('symfony/symfony' === $rootPackage) { - return true; - } - - foreach ($parentPackages as $parentPackage) { - if ($rootPackage === $parentPackage || (InstalledVersions::isInstalled($parentPackage) && !InstalledVersions::isInstalled($parentPackage, false))) { - return true; - } - } - - return false; - } - - /** - * Gets removed binding ids. - * - * @return array - * - * @internal - */ - public function getRemovedBindingIds(): array - { - return $this->removedBindingIds; - } - - /** - * Removes bindings for a service. - * - * @internal - */ - public function removeBindings(string $id): void - { - if ($this->hasDefinition($id)) { - foreach ($this->getDefinition($id)->getBindings() as $key => $binding) { - [, $bindingId] = $binding->getValues(); - $this->removedBindingIds[(int) $bindingId] = true; - } - } - } - - /** - * @return string[] - * - * @internal - */ - public static function getServiceConditionals(mixed $value): array - { - $services = []; - - if (\is_array($value)) { - foreach ($value as $v) { - $services = array_unique(array_merge($services, self::getServiceConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - - return $services; - } - - /** - * @return string[] - * - * @internal - */ - public static function getInitializedConditionals(mixed $value): array - { - $services = []; - - if (\is_array($value)) { - foreach ($value as $v) { - $services = array_unique(array_merge($services, self::getInitializedConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - - return $services; - } - - /** - * Computes a reasonably unique hash of a serializable value. - */ - public static function hash(mixed $value): string - { - $hash = substr(base64_encode(hash('sha256', serialize($value), true)), 0, 7); - - return str_replace(['/', '+'], ['.', '_'], $hash); - } - - protected function getEnv(string $name): mixed - { - $value = parent::getEnv($name); - $bag = $this->getParameterBag(); - - if (!\is_string($value) || !$bag instanceof EnvPlaceholderParameterBag) { - return $value; - } - - $envPlaceholders = $bag->getEnvPlaceholders(); - if (isset($envPlaceholders[$name][$value])) { - $bag = new ParameterBag($bag->all()); - - return $bag->unescapeValue($bag->get("env($name)")); - } - foreach ($envPlaceholders as $env => $placeholders) { - if (isset($placeholders[$value])) { - return $this->getEnv($env); - } - } - - $this->resolving["env($name)"] = true; - try { - return $bag->unescapeValue($this->resolveEnvPlaceholders($bag->escapeValue($value), true)); - } finally { - unset($this->resolving["env($name)"]); - } - } - - private function callMethod(object $service, array $call, array &$inlineServices): mixed - { - foreach (self::getServiceConditionals($call[1]) as $s) { - if (!$this->has($s)) { - return $service; - } - } - foreach (self::getInitializedConditionals($call[1]) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE, $inlineServices)) { - return $service; - } - } - - $result = $service->{$call[0]}(...$this->doResolveServices($this->getParameterBag()->unescapeValue($this->getParameterBag()->resolveValue($call[1])), $inlineServices)); - - return empty($call[2]) ? $service : $result; - } - - private function shareService(Definition $definition, mixed $service, ?string $id, array &$inlineServices): void - { - $inlineServices[$id ?? spl_object_hash($definition)] = $service; - - if (null !== $id && $definition->isShared()) { - if ($definition->isPrivate() && $this->isCompiled()) { - $this->privates[$id] = $service; - } else { - $this->services[$id] = $service; - } - unset($this->loading[$id]); - } - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders, null, $this->getEnv(...)); - } - - return $this->expressionLanguage; - } - - private function inVendors(string $path): bool - { - $path = is_file($path) ? \dirname($path) : $path; - - if (isset($this->pathsInVendor[$path])) { - return $this->pathsInVendor[$path]; - } - - $this->vendors ??= (new ComposerResource())->getVendors(); - $path = realpath($path) ?: $path; - - if (isset($this->pathsInVendor[$path])) { - return $this->pathsInVendor[$path]; - } - - foreach ($this->vendors as $vendor) { - if (str_starts_with($path, $vendor) && false !== strpbrk(substr($path, \strlen($vendor), 1), '/'.\DIRECTORY_SEPARATOR)) { - $this->addResource(new FileResource($vendor.'/composer/installed.json')); - - return $this->pathsInVendor[$path] = true; - } - } - - return $this->pathsInVendor[$path] = false; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ContainerInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/ContainerInterface.php deleted file mode 100644 index f70a8a9..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ContainerInterface.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -/** - * ContainerInterface is the interface implemented by service container classes. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -interface ContainerInterface extends PsrContainerInterface -{ - public const RUNTIME_EXCEPTION_ON_INVALID_REFERENCE = 0; - public const EXCEPTION_ON_INVALID_REFERENCE = 1; - public const NULL_ON_INVALID_REFERENCE = 2; - public const IGNORE_ON_INVALID_REFERENCE = 3; - public const IGNORE_ON_UNINITIALIZED_REFERENCE = 4; - - /** - * @return void - */ - public function set(string $id, ?object $service); - - /** - * @template B of self::*_REFERENCE - * - * @param B $invalidBehavior - * - * @psalm-return (B is self::EXCEPTION_ON_INVALID_REFERENCE|self::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE ? object : object|null) - * - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): ?object; - - public function has(string $id): bool; - - /** - * Check for whether or not a service has been initialized. - */ - public function initialized(string $id): bool; - - /** - * @return array|bool|string|int|float|\UnitEnum|null - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function getParameter(string $name); - - public function hasParameter(string $name): bool; - - /** - * @return void - */ - public function setParameter(string $name, array|bool|string|int|float|\UnitEnum|null $value); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Definition.php b/projects/priceservice/vendor/symfony/dependency-injection/Definition.php deleted file mode 100644 index 68da10e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Definition.php +++ /dev/null @@ -1,813 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; - -/** - * Definition represents a service definition. - * - * @author Fabien Potencier - */ -class Definition -{ - private const DEFAULT_DEPRECATION_TEMPLATE = 'The "%service_id%" service is deprecated. You should stop using it, as it will be removed in the future.'; - - private ?string $class = null; - private ?string $file = null; - private string|array|null $factory = null; - private bool $shared = true; - private array $deprecation = []; - private array $properties = []; - private array $calls = []; - private array $instanceof = []; - private bool $autoconfigured = false; - private string|array|null $configurator = null; - private array $tags = []; - private bool $public = false; - private bool $synthetic = false; - private bool $abstract = false; - private bool $lazy = false; - private ?array $decoratedService = null; - private bool $autowired = false; - private array $changes = []; - private array $bindings = []; - private array $errors = []; - - protected $arguments = []; - - /** - * @internal - * - * Used to store the name of the inner id when using service decoration together with autowiring - */ - public ?string $innerServiceId = null; - - /** - * @internal - * - * Used to store the behavior to follow when using service decoration and the decorated service is invalid - */ - public ?int $decorationOnInvalid = null; - - public function __construct(?string $class = null, array $arguments = []) - { - if (null !== $class) { - $this->setClass($class); - } - $this->arguments = $arguments; - } - - /** - * Returns all changes tracked for the Definition object. - */ - public function getChanges(): array - { - return $this->changes; - } - - /** - * Sets the tracked changes for the Definition object. - * - * @param array $changes An array of changes for this Definition - * - * @return $this - */ - public function setChanges(array $changes): static - { - $this->changes = $changes; - - return $this; - } - - /** - * Sets a factory. - * - * @param string|array|Reference|null $factory A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setFactory(string|array|Reference|null $factory): static - { - $this->changes['factory'] = true; - - if (\is_string($factory) && str_contains($factory, '::')) { - $factory = explode('::', $factory, 2); - } elseif ($factory instanceof Reference) { - $factory = [$factory, '__invoke']; - } - - $this->factory = $factory; - - return $this; - } - - /** - * Gets the factory. - * - * @return string|array|null The PHP function or an array containing a class/Reference and a method to call - */ - public function getFactory(): string|array|null - { - return $this->factory; - } - - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * @param string|null $renamedId The new decorated service id - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - public function setDecoratedService(?string $id, ?string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): static - { - if ($renamedId && $id === $renamedId) { - throw new InvalidArgumentException(sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id)); - } - - $this->changes['decorated_service'] = true; - - if (null === $id) { - $this->decoratedService = null; - } else { - $this->decoratedService = [$id, $renamedId, $priority]; - - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) { - $this->decoratedService[] = $invalidBehavior; - } - } - - return $this; - } - - /** - * Gets the service that this service is decorating. - * - * @return array|null An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated - */ - public function getDecoratedService(): ?array - { - return $this->decoratedService; - } - - /** - * Sets the service class. - * - * @return $this - */ - public function setClass(?string $class): static - { - $this->changes['class'] = true; - - $this->class = $class; - - return $this; - } - - /** - * Gets the service class. - */ - public function getClass(): ?string - { - return $this->class; - } - - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - public function setArguments(array $arguments): static - { - $this->arguments = $arguments; - - return $this; - } - - /** - * Sets the properties to define when creating the service. - * - * @return $this - */ - public function setProperties(array $properties): static - { - $this->properties = $properties; - - return $this; - } - - /** - * Gets the properties to define when creating the service. - */ - public function getProperties(): array - { - return $this->properties; - } - - /** - * Sets a specific property. - * - * @return $this - */ - public function setProperty(string $name, mixed $value): static - { - $this->properties[$name] = $value; - - return $this; - } - - /** - * Adds an argument to pass to the service constructor/factory method. - * - * @return $this - */ - public function addArgument(mixed $argument): static - { - $this->arguments[] = $argument; - - return $this; - } - - /** - * Replaces a specific argument. - * - * @return $this - * - * @throws OutOfBoundsException When the replaced argument does not exist - */ - public function replaceArgument(int|string $index, mixed $argument): static - { - if (0 === \count($this->arguments)) { - throw new OutOfBoundsException(sprintf('Cannot replace arguments for class "%s" if none have been configured yet.', $this->class)); - } - - if (\is_int($index) && ($index < 0 || $index > \count($this->arguments) - 1)) { - throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d] of the arguments of class "%s".', $index, \count($this->arguments) - 1, $this->class)); - } - - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class)); - } - - $this->arguments[$index] = $argument; - - return $this; - } - - /** - * Sets a specific argument. - * - * @return $this - */ - public function setArgument(int|string $key, mixed $value): static - { - $this->arguments[$key] = $value; - - return $this; - } - - /** - * Gets the arguments to pass to the service constructor/factory method. - */ - public function getArguments(): array - { - return $this->arguments; - } - - /** - * Gets an argument to pass to the service constructor/factory method. - * - * @throws OutOfBoundsException When the argument does not exist - */ - public function getArgument(int|string $index): mixed - { - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class)); - } - - return $this->arguments[$index]; - } - - /** - * Sets the methods to call after service initialization. - * - * @return $this - */ - public function setMethodCalls(array $calls = []): static - { - $this->calls = []; - foreach ($calls as $call) { - $this->addMethodCall($call[0], $call[1], $call[2] ?? false); - } - - return $this; - } - - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - public function addMethodCall(string $method, array $arguments = [], bool $returnsClone = false): static - { - if (empty($method)) { - throw new InvalidArgumentException('Method name cannot be empty.'); - } - $this->calls[] = $returnsClone ? [$method, $arguments, true] : [$method, $arguments]; - - return $this; - } - - /** - * Removes a method to call after service initialization. - * - * @return $this - */ - public function removeMethodCall(string $method): static - { - foreach ($this->calls as $i => $call) { - if ($call[0] === $method) { - unset($this->calls[$i]); - } - } - - return $this; - } - - /** - * Check if the current definition has a given method to call after service initialization. - */ - public function hasMethodCall(string $method): bool - { - foreach ($this->calls as $call) { - if ($call[0] === $method) { - return true; - } - } - - return false; - } - - /** - * Gets the methods to call after service initialization. - */ - public function getMethodCalls(): array - { - return $this->calls; - } - - /** - * Sets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @param ChildDefinition[] $instanceof - * - * @return $this - */ - public function setInstanceofConditionals(array $instanceof): static - { - $this->instanceof = $instanceof; - - return $this; - } - - /** - * Gets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @return ChildDefinition[] - */ - public function getInstanceofConditionals(): array - { - return $this->instanceof; - } - - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @return $this - */ - public function setAutoconfigured(bool $autoconfigured): static - { - $this->changes['autoconfigured'] = true; - - $this->autoconfigured = $autoconfigured; - - return $this; - } - - public function isAutoconfigured(): bool - { - return $this->autoconfigured; - } - - /** - * Sets tags for this definition. - * - * @return $this - */ - public function setTags(array $tags): static - { - $this->tags = $tags; - - return $this; - } - - /** - * Returns all tags. - */ - public function getTags(): array - { - return $this->tags; - } - - /** - * Gets a tag by name. - */ - public function getTag(string $name): array - { - return $this->tags[$name] ?? []; - } - - /** - * Adds a tag for this definition. - * - * @return $this - */ - public function addTag(string $name, array $attributes = []): static - { - $this->tags[$name][] = $attributes; - - return $this; - } - - /** - * Whether this definition has a tag with the given name. - */ - public function hasTag(string $name): bool - { - return isset($this->tags[$name]); - } - - /** - * Clears all tags for a given name. - * - * @return $this - */ - public function clearTag(string $name): static - { - unset($this->tags[$name]); - - return $this; - } - - /** - * Clears the tags for this definition. - * - * @return $this - */ - public function clearTags(): static - { - $this->tags = []; - - return $this; - } - - /** - * Sets a file to require before creating the service. - * - * @return $this - */ - public function setFile(?string $file): static - { - $this->changes['file'] = true; - - $this->file = $file; - - return $this; - } - - /** - * Gets the file to require before creating the service. - */ - public function getFile(): ?string - { - return $this->file; - } - - /** - * Sets if the service must be shared or not. - * - * @return $this - */ - public function setShared(bool $shared): static - { - $this->changes['shared'] = true; - - $this->shared = $shared; - - return $this; - } - - /** - * Whether this service is shared. - */ - public function isShared(): bool - { - return $this->shared; - } - - /** - * Sets the visibility of this service. - * - * @return $this - */ - public function setPublic(bool $boolean): static - { - $this->changes['public'] = true; - - $this->public = $boolean; - - return $this; - } - - /** - * Whether this service is public facing. - */ - public function isPublic(): bool - { - return $this->public; - } - - /** - * Whether this service is private. - */ - public function isPrivate(): bool - { - return !$this->public; - } - - /** - * Sets the lazy flag of this service. - * - * @return $this - */ - public function setLazy(bool $lazy): static - { - $this->changes['lazy'] = true; - - $this->lazy = $lazy; - - return $this; - } - - /** - * Whether this service is lazy. - */ - public function isLazy(): bool - { - return $this->lazy; - } - - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return $this - */ - public function setSynthetic(bool $boolean): static - { - $this->synthetic = $boolean; - - if (!isset($this->changes['public'])) { - $this->setPublic(true); - } - - return $this; - } - - /** - * Whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - */ - public function isSynthetic(): bool - { - return $this->synthetic; - } - - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return $this - */ - public function setAbstract(bool $boolean): static - { - $this->abstract = $boolean; - - return $this; - } - - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - */ - public function isAbstract(): bool - { - return $this->abstract; - } - - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated(string $package, string $version, string $message): static - { - if ('' !== $message) { - if (preg_match('#[\r\n]|\*/#', $message)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - - if (!str_contains($message, '%service_id%')) { - throw new InvalidArgumentException('The deprecation template must contain the "%service_id%" placeholder.'); - } - } - - $this->changes['deprecated'] = true; - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message ?: self::DEFAULT_DEPRECATION_TEMPLATE]; - - return $this; - } - - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - */ - public function isDeprecated(): bool - { - return (bool) $this->deprecation; - } - - /** - * @param string $id Service id relying on this definition - */ - public function getDeprecation(string $id): array - { - return [ - 'package' => $this->deprecation['package'], - 'version' => $this->deprecation['version'], - 'message' => str_replace('%service_id%', $id, $this->deprecation['message']), - ]; - } - - /** - * Sets a configurator to call after the service is fully initialized. - * - * @param string|array|Reference|null $configurator A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setConfigurator(string|array|Reference|null $configurator): static - { - $this->changes['configurator'] = true; - - if (\is_string($configurator) && str_contains($configurator, '::')) { - $configurator = explode('::', $configurator, 2); - } elseif ($configurator instanceof Reference) { - $configurator = [$configurator, '__invoke']; - } - - $this->configurator = $configurator; - - return $this; - } - - /** - * Gets the configurator to call after the service is fully initialized. - */ - public function getConfigurator(): string|array|null - { - return $this->configurator; - } - - /** - * Is the definition autowired? - */ - public function isAutowired(): bool - { - return $this->autowired; - } - - /** - * Enables/disables autowiring. - * - * @return $this - */ - public function setAutowired(bool $autowired): static - { - $this->changes['autowired'] = true; - - $this->autowired = $autowired; - - return $this; - } - - /** - * Gets bindings. - * - * @return BoundArgument[] - */ - public function getBindings(): array - { - return $this->bindings; - } - - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @return $this - */ - public function setBindings(array $bindings): static - { - foreach ($bindings as $key => $binding) { - if (0 < strpos($key, '$') && $key !== $k = preg_replace('/[ \t]*\$/', ' $', $key)) { - unset($bindings[$key]); - $bindings[$key = $k] = $binding; - } - if (!$binding instanceof BoundArgument) { - $bindings[$key] = new BoundArgument($binding); - } - } - - $this->bindings = $bindings; - - return $this; - } - - /** - * Add an error that occurred when building this Definition. - * - * @return $this - */ - public function addError(string|\Closure|self $error): static - { - if ($error instanceof self) { - $this->errors = array_merge($this->errors, $error->errors); - } else { - $this->errors[] = $error; - } - - return $this; - } - - /** - * Returns any errors that occurred while building this Definition. - */ - public function getErrors(): array - { - foreach ($this->errors as $i => $error) { - if ($error instanceof \Closure) { - $this->errors[$i] = (string) $error(); - } elseif (!\is_string($error)) { - $this->errors[$i] = (string) $error; - } - } - - return $this->errors; - } - - public function hasErrors(): bool - { - return (bool) $this->errors; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Dumper.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Dumper.php deleted file mode 100644 index e7407b0..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Dumper.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Dumper is the abstract class for all built-in dumpers. - * - * @author Fabien Potencier - */ -abstract class Dumper implements DumperInterface -{ - protected $container; - - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/DumperInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/DumperInterface.php deleted file mode 100644 index 616b658..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/DumperInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -/** - * DumperInterface is the interface implemented by service container dumper classes. - * - * @author Fabien Potencier - */ -interface DumperInterface -{ - /** - * Dumps the service container. - */ - public function dump(array $options = []): string|array; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php deleted file mode 100644 index 1134281..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php +++ /dev/null @@ -1,249 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\Reference; - -/** - * GraphvizDumper dumps a service container as a graphviz file. - * - * You can convert the generated dot file with the dot utility (http://www.graphviz.org/): - * - * dot -Tpng container.dot > foo.png - * - * @author Fabien Potencier - */ -class GraphvizDumper extends Dumper -{ - private array $nodes; - private array $edges; - // All values should be strings - private array $options = [ - 'graph' => ['ratio' => 'compress'], - 'node' => ['fontsize' => '11', 'fontname' => 'Arial', 'shape' => 'record'], - 'edge' => ['fontsize' => '9', 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => '0.5'], - 'node.instance' => ['fillcolor' => '#9999ff', 'style' => 'filled'], - 'node.definition' => ['fillcolor' => '#eeeeee'], - 'node.missing' => ['fillcolor' => '#ff9999', 'style' => 'filled'], - ]; - - /** - * Dumps the service container as a graphviz graph. - * - * Available options: - * - * * graph: The default options for the whole graph - * * node: The default options for nodes - * * edge: The default options for edges - * * node.instance: The default options for services that are defined directly by object instances - * * node.definition: The default options for services that are defined via service definition instances - * * node.missing: The default options for missing services - */ - public function dump(array $options = []): string - { - foreach (['graph', 'node', 'edge', 'node.instance', 'node.definition', 'node.missing'] as $key) { - if (isset($options[$key])) { - $this->options[$key] = array_merge($this->options[$key], $options[$key]); - } - } - - $this->nodes = $this->findNodes(); - - $this->edges = []; - foreach ($this->container->getDefinitions() as $id => $definition) { - $this->edges[$id] = array_merge( - $this->findEdges($id, $definition->getArguments(), true, ''), - $this->findEdges($id, $definition->getProperties(), false, '') - ); - - foreach ($definition->getMethodCalls() as $call) { - $this->edges[$id] = array_merge( - $this->edges[$id], - $this->findEdges($id, $call[1], false, $call[0].'()') - ); - } - } - - return $this->container->resolveEnvPlaceholders($this->startDot().$this->addNodes().$this->addEdges().$this->endDot(), '__ENV_%s__'); - } - - private function addNodes(): string - { - $code = ''; - foreach ($this->nodes as $id => $node) { - $aliases = $this->getAliases($id); - - $code .= sprintf(" node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id.($aliases ? ' ('.implode(', ', $aliases).')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes'])); - } - - return $code; - } - - private function addEdges(): string - { - $code = ''; - foreach ($this->edges as $id => $edges) { - foreach ($edges as $edge) { - $code .= sprintf(" node_%s -> node_%s [label=\"%s\" style=\"%s\"%s];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed', $edge['lazy'] ? ' color="#9999ff"' : ''); - } - } - - return $code; - } - - /** - * Finds all edges belonging to a specific service id. - */ - private function findEdges(string $id, array $arguments, bool $required, string $name, bool $lazy = false): array - { - $edges = []; - foreach ($arguments as $argument) { - if ($argument instanceof Parameter) { - $argument = $this->container->hasParameter($argument) ? $this->container->getParameter($argument) : null; - } elseif (\is_string($argument) && preg_match('/^%([^%]+)%$/', $argument, $match)) { - $argument = $this->container->hasParameter($match[1]) ? $this->container->getParameter($match[1]) : null; - } - - if ($argument instanceof Reference) { - $lazyEdge = $lazy; - - if (!$this->container->has((string) $argument)) { - $this->nodes[(string) $argument] = ['name' => $name, 'required' => $required, 'class' => '', 'attributes' => $this->options['node.missing']]; - } elseif ('service_container' !== (string) $argument) { - $lazyEdge = $lazy || $this->container->getDefinition((string) $argument)->isLazy(); - } - - $edges[] = [['name' => $name, 'required' => $required, 'to' => $argument, 'lazy' => $lazyEdge]]; - } elseif ($argument instanceof ArgumentInterface) { - $edges[] = $this->findEdges($id, $argument->getValues(), $required, $name, true); - } elseif ($argument instanceof Definition) { - $edges[] = $this->findEdges($id, $argument->getArguments(), $required, ''); - $edges[] = $this->findEdges($id, $argument->getProperties(), false, ''); - - foreach ($argument->getMethodCalls() as $call) { - $edges[] = $this->findEdges($id, $call[1], false, $call[0].'()'); - } - } elseif (\is_array($argument)) { - $edges[] = $this->findEdges($id, $argument, $required, $name, $lazy); - } - } - - return array_merge([], ...$edges); - } - - private function findNodes(): array - { - $nodes = []; - - $container = $this->cloneContainer(); - - foreach ($container->getDefinitions() as $id => $definition) { - $class = $definition->getClass(); - - if (str_starts_with($class, '\\')) { - $class = substr($class, 1); - } - - try { - $class = $this->container->getParameterBag()->resolveValue($class); - } catch (ParameterNotFoundException) { - } - - $nodes[$id] = ['class' => str_replace('\\', '\\\\', $class), 'attributes' => array_merge($this->options['node.definition'], ['style' => $definition->isShared() ? 'filled' : 'dotted'])]; - $container->setDefinition($id, new Definition('stdClass')); - } - - foreach ($container->getServiceIds() as $id) { - if (\array_key_exists($id, $container->getAliases())) { - continue; - } - - if (!$container->hasDefinition($id)) { - $nodes[$id] = ['class' => str_replace('\\', '\\\\', $container->get($id)::class), 'attributes' => $this->options['node.instance']]; - } - } - - return $nodes; - } - - private function cloneContainer(): ContainerBuilder - { - $parameterBag = new ParameterBag($this->container->getParameterBag()->all()); - - $container = new ContainerBuilder($parameterBag); - $container->setDefinitions($this->container->getDefinitions()); - $container->setAliases($this->container->getAliases()); - $container->setResources($this->container->getResources()); - foreach ($this->container->getExtensions() as $extension) { - $container->registerExtension($extension); - } - - return $container; - } - - private function startDot(): string - { - return sprintf("digraph sc {\n %s\n node [%s];\n edge [%s];\n\n", - $this->addOptions($this->options['graph']), - $this->addOptions($this->options['node']), - $this->addOptions($this->options['edge']) - ); - } - - private function endDot(): string - { - return "}\n"; - } - - private function addAttributes(array $attributes): string - { - $code = []; - foreach ($attributes as $k => $v) { - $code[] = sprintf('%s="%s"', $k, $v); - } - - return $code ? ', '.implode(', ', $code) : ''; - } - - private function addOptions(array $options): string - { - $code = []; - foreach ($options as $k => $v) { - $code[] = sprintf('%s="%s"', $k, $v); - } - - return implode(' ', $code); - } - - private function dotize(string $id): string - { - return preg_replace('/\W/i', '_', $id); - } - - private function getAliases(string $id): array - { - $aliases = []; - foreach ($this->container->getAliases() as $alias => $origin) { - if ($id == $origin) { - $aliases[] = $alias; - } - } - - return $aliases; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/PhpDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/PhpDumper.php deleted file mode 100644 index 164dddf..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/PhpDumper.php +++ /dev/null @@ -1,2408 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Composer\Autoload\ClassLoader; -use Symfony\Component\Config\Resource\FileResource; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\LazyClosure; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass; -use Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass; -use Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraphNode; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\LazyServiceDumper; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper; -use Symfony\Component\DependencyInjection\Loader\FileLoader; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Component\DependencyInjection\Variable; -use Symfony\Component\ErrorHandler\DebugClassLoader; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * PhpDumper dumps a service container as a PHP class. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class PhpDumper extends Dumper -{ - /** - * Characters that might appear in the generated variable name as first character. - */ - public const FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz'; - - /** - * Characters that might appear in the generated variable name as any but the first character. - */ - public const NON_FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789_'; - - /** @var \SplObjectStorage|null */ - private ?\SplObjectStorage $definitionVariables = null; - private ?array $referenceVariables = null; - private int $variableCount; - private ?\SplObjectStorage $inlinedDefinitions = null; - private ?array $serviceCalls = null; - private array $reservedVariables = ['instance', 'class', 'this', 'container']; - private ExpressionLanguage $expressionLanguage; - private ?string $targetDirRegex = null; - private int $targetDirMaxMatches; - private string $docStar; - private array $serviceIdToMethodNameMap; - private array $usedMethodNames; - private string $namespace; - private bool $asFiles; - private string $hotPathTag; - private array $preloadTags; - private bool $inlineFactories; - private bool $inlineRequires; - private array $inlinedRequires = []; - private array $circularReferences = []; - private array $singleUsePrivateIds = []; - private array $preload = []; - private bool $addGetService = false; - private array $locatedIds = []; - private string $serviceLocatorTag; - private array $exportedVariables = []; - private array $dynamicParameters = []; - private string $baseClass; - private string $class; - private DumperInterface $proxyDumper; - private bool $hasProxyDumper = true; - - public function __construct(ContainerBuilder $container) - { - if (!$container->isCompiled()) { - throw new LogicException('Cannot dump an uncompiled container.'); - } - - parent::__construct($container); - } - - /** - * Sets the dumper to be used when dumping proxies in the generated container. - * - * @return void - */ - public function setProxyDumper(DumperInterface $proxyDumper) - { - $this->proxyDumper = $proxyDumper; - $this->hasProxyDumper = !$proxyDumper instanceof NullDumper; - } - - /** - * Dumps the service container as a PHP class. - * - * Available options: - * - * * class: The class name - * * base_class: The base class name - * * namespace: The class namespace - * * as_files: To split the container in several files - * - * @return string|array A PHP class representing the service container or an array of PHP files if the "as_files" option is set - * - * @throws EnvParameterException When an env var exists but has not been dumped - */ - public function dump(array $options = []): string|array - { - $this->locatedIds = []; - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->exportedVariables = []; - $this->dynamicParameters = []; - $options = array_merge([ - 'class' => 'ProjectServiceContainer', - 'base_class' => 'Container', - 'namespace' => '', - 'as_files' => false, - 'debug' => true, - 'hot_path_tag' => 'container.hot_path', - 'preload_tags' => ['container.preload', 'container.no_preload'], - 'inline_factories_parameter' => 'container.dumper.inline_factories', // @deprecated since Symfony 6.3 - 'inline_class_loader_parameter' => 'container.dumper.inline_class_loader', // @deprecated since Symfony 6.3 - 'inline_factories' => null, - 'inline_class_loader' => null, - 'preload_classes' => [], - 'service_locator_tag' => 'container.service_locator', - 'build_time' => time(), - ], $options); - - $this->addGetService = false; - $this->namespace = $options['namespace']; - $this->asFiles = $options['as_files']; - $this->hotPathTag = $options['hot_path_tag']; - $this->preloadTags = $options['preload_tags']; - - $this->inlineFactories = false; - if (isset($options['inline_factories'])) { - $this->inlineFactories = $this->asFiles && $options['inline_factories']; - } elseif (!$options['inline_factories_parameter']) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Option "inline_factories_parameter" passed to "%s()" is deprecated, use option "inline_factories" instead.', __METHOD__); - } elseif ($this->container->hasParameter($options['inline_factories_parameter'])) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Option "inline_factories_parameter" passed to "%s()" is deprecated, use option "inline_factories" instead.', __METHOD__); - $this->inlineFactories = $this->asFiles && $this->container->getParameter($options['inline_factories_parameter']); - } - - $this->inlineRequires = $options['debug']; - if (isset($options['inline_class_loader'])) { - $this->inlineRequires = $options['inline_class_loader']; - } elseif (!$options['inline_class_loader_parameter']) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Option "inline_class_loader_parameter" passed to "%s()" is deprecated, use option "inline_class_loader" instead.', __METHOD__); - $this->inlineRequires = false; - } elseif ($this->container->hasParameter($options['inline_class_loader_parameter'])) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Option "inline_class_loader_parameter" passed to "%s()" is deprecated, use option "inline_class_loader" instead.', __METHOD__); - $this->inlineRequires = $this->container->getParameter($options['inline_class_loader_parameter']); - } - - $this->serviceLocatorTag = $options['service_locator_tag']; - $this->class = $options['class']; - - if (!str_starts_with($baseClass = $options['base_class'], '\\') && 'Container' !== $baseClass) { - $baseClass = sprintf('%s\%s', $options['namespace'] ? '\\'.$options['namespace'] : '', $baseClass); - $this->baseClass = $baseClass; - } elseif ('Container' === $baseClass) { - $this->baseClass = Container::class; - } else { - $this->baseClass = $baseClass; - } - - $this->initializeMethodNamesMap('Container' === $baseClass ? Container::class : $baseClass); - - if (!$this->hasProxyDumper) { - (new AnalyzeServiceReferencesPass(true, false))->process($this->container); - (new CheckCircularReferencesPass())->process($this->container); - } - - $this->analyzeReferences(); - $this->docStar = $options['debug'] ? '*' : ''; - - if (!empty($options['file']) && is_dir($dir = \dirname($options['file']))) { - // Build a regexp where the first root dirs are mandatory, - // but every other sub-dir is optional up to the full path in $dir - // Mandate at least 1 root dir and not more than 5 optional dirs. - - $dir = explode(\DIRECTORY_SEPARATOR, realpath($dir)); - $i = \count($dir); - - if (2 + (int) ('\\' === \DIRECTORY_SEPARATOR) <= $i) { - $regex = ''; - $lastOptionalDir = $i > 8 ? $i - 5 : (2 + (int) ('\\' === \DIRECTORY_SEPARATOR)); - $this->targetDirMaxMatches = $i - $lastOptionalDir; - - while (--$i >= $lastOptionalDir) { - $regex = sprintf('(%s%s)?', preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex); - } - - do { - $regex = preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#').$regex; - } while (0 < --$i); - - $this->targetDirRegex = '#(^|file://|[:;, \|\r\n])'.preg_quote($dir[0], '#').$regex.'#'; - } - } - - $proxyClasses = $this->inlineFactories ? $this->generateProxyClasses() : null; - - if ($options['preload_classes']) { - $this->preload = array_combine($options['preload_classes'], $options['preload_classes']); - } - - $code = $this->addDefaultParametersMethod(); - $code = - $this->startClass($options['class'], $baseClass, $this->inlineFactories && $proxyClasses). - $this->addServices($services). - $this->addDeprecatedAliases(). - $code - ; - - $proxyClasses ??= $this->generateProxyClasses(); - - if ($this->addGetService) { - $code = preg_replace( - "/\r?\n\r?\n public function __construct.+?\\{\r?\n/s", - "\n protected \Closure \$getService;$0", - $code, - 1 - ); - } - - if ($this->asFiles) { - $fileTemplate = <<docStar} - * @internal This class has been auto-generated by the Symfony Dependency Injection Component. - */ -class %s extends {$options['class']} -{%s} - -EOF; - $files = []; - $preloadedFiles = []; - $ids = $this->container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = true; - } - } - if ($ids = array_keys($ids)) { - sort($ids); - $c = "doExport($id)." => true,\n"; - } - $files['removed-ids.php'] = $c."];\n"; - } - - if (!$this->inlineFactories) { - foreach ($this->generateServiceFiles($services) as $file => [$c, $preload]) { - $files[$file] = sprintf($fileTemplate, substr($file, 0, -4), $c); - - if ($preload) { - $preloadedFiles[$file] = $file; - } - } - foreach ($proxyClasses as $file => $c) { - $files[$file] = "endClass(); - - if ($this->inlineFactories && $proxyClasses) { - $files['proxy-classes.php'] = " $c) { - $code["Container{$hash}/{$file}"] = substr_replace($c, "namespace ? "\nnamespace {$this->namespace};\n" : ''; - $time = $options['build_time']; - $id = hash('crc32', $hash.$time); - $this->asFiles = false; - - if ($this->preload && null !== $autoloadFile = $this->getAutoloadFile()) { - $autoloadFile = trim($this->export($autoloadFile), '()\\'); - - $preloadedFiles = array_reverse($preloadedFiles); - if ('' !== $preloadedFiles = implode("';\nrequire __DIR__.'/", $preloadedFiles)) { - $preloadedFiles = "require __DIR__.'/$preloadedFiles';\n"; - } - - $code[$options['class'].'.preload.php'] = <<= 7.4 when preloading is desired - -use Symfony\Component\DependencyInjection\Dumper\Preloader; - -if (in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { - return; -} - -require $autoloadFile; -(require __DIR__.'/{$options['class']}.php')->set(\\Container{$hash}\\{$options['class']}::class, null); -$preloadedFiles -\$classes = []; - -EOF; - - foreach ($this->preload as $class) { - if (!$class || str_contains($class, '$') || \in_array($class, ['int', 'float', 'string', 'bool', 'resource', 'object', 'array', 'null', 'callable', 'iterable', 'mixed', 'void', 'never'], true)) { - continue; - } - if (!(class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) || (new \ReflectionClass($class))->isUserDefined()) { - $code[$options['class'].'.preload.php'] .= sprintf("\$classes[] = '%s';\n", $class); - } - } - - $code[$options['class'].'.preload.php'] .= <<<'EOF' - -$preloaded = Preloader::preload($classes); - -EOF; - } - - $code[$options['class'].'.php'] = << '$hash', - 'container.build_id' => '$id', - 'container.build_time' => $time, - 'container.runtime_mode' => \\in_array(\\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? 'web=0' : 'web=1', -], __DIR__.\\DIRECTORY_SEPARATOR.'Container{$hash}'); - -EOF; - } else { - $code .= $this->endClass(); - foreach ($proxyClasses as $c) { - $code .= $c; - } - } - - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->circularReferences = []; - $this->locatedIds = []; - $this->exportedVariables = []; - $this->dynamicParameters = []; - $this->preload = []; - - $unusedEnvs = []; - foreach ($this->container->getEnvCounters() as $env => $use) { - if (!$use) { - $unusedEnvs[] = $env; - } - } - if ($unusedEnvs) { - throw new EnvParameterException($unusedEnvs, null, 'Environment variables "%s" are never used. Please, check your container\'s configuration.'); - } - - return $code; - } - - /** - * Retrieves the currently set proxy dumper or instantiates one. - */ - private function getProxyDumper(): DumperInterface - { - return $this->proxyDumper ??= new LazyServiceDumper($this->class); - } - - private function analyzeReferences(): void - { - (new AnalyzeServiceReferencesPass(false, $this->hasProxyDumper))->process($this->container); - $checkedNodes = []; - $this->circularReferences = []; - $this->singleUsePrivateIds = []; - foreach ($this->container->getCompiler()->getServiceReferenceGraph()->getNodes() as $id => $node) { - if (!$node->getValue() instanceof Definition) { - continue; - } - - if ($this->isSingleUsePrivateNode($node)) { - $this->singleUsePrivateIds[$id] = $id; - } - - $this->collectCircularReferences($id, $node->getOutEdges(), $checkedNodes); - } - - $this->container->getCompiler()->getServiceReferenceGraph()->clear(); - $this->singleUsePrivateIds = array_diff_key($this->singleUsePrivateIds, $this->circularReferences); - } - - private function collectCircularReferences(string $sourceId, array $edges, array &$checkedNodes, array &$loops = [], array $path = [], bool $byConstructor = true): void - { - $path[$sourceId] = $byConstructor; - $checkedNodes[$sourceId] = true; - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - if ($sourceId === $id || !$node->getValue() instanceof Definition || $edge->isWeak()) { - continue; - } - - if (isset($path[$id])) { - $loop = null; - $loopByConstructor = $edge->isReferencedByConstructor() && !$edge->isLazy(); - $pathInLoop = [$id, []]; - foreach ($path as $k => $pathByConstructor) { - if (null !== $loop) { - $loop[] = $k; - $pathInLoop[1][$k] = $pathByConstructor; - $loops[$k][] = &$pathInLoop; - $loopByConstructor = $loopByConstructor && $pathByConstructor; - } elseif ($k === $id) { - $loop = []; - } - } - $this->addCircularReferences($id, $loop, $loopByConstructor); - } elseif (!isset($checkedNodes[$id])) { - $this->collectCircularReferences($id, $node->getOutEdges(), $checkedNodes, $loops, $path, $edge->isReferencedByConstructor() && !$edge->isLazy()); - } elseif (isset($loops[$id])) { - // we already had detected loops for this edge - // let's check if we have a common ancestor in one of the detected loops - foreach ($loops[$id] as [$first, $loopPath]) { - if (!isset($path[$first])) { - continue; - } - // We have a common ancestor, let's fill the current path - $fillPath = null; - foreach ($loopPath as $k => $pathByConstructor) { - if (null !== $fillPath) { - $fillPath[$k] = $pathByConstructor; - } elseif ($k === $id) { - $fillPath = $path; - $fillPath[$k] = $pathByConstructor; - } - } - - // we can now build the loop - $loop = null; - $loopByConstructor = $edge->isReferencedByConstructor() && !$edge->isLazy(); - foreach ($fillPath as $k => $pathByConstructor) { - if (null !== $loop) { - $loop[] = $k; - $loopByConstructor = $loopByConstructor && $pathByConstructor; - } elseif ($k === $first) { - $loop = []; - } - } - $this->addCircularReferences($first, $loop, $loopByConstructor); - break; - } - } - } - unset($path[$sourceId]); - } - - private function addCircularReferences(string $sourceId, array $currentPath, bool $byConstructor): void - { - $currentId = $sourceId; - $currentPath = array_reverse($currentPath); - $currentPath[] = $currentId; - foreach ($currentPath as $parentId) { - if (empty($this->circularReferences[$parentId][$currentId])) { - $this->circularReferences[$parentId][$currentId] = $byConstructor; - } - - $currentId = $parentId; - } - } - - private function collectLineage(string $class, array &$lineage): void - { - if (isset($lineage[$class])) { - return; - } - if (!$r = $this->container->getReflectionClass($class, false)) { - return; - } - if (is_a($class, $this->baseClass, true)) { - return; - } - $file = $r->getFileName(); - if (str_ends_with($file, ') : eval()\'d code')) { - $file = substr($file, 0, strrpos($file, '(', -17)); - } - if (!$file || $this->doExport($file) === $exportedFile = $this->export($file)) { - return; - } - - $lineage[$class] = substr($exportedFile, 1, -1); - - if ($parent = $r->getParentClass()) { - $this->collectLineage($parent->name, $lineage); - } - - foreach ($r->getInterfaces() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - - foreach ($r->getTraits() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - - unset($lineage[$class]); - $lineage[$class] = substr($exportedFile, 1, -1); - } - - private function generateProxyClasses(): array - { - $proxyClasses = []; - $alreadyGenerated = []; - $definitions = $this->container->getDefinitions(); - $strip = '' === $this->docStar; - $proxyDumper = $this->getProxyDumper(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition = $this->isProxyCandidate($definition, $asGhostObject, $id)) { - continue; - } - if (isset($alreadyGenerated[$asGhostObject][$class = $definition->getClass()])) { - continue; - } - $alreadyGenerated[$asGhostObject][$class] = true; - - foreach (array_column($definition->getTag('proxy'), 'interface') ?: [$class] as $r) { - if (!$r = $this->container->getReflectionClass($r)) { - continue; - } - do { - $file = $r->getFileName(); - if (str_ends_with($file, ') : eval()\'d code')) { - $file = substr($file, 0, strrpos($file, '(', -17)); - } - if (is_file($file)) { - $this->container->addResource(new FileResource($file)); - } - $r = $r->getParentClass() ?: null; - } while ($r?->isUserDefined()); - } - - if ("\n" === $proxyCode = "\n".$proxyDumper->getProxyCode($definition, $id)) { - continue; - } - - if ($this->inlineRequires) { - $lineage = []; - $this->collectLineage($class, $lineage); - - $code = ''; - foreach (array_diff_key(array_flip($lineage), $this->inlinedRequires) as $file => $class) { - if ($this->inlineFactories) { - $this->inlinedRequires[$file] = true; - } - $code .= sprintf("include_once %s;\n", $file); - } - - $proxyCode = $code.$proxyCode; - } - - if ($strip) { - $proxyCode = "inlineRequires ? substr($proxyCode, \strlen($code)) : $proxyCode; - $i = strpos($proxyClass, 'class'); - $proxyClass = substr($proxyClass, 6 + $i, strpos($proxyClass, ' ', 7 + $i) - $i - 6); - - if ($this->asFiles || $this->namespace) { - $proxyCode .= "\nif (!\\class_exists('$proxyClass', false)) {\n \\class_alias(__NAMESPACE__.'\\\\$proxyClass', '$proxyClass', false);\n}\n"; - } - - $proxyClasses[$proxyClass.'.php'] = $proxyCode; - } - - return $proxyClasses; - } - - private function addServiceInclude(string $cId, Definition $definition, bool $isProxyCandidate): string - { - $code = ''; - - if ($this->inlineRequires && (!$this->isHotPath($definition) || $isProxyCandidate)) { - $lineage = []; - foreach ($this->inlinedDefinitions as $def) { - if (!$def->isDeprecated()) { - foreach ($this->getClasses($def, $cId) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - - foreach ($this->serviceCalls as $id => [$callCount, $behavior]) { - if ('service_container' !== $id && $id !== $cId - && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $behavior - && $this->container->has($id) - && $this->isTrivialInstance($def = $this->container->findDefinition($id)) - ) { - foreach ($this->getClasses($def, $cId) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - - foreach (array_diff_key(array_flip($lineage), $this->inlinedRequires) as $file => $class) { - $code .= sprintf(" include_once %s;\n", $file); - } - } - - foreach ($this->inlinedDefinitions as $def) { - if ($file = $def->getFile()) { - $file = $this->dumpValue($file); - $file = '(' === $file[0] ? substr($file, 1, -1) : $file; - $code .= sprintf(" include_once %s;\n", $file); - } - } - - if ('' !== $code) { - $code .= "\n"; - } - - return $code; - } - - /** - * @throws InvalidArgumentException - * @throws RuntimeException - */ - private function addServiceInstance(string $id, Definition $definition, bool $isSimpleInstance): string - { - $class = $this->dumpValue($definition->getClass()); - - if (str_starts_with($class, "'") && !str_contains($class, '$') && !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) { - throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id)); - } - - $asGhostObject = false; - $isProxyCandidate = $this->isProxyCandidate($definition, $asGhostObject, $id); - $instantiation = ''; - - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (!$isProxyCandidate && $definition->isShared() && !isset($this->singleUsePrivateIds[$id]) && null === $lastWitherIndex) { - $instantiation = sprintf('$container->%s[%s] = %s', $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id), $isSimpleInstance ? '' : '$instance'); - } elseif (!$isSimpleInstance) { - $instantiation = '$instance'; - } - - $return = ''; - if ($isSimpleInstance) { - $return = 'return '; - } else { - $instantiation .= ' = '; - } - - return $this->addNewInstance($definition, ' '.$return.$instantiation, $id, $asGhostObject); - } - - private function isTrivialInstance(Definition $definition): bool - { - if ($definition->hasErrors()) { - return true; - } - if ($definition->isSynthetic() || $definition->getFile() || $definition->getMethodCalls() || $definition->getProperties() || $definition->getConfigurator()) { - return false; - } - if ($definition->isDeprecated() || $definition->isLazy() || $definition->getFactory() || 3 < \count($definition->getArguments())) { - return false; - } - - foreach ($definition->getArguments() as $arg) { - if (!$arg || $arg instanceof Parameter) { - continue; - } - if (\is_array($arg) && 3 >= \count($arg)) { - foreach ($arg as $k => $v) { - if ($this->dumpValue($k) !== $this->dumpValue($k, false)) { - return false; - } - if (!$v || $v instanceof Parameter) { - continue; - } - if ($v instanceof Reference && $this->container->has($id = (string) $v) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } - if (!\is_scalar($v) || $this->dumpValue($v) !== $this->dumpValue($v, false)) { - return false; - } - } - } elseif ($arg instanceof Reference && $this->container->has($id = (string) $arg) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } elseif (!\is_scalar($arg) || $this->dumpValue($arg) !== $this->dumpValue($arg, false)) { - return false; - } - } - - return true; - } - - private function addServiceMethodCalls(Definition $definition, string $variableName, ?string $sharedNonLazyId): string - { - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - $calls = ''; - foreach ($definition->getMethodCalls() as $k => $call) { - $arguments = []; - foreach ($call[1] as $i => $value) { - $arguments[] = (\is_string($i) ? $i.': ' : '').$this->dumpValue($value); - } - - $witherAssignation = ''; - - if ($call[2] ?? false) { - if (null !== $sharedNonLazyId && $lastWitherIndex === $k && 'instance' === $variableName) { - $witherAssignation = sprintf('$container->%s[\'%s\'] = ', $definition->isPublic() ? 'services' : 'privates', $sharedNonLazyId); - } - $witherAssignation .= sprintf('$%s = ', $variableName); - } - - $calls .= $this->wrapServiceConditionals($call[1], sprintf(" %s\$%s->%s(%s);\n", $witherAssignation, $variableName, $call[0], implode(', ', $arguments))); - } - - return $calls; - } - - private function addServiceProperties(Definition $definition, string $variableName = 'instance'): string - { - $code = ''; - foreach ($definition->getProperties() as $name => $value) { - $code .= sprintf(" \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value)); - } - - return $code; - } - - private function addServiceConfigurator(Definition $definition, string $variableName = 'instance'): string - { - if (!$callable = $definition->getConfigurator()) { - return ''; - } - - if (\is_array($callable)) { - if ($callable[0] instanceof Reference - || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0])) - ) { - return sprintf(" %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (str_starts_with($class, "'") && !str_contains($class, '$')) { - return sprintf(" %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName); - } - - if (str_starts_with($class, 'new ')) { - return sprintf(" (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - return sprintf(" [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - return sprintf(" %s(\$%s);\n", $callable, $variableName); - } - - private function addService(string $id, Definition $definition): array - { - $this->definitionVariables = new \SplObjectStorage(); - $this->referenceVariables = []; - $this->variableCount = 0; - $this->referenceVariables[$id] = new Variable('instance'); - - $return = []; - - if ($class = $definition->getClass()) { - $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class); - $return[] = sprintf(str_starts_with($class, '%') ? '@return object A %1$s instance' : '@return \%s', ltrim($class, '\\')); - } elseif ($factory = $definition->getFactory()) { - if (\is_string($factory) && !str_starts_with($factory, '@=')) { - $return[] = sprintf('@return object An instance returned by %s()', $factory); - } elseif (\is_array($factory) && (\is_string($factory[0]) || $factory[0] instanceof Definition || $factory[0] instanceof Reference)) { - $class = $factory[0] instanceof Definition ? $factory[0]->getClass() : (string) $factory[0]; - $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class); - $return[] = sprintf('@return object An instance returned by %s::%s()', $class, $factory[1]); - } - } - - if ($definition->isDeprecated()) { - if ($return && str_starts_with($return[\count($return) - 1], '@return')) { - $return[] = ''; - } - - $deprecation = $definition->getDeprecation($id); - $return[] = sprintf('@deprecated %s', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '').$deprecation['message']); - } - - $return = str_replace("\n * \n", "\n *\n", implode("\n * ", $return)); - $return = $this->container->resolveEnvPlaceholders($return); - - $shared = $definition->isShared() ? ' shared' : ''; - $public = $definition->isPublic() ? 'public' : 'private'; - $autowired = $definition->isAutowired() ? ' autowired' : ''; - $asFile = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition); - $methodName = $this->generateMethodName($id); - - if ($asFile || $definition->isLazy()) { - $lazyInitialization = ', $lazyLoad = true'; - } else { - $lazyInitialization = ''; - } - - $code = <<docStar} - * Gets the $public '$id'$shared$autowired service. - * - * $return -EOF; - $code = str_replace('*/', ' ', $code).<<hasErrors() && $e = $definition->getErrors()) { - $code .= sprintf(" throw new RuntimeException(%s);\n", $this->export(reset($e))); - } else { - $this->serviceCalls = []; - $this->inlinedDefinitions = $this->getDefinitionsFromArguments([$definition], null, $this->serviceCalls); - - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation($id); - $code .= sprintf(" trigger_deprecation(%s, %s, %s);\n\n", $this->export($deprecation['package']), $this->export($deprecation['version']), $this->export($deprecation['message'])); - } elseif ($definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1])) { - foreach ($this->inlinedDefinitions as $def) { - foreach ($this->getClasses($def, $id) as $class) { - $this->preload[$class] = $class; - } - } - } - - if (!$definition->isShared()) { - $factory = sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - } - - $asGhostObject = false; - if ($isProxyCandidate = $this->isProxyCandidate($definition, $asGhostObject, $id)) { - $definition = $isProxyCandidate; - - if (!$definition->isShared()) { - $code .= sprintf(' %s ??= ', $factory); - - if ($definition->isPublic()) { - $code .= sprintf("fn () => self::%s(\$container);\n\n", $asFile ? 'do' : $methodName); - } else { - $code .= sprintf("self::%s(...);\n\n", $asFile ? 'do' : $methodName); - } - } - $lazyLoad = $asGhostObject ? '$proxy' : 'false'; - - $factoryCode = $asFile ? sprintf('self::do($container, %s)', $lazyLoad) : sprintf('self::%s($container, %s)', $methodName, $lazyLoad); - $code .= $this->getProxyDumper()->getProxyFactoryCode($definition, $id, $factoryCode); - } - - $c = $this->addServiceInclude($id, $definition, null !== $isProxyCandidate); - - if ('' !== $c && $isProxyCandidate && !$definition->isShared()) { - $c = implode("\n", array_map(fn ($line) => $line ? ' '.$line : $line, explode("\n", $c))); - $code .= " static \$include = true;\n\n"; - $code .= " if (\$include) {\n"; - $code .= $c; - $code .= " \$include = false;\n"; - $code .= " }\n\n"; - } else { - $code .= $c; - } - - $c = $this->addInlineService($id, $definition); - - if (!$isProxyCandidate && !$definition->isShared()) { - $c = implode("\n", array_map(fn ($line) => $line ? ' '.$line : $line, explode("\n", $c))); - $lazyloadInitialization = $definition->isLazy() ? ', $lazyLoad = true' : ''; - - $c = sprintf(" %s = function (\$container%s) {\n%s };\n\n return %1\$s(\$container);\n", $factory, $lazyloadInitialization, $c); - } - - $code .= $c; - } - - $code .= " }\n"; - - $this->definitionVariables = $this->inlinedDefinitions = null; - $this->referenceVariables = $this->serviceCalls = null; - - return [$file, $code]; - } - - private function addInlineVariables(string $id, Definition $definition, array $arguments, bool $forConstructor): string - { - $code = ''; - - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $code .= $this->addInlineVariables($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Reference) { - $code .= $this->addInlineReference($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Definition) { - $code .= $this->addInlineService($id, $definition, $argument, $forConstructor); - } - } - - return $code; - } - - private function addInlineReference(string $id, Definition $definition, string $targetId, bool $forConstructor): string - { - while ($this->container->hasAlias($targetId)) { - $targetId = (string) $this->container->getAlias($targetId); - } - - [$callCount, $behavior] = $this->serviceCalls[$targetId]; - - if ($id === $targetId) { - return $this->addInlineService($id, $definition, $definition); - } - - if ('service_container' === $targetId || isset($this->referenceVariables[$targetId])) { - return ''; - } - - if ($this->container->hasDefinition($targetId) && ($def = $this->container->getDefinition($targetId)) && !$def->isShared()) { - return ''; - } - - $hasSelfRef = isset($this->circularReferences[$id][$targetId]) && !isset($this->definitionVariables[$definition]) && !($this->hasProxyDumper && $definition->isLazy()); - - if ($hasSelfRef && !$forConstructor && !$forConstructor = !$this->circularReferences[$id][$targetId]) { - $code = $this->addInlineService($id, $definition, $definition); - } else { - $code = ''; - } - - if (isset($this->referenceVariables[$targetId]) || (2 > $callCount && (!$hasSelfRef || !$forConstructor))) { - return $code; - } - - $name = $this->getNextVariableName(); - $this->referenceVariables[$targetId] = new Variable($name); - - $reference = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $behavior ? new Reference($targetId, $behavior) : null; - $code .= sprintf(" \$%s = %s;\n", $name, $this->getServiceCall($targetId, $reference)); - - if (!$hasSelfRef || !$forConstructor) { - return $code; - } - - $code .= sprintf(<<<'EOTXT' - - if (isset($container->%s[%s])) { - return $container->%1$s[%2$s]; - } - -EOTXT - , - $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', - $this->doExport($id) - ); - - return $code; - } - - private function addInlineService(string $id, Definition $definition, ?Definition $inlineDef = null, bool $forConstructor = true): string - { - $code = ''; - - if ($isSimpleInstance = $isRootInstance = null === $inlineDef) { - foreach ($this->serviceCalls as $targetId => [$callCount, $behavior, $byConstructor]) { - if ($byConstructor && isset($this->circularReferences[$id][$targetId]) && !$this->circularReferences[$id][$targetId] && !($this->hasProxyDumper && $definition->isLazy())) { - $code .= $this->addInlineReference($id, $definition, $targetId, $forConstructor); - } - } - } - - if (isset($this->definitionVariables[$inlineDef ??= $definition])) { - return $code; - } - - $arguments = [$inlineDef->getArguments(), $inlineDef->getFactory()]; - - $code .= $this->addInlineVariables($id, $definition, $arguments, $forConstructor); - - if ($arguments = array_filter([$inlineDef->getProperties(), $inlineDef->getMethodCalls(), $inlineDef->getConfigurator()])) { - $isSimpleInstance = false; - } elseif ($definition !== $inlineDef && 2 > $this->inlinedDefinitions[$inlineDef]) { - return $code; - } - - $asGhostObject = false; - $isProxyCandidate = $this->isProxyCandidate($inlineDef, $asGhostObject, $id); - - if (isset($this->definitionVariables[$inlineDef])) { - $isSimpleInstance = false; - } else { - $name = $definition === $inlineDef ? 'instance' : $this->getNextVariableName(); - $this->definitionVariables[$inlineDef] = new Variable($name); - $code .= '' !== $code ? "\n" : ''; - - if ('instance' === $name) { - $code .= $this->addServiceInstance($id, $definition, $isSimpleInstance); - } else { - $code .= $this->addNewInstance($inlineDef, ' $'.$name.' = ', $id); - } - - if ('' !== $inline = $this->addInlineVariables($id, $definition, $arguments, false)) { - $code .= "\n".$inline."\n"; - } elseif ($arguments && 'instance' === $name) { - $code .= "\n"; - } - - $code .= $this->addServiceProperties($inlineDef, $name); - $code .= $this->addServiceMethodCalls($inlineDef, $name, !$isProxyCandidate && $inlineDef->isShared() && !isset($this->singleUsePrivateIds[$id]) ? $id : null); - $code .= $this->addServiceConfigurator($inlineDef, $name); - } - - if (!$isRootInstance || $isSimpleInstance) { - return $code; - } - - return $code."\n return \$instance;\n"; - } - - private function addServices(?array &$services = null): string - { - $publicServices = $privateServices = ''; - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic()) { - $services[$id] = $this->addService($id, $definition); - } elseif ($definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1])) { - $services[$id] = null; - - foreach ($this->getClasses($definition, $id) as $class) { - $this->preload[$class] = $class; - } - } - } - - foreach ($definitions as $id => $definition) { - if (!([$file, $code] = $services[$id]) || null !== $file) { - continue; - } - if ($definition->isPublic()) { - $publicServices .= $code; - } elseif (!$this->isTrivialInstance($definition) || isset($this->locatedIds[$id])) { - $privateServices .= $code; - } - } - - return $publicServices.$privateServices; - } - - private function generateServiceFiles(array $services): iterable - { - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (([$file, $code] = $services[$id]) && null !== $file && ($definition->isPublic() || !$this->isTrivialInstance($definition) || isset($this->locatedIds[$id]))) { - yield $file => [$code, $definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1]) && !$definition->isDeprecated() && !$definition->hasErrors()]; - } - } - } - - private function addNewInstance(Definition $definition, string $return = '', ?string $id = null, bool $asGhostObject = false): string - { - $tail = $return ? str_repeat(')', substr_count($return, '(') - substr_count($return, ')')).";\n" : ''; - - if (BaseServiceLocator::class === $definition->getClass() && $definition->hasTag($this->serviceLocatorTag)) { - $arguments = []; - foreach ($definition->getArgument(0) as $k => $argument) { - $arguments[$k] = $argument->getValues()[0]; - } - - return $return.$this->dumpValue(new ServiceLocatorArgument($arguments)).$tail; - } - - $arguments = []; - foreach ($definition->getArguments() as $i => $value) { - $arguments[] = (\is_string($i) ? $i.': ' : '').$this->dumpValue($value); - } - - if ($callable = $definition->getFactory()) { - if ('current' === $callable && [0] === array_keys($definition->getArguments()) && \is_array($value) && [0] === array_keys($value)) { - return $return.$this->dumpValue($value[0]).$tail; - } - - if (['Closure', 'fromCallable'] === $callable) { - $callable = $definition->getArgument(0); - if ($callable instanceof ServiceClosureArgument) { - return $return.$this->dumpValue($callable).$tail; - } - - $arguments = ['...']; - - if ($callable instanceof Reference || $callable instanceof Definition) { - $callable = [$callable, '__invoke']; - } - } - - if (\is_string($callable) && str_starts_with($callable, '@=')) { - return $return.sprintf('(($args = %s) ? (%s) : null)', - $this->dumpValue(new ServiceLocatorArgument($definition->getArguments())), - $this->getExpressionLanguage()->compile(substr($callable, 2), ['container' => 'container', 'args' => 'args']) - ).$tail; - } - - if (!\is_array($callable)) { - return $return.sprintf('%s(%s)', $this->dumpLiteralClass($this->dumpValue($callable)), $arguments ? implode(', ', $arguments) : '').$tail; - } - - if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $callable[1])) { - throw new RuntimeException(sprintf('Cannot dump definition because of invalid factory method (%s).', $callable[1] ?: 'n/a')); - } - - if (['...'] === $arguments && ('Closure' !== ($class = $definition->getClass() ?: 'Closure') || $definition->isLazy() && ( - $callable[0] instanceof Reference - || ($callable[0] instanceof Definition && !$this->definitionVariables->contains($callable[0])) - ))) { - $initializer = 'fn () => '.$this->dumpValue($callable[0]); - - return $return.LazyClosure::getCode($initializer, $callable, $class, $this->container, $id).$tail; - } - - if ($callable[0] instanceof Reference - || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0])) - ) { - return $return.sprintf('%s->%s(%s)', $this->dumpValue($callable[0]), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (str_starts_with($class, "'") && !str_contains($class, '$')) { - if ("''" === $class) { - throw new RuntimeException(sprintf('Cannot dump definition: "%s" service is defined to be created by a factory but is missing the service reference, did you forget to define the factory service id or class?', $id ? 'The "'.$id.'"' : 'inline')); - } - - return $return.sprintf('%s::%s(%s)', $this->dumpLiteralClass($class), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - if (str_starts_with($class, 'new ')) { - return $return.sprintf('(%s)->%s(%s)', $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - return $return.sprintf("[%s, '%s'](%s)", $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - if (null === $class = $definition->getClass()) { - throw new RuntimeException('Cannot dump definitions which have no class nor factory.'); - } - - if (!$asGhostObject) { - return $return.sprintf('new %s(%s)', $this->dumpLiteralClass($this->dumpValue($class)), implode(', ', $arguments)).$tail; - } - - if (!method_exists($this->container->getParameterBag()->resolveValue($class), '__construct')) { - return $return.'$lazyLoad'.$tail; - } - - return $return.sprintf('($lazyLoad->__construct(%s) && false ?: $lazyLoad)', implode(', ', $arguments)).$tail; - } - - private function startClass(string $class, string $baseClass, bool $hasProxyClasses): string - { - $namespaceLine = !$this->asFiles && $this->namespace ? "\nnamespace {$this->namespace};\n" : ''; - - $code = <<docStar} - * @internal This class has been auto-generated by the Symfony Dependency Injection Component. - */ -class $class extends $baseClass -{ - private const DEPRECATED_PARAMETERS = []; - - protected \$parameters = []; - - public function __construct() - { - -EOF; - $code = str_replace(" private const DEPRECATED_PARAMETERS = [];\n\n", $this->addDeprecatedParameters(), $code); - if ($this->asFiles) { - $code = str_replace('__construct()', '__construct(private array $buildParameters = [], protected string $containerDir = __DIR__)', $code); - - if (null !== $this->targetDirRegex) { - $code = str_replace('$parameters = []', "\$targetDir;\n protected \$parameters = []", $code); - $code .= ' $this->targetDir = \\dirname($containerDir);'."\n"; - } - } - - if (Container::class !== $this->baseClass) { - $r = $this->container->getReflectionClass($this->baseClass, false); - if (null !== $r - && (null !== $constructor = $r->getConstructor()) - && 0 === $constructor->getNumberOfRequiredParameters() - && Container::class !== $constructor->getDeclaringClass()->name - ) { - $code .= " parent::__construct();\n"; - $code .= " \$this->parameterBag = null;\n\n"; - } - } - - if ($this->container->getParameterBag()->all()) { - $code .= " \$this->parameters = \$this->getDefaultParameters();\n\n"; - } - $code .= " \$this->services = \$this->privates = [];\n"; - - $code .= $this->addSyntheticIds(); - $code .= $this->addMethodMap(); - $code .= $this->asFiles && !$this->inlineFactories ? $this->addFileMap() : ''; - $code .= $this->addAliases(); - $code .= $this->addInlineRequires($hasProxyClasses); - $code .= <<addRemovedIds(); - - if ($this->asFiles && !$this->inlineFactories) { - $code .= <<<'EOF' - - protected function load($file, $lazyLoad = true): mixed - { - if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) { - return $class::do($this, $lazyLoad); - } - - if ('.' === $file[-4]) { - $class = substr($class, 0, -4); - } else { - $file .= '.php'; - } - - $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file; - - return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service; - } - -EOF; - } - - foreach ($this->container->getDefinitions() as $definition) { - if (!$definition->isLazy() || !$this->hasProxyDumper) { - continue; - } - - if ($this->asFiles && !$this->inlineFactories) { - $proxyLoader = "class_exists(\$class, false) || require __DIR__.'/'.\$class.'.php';\n\n "; - } else { - $proxyLoader = ''; - } - - $code .= <<container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if ($definition->isSynthetic() && 'service_container' !== $id) { - $code .= ' '.$this->doExport($id)." => true,\n"; - } - } - - return $code ? " \$this->syntheticIds = [\n{$code} ];\n" : ''; - } - - private function addRemovedIds(): string - { - $ids = $this->container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = true; - } - } - if (!$ids) { - return ''; - } - if ($this->asFiles) { - $code = "require \$this->containerDir.\\DIRECTORY_SEPARATOR.'removed-ids.php'"; - } else { - $code = ''; - $ids = array_keys($ids); - sort($ids); - foreach ($ids as $id) { - if (preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id)) { - continue; - } - $code .= ' '.$this->doExport($id)." => true,\n"; - } - - $code = "[\n{$code} ]"; - } - - return <<container->getParameterBag()) instanceof ParameterBag) { - return ''; - } - - if (!$deprecated = $bag->allDeprecated()) { - return ''; - } - $code = ''; - ksort($deprecated); - foreach ($deprecated as $param => $deprecation) { - $code .= ' '.$this->doExport($param).' => ['.implode(', ', array_map($this->doExport(...), $deprecation))."],\n"; - } - - return " private const DEPRECATED_PARAMETERS = [\n{$code} ];\n\n"; - } - - private function addMethodMap(): string - { - $code = ''; - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && (!$this->asFiles || $this->inlineFactories || $this->isHotPath($definition))) { - $code .= ' '.$this->doExport($id).' => '.$this->doExport($this->generateMethodName($id)).",\n"; - } - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - if (!$id->isDeprecated()) { - continue; - } - $code .= ' '.$this->doExport($alias).' => '.$this->doExport($this->generateMethodName($alias)).",\n"; - } - - return $code ? " \$this->methodMap = [\n{$code} ];\n" : ''; - } - - private function addFileMap(): string - { - $code = ''; - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && !$this->isHotPath($definition)) { - $code .= sprintf(" %s => '%s',\n", $this->doExport($id), $this->generateMethodName($id)); - } - } - - return $code ? " \$this->fileMap = [\n{$code} ];\n" : ''; - } - - private function addAliases(): string - { - if (!$aliases = $this->container->getAliases()) { - return "\n \$this->aliases = [];\n"; - } - - $code = " \$this->aliases = [\n"; - ksort($aliases); - foreach ($aliases as $alias => $id) { - if ($id->isDeprecated()) { - continue; - } - - $id = (string) $id; - while (isset($aliases[$id])) { - $id = (string) $aliases[$id]; - } - $code .= ' '.$this->doExport($alias).' => '.$this->doExport($id).",\n"; - } - - return $code." ];\n"; - } - - private function addDeprecatedAliases(): string - { - $code = ''; - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $definition) { - if (!$definition->isDeprecated()) { - continue; - } - $public = $definition->isPublic() ? 'public' : 'private'; - $id = (string) $definition; - $methodNameAlias = $this->generateMethodName($alias); - $idExported = $this->export($id); - $deprecation = $definition->getDeprecation($alias); - $packageExported = $this->export($deprecation['package']); - $versionExported = $this->export($deprecation['version']); - $messageExported = $this->export($deprecation['message']); - $code .= <<docStar} - * Gets the $public '$alias' alias. - * - * @return object The "$id" service. - */ - protected static function {$methodNameAlias}(\$container) - { - trigger_deprecation($packageExported, $versionExported, $messageExported); - - return \$container->get($idExported); - } - -EOF; - } - - return $code; - } - - private function addInlineRequires(bool $hasProxyClasses): string - { - $lineage = []; - $hotPathServices = $this->hotPathTag && $this->inlineRequires ? $this->container->findTaggedServiceIds($this->hotPathTag) : []; - - foreach ($hotPathServices as $id => $tags) { - $definition = $this->container->getDefinition($id); - - if ($definition->isLazy() && $this->hasProxyDumper) { - continue; - } - - $inlinedDefinitions = $this->getDefinitionsFromArguments([$definition]); - - foreach ($inlinedDefinitions as $def) { - foreach ($this->getClasses($def, $id) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - - $code = ''; - - foreach ($lineage as $file) { - if (!isset($this->inlinedRequires[$file])) { - $this->inlinedRequires[$file] = true; - $code .= sprintf("\n include_once %s;", $file); - } - } - - if ($hasProxyClasses) { - $code .= "\n include_once __DIR__.'/proxy-classes.php';"; - } - - return $code ? sprintf("\n \$this->privates['service_container'] = static function (\$container) {%s\n };\n", $code) : ''; - } - - private function addDefaultParametersMethod(): string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - - $php = []; - $dynamicPhp = []; - - foreach ($this->container->getParameterBag()->all() as $key => $value) { - if ($key !== $resolvedKey = $this->container->resolveEnvPlaceholders($key)) { - throw new InvalidArgumentException(sprintf('Parameter name cannot use env parameters: "%s".', $resolvedKey)); - } - $hasEnum = false; - $export = $this->exportParameters([$value], '', 12, $hasEnum); - $export = explode('0 => ', substr(rtrim($export, " ]\n"), 2, -1), 2); - - if ($hasEnum || preg_match("/\\\$container->(?:getEnv\('(?:[-.\w\\\\]*+:)*+\w*+'\)|targetDir\.'')/", $export[1])) { - $dynamicPhp[$key] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); - $this->dynamicParameters[$key] = true; - } else { - $php[] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); - } - } - $parameters = sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', 8)); - - $code = <<<'EOF' - - public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (isset(self::DEPRECATED_PARAMETERS[$name])) { - trigger_deprecation(...self::DEPRECATED_PARAMETERS[$name]); - } - - if (isset($this->buildParameters[$name])) { - return $this->buildParameters[$name]; - } - - if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) { - throw new ParameterNotFoundException($name); - } - if (isset($this->loadedDynamicParameters[$name])) { - return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - - return $this->parameters[$name]; - } - - public function hasParameter(string $name): bool - { - if (isset($this->buildParameters[$name])) { - return true; - } - - return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters); - } - - public function setParameter(string $name, $value): void - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - public function getParameterBag(): ParameterBagInterface - { - if (!isset($this->parameterBag)) { - $parameters = $this->parameters; - foreach ($this->loadedDynamicParameters as $name => $loaded) { - $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - foreach ($this->buildParameters as $name => $value) { - $parameters[$name] = $value; - } - $this->parameterBag = new FrozenParameterBag($parameters, self::DEPRECATED_PARAMETERS); - } - - return $this->parameterBag; - } - -EOF; - - if (!$this->asFiles) { - $code = preg_replace('/^.*buildParameters.*\n.*\n.*\n\n?/m', '', $code); - } - - if (!($bag = $this->container->getParameterBag()) instanceof ParameterBag || !$bag->allDeprecated()) { - $code = preg_replace("/\n.*DEPRECATED_PARAMETERS.*\n.*\n.*\n/m", '', $code, 1); - $code = str_replace(', self::DEPRECATED_PARAMETERS', '', $code); - } - - if ($dynamicPhp) { - $loadedDynamicParameters = $this->exportParameters(array_combine(array_keys($dynamicPhp), array_fill(0, \count($dynamicPhp), false)), '', 8); - $getDynamicParameter = <<<'EOF' - $container = $this; - $value = match ($name) { -%s - default => throw new ParameterNotFoundException($name), - }; - $this->loadedDynamicParameters[$name] = true; - - return $this->dynamicParameters[$name] = $value; -EOF; - $getDynamicParameter = sprintf($getDynamicParameter, implode("\n", $dynamicPhp)); - } else { - $loadedDynamicParameters = '[]'; - $getDynamicParameter = str_repeat(' ', 8).'throw new ParameterNotFoundException($name);'; - } - - $code .= << $value) { - if (\is_array($value)) { - $value = $this->exportParameters($value, $path.'/'.$key, $indent + 4, $hasEnum); - } elseif ($value instanceof ArgumentInterface) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain special arguments. "%s" found in "%s".', get_debug_type($value), $path.'/'.$key)); - } elseif ($value instanceof Variable) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path.'/'.$key)); - } elseif ($value instanceof Definition) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path.'/'.$key)); - } elseif ($value instanceof Reference) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path.'/'.$key)); - } elseif ($value instanceof Expression) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path.'/'.$key)); - } elseif ($value instanceof \UnitEnum) { - $hasEnum = true; - $value = sprintf('\%s::%s', $value::class, $value->name); - } else { - $value = $this->export($value); - } - - $php[] = sprintf('%s%s => %s,', str_repeat(' ', $indent), $this->export($key), $value); - } - - return sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', $indent - 4)); - } - - private function endClass(): string - { - return <<<'EOF' -} - -EOF; - } - - private function wrapServiceConditionals(mixed $value, string $code): string - { - if (!$condition = $this->getServiceConditionals($value)) { - return $code; - } - - // re-indent the wrapped code - $code = implode("\n", array_map(fn ($line) => $line ? ' '.$line : $line, explode("\n", $code))); - - return sprintf(" if (%s) {\n%s }\n", $condition, $code); - } - - private function getServiceConditionals(mixed $value): string - { - $conditions = []; - foreach (ContainerBuilder::getInitializedConditionals($value) as $service) { - if (!$this->container->hasDefinition($service)) { - return 'false'; - } - $conditions[] = sprintf('isset($container->%s[%s])', $this->container->getDefinition($service)->isPublic() ? 'services' : 'privates', $this->doExport($service)); - } - foreach (ContainerBuilder::getServiceConditionals($value) as $service) { - if ($this->container->hasDefinition($service) && !$this->container->getDefinition($service)->isPublic()) { - continue; - } - - $conditions[] = sprintf('$container->has(%s)', $this->doExport($service)); - } - - if (!$conditions) { - return ''; - } - - return implode(' && ', $conditions); - } - - private function getDefinitionsFromArguments(array $arguments, ?\SplObjectStorage $definitions = null, array &$calls = [], ?bool $byConstructor = null): \SplObjectStorage - { - $definitions ??= new \SplObjectStorage(); - - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $this->getDefinitionsFromArguments($argument, $definitions, $calls, $byConstructor); - } elseif ($argument instanceof Reference) { - $id = (string) $argument; - - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if (!isset($calls[$id])) { - $calls[$id] = [0, $argument->getInvalidBehavior(), $byConstructor]; - } else { - $calls[$id][1] = min($calls[$id][1], $argument->getInvalidBehavior()); - } - - ++$calls[$id][0]; - } elseif (!$argument instanceof Definition) { - // no-op - } elseif (isset($definitions[$argument])) { - $definitions[$argument] = 1 + $definitions[$argument]; - } else { - $definitions[$argument] = 1; - $arguments = [$argument->getArguments(), $argument->getFactory()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null === $byConstructor || $byConstructor); - $arguments = [$argument->getProperties(), $argument->getMethodCalls(), $argument->getConfigurator()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null !== $byConstructor && $byConstructor); - } - } - - return $definitions; - } - - /** - * @throws RuntimeException - */ - private function dumpValue(mixed $value, bool $interpolate = true): string - { - if (\is_array($value)) { - if ($value && $interpolate && false !== $param = array_search($value, $this->container->getParameterBag()->all(), true)) { - return $this->dumpValue("%$param%"); - } - $isList = array_is_list($value); - $code = []; - foreach ($value as $k => $v) { - $code[] = $isList ? $this->dumpValue($v, $interpolate) : sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate)); - } - - return sprintf('[%s]', implode(', ', $code)); - } elseif ($value instanceof ArgumentInterface) { - $scope = [$this->definitionVariables, $this->referenceVariables]; - $this->definitionVariables = $this->referenceVariables = null; - - try { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - $code = $this->dumpValue($value, $interpolate); - - $returnedType = ''; - if ($value instanceof TypedReference) { - $returnedType = sprintf(': %s\%s', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $value->getInvalidBehavior() ? '' : '?', str_replace(['|', '&'], ['|\\', '&\\'], $value->getType())); - } - - $attribute = ''; - if ($value instanceof Reference) { - $attribute = 'name: '.$this->dumpValue((string) $value, $interpolate); - - if ($this->container->hasDefinition($value) && ($class = $this->container->findDefinition($value)->getClass()) && $class !== (string) $value) { - $attribute .= ', class: '.$this->dumpValue($class, $interpolate); - } - - $attribute = sprintf('#[\Closure(%s)] ', $attribute); - } - - return sprintf('%sfn ()%s => %s', $attribute, $returnedType, $code); - } - - if ($value instanceof IteratorArgument) { - if (!$values = $value->getValues()) { - return 'new RewindableGenerator(fn () => new \EmptyIterator(), 0)'; - } - - $code = []; - $code[] = 'new RewindableGenerator(function () use ($container) {'; - - $operands = [0]; - foreach ($values as $k => $v) { - ($c = $this->getServiceConditionals($v)) ? $operands[] = "(int) ($c)" : ++$operands[0]; - $v = $this->wrapServiceConditionals($v, sprintf(" yield %s => %s;\n", $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate))); - foreach (explode("\n", $v) as $v) { - if ($v) { - $code[] = ' '.$v; - } - } - } - - $code[] = sprintf(' }, %s)', \count($operands) > 1 ? 'fn () => '.implode(' + ', $operands) : $operands[0]); - - return implode("\n", $code); - } - - if ($value instanceof ServiceLocatorArgument) { - $serviceMap = ''; - $serviceTypes = ''; - foreach ($value->getValues() as $k => $v) { - if (!$v instanceof Reference) { - $serviceMap .= sprintf("\n %s => [%s],", $this->export($k), $this->dumpValue($v)); - $serviceTypes .= sprintf("\n %s => '?',", $this->export($k)); - continue; - } - $id = (string) $v; - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - $definition = $this->container->getDefinition($id); - $load = !($definition->hasErrors() && $e = $definition->getErrors()) ? $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) : reset($e); - $serviceMap .= sprintf("\n %s => [%s, %s, %s, %s],", - $this->export($k), - $this->export($definition->isShared() ? ($definition->isPublic() ? 'services' : 'privates') : false), - $this->doExport($id), - $this->export(ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $v->getInvalidBehavior() && !\is_string($load) ? $this->generateMethodName($id) : null), - $this->export($load) - ); - $serviceTypes .= sprintf("\n %s => %s,", $this->export($k), $this->export($v instanceof TypedReference ? $v->getType() : '?')); - $this->locatedIds[$id] = true; - } - $this->addGetService = true; - - return sprintf('new \%s($container->getService ??= $container->getService(...), [%s%s], [%s%s])', ServiceLocator::class, $serviceMap, $serviceMap ? "\n " : '', $serviceTypes, $serviceTypes ? "\n " : ''); - } - } finally { - [$this->definitionVariables, $this->referenceVariables] = $scope; - } - } elseif ($value instanceof Definition) { - if ($value->hasErrors() && $e = $value->getErrors()) { - return sprintf('throw new RuntimeException(%s)', $this->export(reset($e))); - } - if ($this->definitionVariables?->contains($value)) { - return $this->dumpValue($this->definitionVariables[$value], $interpolate); - } - if ($value->getMethodCalls()) { - throw new RuntimeException('Cannot dump definitions which have method calls.'); - } - if ($value->getProperties()) { - throw new RuntimeException('Cannot dump definitions which have properties.'); - } - if (null !== $value->getConfigurator()) { - throw new RuntimeException('Cannot dump definitions which have a configurator.'); - } - - return $this->addNewInstance($value); - } elseif ($value instanceof Variable) { - return '$'.$value; - } elseif ($value instanceof Reference) { - $id = (string) $value; - - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if (null !== $this->referenceVariables && isset($this->referenceVariables[$id])) { - return $this->dumpValue($this->referenceVariables[$id], $interpolate); - } - - return $this->getServiceCall($id, $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionLanguage()->compile((string) $value, ['container' => 'container']); - } elseif ($value instanceof Parameter) { - return $this->dumpParameter($value); - } elseif (true === $interpolate && \is_string($value)) { - if (preg_match('/^%([^%]+)%$/', $value, $match)) { - // we do this to deal with non string values (Boolean, integer, ...) - // the preg_replace_callback converts them to strings - return $this->dumpParameter($match[1]); - } else { - $replaceParameters = fn ($match) => "'.".$this->dumpParameter($match[2]).".'"; - - $code = str_replace('%%', '%', preg_replace_callback('/(?export($value))); - - return $code; - } - } elseif ($value instanceof \UnitEnum) { - return sprintf('\%s::%s', $value::class, $value->name); - } elseif ($value instanceof AbstractArgument) { - throw new RuntimeException($value->getTextWithContext()); - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value))); - } - - return $this->export($value); - } - - /** - * Dumps a string to a literal (aka PHP Code) class value. - * - * @throws RuntimeException - */ - private function dumpLiteralClass(string $class): string - { - if (str_contains($class, '$')) { - return sprintf('${($_ = %s) && false ?: "_"}', $class); - } - if (!str_starts_with($class, "'") || !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) { - throw new RuntimeException(sprintf('Cannot dump definition because of invalid class name (%s).', $class ?: 'n/a')); - } - - $class = substr(str_replace('\\\\', '\\', $class), 1, -1); - - return str_starts_with($class, '\\') ? $class : '\\'.$class; - } - - private function dumpParameter(string $name): string - { - if (!$this->container->hasParameter($name) || ($this->dynamicParameters[$name] ?? false)) { - return sprintf('$container->getParameter(%s)', $this->doExport($name)); - } - - $value = $this->container->getParameter($name); - $dumpedValue = $this->dumpValue($value, false); - - if (!$value || !\is_array($value)) { - return $dumpedValue; - } - - return sprintf('$container->parameters[%s]', $this->doExport($name)); - } - - private function getServiceCall(string $id, ?Reference $reference = null): string - { - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if ('service_container' === $id) { - return '$container'; - } - - if ($this->container->hasDefinition($id) && $definition = $this->container->getDefinition($id)) { - if ($definition->isSynthetic()) { - $code = sprintf('$container->get(%s%s)', $this->doExport($id), null !== $reference ? ', '.$reference->getInvalidBehavior() : ''); - } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - $code = 'null'; - if (!$definition->isShared()) { - return $code; - } - } elseif ($this->isTrivialInstance($definition)) { - if ($definition->hasErrors() && $e = $definition->getErrors()) { - return sprintf('throw new RuntimeException(%s)', $this->export(reset($e))); - } - $code = $this->addNewInstance($definition, '', $id); - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - return sprintf('($container->%s[%s] ??= %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - $code = "($code)"; - } else { - $code = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) ? "\$container->load('%s')" : 'self::%s($container)'; - $code = sprintf($code, $this->generateMethodName($id)); - - if (!$definition->isShared()) { - $factory = sprintf('$container->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - $code = sprintf('(isset(%s) ? %1$s($container) : %s)', $factory, $code); - } - } - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - $code = sprintf('($container->%s[%s] ?? %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - - return $code; - } - if (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - return 'null'; - } - if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $reference->getInvalidBehavior()) { - $code = sprintf('$container->get(%s, ContainerInterface::NULL_ON_INVALID_REFERENCE)', $this->doExport($id)); - } else { - $code = sprintf('$container->get(%s)', $this->doExport($id)); - } - - return sprintf('($container->services[%s] ?? %s)', $this->doExport($id), $code); - } - - /** - * Initializes the method names map to avoid conflicts with the Container methods. - */ - private function initializeMethodNamesMap(string $class): void - { - $this->serviceIdToMethodNameMap = []; - $this->usedMethodNames = []; - - if ($reflectionClass = $this->container->getReflectionClass($class)) { - foreach ($reflectionClass->getMethods() as $method) { - $this->usedMethodNames[strtolower($method->getName())] = true; - } - } - } - - /** - * @throws InvalidArgumentException - */ - private function generateMethodName(string $id): string - { - if (isset($this->serviceIdToMethodNameMap[$id])) { - return $this->serviceIdToMethodNameMap[$id]; - } - - $i = strrpos($id, '\\'); - $name = Container::camelize(false !== $i && isset($id[1 + $i]) ? substr($id, 1 + $i) : $id); - $name = preg_replace('/[^a-zA-Z0-9_\x7f-\xff]/', '', $name); - $methodName = 'get'.$name.'Service'; - $suffix = 1; - - while (isset($this->usedMethodNames[strtolower($methodName)])) { - ++$suffix; - $methodName = 'get'.$name.$suffix.'Service'; - } - - $this->serviceIdToMethodNameMap[$id] = $methodName; - $this->usedMethodNames[strtolower($methodName)] = true; - - return $methodName; - } - - private function getNextVariableName(): string - { - $firstChars = self::FIRST_CHARS; - $firstCharsLength = \strlen($firstChars); - $nonFirstChars = self::NON_FIRST_CHARS; - $nonFirstCharsLength = \strlen($nonFirstChars); - - while (true) { - $name = ''; - $i = $this->variableCount; - - if ('' === $name) { - $name .= $firstChars[$i % $firstCharsLength]; - $i = (int) ($i / $firstCharsLength); - } - - while ($i > 0) { - --$i; - $name .= $nonFirstChars[$i % $nonFirstCharsLength]; - $i = (int) ($i / $nonFirstCharsLength); - } - - ++$this->variableCount; - - // check that the name is not reserved - if (\in_array($name, $this->reservedVariables, true)) { - continue; - } - - return $name; - } - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!class_exists(\Symfony\Component\ExpressionLanguage\ExpressionLanguage::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed. Try running "composer require symfony/expression-language".'); - } - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function ($arg) { - $id = '""' === substr_replace($arg, '', 1, -1) ? stripcslashes(substr($arg, 1, -1)) : null; - - if (null !== $id && ($this->container->hasAlias($id) || $this->container->hasDefinition($id))) { - return $this->getServiceCall($id); - } - - return sprintf('$container->get(%s)', $arg); - }); - - if ($this->container->isTrackingResources()) { - foreach ($providers as $provider) { - $this->container->addObjectResource($provider); - } - } - } - - return $this->expressionLanguage; - } - - private function isHotPath(Definition $definition): bool - { - return $this->hotPathTag && $definition->hasTag($this->hotPathTag) && !$definition->isDeprecated(); - } - - private function isSingleUsePrivateNode(ServiceReferenceGraphNode $node): bool - { - if ($node->getValue()->isPublic()) { - return false; - } - $ids = []; - foreach ($node->getInEdges() as $edge) { - if (!$value = $edge->getSourceNode()->getValue()) { - continue; - } - if ($edge->isLazy() || !$value instanceof Definition || !$value->isShared()) { - return false; - } - - // When the source node is a proxy or ghost, it will construct its references only when the node itself is initialized. - // Since the node can be cloned before being fully initialized, we do not know how often its references are used. - if ($this->getProxyDumper()->isProxyCandidate($value)) { - return false; - } - $ids[$edge->getSourceNode()->getId()] = true; - } - - return 1 === \count($ids); - } - - private function export(mixed $value): mixed - { - if (null !== $this->targetDirRegex && \is_string($value) && preg_match($this->targetDirRegex, $value, $matches, \PREG_OFFSET_CAPTURE)) { - $suffix = $matches[0][1] + \strlen($matches[0][0]); - $matches[0][1] += \strlen($matches[1][0]); - $prefix = $matches[0][1] ? $this->doExport(substr($value, 0, $matches[0][1]), true).'.' : ''; - - if ('\\' === \DIRECTORY_SEPARATOR && isset($value[$suffix])) { - $cookie = '\\'.random_int(100000, \PHP_INT_MAX); - $suffix = '.'.$this->doExport(str_replace('\\', $cookie, substr($value, $suffix)), true); - $suffix = str_replace('\\'.$cookie, "'.\\DIRECTORY_SEPARATOR.'", $suffix); - } else { - $suffix = isset($value[$suffix]) ? '.'.$this->doExport(substr($value, $suffix), true) : ''; - } - - $dirname = $this->asFiles ? '$container->containerDir' : '__DIR__'; - $offset = 2 + $this->targetDirMaxMatches - \count($matches); - - if (0 < $offset) { - $dirname = sprintf('\dirname(__DIR__, %d)', $offset + (int) $this->asFiles); - } elseif ($this->asFiles) { - $dirname = "\$container->targetDir.''"; // empty string concatenation on purpose - } - - if ($prefix || $suffix) { - return sprintf('(%s%s%s)', $prefix, $dirname, $suffix); - } - - return $dirname; - } - - return $this->doExport($value, true); - } - - private function doExport(mixed $value, bool $resolveEnv = false): mixed - { - $shouldCacheValue = $resolveEnv && \is_string($value); - if ($shouldCacheValue && isset($this->exportedVariables[$value])) { - return $this->exportedVariables[$value]; - } - if (\is_string($value) && str_contains($value, "\n")) { - $cleanParts = explode("\n", $value); - $cleanParts = array_map(fn ($part) => var_export($part, true), $cleanParts); - $export = implode('."\n".', $cleanParts); - } else { - $export = var_export($value, true); - } - - if ($resolveEnv && "'" === $export[0] && $export !== $resolvedExport = $this->container->resolveEnvPlaceholders($export, "'.\$container->getEnv('string:%s').'")) { - $export = $resolvedExport; - if (str_ends_with($export, ".''")) { - $export = substr($export, 0, -3); - if ("'" === $export[1]) { - $export = substr_replace($export, '', 23, 7); - } - } - if ("'" === $export[1]) { - $export = substr($export, 3); - } - } - - if ($shouldCacheValue) { - $this->exportedVariables[$value] = $export; - } - - return $export; - } - - private function getAutoloadFile(): ?string - { - $file = null; - - foreach (spl_autoload_functions() as $autoloader) { - if (!\is_array($autoloader)) { - continue; - } - - if ($autoloader[0] instanceof DebugClassLoader) { - $autoloader = $autoloader[0]->getClassLoader(); - } - - if (!\is_array($autoloader) || !$autoloader[0] instanceof ClassLoader || !$autoloader[0]->findFile(__CLASS__)) { - continue; - } - - foreach (get_declared_classes() as $class) { - if (str_starts_with($class, 'ComposerAutoloaderInit') && $class::getLoader() === $autoloader[0]) { - $file = \dirname((new \ReflectionClass($class))->getFileName(), 2).'/autoload.php'; - - if (null !== $this->targetDirRegex && preg_match($this->targetDirRegex.'A', $file)) { - return $file; - } - } - } - } - - return $file; - } - - private function getClasses(Definition $definition, string $id): array - { - $classes = []; - - while ($definition instanceof Definition) { - foreach ($definition->getTag($this->preloadTags[0]) as $tag) { - if (!isset($tag['class'])) { - throw new InvalidArgumentException(sprintf('Missing attribute "class" on tag "%s" for service "%s".', $this->preloadTags[0], $id)); - } - - $classes[] = trim($tag['class'], '\\'); - } - - if ($class = $definition->getClass()) { - $classes[] = trim($class, '\\'); - } - $factory = $definition->getFactory(); - - if (\is_string($factory) && !str_starts_with($factory, '@=') && str_contains($factory, '::')) { - $factory = explode('::', $factory); - } - - if (!\is_array($factory)) { - $definition = $factory; - continue; - } - - $definition = $factory[0] ?? null; - - if (\is_string($definition)) { - $classes[] = trim($factory[0], '\\'); - } - } - - return $classes; - } - - private function isProxyCandidate(Definition $definition, ?bool &$asGhostObject, string $id): ?Definition - { - $asGhostObject = false; - - if (['Closure', 'fromCallable'] === $definition->getFactory()) { - return null; - } - - if (!$definition->isLazy() || !$this->hasProxyDumper) { - return null; - } - - return $this->getProxyDumper()->isProxyCandidate($definition, $asGhostObject, $id) ? $definition : null; - } - - /** - * Removes comments from a PHP source string. - * - * We don't use the PHP php_strip_whitespace() function - * as we want the content to be readable and well-formatted. - */ - private static function stripComments(string $source): string - { - if (!\function_exists('token_get_all')) { - return $source; - } - - $rawChunk = ''; - $output = ''; - $tokens = token_get_all($source); - $ignoreSpace = false; - for ($i = 0; isset($tokens[$i]); ++$i) { - $token = $tokens[$i]; - if (!isset($token[1]) || 'b"' === $token) { - $rawChunk .= $token; - } elseif (\T_START_HEREDOC === $token[0]) { - $output .= $rawChunk.$token[1]; - do { - $token = $tokens[++$i]; - $output .= isset($token[1]) && 'b"' !== $token ? $token[1] : $token; - } while (\T_END_HEREDOC !== $token[0]); - $rawChunk = ''; - } elseif (\T_WHITESPACE === $token[0]) { - if ($ignoreSpace) { - $ignoreSpace = false; - - continue; - } - - // replace multiple new lines with a single newline - $rawChunk .= preg_replace(['/\n{2,}/S'], "\n", $token[1]); - } elseif (\in_array($token[0], [\T_COMMENT, \T_DOC_COMMENT])) { - if (!\in_array($rawChunk[\strlen($rawChunk) - 1], [' ', "\n", "\r", "\t"], true)) { - $rawChunk .= ' '; - } - $ignoreSpace = true; - } else { - $rawChunk .= $token[1]; - - // The PHP-open tag already has a new-line - if (\T_OPEN_TAG === $token[0]) { - $ignoreSpace = true; - } else { - $ignoreSpace = false; - } - } - } - - $output .= $rawChunk; - - unset($tokens, $rawChunk); - gc_mem_caches(); - - return $output; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Preloader.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Preloader.php deleted file mode 100644 index 8caa1de..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/Preloader.php +++ /dev/null @@ -1,129 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -/** - * @author Nicolas Grekas - */ -final class Preloader -{ - public static function append(string $file, array $list): void - { - if (!file_exists($file)) { - throw new \LogicException(sprintf('File "%s" does not exist.', $file)); - } - - $cacheDir = \dirname($file); - $classes = []; - - foreach ($list as $item) { - if (str_starts_with($item, $cacheDir)) { - file_put_contents($file, sprintf("require_once __DIR__.%s;\n", var_export(strtr(substr($item, \strlen($cacheDir)), \DIRECTORY_SEPARATOR, '/'), true)), \FILE_APPEND); - continue; - } - - $classes[] = sprintf("\$classes[] = %s;\n", var_export($item, true)); - } - - file_put_contents($file, sprintf("\n\$classes = [];\n%s\$preloaded = Preloader::preload(\$classes, \$preloaded);\n", implode('', $classes)), \FILE_APPEND); - } - - public static function preload(array $classes, array $preloaded = []): array - { - set_error_handler(function ($t, $m, $f, $l) { - if (error_reporting() & $t) { - if (__FILE__ !== $f) { - throw new \ErrorException($m, 0, $t, $f, $l); - } - - throw new \ReflectionException($m); - } - }); - - $prev = []; - - try { - while ($prev !== $classes) { - $prev = $classes; - foreach ($classes as $c) { - if (!isset($preloaded[$c])) { - self::doPreload($c, $preloaded); - } - } - $classes = array_merge(get_declared_classes(), get_declared_interfaces(), get_declared_traits()); - } - } finally { - restore_error_handler(); - } - - return $preloaded; - } - - private static function doPreload(string $class, array &$preloaded): void - { - if (isset($preloaded[$class]) || \in_array($class, ['self', 'static', 'parent'], true)) { - return; - } - - $preloaded[$class] = true; - - try { - if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { - return; - } - - $r = new \ReflectionClass($class); - - if ($r->isInternal()) { - return; - } - - $r->getConstants(); - $r->getDefaultProperties(); - - foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) { - self::preloadType($p->getType(), $preloaded); - } - - foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) { - foreach ($m->getParameters() as $p) { - if ($p->isDefaultValueAvailable() && $p->isDefaultValueConstant()) { - $c = $p->getDefaultValueConstantName(); - - if ($i = strpos($c, '::')) { - self::doPreload(substr($c, 0, $i), $preloaded); - } - } - - self::preloadType($p->getType(), $preloaded); - } - - self::preloadType($m->getReturnType(), $preloaded); - } - } catch (\Throwable) { - // ignore missing classes - } - } - - private static function preloadType(?\ReflectionType $t, array &$preloaded): void - { - if (!$t) { - return; - } - - foreach (($t instanceof \ReflectionUnionType || $t instanceof \ReflectionIntersectionType) ? $t->getTypes() : [$t] as $t) { - if (!$t->isBuiltin()) { - self::doPreload($t instanceof \ReflectionNamedType ? $t->getName() : $t, $preloaded); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/XmlDumper.php deleted file mode 100644 index 6ae8d5c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/XmlDumper.php +++ /dev/null @@ -1,432 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * XmlDumper dumps a service container as an XML string. - * - * @author Fabien Potencier - * @author Martin Hasoň - */ -class XmlDumper extends Dumper -{ - private \DOMDocument $document; - - /** - * Dumps the service container as an XML string. - */ - public function dump(array $options = []): string - { - $this->document = new \DOMDocument('1.0', 'utf-8'); - $this->document->formatOutput = true; - - $container = $this->document->createElementNS('http://symfony.com/schema/dic/services', 'container'); - $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd'); - - $this->addParameters($container); - $this->addServices($container); - - $this->document->appendChild($container); - $xml = $this->document->saveXML(); - unset($this->document); - - return $this->container->resolveEnvPlaceholders($xml); - } - - private function addParameters(\DOMElement $parent): void - { - $data = $this->container->getParameterBag()->all(); - if (!$data) { - return; - } - - if ($this->container->isCompiled()) { - $data = $this->escape($data); - } - - $parameters = $this->document->createElement('parameters'); - $parent->appendChild($parameters); - $this->convertParameters($data, 'parameter', $parameters); - } - - private function addMethodCalls(array $methodcalls, \DOMElement $parent): void - { - foreach ($methodcalls as $methodcall) { - $call = $this->document->createElement('call'); - $call->setAttribute('method', $methodcall[0]); - if (\count($methodcall[1])) { - $this->convertParameters($methodcall[1], 'argument', $call); - } - if ($methodcall[2] ?? false) { - $call->setAttribute('returns-clone', 'true'); - } - $parent->appendChild($call); - } - } - - private function addService(Definition $definition, ?string $id, \DOMElement $parent): void - { - $service = $this->document->createElement('service'); - if (null !== $id) { - $service->setAttribute('id', $id); - } - if ($class = $definition->getClass()) { - if (str_starts_with($class, '\\')) { - $class = substr($class, 1); - } - - $service->setAttribute('class', $class); - } - if (!$definition->isShared()) { - $service->setAttribute('shared', 'false'); - } - if ($definition->isPublic()) { - $service->setAttribute('public', 'true'); - } - if ($definition->isSynthetic()) { - $service->setAttribute('synthetic', 'true'); - } - if ($definition->isLazy()) { - $service->setAttribute('lazy', 'true'); - } - if (null !== $decoratedService = $definition->getDecoratedService()) { - [$decorated, $renamedId, $priority] = $decoratedService; - $service->setAttribute('decorates', $decorated); - - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE], true)) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $service->setAttribute('decoration-on-invalid', $invalidBehavior); - } - if (null !== $renamedId) { - $service->setAttribute('decoration-inner-name', $renamedId); - } - if (0 !== $priority) { - $service->setAttribute('decoration-priority', $priority); - } - } - - $tags = $definition->getTags(); - $tags['container.error'] = array_map(fn ($e) => ['message' => $e], $definition->getErrors()); - foreach ($tags as $name => $tags) { - foreach ($tags as $attributes) { - $tag = $this->document->createElement('tag'); - - // Check if we have recursive attributes - if (array_filter($attributes, \is_array(...))) { - $tag->setAttribute('name', $name); - $this->addTagRecursiveAttributes($tag, $attributes); - } else { - if (!\array_key_exists('name', $attributes)) { - $tag->setAttribute('name', $name); - } else { - $tag->appendChild($this->document->createTextNode($name)); - } - foreach ($attributes as $key => $value) { - $tag->setAttribute($key, $value ?? ''); - } - } - $service->appendChild($tag); - } - } - - if ($definition->getFile()) { - $file = $this->document->createElement('file'); - $file->appendChild($this->document->createTextNode($definition->getFile())); - $service->appendChild($file); - } - - if ($parameters = $definition->getArguments()) { - $this->convertParameters($parameters, 'argument', $service); - } - - if ($parameters = $definition->getProperties()) { - $this->convertParameters($parameters, 'property', $service, 'name'); - } - - $this->addMethodCalls($definition->getMethodCalls(), $service); - - if ($callable = $definition->getFactory()) { - if (\is_array($callable) && ['Closure', 'fromCallable'] !== $callable && $definition->getClass() === $callable[0]) { - $service->setAttribute('constructor', $callable[1]); - } else { - $factory = $this->document->createElement('factory'); - - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $factory); - $factory->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - if (null !== $callable[0]) { - $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - } - $factory->setAttribute('method', $callable[1]); - } else { - $factory->setAttribute('function', $callable); - } - $service->appendChild($factory); - } - } - - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation('%service_id%'); - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($definition->getDeprecation('%service_id%')['message'])); - $deprecated->setAttribute('package', $deprecation['package']); - $deprecated->setAttribute('version', $deprecation['version']); - - $service->appendChild($deprecated); - } - - if ($definition->isAutowired()) { - $service->setAttribute('autowire', 'true'); - } - - if ($definition->isAutoconfigured()) { - $service->setAttribute('autoconfigure', 'true'); - } - - if ($definition->isAbstract()) { - $service->setAttribute('abstract', 'true'); - } - - if ($callable = $definition->getConfigurator()) { - $configurator = $this->document->createElement('configurator'); - - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $configurator); - $configurator->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - $configurator->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - $configurator->setAttribute('method', $callable[1]); - } else { - $configurator->setAttribute('function', $callable); - } - $service->appendChild($configurator); - } - - $parent->appendChild($service); - } - - private function addServiceAlias(string $alias, Alias $id, \DOMElement $parent): void - { - $service = $this->document->createElement('service'); - $service->setAttribute('id', $alias); - $service->setAttribute('alias', $id); - if ($id->isPublic()) { - $service->setAttribute('public', 'true'); - } - - if ($id->isDeprecated()) { - $deprecation = $id->getDeprecation('%alias_id%'); - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($deprecation['message'])); - $deprecated->setAttribute('package', $deprecation['package']); - $deprecated->setAttribute('version', $deprecation['version']); - - $service->appendChild($deprecated); - } - - $parent->appendChild($service); - } - - private function addServices(\DOMElement $parent): void - { - $definitions = $this->container->getDefinitions(); - if (!$definitions) { - return; - } - - $services = $this->document->createElement('services'); - foreach ($definitions as $id => $definition) { - $this->addService($definition, $id, $services); - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $this->addServiceAlias($alias, $id, $services); - } - $parent->appendChild($services); - } - - private function addTagRecursiveAttributes(\DOMElement $parent, array $attributes): void - { - foreach ($attributes as $name => $value) { - $attribute = $this->document->createElement('attribute'); - $attribute->setAttribute('name', $name); - - if (\is_array($value)) { - $this->addTagRecursiveAttributes($attribute, $value); - } else { - $attribute->appendChild($this->document->createTextNode($value)); - } - - $parent->appendChild($attribute); - } - } - - private function convertParameters(array $parameters, string $type, \DOMElement $parent, string $keyAttribute = 'key'): void - { - $withKeys = !array_is_list($parameters); - foreach ($parameters as $key => $value) { - $element = $this->document->createElement($type); - if ($withKeys) { - $element->setAttribute($keyAttribute, $key); - } - - if (\is_array($tag = $value)) { - $element->setAttribute('type', 'collection'); - $this->convertParameters($value, $type, $element, 'key'); - } elseif ($value instanceof TaggedIteratorArgument || ($value instanceof ServiceLocatorArgument && $tag = $value->getTaggedIteratorArgument())) { - $element->setAttribute('type', $value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator'); - $element->setAttribute('tag', $tag->getTag()); - - if (null !== $tag->getIndexAttribute()) { - $element->setAttribute('index-by', $tag->getIndexAttribute()); - - if (null !== $tag->getDefaultIndexMethod()) { - $element->setAttribute('default-index-method', $tag->getDefaultIndexMethod()); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $element->setAttribute('default-priority-method', $tag->getDefaultPriorityMethod()); - } - } - if ($excludes = $tag->getExclude()) { - if (1 === \count($excludes)) { - $element->setAttribute('exclude', $excludes[0]); - } else { - foreach ($excludes as $exclude) { - $element->appendChild($this->document->createElement('exclude', $exclude)); - } - } - } - if (!$tag->excludeSelf()) { - $element->setAttribute('exclude-self', 'false'); - } - } elseif ($value instanceof IteratorArgument) { - $element->setAttribute('type', 'iterator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof ServiceLocatorArgument) { - $element->setAttribute('type', 'service_locator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof ServiceClosureArgument && !$value->getValues()[0] instanceof Reference) { - $element->setAttribute('type', 'service_closure'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof Reference || $value instanceof ServiceClosureArgument) { - $element->setAttribute('type', 'service'); - if ($value instanceof ServiceClosureArgument) { - $element->setAttribute('type', 'service_closure'); - $value = $value->getValues()[0]; - } - $element->setAttribute('id', (string) $value); - $behavior = $value->getInvalidBehavior(); - if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'null'); - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore'); - } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore_uninitialized'); - } - } elseif ($value instanceof Definition) { - $element->setAttribute('type', 'service'); - $this->addService($value, null, $element); - } elseif ($value instanceof Expression) { - $element->setAttribute('type', 'expression'); - $text = $this->document->createTextNode(self::phpToXml((string) $value)); - $element->appendChild($text); - } elseif (\is_string($value) && !preg_match('/^[^\x00-\x08\x0B\x0C\x0E-\x1F\x7F]*+$/u', $value)) { - $element->setAttribute('type', 'binary'); - $text = $this->document->createTextNode(self::phpToXml(base64_encode($value))); - $element->appendChild($text); - } elseif ($value instanceof \UnitEnum) { - $element->setAttribute('type', 'constant'); - $element->appendChild($this->document->createTextNode(self::phpToXml($value))); - } elseif ($value instanceof AbstractArgument) { - $element->setAttribute('type', 'abstract'); - $text = $this->document->createTextNode(self::phpToXml($value->getText())); - $element->appendChild($text); - } else { - if (\in_array($value, ['null', 'true', 'false'], true)) { - $element->setAttribute('type', 'string'); - } - - if (\is_string($value) && (is_numeric($value) || preg_match('/^0b[01]*$/', $value) || preg_match('/^0x[0-9a-f]++$/i', $value))) { - $element->setAttribute('type', 'string'); - } - - $text = $this->document->createTextNode(self::phpToXml($value)); - $element->appendChild($text); - } - $parent->appendChild($element); - } - } - - /** - * Escapes arguments. - */ - private function escape(array $arguments): array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - - return $args; - } - - /** - * Converts php types to xml types. - * - * @throws RuntimeException When trying to dump object or resource - */ - public static function phpToXml(mixed $value): string - { - switch (true) { - case null === $value: - return 'null'; - case true === $value: - return 'true'; - case false === $value: - return 'false'; - case $value instanceof Parameter: - return '%'.$value.'%'; - case $value instanceof \UnitEnum: - return sprintf('%s::%s', $value::class, $value->name); - case \is_object($value) || \is_resource($value): - throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value))); - default: - return (string) $value; - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/YamlDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/Dumper/YamlDumper.php deleted file mode 100644 index 2995580..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Dumper/YamlDumper.php +++ /dev/null @@ -1,380 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\Yaml\Dumper as YmlDumper; -use Symfony\Component\Yaml\Parser; -use Symfony\Component\Yaml\Tag\TaggedValue; -use Symfony\Component\Yaml\Yaml; - -/** - * YamlDumper dumps a service container as a YAML string. - * - * @author Fabien Potencier - */ -class YamlDumper extends Dumper -{ - private YmlDumper $dumper; - - /** - * Dumps the service container as an YAML string. - */ - public function dump(array $options = []): string - { - if (!class_exists(YmlDumper::class)) { - throw new LogicException('Unable to dump the container as the Symfony Yaml Component is not installed. Try running "composer require symfony/yaml".'); - } - - $this->dumper ??= new YmlDumper(); - - return $this->addParameters()."\n".$this->addServices(); - } - - private function addService(string $id, Definition $definition): string - { - $code = " {$this->dumper->dump($id)}:\n"; - if ($class = $definition->getClass()) { - if (str_starts_with($class, '\\')) { - $class = substr($class, 1); - } - - $code .= sprintf(" class: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($class))); - } - - if (!$definition->isPrivate()) { - $code .= sprintf(" public: %s\n", $definition->isPublic() ? 'true' : 'false'); - } - - $tagsCode = ''; - $tags = $definition->getTags(); - $tags['container.error'] = array_map(fn ($e) => ['message' => $e], $definition->getErrors()); - foreach ($tags as $name => $tags) { - foreach ($tags as $attributes) { - $att = []; - foreach ($attributes as $key => $value) { - $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value)); - } - $att = $att ? ': { '.implode(', ', $att).' }' : ''; - - $tagsCode .= sprintf(" - %s%s\n", $this->dumper->dump($name), $att); - } - } - if ($tagsCode) { - $code .= " tags:\n".$tagsCode; - } - - if ($definition->getFile()) { - $code .= sprintf(" file: %s\n", $this->dumper->dump($this->container->resolveEnvPlaceholders($definition->getFile()))); - } - - if ($definition->isSynthetic()) { - $code .= " synthetic: true\n"; - } - - if ($definition->isDeprecated()) { - $code .= " deprecated:\n"; - foreach ($definition->getDeprecation('%service_id%') as $key => $value) { - if ('' !== $value) { - $code .= sprintf(" %s: %s\n", $key, $this->dumper->dump($value)); - } - } - } - - if ($definition->isAutowired()) { - $code .= " autowire: true\n"; - } - - if ($definition->isAutoconfigured()) { - $code .= " autoconfigure: true\n"; - } - - if ($definition->isAbstract()) { - $code .= " abstract: true\n"; - } - - if ($definition->isLazy()) { - $code .= " lazy: true\n"; - } - - if ($definition->getArguments()) { - $code .= sprintf(" arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0)); - } - - if ($definition->getProperties()) { - $code .= sprintf(" properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0)); - } - - if ($definition->getMethodCalls()) { - $code .= sprintf(" calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12)); - } - - if (!$definition->isShared()) { - $code .= " shared: false\n"; - } - - if (null !== $decoratedService = $definition->getDecoratedService()) { - [$decorated, $renamedId, $priority] = $decoratedService; - $code .= sprintf(" decorates: %s\n", $decorated); - if (null !== $renamedId) { - $code .= sprintf(" decoration_inner_name: %s\n", $renamedId); - } - if (0 !== $priority) { - $code .= sprintf(" decoration_priority: %s\n", $priority); - } - - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE])) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $code .= sprintf(" decoration_on_invalid: %s\n", $invalidBehavior); - } - } - - if ($callable = $definition->getFactory()) { - if (\is_array($callable) && ['Closure', 'fromCallable'] !== $callable && $definition->getClass() === $callable[0]) { - $code .= sprintf(" constructor: %s\n", $callable[1]); - } else { - $code .= sprintf(" factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - } - - if ($callable = $definition->getConfigurator()) { - $code .= sprintf(" configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - - return $code; - } - - private function addServiceAlias(string $alias, Alias $id): string - { - $deprecated = ''; - - if ($id->isDeprecated()) { - $deprecated = " deprecated:\n"; - - foreach ($id->getDeprecation('%alias_id%') as $key => $value) { - if ('' !== $value) { - $deprecated .= sprintf(" %s: %s\n", $key, $value); - } - } - } - - if (!$id->isDeprecated() && $id->isPrivate()) { - return sprintf(" %s: '@%s'\n", $alias, $id); - } - - if ($id->isPublic()) { - $deprecated = " public: true\n".$deprecated; - } - - return sprintf(" %s:\n alias: %s\n%s", $alias, $id, $deprecated); - } - - private function addServices(): string - { - if (!$this->container->getDefinitions()) { - return ''; - } - - $code = "services:\n"; - foreach ($this->container->getDefinitions() as $id => $definition) { - $code .= $this->addService($id, $definition); - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $code .= $this->addServiceAlias($alias, $id); - } - - return $code; - } - - private function addParameters(): string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - - $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled()); - - return $this->dumper->dump(['parameters' => $parameters], 2); - } - - /** - * Dumps callable to YAML format. - */ - private function dumpCallable(mixed $callable): mixed - { - if (\is_array($callable)) { - if ($callable[0] instanceof Reference) { - $callable = [$this->getServiceCall((string) $callable[0], $callable[0]), $callable[1]]; - } else { - $callable = [$callable[0], $callable[1]]; - } - } - - return $this->container->resolveEnvPlaceholders($callable); - } - - /** - * Dumps the value to YAML format. - * - * @throws RuntimeException When trying to dump object or resource - */ - private function dumpValue(mixed $value): mixed - { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - - return new TaggedValue('service_closure', $this->dumpValue($value)); - } - if ($value instanceof ArgumentInterface) { - $tag = $value; - - if ($value instanceof TaggedIteratorArgument || ($value instanceof ServiceLocatorArgument && $tag = $value->getTaggedIteratorArgument())) { - if (null === $tag->getIndexAttribute()) { - $content = $tag->getTag(); - } else { - $content = [ - 'tag' => $tag->getTag(), - 'index_by' => $tag->getIndexAttribute(), - ]; - - if (null !== $tag->getDefaultIndexMethod()) { - $content['default_index_method'] = $tag->getDefaultIndexMethod(); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $content['default_priority_method'] = $tag->getDefaultPriorityMethod(); - } - } - if ($excludes = $tag->getExclude()) { - if (!\is_array($content)) { - $content = ['tag' => $content]; - } - $content['exclude'] = 1 === \count($excludes) ? $excludes[0] : $excludes; - } - if (!$tag->excludeSelf()) { - $content['exclude_self'] = false; - } - - return new TaggedValue($value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator', $content); - } - - if ($value instanceof IteratorArgument) { - $tag = 'iterator'; - } elseif ($value instanceof ServiceLocatorArgument) { - $tag = 'service_locator'; - } else { - throw new RuntimeException(sprintf('Unspecified Yaml tag for type "%s".', get_debug_type($value))); - } - - return new TaggedValue($tag, $this->dumpValue($value->getValues())); - } - - if (\is_array($value)) { - $code = []; - foreach ($value as $k => $v) { - $code[$this->container->resolveEnvPlaceholders($k)] = $this->dumpValue($v); - } - - return $code; - } elseif ($value instanceof Reference) { - return $this->getServiceCall((string) $value, $value); - } elseif ($value instanceof Parameter) { - return $this->getParameterCall((string) $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionCall((string) $value); - } elseif ($value instanceof Definition) { - return new TaggedValue('service', (new Parser())->parse("_:\n".$this->addService('_', $value), Yaml::PARSE_CUSTOM_TAGS)['_']['_']); - } elseif ($value instanceof \UnitEnum) { - return new TaggedValue('php/const', sprintf('%s::%s', $value::class, $value->name)); - } elseif ($value instanceof AbstractArgument) { - return new TaggedValue('abstract', $value->getText()); - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException(sprintf('Unable to dump a service container if a parameter is an object or a resource, got "%s".', get_debug_type($value))); - } - - return $this->container->resolveEnvPlaceholders($value); - } - - private function getServiceCall(string $id, ?Reference $reference = null): string - { - if (null !== $reference) { - switch ($reference->getInvalidBehavior()) { - case ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE: break; - case ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE: break; - case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: return sprintf('@!%s', $id); - default: return sprintf('@?%s', $id); - } - } - - return sprintf('@%s', $id); - } - - private function getParameterCall(string $id): string - { - return sprintf('%%%s%%', $id); - } - - private function getExpressionCall(string $expression): string - { - return sprintf('@=%s', $expression); - } - - private function prepareParameters(array $parameters, bool $escape = true): array - { - $filtered = []; - foreach ($parameters as $key => $value) { - if (\is_array($value)) { - $value = $this->prepareParameters($value, $escape); - } elseif ($value instanceof Reference || \is_string($value) && str_starts_with($value, '@')) { - $value = '@'.$value; - } - - $filtered[$key] = $value; - } - - return $escape ? $this->container->resolveEnvPlaceholders($this->escape($filtered)) : $filtered; - } - - private function escape(array $arguments): array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - - return $args; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php deleted file mode 100644 index 803156b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * EnvVarLoaderInterface objects return key/value pairs that are added to the list of available env vars. - * - * @author Nicolas Grekas - */ -interface EnvVarLoaderInterface -{ - /** - * @return array Key/value pairs that can be accessed using the regular "%env()%" syntax - */ - public function loadEnvVars(): array; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessor.php b/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessor.php deleted file mode 100644 index 4ab93b6..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessor.php +++ /dev/null @@ -1,364 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Nicolas Grekas - */ -class EnvVarProcessor implements EnvVarProcessorInterface -{ - private ContainerInterface $container; - /** @var \Traversable */ - private \Traversable $loaders; - private array $loadedVars = []; - - /** - * @param \Traversable|null $loaders - */ - public function __construct(ContainerInterface $container, ?\Traversable $loaders = null) - { - $this->container = $container; - $this->loaders = $loaders ?? new \ArrayIterator(); - } - - public static function getProvidedTypes(): array - { - return [ - 'base64' => 'string', - 'bool' => 'bool', - 'not' => 'bool', - 'const' => 'bool|int|float|string|array', - 'csv' => 'array', - 'file' => 'string', - 'float' => 'float', - 'int' => 'int', - 'json' => 'array', - 'key' => 'bool|int|float|string|array', - 'url' => 'array', - 'query_string' => 'array', - 'resolve' => 'string', - 'default' => 'bool|int|float|string|array', - 'string' => 'string', - 'trim' => 'string', - 'require' => 'bool|int|float|string|array', - 'enum' => \BackedEnum::class, - 'shuffle' => 'array', - 'defined' => 'bool', - ]; - } - - public function getEnv(string $prefix, string $name, \Closure $getEnv): mixed - { - $i = strpos($name, ':'); - - if ('key' === $prefix) { - if (false === $i) { - throw new RuntimeException(sprintf('Invalid env "key:%s": a key specifier should be provided.', $name)); - } - - $next = substr($name, $i + 1); - $key = substr($name, 0, $i); - $array = $getEnv($next); - - if (!\is_array($array)) { - throw new RuntimeException(sprintf('Resolved value of "%s" did not result in an array value.', $next)); - } - - if (!isset($array[$key]) && !\array_key_exists($key, $array)) { - throw new EnvNotFoundException(sprintf('Key "%s" not found in %s (resolved from "%s").', $key, json_encode($array), $next)); - } - - return $array[$key]; - } - - if ('enum' === $prefix) { - if (false === $i) { - throw new RuntimeException(sprintf('Invalid env "enum:%s": a "%s" class-string should be provided.', $name, \BackedEnum::class)); - } - - $next = substr($name, $i + 1); - $backedEnumClassName = substr($name, 0, $i); - $backedEnumValue = $getEnv($next); - - if (!\is_string($backedEnumValue) && !\is_int($backedEnumValue)) { - throw new RuntimeException(sprintf('Resolved value of "%s" did not result in a string or int value.', $next)); - } - - if (!is_subclass_of($backedEnumClassName, \BackedEnum::class)) { - throw new RuntimeException(sprintf('"%s" is not a "%s".', $backedEnumClassName, \BackedEnum::class)); - } - - return $backedEnumClassName::tryFrom($backedEnumValue) ?? throw new RuntimeException(sprintf('Enum value "%s" is not backed by "%s".', $backedEnumValue, $backedEnumClassName)); - } - - if ('defined' === $prefix) { - try { - return '' !== ($getEnv($name) ?? ''); - } catch (EnvNotFoundException) { - return false; - } - } - - if ('default' === $prefix) { - if (false === $i) { - throw new RuntimeException(sprintf('Invalid env "default:%s": a fallback parameter should be provided.', $name)); - } - - $next = substr($name, $i + 1); - $default = substr($name, 0, $i); - - if ('' !== $default && !$this->container->hasParameter($default)) { - throw new RuntimeException(sprintf('Invalid env fallback in "default:%s": parameter "%s" not found.', $name, $default)); - } - - try { - $env = $getEnv($next); - - if ('' !== $env && null !== $env) { - return $env; - } - } catch (EnvNotFoundException) { - // no-op - } - - return '' === $default ? null : $this->container->getParameter($default); - } - - if ('file' === $prefix || 'require' === $prefix) { - if (!\is_scalar($file = $getEnv($name))) { - throw new RuntimeException(sprintf('Invalid file name: env var "%s" is non-scalar.', $name)); - } - if (!is_file($file)) { - throw new EnvNotFoundException(sprintf('File "%s" not found (resolved from "%s").', $file, $name)); - } - - if ('file' === $prefix) { - return file_get_contents($file); - } else { - return require $file; - } - } - - $returnNull = false; - if ('' === $prefix) { - if ('' === $name) { - return null; - } - $returnNull = true; - $prefix = 'string'; - } - - if (false !== $i || 'string' !== $prefix) { - $env = $getEnv($name); - } elseif ('' === ($env = $_ENV[$name] ?? (str_starts_with($name, 'HTTP_') ? null : ($_SERVER[$name] ?? null))) - || (false !== $env && false === $env ??= getenv($name) ?? false) // null is a possible value because of thread safety issues - ) { - foreach ($this->loadedVars as $i => $vars) { - if (false === $env = $vars[$name] ?? $env) { - continue; - } - if ($env instanceof \Stringable) { - $this->loadedVars[$i][$name] = $env = (string) $env; - } - if ('' !== ($env ?? '')) { - break; - } - } - - if (false === $env || '' === $env) { - $loaders = $this->loaders; - $this->loaders = new \ArrayIterator(); - - try { - $i = 0; - $ended = true; - $count = $loaders instanceof \Countable ? $loaders->count() : 0; - foreach ($loaders as $loader) { - if (\count($this->loadedVars) > $i++) { - continue; - } - $this->loadedVars[] = $vars = $loader->loadEnvVars(); - if (false === $env = $vars[$name] ?? $env) { - continue; - } - if ($env instanceof \Stringable) { - $this->loadedVars[array_key_last($this->loadedVars)][$name] = $env = (string) $env; - } - if ('' !== ($env ?? '')) { - $ended = false; - break; - } - } - if ($ended || $count === $i) { - $loaders = $this->loaders; - } - } catch (ParameterCircularReferenceException) { - // skip loaders that need an env var that is not defined - } finally { - $this->loaders = $loaders; - } - } - - if (false === $env) { - if (!$this->container->hasParameter("env($name)")) { - throw new EnvNotFoundException(sprintf('Environment variable not found: "%s".', $name)); - } - - $env = $this->container->getParameter("env($name)"); - } - } - - if (null === $env) { - if ($returnNull) { - return null; - } - - if (!isset($this->getProvidedTypes()[$prefix])) { - throw new RuntimeException(sprintf('Unsupported env var prefix "%s".', $prefix)); - } - - if (!\in_array($prefix, ['string', 'bool', 'not', 'int', 'float'], true)) { - return null; - } - } - - if ('shuffle' === $prefix) { - \is_array($env) ? shuffle($env) : throw new RuntimeException(sprintf('Env var "%s" cannot be shuffled, expected array, got "%s".', $name, get_debug_type($env))); - - return $env; - } - - if (null !== $env && !\is_scalar($env)) { - throw new RuntimeException(sprintf('Non-scalar env var "%s" cannot be cast to "%s".', $name, $prefix)); - } - - if ('string' === $prefix) { - return (string) $env; - } - - if (\in_array($prefix, ['bool', 'not'], true)) { - $env = (bool) (filter_var($env, \FILTER_VALIDATE_BOOL) ?: filter_var($env, \FILTER_VALIDATE_INT) ?: filter_var($env, \FILTER_VALIDATE_FLOAT)); - - return 'not' === $prefix xor $env; - } - - if ('int' === $prefix) { - if (null !== $env && false === $env = filter_var($env, \FILTER_VALIDATE_INT) ?: filter_var($env, \FILTER_VALIDATE_FLOAT)) { - throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to int.', $name)); - } - - return (int) $env; - } - - if ('float' === $prefix) { - if (null !== $env && false === $env = filter_var($env, \FILTER_VALIDATE_FLOAT)) { - throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to float.', $name)); - } - - return (float) $env; - } - - if ('const' === $prefix) { - if (!\defined($env)) { - throw new RuntimeException(sprintf('Env var "%s" maps to undefined constant "%s".', $name, $env)); - } - - return \constant($env); - } - - if ('base64' === $prefix) { - return base64_decode(strtr($env, '-_', '+/')); - } - - if ('json' === $prefix) { - $env = json_decode($env, true); - - if (\JSON_ERROR_NONE !== json_last_error()) { - throw new RuntimeException(sprintf('Invalid JSON in env var "%s": ', $name).json_last_error_msg()); - } - - if (null !== $env && !\is_array($env)) { - throw new RuntimeException(sprintf('Invalid JSON env var "%s": array or null expected, "%s" given.', $name, get_debug_type($env))); - } - - return $env; - } - - if ('url' === $prefix) { - $params = parse_url($env); - - if (false === $params) { - throw new RuntimeException(sprintf('Invalid URL in env var "%s".', $name)); - } - if (!isset($params['scheme'], $params['host'])) { - throw new RuntimeException(sprintf('Invalid URL in env var "%s": scheme and host expected.', $name)); - } - $params += [ - 'port' => null, - 'user' => null, - 'pass' => null, - 'path' => null, - 'query' => null, - 'fragment' => null, - ]; - - $params['user'] = null !== $params['user'] ? rawurldecode($params['user']) : null; - $params['pass'] = null !== $params['pass'] ? rawurldecode($params['pass']) : null; - - // remove the '/' separator - $params['path'] = '/' === ($params['path'] ?? '/') ? '' : substr($params['path'], 1); - - return $params; - } - - if ('query_string' === $prefix) { - $queryString = parse_url($env, \PHP_URL_QUERY) ?: $env; - parse_str($queryString, $result); - - return $result; - } - - if ('resolve' === $prefix) { - return preg_replace_callback('/%%|%([^%\s]+)%/', function ($match) use ($name, $getEnv) { - if (!isset($match[1])) { - return '%'; - } - - if (str_starts_with($match[1], 'env(') && str_ends_with($match[1], ')') && 'env()' !== $match[1]) { - $value = $getEnv(substr($match[1], 4, -1)); - } else { - $value = $this->container->getParameter($match[1]); - } - - if (!\is_scalar($value)) { - throw new RuntimeException(sprintf('Parameter "%s" found when resolving env var "%s" must be scalar, "%s" given.', $match[1], $name, get_debug_type($value))); - } - - return $value; - }, $env); - } - - if ('csv' === $prefix) { - return '' === $env ? [] : str_getcsv($env, ',', '"', ''); - } - - if ('trim' === $prefix) { - return trim($env); - } - - throw new RuntimeException(sprintf('Unsupported env var prefix "%s" for env name "%s".', $prefix, $name)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php deleted file mode 100644 index 3cda639..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * The EnvVarProcessorInterface is implemented by objects that manage environment-like variables. - * - * @author Nicolas Grekas - */ -interface EnvVarProcessorInterface -{ - /** - * Returns the value of the given variable as managed by the current instance. - * - * @param string $prefix The namespace of the variable; when the empty string is passed, null values should be kept as is - * @param string $name The name of the variable within the namespace - * @param \Closure(string): mixed $getEnv A closure that allows fetching more env vars - * - * @throws RuntimeException on error - */ - public function getEnv(string $prefix, string $name, \Closure $getEnv): mixed; - - /** - * @return array The PHP-types managed by getEnv(), keyed by prefixes - */ - public static function getProvidedTypes(): array; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php deleted file mode 100644 index 872e260..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when a definition cannot be autowired. - */ -class AutowiringFailedException extends RuntimeException -{ - private string $serviceId; - private ?\Closure $messageCallback = null; - - public function __construct(string $serviceId, string|\Closure $message = '', int $code = 0, ?\Throwable $previous = null) - { - $this->serviceId = $serviceId; - - if ($message instanceof \Closure && \function_exists('xdebug_is_enabled') && xdebug_is_enabled()) { - $message = $message(); - } - - if (!$message instanceof \Closure) { - parent::__construct($message, $code, $previous); - - return; - } - - $this->messageCallback = $message; - parent::__construct('', $code, $previous); - - $this->message = new class($this->message, $this->messageCallback) { - private string|self $message; - private ?\Closure $messageCallback; - - public function __construct(&$message, &$messageCallback) - { - $this->message = &$message; - $this->messageCallback = &$messageCallback; - } - - public function __toString(): string - { - $messageCallback = $this->messageCallback; - $this->messageCallback = null; - - try { - return $this->message = $messageCallback(); - } catch (\Throwable $e) { - return $this->message = $e->getMessage(); - } - } - }; - } - - public function getMessageCallback(): ?\Closure - { - return $this->messageCallback; - } - - /** - * @return string - */ - public function getServiceId() - { - return $this->serviceId; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php deleted file mode 100644 index 959238e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base BadMethodCallException for Dependency Injection component. - */ -class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php deleted file mode 100644 index 04ac848..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when an environment variable is not found. - * - * @author Nicolas Grekas - */ -class EnvNotFoundException extends InvalidArgumentException -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvParameterException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvParameterException.php deleted file mode 100644 index 6cd53c9..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/EnvParameterException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception wraps exceptions whose messages contain a reference to an env parameter. - * - * @author Nicolas Grekas - */ -class EnvParameterException extends InvalidArgumentException -{ - public function __construct(array $envs, ?\Throwable $previous = null, string $message = 'Incompatible use of dynamic environment variables "%s" found in parameters.') - { - parent::__construct(sprintf($message, implode('", "', $envs)), 0, $previous); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php deleted file mode 100644 index 6202df7..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\ContainerExceptionInterface; - -/** - * Base ExceptionInterface for Dependency Injection component. - * - * @author Fabien Potencier - * @author Bulat Shakirzyanov - */ -interface ExceptionInterface extends ContainerExceptionInterface, \Throwable -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php deleted file mode 100644 index 119bb7d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base InvalidArgumentException for Dependency Injection component. - * - * @author Bulat Shakirzyanov - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php deleted file mode 100644 index 2a11626..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when trying to inject a parameter into a constructor/method with an incompatible type. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -class InvalidParameterTypeException extends InvalidArgumentException -{ - public function __construct(string $serviceId, string $type, \ReflectionParameter $parameter) - { - $acceptedType = $parameter->getType(); - $acceptedType = $acceptedType instanceof \ReflectionNamedType ? $acceptedType->getName() : (string) $acceptedType; - $this->code = $type; - - $function = $parameter->getDeclaringFunction(); - $functionName = $function instanceof \ReflectionMethod - ? sprintf('%s::%s', $function->getDeclaringClass()->getName(), $function->getName()) - : $function->getName(); - - parent::__construct(sprintf('Invalid definition for service "%s": argument %d of "%s()" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $functionName, $acceptedType, $type)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/LogicException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/LogicException.php deleted file mode 100644 index 17a070c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/LogicException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base LogicException for Dependency Injection component. - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php deleted file mode 100644 index a61f143..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base OutOfBoundsException for Dependency Injection component. - */ -class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php deleted file mode 100644 index 325377d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference in a parameter is detected. - * - * @author Fabien Potencier - */ -class ParameterCircularReferenceException extends RuntimeException -{ - private array $parameters; - - public function __construct(array $parameters, ?\Throwable $previous = null) - { - parent::__construct(sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], implode('" > "', $parameters), $parameters[0]), 0, $previous); - - $this->parameters = $parameters; - } - - /** - * @return array - */ - public function getParameters() - { - return $this->parameters; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php deleted file mode 100644 index 61c9357..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php +++ /dev/null @@ -1,120 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\NotFoundExceptionInterface; - -/** - * This exception is thrown when a non-existent parameter is used. - * - * @author Fabien Potencier - */ -class ParameterNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - private string $key; - private ?string $sourceId; - private ?string $sourceKey; - private array $alternatives; - private ?string $nonNestedAlternative; - - /** - * @param string $key The requested parameter key - * @param string|null $sourceId The service id that references the non-existent parameter - * @param string|null $sourceKey The parameter key that references the non-existent parameter - * @param \Throwable|null $previous The previous exception - * @param string[] $alternatives Some parameter name alternatives - * @param string|null $nonNestedAlternative The alternative parameter name when the user expected dot notation for nested parameters - */ - public function __construct(string $key, ?string $sourceId = null, ?string $sourceKey = null, ?\Throwable $previous = null, array $alternatives = [], ?string $nonNestedAlternative = null) - { - $this->key = $key; - $this->sourceId = $sourceId; - $this->sourceKey = $sourceKey; - $this->alternatives = $alternatives; - $this->nonNestedAlternative = $nonNestedAlternative; - - parent::__construct('', 0, $previous); - - $this->updateRepr(); - } - - /** - * @return void - */ - public function updateRepr() - { - if (null !== $this->sourceId) { - $this->message = sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key); - } elseif (null !== $this->sourceKey) { - $this->message = sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key); - } elseif ('.' === ($this->key[0] ?? '')) { - $this->message = sprintf('Parameter "%s" not found. It was probably deleted during the compilation of the container.', $this->key); - } else { - $this->message = sprintf('You have requested a non-existent parameter "%s".', $this->key); - } - - if ($this->alternatives) { - if (1 == \count($this->alternatives)) { - $this->message .= ' Did you mean this: "'; - } else { - $this->message .= ' Did you mean one of these: "'; - } - $this->message .= implode('", "', $this->alternatives).'"?'; - } elseif (null !== $this->nonNestedAlternative) { - $this->message .= ' You cannot access nested array items, do you want to inject "'.$this->nonNestedAlternative.'" instead?'; - } - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string|null - */ - public function getSourceId() - { - return $this->sourceId; - } - - /** - * @return string|null - */ - public function getSourceKey() - { - return $this->sourceKey; - } - - /** - * @return void - */ - public function setSourceId(?string $sourceId) - { - $this->sourceId = $sourceId; - - $this->updateRepr(); - } - - /** - * @return void - */ - public function setSourceKey(?string $sourceKey) - { - $this->sourceKey = $sourceKey; - - $this->updateRepr(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/RuntimeException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/RuntimeException.php deleted file mode 100644 index 5c24541..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/RuntimeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base RuntimeException for Dependency Injection component. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php deleted file mode 100644 index 85b7f57..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference is detected. - * - * @author Johannes M. Schmitt - */ -class ServiceCircularReferenceException extends RuntimeException -{ - private string $serviceId; - private array $path; - - public function __construct(string $serviceId, array $path, ?\Throwable $previous = null) - { - parent::__construct(sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, implode(' -> ', $path)), 0, $previous); - - $this->serviceId = $serviceId; - $this->path = $path; - } - - /** - * @return string - */ - public function getServiceId() - { - return $this->serviceId; - } - - /** - * @return array - */ - public function getPath() - { - return $this->path; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php b/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php deleted file mode 100644 index 68dc6ee..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\NotFoundExceptionInterface; - -/** - * This exception is thrown when a non-existent service is requested. - * - * @author Johannes M. Schmitt - */ -class ServiceNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - private string $id; - private ?string $sourceId; - private array $alternatives; - - public function __construct(string $id, ?string $sourceId = null, ?\Throwable $previous = null, array $alternatives = [], ?string $msg = null) - { - if (null !== $msg) { - // no-op - } elseif (null === $sourceId) { - $msg = sprintf('You have requested a non-existent service "%s".', $id); - } else { - $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id); - } - - if ($alternatives) { - if (1 == \count($alternatives)) { - $msg .= ' Did you mean this: "'; - } else { - $msg .= ' Did you mean one of these: "'; - } - $msg .= implode('", "', $alternatives).'"?'; - } - - parent::__construct($msg, 0, $previous); - - $this->id = $id; - $this->sourceId = $sourceId; - $this->alternatives = $alternatives; - } - - /** - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * @return string|null - */ - public function getSourceId() - { - return $this->sourceId; - } - - /** - * @return array - */ - public function getAlternatives() - { - return $this->alternatives; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguage.php b/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguage.php deleted file mode 100644 index 84d45db..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguage.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage; - -if (!class_exists(BaseExpressionLanguage::class)) { - return; -} - -/** - * Adds some function to the default ExpressionLanguage. - * - * @author Fabien Potencier - * - * @see ExpressionLanguageProvider - */ -class ExpressionLanguage extends BaseExpressionLanguage -{ - public function __construct(?CacheItemPoolInterface $cache = null, array $providers = [], ?callable $serviceCompiler = null, ?\Closure $getEnv = null) - { - // prepend the default provider to let users override it easily - array_unshift($providers, new ExpressionLanguageProvider($serviceCompiler, $getEnv)); - - parent::__construct($cache, $providers); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php b/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php deleted file mode 100644 index 60479ea..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\ExpressionLanguage\ExpressionFunction; -use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; - -/** - * Define some ExpressionLanguage functions. - * - * To get a service, use service('request'). - * To get a parameter, use parameter('kernel.debug'). - * To get an env variable, use env('SOME_VARIABLE'). - * - * @author Fabien Potencier - */ -class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface -{ - private ?\Closure $serviceCompiler; - - private ?\Closure $getEnv; - - public function __construct(?callable $serviceCompiler = null, ?\Closure $getEnv = null) - { - $this->serviceCompiler = null === $serviceCompiler ? null : $serviceCompiler(...); - $this->getEnv = $getEnv; - } - - public function getFunctions(): array - { - return [ - new ExpressionFunction('service', $this->serviceCompiler ?? fn ($arg) => sprintf('$container->get(%s)', $arg), fn (array $variables, $value) => $variables['container']->get($value)), - - new ExpressionFunction('parameter', fn ($arg) => sprintf('$container->getParameter(%s)', $arg), fn (array $variables, $value) => $variables['container']->getParameter($value)), - - new ExpressionFunction('env', fn ($arg) => sprintf('$container->getEnv(%s)', $arg), function (array $variables, $value) { - if (!$this->getEnv) { - throw new LogicException('You need to pass a getEnv closure to the expression language provider to use the "env" function.'); - } - - return ($this->getEnv)($value); - }), - - new ExpressionFunction('arg', fn ($arg) => sprintf('$args?->get(%s)', $arg), fn (array $variables, $value) => $variables['args']?->get($value)), - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/AbstractExtension.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/AbstractExtension.php deleted file mode 100644 index c5c2f17..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/AbstractExtension.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\Configuration; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -/** - * An Extension that provides configuration hooks. - * - * @author Yonel Ceruto - */ -abstract class AbstractExtension extends Extension implements ConfigurableExtensionInterface, PrependExtensionInterface -{ - use ExtensionTrait; - - public function configure(DefinitionConfigurator $definition): void - { - } - - public function prependExtension(ContainerConfigurator $container, ContainerBuilder $builder): void - { - } - - public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder): void - { - } - - public function getConfiguration(array $config, ContainerBuilder $container): ?ConfigurationInterface - { - return new Configuration($this, $container, $this->getAlias()); - } - - final public function prepend(ContainerBuilder $container): void - { - $callback = function (ContainerConfigurator $configurator) use ($container) { - $this->prependExtension($configurator, $container); - }; - - $this->executeConfiguratorCallback($container, $callback, $this); - } - - final public function load(array $configs, ContainerBuilder $container): void - { - $config = $this->processConfiguration($this->getConfiguration([], $container), $configs); - - $callback = function (ContainerConfigurator $configurator) use ($config, $container) { - $this->loadExtension($config, $configurator, $container); - }; - - $this->executeConfiguratorCallback($container, $callback, $this); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php deleted file mode 100644 index b8927e4..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\ConfigurableInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -/** - * @author Yonel Ceruto - */ -interface ConfigurableExtensionInterface extends ConfigurableInterface -{ - /** - * Allows an extension to prepend the extension configurations. - */ - public function prependExtension(ContainerConfigurator $container, ContainerBuilder $builder): void; - - /** - * Loads a specific configuration. - */ - public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder): void; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php deleted file mode 100644 index a42967f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ConfigurationExtensionInterface is the interface implemented by container extension classes. - * - * @author Kevin Bond - */ -interface ConfigurationExtensionInterface -{ - /** - * Returns extension configuration. - * - * @return ConfigurationInterface|null - */ - public function getConfiguration(array $config, ContainerBuilder $container); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/Extension.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/Extension.php deleted file mode 100644 index d0bd05e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/Extension.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\Processor; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; - -/** - * Provides useful features shared by many extensions. - * - * @author Fabien Potencier - */ -abstract class Extension implements ExtensionInterface, ConfigurationExtensionInterface -{ - private array $processedConfigs = []; - - /** - * @return string|false - */ - public function getXsdValidationBasePath() - { - return false; - } - - /** - * @return string - */ - public function getNamespace() - { - return 'http://example.org/schema/dic/'.$this->getAlias(); - } - - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * This convention is to remove the "Extension" postfix from the class - * name and then lowercase and underscore the result. So: - * - * AcmeHelloExtension - * - * becomes - * - * acme_hello - * - * This can be overridden in a sub-class to specify the alias manually. - * - * @throws BadMethodCallException When the extension name does not follow conventions - */ - public function getAlias(): string - { - $className = static::class; - if (!str_ends_with($className, 'Extension')) { - throw new BadMethodCallException('This extension does not follow the naming convention; you must overwrite the getAlias() method.'); - } - $classBaseName = substr(strrchr($className, '\\'), 1, -9); - - return Container::underscore($classBaseName); - } - - /** - * @return ConfigurationInterface|null - */ - public function getConfiguration(array $config, ContainerBuilder $container) - { - $class = static::class; - - if (str_contains($class, "\0")) { - return null; // ignore anonymous classes - } - - $class = substr_replace($class, '\Configuration', strrpos($class, '\\')); - $class = $container->getReflectionClass($class); - - if (!$class) { - return null; - } - - if (!$class->implementsInterface(ConfigurationInterface::class)) { - throw new LogicException(sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class)); - } - - if (!($constructor = $class->getConstructor()) || !$constructor->getNumberOfRequiredParameters()) { - return $class->newInstance(); - } - - return null; - } - - final protected function processConfiguration(ConfigurationInterface $configuration, array $configs): array - { - $processor = new Processor(); - - return $this->processedConfigs[] = $processor->processConfiguration($configuration, $configs); - } - - /** - * @internal - */ - final public function getProcessedConfigs(): array - { - try { - return $this->processedConfigs; - } finally { - $this->processedConfigs = []; - } - } - - /** - * @throws InvalidArgumentException When the config is not enableable - */ - protected function isConfigEnabled(ContainerBuilder $container, array $config): bool - { - if (!\array_key_exists('enabled', $config)) { - throw new InvalidArgumentException("The config array has no 'enabled' key."); - } - - return (bool) $container->getParameterBag()->resolveValue($config['enabled']); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php deleted file mode 100644 index bd57eef..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ExtensionInterface is the interface implemented by container extension classes. - * - * @author Fabien Potencier - */ -interface ExtensionInterface -{ - /** - * Loads a specific configuration. - * - * @param array> $configs - * - * @return void - * - * @throws \InvalidArgumentException When provided tag is not defined in this extension - */ - public function load(array $configs, ContainerBuilder $container); - - /** - * Returns the namespace to be used for this extension (XML namespace). - * - * @return string - */ - public function getNamespace(); - - /** - * Returns the base path for the XSD files. - * - * @return string|false - */ - public function getXsdValidationBasePath(); - - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * @return string - */ - public function getAlias(); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php deleted file mode 100644 index 5bd8889..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Builder\ConfigBuilderGenerator; -use Symfony\Component\Config\FileLocator; -use Symfony\Component\Config\Loader\DelegatingLoader; -use Symfony\Component\Config\Loader\LoaderResolver; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\ClosureLoader; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -use Symfony\Component\DependencyInjection\Loader\DirectoryLoader; -use Symfony\Component\DependencyInjection\Loader\GlobFileLoader; -use Symfony\Component\DependencyInjection\Loader\IniFileLoader; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; -use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; - -/** - * @author Yonel Ceruto - */ -trait ExtensionTrait -{ - private function executeConfiguratorCallback(ContainerBuilder $container, \Closure $callback, ConfigurableExtensionInterface $subject): void - { - $env = $container->getParameter('kernel.environment'); - $loader = $this->createContainerLoader($container, $env); - $file = (new \ReflectionObject($subject))->getFileName(); - $bundleLoader = $loader->getResolver()->resolve($file); - if (!$bundleLoader instanceof PhpFileLoader) { - throw new \LogicException('Unable to create the ContainerConfigurator.'); - } - $bundleLoader->setCurrentDir(\dirname($file)); - $instanceof = &\Closure::bind(fn &() => $this->instanceof, $bundleLoader, $bundleLoader)(); - - try { - $callback(new ContainerConfigurator($container, $bundleLoader, $instanceof, $file, $file, $env)); - } finally { - $instanceof = []; - $bundleLoader->registerAliasesForSinglyImplementedInterfaces(); - } - } - - private function createContainerLoader(ContainerBuilder $container, string $env): DelegatingLoader - { - $buildDir = $container->getParameter('kernel.build_dir'); - $locator = new FileLocator(); - $resolver = new LoaderResolver([ - new XmlFileLoader($container, $locator, $env), - new YamlFileLoader($container, $locator, $env), - new IniFileLoader($container, $locator, $env), - new PhpFileLoader($container, $locator, $env, new ConfigBuilderGenerator($buildDir)), - new GlobFileLoader($container, $locator, $env), - new DirectoryLoader($container, $locator, $env), - new ClosureLoader($container, $env), - ]); - - return new DelegatingLoader($resolver); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php deleted file mode 100644 index 0df94e1..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -interface PrependExtensionInterface -{ - /** - * Allow an extension to prepend the extension configurations. - * - * @return void - */ - public function prepend(ContainerBuilder $container); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LICENSE b/projects/priceservice/vendor/symfony/dependency-injection/LICENSE deleted file mode 100644 index 0138f8f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php deleted file mode 100644 index 92c4b44..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Lazy proxy instantiator, capable of instantiating a proxy given a container, the - * service definitions and a callback that produces the real service instance. - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * Instantiates a proxy object. - * - * @param string $id Identifier of the requested service - * @param callable(object=) $realInstantiator A callback that is capable of producing the real service instance - * - * @return object - */ - public function instantiateProxy(ContainerInterface $container, Definition $definition, string $id, callable $realInstantiator); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/LazyServiceInstantiator.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/LazyServiceInstantiator.php deleted file mode 100644 index 40b128d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/LazyServiceInstantiator.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\LazyServiceDumper; - -/** - * @author Nicolas Grekas - */ -final class LazyServiceInstantiator implements InstantiatorInterface -{ - public function instantiateProxy(ContainerInterface $container, Definition $definition, string $id, callable $realInstantiator): object - { - $dumper = new LazyServiceDumper(); - - if (!$dumper->isProxyCandidate($definition, $asGhostObject, $id)) { - throw new InvalidArgumentException(sprintf('Cannot instantiate lazy proxy for service "%s".', $id)); - } - - if (!class_exists($proxyClass = $dumper->getProxyClass($definition, $asGhostObject), false)) { - eval($dumper->getProxyCode($definition, $id)); - } - - return $asGhostObject ? $proxyClass::createLazyGhost($realInstantiator) : $proxyClass::createLazyProxy($realInstantiator); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php deleted file mode 100644 index a0c445e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Noop proxy instantiator - produces the real service instead of a proxy instance. - * - * @author Marco Pivetta - */ -class RealServiceInstantiator implements InstantiatorInterface -{ - public function instantiateProxy(ContainerInterface $container, Definition $definition, string $id, callable $realInstantiator): object - { - return $realInstantiator(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php deleted file mode 100644 index b8f31ee..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Lazy proxy dumper capable of generating the instantiation logic PHP code for proxied services. - * - * @author Marco Pivetta - */ -interface DumperInterface -{ - /** - * Inspects whether the given definitions should produce proxy instantiation logic in the dumped container. - * - * @param bool|null &$asGhostObject Set to true after the call if the proxy is a ghost object - * @param string|null $id - */ - public function isProxyCandidate(Definition $definition/* , ?bool &$asGhostObject = null, ?string $id = null */): bool; - - /** - * Generates the code to be used to instantiate a proxy in the dumped factory code. - */ - public function getProxyFactoryCode(Definition $definition, string $id, string $factoryCode): string; - - /** - * Generates the code for the lazy proxy. - * - * @param string|null $id - */ - public function getProxyCode(Definition $definition/* , ?string $id = null */): string; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/LazyServiceDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/LazyServiceDumper.php deleted file mode 100644 index 0d4426c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/LazyServiceDumper.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\VarExporter\Exception\LogicException; -use Symfony\Component\VarExporter\ProxyHelper; - -/** - * @author Nicolas Grekas - */ -final class LazyServiceDumper implements DumperInterface -{ - public function __construct( - private string $salt = '', - ) { - } - - public function isProxyCandidate(Definition $definition, ?bool &$asGhostObject = null, ?string $id = null): bool - { - $asGhostObject = false; - - if ($definition->hasTag('proxy')) { - if (!$definition->isLazy()) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": setting the "proxy" tag on a service requires it to be "lazy".', $id ?? $definition->getClass())); - } - - return true; - } - - if (!$definition->isLazy()) { - return false; - } - - if (!($class = $definition->getClass()) || !(class_exists($class) || interface_exists($class, false))) { - return false; - } - - if ($definition->getFactory()) { - return true; - } - - foreach ($definition->getMethodCalls() as $call) { - if ($call[2] ?? false) { - return true; - } - } - - try { - $asGhostObject = (bool) ProxyHelper::generateLazyGhost(new \ReflectionClass($class)); - } catch (LogicException) { - } - - return true; - } - - public function getProxyFactoryCode(Definition $definition, string $id, string $factoryCode): string - { - $instantiation = 'return'; - - if ($definition->isShared()) { - $instantiation .= sprintf(' $container->%s[%s] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', var_export($id, true)); - } - - $asGhostObject = str_contains($factoryCode, '$proxy'); - $proxyClass = $this->getProxyClass($definition, $asGhostObject); - - if (!$asGhostObject) { - return <<createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyProxy(static fn () => $factoryCode)); - } - - - EOF; - } - - $factoryCode = sprintf('static fn ($proxy) => %s', $factoryCode); - - return <<createProxy('$proxyClass', static fn () => \\$proxyClass::createLazyGhost($factoryCode)); - } - - - EOF; - } - - public function getProxyCode(Definition $definition, ?string $id = null): string - { - if (!$this->isProxyCandidate($definition, $asGhostObject, $id)) { - throw new InvalidArgumentException(sprintf('Cannot instantiate lazy proxy for service "%s".', $id ?? $definition->getClass())); - } - $proxyClass = $this->getProxyClass($definition, $asGhostObject, $class); - - if ($asGhostObject) { - try { - return (\PHP_VERSION_ID >= 80200 && $class?->isReadOnly() ? 'readonly ' : '').'class '.$proxyClass.ProxyHelper::generateLazyGhost($class); - } catch (LogicException $e) { - throw new InvalidArgumentException(sprintf('Cannot generate lazy ghost for service "%s".', $id ?? $definition->getClass()), 0, $e); - } - } - $interfaces = []; - - if ($definition->hasTag('proxy')) { - foreach ($definition->getTag('proxy') as $tag) { - if (!isset($tag['interface'])) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": the "interface" attribute is missing on a "proxy" tag.', $id ?? $definition->getClass())); - } - if (!interface_exists($tag['interface']) && !class_exists($tag['interface'], false)) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": several "proxy" tags found but "%s" is not an interface.', $id ?? $definition->getClass(), $tag['interface'])); - } - if ('object' !== $definition->getClass() && !is_a($class->name, $tag['interface'], true)) { - throw new InvalidArgumentException(sprintf('Invalid "proxy" tag for service "%s": class "%s" doesn\'t implement "%s".', $id ?? $definition->getClass(), $definition->getClass(), $tag['interface'])); - } - $interfaces[] = new \ReflectionClass($tag['interface']); - } - - $class = 1 === \count($interfaces) && !$interfaces[0]->isInterface() ? array_pop($interfaces) : null; - } elseif ($class->isInterface()) { - $interfaces = [$class]; - $class = null; - } - - try { - return (\PHP_VERSION_ID >= 80200 && $class?->isReadOnly() ? 'readonly ' : '').'class '.$proxyClass.ProxyHelper::generateLazyProxy($class, $interfaces); - } catch (LogicException $e) { - throw new InvalidArgumentException(sprintf('Cannot generate lazy proxy for service "%s".', $id ?? $definition->getClass()), 0, $e); - } - } - - public function getProxyClass(Definition $definition, bool $asGhostObject, ?\ReflectionClass &$class = null): string - { - $class = 'object' !== $definition->getClass() ? $definition->getClass() : 'stdClass'; - $class = new \ReflectionClass($class); - - return preg_replace('/^.*\\\\/', '', $definition->getClass()) - .($asGhostObject ? 'Ghost' : 'Proxy') - .ucfirst(substr(hash('sha256', $this->salt.'+'.$class->name.'+'.serialize($definition->getTag('proxy'))), -7)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php deleted file mode 100644 index c987b19..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Null dumper, negates any proxy code generation for any given service definition. - * - * @author Marco Pivetta - * - * @final - */ -class NullDumper implements DumperInterface -{ - public function isProxyCandidate(Definition $definition, ?bool &$asGhostObject = null, ?string $id = null): bool - { - return $asGhostObject = false; - } - - public function getProxyFactoryCode(Definition $definition, string $id, string $factoryCode): string - { - return ''; - } - - public function getProxyCode(Definition $definition, ?string $id = null): string - { - return ''; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php b/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php deleted file mode 100644 index 59dc5aa..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy; - -trigger_deprecation('symfony/dependency-injection', '6.2', 'The "%s" class is deprecated, use "%s" instead.', ProxyHelper::class, \Symfony\Component\VarExporter\ProxyHelper::class); - -/** - * @author Nicolas Grekas - * - * @deprecated since Symfony 6.2, use VarExporter's ProxyHelper instead - */ -class ProxyHelper -{ - /** - * @return string|null The FQCN or builtin name of the type hint, or null when the type hint references an invalid self|parent context - */ - public static function getTypeHint(\ReflectionFunctionAbstract $r, ?\ReflectionParameter $p = null, bool $noBuiltin = false): ?string - { - if ($p instanceof \ReflectionParameter) { - $type = $p->getType(); - } else { - $type = $r->getReturnType(); - } - if (!$type) { - return null; - } - - return self::getTypeHintForType($type, $r, $noBuiltin); - } - - private static function getTypeHintForType(\ReflectionType $type, \ReflectionFunctionAbstract $r, bool $noBuiltin): ?string - { - $types = []; - $glue = '|'; - if ($type instanceof \ReflectionUnionType) { - $reflectionTypes = $type->getTypes(); - } elseif ($type instanceof \ReflectionIntersectionType) { - $reflectionTypes = $type->getTypes(); - $glue = '&'; - } elseif ($type instanceof \ReflectionNamedType) { - $reflectionTypes = [$type]; - } else { - return null; - } - - foreach ($reflectionTypes as $type) { - if ($type instanceof \ReflectionIntersectionType) { - $typeHint = self::getTypeHintForType($type, $r, $noBuiltin); - if (null === $typeHint) { - return null; - } - - $types[] = sprintf('(%s)', $typeHint); - - continue; - } - - if ($type->isBuiltin()) { - if (!$noBuiltin) { - $types[] = $type->getName(); - } - continue; - } - - $lcName = strtolower($type->getName()); - $prefix = $noBuiltin ? '' : '\\'; - - if ('self' !== $lcName && 'parent' !== $lcName) { - $types[] = $prefix.$type->getName(); - continue; - } - if (!$r instanceof \ReflectionMethod) { - continue; - } - if ('self' === $lcName) { - $types[] = $prefix.$r->getDeclaringClass()->name; - } else { - $types[] = ($parent = $r->getDeclaringClass()->getParentClass()) ? $prefix.$parent->name : null; - } - } - - sort($types); - - return $types ? implode($glue, $types) : null; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/ClosureLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/ClosureLoader.php deleted file mode 100644 index 1e3061d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/ClosureLoader.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Loader\Loader; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ClosureLoader loads service definitions from a PHP closure. - * - * The Closure has access to the container as its first argument. - * - * @author Fabien Potencier - */ -class ClosureLoader extends Loader -{ - private ContainerBuilder $container; - - public function __construct(ContainerBuilder $container, ?string $env = null) - { - $this->container = $container; - parent::__construct($env); - } - - public function load(mixed $resource, ?string $type = null): mixed - { - return $resource($this->container, $this->env); - } - - public function supports(mixed $resource, ?string $type = null): bool - { - return $resource instanceof \Closure; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php deleted file mode 100644 index a2aa853..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\Config\Loader\ParamConfigurator; -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -abstract class AbstractConfigurator -{ - public const FACTORY = 'unknown'; - - /** - * @var \Closure(mixed, bool):mixed|null - */ - public static $valuePreProcessor; - - /** @internal */ - protected Definition|Alias|null $definition = null; - - /** - * @return mixed - */ - public function __call(string $method, array $args) - { - if (method_exists($this, 'set'.$method)) { - return $this->{'set'.$method}(...$args); - } - - throw new \BadMethodCallException(sprintf('Call to undefined method "%s::%s()".', static::class, $method)); - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - /** - * @return void - */ - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - /** - * Checks that a value is valid, optionally replacing Definition and Reference configurators by their configure value. - * - * @param bool $allowServices whether Definition and Reference are allowed; by default, only scalars, arrays and enum are - * - * @return mixed the value, optionally cast to a Definition/Reference - */ - public static function processValue(mixed $value, bool $allowServices = false): mixed - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = static::processValue($v, $allowServices); - } - - return self::$valuePreProcessor ? (self::$valuePreProcessor)($value, $allowServices) : $value; - } - - if (self::$valuePreProcessor) { - $value = (self::$valuePreProcessor)($value, $allowServices); - } - - if ($value instanceof ReferenceConfigurator) { - $reference = new Reference($value->id, $value->invalidBehavior); - - return $value instanceof ClosureReferenceConfigurator ? new ServiceClosureArgument($reference) : $reference; - } - - if ($value instanceof InlineServiceConfigurator) { - $def = $value->definition; - $value->definition = null; - - return $def; - } - - if ($value instanceof ParamConfigurator) { - return (string) $value; - } - - if ($value instanceof self) { - throw new InvalidArgumentException(sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY)); - } - - switch (true) { - case null === $value: - case \is_scalar($value): - case $value instanceof \UnitEnum: - return $value; - - case $value instanceof ArgumentInterface: - case $value instanceof Definition: - case $value instanceof Expression: - case $value instanceof Parameter: - case $value instanceof AbstractArgument: - case $value instanceof Reference: - if ($allowServices) { - return $value; - } - } - - throw new InvalidArgumentException(sprintf('Cannot use values of type "%s" in service configuration files.', get_debug_type($value))); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php deleted file mode 100644 index 02ca9d4..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -abstract class AbstractServiceConfigurator extends AbstractConfigurator -{ - protected $parent; - protected $id; - private array $defaultTags = []; - - public function __construct(ServicesConfigurator $parent, Definition $definition, ?string $id = null, array $defaultTags = []) - { - $this->parent = $parent; - $this->definition = $definition; - $this->id = $id; - $this->defaultTags = $defaultTags; - } - - public function __destruct() - { - // default tags should be added last - foreach ($this->defaultTags as $name => $attributes) { - foreach ($attributes as $attribute) { - $this->definition->addTag($name, $attribute); - } - } - $this->defaultTags = []; - } - - /** - * Registers a service. - */ - final public function set(?string $id, ?string $class = null): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->set($id, $class); - } - - /** - * Creates an alias. - */ - final public function alias(string $id, string $referencedId): AliasConfigurator - { - $this->__destruct(); - - return $this->parent->alias($id, $referencedId); - } - - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - final public function load(string $namespace, string $resource): PrototypeConfigurator - { - $this->__destruct(); - - return $this->parent->load($namespace, $resource); - } - - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - final public function get(string $id): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->get($id); - } - - /** - * Removes an already defined service definition or alias. - */ - final public function remove(string $id): ServicesConfigurator - { - $this->__destruct(); - - return $this->parent->remove($id); - } - - /** - * Registers a stack of decorator services. - * - * @param InlineServiceConfigurator[]|ReferenceConfigurator[] $services - */ - final public function stack(string $id, array $services): AliasConfigurator - { - $this->__destruct(); - - return $this->parent->stack($id, $services); - } - - /** - * Registers a service. - */ - final public function __invoke(string $id, ?string $class = null): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->set($id, $class); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php deleted file mode 100644 index 650a956..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Alias; - -/** - * @author Nicolas Grekas - */ -class AliasConfigurator extends AbstractServiceConfigurator -{ - use Traits\DeprecateTrait; - use Traits\PublicTrait; - - public const FACTORY = 'alias'; - - public function __construct(ServicesConfigurator $parent, Alias $alias) - { - $this->parent = $parent; - $this->definition = $alias; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php deleted file mode 100644 index ba83d91..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -class ClosureReferenceConfigurator extends ReferenceConfigurator -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php deleted file mode 100644 index 5076817..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php +++ /dev/null @@ -1,201 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\Config\Loader\ParamConfigurator; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * @author Nicolas Grekas - */ -class ContainerConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'container'; - - private ContainerBuilder $container; - private PhpFileLoader $loader; - private array $instanceof; - private string $path; - private string $file; - private int $anonymousCount = 0; - private ?string $env; - - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file, ?string $env = null) - { - $this->container = $container; - $this->loader = $loader; - $this->instanceof = &$instanceof; - $this->path = $path; - $this->file = $file; - $this->env = $env; - } - - final public function extension(string $namespace, array $config): void - { - if (!$this->container->hasExtension($namespace)) { - $extensions = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $this->file, $namespace, $extensions ? implode('", "', $extensions) : 'none')); - } - - $this->container->loadFromExtension($namespace, static::processValue($config)); - } - - final public function import(string $resource, ?string $type = null, bool|string $ignoreErrors = false): void - { - $this->loader->setCurrentDir(\dirname($this->path)); - $this->loader->import($resource, $type, $ignoreErrors, $this->file); - } - - final public function parameters(): ParametersConfigurator - { - return new ParametersConfigurator($this->container); - } - - final public function services(): ServicesConfigurator - { - return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount); - } - - /** - * Get the current environment to be able to write conditional configuration. - */ - final public function env(): ?string - { - return $this->env; - } - - final public function withPath(string $path): static - { - $clone = clone $this; - $clone->path = $clone->file = $path; - $clone->loader->setCurrentDir(\dirname($path)); - - return $clone; - } -} - -/** - * Creates a parameter. - */ -function param(string $name): ParamConfigurator -{ - return new ParamConfigurator($name); -} - -/** - * Creates a reference to a service. - */ -function service(string $serviceId): ReferenceConfigurator -{ - return new ReferenceConfigurator($serviceId); -} - -/** - * Creates an inline service. - */ -function inline_service(?string $class = null): InlineServiceConfigurator -{ - return new InlineServiceConfigurator(new Definition($class)); -} - -/** - * Creates a service locator. - * - * @param array $values - */ -function service_locator(array $values): ServiceLocatorArgument -{ - $values = AbstractConfigurator::processValue($values, true); - - if (isset($values[0])) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Using integers as keys in a "service_locator()" argument is deprecated. The keys will default to the IDs of the original services in 7.0.'); - } - - return new ServiceLocatorArgument($values); -} - -/** - * Creates a lazy iterator. - * - * @param ReferenceConfigurator[] $values - */ -function iterator(array $values): IteratorArgument -{ - return new IteratorArgument(AbstractConfigurator::processValue($values, true)); -} - -/** - * Creates a lazy iterator by tag name. - */ -function tagged_iterator(string $tag, ?string $indexAttribute = null, ?string $defaultIndexMethod = null, ?string $defaultPriorityMethod = null, string|array $exclude = [], bool $excludeSelf = true): TaggedIteratorArgument -{ - return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, false, $defaultPriorityMethod, (array) $exclude, $excludeSelf); -} - -/** - * Creates a service locator by tag name. - */ -function tagged_locator(string $tag, ?string $indexAttribute = null, ?string $defaultIndexMethod = null, ?string $defaultPriorityMethod = null, string|array $exclude = [], bool $excludeSelf = true): ServiceLocatorArgument -{ - return new ServiceLocatorArgument(new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, true, $defaultPriorityMethod, (array) $exclude, $excludeSelf)); -} - -/** - * Creates an expression. - */ -function expr(string $expression): Expression -{ - return new Expression($expression); -} - -/** - * Creates an abstract argument. - */ -function abstract_arg(string $description): AbstractArgument -{ - return new AbstractArgument($description); -} - -/** - * Creates an environment variable reference. - */ -function env(string $name): EnvConfigurator -{ - return new EnvConfigurator($name); -} - -/** - * Creates a closure service reference. - */ -function service_closure(string $serviceId): ClosureReferenceConfigurator -{ - return new ClosureReferenceConfigurator($serviceId); -} - -/** - * Creates a closure. - */ -function closure(string|array|ReferenceConfigurator|Expression $callable): InlineServiceConfigurator -{ - return (new InlineServiceConfigurator(new Definition('Closure'))) - ->factory(['Closure', 'fromCallable']) - ->args([$callable]); -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php deleted file mode 100644 index 1f26c97..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - */ -class DefaultsConfigurator extends AbstractServiceConfigurator -{ - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\PublicTrait; - - public const FACTORY = 'defaults'; - - private ?string $path; - - public function __construct(ServicesConfigurator $parent, Definition $definition, ?string $path = null) - { - parent::__construct($parent, $definition, null, []); - - $this->path = $path; - } - - /** - * Adds a tag for this definition. - * - * @return $this - * - * @throws InvalidArgumentException when an invalid tag name or attribute is provided - */ - final public function tag(string $name, array $attributes = []): static - { - if ('' === $name) { - throw new InvalidArgumentException('The tag name in "_defaults" must be a non-empty string.'); - } - - $this->validateAttributes($name, $attributes); - - $this->definition->addTag($name, $attributes); - - return $this; - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): InstanceofConfigurator - { - return $this->parent->instanceof($fqcn); - } - - private function validateAttributes(string $tag, array $attributes, array $path = []): void - { - foreach ($attributes as $name => $value) { - if (\is_array($value)) { - $this->validateAttributes($tag, $value, [...$path, $name]); - } elseif (!\is_scalar($value ?? '')) { - $name = implode('.', [...$path, $name]); - throw new InvalidArgumentException(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type or an array of scalar-type.', $tag, $name)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php deleted file mode 100644 index fe67803..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php +++ /dev/null @@ -1,236 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\Config\Loader\ParamConfigurator; - -class EnvConfigurator extends ParamConfigurator -{ - /** - * @var string[] - */ - private array $stack; - - public function __construct(string $name) - { - $this->stack = explode(':', $name); - } - - public function __toString(): string - { - return '%env('.implode(':', $this->stack).')%'; - } - - /** - * @return $this - */ - public function __call(string $name, array $arguments): static - { - $processor = strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1_\2', $name)); - - $this->custom($processor, ...$arguments); - - return $this; - } - - /** - * @return $this - */ - public function custom(string $processor, ...$args): static - { - array_unshift($this->stack, $processor, ...$args); - - return $this; - } - - /** - * @return $this - */ - public function base64(): static - { - array_unshift($this->stack, 'base64'); - - return $this; - } - - /** - * @return $this - */ - public function bool(): static - { - array_unshift($this->stack, 'bool'); - - return $this; - } - - /** - * @return $this - */ - public function not(): static - { - array_unshift($this->stack, 'not'); - - return $this; - } - - /** - * @return $this - */ - public function const(): static - { - array_unshift($this->stack, 'const'); - - return $this; - } - - /** - * @return $this - */ - public function csv(): static - { - array_unshift($this->stack, 'csv'); - - return $this; - } - - /** - * @return $this - */ - public function file(): static - { - array_unshift($this->stack, 'file'); - - return $this; - } - - /** - * @return $this - */ - public function float(): static - { - array_unshift($this->stack, 'float'); - - return $this; - } - - /** - * @return $this - */ - public function int(): static - { - array_unshift($this->stack, 'int'); - - return $this; - } - - /** - * @return $this - */ - public function json(): static - { - array_unshift($this->stack, 'json'); - - return $this; - } - - /** - * @return $this - */ - public function key(string $key): static - { - array_unshift($this->stack, 'key', $key); - - return $this; - } - - /** - * @return $this - */ - public function url(): static - { - array_unshift($this->stack, 'url'); - - return $this; - } - - /** - * @return $this - */ - public function queryString(): static - { - array_unshift($this->stack, 'query_string'); - - return $this; - } - - /** - * @return $this - */ - public function resolve(): static - { - array_unshift($this->stack, 'resolve'); - - return $this; - } - - /** - * @return $this - */ - public function default(string $fallbackParam): static - { - array_unshift($this->stack, 'default', $fallbackParam); - - return $this; - } - - /** - * @return $this - */ - public function string(): static - { - array_unshift($this->stack, 'string'); - - return $this; - } - - /** - * @return $this - */ - public function trim(): static - { - array_unshift($this->stack, 'trim'); - - return $this; - } - - /** - * @return $this - */ - public function require(): static - { - array_unshift($this->stack, 'require'); - - return $this; - } - - /** - * @param class-string<\BackedEnum> $backedEnumClassName - * - * @return $this - */ - public function enum(string $backedEnumClassName): static - { - array_unshift($this->stack, 'enum', $backedEnumClassName); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/FromCallableConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/FromCallableConfigurator.php deleted file mode 100644 index 7fe0d3d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/FromCallableConfigurator.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class FromCallableConfigurator extends AbstractServiceConfigurator -{ - use Traits\AbstractTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\DecorateTrait; - use Traits\DeprecateTrait; - use Traits\LazyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - - public const FACTORY = 'services'; - - private ServiceConfigurator $serviceConfigurator; - - public function __construct(ServiceConfigurator $serviceConfigurator, Definition $definition) - { - $this->serviceConfigurator = $serviceConfigurator; - - parent::__construct($serviceConfigurator->parent, $definition, $serviceConfigurator->id); - } - - public function __destruct() - { - $this->serviceConfigurator->__destruct(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php deleted file mode 100644 index 0b1990e..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class InlineServiceConfigurator extends AbstractConfigurator -{ - use Traits\ArgumentTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\ConstructorTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\TagTrait; - - public const FACTORY = 'service'; - - private string $id = '[inline]'; - private bool $allowParent = true; - private ?string $path = null; - - public function __construct(Definition $definition) - { - $this->definition = $definition; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php deleted file mode 100644 index 9de0baa..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class InstanceofConfigurator extends AbstractServiceConfigurator -{ - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\ConstructorTrait; - use Traits\LazyTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - - public const FACTORY = 'instanceof'; - - private ?string $path; - - public function __construct(ServicesConfigurator $parent, Definition $definition, string $id, ?string $path = null) - { - parent::__construct($parent, $definition, $id, []); - - $this->path = $path; - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): self - { - return $this->parent->instanceof($fqcn); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php deleted file mode 100644 index df5a94b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * @author Nicolas Grekas - */ -class ParametersConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'parameters'; - - private ContainerBuilder $container; - - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } - - /** - * @return $this - */ - final public function set(string $name, mixed $value): static - { - if ($value instanceof Expression) { - throw new InvalidArgumentException(sprintf('Using an expression in parameter "%s" is not allowed.', $name)); - } - - $this->container->setParameter($name, static::processValue($value, true)); - - return $this; - } - - /** - * @return $this - */ - final public function __invoke(string $name, mixed $value): static - { - return $this->set($name, $value); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php deleted file mode 100644 index 5d84472..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; - -/** - * @author Nicolas Grekas - */ -class PrototypeConfigurator extends AbstractServiceConfigurator -{ - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\ConstructorTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - - public const FACTORY = 'load'; - - private PhpFileLoader $loader; - private string $resource; - private ?array $excludes = null; - private bool $allowParent; - private ?string $path; - - public function __construct(ServicesConfigurator $parent, PhpFileLoader $loader, Definition $defaults, string $namespace, string $resource, bool $allowParent, ?string $path = null) - { - $definition = new Definition(); - if (!$defaults->isPublic() || !$defaults->isPrivate()) { - $definition->setPublic($defaults->isPublic()); - } - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - // deep clone, to avoid multiple process of the same instance in the passes - $definition->setBindings(unserialize(serialize($defaults->getBindings()))); - $definition->setChanges([]); - - $this->loader = $loader; - $this->resource = $resource; - $this->allowParent = $allowParent; - $this->path = $path; - - parent::__construct($parent, $definition, $namespace, $defaults->getTags()); - } - - public function __destruct() - { - parent::__destruct(); - - if (isset($this->loader)) { - $this->loader->registerClasses($this->definition, $this->id, $this->resource, $this->excludes, $this->path); - } - unset($this->loader); - } - - /** - * Excludes files from registration using glob patterns. - * - * @param string[]|string $excludes - * - * @return $this - */ - final public function exclude(array|string $excludes): static - { - $this->excludes = (array) $excludes; - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php deleted file mode 100644 index 4a83f9c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * @author Nicolas Grekas - */ -class ReferenceConfigurator extends AbstractConfigurator -{ - /** @internal */ - protected string $id; - - /** @internal */ - protected int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - - public function __construct(string $id) - { - $this->id = $id; - } - - /** - * @return $this - */ - final public function ignoreOnInvalid(): static - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - - return $this; - } - - /** - * @return $this - */ - final public function nullOnInvalid(): static - { - $this->invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - - return $this; - } - - /** - * @return $this - */ - final public function ignoreOnUninitialized(): static - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - - return $this; - } - - public function __toString(): string - { - return $this->id; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php deleted file mode 100644 index 57f498a..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class ServiceConfigurator extends AbstractServiceConfigurator -{ - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ClassTrait; - use Traits\ConfiguratorTrait; - use Traits\ConstructorTrait; - use Traits\DecorateTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\FromCallableTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\SyntheticTrait; - use Traits\TagTrait; - - public const FACTORY = 'services'; - - private ContainerBuilder $container; - private array $instanceof; - private bool $allowParent; - private ?string $path; - private bool $destructed = false; - - public function __construct(ContainerBuilder $container, array $instanceof, bool $allowParent, ServicesConfigurator $parent, Definition $definition, ?string $id, array $defaultTags, ?string $path = null) - { - $this->container = $container; - $this->instanceof = $instanceof; - $this->allowParent = $allowParent; - $this->path = $path; - - parent::__construct($parent, $definition, $id, $defaultTags); - } - - public function __destruct() - { - if ($this->destructed) { - return; - } - $this->destructed = true; - - parent::__destruct(); - - $this->container->removeBindings($this->id); - $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof)); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php deleted file mode 100644 index 0c2e5a4..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php +++ /dev/null @@ -1,192 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; - -/** - * @author Nicolas Grekas - */ -class ServicesConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'services'; - - private Definition $defaults; - private ContainerBuilder $container; - private PhpFileLoader $loader; - private array $instanceof; - private ?string $path; - private string $anonymousHash; - private int $anonymousCount; - - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, ?string $path = null, int &$anonymousCount = 0) - { - $this->defaults = new Definition(); - $this->container = $container; - $this->loader = $loader; - $this->instanceof = &$instanceof; - $this->path = $path; - $this->anonymousHash = ContainerBuilder::hash($path ?: mt_rand()); - $this->anonymousCount = &$anonymousCount; - $instanceof = []; - } - - /** - * Defines a set of defaults for following service definitions. - */ - final public function defaults(): DefaultsConfigurator - { - return new DefaultsConfigurator($this, $this->defaults = new Definition(), $this->path); - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): InstanceofConfigurator - { - $this->instanceof[$fqcn] = $definition = new ChildDefinition(''); - - return new InstanceofConfigurator($this, $definition, $fqcn, $this->path); - } - - /** - * Registers a service. - * - * @param string|null $id The service id, or null to create an anonymous service - * @param string|null $class The class of the service, or null when $id is also the class name - */ - final public function set(?string $id, ?string $class = null): ServiceConfigurator - { - $defaults = $this->defaults; - $definition = new Definition(); - - if (null === $id) { - if (!$class) { - throw new \LogicException('Anonymous services must have a class name.'); - } - - $id = sprintf('.%d_%s', ++$this->anonymousCount, preg_replace('/^.*\\\\/', '', $class).'~'.$this->anonymousHash); - } elseif (!$defaults->isPublic() || !$defaults->isPrivate()) { - $definition->setPublic($defaults->isPublic() && !$defaults->isPrivate()); - } - - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - // deep clone, to avoid multiple process of the same instance in the passes - $definition->setBindings(unserialize(serialize($defaults->getBindings()))); - $definition->setChanges([]); - - $configurator = new ServiceConfigurator($this->container, $this->instanceof, true, $this, $definition, $id, $defaults->getTags(), $this->path); - - return null !== $class ? $configurator->class($class) : $configurator; - } - - /** - * Removes an already defined service definition or alias. - * - * @return $this - */ - final public function remove(string $id): static - { - $this->container->removeDefinition($id); - $this->container->removeAlias($id); - - return $this; - } - - /** - * Creates an alias. - */ - final public function alias(string $id, string $referencedId): AliasConfigurator - { - $ref = static::processValue($referencedId, true); - $alias = new Alias((string) $ref); - if (!$this->defaults->isPublic() || !$this->defaults->isPrivate()) { - $alias->setPublic($this->defaults->isPublic()); - } - $this->container->setAlias($id, $alias); - - return new AliasConfigurator($this, $alias); - } - - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - final public function load(string $namespace, string $resource): PrototypeConfigurator - { - return new PrototypeConfigurator($this, $this->loader, $this->defaults, $namespace, $resource, true, $this->path); - } - - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - final public function get(string $id): ServiceConfigurator - { - $definition = $this->container->getDefinition($id); - - return new ServiceConfigurator($this->container, $definition->getInstanceofConditionals(), true, $this, $definition, $id, []); - } - - /** - * Registers a stack of decorator services. - * - * @param InlineServiceConfigurator[]|ReferenceConfigurator[] $services - */ - final public function stack(string $id, array $services): AliasConfigurator - { - foreach ($services as $i => $service) { - if ($service instanceof InlineServiceConfigurator) { - $definition = $service->definition->setInstanceofConditionals($this->instanceof); - - $changes = $definition->getChanges(); - $definition->setAutowired((isset($changes['autowired']) ? $definition : $this->defaults)->isAutowired()); - $definition->setAutoconfigured((isset($changes['autoconfigured']) ? $definition : $this->defaults)->isAutoconfigured()); - $definition->setBindings(array_merge($this->defaults->getBindings(), $definition->getBindings())); - $definition->setChanges($changes); - - $services[$i] = $definition; - } elseif (!$service instanceof ReferenceConfigurator) { - throw new InvalidArgumentException(sprintf('"%s()" expects a list of definitions as returned by "%s()" or "%s()", "%s" given at index "%s" for service "%s".', __METHOD__, InlineServiceConfigurator::FACTORY, ReferenceConfigurator::FACTORY, $service instanceof AbstractConfigurator ? $service::FACTORY.'()' : get_debug_type($service), $i, $id)); - } - } - - $alias = $this->alias($id, ''); - $alias->definition = $this->set($id) - ->parent('') - ->args($services) - ->tag('container.stack') - ->definition; - - return $alias; - } - - /** - * Registers a service. - */ - final public function __invoke(string $id, ?string $class = null): ServiceConfigurator - { - return $this->set($id, $class); - } - - public function __destruct() - { - $this->loader->registerAliasesForSinglyImplementedInterfaces(); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php deleted file mode 100644 index b42b070..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AbstractTrait -{ - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return $this - */ - final public function abstract(bool $abstract = true): static - { - $this->definition->setAbstract($abstract); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php deleted file mode 100644 index 67051f3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ArgumentTrait -{ - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - final public function args(array $arguments): static - { - $this->definition->setArguments(static::processValue($arguments, true)); - - return $this; - } - - /** - * Sets one argument to pass to the service constructor/factory method. - * - * @return $this - */ - final public function arg(string|int $key, mixed $value): static - { - $this->definition->setArgument($key, static::processValue($value, true)); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php deleted file mode 100644 index f5762c5..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait AutoconfigureTrait -{ - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @return $this - * - * @throws InvalidArgumentException when a parent is already set - */ - final public function autoconfigure(bool $autoconfigured = true): static - { - $this->definition->setAutoconfigured($autoconfigured); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php deleted file mode 100644 index 9bce28f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AutowireTrait -{ - /** - * Enables/disables autowiring. - * - * @return $this - */ - final public function autowire(bool $autowired = true): static - { - $this->definition->setAutowired($autowired); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php deleted file mode 100644 index 6bf6b6f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Loader\Configurator\DefaultsConfigurator; -use Symfony\Component\DependencyInjection\Loader\Configurator\InstanceofConfigurator; - -trait BindTrait -{ - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @param string $nameOrFqcn A parameter name with its "$" prefix, or an FQCN - * @param mixed $valueOrRef The value or reference to bind - * - * @return $this - */ - final public function bind(string $nameOrFqcn, mixed $valueOrRef): static - { - $valueOrRef = static::processValue($valueOrRef, true); - $bindings = $this->definition->getBindings(); - $type = $this instanceof DefaultsConfigurator ? BoundArgument::DEFAULTS_BINDING : ($this instanceof InstanceofConfigurator ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING); - $bindings[$nameOrFqcn] = new BoundArgument($valueOrRef, true, $type, $this->path ?? null); - $this->definition->setBindings($bindings); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php deleted file mode 100644 index dbfb158..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait CallTrait -{ - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - final public function call(string $method, array $arguments = [], bool $returnsClone = false): static - { - $this->definition->addMethodCall($method, static::processValue($arguments, true), $returnsClone); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php deleted file mode 100644 index 429cebc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ClassTrait -{ - /** - * Sets the service class. - * - * @return $this - */ - final public function class(?string $class): static - { - $this->definition->setClass($class); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php deleted file mode 100644 index a4b447c..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator; - -trait ConfiguratorTrait -{ - /** - * Sets a configurator to call after the service is fully initialized. - * - * @return $this - */ - final public function configurator(string|array|ReferenceConfigurator $configurator): static - { - $this->definition->setConfigurator(static::processValue($configurator, true)); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConstructorTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConstructorTrait.php deleted file mode 100644 index 7f16ed5..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConstructorTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ConstructorTrait -{ - /** - * Sets a static constructor. - * - * @return $this - */ - final public function constructor(string $constructor): static - { - $this->definition->setFactory([null, $constructor]); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php deleted file mode 100644 index afb56ae..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait DecorateTrait -{ - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - final public function decorate(?string $id, ?string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): static - { - $this->definition->setDecoratedService($id, $renamedId, $priority, $invalidBehavior); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php deleted file mode 100644 index 04ff9a0..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait DeprecateTrait -{ - /** - * Whether this definition is deprecated, that means it should not be called anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - final public function deprecate(string $package, string $version, string $message): static - { - $this->definition->setDeprecated($package, $version, $message); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php deleted file mode 100644 index 1c19f1d..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator; -use Symfony\Component\ExpressionLanguage\Expression; - -trait FactoryTrait -{ - /** - * Sets a factory. - * - * @return $this - */ - final public function factory(string|array|ReferenceConfigurator|Expression $factory): static - { - if (\is_string($factory) && 1 === substr_count($factory, ':')) { - $factoryParts = explode(':', $factory); - - throw new InvalidArgumentException(sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1])); - } - - if ($factory instanceof Expression) { - $factory = '@='.$factory; - } - - $this->definition->setFactory(static::processValue($factory, true)); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php deleted file mode 100644 index 7b72181..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait FileTrait -{ - /** - * Sets a file to require before creating the service. - * - * @return $this - */ - final public function file(string $file): static - { - $this->definition->setFile($file); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FromCallableTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FromCallableTrait.php deleted file mode 100644 index e3508ab..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FromCallableTrait.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Loader\Configurator\FromCallableConfigurator; -use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator; -use Symfony\Component\ExpressionLanguage\Expression; - -trait FromCallableTrait -{ - final public function fromCallable(string|array|ReferenceConfigurator|Expression $callable): FromCallableConfigurator - { - if ($this->definition instanceof ChildDefinition) { - throw new InvalidArgumentException('The configuration key "parent" is unsupported when using "fromCallable()".'); - } - - foreach ([ - 'synthetic' => 'isSynthetic', - 'factory' => 'getFactory', - 'file' => 'getFile', - 'arguments' => 'getArguments', - 'properties' => 'getProperties', - 'configurator' => 'getConfigurator', - 'calls' => 'getMethodCalls', - ] as $key => $method) { - if ($this->definition->$method()) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported when using "fromCallable()".', $key)); - } - } - - $this->definition->setFactory(['Closure', 'fromCallable']); - - if (\is_string($callable) && 1 === substr_count($callable, ':')) { - $parts = explode(':', $callable); - - throw new InvalidArgumentException(sprintf('Invalid callable "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $callable, $parts[0], $parts[1])); - } - - if ($callable instanceof Expression) { - $callable = '@='.$callable; - } - - $this->definition->setArguments([static::processValue($callable, true)]); - - if ('Closure' !== ($this->definition->getClass() ?? 'Closure')) { - $this->definition->setLazy(true); - } else { - $this->definition->setClass('Closure'); - } - - return new FromCallableConfigurator($this, $this->definition); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php deleted file mode 100644 index ac4326b..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait LazyTrait -{ - /** - * Sets the lazy flag of this service. - * - * @param bool|string $lazy A FQCN to derivate the lazy proxy from or `true` to make it extend from the definition's class - * - * @return $this - */ - final public function lazy(bool|string $lazy = true): static - { - $this->definition->setLazy((bool) $lazy); - if (\is_string($lazy)) { - $this->definition->addTag('proxy', ['interface' => $lazy]); - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php deleted file mode 100644 index 4096025..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait ParentTrait -{ - /** - * Sets the Definition to inherit from. - * - * @return $this - * - * @throws InvalidArgumentException when parent cannot be set - */ - final public function parent(string $parent): static - { - if (!$this->allowParent) { - throw new InvalidArgumentException(sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id)); - } - - if ($this->definition instanceof ChildDefinition) { - $this->definition->setParent($parent); - } else { - // cast Definition to ChildDefinition - $definition = serialize($this->definition); - $definition = substr_replace($definition, '53', 2, 2); - $definition = substr_replace($definition, 'Child', 44, 0); - $definition = unserialize($definition); - - $this->definition = $definition->setParent($parent); - } - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php deleted file mode 100644 index 0dab40f..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PropertyTrait -{ - /** - * Sets a specific property. - * - * @return $this - */ - final public function property(string $name, mixed $value): static - { - $this->definition->setProperty($name, static::processValue($value, true)); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php deleted file mode 100644 index 3d88d74..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PublicTrait -{ - /** - * @return $this - */ - final public function public(): static - { - $this->definition->setPublic(true); - - return $this; - } - - /** - * @return $this - */ - final public function private(): static - { - $this->definition->setPublic(false); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php deleted file mode 100644 index 801fabc..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ShareTrait -{ - /** - * Sets if the service must be shared or not. - * - * @return $this - */ - final public function share(bool $shared = true): static - { - $this->definition->setShared($shared); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php deleted file mode 100644 index 5e8c4b3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait SyntheticTrait -{ - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return $this - */ - final public function synthetic(bool $synthetic = true): static - { - $this->definition->setSynthetic($synthetic); - - return $this; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php deleted file mode 100644 index a38d04a..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait TagTrait -{ - /** - * Adds a tag for this definition. - * - * @return $this - */ - final public function tag(string $name, array $attributes = []): static - { - if ('' === $name) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" must be a non-empty string.', $this->id)); - } - - $this->validateAttributes($name, $attributes); - - $this->definition->addTag($name, $attributes); - - return $this; - } - - private function validateAttributes(string $tag, array $attributes, array $path = []): void - { - foreach ($attributes as $name => $value) { - if (\is_array($value)) { - $this->validateAttributes($tag, $value, [...$path, $name]); - } elseif (!\is_scalar($value ?? '')) { - $name = implode('.', [...$path, $name]); - throw new InvalidArgumentException(sprintf('A tag attribute must be of a scalar-type or an array of scalar-types for service "%s", tag "%s", attribute "%s".', $this->id, $tag, $name)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php deleted file mode 100644 index d435366..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -/** - * DirectoryLoader is a recursive loader to go through directories. - * - * @author Sebastien Lavoie - */ -class DirectoryLoader extends FileLoader -{ - public function load(mixed $file, ?string $type = null): mixed - { - $file = rtrim($file, '/'); - $path = $this->locator->locate($file); - $this->container->fileExists($path, false); - - foreach (scandir($path) as $dir) { - if ('.' !== $dir[0]) { - if (is_dir($path.'/'.$dir)) { - $dir .= '/'; // append / to allow recursion - } - - $this->setCurrentDir($path); - - $this->import($dir, null, false, $path); - } - } - - return null; - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if ('directory' === $type) { - return true; - } - - return null === $type && \is_string($resource) && str_ends_with($resource, '/'); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/FileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/FileLoader.php deleted file mode 100644 index 9baedb4..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/FileLoader.php +++ /dev/null @@ -1,347 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use Symfony\Component\Config\Exception\LoaderLoadException; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\Config\Loader\FileLoader as BaseFileLoader; -use Symfony\Component\Config\Loader\Loader; -use Symfony\Component\Config\Resource\GlobResource; -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Attribute\AsAlias; -use Symfony\Component\DependencyInjection\Attribute\Exclude; -use Symfony\Component\DependencyInjection\Attribute\When; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Compiler\RegisterAutoconfigureAttributesPass; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; - -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends BaseFileLoader -{ - public const ANONYMOUS_ID_REGEXP = '/^\.\d+_[^~]*+~[._a-zA-Z\d]{7}$/'; - - protected $container; - protected $isLoadingInstanceof = false; - protected $instanceof = []; - protected $interfaces = []; - protected $singlyImplemented = []; - /** @var array */ - protected $aliases = []; - protected $autoRegisterAliasesForSinglyImplementedInterfaces = true; - - public function __construct(ContainerBuilder $container, FileLocatorInterface $locator, ?string $env = null) - { - $this->container = $container; - - parent::__construct($locator, $env); - } - - /** - * @param bool|string $ignoreErrors Whether errors should be ignored; pass "not_found" to ignore only when the loaded resource is not found - */ - public function import(mixed $resource, ?string $type = null, bool|string $ignoreErrors = false, ?string $sourceResource = null, $exclude = null): mixed - { - $args = \func_get_args(); - - if ($ignoreNotFound = 'not_found' === $ignoreErrors) { - $args[2] = false; - } elseif (!\is_bool($ignoreErrors)) { - throw new \TypeError(sprintf('Invalid argument $ignoreErrors provided to "%s::import()": boolean or "not_found" expected, "%s" given.', static::class, get_debug_type($ignoreErrors))); - } - - try { - return parent::import(...$args); - } catch (LoaderLoadException $e) { - if (!$ignoreNotFound || !($prev = $e->getPrevious()) instanceof FileLocatorFileNotFoundException) { - throw $e; - } - - foreach ($prev->getTrace() as $frame) { - if ('import' === ($frame['function'] ?? null) && is_a($frame['class'] ?? '', Loader::class, true)) { - break; - } - } - - if (__FILE__ !== $frame['file']) { - throw $e; - } - } - - return null; - } - - /** - * Registers a set of classes as services using PSR-4 for discovery. - * - * @param Definition $prototype A definition to use as template - * @param string $namespace The namespace prefix of classes in the scanned directory - * @param string $resource The directory to look for classes, glob-patterns allowed - * @param string|string[]|null $exclude A globbed path of files to exclude or an array of globbed paths of files to exclude - * @param string|null $source The path to the file that defines the auto-discovery rule - * - * @return void - */ - public function registerClasses(Definition $prototype, string $namespace, string $resource, string|array|null $exclude = null/* , string $source = null */) - { - if (!str_ends_with($namespace, '\\')) { - throw new InvalidArgumentException(sprintf('Namespace prefix must end with a "\\": "%s".', $namespace)); - } - if (!preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+\\\\)++$/', $namespace)) { - throw new InvalidArgumentException(sprintf('Namespace is not a valid PSR-4 prefix: "%s".', $namespace)); - } - // This can happen with YAML files - if (\is_array($exclude) && \in_array(null, $exclude, true)) { - throw new InvalidArgumentException('The exclude list must not contain a "null" value.'); - } - // This can happen with XML files - if (\is_array($exclude) && \in_array('', $exclude, true)) { - throw new InvalidArgumentException('The exclude list must not contain an empty value.'); - } - - $source = \func_num_args() > 4 ? func_get_arg(4) : null; - $autoconfigureAttributes = new RegisterAutoconfigureAttributesPass(); - $autoconfigureAttributes = $autoconfigureAttributes->accept($prototype) ? $autoconfigureAttributes : null; - $classes = $this->findClasses($namespace, $resource, (array) $exclude, $autoconfigureAttributes, $source); - - $getPrototype = static fn () => clone $prototype; - $serialized = serialize($prototype); - - // avoid deep cloning if no definitions are nested - if (strpos($serialized, 'O:48:"Symfony\Component\DependencyInjection\Definition"', 55) - || strpos($serialized, 'O:53:"Symfony\Component\DependencyInjection\ChildDefinition"', 55) - ) { - // prepare for deep cloning - foreach (['Arguments', 'Properties', 'MethodCalls', 'Configurator', 'Factory', 'Bindings'] as $key) { - $serialized = serialize($prototype->{'get'.$key}()); - - if (strpos($serialized, 'O:48:"Symfony\Component\DependencyInjection\Definition"') - || strpos($serialized, 'O:53:"Symfony\Component\DependencyInjection\ChildDefinition"') - ) { - $getPrototype = static fn () => $getPrototype()->{'set'.$key}(unserialize($serialized)); - } - } - } - unset($serialized); - - foreach ($classes as $class => $errorMessage) { - if (null === $errorMessage && $autoconfigureAttributes) { - $r = $this->container->getReflectionClass($class); - if ($r->getAttributes(Exclude::class)[0] ?? null) { - $this->addContainerExcludedTag($class, $source); - continue; - } - if ($this->env) { - $attribute = null; - foreach ($r->getAttributes(When::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { - if ($this->env === $attribute->newInstance()->env) { - $attribute = null; - break; - } - } - if (null !== $attribute) { - $this->addContainerExcludedTag($class, $source); - continue; - } - } - } - - if (interface_exists($class, false)) { - $this->interfaces[] = $class; - } else { - $this->setDefinition($class, $definition = $getPrototype()); - if (null !== $errorMessage) { - $definition->addError($errorMessage); - - continue; - } - $definition->setClass($class); - - $interfaces = []; - foreach (class_implements($class, false) as $interface) { - $this->singlyImplemented[$interface] = ($this->singlyImplemented[$interface] ?? $class) !== $class ? false : $class; - $interfaces[] = $interface; - } - - if (!$autoconfigureAttributes) { - continue; - } - $r = $this->container->getReflectionClass($class); - $defaultAlias = 1 === \count($interfaces) ? $interfaces[0] : null; - foreach ($r->getAttributes(AsAlias::class) as $attr) { - /** @var AsAlias $attribute */ - $attribute = $attr->newInstance(); - $alias = $attribute->id ?? $defaultAlias; - $public = $attribute->public; - if (null === $alias) { - throw new LogicException(sprintf('Alias cannot be automatically determined for class "%s". If you have used the #[AsAlias] attribute with a class implementing multiple interfaces, add the interface you want to alias to the first parameter of #[AsAlias].', $class)); - } - if (isset($this->aliases[$alias])) { - throw new LogicException(sprintf('The "%s" alias has already been defined with the #[AsAlias] attribute in "%s".', $alias, $this->aliases[$alias])); - } - $this->aliases[$alias] = new Alias($class, $public); - } - } - } - - foreach ($this->aliases as $alias => $aliasDefinition) { - $this->container->setAlias($alias, $aliasDefinition); - } - - if ($this->autoRegisterAliasesForSinglyImplementedInterfaces) { - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - /** - * @return void - */ - public function registerAliasesForSinglyImplementedInterfaces() - { - foreach ($this->interfaces as $interface) { - if (!empty($this->singlyImplemented[$interface]) && !isset($this->aliases[$interface]) && !$this->container->has($interface)) { - $this->container->setAlias($interface, $this->singlyImplemented[$interface]); - } - } - - $this->interfaces = $this->singlyImplemented = $this->aliases = []; - } - - /** - * Registers a definition in the container with its instanceof-conditionals. - * - * @return void - */ - protected function setDefinition(string $id, Definition $definition) - { - $this->container->removeBindings($id); - - foreach ($definition->getTag('container.error') as $error) { - if (isset($error['message'])) { - $definition->addError($error['message']); - } - } - - if ($this->isLoadingInstanceof) { - if (!$definition instanceof ChildDefinition) { - throw new InvalidArgumentException(sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, get_debug_type($definition))); - } - $this->instanceof[$id] = $definition; - } else { - $this->container->setDefinition($id, $definition->setInstanceofConditionals($this->instanceof)); - } - } - - private function findClasses(string $namespace, string $pattern, array $excludePatterns, ?RegisterAutoconfigureAttributesPass $autoconfigureAttributes, ?string $source): array - { - $parameterBag = $this->container->getParameterBag(); - - $excludePaths = []; - $excludePrefix = null; - $excludePatterns = $parameterBag->unescapeValue($parameterBag->resolveValue($excludePatterns)); - foreach ($excludePatterns as $excludePattern) { - foreach ($this->glob($excludePattern, true, $resource, true, true) as $path => $info) { - $excludePrefix ??= $resource->getPrefix(); - - // normalize Windows slashes and remove trailing slashes - $excludePaths[rtrim(str_replace('\\', '/', $path), '/')] = true; - } - } - - $pattern = $parameterBag->unescapeValue($parameterBag->resolveValue($pattern)); - $classes = []; - $prefixLen = null; - foreach ($this->glob($pattern, true, $resource, false, false, $excludePaths) as $path => $info) { - if (null === $prefixLen) { - $prefixLen = \strlen($resource->getPrefix()); - - if ($excludePrefix && !str_starts_with($excludePrefix, $resource->getPrefix())) { - throw new InvalidArgumentException(sprintf('Invalid "exclude" pattern when importing classes for "%s": make sure your "exclude" pattern (%s) is a subset of the "resource" pattern (%s).', $namespace, $excludePattern, $pattern)); - } - } - - if (isset($excludePaths[str_replace('\\', '/', $path)])) { - continue; - } - - if (!str_ends_with($path, '.php')) { - continue; - } - $class = $namespace.ltrim(str_replace('/', '\\', substr($path, $prefixLen, -4)), '\\'); - - if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)*+$/', $class)) { - continue; - } - - try { - $r = $this->container->getReflectionClass($class); - } catch (\ReflectionException $e) { - $classes[$class] = $e->getMessage(); - continue; - } - // check to make sure the expected class exists - if (!$r) { - throw new InvalidArgumentException(sprintf('Expected to find class "%s" in file "%s" while importing services from resource "%s", but it was not found! Check the namespace prefix used with the resource.', $class, $path, $pattern)); - } - - if ($r->isInstantiable() || $r->isInterface()) { - $classes[$class] = null; - } - - if ($autoconfigureAttributes && !$r->isInstantiable()) { - $autoconfigureAttributes->processClass($this->container, $r); - } - } - - // track only for new & removed files - if ($resource instanceof GlobResource) { - $this->container->addResource($resource); - } else { - foreach ($resource as $path) { - $this->container->fileExists($path, false); - } - } - - if (null !== $prefixLen) { - foreach ($excludePaths as $path => $_) { - $class = $namespace.ltrim(str_replace('/', '\\', substr($path, $prefixLen, str_ends_with($path, '.php') ? -4 : null)), '\\'); - $this->addContainerExcludedTag($class, $source); - } - } - - return $classes; - } - - private function addContainerExcludedTag(string $class, ?string $source): void - { - if ($this->container->has($class)) { - return; - } - - static $attributes = []; - - if (null !== $source && !isset($attributes[$source])) { - $attributes[$source] = ['source' => sprintf('in "%s/%s"', basename(\dirname($source)), basename($source))]; - } - - $this->container->register($class, $class) - ->setAbstract(true) - ->addTag('container.excluded', null !== $source ? $attributes[$source] : []); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php deleted file mode 100644 index 4716f11..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Nicolas Grekas - */ -class GlobFileLoader extends FileLoader -{ - public function load(mixed $resource, ?string $type = null): mixed - { - foreach ($this->glob($resource, false, $globResource) as $path => $info) { - $this->import($path); - } - - $this->container->addResource($globResource); - - return null; - } - - public function supports(mixed $resource, ?string $type = null): bool - { - return 'glob' === $type; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/IniFileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/IniFileLoader.php deleted file mode 100644 index 424fbdd..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/IniFileLoader.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Util\XmlUtils; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * IniFileLoader loads parameters from INI files. - * - * @author Fabien Potencier - */ -class IniFileLoader extends FileLoader -{ - public function load(mixed $resource, ?string $type = null): mixed - { - $path = $this->locator->locate($resource); - - $this->container->fileExists($path); - - // first pass to catch parsing errors - $result = parse_ini_file($path, true); - if (false === $result || [] === $result) { - throw new InvalidArgumentException(sprintf('The "%s" file is not valid.', $resource)); - } - - // real raw parsing - $result = parse_ini_file($path, true, \INI_SCANNER_RAW); - - if (isset($result['parameters']) && \is_array($result['parameters'])) { - foreach ($result['parameters'] as $key => $value) { - if (\is_array($value)) { - $this->container->setParameter($key, array_map($this->phpize(...), $value)); - } else { - $this->container->setParameter($key, $this->phpize($value)); - } - } - } - - if ($this->env && \is_array($result['parameters@'.$this->env] ?? null)) { - foreach ($result['parameters@'.$this->env] as $key => $value) { - $this->container->setParameter($key, $this->phpize($value)); - } - } - - return null; - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'ini' === pathinfo($resource, \PATHINFO_EXTENSION)) { - return true; - } - - return 'ini' === $type; - } - - /** - * Note that the following features are not supported: - * * strings with escaped quotes are not supported "foo\"bar"; - * * string concatenation ("foo" "bar"). - */ - private function phpize(string $value): mixed - { - // trim on the right as comments removal keep whitespaces - if ($value !== $v = rtrim($value)) { - $value = '""' === substr_replace($v, '', 1, -1) ? substr($v, 1, -1) : $v; - } - $lowercaseValue = strtolower($value); - - return match (true) { - \defined($value) => \constant($value), - 'yes' === $lowercaseValue, - 'on' === $lowercaseValue => true, - 'no' === $lowercaseValue, - 'off' === $lowercaseValue, - 'none' === $lowercaseValue => false, - isset($value[1]) && ( - ("'" === $value[0] && "'" === $value[\strlen($value) - 1]) - || ('"' === $value[0] && '"' === $value[\strlen($value) - 1]) - ) => substr($value, 1, -1), // quoted string - default => XmlUtils::phpize($value), - }; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php deleted file mode 100644 index cdaf8ca..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php +++ /dev/null @@ -1,206 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Builder\ConfigBuilderGenerator; -use Symfony\Component\Config\Builder\ConfigBuilderGeneratorInterface; -use Symfony\Component\Config\Builder\ConfigBuilderInterface; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\DependencyInjection\Attribute\When; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -/** - * PhpFileLoader loads service definitions from a PHP file. - * - * The PHP file is required and the $container variable can be - * used within the file to change the container. - * - * @author Fabien Potencier - */ -class PhpFileLoader extends FileLoader -{ - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - private ?ConfigBuilderGeneratorInterface $generator; - - public function __construct(ContainerBuilder $container, FileLocatorInterface $locator, ?string $env = null, ?ConfigBuilderGeneratorInterface $generator = null) - { - parent::__construct($container, $locator, $env); - $this->generator = $generator; - } - - public function load(mixed $resource, ?string $type = null): mixed - { - // the container and loader variables are exposed to the included file below - $container = $this->container; - $loader = $this; - - $path = $this->locator->locate($resource); - $this->setCurrentDir(\dirname($path)); - $this->container->fileExists($path); - - // the closure forbids access to the private scope in the included file - $load = \Closure::bind(function ($path, $env) use ($container, $loader, $resource, $type) { - return include $path; - }, $this, ProtectedPhpFileLoader::class); - - try { - $callback = $load($path, $this->env); - - if (\is_object($callback) && \is_callable($callback)) { - $this->executeCallback($callback, new ContainerConfigurator($this->container, $this, $this->instanceof, $path, $resource, $this->env), $path); - } - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - - return null; - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'php' === pathinfo($resource, \PATHINFO_EXTENSION)) { - return true; - } - - return 'php' === $type; - } - - /** - * Resolve the parameters to the $callback and execute it. - */ - private function executeCallback(callable $callback, ContainerConfigurator $containerConfigurator, string $path): void - { - $callback = $callback(...); - $arguments = []; - $configBuilders = []; - $r = new \ReflectionFunction($callback); - - $attribute = null; - foreach ($r->getAttributes(When::class, \ReflectionAttribute::IS_INSTANCEOF) as $attribute) { - if ($this->env === $attribute->newInstance()->env) { - $attribute = null; - break; - } - } - if (null !== $attribute) { - return; - } - - foreach ($r->getParameters() as $parameter) { - $reflectionType = $parameter->getType(); - if (!$reflectionType instanceof \ReflectionNamedType) { - throw new \InvalidArgumentException(sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s" or "%s").', $parameter->getName(), $path, ContainerConfigurator::class, ContainerBuilder::class)); - } - $type = $reflectionType->getName(); - - switch ($type) { - case ContainerConfigurator::class: - $arguments[] = $containerConfigurator; - break; - case ContainerBuilder::class: - $arguments[] = $this->container; - break; - case FileLoader::class: - case self::class: - $arguments[] = $this; - break; - case 'string': - if (null !== $this->env && 'env' === $parameter->getName()) { - $arguments[] = $this->env; - break; - } - // no break - default: - try { - $configBuilder = $this->configBuilder($type); - } catch (InvalidArgumentException|\LogicException $e) { - throw new \InvalidArgumentException(sprintf('Could not resolve argument "%s" for "%s".', $type.' $'.$parameter->getName(), $path), 0, $e); - } - $configBuilders[] = $configBuilder; - $arguments[] = $configBuilder; - } - } - - // Force load ContainerConfigurator to make env(), param() etc available. - class_exists(ContainerConfigurator::class); - - $callback(...$arguments); - - /** @var ConfigBuilderInterface $configBuilder */ - foreach ($configBuilders as $configBuilder) { - $containerConfigurator->extension($configBuilder->getExtensionAlias(), $configBuilder->toArray()); - } - } - - /** - * @param string $namespace FQCN string for a class implementing ConfigBuilderInterface - */ - private function configBuilder(string $namespace): ConfigBuilderInterface - { - if (!class_exists(ConfigBuilderGenerator::class)) { - throw new \LogicException('You cannot use the config builder as the Config component is not installed. Try running "composer require symfony/config".'); - } - - if (null === $this->generator) { - throw new \LogicException('You cannot use the ConfigBuilders without providing a class implementing ConfigBuilderGeneratorInterface.'); - } - - // If class exists and implements ConfigBuilderInterface - if (class_exists($namespace) && is_subclass_of($namespace, ConfigBuilderInterface::class)) { - return new $namespace(); - } - - // If it does not start with Symfony\Config\ we don't know how to handle this - if (!str_starts_with($namespace, 'Symfony\\Config\\')) { - throw new InvalidArgumentException(sprintf('Could not find or generate class "%s".', $namespace)); - } - - // Try to get the extension alias - $alias = Container::underscore(substr($namespace, 15, -6)); - - if (str_contains($alias, '\\')) { - throw new InvalidArgumentException('You can only use "root" ConfigBuilders from "Symfony\\Config\\" namespace. Nested classes like "Symfony\\Config\\Framework\\CacheConfig" cannot be used.'); - } - - if (!$this->container->hasExtension($alias)) { - $extensions = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s". Looked for namespace "%s", found "%s".', $namespace, $alias, $extensions ? implode('", "', $extensions) : 'none')); - } - - $extension = $this->container->getExtension($alias); - if (!$extension instanceof ConfigurationExtensionInterface) { - throw new \LogicException(sprintf('You cannot use the config builder for "%s" because the extension does not implement "%s".', $namespace, ConfigurationExtensionInterface::class)); - } - - $configuration = $extension->getConfiguration([], $this->container); - $loader = $this->generator->build($configuration); - - return $loader(); - } -} - -/** - * @internal - */ -final class ProtectedPhpFileLoader extends PhpFileLoader -{ -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php deleted file mode 100644 index 574ea55..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php +++ /dev/null @@ -1,889 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Util\XmlUtils; -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * XmlFileLoader loads XML files service definitions. - * - * @author Fabien Potencier - */ -class XmlFileLoader extends FileLoader -{ - public const NS = 'http://symfony.com/schema/dic/services'; - - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - - public function load(mixed $resource, ?string $type = null): mixed - { - $path = $this->locator->locate($resource); - - $xml = $this->parseFileToDOM($path); - - $this->container->fileExists($path); - - $this->loadXml($xml, $path); - - if ($this->env) { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - foreach ($xpath->query(sprintf('//container:when[@env="%s"]', $this->env)) ?: [] as $root) { - $env = $this->env; - $this->env = null; - try { - $this->loadXml($xml, $path, $root); - } finally { - $this->env = $env; - } - } - } - - return null; - } - - private function loadXml(\DOMDocument $xml, string $path, ?\DOMNode $root = null): void - { - $defaults = $this->getServiceDefaults($xml, $path, $root); - - // anonymous services - $this->processAnonymousServices($xml, $path, $root); - - // imports - $this->parseImports($xml, $path, $root); - - // parameters - $this->parseParameters($xml, $path, $root); - - // extensions - $this->loadFromExtensions($xml, $root); - - // services - try { - $this->parseDefinitions($xml, $path, $defaults, $root); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'xml' === pathinfo($resource, \PATHINFO_EXTENSION)) { - return true; - } - - return 'xml' === $type; - } - - private function parseParameters(\DOMDocument $xml, string $file, ?\DOMNode $root = null): void - { - if ($parameters = $this->getChildren($root ?? $xml->documentElement, 'parameters')) { - $this->container->getParameterBag()->add($this->getArgumentsAsPhp($parameters[0], 'parameter', $file)); - } - } - - private function parseImports(\DOMDocument $xml, string $file, ?\DOMNode $root = null): void - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (false === $imports = $xpath->query('./container:imports/container:import', $root)) { - return; - } - - $defaultDirectory = \dirname($file); - foreach ($imports as $import) { - $this->setCurrentDir($defaultDirectory); - $this->import($import->getAttribute('resource'), XmlUtils::phpize($import->getAttribute('type')) ?: null, XmlUtils::phpize($import->getAttribute('ignore-errors')) ?: false, $file); - } - } - - private function parseDefinitions(\DOMDocument $xml, string $file, Definition $defaults, ?\DOMNode $root = null): void - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (false === $services = $xpath->query('./container:services/container:service|./container:services/container:prototype|./container:services/container:stack', $root)) { - return; - } - $this->setCurrentDir(\dirname($file)); - - $this->instanceof = []; - $this->isLoadingInstanceof = true; - $instanceof = $xpath->query('./container:services/container:instanceof', $root); - foreach ($instanceof as $service) { - $this->setDefinition((string) $service->getAttribute('id'), $this->parseDefinition($service, $file, new Definition())); - } - - $this->isLoadingInstanceof = false; - foreach ($services as $service) { - if ('stack' === $service->tagName) { - $service->setAttribute('parent', '-'); - $definition = $this->parseDefinition($service, $file, $defaults) - ->setTags(array_merge_recursive(['container.stack' => [[]]], $defaults->getTags())) - ; - $this->setDefinition($id = (string) $service->getAttribute('id'), $definition); - $stack = []; - - foreach ($this->getChildren($service, 'service') as $k => $frame) { - $k = $frame->getAttribute('id') ?: $k; - $frame->setAttribute('id', $id.'" at index "'.$k); - - if ($alias = $frame->getAttribute('alias')) { - $this->validateAlias($frame, $file); - $stack[$k] = new Reference($alias); - } else { - $stack[$k] = $this->parseDefinition($frame, $file, $defaults) - ->setInstanceofConditionals($this->instanceof); - } - } - - $definition->setArguments($stack); - } elseif (null !== $definition = $this->parseDefinition($service, $file, $defaults)) { - if ('prototype' === $service->tagName) { - $excludes = array_column($this->getChildren($service, 'exclude'), 'nodeValue'); - if ($service->hasAttribute('exclude')) { - if (\count($excludes) > 0) { - throw new InvalidArgumentException('You cannot use both the attribute "exclude" and tags at the same time.'); - } - $excludes = [$service->getAttribute('exclude')]; - } - $this->registerClasses($definition, (string) $service->getAttribute('namespace'), (string) $service->getAttribute('resource'), $excludes, $file); - } else { - $this->setDefinition((string) $service->getAttribute('id'), $definition); - } - } - } - } - - private function getServiceDefaults(\DOMDocument $xml, string $file, ?\DOMNode $root = null): Definition - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (null === $defaultsNode = $xpath->query('./container:services/container:defaults', $root)->item(0)) { - return new Definition(); - } - - $defaultsNode->setAttribute('id', ''); - - return $this->parseDefinition($defaultsNode, $file, new Definition()); - } - - /** - * Parses an individual Definition. - */ - private function parseDefinition(\DOMElement $service, string $file, Definition $defaults): ?Definition - { - if ($alias = $service->getAttribute('alias')) { - $this->validateAlias($service, $file); - - $this->container->setAlias($service->getAttribute('id'), $alias = new Alias($alias)); - if ($publicAttr = $service->getAttribute('public')) { - $alias->setPublic(XmlUtils::phpize($publicAttr)); - } elseif ($defaults->getChanges()['public'] ?? false) { - $alias->setPublic($defaults->isPublic()); - } - - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $message = $deprecated[0]->nodeValue ?: ''; - $package = $deprecated[0]->getAttribute('package') ?: ''; - $version = $deprecated[0]->getAttribute('version') ?: ''; - - if (!$deprecated[0]->hasAttribute('package')) { - throw new InvalidArgumentException(sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file)); - } - - if (!$deprecated[0]->hasAttribute('version')) { - throw new InvalidArgumentException(sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file)); - } - - $alias->setDeprecated($package, $version, $message); - } - - return null; - } - - if ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif ($parent = $service->getAttribute('parent')) { - $definition = new ChildDefinition($parent); - } else { - $definition = new Definition(); - } - - if ($defaults->getChanges()['public'] ?? false) { - $definition->setPublic($defaults->isPublic()); - } - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - $definition->setChanges([]); - - foreach (['class', 'public', 'shared', 'synthetic', 'abstract'] as $key) { - if ($value = $service->getAttribute($key)) { - $method = 'set'.$key; - $definition->$method(XmlUtils::phpize($value)); - } - } - - if ($value = $service->getAttribute('lazy')) { - $definition->setLazy((bool) $value = XmlUtils::phpize($value)); - if (\is_string($value)) { - $definition->addTag('proxy', ['interface' => $value]); - } - } - - if ($value = $service->getAttribute('autowire')) { - $definition->setAutowired(XmlUtils::phpize($value)); - } - - if ($value = $service->getAttribute('autoconfigure')) { - $definition->setAutoconfigured(XmlUtils::phpize($value)); - } - - if ($files = $this->getChildren($service, 'file')) { - $definition->setFile($files[0]->nodeValue); - } - - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $message = $deprecated[0]->nodeValue ?: ''; - $package = $deprecated[0]->getAttribute('package') ?: ''; - $version = $deprecated[0]->getAttribute('version') ?: ''; - - if (!$deprecated[0]->hasAttribute('package')) { - throw new InvalidArgumentException(sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file)); - } - - if (!$deprecated[0]->hasAttribute('version')) { - throw new InvalidArgumentException(sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file)); - } - - $definition->setDeprecated($package, $version, $message); - } - - $definition->setArguments($this->getArgumentsAsPhp($service, 'argument', $file, $definition instanceof ChildDefinition)); - $definition->setProperties($this->getArgumentsAsPhp($service, 'property', $file)); - - if ($factories = $this->getChildren($service, 'factory')) { - $factory = $factories[0]; - if ($function = $factory->getAttribute('function')) { - $definition->setFactory($function); - } elseif ($expression = $factory->getAttribute('expression')) { - if (!class_exists(Expression::class)) { - throw new \LogicException('The "expression" attribute cannot be used on factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $definition->setFactory('@='.$expression); - } else { - if ($childService = $factory->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $factory->hasAttribute('class') ? $factory->getAttribute('class') : null; - } - - $definition->setFactory([$class, $factory->getAttribute('method') ?: '__invoke']); - } - } - - if ($constructor = $service->getAttribute('constructor')) { - if (null !== $definition->getFactory()) { - throw new LogicException(sprintf('The "%s" service cannot declare a factory as well as a constructor.', $service->getAttribute('id'))); - } - - $definition->setFactory([null, $constructor]); - } - - if ($configurators = $this->getChildren($service, 'configurator')) { - $configurator = $configurators[0]; - if ($function = $configurator->getAttribute('function')) { - $definition->setConfigurator($function); - } else { - if ($childService = $configurator->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $configurator->getAttribute('class'); - } - - $definition->setConfigurator([$class, $configurator->getAttribute('method') ?: '__invoke']); - } - } - - foreach ($this->getChildren($service, 'call') as $call) { - $definition->addMethodCall($call->getAttribute('method'), $this->getArgumentsAsPhp($call, 'argument', $file), XmlUtils::phpize($call->getAttribute('returns-clone'))); - } - - $tags = $this->getChildren($service, 'tag'); - - foreach ($tags as $tag) { - $tagNameComesFromAttribute = $tag->childElementCount || '' === $tag->nodeValue; - if ('' === $tagName = $tagNameComesFromAttribute ? $tag->getAttribute('name') : $tag->nodeValue) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', (string) $service->getAttribute('id'), $file)); - } - - $parameters = $this->getTagAttributes($tag, sprintf('The attribute name of tag "%s" for service "%s" in %s must be a non-empty string.', $tagName, (string) $service->getAttribute('id'), $file)); - foreach ($tag->attributes as $name => $node) { - if ($tagNameComesFromAttribute && 'name' === $name) { - continue; - } - - if (str_contains($name, '-') && !str_contains($name, '_') && !\array_key_exists($normalizedName = str_replace('-', '_', $name), $parameters)) { - $parameters[$normalizedName] = XmlUtils::phpize($node->nodeValue); - } - // keep not normalized key - $parameters[$name] = XmlUtils::phpize($node->nodeValue); - } - - $definition->addTag($tagName, $parameters); - } - - $definition->setTags(array_merge_recursive($definition->getTags(), $defaults->getTags())); - - $bindings = $this->getArgumentsAsPhp($service, 'bind', $file); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - $bindings[$argument] = new BoundArgument($value, true, $bindingType, $file); - } - - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = array_merge(unserialize(serialize($defaults->getBindings())), $bindings); - - if ($bindings) { - $definition->setBindings($bindings); - } - - if ($decorates = $service->getAttribute('decorates')) { - $decorationOnInvalid = $service->getAttribute('decoration-on-invalid') ?: 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } else { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration-on-invalid" on service "%s". Did you mean "exception", "ignore" or "null" in "%s"?', $decorationOnInvalid, $service->getAttribute('id'), $file)); - } - - $renameId = $service->hasAttribute('decoration-inner-name') ? $service->getAttribute('decoration-inner-name') : null; - $priority = $service->hasAttribute('decoration-priority') ? $service->getAttribute('decoration-priority') : 0; - - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - - if ($callable = $this->getChildren($service, 'from-callable')) { - if ($definition instanceof ChildDefinition) { - throw new InvalidArgumentException(sprintf('Attribute "parent" is unsupported when using "" on service "%s".', (string) $service->getAttribute('id'))); - } - - foreach ([ - 'Attribute "synthetic"' => 'isSynthetic', - 'Attribute "file"' => 'getFile', - 'Tag ""' => 'getFactory', - 'Tag ""' => 'getArguments', - 'Tag ""' => 'getProperties', - 'Tag ""' => 'getConfigurator', - 'Tag ""' => 'getMethodCalls', - ] as $key => $method) { - if ($definition->$method()) { - throw new InvalidArgumentException($key.sprintf(' is unsupported when using "" on service "%s".', (string) $service->getAttribute('id'))); - } - } - - $definition->setFactory(['Closure', 'fromCallable']); - - if ('Closure' !== ($definition->getClass() ?? 'Closure')) { - $definition->setLazy(true); - } else { - $definition->setClass('Closure'); - } - - $callable = $callable[0]; - if ($function = $callable->getAttribute('function')) { - $definition->setArguments([$function]); - } elseif ($expression = $callable->getAttribute('expression')) { - if (!class_exists(Expression::class)) { - throw new \LogicException('The "expression" attribute cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $definition->setArguments(['@='.$expression]); - } else { - if ($childService = $callable->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $callable->hasAttribute('class') ? $callable->getAttribute('class') : null; - } - - $definition->setArguments([[$class, $callable->getAttribute('method') ?: '__invoke']]); - } - } - - return $definition; - } - - /** - * Parses an XML file to a \DOMDocument. - * - * @throws InvalidArgumentException When loading of XML file returns error - */ - private function parseFileToDOM(string $file): \DOMDocument - { - try { - $dom = XmlUtils::loadFile($file, $this->validateSchema(...)); - } catch (\InvalidArgumentException $e) { - $invalidSecurityElements = []; - $errors = explode("\n", $e->getMessage()); - foreach ($errors as $i => $error) { - if (preg_match("#^\[ERROR 1871] Element '\{http://symfony\.com/schema/dic/security}([^']+)'#", $error, $matches)) { - $invalidSecurityElements[$i] = $matches[1]; - } - } - if ($invalidSecurityElements) { - $dom = XmlUtils::loadFile($file); - - foreach ($invalidSecurityElements as $errorIndex => $tagName) { - foreach ($dom->getElementsByTagNameNS('http://symfony.com/schema/dic/security', $tagName) as $element) { - if (!$parent = $element->parentNode) { - continue; - } - if ('http://symfony.com/schema/dic/security' !== $parent->namespaceURI) { - continue; - } - if ('provider' === $parent->localName || 'firewall' === $parent->localName) { - unset($errors[$errorIndex]); - } - } - } - } - if ($errors) { - throw new InvalidArgumentException(sprintf('Unable to parse file "%s": ', $file).implode("\n", $errors), $e->getCode(), $e); - } - } - - $this->validateExtensions($dom, $file); - - return $dom; - } - - /** - * Processes anonymous services. - */ - private function processAnonymousServices(\DOMDocument $xml, string $file, ?\DOMNode $root = null): void - { - $definitions = []; - $count = 0; - $suffix = '~'.ContainerBuilder::hash($file); - - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - // anonymous services as arguments/properties - if (false !== $nodes = $xpath->query('.//container:argument[@type="service"][not(@id)]|.//container:property[@type="service"][not(@id)]|.//container:bind[not(@id)]|.//container:factory[not(@service)]|.//container:configurator[not(@service)]', $root)) { - foreach ($nodes as $node) { - if ($services = $this->getChildren($node, 'service')) { - // give it a unique name - $id = sprintf('.%d_%s', ++$count, preg_replace('/^.*\\\\/', '', $services[0]->getAttribute('class')).$suffix); - $node->setAttribute('id', $id); - $node->setAttribute('service', $id); - - $definitions[$id] = [$services[0], $file]; - $services[0]->setAttribute('id', $id); - - // anonymous services are always private - // we could not use the constant false here, because of XML parsing - $services[0]->setAttribute('public', 'false'); - } - } - } - - // anonymous services "in the wild" - if (false !== $nodes = $xpath->query('.//container:services/container:service[not(@id)]', $root)) { - foreach ($nodes as $node) { - throw new InvalidArgumentException(sprintf('Top-level services must have "id" attribute, none found in "%s" at line %d.', $file, $node->getLineNo())); - } - } - - // resolve definitions - uksort($definitions, 'strnatcmp'); - foreach (array_reverse($definitions) as $id => [$domElement, $file]) { - if (null !== $definition = $this->parseDefinition($domElement, $file, new Definition())) { - $this->setDefinition($id, $definition); - } - } - } - - private function getArgumentsAsPhp(\DOMElement $node, string $name, string $file, bool $isChildDefinition = false): array - { - $arguments = []; - foreach ($this->getChildren($node, $name) as $arg) { - if ($arg->hasAttribute('name')) { - $arg->setAttribute('key', $arg->getAttribute('name')); - } - - // this is used by ChildDefinition to overwrite a specific - // argument of the parent definition - if ($arg->hasAttribute('index')) { - $key = ($isChildDefinition ? 'index_' : '').$arg->getAttribute('index'); - } elseif (!$arg->hasAttribute('key')) { - // Append an empty argument, then fetch its key to overwrite it later - $arguments[] = null; - $keys = array_keys($arguments); - $key = array_pop($keys); - } else { - $key = $arg->getAttribute('key'); - } - - $trim = $arg->hasAttribute('trim') && XmlUtils::phpize($arg->getAttribute('trim')); - $onInvalid = $arg->getAttribute('on-invalid'); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if ('ignore' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('ignore_uninitialized' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif ('null' == $onInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } - - switch ($type = $arg->getAttribute('type')) { - case 'service': - if ('' === $arg->getAttribute('id')) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file)); - } - - $arguments[$key] = new Reference($arg->getAttribute('id'), $invalidBehavior); - break; - case 'expression': - if (!class_exists(Expression::class)) { - throw new \LogicException('The type="expression" attribute cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - - $arguments[$key] = new Expression($arg->nodeValue); - break; - case 'collection': - $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, $file); - break; - case 'iterator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - $arguments[$key] = new IteratorArgument($arg); - break; - case 'closure': - case 'service_closure': - if ('' !== $arg->getAttribute('id')) { - $arg = new Reference($arg->getAttribute('id'), $invalidBehavior); - } else { - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - } - $arguments[$key] = match ($type) { - 'service_closure' => new ServiceClosureArgument($arg), - 'closure' => (new Definition('Closure')) - ->setFactory(['Closure', 'fromCallable']) - ->addArgument($arg), - }; - break; - case 'service_locator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - - if (isset($arg[0])) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Skipping "key" argument or using integers as values in a "service_locator" tag is deprecated. The keys will default to the IDs of the original services in 7.0.'); - } - - $arguments[$key] = new ServiceLocatorArgument($arg); - break; - case 'tagged': - case 'tagged_iterator': - case 'tagged_locator': - $forLocator = 'tagged_locator' === $type; - - if (!$arg->getAttribute('tag')) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="%s" has no or empty "tag" attribute in "%s".', $name, $type, $file)); - } - - $excludes = array_column($this->getChildren($arg, 'exclude'), 'nodeValue'); - if ($arg->hasAttribute('exclude')) { - if (\count($excludes) > 0) { - throw new InvalidArgumentException('You cannot use both the attribute "exclude" and tags at the same time.'); - } - $excludes = [$arg->getAttribute('exclude')]; - } - - $arguments[$key] = new TaggedIteratorArgument($arg->getAttribute('tag'), $arg->getAttribute('index-by') ?: null, $arg->getAttribute('default-index-method') ?: null, $forLocator, $arg->getAttribute('default-priority-method') ?: null, $excludes, !$arg->hasAttribute('exclude-self') || XmlUtils::phpize($arg->getAttribute('exclude-self'))); - - if ($forLocator) { - $arguments[$key] = new ServiceLocatorArgument($arguments[$key]); - } - break; - case 'binary': - if (false === $value = base64_decode($arg->nodeValue)) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="binary" is not a valid base64 encoded string.', $name)); - } - $arguments[$key] = $value; - break; - case 'abstract': - $arguments[$key] = new AbstractArgument($arg->nodeValue); - break; - case 'string': - $arguments[$key] = $trim ? trim($arg->nodeValue) : $arg->nodeValue; - break; - case 'constant': - $arguments[$key] = \constant(trim($arg->nodeValue)); - break; - default: - $arguments[$key] = XmlUtils::phpize($trim ? trim($arg->nodeValue) : $arg->nodeValue); - } - } - - return $arguments; - } - - /** - * Get child elements by name. - * - * @return \DOMElement[] - */ - private function getChildren(\DOMNode $node, string $name): array - { - $children = []; - foreach ($node->childNodes as $child) { - if ($child instanceof \DOMElement && $child->localName === $name && self::NS === $child->namespaceURI) { - $children[] = $child; - } - } - - return $children; - } - - private function getTagAttributes(\DOMNode $node, string $missingName): array - { - $parameters = []; - $children = $this->getChildren($node, 'attribute'); - - foreach ($children as $childNode) { - if ('' === $name = $childNode->getAttribute('name')) { - throw new InvalidArgumentException($missingName); - } - - if ($this->getChildren($childNode, 'attribute')) { - $parameters[$name] = $this->getTagAttributes($childNode, $missingName); - } else { - if (str_contains($name, '-') && !str_contains($name, '_') && !\array_key_exists($normalizedName = str_replace('-', '_', $name), $parameters)) { - $parameters[$normalizedName] = XmlUtils::phpize($childNode->nodeValue); - } - // keep not normalized key - $parameters[$name] = XmlUtils::phpize($childNode->nodeValue); - } - } - - return $parameters; - } - - /** - * Validates a documents XML schema. - * - * @throws RuntimeException When extension references a non-existent XSD file - */ - public function validateSchema(\DOMDocument $dom): bool - { - $schemaLocations = ['http://symfony.com/schema/dic/services' => str_replace('\\', '/', __DIR__.'/schema/dic/services/services-1.0.xsd')]; - - if ($element = $dom->documentElement->getAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation')) { - $items = preg_split('/\s+/', $element); - for ($i = 0, $nb = \count($items); $i < $nb; $i += 2) { - if (!$this->container->hasExtension($items[$i])) { - continue; - } - - if (($extension = $this->container->getExtension($items[$i])) && false !== $extension->getXsdValidationBasePath()) { - $ns = $extension->getNamespace(); - $path = str_replace([$ns, str_replace('http://', 'https://', $ns)], str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]); - - if (!is_file($path)) { - throw new RuntimeException(sprintf('Extension "%s" references a non-existent XSD file "%s".', get_debug_type($extension), $path)); - } - - $schemaLocations[$items[$i]] = $path; - } - } - } - - $tmpfiles = []; - $imports = ''; - foreach ($schemaLocations as $namespace => $location) { - $parts = explode('/', $location); - $locationstart = 'file:///'; - if (0 === stripos($location, 'phar://')) { - $tmpfile = tempnam(sys_get_temp_dir(), 'symfony'); - if ($tmpfile) { - copy($location, $tmpfile); - $tmpfiles[] = $tmpfile; - $parts = explode('/', str_replace('\\', '/', $tmpfile)); - } else { - array_shift($parts); - $locationstart = 'phar:///'; - } - } elseif ('\\' === \DIRECTORY_SEPARATOR && str_starts_with($location, '\\\\')) { - $locationstart = ''; - } - $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : ''; - $location = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts)); - - $imports .= sprintf(' '."\n", $namespace, $location); - } - - $source = << - - - -$imports - -EOF - ; - - if ($this->shouldEnableEntityLoader()) { - $disableEntities = libxml_disable_entity_loader(false); - $valid = @$dom->schemaValidateSource($source); - libxml_disable_entity_loader($disableEntities); - } else { - $valid = @$dom->schemaValidateSource($source); - } - foreach ($tmpfiles as $tmpfile) { - @unlink($tmpfile); - } - - return $valid; - } - - private function shouldEnableEntityLoader(): bool - { - static $dom, $schema; - if (null === $dom) { - $dom = new \DOMDocument(); - $dom->loadXML(''); - - $tmpfile = tempnam(sys_get_temp_dir(), 'symfony'); - register_shutdown_function(static function () use ($tmpfile) { - @unlink($tmpfile); - }); - $schema = ' - - -'; - file_put_contents($tmpfile, ' - - - -'); - } - - return !@$dom->schemaValidateSource($schema); - } - - private function validateAlias(\DOMElement $alias, string $file): void - { - foreach ($alias->attributes as $name => $node) { - if (!\in_array($name, ['alias', 'id', 'public'])) { - throw new InvalidArgumentException(sprintf('Invalid attribute "%s" defined for alias "%s" in "%s".', $name, $alias->getAttribute('id'), $file)); - } - } - - foreach ($alias->childNodes as $child) { - if (!$child instanceof \DOMElement || self::NS !== $child->namespaceURI) { - continue; - } - if ('deprecated' !== $child->localName) { - throw new InvalidArgumentException(sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $alias->getAttribute('id'), $file)); - } - } - } - - /** - * Validates an extension. - * - * @throws InvalidArgumentException When no extension is found corresponding to a tag - */ - private function validateExtensions(\DOMDocument $dom, string $file): void - { - foreach ($dom->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || 'http://symfony.com/schema/dic/services' === $node->namespaceURI) { - continue; - } - - // can it be handled by an extension? - if (!$this->container->hasExtension($node->namespaceURI)) { - $extensionNamespaces = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getNamespace(), $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $node->tagName, $file, $node->namespaceURI, $extensionNamespaces ? implode('", "', $extensionNamespaces) : 'none')); - } - } - } - - /** - * Loads from an extension. - */ - private function loadFromExtensions(\DOMDocument $xml): void - { - foreach ($xml->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || self::NS === $node->namespaceURI) { - continue; - } - - $values = static::convertDomElementToArray($node); - if (!\is_array($values)) { - $values = []; - } - - $this->container->loadFromExtension($node->namespaceURI, $values); - } - } - - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - */ - public static function convertDomElementToArray(\DOMElement $element): mixed - { - return XmlUtils::convertDomElementToArray($element, false); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php b/projects/priceservice/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php deleted file mode 100644 index ae5a625..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php +++ /dev/null @@ -1,986 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\Yaml\Exception\ParseException; -use Symfony\Component\Yaml\Parser as YamlParser; -use Symfony\Component\Yaml\Tag\TaggedValue; -use Symfony\Component\Yaml\Yaml; - -/** - * YamlFileLoader loads YAML files service definitions. - * - * @author Fabien Potencier - */ -class YamlFileLoader extends FileLoader -{ - private const SERVICE_KEYWORDS = [ - 'alias' => 'alias', - 'parent' => 'parent', - 'class' => 'class', - 'shared' => 'shared', - 'synthetic' => 'synthetic', - 'lazy' => 'lazy', - 'public' => 'public', - 'abstract' => 'abstract', - 'deprecated' => 'deprecated', - 'factory' => 'factory', - 'file' => 'file', - 'arguments' => 'arguments', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'decorates' => 'decorates', - 'decoration_inner_name' => 'decoration_inner_name', - 'decoration_priority' => 'decoration_priority', - 'decoration_on_invalid' => 'decoration_on_invalid', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - 'constructor' => 'constructor', - ]; - - private const PROTOTYPE_KEYWORDS = [ - 'resource' => 'resource', - 'namespace' => 'namespace', - 'exclude' => 'exclude', - 'parent' => 'parent', - 'shared' => 'shared', - 'lazy' => 'lazy', - 'public' => 'public', - 'abstract' => 'abstract', - 'deprecated' => 'deprecated', - 'factory' => 'factory', - 'arguments' => 'arguments', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - 'constructor' => 'constructor', - ]; - - private const INSTANCEOF_KEYWORDS = [ - 'shared' => 'shared', - 'lazy' => 'lazy', - 'public' => 'public', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'bind' => 'bind', - 'constructor' => 'constructor', - ]; - - private const DEFAULTS_KEYWORDS = [ - 'public' => 'public', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - ]; - - private YamlParser $yamlParser; - - private int $anonymousServicesCount; - private string $anonymousServicesSuffix; - - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - - public function load(mixed $resource, ?string $type = null): mixed - { - $path = $this->locator->locate($resource); - - $content = $this->loadFile($path); - - $this->container->fileExists($path); - - // empty file - if (null === $content) { - return null; - } - - $this->loadContent($content, $path); - - // per-env configuration - if ($this->env && isset($content['when@'.$this->env])) { - if (!\is_array($content['when@'.$this->env])) { - throw new InvalidArgumentException(sprintf('The "when@%s" key should contain an array in "%s". Check your YAML syntax.', $this->env, $path)); - } - - $env = $this->env; - $this->env = null; - try { - $this->loadContent($content['when@'.$env], $path); - } finally { - $this->env = $env; - } - } - - return null; - } - - private function loadContent(array $content, string $path): void - { - // imports - $this->parseImports($content, $path); - - // parameters - if (isset($content['parameters'])) { - if (!\is_array($content['parameters'])) { - throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in "%s". Check your YAML syntax.', $path)); - } - - foreach ($content['parameters'] as $key => $value) { - $this->container->setParameter($key, $this->resolveServices($value, $path, true)); - } - } - - // extensions - $this->loadFromExtensions($content); - - // services - $this->anonymousServicesCount = 0; - $this->anonymousServicesSuffix = '~'.ContainerBuilder::hash($path); - $this->setCurrentDir(\dirname($path)); - try { - $this->parseDefinitions($content, $path); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - public function supports(mixed $resource, ?string $type = null): bool - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && \in_array(pathinfo($resource, \PATHINFO_EXTENSION), ['yaml', 'yml'], true)) { - return true; - } - - return \in_array($type, ['yaml', 'yml'], true); - } - - private function parseImports(array $content, string $file): void - { - if (!isset($content['imports'])) { - return; - } - - if (!\is_array($content['imports'])) { - throw new InvalidArgumentException(sprintf('The "imports" key should contain an array in "%s". Check your YAML syntax.', $file)); - } - - $defaultDirectory = \dirname($file); - foreach ($content['imports'] as $import) { - if (!\is_array($import)) { - $import = ['resource' => $import]; - } - if (!isset($import['resource'])) { - throw new InvalidArgumentException(sprintf('An import should provide a resource in "%s". Check your YAML syntax.', $file)); - } - - $this->setCurrentDir($defaultDirectory); - $this->import($import['resource'], $import['type'] ?? null, $import['ignore_errors'] ?? false, $file); - } - } - - private function parseDefinitions(array $content, string $file, bool $trackBindings = true): void - { - if (!isset($content['services'])) { - return; - } - - if (!\is_array($content['services'])) { - throw new InvalidArgumentException(sprintf('The "services" key should contain an array in "%s". Check your YAML syntax.', $file)); - } - - if (\array_key_exists('_instanceof', $content['services'])) { - $instanceof = $content['services']['_instanceof']; - unset($content['services']['_instanceof']); - - if (!\is_array($instanceof)) { - throw new InvalidArgumentException(sprintf('Service "_instanceof" key must be an array, "%s" given in "%s".', get_debug_type($instanceof), $file)); - } - $this->instanceof = []; - $this->isLoadingInstanceof = true; - foreach ($instanceof as $id => $service) { - if (!$service || !\is_array($service)) { - throw new InvalidArgumentException(sprintf('Type definition "%s" must be a non-empty array within "_instanceof" in "%s". Check your YAML syntax.', $id, $file)); - } - if (\is_string($service) && str_starts_with($service, '@')) { - throw new InvalidArgumentException(sprintf('Type definition "%s" cannot be an alias within "_instanceof" in "%s". Check your YAML syntax.', $id, $file)); - } - $this->parseDefinition($id, $service, $file, [], false, $trackBindings); - } - } - - $this->isLoadingInstanceof = false; - $defaults = $this->parseDefaults($content, $file); - foreach ($content['services'] as $id => $service) { - $this->parseDefinition($id, $service, $file, $defaults, false, $trackBindings); - } - } - - /** - * @throws InvalidArgumentException - */ - private function parseDefaults(array &$content, string $file): array - { - if (!\array_key_exists('_defaults', $content['services'])) { - return []; - } - $defaults = $content['services']['_defaults']; - unset($content['services']['_defaults']); - - if (!\is_array($defaults)) { - throw new InvalidArgumentException(sprintf('Service "_defaults" key must be an array, "%s" given in "%s".', get_debug_type($defaults), $file)); - } - - foreach ($defaults as $key => $default) { - if (!isset(self::DEFAULTS_KEYWORDS[$key])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" cannot be used to define a default value in "%s". Allowed keys are "%s".', $key, $file, implode('", "', self::DEFAULTS_KEYWORDS))); - } - } - - if (isset($defaults['tags'])) { - if (!\is_array($tags = $defaults['tags'])) { - throw new InvalidArgumentException(sprintf('Parameter "tags" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file)); - } - - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - - if (1 === \count($tag) && \is_array(current($tag))) { - $name = key($tag); - $tag = current($tag); - } else { - if (!isset($tag['name'])) { - throw new InvalidArgumentException(sprintf('A "tags" entry in "_defaults" is missing a "name" key in "%s".', $file)); - } - $name = $tag['name']; - unset($tag['name']); - } - - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(sprintf('The tag name in "_defaults" must be a non-empty string in "%s".', $file)); - } - - $this->validateAttributes(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type in "%s". Check your YAML syntax.', $name, '%s', $file), $tag); - } - } - - if (isset($defaults['bind'])) { - if (!\is_array($defaults['bind'])) { - throw new InvalidArgumentException(sprintf('Parameter "bind" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file)); - } - - foreach ($this->resolveServices($defaults['bind'], $file) as $argument => $value) { - $defaults['bind'][$argument] = new BoundArgument($value, true, BoundArgument::DEFAULTS_BINDING, $file); - } - } - - return $defaults; - } - - private function isUsingShortSyntax(array $service): bool - { - foreach ($service as $key => $value) { - if (\is_string($key) && ('' === $key || ('$' !== $key[0] && !str_contains($key, '\\')))) { - return false; - } - } - - return true; - } - - /** - * @throws InvalidArgumentException When tags are invalid - */ - private function parseDefinition(string $id, array|string|null $service, string $file, array $defaults, bool $return = false, bool $trackBindings = true): Definition|Alias|null - { - if (preg_match('/^_[a-zA-Z0-9_]*$/', $id)) { - throw new InvalidArgumentException(sprintf('Service names that start with an underscore are reserved. Rename the "%s" service or define it in XML instead.', $id)); - } - - if (\is_string($service) && str_starts_with($service, '@')) { - $alias = new Alias(substr($service, 1)); - - if (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - - return $return ? $alias : $this->container->setAlias($id, $alias); - } - - if (\is_array($service) && $this->isUsingShortSyntax($service)) { - $service = ['arguments' => $service]; - } - - if (!\is_array($service ??= [])) { - throw new InvalidArgumentException(sprintf('A service definition must be an array or a string starting with "@" but "%s" found for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file)); - } - - if (isset($service['stack'])) { - if (!\is_array($service['stack'])) { - throw new InvalidArgumentException(sprintf('A stack must be an array of definitions, "%s" given for service "%s" in "%s". Check your YAML syntax.', get_debug_type($service), $id, $file)); - } - - $stack = []; - - foreach ($service['stack'] as $k => $frame) { - if (\is_array($frame) && 1 === \count($frame) && !isset(self::SERVICE_KEYWORDS[key($frame)])) { - $frame = [ - 'class' => key($frame), - 'arguments' => current($frame), - ]; - } - - if (\is_array($frame) && isset($frame['stack'])) { - throw new InvalidArgumentException(sprintf('Service stack "%s" cannot contain another stack in "%s".', $id, $file)); - } - - $definition = $this->parseDefinition($id.'" at index "'.$k, $frame, $file, $defaults, true); - - if ($definition instanceof Definition) { - $definition->setInstanceofConditionals($this->instanceof); - } - - $stack[$k] = $definition; - } - - if ($diff = array_diff(array_keys($service), ['stack', 'public', 'deprecated'])) { - throw new InvalidArgumentException(sprintf('Invalid attribute "%s"; supported ones are "public" and "deprecated" for service "%s" in "%s". Check your YAML syntax.', implode('", "', $diff), $id, $file)); - } - - $service = [ - 'parent' => '', - 'arguments' => $stack, - 'tags' => ['container.stack'], - 'public' => $service['public'] ?? null, - 'deprecated' => $service['deprecated'] ?? null, - ]; - } - - $definition = isset($service[0]) && $service[0] instanceof Definition ? array_shift($service) : null; - $return = null === $definition ? $return : true; - - if (isset($service['from_callable'])) { - foreach (['alias', 'parent', 'synthetic', 'factory', 'file', 'arguments', 'properties', 'configurator', 'calls'] as $key) { - if (isset($service['factory'])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for the service "%s" when using "from_callable" in "%s".', $key, $id, $file)); - } - } - - if ('Closure' !== $service['class'] ??= 'Closure') { - $service['lazy'] = true; - } - - $service['factory'] = ['Closure', 'fromCallable']; - $service['arguments'] = [$service['from_callable']]; - unset($service['from_callable']); - } - - $this->checkDefinition($id, $service, $file); - - if (isset($service['alias'])) { - $alias = new Alias($service['alias']); - - if (isset($service['public'])) { - $alias->setPublic($service['public']); - } elseif (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - - foreach ($service as $key => $value) { - if (!\in_array($key, ['alias', 'public', 'deprecated'])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for the service "%s" which is defined as an alias in "%s". Allowed configuration keys for service aliases are "alias", "public" and "deprecated".', $key, $id, $file)); - } - - if ('deprecated' === $key) { - $deprecation = \is_array($value) ? $value : ['message' => $value]; - - if (!isset($deprecation['package'])) { - throw new InvalidArgumentException(sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file)); - } - - if (!isset($deprecation['version'])) { - throw new InvalidArgumentException(sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file)); - } - - $alias->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? ''); - } - } - - return $return ? $alias : $this->container->setAlias($id, $alias); - } - - $changes = []; - if (null !== $definition) { - $changes = $definition->getChanges(); - } elseif ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif (isset($service['parent'])) { - if ('' !== $service['parent'] && '@' === $service['parent'][0]) { - throw new InvalidArgumentException(sprintf('The value of the "parent" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['parent'], substr($service['parent'], 1))); - } - - $definition = new ChildDefinition($service['parent']); - } else { - $definition = new Definition(); - } - - if (isset($defaults['public'])) { - $definition->setPublic($defaults['public']); - } - if (isset($defaults['autowire'])) { - $definition->setAutowired($defaults['autowire']); - } - if (isset($defaults['autoconfigure'])) { - $definition->setAutoconfigured($defaults['autoconfigure']); - } - - $definition->setChanges($changes); - - if (isset($service['class'])) { - $definition->setClass($service['class']); - } - - if (isset($service['shared'])) { - $definition->setShared($service['shared']); - } - - if (isset($service['synthetic'])) { - $definition->setSynthetic($service['synthetic']); - } - - if (isset($service['lazy'])) { - $definition->setLazy((bool) $service['lazy']); - if (\is_string($service['lazy'])) { - $definition->addTag('proxy', ['interface' => $service['lazy']]); - } - } - - if (isset($service['public'])) { - $definition->setPublic($service['public']); - } - - if (isset($service['abstract'])) { - $definition->setAbstract($service['abstract']); - } - - if (isset($service['deprecated'])) { - $deprecation = \is_array($service['deprecated']) ? $service['deprecated'] : ['message' => $service['deprecated']]; - - if (!isset($deprecation['package'])) { - throw new InvalidArgumentException(sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file)); - } - - if (!isset($deprecation['version'])) { - throw new InvalidArgumentException(sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file)); - } - - $definition->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? ''); - } - - if (isset($service['factory'])) { - $definition->setFactory($this->parseCallable($service['factory'], 'factory', $id, $file)); - } - - if (isset($service['constructor'])) { - if (null !== $definition->getFactory()) { - throw new LogicException(sprintf('The "%s" service cannot declare a factory as well as a constructor.', $id)); - } - - $definition->setFactory([null, $service['constructor']]); - } - - if (isset($service['file'])) { - $definition->setFile($service['file']); - } - - if (isset($service['arguments'])) { - $definition->setArguments($this->resolveServices($service['arguments'], $file)); - } - - if (isset($service['properties'])) { - $definition->setProperties($this->resolveServices($service['properties'], $file)); - } - - if (isset($service['configurator'])) { - $definition->setConfigurator($this->parseCallable($service['configurator'], 'configurator', $id, $file)); - } - - if (isset($service['calls'])) { - if (!\is_array($service['calls'])) { - throw new InvalidArgumentException(sprintf('Parameter "calls" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - - foreach ($service['calls'] as $k => $call) { - if (!\is_array($call) && (!\is_string($k) || !$call instanceof TaggedValue)) { - throw new InvalidArgumentException(sprintf('Invalid method call for service "%s": expected map or array, "%s" given in "%s".', $id, $call instanceof TaggedValue ? '!'.$call->getTag() : get_debug_type($call), $file)); - } - - if (\is_string($k)) { - throw new InvalidArgumentException(sprintf('Invalid method call for service "%s", did you forget a leading dash before "%s: ..." in "%s"?', $id, $k, $file)); - } - - if (isset($call['method']) && \is_string($call['method'])) { - $method = $call['method']; - $args = $call['arguments'] ?? []; - $returnsClone = $call['returns_clone'] ?? false; - } else { - if (1 === \count($call) && \is_string(key($call))) { - $method = key($call); - $args = $call[$method]; - - if ($args instanceof TaggedValue) { - if ('returns_clone' !== $args->getTag()) { - throw new InvalidArgumentException(sprintf('Unsupported tag "!%s", did you mean "!returns_clone" for service "%s" in "%s"?', $args->getTag(), $id, $file)); - } - - $returnsClone = true; - $args = $args->getValue(); - } else { - $returnsClone = false; - } - } elseif (empty($call[0])) { - throw new InvalidArgumentException(sprintf('Invalid call for service "%s": the method must be defined as the first index of an array or as the only key of a map in "%s".', $id, $file)); - } else { - $method = $call[0]; - $args = $call[1] ?? []; - $returnsClone = $call[2] ?? false; - } - } - - if (!\is_array($args)) { - throw new InvalidArgumentException(sprintf('The second parameter for function call "%s" must be an array of its arguments for service "%s" in "%s". Check your YAML syntax.', $method, $id, $file)); - } - - $args = $this->resolveServices($args, $file); - $definition->addMethodCall($method, $args, $returnsClone); - } - } - - $tags = $service['tags'] ?? []; - if (!\is_array($tags)) { - throw new InvalidArgumentException(sprintf('Parameter "tags" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - - if (isset($defaults['tags'])) { - $tags = array_merge($tags, $defaults['tags']); - } - - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - - if (1 === \count($tag) && \is_array(current($tag))) { - $name = key($tag); - $tag = current($tag); - } else { - if (!isset($tag['name'])) { - throw new InvalidArgumentException(sprintf('A "tags" entry is missing a "name" key for service "%s" in "%s".', $id, $file)); - } - $name = $tag['name']; - unset($tag['name']); - } - - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', $id, $file)); - } - - $this->validateAttributes(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in "%s". Check your YAML syntax.', $id, $name, '%s', $file), $tag); - - $definition->addTag($name, $tag); - } - - if (null !== $decorates = $service['decorates'] ?? null) { - if ('' !== $decorates && '@' === $decorates[0]) { - throw new InvalidArgumentException(sprintf('The value of the "decorates" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['decorates'], substr($decorates, 1))); - } - - $decorationOnInvalid = \array_key_exists('decoration_on_invalid', $service) ? $service['decoration_on_invalid'] : 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif (null === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean null (without quotes) in "%s"?', $decorationOnInvalid, $id, $file)); - } else { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean "exception", "ignore" or null in "%s"?', $decorationOnInvalid, $id, $file)); - } - - $renameId = $service['decoration_inner_name'] ?? null; - $priority = $service['decoration_priority'] ?? 0; - - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - - if (isset($service['autowire'])) { - $definition->setAutowired($service['autowire']); - } - - if (isset($defaults['bind']) || isset($service['bind'])) { - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = $definition->getBindings(); - $bindings += isset($defaults['bind']) ? unserialize(serialize($defaults['bind'])) : []; - - if (isset($service['bind'])) { - if (!\is_array($service['bind'])) { - throw new InvalidArgumentException(sprintf('Parameter "bind" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - - $bindings = array_merge($bindings, $this->resolveServices($service['bind'], $file)); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - if (!$value instanceof BoundArgument) { - $bindings[$argument] = new BoundArgument($value, $trackBindings, $bindingType, $file); - } - } - } - - $definition->setBindings($bindings); - } - - if (isset($service['autoconfigure'])) { - $definition->setAutoconfigured($service['autoconfigure']); - } - - if (\array_key_exists('namespace', $service) && !\array_key_exists('resource', $service)) { - throw new InvalidArgumentException(sprintf('A "resource" attribute must be set when the "namespace" attribute is set for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - - if ($return) { - if (\array_key_exists('resource', $service)) { - throw new InvalidArgumentException(sprintf('Invalid "resource" attribute found for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - - return $definition; - } - - if (\array_key_exists('resource', $service)) { - if (!\is_string($service['resource'])) { - throw new InvalidArgumentException(sprintf('A "resource" attribute must be of type string for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - $exclude = $service['exclude'] ?? null; - $namespace = $service['namespace'] ?? $id; - $this->registerClasses($definition, $namespace, $service['resource'], $exclude, $file); - } else { - $this->setDefinition($id, $definition); - } - - return null; - } - - /** - * @throws InvalidArgumentException When errors occur - */ - private function parseCallable(mixed $callable, string $parameter, string $id, string $file): string|array|Reference - { - if (\is_string($callable)) { - if (str_starts_with($callable, '@=')) { - if ('factory' !== $parameter) { - throw new InvalidArgumentException(sprintf('Using expressions in "%s" for the "%s" service is not supported in "%s".', $parameter, $id, $file)); - } - if (!class_exists(Expression::class)) { - throw new \LogicException('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - - return $callable; - } - - if ('' !== $callable && '@' === $callable[0]) { - if (!str_contains($callable, ':')) { - return [$this->resolveServices($callable, $file), '__invoke']; - } - - throw new InvalidArgumentException(sprintf('The value of the "%s" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s" in "%s").', $parameter, $id, $callable, substr($callable, 1), $file)); - } - - return $callable; - } - - if (\is_array($callable)) { - if (isset($callable[0]) && isset($callable[1])) { - return [$this->resolveServices($callable[0], $file), $callable[1]]; - } - - if ('factory' === $parameter && isset($callable[1]) && null === $callable[0]) { - return $callable; - } - - throw new InvalidArgumentException(sprintf('Parameter "%s" must contain an array with two elements for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file)); - } - - throw new InvalidArgumentException(sprintf('Parameter "%s" must be a string or an array for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file)); - } - - /** - * Loads a YAML file. - * - * @throws InvalidArgumentException when the given file is not a local file or when it does not exist - */ - protected function loadFile(string $file): ?array - { - if (!class_exists(\Symfony\Component\Yaml\Parser::class)) { - throw new RuntimeException('Unable to load YAML config files as the Symfony Yaml Component is not installed. Try running "composer require symfony/yaml".'); - } - - if (!stream_is_local($file)) { - throw new InvalidArgumentException(sprintf('This is not a local file "%s".', $file)); - } - - if (!is_file($file)) { - throw new InvalidArgumentException(sprintf('The file "%s" does not exist.', $file)); - } - - $this->yamlParser ??= new YamlParser(); - - try { - $configuration = $this->yamlParser->parseFile($file, Yaml::PARSE_CONSTANT | Yaml::PARSE_CUSTOM_TAGS); - } catch (ParseException $e) { - throw new InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: ', $file).$e->getMessage(), 0, $e); - } - - return $this->validate($configuration, $file); - } - - /** - * Validates a YAML file. - * - * @throws InvalidArgumentException When service file is not valid - */ - private function validate(mixed $content, string $file): ?array - { - if (null === $content) { - return $content; - } - - if (!\is_array($content)) { - throw new InvalidArgumentException(sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file)); - } - - foreach ($content as $namespace => $data) { - if (\in_array($namespace, ['imports', 'parameters', 'services']) || str_starts_with($namespace, 'when@')) { - continue; - } - - if (!$this->container->hasExtension($namespace)) { - $extensionNamespaces = array_filter(array_map(fn (ExtensionInterface $ext) => $ext->getAlias(), $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $file, $namespace, $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none')); - } - } - - return $content; - } - - private function resolveServices(mixed $value, string $file, bool $isParameter = false): mixed - { - if ($value instanceof TaggedValue) { - $argument = $value->getValue(); - - if ('closure' === $value->getTag()) { - $argument = $this->resolveServices($argument, $file, $isParameter); - - return (new Definition('Closure')) - ->setFactory(['Closure', 'fromCallable']) - ->addArgument($argument); - } - if ('iterator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(sprintf('"!iterator" tag only accepts sequences in "%s".', $file)); - } - $argument = $this->resolveServices($argument, $file, $isParameter); - - return new IteratorArgument($argument); - } - if ('service_closure' === $value->getTag()) { - $argument = $this->resolveServices($argument, $file, $isParameter); - - return new ServiceClosureArgument($argument); - } - if ('service_locator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps in "%s".', $file)); - } - - $argument = $this->resolveServices($argument, $file, $isParameter); - - if (isset($argument[0])) { - trigger_deprecation('symfony/dependency-injection', '6.3', 'Using integers as keys in a "!service_locator" tag is deprecated. The keys will default to the IDs of the original services in 7.0.'); - } - - return new ServiceLocatorArgument($argument); - } - if (\in_array($value->getTag(), ['tagged', 'tagged_iterator', 'tagged_locator'], true)) { - $forLocator = 'tagged_locator' === $value->getTag(); - - if (\is_array($argument) && isset($argument['tag']) && $argument['tag']) { - if ($diff = array_diff(array_keys($argument), $supportedKeys = ['tag', 'index_by', 'default_index_method', 'default_priority_method', 'exclude', 'exclude_self'])) { - throw new InvalidArgumentException(sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "%s".', $value->getTag(), implode('", "', $diff), implode('", "', $supportedKeys))); - } - - $argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'] ?? null, $argument['default_index_method'] ?? null, $forLocator, $argument['default_priority_method'] ?? null, (array) ($argument['exclude'] ?? null), $argument['exclude_self'] ?? true); - } elseif (\is_string($argument) && $argument) { - $argument = new TaggedIteratorArgument($argument, null, null, $forLocator); - } else { - throw new InvalidArgumentException(sprintf('"!%s" tags only accept a non empty string or an array with a key "tag" in "%s".', $value->getTag(), $file)); - } - - if ($forLocator) { - $argument = new ServiceLocatorArgument($argument); - } - - return $argument; - } - if ('service' === $value->getTag()) { - if ($isParameter) { - throw new InvalidArgumentException(sprintf('Using an anonymous service in a parameter is not allowed in "%s".', $file)); - } - - $isLoadingInstanceof = $this->isLoadingInstanceof; - $this->isLoadingInstanceof = false; - $instanceof = $this->instanceof; - $this->instanceof = []; - - $id = sprintf('.%d_%s', ++$this->anonymousServicesCount, preg_replace('/^.*\\\\/', '', $argument['class'] ?? '').$this->anonymousServicesSuffix); - $this->parseDefinition($id, $argument, $file, []); - - if (!$this->container->hasDefinition($id)) { - throw new InvalidArgumentException(sprintf('Creating an alias using the tag "!service" is not allowed in "%s".', $file)); - } - - $this->container->getDefinition($id); - - $this->isLoadingInstanceof = $isLoadingInstanceof; - $this->instanceof = $instanceof; - - return new Reference($id); - } - if ('abstract' === $value->getTag()) { - return new AbstractArgument($value->getValue()); - } - - throw new InvalidArgumentException(sprintf('Unsupported tag "!%s".', $value->getTag())); - } - - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->resolveServices($v, $file, $isParameter); - } - } elseif (\is_string($value) && str_starts_with($value, '@=')) { - if ($isParameter) { - throw new InvalidArgumentException(sprintf('Using expressions in parameters is not allowed in "%s".', $file)); - } - - if (!class_exists(Expression::class)) { - throw new \LogicException('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - - return new Expression(substr($value, 2)); - } elseif (\is_string($value) && str_starts_with($value, '@')) { - if (str_starts_with($value, '@@')) { - $value = substr($value, 1); - $invalidBehavior = null; - } elseif (str_starts_with($value, '@!')) { - $value = substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif (str_starts_with($value, '@?')) { - $value = substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } else { - $value = substr($value, 1); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } - - if (null !== $invalidBehavior) { - $value = new Reference($value, $invalidBehavior); - } - } - - return $value; - } - - private function loadFromExtensions(array $content): void - { - foreach ($content as $namespace => $values) { - if (\in_array($namespace, ['imports', 'parameters', 'services']) || str_starts_with($namespace, 'when@')) { - continue; - } - - if (!\is_array($values) && null !== $values) { - $values = []; - } - - $this->container->loadFromExtension($namespace, $values); - } - } - - private function checkDefinition(string $id, array $definition, string $file): void - { - if ($this->isLoadingInstanceof) { - $keywords = self::INSTANCEOF_KEYWORDS; - } elseif (isset($definition['resource']) || isset($definition['namespace'])) { - $keywords = self::PROTOTYPE_KEYWORDS; - } else { - $keywords = self::SERVICE_KEYWORDS; - } - - foreach ($definition as $key => $value) { - if (!isset($keywords[$key])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for definition "%s" in "%s". Allowed configuration keys are "%s".', $key, $id, $file, implode('", "', $keywords))); - } - } - } - - private function validateAttributes(string $message, array $attributes, array $path = []): void - { - foreach ($attributes as $name => $value) { - if (\is_array($value)) { - $this->validateAttributes($message, $value, [...$path, $name]); - } elseif (!\is_scalar($value ?? '')) { - $name = implode('.', [...$path, $name]); - throw new InvalidArgumentException(sprintf($message, $name)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd b/projects/priceservice/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd deleted file mode 100644 index c071e34..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Parameter.php b/projects/priceservice/vendor/symfony/dependency-injection/Parameter.php deleted file mode 100644 index 90dcc92..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Parameter.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Parameter represents a parameter reference. - * - * @author Fabien Potencier - */ -class Parameter -{ - private string $id; - - public function __construct(string $id) - { - $this->id = $id; - } - - public function __toString(): string - { - return $this->id; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php deleted file mode 100644 index 7aa5ff8..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Container; - -/** - * @author Nicolas Grekas - */ -class ContainerBag extends FrozenParameterBag implements ContainerBagInterface -{ - private Container $container; - - public function __construct(Container $container) - { - $this->container = $container; - } - - public function all(): array - { - return $this->container->getParameterBag()->all(); - } - - public function get(string $name): array|bool|string|int|float|\UnitEnum|null - { - return $this->container->getParameter($name); - } - - public function has(string $name): bool - { - return $this->container->hasParameter($name); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php deleted file mode 100644 index eeff653..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; - -/** - * ContainerBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Nicolas Grekas - */ -interface ContainerBagInterface extends ContainerInterface -{ - /** - * Gets the service container parameters. - */ - public function all(): array; - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @template TValue of array|scalar - * - * @param TValue $value - * - * @return mixed - * - * @psalm-return (TValue is scalar ? array|scalar : array) - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - */ - public function resolveValue(mixed $value); - - /** - * Escape parameter placeholders %. - */ - public function escapeValue(mixed $value): mixed; - - /** - * Unescape parameter placeholders %. - */ - public function unescapeValue(mixed $value): mixed; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php deleted file mode 100644 index 4719d21..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php +++ /dev/null @@ -1,158 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Nicolas Grekas - */ -class EnvPlaceholderParameterBag extends ParameterBag -{ - private string $envPlaceholderUniquePrefix; - private array $envPlaceholders = []; - private array $unusedEnvPlaceholders = []; - private array $providedTypes = []; - - private static int $counter = 0; - - public function get(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (str_starts_with($name, 'env(') && str_ends_with($name, ')') && 'env()' !== $name) { - $env = substr($name, 4, -1); - - if (isset($this->envPlaceholders[$env])) { - foreach ($this->envPlaceholders[$env] as $placeholder) { - return $placeholder; // return first result - } - } - if (isset($this->unusedEnvPlaceholders[$env])) { - foreach ($this->unusedEnvPlaceholders[$env] as $placeholder) { - return $placeholder; // return first result - } - } - if (!preg_match('/^(?:[-.\w\\\\]*+:)*+\w*+$/', $env)) { - throw new InvalidArgumentException(sprintf('Invalid %s name: only "word" characters are allowed.', $name)); - } - if ($this->has($name) && null !== ($defaultValue = parent::get($name)) && !\is_string($defaultValue)) { - throw new RuntimeException(sprintf('The default value of an env() parameter must be a string or null, but "%s" given to "%s".', get_debug_type($defaultValue), $name)); - } - - $uniqueName = hash('xxh128', $name.'_'.self::$counter++); - $placeholder = sprintf('%s_%s_%s', $this->getEnvPlaceholderUniquePrefix(), strtr($env, ':-.\\', '____'), $uniqueName); - $this->envPlaceholders[$env][$placeholder] = $placeholder; - - return $placeholder; - } - - return parent::get($name); - } - - /** - * Gets the common env placeholder prefix for env vars created by this bag. - */ - public function getEnvPlaceholderUniquePrefix(): string - { - if (!isset($this->envPlaceholderUniquePrefix)) { - $reproducibleEntropy = unserialize(serialize($this->parameters)); - array_walk_recursive($reproducibleEntropy, function (&$v) { $v = null; }); - $this->envPlaceholderUniquePrefix = 'env_'.substr(hash('xxh128', serialize($reproducibleEntropy)), -16); - } - - return $this->envPlaceholderUniquePrefix; - } - - /** - * Returns the map of env vars used in the resolved parameter values to their placeholders. - * - * @return string[][] A map of env var names to their placeholders - */ - public function getEnvPlaceholders(): array - { - return $this->envPlaceholders; - } - - public function getUnusedEnvPlaceholders(): array - { - return $this->unusedEnvPlaceholders; - } - - /** - * @return void - */ - public function clearUnusedEnvPlaceholders() - { - $this->unusedEnvPlaceholders = []; - } - - /** - * Merges the env placeholders of another EnvPlaceholderParameterBag. - * - * @return void - */ - public function mergeEnvPlaceholders(self $bag) - { - if ($newPlaceholders = $bag->getEnvPlaceholders()) { - $this->envPlaceholders += $newPlaceholders; - - foreach ($newPlaceholders as $env => $placeholders) { - $this->envPlaceholders[$env] += $placeholders; - } - } - - if ($newUnusedPlaceholders = $bag->getUnusedEnvPlaceholders()) { - $this->unusedEnvPlaceholders += $newUnusedPlaceholders; - - foreach ($newUnusedPlaceholders as $env => $placeholders) { - $this->unusedEnvPlaceholders[$env] += $placeholders; - } - } - } - - /** - * Maps env prefixes to their corresponding PHP types. - * - * @return void - */ - public function setProvidedTypes(array $providedTypes) - { - $this->providedTypes = $providedTypes; - } - - /** - * Gets the PHP types corresponding to env() parameter prefixes. - * - * @return string[][] - */ - public function getProvidedTypes(): array - { - return $this->providedTypes; - } - - /** - * @return void - */ - public function resolve() - { - if ($this->resolved) { - return; - } - parent::resolve(); - - foreach ($this->envPlaceholders as $env => $placeholders) { - if ($this->has($name = "env($env)") && null !== ($default = $this->parameters[$name]) && !\is_string($default)) { - throw new RuntimeException(sprintf('The default value of env parameter "%s" must be a string or null, "%s" given.', $env, get_debug_type($default))); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php deleted file mode 100644 index 1ede090..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\LogicException; - -/** - * Holds read-only parameters. - * - * @author Fabien Potencier - */ -class FrozenParameterBag extends ParameterBag -{ - /** - * For performance reasons, the constructor assumes that - * all keys are already lowercased. - * - * This is always the case when used internally. - */ - public function __construct( - array $parameters = [], - protected array $deprecatedParameters = [], - ) { - $this->parameters = $parameters; - $this->resolved = true; - } - - /** - * @return never - */ - public function clear() - { - throw new LogicException('Impossible to call clear() on a frozen ParameterBag.'); - } - - /** - * @return never - */ - public function add(array $parameters) - { - throw new LogicException('Impossible to call add() on a frozen ParameterBag.'); - } - - /** - * @return never - */ - public function set(string $name, array|bool|string|int|float|\UnitEnum|null $value) - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - /** - * @return never - */ - public function deprecate(string $name, string $package, string $version, string $message = 'The parameter "%s" is deprecated.') - { - throw new LogicException('Impossible to call deprecate() on a frozen ParameterBag.'); - } - - /** - * @return never - */ - public function remove(string $name) - { - throw new LogicException('Impossible to call remove() on a frozen ParameterBag.'); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php deleted file mode 100644 index c1cd908..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php +++ /dev/null @@ -1,301 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Holds parameters. - * - * @author Fabien Potencier - */ -class ParameterBag implements ParameterBagInterface -{ - protected $parameters = []; - protected $resolved = false; - protected array $deprecatedParameters = []; - - public function __construct(array $parameters = []) - { - $this->add($parameters); - } - - /** - * @return void - */ - public function clear() - { - $this->parameters = []; - } - - /** - * @return void - */ - public function add(array $parameters) - { - foreach ($parameters as $key => $value) { - $this->set($key, $value); - } - } - - public function all(): array - { - return $this->parameters; - } - - public function allDeprecated(): array - { - return $this->deprecatedParameters; - } - - public function get(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (!\array_key_exists($name, $this->parameters)) { - if (!$name) { - throw new ParameterNotFoundException($name); - } - - $alternatives = []; - foreach ($this->parameters as $key => $parameterValue) { - $lev = levenshtein($name, $key); - if ($lev <= \strlen($name) / 3 || str_contains($key, $name)) { - $alternatives[] = $key; - } - } - - $nonNestedAlternative = null; - if (!\count($alternatives) && str_contains($name, '.')) { - $namePartsLength = array_map('strlen', explode('.', $name)); - $key = substr($name, 0, -1 * (1 + array_pop($namePartsLength))); - while (\count($namePartsLength)) { - if ($this->has($key)) { - if (\is_array($this->get($key))) { - $nonNestedAlternative = $key; - } - break; - } - - $key = substr($key, 0, -1 * (1 + array_pop($namePartsLength))); - } - } - - throw new ParameterNotFoundException($name, null, null, null, $alternatives, $nonNestedAlternative); - } - - if (isset($this->deprecatedParameters[$name])) { - trigger_deprecation(...$this->deprecatedParameters[$name]); - } - - return $this->parameters[$name]; - } - - /** - * @return void - */ - public function set(string $name, array|bool|string|int|float|\UnitEnum|null $value) - { - if (is_numeric($name)) { - trigger_deprecation('symfony/dependency-injection', '6.2', sprintf('Using numeric parameter name "%s" is deprecated and will throw as of 7.0.', $name)); - // uncomment the following line in 7.0 - // throw new InvalidArgumentException(sprintf('The parameter name "%s" cannot be numeric.', $name)); - } - - $this->parameters[$name] = $value; - } - - /** - * Deprecates a service container parameter. - * - * @return void - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function deprecate(string $name, string $package, string $version, string $message = 'The parameter "%s" is deprecated.') - { - if (!\array_key_exists($name, $this->parameters)) { - throw new ParameterNotFoundException($name); - } - - $this->deprecatedParameters[$name] = [$package, $version, $message, $name]; - } - - public function has(string $name): bool - { - return \array_key_exists($name, $this->parameters); - } - - /** - * @return void - */ - public function remove(string $name) - { - unset($this->parameters[$name], $this->deprecatedParameters[$name]); - } - - /** - * @return void - */ - public function resolve() - { - if ($this->resolved) { - return; - } - - $parameters = []; - foreach ($this->parameters as $key => $value) { - try { - $value = $this->resolveValue($value); - $parameters[$key] = $this->unescapeValue($value); - } catch (ParameterNotFoundException $e) { - $e->setSourceKey($key); - - throw $e; - } - } - - $this->parameters = $parameters; - $this->resolved = true; - } - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @template TValue of array|scalar - * - * @param TValue $value - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @psalm-return (TValue is scalar ? array|scalar : array) - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - */ - public function resolveValue(mixed $value, array $resolving = []): mixed - { - if (\is_array($value)) { - $args = []; - foreach ($value as $key => $v) { - $resolvedKey = \is_string($key) ? $this->resolveValue($key, $resolving) : $key; - if (!\is_scalar($resolvedKey) && !$resolvedKey instanceof \Stringable) { - throw new RuntimeException(sprintf('Array keys must be a scalar-value, but found key "%s" to resolve to type "%s".', $key, get_debug_type($resolvedKey))); - } - - $args[$resolvedKey] = $this->resolveValue($v, $resolving); - } - - return $args; - } - - if (!\is_string($value) || '' === $value || !str_contains($value, '%')) { - return $value; - } - - return $this->resolveString($value, $resolving); - } - - /** - * Resolves parameters inside a string. - * - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - */ - public function resolveString(string $value, array $resolving = []): mixed - { - // we do this to deal with non string values (Boolean, integer, ...) - // as the preg_replace_callback throw an exception when trying - // a non-string in a parameter value - if (preg_match('/^%([^%\s]+)%$/', $value, $match)) { - $key = $match[1]; - - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(array_keys($resolving)); - } - - $resolving[$key] = true; - - return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving); - } - - return preg_replace_callback('/%%|%([^%\s]+)%/', function ($match) use ($resolving, $value) { - // skip %% - if (!isset($match[1])) { - return '%%'; - } - - $key = $match[1]; - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(array_keys($resolving)); - } - - $resolved = $this->get($key); - - if (!\is_string($resolved) && !is_numeric($resolved)) { - throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type "%s" inside string value "%s".', $key, get_debug_type($resolved), $value)); - } - - $resolved = (string) $resolved; - $resolving[$key] = true; - - return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving); - }, $value); - } - - /** - * @return bool - */ - public function isResolved() - { - return $this->resolved; - } - - public function escapeValue(mixed $value): mixed - { - if (\is_string($value)) { - return str_replace('%', '%%', $value); - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->escapeValue($v); - } - - return $result; - } - - return $value; - } - - public function unescapeValue(mixed $value): mixed - { - if (\is_string($value)) { - return str_replace('%%', '%', $value); - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->unescapeValue($v); - } - - return $result; - } - - return $value; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php deleted file mode 100644 index 18ddfde..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; - -/** - * ParameterBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Fabien Potencier - */ -interface ParameterBagInterface -{ - /** - * Clears all parameters. - * - * @return void - * - * @throws LogicException if the ParameterBagInterface cannot be cleared - */ - public function clear(); - - /** - * Adds parameters to the service container parameters. - * - * @return void - * - * @throws LogicException if the parameter cannot be added - */ - public function add(array $parameters); - - /** - * Gets the service container parameters. - */ - public function all(): array; - - /** - * Gets a service container parameter. - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function get(string $name): array|bool|string|int|float|\UnitEnum|null; - - /** - * Removes a parameter. - * - * @return void - */ - public function remove(string $name); - - /** - * Sets a service container parameter. - * - * @return void - * - * @throws LogicException if the parameter cannot be set - */ - public function set(string $name, array|bool|string|int|float|\UnitEnum|null $value); - - /** - * Returns true if a parameter name is defined. - */ - public function has(string $name): bool; - - /** - * Replaces parameter placeholders (%name%) by their values for all parameters. - * - * @return void - */ - public function resolve(); - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @return mixed - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - */ - public function resolveValue(mixed $value); - - /** - * Escape parameter placeholders %. - */ - public function escapeValue(mixed $value): mixed; - - /** - * Unescape parameter placeholders %. - */ - public function unescapeValue(mixed $value): mixed; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/README.md b/projects/priceservice/vendor/symfony/dependency-injection/README.md deleted file mode 100644 index fa6719a..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/README.md +++ /dev/null @@ -1,14 +0,0 @@ -DependencyInjection Component -============================= - -The DependencyInjection component allows you to standardize and centralize the -way objects are constructed in your application. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/dependency_injection.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Reference.php b/projects/priceservice/vendor/symfony/dependency-injection/Reference.php deleted file mode 100644 index 2a89dda..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Reference.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Reference represents a service reference. - * - * @author Fabien Potencier - */ -class Reference -{ - private string $id; - private int $invalidBehavior; - - public function __construct(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - $this->id = $id; - $this->invalidBehavior = $invalidBehavior; - } - - public function __toString(): string - { - return $this->id; - } - - /** - * Returns the behavior to be used when the service does not exist. - */ - public function getInvalidBehavior(): int - { - return $this->invalidBehavior; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ReverseContainer.php b/projects/priceservice/vendor/symfony/dependency-injection/ReverseContainer.php deleted file mode 100644 index 22d1b35..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ReverseContainer.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -/** - * Turns public and "container.reversible" services back to their ids. - * - * @author Nicolas Grekas - */ -final class ReverseContainer -{ - private Container $serviceContainer; - private ContainerInterface $reversibleLocator; - private string $tagName; - private \Closure $getServiceId; - - public function __construct(Container $serviceContainer, ContainerInterface $reversibleLocator, string $tagName = 'container.reversible') - { - $this->serviceContainer = $serviceContainer; - $this->reversibleLocator = $reversibleLocator; - $this->tagName = $tagName; - $this->getServiceId = \Closure::bind(fn (object $service): ?string => array_search($service, $this->services, true) ?: array_search($service, $this->privates, true) ?: null, $serviceContainer, Container::class); - } - - /** - * Returns the id of the passed object when it exists as a service. - * - * To be reversible, services need to be either public or be tagged with "container.reversible". - */ - public function getId(object $service): ?string - { - if ($this->serviceContainer === $service) { - return 'service_container'; - } - - if (null === $id = ($this->getServiceId)($service)) { - return null; - } - - if ($this->serviceContainer->has($id) || $this->reversibleLocator->has($id)) { - return $id; - } - - return null; - } - - /** - * @throws ServiceNotFoundException When the service is not reversible - */ - public function getService(string $id): object - { - if ($this->reversibleLocator->has($id)) { - return $this->reversibleLocator->get($id); - } - - if (isset($this->serviceContainer->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is private and cannot be accessed by reference. You should either make it public, or tag it as "%s".', $id, $this->tagName)); - } - - return $this->serviceContainer->get($id); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/ServiceLocator.php b/projects/priceservice/vendor/symfony/dependency-injection/ServiceLocator.php deleted file mode 100644 index 45530f7..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/ServiceLocator.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerExceptionInterface; -use Psr\Container\NotFoundExceptionInterface; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Contracts\Service\ServiceLocatorTrait; -use Symfony\Contracts\Service\ServiceProviderInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * @author Robin Chalas - * @author Nicolas Grekas - * - * @template-covariant T of mixed - * - * @implements ServiceProviderInterface - */ -class ServiceLocator implements ServiceProviderInterface, \Countable -{ - use ServiceLocatorTrait { - get as private doGet; - } - - private ?string $externalId = null; - private ?Container $container = null; - - public function get(string $id): mixed - { - if (!$this->externalId) { - return $this->doGet($id); - } - - try { - return $this->doGet($id); - } catch (RuntimeException $e) { - $what = sprintf('service "%s" required by "%s"', $id, $this->externalId); - $message = preg_replace('/service "\.service_locator\.[^"]++"/', $what, $e->getMessage()); - - if ($e->getMessage() === $message) { - $message = sprintf('Cannot resolve %s: %s', $what, $message); - } - - $r = new \ReflectionProperty($e, 'message'); - $r->setValue($e, $message); - - throw $e; - } - } - - /** - * @return mixed - */ - public function __invoke(string $id) - { - return isset($this->factories[$id]) ? $this->get($id) : null; - } - - /** - * @internal - */ - public function withContext(string $externalId, Container $container): static - { - $locator = clone $this; - $locator->externalId = $externalId; - $locator->container = $container; - - return $locator; - } - - public function count(): int - { - return \count($this->getProvidedServices()); - } - - private function createNotFoundException(string $id): NotFoundExceptionInterface - { - if ($this->loading) { - $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $this->formatAlternatives()); - - return new ServiceNotFoundException($id, end($this->loading) ?: null, null, [], $msg); - } - - $class = debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, 4); - $class = isset($class[3]['object']) ? $class[3]['object']::class : null; - $externalId = $this->externalId ?: $class; - - $msg = []; - $msg[] = sprintf('Service "%s" not found:', $id); - - if (!$this->container) { - $class = null; - } elseif ($this->container->has($id) || isset($this->container->getRemovedIds()[$id])) { - $msg[] = 'even though it exists in the app\'s container,'; - } else { - try { - $this->container->get($id); - $class = null; - } catch (ServiceNotFoundException $e) { - if ($e->getAlternatives()) { - $msg[] = sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or')); - } else { - $class = null; - } - } - } - if ($externalId) { - $msg[] = sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives()); - } else { - $msg[] = sprintf('the current service locator %s', $this->formatAlternatives()); - } - - if (!$class) { - // no-op - } elseif (is_subclass_of($class, ServiceSubscriberInterface::class)) { - $msg[] = sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', preg_replace('/([^\\\\]++\\\\)++/', '', $class)); - } else { - $msg[] = 'Try using dependency injection instead.'; - } - - return new ServiceNotFoundException($id, end($this->loading) ?: null, null, [], implode(' ', $msg)); - } - - private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface - { - return new ServiceCircularReferenceException($id, $path); - } - - private function formatAlternatives(?array $alternatives = null, string $separator = 'and'): string - { - $format = '"%s"%s'; - if (null === $alternatives) { - if (!$alternatives = array_keys($this->factories)) { - return 'is empty...'; - } - $format = sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : ''); - } - $last = array_pop($alternatives); - - return sprintf($format, $alternatives ? implode('", "', $alternatives) : $last, $alternatives ? sprintf(' %s "%s"', $separator, $last) : ''); - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/TaggedContainerInterface.php b/projects/priceservice/vendor/symfony/dependency-injection/TaggedContainerInterface.php deleted file mode 100644 index a108a99..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/TaggedContainerInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * TaggedContainerInterface is the interface implemented when a container knows how to deals with tags. - * - * @author Fabien Potencier - */ -interface TaggedContainerInterface extends ContainerInterface -{ - /** - * Returns service ids for a given tag. - * - * @param string $name The tag name - */ - public function findTaggedServiceIds(string $name): array; -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/TypedReference.php b/projects/priceservice/vendor/symfony/dependency-injection/TypedReference.php deleted file mode 100644 index 1c932c3..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/TypedReference.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Represents a PHP type-hinted service reference. - * - * @author Nicolas Grekas - */ -class TypedReference extends Reference -{ - private string $type; - private ?string $name; - private array $attributes; - - /** - * @param string $id The service identifier - * @param string $type The PHP type of the identified service - * @param int $invalidBehavior The behavior when the service does not exist - * @param string|null $name The name of the argument targeting the service - * @param array $attributes The attributes to be used - */ - public function __construct(string $id, string $type, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, ?string $name = null, array $attributes = []) - { - $this->name = $type === $id ? $name : null; - parent::__construct($id, $invalidBehavior); - $this->type = $type; - $this->attributes = $attributes; - } - - /** - * @return string - */ - public function getType() - { - return $this->type; - } - - public function getName(): ?string - { - return $this->name; - } - - public function getAttributes(): array - { - return $this->attributes; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/Variable.php b/projects/priceservice/vendor/symfony/dependency-injection/Variable.php deleted file mode 100644 index bb275ce..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/Variable.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Represents a variable. - * - * $var = new Variable('a'); - * - * will be dumped as - * - * $a - * - * by the PHP dumper. - * - * @author Johannes M. Schmitt - */ -class Variable -{ - private string $name; - - public function __construct(string $name) - { - $this->name = $name; - } - - public function __toString(): string - { - return $this->name; - } -} diff --git a/projects/priceservice/vendor/symfony/dependency-injection/composer.json b/projects/priceservice/vendor/symfony/dependency-injection/composer.json deleted file mode 100644 index 86b05b9..0000000 --- a/projects/priceservice/vendor/symfony/dependency-injection/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "symfony/dependency-injection", - "type": "library", - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4.20|^7.2.5" - }, - "require-dev": { - "symfony/yaml": "^5.4|^6.0|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" - }, - "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/deprecation-contracts/CHANGELOG.md b/projects/priceservice/vendor/symfony/deprecation-contracts/CHANGELOG.md deleted file mode 100644 index 7932e26..0000000 --- a/projects/priceservice/vendor/symfony/deprecation-contracts/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -CHANGELOG -========= - -The changelog is maintained for all Symfony contracts at the following URL: -https://github.com/symfony/contracts/blob/main/CHANGELOG.md diff --git a/projects/priceservice/vendor/symfony/deprecation-contracts/LICENSE b/projects/priceservice/vendor/symfony/deprecation-contracts/LICENSE deleted file mode 100644 index 0ed3a24..0000000 --- a/projects/priceservice/vendor/symfony/deprecation-contracts/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2020-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/deprecation-contracts/README.md b/projects/priceservice/vendor/symfony/deprecation-contracts/README.md deleted file mode 100644 index 9814864..0000000 --- a/projects/priceservice/vendor/symfony/deprecation-contracts/README.md +++ /dev/null @@ -1,26 +0,0 @@ -Symfony Deprecation Contracts -============================= - -A generic function and convention to trigger deprecation notices. - -This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices. - -By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component, -the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments. - -The function requires at least 3 arguments: - - the name of the Composer package that is triggering the deprecation - - the version of the package that introduced the deprecation - - the message of the deprecation - - more arguments can be provided: they will be inserted in the message using `printf()` formatting - -Example: -```php -trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin'); -``` - -This will generate the following message: -`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` - -While not recommended, the deprecation notices can be completely ignored by declaring an empty -`function trigger_deprecation() {}` in your application. diff --git a/projects/priceservice/vendor/symfony/deprecation-contracts/composer.json b/projects/priceservice/vendor/symfony/deprecation-contracts/composer.json deleted file mode 100644 index 5533b5c..0000000 --- a/projects/priceservice/vendor/symfony/deprecation-contracts/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "symfony/deprecation-contracts", - "type": "library", - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1" - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.6-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - } -} diff --git a/projects/priceservice/vendor/symfony/deprecation-contracts/function.php b/projects/priceservice/vendor/symfony/deprecation-contracts/function.php deleted file mode 100644 index 2d56512..0000000 --- a/projects/priceservice/vendor/symfony/deprecation-contracts/function.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (!function_exists('trigger_deprecation')) { - /** - * Triggers a silenced deprecation notice. - * - * @param string $package The name of the Composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The message of the deprecation - * @param mixed ...$args Values to insert in the message using printf() formatting - * - * @author Nicolas Grekas - */ - function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void - { - @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/ArgumentResolver/EntityValueResolver.php b/projects/priceservice/vendor/symfony/doctrine-bridge/ArgumentResolver/EntityValueResolver.php deleted file mode 100644 index c3cc1c8..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/ArgumentResolver/EntityValueResolver.php +++ /dev/null @@ -1,216 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\ArgumentResolver; - -use Doctrine\DBAL\Types\ConversionException; -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\NoResultException; -use Doctrine\Persistence\ManagerRegistry; -use Doctrine\Persistence\ObjectManager; -use Symfony\Bridge\Doctrine\Attribute\MapEntity; -use Symfony\Component\ExpressionLanguage\ExpressionLanguage; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; -use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - -/** - * Yields the entity matching the criteria provided in the route. - * - * @author Fabien Potencier - * @author Jérémy Derussé - */ -final class EntityValueResolver implements ValueResolverInterface -{ - public function __construct( - private ManagerRegistry $registry, - private ?ExpressionLanguage $expressionLanguage = null, - private MapEntity $defaults = new MapEntity(), - ) { - } - - public function resolve(Request $request, ArgumentMetadata $argument): array - { - if (\is_object($request->attributes->get($argument->getName()))) { - return []; - } - - $options = $argument->getAttributes(MapEntity::class, ArgumentMetadata::IS_INSTANCEOF); - $options = ($options[0] ?? $this->defaults)->withDefaults($this->defaults, $argument->getType()); - - if (!$options->class || $options->disabled) { - return []; - } - if (!$manager = $this->getManager($options->objectManager, $options->class)) { - return []; - } - - $message = ''; - if (null !== $options->expr) { - if (null === $object = $this->findViaExpression($manager, $request, $options)) { - $message = sprintf(' The expression "%s" returned null.', $options->expr); - } - // find by identifier? - } elseif (false === $object = $this->find($manager, $request, $options, $argument->getName())) { - // find by criteria - if (!$criteria = $this->getCriteria($request, $options, $manager)) { - return []; - } - try { - $object = $manager->getRepository($options->class)->findOneBy($criteria); - } catch (NoResultException|ConversionException) { - $object = null; - } - } - - if (null === $object && !$argument->isNullable()) { - throw new NotFoundHttpException(sprintf('"%s" object not found by "%s".', $options->class, self::class).$message); - } - - return [$object]; - } - - private function getManager(?string $name, string $class): ?ObjectManager - { - if (null === $name) { - return $this->registry->getManagerForClass($class); - } - - try { - $manager = $this->registry->getManager($name); - } catch (\InvalidArgumentException) { - return null; - } - - return $manager->getMetadataFactory()->isTransient($class) ? null : $manager; - } - - private function find(ObjectManager $manager, Request $request, MapEntity $options, string $name): false|object|null - { - if ($options->mapping || $options->exclude) { - return false; - } - - $id = $this->getIdentifier($request, $options, $name); - if (false === $id || null === $id) { - return $id; - } - if (\is_array($id) && \in_array(null, $id, true)) { - return null; - } - - if ($options->evictCache && $manager instanceof EntityManagerInterface) { - $cacheProvider = $manager->getCache(); - if ($cacheProvider && $cacheProvider->containsEntity($options->class, $id)) { - $cacheProvider->evictEntity($options->class, $id); - } - } - - try { - return $manager->getRepository($options->class)->find($id); - } catch (NoResultException|ConversionException) { - return null; - } - } - - private function getIdentifier(Request $request, MapEntity $options, string $name): mixed - { - if (\is_array($options->id)) { - $id = []; - foreach ($options->id as $field) { - // Convert "%s_uuid" to "foobar_uuid" - if (str_contains($field, '%s')) { - $field = sprintf($field, $name); - } - - $id[$field] = $request->attributes->get($field); - } - - return $id; - } - - if (null !== $options->id) { - $name = $options->id; - } - - if ($request->attributes->has($name)) { - return $request->attributes->get($name) ?? ($options->stripNull ? false : null); - } - - if (!$options->id && $request->attributes->has('id')) { - return $request->attributes->get('id') ?? ($options->stripNull ? false : null); - } - - return false; - } - - private function getCriteria(Request $request, MapEntity $options, ObjectManager $manager): array - { - if (null === $mapping = $options->mapping) { - $mapping = $request->attributes->keys(); - } - - if ($mapping && \is_array($mapping) && array_is_list($mapping)) { - $mapping = array_combine($mapping, $mapping); - } - - foreach ($options->exclude as $exclude) { - unset($mapping[$exclude]); - } - - if (!$mapping) { - return []; - } - - // if a specific id has been defined in the options and there is no corresponding attribute - // return false in order to avoid a fallback to the id which might be of another object - if (\is_string($options->id) && null === $request->attributes->get($options->id)) { - return []; - } - - $criteria = []; - $metadata = $manager->getClassMetadata($options->class); - - foreach ($mapping as $attribute => $field) { - if (!$metadata->hasField($field) && (!$metadata->hasAssociation($field) || !$metadata->isSingleValuedAssociation($field))) { - continue; - } - - $criteria[$field] = $request->attributes->get($attribute); - } - - if ($options->stripNull) { - $criteria = array_filter($criteria, static fn ($value) => null !== $value); - } - - return $criteria; - } - - private function findViaExpression(ObjectManager $manager, Request $request, MapEntity $options): ?object - { - if (!$this->expressionLanguage) { - throw new \LogicException(sprintf('You cannot use the "%s" if the ExpressionLanguage component is not available. Try running "composer require symfony/expression-language".', __CLASS__)); - } - - $repository = $manager->getRepository($options->class); - $variables = array_merge($request->attributes->all(), [ - 'repository' => $repository, - 'request' => $request, - ]); - - try { - return $this->expressionLanguage->evaluate($options->expr, $variables); - } catch (NoResultException|ConversionException) { - return null; - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Attribute/MapEntity.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Attribute/MapEntity.php deleted file mode 100644 index 529bf05..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Attribute/MapEntity.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Attribute; - -use Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver; -use Symfony\Component\HttpKernel\Attribute\ValueResolver; - -/** - * Indicates that a controller argument should receive an Entity. - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class MapEntity extends ValueResolver -{ - public function __construct( - public ?string $class = null, - public ?string $objectManager = null, - public ?string $expr = null, - public ?array $mapping = null, - public ?array $exclude = null, - public ?bool $stripNull = null, - public array|string|null $id = null, - public ?bool $evictCache = null, - bool $disabled = false, - string $resolver = EntityValueResolver::class, - ) { - parent::__construct($resolver, $disabled); - } - - public function withDefaults(self $defaults, ?string $class): static - { - $clone = clone $this; - $clone->class ??= class_exists($class ?? '') ? $class : null; - $clone->objectManager ??= $defaults->objectManager; - $clone->expr ??= $defaults->expr; - $clone->mapping ??= $defaults->mapping; - $clone->exclude ??= $defaults->exclude ?? []; - $clone->stripNull ??= $defaults->stripNull ?? false; - $clone->id ??= $defaults->id; - $clone->evictCache ??= $defaults->evictCache ?? false; - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/CHANGELOG.md b/projects/priceservice/vendor/symfony/doctrine-bridge/CHANGELOG.md deleted file mode 100644 index 867f9d4..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/CHANGELOG.md +++ /dev/null @@ -1,172 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * [BC BREAK] Add argument `$buildDir` to `ProxyCacheWarmer::warmUp()` - * [BC BREAK] Add return type-hints to `EntityFactory` - * Deprecate `DbalLogger`, use a middleware instead - * Deprecate not constructing `DoctrineDataCollector` with an instance of `DebugDataHolder` - * Deprecate `DoctrineDataCollector::addLogger()`, use a `DebugDataHolder` instead - * Deprecate `ContainerAwareLoader`, use dependency injection in your fixtures instead - * Always pass the `Request` object to `EntityValueResolver`'s expression - * [BC BREAK] Change argument `$lastUsed` of `DoctrineTokenProvider::updateToken()` to accept `DateTimeInterface` - -6.3 ---- - - * Deprecate passing Doctrine subscribers to `ContainerAwareEventManager` class, use listeners instead - * Add `AbstractSchemaListener`, `LockStoreSchemaListener` and `PdoSessionHandlerSchemaListener` - * Deprecate `DoctrineDbalCacheAdapterSchemaSubscriber` in favor of `DoctrineDbalCacheAdapterSchemaListener` - * Deprecate `MessengerTransportDoctrineSchemaSubscriber` in favor of `MessengerTransportDoctrineSchemaListener` - * Deprecate `RememberMeTokenProviderDoctrineSchemaSubscriber` in favor of `RememberMeTokenProviderDoctrineSchemaListener` - * Add optional parameter `$isSameDatabase` to `DoctrineTokenProvider::configureSchema()` - -6.2 ---- - - * Add `#[MapEntity]` with its corresponding `EntityValueResolver` - * Add `NAME` constant to `UlidType` and `UuidType` - -6.0 ---- - - * Remove `DoctrineTestHelper` and `TestRepositoryFactory` - -5.4 ---- - - * Add `DoctrineOpenTransactionLoggerMiddleware` to log when a transaction has been left open - * Deprecate `PdoCacheAdapterDoctrineSchemaSubscriber` and add `DoctrineDbalCacheAdapterSchemaSubscriber` instead - * `UniqueEntity` constraint retrieves a maximum of two entities if the default repository method is used. - * Add support for the newer bundle structure to `AbstractDoctrineExtension::loadMappingInformation()` - * Add argument `$bundleDir` to `AbstractDoctrineExtension::getMappingDriverBundleConfigDefaults()` - * Add argument `$bundleDir` to `AbstractDoctrineExtension::getMappingResourceConfigDirectory()` - -5.3 ---- - - * Deprecate `UserLoaderInterface::loadUserByUsername()` in favor of `UserLoaderInterface::loadUserByIdentifier() - * Deprecate `DoctrineTestHelper` and `TestRepositoryFactory` - * [BC BREAK] Remove `UuidV*Generator` classes - * Add `UuidGenerator` - * Add support for the new security-core `TokenVerifierInterface` in `DoctrineTokenProvider`, fixing parallel requests handling in remember-me - -5.2.0 ------ - - * added support for symfony/uid as `UlidType` and `UuidType` as Doctrine types - * added `UlidGenerator`, `UuidV1Generator`, `UuidV4Generator` and `UuidV6Generator` - -5.0.0 ------ - - * the `getMetadataDriverClass()` method is abstract and must be implemented by class extending `AbstractDoctrineExtension` - * passing an `IdReader` to the `DoctrineChoiceLoader` when the query cannot be optimized with single id field, throws an exception; pass `null` instead - * not explicitly passing an instance of `IdReader` to `DoctrineChoiceLoader` when it can optimize single id field, will not apply any optimization - * `DoctrineExtractor` now requires an `EntityManagerInterface` on instantiation - -4.4.0 ------ - - * [BC BREAK] using null as `$classValidatorRegexp` value in `DoctrineLoader::__construct` will not enable auto-mapping for all classes anymore, use `'{.*}'` instead. - * added `DoctrineClearEntityManagerWorkerSubscriber` - * deprecated `RegistryInterface`, use `Doctrine\Persistence\ManagerRegistry` - * added support for invokable event listeners - * added `getMetadataDriverClass` method to deprecate class parameters in service configuration files - -4.3.0 ------ - - * changed guessing of DECIMAL to set the `input` option of `NumberType` to string - * deprecated not passing an `IdReader` to the `DoctrineChoiceLoader` when query can be optimized with a single id field - * deprecated passing an `IdReader` to the `DoctrineChoiceLoader` when entities have a composite id - * added two Messenger middleware: `DoctrinePingConnectionMiddleware` and `DoctrineCloseConnectionMiddleware` - -4.2.0 ------ - - * deprecated injecting `ClassMetadataFactory` in `DoctrineExtractor`, - an instance of `EntityManagerInterface` should be injected instead - * added support for `simple_array` type - * the `DoctrineTransactionMiddlewareFactory` class has been removed - -4.1.0 ------ - - * added support for datetime immutable types in form type guesser - -4.0.0 ------ - - * the first constructor argument of the `DoctrineChoiceLoader` class must be - an `ObjectManager` implementation - * removed the `MergeDoctrineCollectionListener::onBind()` method - * trying to reset a non-lazy manager service using the `ManagerRegistry::resetService()` - method throws an exception - * removed the `DoctrineParserCache` class - -3.4.0 ------ - - * added support for doctrine/dbal v2.6 types - * added cause of UniqueEntity constraint violation - * deprecated `DbalSessionHandler` and `DbalSessionHandlerSchema` in favor of - `Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler` - -3.1.0 ------ - - * added "{{ value }}" message placeholder to UniqueEntityValidator - * deprecated `MergeDoctrineCollectionListener::onBind` in favor of - `MergeDoctrineCollectionListener::onSubmit` - * deprecated passing `ChoiceListFactoryInterface` as first argument of - `DoctrineChoiceLoader`'s constructor - -3.0.0 ------ - - * removed `EntityChoiceList` - * removed `$manager` (2nd) and `$class` (3th) arguments of `ORMQueryBuilderLoader` - * removed passing a query builder closure to `ORMQueryBuilderLoader` - * removed `loader` and `property` options of the `DoctrineType` - -2.8.0 ------ - - * deprecated using the entity provider with a Doctrine repository implementing UserProviderInterface - * added UserLoaderInterface for loading users through Doctrine. - -2.7.0 ------ - - * added DoctrineChoiceLoader - * deprecated EntityChoiceList - * deprecated passing a query builder closure to ORMQueryBuilderLoader - * deprecated $manager and $em arguments of ORMQueryBuilderLoader - * added optional arguments $propertyAccessor and $choiceListFactory to DoctrineOrmExtension constructor - * deprecated "loader" and "property" options of DoctrineType - -2.4.0 ------ - - * deprecated DoctrineOrmTestCase class - -2.2.0 ------ - - * added an optional PropertyAccessorInterface parameter to DoctrineType, - EntityType and EntityChoiceList - -2.1.0 ------ - - * added a default implementation of the ManagerRegistry - * added a session storage for Doctrine DBAL - * DoctrineOrmTypeGuesser now guesses "collection" for array Doctrine type - * DoctrineType now caches its choice lists in order to improve performance - * DoctrineType now uses ManagerRegistry::getManagerForClass() if the option "em" is not set - * UniqueEntity validation constraint now accepts a "repositoryMethod" option that will be used to check for uniqueness instead of the default "findBy" - * [BC BREAK] the DbalLogger::log() visibility has been changed from public to - protected diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/CacheWarmer/ProxyCacheWarmer.php b/projects/priceservice/vendor/symfony/doctrine-bridge/CacheWarmer/ProxyCacheWarmer.php deleted file mode 100644 index abe688b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/CacheWarmer/ProxyCacheWarmer.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\CacheWarmer; - -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface; - -/** - * The proxy generator cache warmer generates all entity proxies. - * - * In the process of generating proxies the cache for all the metadata is primed also, - * since this information is necessary to build the proxies in the first place. - * - * @author Benjamin Eberlei - */ -class ProxyCacheWarmer implements CacheWarmerInterface -{ - public function __construct( - private readonly ManagerRegistry $registry, - ) { - } - - /** - * This cache warmer is not optional, without proxies fatal error occurs! - */ - public function isOptional(): bool - { - return false; - } - - public function warmUp(string $cacheDir, ?string $buildDir = null): array - { - $files = []; - foreach ($this->registry->getManagers() as $em) { - // we need the directory no matter the proxy cache generation strategy - if (!is_dir($proxyCacheDir = $em->getConfiguration()->getProxyDir())) { - if (false === @mkdir($proxyCacheDir, 0777, true) && !is_dir($proxyCacheDir)) { - throw new \RuntimeException(sprintf('Unable to create the Doctrine Proxy directory "%s".', $proxyCacheDir)); - } - } elseif (!is_writable($proxyCacheDir)) { - throw new \RuntimeException(sprintf('The Doctrine Proxy directory "%s" is not writeable for the current system user.', $proxyCacheDir)); - } - - // if proxies are autogenerated we don't need to generate them in the cache warmer - if ($em->getConfiguration()->getAutoGenerateProxyClasses()) { - continue; - } - - $classes = $em->getMetadataFactory()->getAllMetadata(); - - $em->getProxyFactory()->generateProxyClasses($classes); - - foreach (scandir($proxyCacheDir) as $file) { - if (!is_dir($file = $proxyCacheDir.'/'.$file)) { - $files[] = $file; - } - } - } - - return $files; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php b/projects/priceservice/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php deleted file mode 100644 index 10b1de2..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php +++ /dev/null @@ -1,233 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine; - -use Doctrine\Common\EventArgs; -use Doctrine\Common\EventManager; -use Doctrine\Common\EventSubscriber; -use Psr\Container\ContainerInterface; - -/** - * Allows lazy loading of listener and subscriber services. - * - * @author Johannes M. Schmitt - */ -class ContainerAwareEventManager extends EventManager -{ - /** - * Map of registered listeners. - * - * => - */ - private array $listeners = []; - private array $initialized = []; - private bool $initializedSubscribers = false; - private array $initializedHashMapping = []; - private array $methods = []; - private ContainerInterface $container; - - /** - * @param list $listeners List of [events, listener] tuples - */ - public function __construct(ContainerInterface $container, array $listeners = []) - { - $this->container = $container; - $this->listeners = $listeners; - } - - public function dispatchEvent($eventName, ?EventArgs $eventArgs = null): void - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - if (!isset($this->listeners[$eventName])) { - return; - } - - $eventArgs ??= EventArgs::getEmptyInstance(); - - if (!isset($this->initialized[$eventName])) { - $this->initializeListeners($eventName); - } - - foreach ($this->listeners[$eventName] as $hash => $listener) { - $listener->{$this->methods[$eventName][$hash]}($eventArgs); - } - } - - public function getListeners($event = null): array - { - if (null === $event) { - trigger_deprecation('symfony/doctrine-bridge', '6.2', 'Calling "%s()" without an event name is deprecated. Call "getAllListeners()" instead.', __METHOD__); - - return $this->getAllListeners(); - } - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - if (!isset($this->initialized[$event])) { - $this->initializeListeners($event); - } - - return $this->listeners[$event]; - } - - public function getAllListeners(): array - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - foreach ($this->listeners as $event => $listeners) { - if (!isset($this->initialized[$event])) { - $this->initializeListeners($event); - } - } - - return $this->listeners; - } - - public function hasListeners($event): bool - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - return isset($this->listeners[$event]) && $this->listeners[$event]; - } - - public function addEventListener($events, $listener): void - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - $hash = $this->getHash($listener); - - foreach ((array) $events as $event) { - // Overrides listener if a previous one was associated already - // Prevents duplicate listeners on same event (same instance only) - $this->listeners[$event][$hash] = $listener; - - if (\is_string($listener)) { - unset($this->initialized[$event]); - unset($this->initializedHashMapping[$event][$hash]); - } else { - $this->methods[$event][$hash] = $this->getMethod($listener, $event); - } - } - } - - public function removeEventListener($events, $listener): void - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - $hash = $this->getHash($listener); - - foreach ((array) $events as $event) { - if (isset($this->initializedHashMapping[$event][$hash])) { - $hash = $this->initializedHashMapping[$event][$hash]; - unset($this->initializedHashMapping[$event][$hash]); - } - - // Check if we actually have this listener associated - if (isset($this->listeners[$event][$hash])) { - unset($this->listeners[$event][$hash]); - } - - if (isset($this->methods[$event][$hash])) { - unset($this->methods[$event][$hash]); - } - } - } - - public function addEventSubscriber(EventSubscriber $subscriber): void - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - parent::addEventSubscriber($subscriber); - } - - public function removeEventSubscriber(EventSubscriber $subscriber): void - { - if (!$this->initializedSubscribers) { - $this->initializeSubscribers(); - } - - parent::removeEventSubscriber($subscriber); - } - - private function initializeListeners(string $eventName): void - { - $this->initialized[$eventName] = true; - - // We'll refill the whole array in order to keep the same order - $listeners = []; - foreach ($this->listeners[$eventName] as $hash => $listener) { - if (\is_string($listener)) { - $listener = $this->container->get($listener); - $newHash = $this->getHash($listener); - - $this->initializedHashMapping[$eventName][$hash] = $newHash; - - $listeners[$newHash] = $listener; - - $this->methods[$eventName][$newHash] = $this->getMethod($listener, $eventName); - } else { - $listeners[$hash] = $listener; - } - } - - $this->listeners[$eventName] = $listeners; - } - - private function initializeSubscribers(): void - { - $this->initializedSubscribers = true; - $listeners = $this->listeners; - $this->listeners = []; - foreach ($listeners as $listener) { - if (\is_array($listener)) { - $this->addEventListener(...$listener); - continue; - } - if (\is_string($listener)) { - $listener = $this->container->get($listener); - } - // throw new \InvalidArgumentException(sprintf('Using Doctrine subscriber "%s" is not allowed. Register it as a listener instead, using e.g. the #[AsDoctrineListener] or #[AsDocumentListener] attribute.', \is_object($listener) ? $listener::class : $listener)); - trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Registering "%s" as a Doctrine subscriber is deprecated. Register it as a listener instead, using e.g. the #[AsDoctrineListener] or #[AsDocumentListener] attribute.', \is_object($listener) ? get_debug_type($listener) : $listener); - parent::addEventSubscriber($listener); - } - } - - private function getHash(string|object $listener): string - { - if (\is_string($listener)) { - return '_service_'.$listener; - } - - return spl_object_hash($listener); - } - - private function getMethod(object $listener, string $event): string - { - if (!method_exists($listener, $event) && method_exists($listener, '__invoke')) { - return '__invoke'; - } - - return $event; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/DoctrineDataCollector.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/DoctrineDataCollector.php deleted file mode 100644 index ae85d9f..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/DoctrineDataCollector.php +++ /dev/null @@ -1,286 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DataCollector; - -use Doctrine\DBAL\Logging\DebugStack; -use Doctrine\DBAL\Types\ConversionException; -use Doctrine\DBAL\Types\Type; -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Bridge\Doctrine\Middleware\Debug\DebugDataHolder; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\DataCollector\DataCollector; -use Symfony\Component\VarDumper\Caster\Caster; -use Symfony\Component\VarDumper\Cloner\Stub; - -/** - * DoctrineDataCollector. - * - * @author Fabien Potencier - */ -class DoctrineDataCollector extends DataCollector -{ - private array $connections; - private array $managers; - - /** - * @var array - */ - private array $loggers = []; - - public function __construct( - private ManagerRegistry $registry, - private ?DebugDataHolder $debugDataHolder = null, - ) { - $this->connections = $registry->getConnectionNames(); - $this->managers = $registry->getManagerNames(); - - if (null === $debugDataHolder) { - trigger_deprecation('symfony/doctrine-bridge', '6.4', 'Not passing an instance of "%s" as "$debugDataHolder" to "%s()" is deprecated.', DebugDataHolder::class, __METHOD__); - } - } - - /** - * Adds the stack logger for a connection. - * - * @return void - * - * @deprecated since Symfony 6.4, use a DebugDataHolder instead. - */ - public function addLogger(string $name, DebugStack $logger) - { - trigger_deprecation('symfony/doctrine-bridge', '6.4', '"%s()" is deprecated. Pass an instance of "%s" to the constructor instead.', __METHOD__, DebugDataHolder::class); - - $this->loggers[$name] = $logger; - } - - /** - * @return void - */ - public function collect(Request $request, Response $response, ?\Throwable $exception = null) - { - $this->data = [ - 'queries' => $this->collectQueries(), - 'connections' => $this->connections, - 'managers' => $this->managers, - ]; - } - - private function collectQueries(): array - { - $queries = []; - - if (null !== $this->debugDataHolder) { - foreach ($this->debugDataHolder->getData() as $name => $data) { - $queries[$name] = $this->sanitizeQueries($name, $data); - } - - return $queries; - } - - foreach ($this->loggers as $name => $logger) { - $queries[$name] = $this->sanitizeQueries($name, $logger->queries); - } - - return $queries; - } - - /** - * @return void - */ - public function reset() - { - $this->data = []; - - if (null !== $this->debugDataHolder) { - $this->debugDataHolder->reset(); - - return; - } - - foreach ($this->loggers as $logger) { - $logger->queries = []; - $logger->currentQuery = 0; - } - } - - /** - * @return array - */ - public function getManagers() - { - return $this->data['managers']; - } - - /** - * @return array - */ - public function getConnections() - { - return $this->data['connections']; - } - - /** - * @return int - */ - public function getQueryCount() - { - return array_sum(array_map('count', $this->data['queries'])); - } - - /** - * @return array - */ - public function getQueries() - { - return $this->data['queries']; - } - - /** - * @return float - */ - public function getTime() - { - $time = 0; - foreach ($this->data['queries'] as $queries) { - foreach ($queries as $query) { - $time += $query['executionMS']; - } - } - - return $time; - } - - public function getName(): string - { - return 'db'; - } - - protected function getCasters(): array - { - return parent::getCasters() + [ - ObjectParameter::class => static function (ObjectParameter $o, array $a, Stub $s): array { - $s->class = $o->getClass(); - $s->value = $o->getObject(); - - $r = new \ReflectionClass($o->getClass()); - if ($f = $r->getFileName()) { - $s->attr['file'] = $f; - $s->attr['line'] = $r->getStartLine(); - } else { - unset($s->attr['file']); - unset($s->attr['line']); - } - - if ($error = $o->getError()) { - return [Caster::PREFIX_VIRTUAL.'⚠' => $error->getMessage()]; - } - - if ($o->isStringable()) { - return [Caster::PREFIX_VIRTUAL.'__toString()' => (string) $o->getObject()]; - } - - return [Caster::PREFIX_VIRTUAL.'⚠' => sprintf('Object of class "%s" could not be converted to string.', $o->getClass())]; - }, - ]; - } - - private function sanitizeQueries(string $connectionName, array $queries): array - { - foreach ($queries as $i => $query) { - $queries[$i] = $this->sanitizeQuery($connectionName, $query); - } - - return $queries; - } - - private function sanitizeQuery(string $connectionName, array $query): array - { - $query['explainable'] = true; - $query['runnable'] = true; - $query['params'] ??= []; - if (!\is_array($query['params'])) { - $query['params'] = [$query['params']]; - } - if (!\is_array($query['types'])) { - $query['types'] = []; - } - foreach ($query['params'] as $j => $param) { - $e = null; - if (isset($query['types'][$j])) { - // Transform the param according to the type - $type = $query['types'][$j]; - if (\is_string($type)) { - $type = Type::getType($type); - } - if ($type instanceof Type) { - $query['types'][$j] = $type->getBindingType(); - try { - $param = $type->convertToDatabaseValue($param, $this->registry->getConnection($connectionName)->getDatabasePlatform()); - } catch (\TypeError $e) { - } catch (ConversionException $e) { - } - } - } - - [$query['params'][$j], $explainable, $runnable] = $this->sanitizeParam($param, $e); - if (!$explainable) { - $query['explainable'] = false; - } - - if (!$runnable) { - $query['runnable'] = false; - } - } - - $query['params'] = $this->cloneVar($query['params']); - - return $query; - } - - /** - * Sanitizes a param. - * - * The return value is an array with the sanitized value and a boolean - * indicating if the original value was kept (allowing to use the sanitized - * value to explain the query). - */ - private function sanitizeParam(mixed $var, ?\Throwable $error): array - { - if (\is_object($var)) { - return [$o = new ObjectParameter($var, $error), false, $o->isStringable() && !$error]; - } - - if ($error) { - return ['⚠ '.$error->getMessage(), false, false]; - } - - if (\is_array($var)) { - $a = []; - $explainable = $runnable = true; - foreach ($var as $k => $v) { - [$value, $e, $r] = $this->sanitizeParam($v, null); - $explainable = $explainable && $e; - $runnable = $runnable && $r; - $a[$k] = $value; - } - - return [$a, $explainable, $runnable]; - } - - if (\is_resource($var)) { - return [sprintf('/* Resource(%s) */', get_resource_type($var)), false, false]; - } - - return [$var, true, true]; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/ObjectParameter.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/ObjectParameter.php deleted file mode 100644 index ce134ca..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DataCollector/ObjectParameter.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DataCollector; - -final class ObjectParameter -{ - private bool $stringable; - private string $class; - - public function __construct( - private readonly object $object, - private readonly ?\Throwable $error, - ) { - $this->stringable = $this->object instanceof \Stringable; - $this->class = $object::class; - } - - public function getObject(): object - { - return $this->object; - } - - public function getError(): ?\Throwable - { - return $this->error; - } - - public function isStringable(): bool - { - return $this->stringable; - } - - public function getClass(): string - { - return $this->class; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/AddFixtureImplementation.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/AddFixtureImplementation.php deleted file mode 100644 index e85396c..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/AddFixtureImplementation.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DataFixtures; - -use Doctrine\Common\DataFixtures\FixtureInterface; -use Doctrine\Common\DataFixtures\ReferenceRepository; - -if (method_exists(ReferenceRepository::class, 'getReferences')) { - /** @internal */ - trait AddFixtureImplementation - { - public function addFixture(FixtureInterface $fixture) - { - $this->doAddFixture($fixture); - } - } -} else { - /** @internal */ - trait AddFixtureImplementation - { - public function addFixture(FixtureInterface $fixture): void - { - $this->doAddFixture($fixture); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/ContainerAwareLoader.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/ContainerAwareLoader.php deleted file mode 100644 index 622945a..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DataFixtures/ContainerAwareLoader.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DataFixtures; - -use Doctrine\Common\DataFixtures\FixtureInterface; -use Doctrine\Common\DataFixtures\Loader; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -trigger_deprecation('symfony/dependency-injection', '6.4', '"%s" is deprecated, use dependency injection in your fixtures instead.', ContainerAwareLoader::class); - -/** - * Doctrine data fixtures loader that injects the service container into - * fixture objects that implement ContainerAwareInterface. - * - * Note: Use of this class requires the Doctrine data fixtures extension, which - * is a suggested dependency for Symfony. - * - * @deprecated since Symfony 6.4, use dependency injection in your fixtures instead - */ -class ContainerAwareLoader extends Loader -{ - use AddFixtureImplementation; - - public function __construct( - private readonly ContainerInterface $container, - ) { - } - - private function doAddFixture(FixtureInterface $fixture): void - { - if ($fixture instanceof ContainerAwareInterface) { - $fixture->setContainer($this->container); - } - - parent::addFixture($fixture); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/AbstractDoctrineExtension.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/AbstractDoctrineExtension.php deleted file mode 100644 index 0cfc257..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/AbstractDoctrineExtension.php +++ /dev/null @@ -1,486 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection; - -use Symfony\Component\Config\Resource\GlobResource; -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; - -/** - * This abstract classes groups common code that Doctrine Object Manager extensions (ORM, MongoDB, CouchDB) need. - * - * @author Benjamin Eberlei - */ -abstract class AbstractDoctrineExtension extends Extension -{ - /** - * Used inside metadata driver method to simplify aggregation of data. - */ - protected $aliasMap = []; - - /** - * Used inside metadata driver method to simplify aggregation of data. - */ - protected $drivers = []; - - /** - * @param array $objectManager A configured object manager - * - * @return void - * - * @throws \InvalidArgumentException - */ - protected function loadMappingInformation(array $objectManager, ContainerBuilder $container) - { - if ($objectManager['auto_mapping']) { - // automatically register bundle mappings - foreach (array_keys($container->getParameter('kernel.bundles')) as $bundle) { - if (!isset($objectManager['mappings'][$bundle])) { - $objectManager['mappings'][$bundle] = [ - 'mapping' => true, - 'is_bundle' => true, - ]; - } - } - } - - foreach ($objectManager['mappings'] as $mappingName => $mappingConfig) { - if (null !== $mappingConfig && false === $mappingConfig['mapping']) { - continue; - } - - $mappingConfig = array_replace([ - 'dir' => false, - 'type' => false, - 'prefix' => false, - ], (array) $mappingConfig); - - $mappingConfig['dir'] = $container->getParameterBag()->resolveValue($mappingConfig['dir']); - // a bundle configuration is detected by realizing that the specified dir is not absolute and existing - if (!isset($mappingConfig['is_bundle'])) { - $mappingConfig['is_bundle'] = !is_dir($mappingConfig['dir']); - } - - if ($mappingConfig['is_bundle']) { - $bundle = null; - $bundleMetadata = null; - foreach ($container->getParameter('kernel.bundles') as $name => $class) { - if ($mappingName === $name) { - $bundle = new \ReflectionClass($class); - $bundleMetadata = $container->getParameter('kernel.bundles_metadata')[$name]; - - break; - } - } - - if (null === $bundle) { - throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled.', $mappingName)); - } - - $mappingConfig = $this->getMappingDriverBundleConfigDefaults($mappingConfig, $bundle, $container, $bundleMetadata['path']); - if (!$mappingConfig) { - continue; - } - } elseif (!$mappingConfig['type']) { - $mappingConfig['type'] = $this->detectMappingType($mappingConfig['dir'], $container); - } - - $this->assertValidMappingConfiguration($mappingConfig, $objectManager['name']); - $this->setMappingDriverConfig($mappingConfig, $mappingName); - $this->setMappingDriverAlias($mappingConfig, $mappingName); - } - } - - /** - * Register the alias for this mapping driver. - * - * Aliases can be used in the Query languages of all the Doctrine object managers to simplify writing tasks. - * - * @return void - */ - protected function setMappingDriverAlias(array $mappingConfig, string $mappingName) - { - if (isset($mappingConfig['alias'])) { - $this->aliasMap[$mappingConfig['alias']] = $mappingConfig['prefix']; - } else { - $this->aliasMap[$mappingName] = $mappingConfig['prefix']; - } - } - - /** - * Register the mapping driver configuration for later use with the object managers metadata driver chain. - * - * @return void - * - * @throws \InvalidArgumentException - */ - protected function setMappingDriverConfig(array $mappingConfig, string $mappingName) - { - $mappingDirectory = $mappingConfig['dir']; - if (!is_dir($mappingDirectory)) { - throw new \InvalidArgumentException(sprintf('Invalid Doctrine mapping path given. Cannot load Doctrine mapping/bundle named "%s".', $mappingName)); - } - - $this->drivers[$mappingConfig['type']][$mappingConfig['prefix']] = realpath($mappingDirectory) ?: $mappingDirectory; - } - - /** - * If this is a bundle controlled mapping all the missing information can be autodetected by this method. - * - * Returns false when autodetection failed, an array of the completed information otherwise. - */ - protected function getMappingDriverBundleConfigDefaults(array $bundleConfig, \ReflectionClass $bundle, ContainerBuilder $container, ?string $bundleDir = null): array|false - { - $bundleClassDir = \dirname($bundle->getFileName()); - $bundleDir ??= $bundleClassDir; - - if (!$bundleConfig['type']) { - $bundleConfig['type'] = $this->detectMetadataDriver($bundleDir, $container); - - if (!$bundleConfig['type'] && $bundleDir !== $bundleClassDir) { - $bundleConfig['type'] = $this->detectMetadataDriver($bundleClassDir, $container); - } - } - - if (!$bundleConfig['type']) { - // skip this bundle, no mapping information was found. - return false; - } - - if (!$bundleConfig['dir']) { - if (\in_array($bundleConfig['type'], ['annotation', 'staticphp', 'attribute'])) { - $bundleConfig['dir'] = $bundleClassDir.'/'.$this->getMappingObjectDefaultName(); - } else { - $bundleConfig['dir'] = $bundleDir.'/'.$this->getMappingResourceConfigDirectory($bundleDir); - } - } else { - $bundleConfig['dir'] = $bundleDir.'/'.$bundleConfig['dir']; - } - - if (!$bundleConfig['prefix']) { - $bundleConfig['prefix'] = $bundle->getNamespaceName().'\\'.$this->getMappingObjectDefaultName(); - } - - return $bundleConfig; - } - - /** - * Register all the collected mapping information with the object manager by registering the appropriate mapping drivers. - * - * @return void - */ - protected function registerMappingDrivers(array $objectManager, ContainerBuilder $container) - { - // configure metadata driver for each bundle based on the type of mapping files found - if ($container->hasDefinition($this->getObjectManagerElementName($objectManager['name'].'_metadata_driver'))) { - $chainDriverDef = $container->getDefinition($this->getObjectManagerElementName($objectManager['name'].'_metadata_driver')); - } else { - $chainDriverDef = new Definition($this->getMetadataDriverClass('driver_chain')); - } - - foreach ($this->drivers as $driverType => $driverPaths) { - $mappingService = $this->getObjectManagerElementName($objectManager['name'].'_'.$driverType.'_metadata_driver'); - if ($container->hasDefinition($mappingService)) { - $mappingDriverDef = $container->getDefinition($mappingService); - $args = $mappingDriverDef->getArguments(); - if ('annotation' == $driverType) { - $args[1] = array_merge(array_values($driverPaths), $args[1]); - } else { - $args[0] = array_merge(array_values($driverPaths), $args[0]); - } - $mappingDriverDef->setArguments($args); - } elseif ('attribute' === $driverType) { - $mappingDriverDef = new Definition($this->getMetadataDriverClass($driverType), [ - array_values($driverPaths), - ]); - } elseif ('annotation' == $driverType) { - $mappingDriverDef = new Definition($this->getMetadataDriverClass($driverType), [ - new Reference($this->getObjectManagerElementName('metadata.annotation_reader')), - array_values($driverPaths), - ]); - } else { - $mappingDriverDef = new Definition($this->getMetadataDriverClass($driverType), [ - array_values($driverPaths), - ]); - } - if (str_contains($mappingDriverDef->getClass(), 'yml') || str_contains($mappingDriverDef->getClass(), 'xml') - || str_contains($mappingDriverDef->getClass(), 'Yaml') || str_contains($mappingDriverDef->getClass(), 'Xml') - ) { - $mappingDriverDef->setArguments([array_flip($driverPaths)]); - $mappingDriverDef->addMethodCall('setGlobalBasename', ['mapping']); - } - - $container->setDefinition($mappingService, $mappingDriverDef); - - foreach ($driverPaths as $prefix => $driverPath) { - $chainDriverDef->addMethodCall('addDriver', [new Reference($mappingService), $prefix]); - } - } - - $container->setDefinition($this->getObjectManagerElementName($objectManager['name'].'_metadata_driver'), $chainDriverDef); - } - - /** - * Assertion if the specified mapping information is valid. - * - * @return void - * - * @throws \InvalidArgumentException - */ - protected function assertValidMappingConfiguration(array $mappingConfig, string $objectManagerName) - { - if (!$mappingConfig['type'] || !$mappingConfig['dir'] || !$mappingConfig['prefix']) { - throw new \InvalidArgumentException(sprintf('Mapping definitions for Doctrine manager "%s" require at least the "type", "dir" and "prefix" options.', $objectManagerName)); - } - - if (!is_dir($mappingConfig['dir'])) { - throw new \InvalidArgumentException(sprintf('Specified non-existing directory "%s" as Doctrine mapping source.', $mappingConfig['dir'])); - } - - if (!\in_array($mappingConfig['type'], ['xml', 'yml', 'annotation', 'php', 'staticphp', 'attribute'])) { - throw new \InvalidArgumentException(sprintf('Can only configure "xml", "yml", "annotation", "php", "staticphp" or "attribute" through the DoctrineBundle. Use your own bundle to configure other metadata drivers. You can register them by adding a new driver to the "%s" service definition.', $this->getObjectManagerElementName($objectManagerName.'_metadata_driver'))); - } - } - - /** - * Detects what metadata driver to use for the supplied directory. - */ - protected function detectMetadataDriver(string $dir, ContainerBuilder $container): ?string - { - $configPath = $this->getMappingResourceConfigDirectory($dir); - $extension = $this->getMappingResourceExtension(); - - if (glob($dir.'/'.$configPath.'/*.'.$extension.'.xml', \GLOB_NOSORT)) { - $driver = 'xml'; - } elseif (glob($dir.'/'.$configPath.'/*.'.$extension.'.yml', \GLOB_NOSORT)) { - $driver = 'yml'; - } elseif (glob($dir.'/'.$configPath.'/*.'.$extension.'.php', \GLOB_NOSORT)) { - $driver = 'php'; - } else { - // add the closest existing directory as a resource - $resource = $dir.'/'.$configPath; - while (!is_dir($resource)) { - $resource = \dirname($resource); - } - $container->fileExists($resource, false); - - if ($container->fileExists($discoveryPath = $dir.'/'.$this->getMappingObjectDefaultName(), false)) { - return $this->detectMappingType($discoveryPath, $container); - } - - return null; - } - $container->fileExists($dir.'/'.$configPath, false); - - return $driver; - } - - /** - * Detects what mapping type to use for the supplied directory. - * - * @return string A mapping type 'attribute' or 'annotation' - */ - private function detectMappingType(string $directory, ContainerBuilder $container): string - { - $type = 'attribute'; - - $glob = new GlobResource($directory, '*', true); - $container->addResource($glob); - - $quotedMappingObjectName = preg_quote($this->getMappingObjectDefaultName(), '/'); - - foreach ($glob as $file) { - $content = file_get_contents($file); - - if ( - preg_match('/^#\[.*'.$quotedMappingObjectName.'\b/m', $content) - || preg_match('/^#\[.*Embeddable\b/m', $content) - ) { - break; - } - if ( - preg_match('/^(?: \*|\/\*\*) @.*'.$quotedMappingObjectName.'\b/m', $content) - || preg_match('/^(?: \*|\/\*\*) @.*Embeddable\b/m', $content) - ) { - $type = 'annotation'; - break; - } - } - - return $type; - } - - /** - * Loads a configured object manager metadata, query or result cache driver. - * - * @return void - * - * @throws \InvalidArgumentException in case of unknown driver type - */ - protected function loadObjectManagerCacheDriver(array $objectManager, ContainerBuilder $container, string $cacheName) - { - $this->loadCacheDriver($cacheName, $objectManager['name'], $objectManager[$cacheName.'_driver'], $container); - } - - /** - * Loads a cache driver. - * - * @throws \InvalidArgumentException - */ - protected function loadCacheDriver(string $cacheName, string $objectManagerName, array $cacheDriver, ContainerBuilder $container): string - { - $cacheDriverServiceId = $this->getObjectManagerElementName($objectManagerName.'_'.$cacheName); - - switch ($cacheDriver['type']) { - case 'service': - $container->setAlias($cacheDriverServiceId, new Alias($cacheDriver['id'], false)); - - return $cacheDriverServiceId; - case 'memcached': - $memcachedClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.memcached.class').'%'; - $memcachedInstanceClass = !empty($cacheDriver['instance_class']) ? $cacheDriver['instance_class'] : '%'.$this->getObjectManagerElementName('cache.memcached_instance.class').'%'; - $memcachedHost = !empty($cacheDriver['host']) ? $cacheDriver['host'] : '%'.$this->getObjectManagerElementName('cache.memcached_host').'%'; - $memcachedPort = !empty($cacheDriver['port']) ? $cacheDriver['port'] : '%'.$this->getObjectManagerElementName('cache.memcached_port').'%'; - $cacheDef = new Definition($memcachedClass); - $memcachedInstance = new Definition($memcachedInstanceClass); - $memcachedInstance->addMethodCall('addServer', [ - $memcachedHost, $memcachedPort, - ]); - $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName)), $memcachedInstance); - $cacheDef->addMethodCall('setMemcached', [new Reference($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName)))]); - break; - case 'redis': - $redisClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.redis.class').'%'; - $redisInstanceClass = !empty($cacheDriver['instance_class']) ? $cacheDriver['instance_class'] : '%'.$this->getObjectManagerElementName('cache.redis_instance.class').'%'; - $redisHost = !empty($cacheDriver['host']) ? $cacheDriver['host'] : '%'.$this->getObjectManagerElementName('cache.redis_host').'%'; - $redisPort = !empty($cacheDriver['port']) ? $cacheDriver['port'] : '%'.$this->getObjectManagerElementName('cache.redis_port').'%'; - $cacheDef = new Definition($redisClass); - $redisInstance = new Definition($redisInstanceClass); - $redisInstance->addMethodCall('connect', [ - $redisHost, $redisPort, - ]); - $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName)), $redisInstance); - $cacheDef->addMethodCall('setRedis', [new Reference($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName)))]); - break; - case 'apc': - case 'apcu': - case 'array': - case 'xcache': - case 'wincache': - case 'zenddata': - $cacheDef = new Definition('%'.$this->getObjectManagerElementName(sprintf('cache.%s.class', $cacheDriver['type'])).'%'); - break; - default: - throw new \InvalidArgumentException(sprintf('"%s" is an unrecognized Doctrine cache driver.', $cacheDriver['type'])); - } - - if (!isset($cacheDriver['namespace'])) { - // generate a unique namespace for the given application - if ($container->hasParameter('cache.prefix.seed')) { - $seed = $container->getParameterBag()->resolveValue($container->getParameter('cache.prefix.seed')); - } else { - $seed = '_'.$container->getParameter('kernel.project_dir'); - $seed .= '.'.$container->getParameter('kernel.container_class'); - } - - $namespace = 'sf_'.$this->getMappingResourceExtension().'_'.$objectManagerName.'_'.ContainerBuilder::hash($seed); - - $cacheDriver['namespace'] = $namespace; - } - - $cacheDef->addMethodCall('setNamespace', [$cacheDriver['namespace']]); - - $container->setDefinition($cacheDriverServiceId, $cacheDef); - - return $cacheDriverServiceId; - } - - /** - * Returns a modified version of $managerConfigs. - * - * The manager called $autoMappedManager will map all bundles that are not mapped by other managers. - */ - protected function fixManagersAutoMappings(array $managerConfigs, array $bundles): array - { - if ($autoMappedManager = $this->validateAutoMapping($managerConfigs)) { - foreach (array_keys($bundles) as $bundle) { - foreach ($managerConfigs as $manager) { - if (isset($manager['mappings'][$bundle])) { - continue 2; - } - } - $managerConfigs[$autoMappedManager]['mappings'][$bundle] = [ - 'mapping' => true, - 'is_bundle' => true, - ]; - } - $managerConfigs[$autoMappedManager]['auto_mapping'] = false; - } - - return $managerConfigs; - } - - /** - * Prefixes the relative dependency injection container path with the object manager prefix. - * - * @example $name is 'entity_manager' then the result would be 'doctrine.orm.entity_manager' - */ - abstract protected function getObjectManagerElementName(string $name): string; - - /** - * Noun that describes the mapped objects such as Entity or Document. - * - * Will be used for autodetection of persistent objects directory. - */ - abstract protected function getMappingObjectDefaultName(): string; - - /** - * Relative path from the bundle root to the directory where mapping files reside. - */ - abstract protected function getMappingResourceConfigDirectory(?string $bundleDir = null): string; - - /** - * Extension used by the mapping files. - */ - abstract protected function getMappingResourceExtension(): string; - - /** - * The class name used by the various mapping drivers. - */ - abstract protected function getMetadataDriverClass(string $driverType): string; - - /** - * Search for a manager that is declared as 'auto_mapping' = true. - * - * @throws \LogicException - */ - private function validateAutoMapping(array $managerConfigs): ?string - { - $autoMappedManager = null; - foreach ($managerConfigs as $name => $manager) { - if (!$manager['auto_mapping']) { - continue; - } - - if (null !== $autoMappedManager) { - throw new \LogicException(sprintf('You cannot enable "auto_mapping" on more than one manager at the same time (found in "%s" and "%s"").', $autoMappedManager, $name)); - } - - $autoMappedManager = $name; - } - - return $autoMappedManager; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/DoctrineValidationPass.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/DoctrineValidationPass.php deleted file mode 100644 index e0486af..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/DoctrineValidationPass.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass; - -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Registers additional validators. - * - * @author Benjamin Eberlei - */ -class DoctrineValidationPass implements CompilerPassInterface -{ - public function __construct( - private readonly string $managerType, - ) { - } - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - $this->updateValidatorMappingFiles($container, 'xml', 'xml'); - $this->updateValidatorMappingFiles($container, 'yaml', 'yml'); - } - - /** - * Gets the validation mapping files for the format and extends them with - * files matching a doctrine search pattern (Resources/config/validation.orm.xml). - */ - private function updateValidatorMappingFiles(ContainerBuilder $container, string $mapping, string $extension): void - { - if (!$container->hasParameter('validator.mapping.loader.'.$mapping.'_files_loader.mapping_files')) { - return; - } - - $files = $container->getParameter('validator.mapping.loader.'.$mapping.'_files_loader.mapping_files'); - $validationPath = '/config/validation.'.$this->managerType.'.'.$extension; - - foreach ($container->getParameter('kernel.bundles_metadata') as $bundle) { - if ($container->fileExists($file = $bundle['path'].'/Resources'.$validationPath) || $container->fileExists($file = $bundle['path'].$validationPath)) { - $files[] = $file; - } - } - - $container->setParameter('validator.mapping.loader.'.$mapping.'_files_loader.mapping_files', $files); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php deleted file mode 100644 index f942d37..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php +++ /dev/null @@ -1,168 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass; - -use Symfony\Bridge\Doctrine\ContainerAwareEventManager; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Registers event listeners and subscribers to the available doctrine connections. - * - * @author Jeremy Mikola - * @author Alexander - * @author David Maicher - */ -class RegisterEventListenersAndSubscribersPass implements CompilerPassInterface -{ - private array $connections; - - /** - * @var array - */ - private array $eventManagers = []; - - /** - * @param string $managerTemplate sprintf() template for generating the event - * manager's service ID for a connection name - * @param string $tagPrefix Tag prefix for listeners and subscribers - */ - public function __construct( - private readonly string $connectionsParameter, - private readonly string $managerTemplate, - private readonly string $tagPrefix, - ) { - } - - /** - * @return void - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasParameter($this->connectionsParameter)) { - return; - } - - $this->connections = $container->getParameter($this->connectionsParameter); - $listenerRefs = $this->addTaggedServices($container); - - // replace service container argument of event managers with smaller service locator - // so services can even remain private - foreach ($listenerRefs as $connection => $refs) { - $this->getEventManagerDef($container, $connection) - ->replaceArgument(0, ServiceLocatorTagPass::register($container, $refs)); - } - } - - private function addTaggedServices(ContainerBuilder $container): array - { - $listenerTag = $this->tagPrefix.'.event_listener'; - $subscriberTag = $this->tagPrefix.'.event_subscriber'; - $listenerRefs = []; - $taggedServices = $this->findAndSortTags($subscriberTag, $listenerTag, $container); - - $managerDefs = []; - foreach ($taggedServices as $taggedSubscriber) { - [$tagName, $id, $tag] = $taggedSubscriber; - $connections = isset($tag['connection']) - ? [$container->getParameterBag()->resolveValue($tag['connection'])] - : array_keys($this->connections); - if ($listenerTag === $tagName && !isset($tag['event'])) { - throw new InvalidArgumentException(sprintf('Doctrine event listener "%s" must specify the "event" attribute.', $id)); - } - foreach ($connections as $con) { - if (!isset($this->connections[$con])) { - throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: "%s".', $con, $id, implode('", "', array_keys($this->connections)))); - } - - if (!isset($managerDefs[$con])) { - $managerDef = $parentDef = $this->getEventManagerDef($container, $con); - while (!$parentDef->getClass() && $parentDef instanceof ChildDefinition) { - $parentDef = $container->findDefinition($parentDef->getParent()); - } - $managerClass = $container->getParameterBag()->resolveValue($parentDef->getClass()); - $managerDefs[$con] = [$managerDef, $managerClass]; - } else { - [$managerDef, $managerClass] = $managerDefs[$con]; - } - - if (ContainerAwareEventManager::class === $managerClass) { - $refs = $managerDef->getArguments()[1] ?? []; - $listenerRefs[$con][$id] = new Reference($id); - if ($subscriberTag === $tagName) { - trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Registering "%s" as a Doctrine subscriber is deprecated. Register it as a listener instead, using e.g. the #[%s] attribute.', $id, str_starts_with($this->tagPrefix, 'doctrine_mongodb') ? 'AsDocumentListener' : 'AsDoctrineListener'); - $refs[] = $id; - } else { - $refs[] = [[$tag['event']], $id]; - } - $managerDef->setArgument(1, $refs); - } else { - if ($subscriberTag === $tagName) { - $managerDef->addMethodCall('addEventSubscriber', [new Reference($id)]); - } else { - $managerDef->addMethodCall('addEventListener', [[$tag['event']], new Reference($id)]); - } - } - } - } - - return $listenerRefs; - } - - private function getEventManagerDef(ContainerBuilder $container, string $name): Definition - { - if (!isset($this->eventManagers[$name])) { - $this->eventManagers[$name] = $container->getDefinition(sprintf($this->managerTemplate, $name)); - } - - return $this->eventManagers[$name]; - } - - /** - * Finds and orders all service tags with the given name by their priority. - * - * The order of additions must be respected for services having the same priority, - * and knowing that the \SplPriorityQueue class does not respect the FIFO method, - * we should not use this class. - * - * @see https://bugs.php.net/53710 - * @see https://bugs.php.net/60926 - */ - private function findAndSortTags(string $subscriberTag, string $listenerTag, ContainerBuilder $container): array - { - $sortedTags = []; - $taggedIds = [ - $subscriberTag => $container->findTaggedServiceIds($subscriberTag, true), - $listenerTag => $container->findTaggedServiceIds($listenerTag, true), - ]; - $taggedIds[$subscriberTag] = array_diff_key($taggedIds[$subscriberTag], $taggedIds[$listenerTag]); - - foreach ($taggedIds as $tagName => $serviceIds) { - foreach ($serviceIds as $serviceId => $tags) { - foreach ($tags as $attributes) { - $priority = $attributes['priority'] ?? 0; - $sortedTags[$priority][] = [$tagName, $serviceId, $attributes]; - } - } - } - - krsort($sortedTags); - - return array_merge(...$sortedTags); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterMappingsPass.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterMappingsPass.php deleted file mode 100644 index 7da87ec..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterMappingsPass.php +++ /dev/null @@ -1,218 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass; - -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Base class for the doctrine bundles to provide a compiler pass class that - * helps to register doctrine mappings. - * - * The compiler pass is meant to register the mappings with the metadata - * chain driver corresponding to one of the object managers. - * - * For concrete implementations, see the RegisterXyMappingsPass classes - * in the DoctrineBundle resp. - * DoctrineMongodbBundle, DoctrineCouchdbBundle and DoctrinePhpcrBundle. - * - * @author David Buchmann - */ -abstract class RegisterMappingsPass implements CompilerPassInterface -{ - /** - * DI object for the driver to use, either a service definition for a - * private service or a reference for a public service. - * - * @var Definition|Reference - */ - protected $driver; - - /** - * List of namespaces handled by the driver. - * - * @var string[] - */ - protected $namespaces; - - /** - * List of potential container parameters that hold the object manager name - * to register the mappings with the correct metadata driver, for example - * ['acme.manager', 'doctrine.default_entity_manager']. - * - * @var string[] - */ - protected $managerParameters; - - /** - * Naming pattern of the metadata chain driver service ids, for example - * 'doctrine.orm.%s_metadata_driver'. - * - * @var string - */ - protected $driverPattern; - - /** - * A name for a parameter in the container. If set, this compiler pass will - * only do anything if the parameter is present. (But regardless of the - * value of that parameter. - * - * @var string|false - */ - protected $enabledParameter; - - /** - * The $managerParameters is an ordered list of container parameters that could provide the - * name of the manager to register these namespaces and alias on. The first non-empty name - * is used, the others skipped. - * - * The $aliasMap parameter can be used to define bundle namespace shortcuts like the - * DoctrineBundle provides automatically for objects in the default Entity/Document folder. - * - * @param Definition|Reference $driver Driver DI definition or reference - * @param string[] $namespaces List of namespaces handled by $driver - * @param string[] $managerParameters list of container parameters that could - * hold the manager name - * @param string $driverPattern Pattern for the metadata driver service name - * @param string|false $enabledParameter Service container parameter that must be - * present to enable the mapping. Set to false - * to not do any check, optional. - * @param string $configurationPattern Pattern for the Configuration service name, - * for example 'doctrine.orm.%s_configuration'. - * @param string $registerAliasMethodName Method name to call on the configuration service. This - * depends on the Doctrine implementation. - * For example addEntityNamespace. - * @param string[] $aliasMap Map of alias to namespace - */ - public function __construct( - Definition|Reference $driver, - array $namespaces, - array $managerParameters, - string $driverPattern, - string|false $enabledParameter = false, - private readonly string $configurationPattern = '', - private readonly string $registerAliasMethodName = '', - private readonly array $aliasMap = [], - ) { - $this->driver = $driver; - $this->namespaces = $namespaces; - $this->managerParameters = $managerParameters; - $this->driverPattern = $driverPattern; - $this->enabledParameter = $enabledParameter; - - if ($aliasMap && (!$configurationPattern || !$registerAliasMethodName)) { - throw new \InvalidArgumentException('configurationPattern and registerAliasMethodName are required to register namespace alias.'); - } - } - - /** - * Register mappings and alias with the metadata drivers. - * - * @return void - */ - public function process(ContainerBuilder $container) - { - if (!$this->enabled($container)) { - return; - } - - $mappingDriverDef = $this->getDriver($container); - $chainDriverDefService = $this->getChainDriverServiceName($container); - // Definition for a Doctrine\Persistence\Mapping\Driver\MappingDriverChain - $chainDriverDef = $container->getDefinition($chainDriverDefService); - foreach ($this->namespaces as $namespace) { - $chainDriverDef->addMethodCall('addDriver', [$mappingDriverDef, $namespace]); - } - - if (!\count($this->aliasMap)) { - return; - } - - $configurationServiceName = $this->getConfigurationServiceName($container); - // Definition of the Doctrine\...\Configuration class specific to the Doctrine flavour. - $configurationServiceDefinition = $container->getDefinition($configurationServiceName); - foreach ($this->aliasMap as $alias => $namespace) { - $configurationServiceDefinition->addMethodCall($this->registerAliasMethodName, [$alias, $namespace]); - } - } - - /** - * Get the service name of the metadata chain driver that the mappings - * should be registered with. - * - * @throws InvalidArgumentException if non of the managerParameters has a - * non-empty value - */ - protected function getChainDriverServiceName(ContainerBuilder $container): string - { - return sprintf($this->driverPattern, $this->getManagerName($container)); - } - - /** - * Create the service definition for the metadata driver. - * - * @param ContainerBuilder $container Passed on in case an extending class - * needs access to the container - */ - protected function getDriver(ContainerBuilder $container): Definition|Reference - { - return $this->driver; - } - - /** - * Get the service name from the pattern and the configured manager name. - * - * @throws InvalidArgumentException if none of the managerParameters has a - * non-empty value - */ - private function getConfigurationServiceName(ContainerBuilder $container): string - { - return sprintf($this->configurationPattern, $this->getManagerName($container)); - } - - /** - * Determine the manager name. - * - * The default implementation loops over the managerParameters and returns - * the first non-empty parameter. - * - * @throws InvalidArgumentException if none of the managerParameters is found in the container - */ - private function getManagerName(ContainerBuilder $container): string - { - foreach ($this->managerParameters as $param) { - if ($container->hasParameter($param)) { - $name = $container->getParameter($param); - if ($name) { - return $name; - } - } - } - - throw new InvalidArgumentException(sprintf('Could not find the manager name parameter in the container. Tried the following parameter names: "%s".', implode('", "', $this->managerParameters))); - } - - /** - * Determine whether this mapping should be activated or not. This allows - * to take this decision with the container builder available. - * - * This default implementation checks if the class has the enabledParameter - * configured and if so if that parameter is present in the container. - */ - protected function enabled(ContainerBuilder $container): bool - { - return !$this->enabledParameter || $container->hasParameter($this->enabledParameter); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterUidTypePass.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterUidTypePass.php deleted file mode 100644 index fd27f60..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/CompilerPass/RegisterUidTypePass.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass; - -use Symfony\Bridge\Doctrine\Types\UlidType; -use Symfony\Bridge\Doctrine\Types\UuidType; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\Uid\AbstractUid; - -final class RegisterUidTypePass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container): void - { - if (!class_exists(AbstractUid::class)) { - return; - } - - if (!$container->hasParameter('doctrine.dbal.connection_factory.types')) { - return; - } - - $typeDefinition = $container->getParameter('doctrine.dbal.connection_factory.types'); - - if (!isset($typeDefinition['uuid'])) { - $typeDefinition['uuid'] = ['class' => UuidType::class]; - } - - if (!isset($typeDefinition['ulid'])) { - $typeDefinition['ulid'] = ['class' => UlidType::class]; - } - - $container->setParameter('doctrine.dbal.connection_factory.types', $typeDefinition); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/Security/UserProvider/EntityFactory.php b/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/Security/UserProvider/EntityFactory.php deleted file mode 100644 index f4ea037..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/DependencyInjection/Security/UserProvider/EntityFactory.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\DependencyInjection\Security\UserProvider; - -use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface; -use Symfony\Component\Config\Definition\Builder\NodeDefinition; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * EntityFactory creates services for Doctrine user provider. - * - * @final since Symfony 6.4 - * - * @author Fabien Potencier - * @author Christophe Coevoet - */ -class EntityFactory implements UserProviderFactoryInterface -{ - public function __construct( - private readonly string $key, - private readonly string $providerId, - ) { - } - - public function create(ContainerBuilder $container, string $id, array $config): void - { - $container - ->setDefinition($id, new ChildDefinition($this->providerId)) - ->addArgument($config['class']) - ->addArgument($config['property']) - ->addArgument($config['manager_name']) - ; - } - - public function getKey(): string - { - return $this->key; - } - - public function addConfiguration(NodeDefinition $node): void - { - $node - ->children() - ->scalarNode('class') - ->isRequired() - ->info('The full entity class name of your user class.') - ->cannotBeEmpty() - ->end() - ->scalarNode('property')->defaultNull()->end() - ->scalarNode('manager_name')->defaultNull()->end() - ->end() - ; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/DoctrineChoiceLoader.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/DoctrineChoiceLoader.php deleted file mode 100644 index 1b7c94d..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/DoctrineChoiceLoader.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\ChoiceList; - -use Doctrine\Persistence\ObjectManager; -use Symfony\Component\Form\ChoiceList\Loader\AbstractChoiceLoader; -use Symfony\Component\Form\Exception\LogicException; - -/** - * Loads choices using a Doctrine object manager. - * - * @author Bernhard Schussek - */ -class DoctrineChoiceLoader extends AbstractChoiceLoader -{ - /** @var class-string */ - private readonly string $class; - - /** - * Creates a new choice loader. - * - * Optionally, an implementation of {@link EntityLoaderInterface} can be - * passed which optimizes the object loading for one of the Doctrine - * mapper implementations. - * - * @param string $class The class name of the loaded objects - */ - public function __construct( - private readonly ObjectManager $manager, - string $class, - private readonly ?IdReader $idReader = null, - private readonly ?EntityLoaderInterface $objectLoader = null, - ) { - if ($idReader && !$idReader->isSingleId()) { - throw new \InvalidArgumentException(sprintf('The "$idReader" argument of "%s" must be null when the query cannot be optimized because of composite id fields.', __METHOD__)); - } - - $this->class = $manager->getClassMetadata($class)->getName(); - } - - protected function loadChoices(): iterable - { - return $this->objectLoader - ? $this->objectLoader->getEntities() - : $this->manager->getRepository($this->class)->findAll(); - } - - protected function doLoadValuesForChoices(array $choices): array - { - // Optimize performance for single-field identifiers. We already - // know that the IDs are used as values - // Attention: This optimization does not check choices for existence - if ($this->idReader) { - throw new LogicException('Not defining the IdReader explicitly as a value callback when the query can be optimized is not supported.'); - } - - return parent::doLoadValuesForChoices($choices); - } - - protected function doLoadChoicesForValues(array $values, ?callable $value): array - { - if ($this->idReader && null === $value) { - throw new LogicException('Not defining the IdReader explicitly as a value callback when the query can be optimized is not supported.'); - } - - $idReader = null; - if (\is_array($value) && $value[0] instanceof IdReader) { - $idReader = $value[0]; - } elseif ($value instanceof \Closure && ($rThis = (new \ReflectionFunction($value))->getClosureThis()) instanceof IdReader) { - $idReader = $rThis; - } - - // Optimize performance in case we have an object loader and - // a single-field identifier - if ($idReader && $this->objectLoader) { - $objects = []; - $objectsById = []; - - // Maintain order and indices from the given $values - // An alternative approach to the following loop is to add the - // "INDEX BY" clause to the Doctrine query in the loader, - // but I'm not sure whether that's doable in a generic fashion. - foreach ($this->objectLoader->getEntitiesByIds($idReader->getIdField(), $values) as $object) { - $objectsById[$idReader->getIdValue($object)] = $object; - } - - foreach ($values as $i => $id) { - if (isset($objectsById[$id])) { - $objects[$i] = $objectsById[$id]; - } - } - - return $objects; - } - - return parent::doLoadChoicesForValues($values, $value); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/EntityLoaderInterface.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/EntityLoaderInterface.php deleted file mode 100644 index 51a497b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/EntityLoaderInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\ChoiceList; - -/** - * Custom loader for entities in the choice list. - * - * @author Benjamin Eberlei - */ -interface EntityLoaderInterface -{ - /** - * Returns an array of entities that are valid choices in the corresponding choice list. - */ - public function getEntities(): array; - - /** - * Returns an array of entities matching the given identifiers. - */ - public function getEntitiesByIds(string $identifier, array $values): array; -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/IdReader.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/IdReader.php deleted file mode 100644 index 1baed3b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/IdReader.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\ChoiceList; - -use Doctrine\Persistence\Mapping\ClassMetadata; -use Doctrine\Persistence\ObjectManager; -use Symfony\Component\Form\Exception\RuntimeException; - -/** - * A utility for reading object IDs. - * - * @author Bernhard Schussek - * - * @internal - */ -class IdReader -{ - private readonly bool $singleId; - private readonly bool $intId; - private readonly string $idField; - private readonly ?self $associationIdReader; - - public function __construct( - private readonly ObjectManager $om, - private readonly ClassMetadata $classMetadata, - ) { - $ids = $classMetadata->getIdentifierFieldNames(); - $idType = $classMetadata->getTypeOfField(current($ids)); - - $singleId = 1 === \count($ids); - $this->idField = current($ids); - - // single field association are resolved, since the schema column could be an int - if ($singleId && $classMetadata->hasAssociation($this->idField)) { - $this->associationIdReader = new self($om, $om->getClassMetadata( - $classMetadata->getAssociationTargetClass($this->idField) - )); - - $singleId = $this->associationIdReader->isSingleId(); - $this->intId = $this->associationIdReader->isIntId(); - } else { - $this->intId = $singleId && \in_array($idType, ['integer', 'smallint', 'bigint']); - $this->associationIdReader = null; - } - - $this->singleId = $singleId; - } - - /** - * Returns whether the class has a single-column ID. - */ - public function isSingleId(): bool - { - return $this->singleId; - } - - /** - * Returns whether the class has a single-column integer ID. - */ - public function isIntId(): bool - { - return $this->intId; - } - - /** - * Returns the ID value for an object. - * - * This method assumes that the object has a single-column ID. - */ - public function getIdValue(?object $object = null): string - { - if (!$object) { - return ''; - } - - if (!$this->om->contains($object)) { - throw new RuntimeException(sprintf('Entity of type "%s" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?', get_debug_type($object))); - } - - $this->om->initializeObject($object); - - $idValue = current($this->classMetadata->getIdentifierValues($object)); - - if ($this->associationIdReader) { - $idValue = $this->associationIdReader->getIdValue($idValue); - } - - return (string) $idValue; - } - - /** - * Returns the name of the ID field. - * - * This method assumes that the object has a single-column ID. - */ - public function getIdField(): string - { - return $this->idField; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/ORMQueryBuilderLoader.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/ORMQueryBuilderLoader.php deleted file mode 100644 index c466330..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/ChoiceList/ORMQueryBuilderLoader.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\ChoiceList; - -use Doctrine\DBAL\ArrayParameterType; -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\Types\ConversionException; -use Doctrine\DBAL\Types\Type; -use Doctrine\ORM\QueryBuilder; -use Symfony\Component\Form\Exception\TransformationFailedException; - -/** - * Loads entities using a {@link QueryBuilder} instance. - * - * @author Benjamin Eberlei - * @author Bernhard Schussek - */ -class ORMQueryBuilderLoader implements EntityLoaderInterface -{ - public function __construct( - private readonly QueryBuilder $queryBuilder, - ) { - } - - public function getEntities(): array - { - return $this->queryBuilder->getQuery()->execute(); - } - - public function getEntitiesByIds(string $identifier, array $values): array - { - if (null !== $this->queryBuilder->getMaxResults() || 0 < (int) $this->queryBuilder->getFirstResult()) { - // an offset or a limit would apply on results including the where clause with submitted id values - // that could make invalid choices valid - $choices = []; - $metadata = $this->queryBuilder->getEntityManager()->getClassMetadata(current($this->queryBuilder->getRootEntities())); - - foreach ($this->getEntities() as $entity) { - if (\in_array((string) current($metadata->getIdentifierValues($entity)), $values, true)) { - $choices[] = $entity; - } - } - - return $choices; - } - - $qb = clone $this->queryBuilder; - $alias = current($qb->getRootAliases()); - $parameter = 'ORMQueryBuilderLoader_getEntitiesByIds_'.$identifier; - $parameter = str_replace('.', '_', $parameter); - $where = $qb->expr()->in($alias.'.'.$identifier, ':'.$parameter); - - // Guess type - $entity = current($qb->getRootEntities()); - $metadata = $qb->getEntityManager()->getClassMetadata($entity); - if (\in_array($type = $metadata->getTypeOfField($identifier), ['integer', 'bigint', 'smallint'])) { - $parameterType = class_exists(ArrayParameterType::class) ? ArrayParameterType::INTEGER : Connection::PARAM_INT_ARRAY; - - // Filter out non-integer values (e.g. ""). If we don't, some - // databases such as PostgreSQL fail. - $values = array_values(array_filter($values, fn ($v) => (string) $v === (string) (int) $v || ctype_digit($v))); - } elseif (\in_array($type, ['ulid', 'uuid', 'guid'])) { - $parameterType = class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY; - - // Like above, but we just filter out empty strings. - $values = array_values(array_filter($values, fn ($v) => '' !== (string) $v)); - - // Convert values into right type - if (Type::hasType($type)) { - $doctrineType = Type::getType($type); - $platform = $qb->getEntityManager()->getConnection()->getDatabasePlatform(); - foreach ($values as &$value) { - try { - $value = $doctrineType->convertToDatabaseValue($value, $platform); - } catch (ConversionException $e) { - throw new TransformationFailedException(sprintf('Failed to transform "%s" into "%s".', $value, $type), 0, $e); - } - } - unset($value); - } - } else { - $parameterType = class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY; - } - if (!$values) { - return []; - } - - return $qb->andWhere($where) - ->getQuery() - ->setParameter($parameter, $values, $parameterType) - ->getResult(); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DataTransformer/CollectionToArrayTransformer.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DataTransformer/CollectionToArrayTransformer.php deleted file mode 100644 index 61fc5f8..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DataTransformer/CollectionToArrayTransformer.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\DataTransformer; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\Common\Collections\Collection; -use Symfony\Component\Form\DataTransformerInterface; -use Symfony\Component\Form\Exception\TransformationFailedException; - -/** - * @author Bernhard Schussek - * - * @implements DataTransformerInterface - */ -class CollectionToArrayTransformer implements DataTransformerInterface -{ - /** - * Transforms a collection into an array. - * - * @throws TransformationFailedException - */ - public function transform(mixed $collection): mixed - { - if (null === $collection) { - return []; - } - - // For cases when the collection getter returns $collection->toArray() - // in order to prevent modifications of the returned collection - if (\is_array($collection)) { - return $collection; - } - - if (!$collection instanceof Collection) { - throw new TransformationFailedException('Expected a Doctrine\Common\Collections\Collection object.'); - } - - return $collection->toArray(); - } - - /** - * Transforms an array into a collection. - */ - public function reverseTransform(mixed $array): Collection - { - if ('' === $array || null === $array) { - $array = []; - } else { - $array = (array) $array; - } - - return new ArrayCollection($array); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmExtension.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmExtension.php deleted file mode 100644 index 75d7562..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmExtension.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form; - -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Bridge\Doctrine\Form\Type\EntityType; -use Symfony\Component\Form\AbstractExtension; -use Symfony\Component\Form\FormTypeGuesserInterface; - -class DoctrineOrmExtension extends AbstractExtension -{ - protected $registry; - - public function __construct(ManagerRegistry $registry) - { - $this->registry = $registry; - } - - protected function loadTypes(): array - { - return [ - new EntityType($this->registry), - ]; - } - - protected function loadTypeGuesser(): ?FormTypeGuesserInterface - { - return new DoctrineOrmTypeGuesser($this->registry); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmTypeGuesser.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmTypeGuesser.php deleted file mode 100644 index 0537946..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/DoctrineOrmTypeGuesser.php +++ /dev/null @@ -1,206 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form; - -use Doctrine\DBAL\Types\Types; -use Doctrine\ORM\Mapping\ClassMetadata; -use Doctrine\ORM\Mapping\ClassMetadataInfo; -use Doctrine\ORM\Mapping\FieldMapping; -use Doctrine\ORM\Mapping\JoinColumnMapping; -use Doctrine\ORM\Mapping\MappingException as LegacyMappingException; -use Doctrine\Persistence\ManagerRegistry; -use Doctrine\Persistence\Mapping\MappingException; -use Doctrine\Persistence\Proxy; -use Symfony\Bridge\Doctrine\Form\Type\EntityType; -use Symfony\Component\Form\Extension\Core\Type\CheckboxType; -use Symfony\Component\Form\Extension\Core\Type\CollectionType; -use Symfony\Component\Form\Extension\Core\Type\DateIntervalType; -use Symfony\Component\Form\Extension\Core\Type\DateTimeType; -use Symfony\Component\Form\Extension\Core\Type\DateType; -use Symfony\Component\Form\Extension\Core\Type\IntegerType; -use Symfony\Component\Form\Extension\Core\Type\NumberType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; -use Symfony\Component\Form\Extension\Core\Type\TextType; -use Symfony\Component\Form\Extension\Core\Type\TimeType; -use Symfony\Component\Form\FormTypeGuesserInterface; -use Symfony\Component\Form\Guess\Guess; -use Symfony\Component\Form\Guess\TypeGuess; -use Symfony\Component\Form\Guess\ValueGuess; - -class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface -{ - protected $registry; - - private array $cache = []; - - public function __construct(ManagerRegistry $registry) - { - $this->registry = $registry; - } - - public function guessType(string $class, string $property): ?TypeGuess - { - if (!$ret = $this->getMetadata($class)) { - return new TypeGuess(TextType::class, [], Guess::LOW_CONFIDENCE); - } - - [$metadata, $name] = $ret; - - if ($metadata->hasAssociation($property)) { - $multiple = $metadata->isCollectionValuedAssociation($property); - $mapping = $metadata->getAssociationMapping($property); - - return new TypeGuess(EntityType::class, ['em' => $name, 'class' => $mapping['targetEntity'], 'multiple' => $multiple], Guess::HIGH_CONFIDENCE); - } - - return match ($metadata->getTypeOfField($property)) { - 'array', // DBAL < 4 - Types::SIMPLE_ARRAY => new TypeGuess(CollectionType::class, [], Guess::MEDIUM_CONFIDENCE), - Types::BOOLEAN => new TypeGuess(CheckboxType::class, [], Guess::HIGH_CONFIDENCE), - Types::DATETIME_MUTABLE, - Types::DATETIMETZ_MUTABLE, - 'vardatetime' => new TypeGuess(DateTimeType::class, [], Guess::HIGH_CONFIDENCE), - Types::DATETIME_IMMUTABLE, - Types::DATETIMETZ_IMMUTABLE => new TypeGuess(DateTimeType::class, ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE), - Types::DATEINTERVAL => new TypeGuess(DateIntervalType::class, [], Guess::HIGH_CONFIDENCE), - Types::DATE_MUTABLE => new TypeGuess(DateType::class, [], Guess::HIGH_CONFIDENCE), - Types::DATE_IMMUTABLE => new TypeGuess(DateType::class, ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE), - Types::TIME_MUTABLE => new TypeGuess(TimeType::class, [], Guess::HIGH_CONFIDENCE), - Types::TIME_IMMUTABLE => new TypeGuess(TimeType::class, ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE), - Types::DECIMAL => new TypeGuess(NumberType::class, ['input' => 'string'], Guess::MEDIUM_CONFIDENCE), - Types::FLOAT => new TypeGuess(NumberType::class, [], Guess::MEDIUM_CONFIDENCE), - Types::INTEGER, - Types::BIGINT, - Types::SMALLINT => new TypeGuess(IntegerType::class, [], Guess::MEDIUM_CONFIDENCE), - Types::STRING => new TypeGuess(TextType::class, [], Guess::MEDIUM_CONFIDENCE), - Types::TEXT => new TypeGuess(TextareaType::class, [], Guess::MEDIUM_CONFIDENCE), - default => new TypeGuess(TextType::class, [], Guess::LOW_CONFIDENCE), - }; - } - - public function guessRequired(string $class, string $property): ?ValueGuess - { - $classMetadatas = $this->getMetadata($class); - - if (!$classMetadatas) { - return null; - } - - /** @var ClassMetadataInfo $classMetadata */ - $classMetadata = $classMetadatas[0]; - - // Check whether the field exists and is nullable or not - if (isset($classMetadata->fieldMappings[$property])) { - if (!$classMetadata->isNullable($property) && Types::BOOLEAN !== $classMetadata->getTypeOfField($property)) { - return new ValueGuess(true, Guess::HIGH_CONFIDENCE); - } - - return new ValueGuess(false, Guess::MEDIUM_CONFIDENCE); - } - - // Check whether the association exists, is a to-one association and its - // join column is nullable or not - if ($classMetadata->isAssociationWithSingleJoinColumn($property)) { - $mapping = $classMetadata->getAssociationMapping($property); - - if (null === self::getMappingValue($mapping['joinColumns'][0], 'nullable')) { - // The "nullable" option defaults to true, in that case the - // field should not be required. - return new ValueGuess(false, Guess::HIGH_CONFIDENCE); - } - - return new ValueGuess(!self::getMappingValue($mapping['joinColumns'][0], 'nullable'), Guess::HIGH_CONFIDENCE); - } - - return null; - } - - public function guessMaxLength(string $class, string $property): ?ValueGuess - { - $ret = $this->getMetadata($class); - if ($ret && isset($ret[0]->fieldMappings[$property]) && !$ret[0]->hasAssociation($property)) { - $mapping = $ret[0]->getFieldMapping($property); - - $length = $mapping instanceof FieldMapping ? $mapping->length : ($mapping['length'] ?? null); - - if (null !== $length) { - return new ValueGuess($length, Guess::HIGH_CONFIDENCE); - } - - if (\in_array($ret[0]->getTypeOfField($property), [Types::DECIMAL, Types::FLOAT])) { - return new ValueGuess(null, Guess::MEDIUM_CONFIDENCE); - } - } - - return null; - } - - public function guessPattern(string $class, string $property): ?ValueGuess - { - $ret = $this->getMetadata($class); - if ($ret && isset($ret[0]->fieldMappings[$property]) && !$ret[0]->hasAssociation($property)) { - if (\in_array($ret[0]->getTypeOfField($property), [Types::DECIMAL, Types::FLOAT])) { - return new ValueGuess(null, Guess::MEDIUM_CONFIDENCE); - } - } - - return null; - } - - /** - * @template T of object - * - * @param class-string $class - * - * @return array{0:ClassMetadata, 1:string}|null - */ - protected function getMetadata(string $class) - { - // normalize class name - $class = self::getRealClass(ltrim($class, '\\')); - - if (\array_key_exists($class, $this->cache)) { - return $this->cache[$class]; - } - - $this->cache[$class] = null; - foreach ($this->registry->getManagers() as $name => $em) { - try { - return $this->cache[$class] = [$em->getClassMetadata($class), $name]; - } catch (MappingException) { - // not an entity or mapped super class - } catch (LegacyMappingException) { - // not an entity or mapped super class, using Doctrine ORM 2.2 - } - } - - return null; - } - - private static function getRealClass(string $class): string - { - if (false === $pos = strrpos($class, '\\'.Proxy::MARKER.'\\')) { - return $class; - } - - return substr($class, $pos + Proxy::MARKER_LENGTH + 2); - } - - private static function getMappingValue(array|JoinColumnMapping $mapping, string $key): mixed - { - if ($mapping instanceof JoinColumnMapping) { - return $mapping->$key ?? null; - } - - return $mapping[$key] ?? null; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/EventListener/MergeDoctrineCollectionListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/EventListener/MergeDoctrineCollectionListener.php deleted file mode 100644 index cff8b3b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/EventListener/MergeDoctrineCollectionListener.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\EventListener; - -use Doctrine\Common\Collections\Collection; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\Form\FormEvent; -use Symfony\Component\Form\FormEvents; - -/** - * Merge changes from the request to a Doctrine\Common\Collections\Collection instance. - * - * This works with ORM, MongoDB and CouchDB instances of the collection interface. - * - * @author Bernhard Schussek - * - * @see Collection - */ -class MergeDoctrineCollectionListener implements EventSubscriberInterface -{ - public static function getSubscribedEvents(): array - { - // Higher priority than core MergeCollectionListener so that this one - // is called before - return [ - FormEvents::SUBMIT => [ - ['onSubmit', 5], - ], - ]; - } - - /** - * @return void - */ - public function onSubmit(FormEvent $event) - { - $collection = $event->getForm()->getData(); - $data = $event->getData(); - - // If all items were removed, call clear which has a higher - // performance on persistent collections - if ($collection instanceof Collection && 0 === \count($data)) { - $collection->clear(); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/DoctrineType.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/DoctrineType.php deleted file mode 100644 index d1d72ef..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/DoctrineType.php +++ /dev/null @@ -1,270 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\Type; - -use Doctrine\Common\Collections\Collection; -use Doctrine\Persistence\ManagerRegistry; -use Doctrine\Persistence\ObjectManager; -use Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader; -use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityLoaderInterface; -use Symfony\Bridge\Doctrine\Form\ChoiceList\IdReader; -use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionToArrayTransformer; -use Symfony\Bridge\Doctrine\Form\EventListener\MergeDoctrineCollectionListener; -use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\ChoiceList\ChoiceList; -use Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator; -use Symfony\Component\Form\Exception\RuntimeException; -use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\FormBuilderInterface; -use Symfony\Component\OptionsResolver\Options; -use Symfony\Component\OptionsResolver\OptionsResolver; -use Symfony\Contracts\Service\ResetInterface; - -abstract class DoctrineType extends AbstractType implements ResetInterface -{ - /** - * @var ManagerRegistry - */ - protected $registry; - - /** - * @var IdReader[] - */ - private array $idReaders = []; - - /** - * @var EntityLoaderInterface[] - */ - private array $entityLoaders = []; - - /** - * Creates the label for a choice. - * - * For backwards compatibility, objects are cast to strings by default. - * - * @internal This method is public to be usable as callback. It should not - * be used in user code. - */ - public static function createChoiceLabel(object $choice): string - { - return (string) $choice; - } - - /** - * Creates the field name for a choice. - * - * This method is used to generate field names if the underlying object has - * a single-column integer ID. In that case, the value of the field is - * the ID of the object. That ID is also used as field name. - * - * @param string $value The choice value. Corresponds to the object's ID here. - * - * @internal This method is public to be usable as callback. It should not - * be used in user code. - */ - public static function createChoiceName(object $choice, int|string $key, string $value): string - { - return str_replace('-', '_', $value); - } - - /** - * Gets important parts from QueryBuilder that will allow to cache its results. - * For instance in ORM two query builders with an equal SQL string and - * equal parameters are considered to be equal. - * - * @param object $queryBuilder A query builder, type declaration is not present here as there - * is no common base class for the different implementations - * - * @internal This method is public to be usable as callback. It should not - * be used in user code. - */ - public function getQueryBuilderPartsForCachingHash(object $queryBuilder): ?array - { - return null; - } - - public function __construct(ManagerRegistry $registry) - { - $this->registry = $registry; - } - - /** - * @return void - */ - public function buildForm(FormBuilderInterface $builder, array $options) - { - if ($options['multiple'] && interface_exists(Collection::class)) { - $builder - ->addEventSubscriber(new MergeDoctrineCollectionListener()) - ->addViewTransformer(new CollectionToArrayTransformer(), true) - ; - } - } - - /** - * @return void - */ - public function configureOptions(OptionsResolver $resolver) - { - $choiceLoader = function (Options $options) { - // Unless the choices are given explicitly, load them on demand - if (null === $options['choices']) { - // If there is no QueryBuilder we can safely cache - $vary = [$options['em'], $options['class']]; - - // also if concrete Type can return important QueryBuilder parts to generate - // hash key we go for it as well, otherwise fallback on the instance - if ($options['query_builder']) { - $vary[] = $this->getQueryBuilderPartsForCachingHash($options['query_builder']) ?? $options['query_builder']; - } - - return ChoiceList::loader($this, new DoctrineChoiceLoader( - $options['em'], - $options['class'], - $options['id_reader'], - $this->getCachedEntityLoader( - $options['em'], - $options['query_builder'] ?? $options['em']->getRepository($options['class'])->createQueryBuilder('e'), - $options['class'], - $vary - ) - ), $vary); - } - - return null; - }; - - $choiceName = function (Options $options) { - // If the object has a single-column, numeric ID, use that ID as - // field name. We can only use numeric IDs as names, as we cannot - // guarantee that a non-numeric ID contains a valid form name - if ($options['id_reader'] instanceof IdReader && $options['id_reader']->isIntId()) { - return ChoiceList::fieldName($this, [__CLASS__, 'createChoiceName']); - } - - // Otherwise, an incrementing integer is used as name automatically - return null; - }; - - // The choices are always indexed by ID (see "choices" normalizer - // and DoctrineChoiceLoader), unless the ID is composite. Then they - // are indexed by an incrementing integer. - // Use the ID/incrementing integer as choice value. - $choiceValue = function (Options $options) { - // If the entity has a single-column ID, use that ID as value - if ($options['id_reader'] instanceof IdReader && $options['id_reader']->isSingleId()) { - return ChoiceList::value($this, $options['id_reader']->getIdValue(...), $options['id_reader']); - } - - // Otherwise, an incrementing integer is used as value automatically - return null; - }; - - $emNormalizer = function (Options $options, $em) { - if (null !== $em) { - if ($em instanceof ObjectManager) { - return $em; - } - - return $this->registry->getManager($em); - } - - $em = $this->registry->getManagerForClass($options['class']); - - if (null === $em) { - throw new RuntimeException(sprintf('Class "%s" seems not to be a managed Doctrine entity. Did you forget to map it?', $options['class'])); - } - - return $em; - }; - - // Invoke the query builder closure so that we can cache choice lists - // for equal query builders - $queryBuilderNormalizer = function (Options $options, $queryBuilder) { - if (\is_callable($queryBuilder)) { - $queryBuilder = $queryBuilder($options['em']->getRepository($options['class'])); - } - - return $queryBuilder; - }; - - // Set the "id_reader" option via the normalizer. This option is not - // supposed to be set by the user. - // The ID reader is a utility that is needed to read the object IDs - // when generating the field values. The callback generating the - // field values has no access to the object manager or the class - // of the field, so we store that information in the reader. - // The reader is cached so that two choice lists for the same class - // (and hence with the same reader) can successfully be cached. - $idReaderNormalizer = fn (Options $options) => $this->getCachedIdReader($options['em'], $options['class']); - - $resolver->setDefaults([ - 'em' => null, - 'query_builder' => null, - 'choices' => null, - 'choice_loader' => $choiceLoader, - 'choice_label' => ChoiceList::label($this, [__CLASS__, 'createChoiceLabel']), - 'choice_name' => $choiceName, - 'choice_value' => $choiceValue, - 'id_reader' => null, // internal - 'choice_translation_domain' => false, - ]); - - $resolver->setRequired(['class']); - - $resolver->setNormalizer('em', $emNormalizer); - $resolver->setNormalizer('query_builder', $queryBuilderNormalizer); - $resolver->setNormalizer('id_reader', $idReaderNormalizer); - - $resolver->setAllowedTypes('em', ['null', 'string', ObjectManager::class]); - } - - /** - * Return the default loader object. - */ - abstract public function getLoader(ObjectManager $manager, object $queryBuilder, string $class): EntityLoaderInterface; - - public function getParent(): string - { - return ChoiceType::class; - } - - /** - * @return void - */ - public function reset() - { - $this->idReaders = []; - $this->entityLoaders = []; - } - - private function getCachedIdReader(ObjectManager $manager, string $class): ?IdReader - { - $hash = CachingFactoryDecorator::generateHash([$manager, $class]); - - if (isset($this->idReaders[$hash])) { - return $this->idReaders[$hash]; - } - - $idReader = new IdReader($manager, $manager->getClassMetadata($class)); - - // don't cache the instance for composite ids that cannot be optimized - return $this->idReaders[$hash] = $idReader->isSingleId() ? $idReader : null; - } - - private function getCachedEntityLoader(ObjectManager $manager, object $queryBuilder, string $class, array $vary): EntityLoaderInterface - { - $hash = CachingFactoryDecorator::generateHash($vary); - - return $this->entityLoaders[$hash] ??= $this->getLoader($manager, $queryBuilder, $class); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/EntityType.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/EntityType.php deleted file mode 100644 index c096b55..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Form/Type/EntityType.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form\Type; - -use Doctrine\ORM\Query\Parameter; -use Doctrine\ORM\QueryBuilder; -use Doctrine\Persistence\ObjectManager; -use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader; -use Symfony\Component\Form\Exception\UnexpectedTypeException; -use Symfony\Component\OptionsResolver\Options; -use Symfony\Component\OptionsResolver\OptionsResolver; - -class EntityType extends DoctrineType -{ - /** - * @return void - */ - public function configureOptions(OptionsResolver $resolver) - { - parent::configureOptions($resolver); - - // Invoke the query builder closure so that we can cache choice lists - // for equal query builders - $queryBuilderNormalizer = function (Options $options, $queryBuilder) { - if (\is_callable($queryBuilder)) { - $queryBuilder = $queryBuilder($options['em']->getRepository($options['class'])); - - if (null !== $queryBuilder && !$queryBuilder instanceof QueryBuilder) { - throw new UnexpectedTypeException($queryBuilder, QueryBuilder::class); - } - } - - return $queryBuilder; - }; - - $resolver->setNormalizer('query_builder', $queryBuilderNormalizer); - $resolver->setAllowedTypes('query_builder', ['null', 'callable', QueryBuilder::class]); - } - - /** - * Return the default loader object. - * - * @param QueryBuilder $queryBuilder - */ - public function getLoader(ObjectManager $manager, object $queryBuilder, string $class): ORMQueryBuilderLoader - { - if (!$queryBuilder instanceof QueryBuilder) { - throw new \TypeError(sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder))); - } - - return new ORMQueryBuilderLoader($queryBuilder); - } - - public function getBlockPrefix(): string - { - return 'entity'; - } - - /** - * We consider two query builders with an equal SQL string and - * equal parameters to be equal. - * - * @param QueryBuilder $queryBuilder - * - * @internal This method is public to be usable as callback. It should not - * be used in user code. - */ - public function getQueryBuilderPartsForCachingHash(object $queryBuilder): ?array - { - if (!$queryBuilder instanceof QueryBuilder) { - throw new \TypeError(sprintf('Expected an instance of "%s", but got "%s".', QueryBuilder::class, get_debug_type($queryBuilder))); - } - - return [ - $queryBuilder->getQuery()->getSQL(), - array_map($this->parameterToArray(...), $queryBuilder->getParameters()->toArray()), - ]; - } - - /** - * Converts a query parameter to an array. - */ - private function parameterToArray(Parameter $parameter): array - { - return [$parameter->getName(), $parameter->getType(), $parameter->getValue()]; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UlidGenerator.php b/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UlidGenerator.php deleted file mode 100644 index ab53948..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UlidGenerator.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\IdGenerator; - -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\Id\AbstractIdGenerator; -use Symfony\Component\Uid\Factory\UlidFactory; -use Symfony\Component\Uid\Ulid; - -final class UlidGenerator extends AbstractIdGenerator -{ - public function __construct( - private readonly ?UlidFactory $factory = null - ) { - } - - /** - * doctrine/orm < 2.11 BC layer. - */ - public function generate(EntityManager $em, $entity): Ulid - { - return $this->generateId($em, $entity); - } - - public function generateId(EntityManagerInterface $em, $entity): Ulid - { - if ($this->factory) { - return $this->factory->create(); - } - - return new Ulid(); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UuidGenerator.php b/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UuidGenerator.php deleted file mode 100644 index 72bab54..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/IdGenerator/UuidGenerator.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\IdGenerator; - -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\Id\AbstractIdGenerator; -use Symfony\Component\Uid\Factory\NameBasedUuidFactory; -use Symfony\Component\Uid\Factory\RandomBasedUuidFactory; -use Symfony\Component\Uid\Factory\TimeBasedUuidFactory; -use Symfony\Component\Uid\Factory\UuidFactory; -use Symfony\Component\Uid\Uuid; - -final class UuidGenerator extends AbstractIdGenerator -{ - private readonly UuidFactory $protoFactory; - private UuidFactory|NameBasedUuidFactory|RandomBasedUuidFactory|TimeBasedUuidFactory $factory; - private ?string $entityGetter = null; - - public function __construct(?UuidFactory $factory = null) - { - $this->protoFactory = $this->factory = $factory ?? new UuidFactory(); - } - - /** - * doctrine/orm < 2.11 BC layer. - */ - public function generate(EntityManager $em, $entity): Uuid - { - return $this->generateId($em, $entity); - } - - public function generateId(EntityManagerInterface $em, $entity): Uuid - { - if (null !== $this->entityGetter) { - if (\is_callable([$entity, $this->entityGetter])) { - return $this->factory->create($entity->{$this->entityGetter}()); - } - - return $this->factory->create($entity->{$this->entityGetter}); - } - - return $this->factory->create(); - } - - public function nameBased(string $entityGetter, Uuid|string|null $namespace = null): static - { - $clone = clone $this; - $clone->factory = $clone->protoFactory->nameBased($namespace); - $clone->entityGetter = $entityGetter; - - return $clone; - } - - public function randomBased(): static - { - $clone = clone $this; - $clone->factory = $clone->protoFactory->randomBased(); - $clone->entityGetter = null; - - return $clone; - } - - public function timeBased(Uuid|string|null $node = null): static - { - $clone = clone $this; - $clone->factory = $clone->protoFactory->timeBased($node); - $clone->entityGetter = null; - - return $clone; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/LICENSE b/projects/priceservice/vendor/symfony/doctrine-bridge/LICENSE deleted file mode 100644 index 0138f8f..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Logger/DbalLogger.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Logger/DbalLogger.php deleted file mode 100644 index 237f583..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Logger/DbalLogger.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Logger; - -use Doctrine\DBAL\Logging\SQLLogger; -use Psr\Log\LoggerInterface; -use Symfony\Component\Stopwatch\Stopwatch; - -trigger_deprecation('symfony/doctrine-bridge', '6.4', '"%s" is deprecated, use a middleware instead.', DbalLogger::class); - -/** - * @author Fabien Potencier - * - * @deprecated since Symfony 6.4, use a middleware instead. - */ -class DbalLogger implements SQLLogger -{ - public const MAX_STRING_LENGTH = 32; - public const BINARY_DATA_VALUE = '(binary value)'; - - protected $logger; - protected $stopwatch; - - public function __construct(?LoggerInterface $logger = null, ?Stopwatch $stopwatch = null) - { - $this->logger = $logger; - $this->stopwatch = $stopwatch; - } - - public function startQuery($sql, ?array $params = null, ?array $types = null): void - { - $this->stopwatch?->start('doctrine', 'doctrine'); - - if (null !== $this->logger) { - $this->log($sql, null === $params ? [] : $this->normalizeParams($params)); - } - } - - public function stopQuery(): void - { - $this->stopwatch?->stop('doctrine'); - } - - /** - * Logs a message. - * - * @return void - */ - protected function log(string $message, array $params) - { - $this->logger->debug($message, $params); - } - - private function normalizeParams(array $params): array - { - foreach ($params as $index => $param) { - // normalize recursively - if (\is_array($param)) { - $params[$index] = $this->normalizeParams($param); - continue; - } - - if (!\is_string($params[$index])) { - continue; - } - - // non utf-8 strings break json encoding - if (!preg_match('//u', $params[$index])) { - $params[$index] = self::BINARY_DATA_VALUE; - continue; - } - - // detect if the too long string must be shorten - if (self::MAX_STRING_LENGTH < mb_strlen($params[$index], 'UTF-8')) { - $params[$index] = mb_substr($params[$index], 0, self::MAX_STRING_LENGTH - 6, 'UTF-8').' [...]'; - continue; - } - } - - return $params; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/ManagerRegistry.php b/projects/priceservice/vendor/symfony/doctrine-bridge/ManagerRegistry.php deleted file mode 100644 index 27ab1ca..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/ManagerRegistry.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine; - -use Doctrine\Persistence\AbstractManagerRegistry; -use ProxyManager\Proxy\GhostObjectInterface; -use ProxyManager\Proxy\LazyLoadingInterface; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\VarExporter\LazyObjectInterface; - -/** - * References Doctrine connections and entity/document managers. - * - * @author Lukas Kahwe Smith - */ -abstract class ManagerRegistry extends AbstractManagerRegistry -{ - /** - * @var Container - */ - protected $container; - - protected function getService($name): object - { - return $this->container->get($name); - } - - protected function resetService($name): void - { - if (!$this->container->initialized($name)) { - return; - } - $manager = $this->container->get($name); - - if ($manager instanceof LazyObjectInterface) { - if (!$manager->resetLazyObject()) { - throw new \LogicException(sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name)); - } - - return; - } - if (!$manager instanceof LazyLoadingInterface) { - throw new \LogicException(sprintf('Resetting a non-lazy manager service is not supported. Declare the "%s" service as lazy.', $name)); - } - if ($manager instanceof GhostObjectInterface) { - throw new \LogicException('Resetting a lazy-ghost-object manager service is not supported.'); - } - $manager->setProxyInitializer(\Closure::bind( - function (&$wrappedInstance, LazyLoadingInterface $manager) use ($name) { - if (isset($this->aliases[$name])) { - $name = $this->aliases[$name]; - } - if (isset($this->fileMap[$name])) { - $wrappedInstance = $this->load($this->fileMap[$name], false); - } elseif ((new \ReflectionMethod($this, $this->methodMap[$name]))->isStatic()) { - $wrappedInstance = $this->{$this->methodMap[$name]}($this, false); - } else { - $wrappedInstance = $this->{$this->methodMap[$name]}(false); - } - - $manager->setProxyInitializer(null); - - return true; - }, - $this->container, - Container::class - )); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/AbstractDoctrineMiddleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/AbstractDoctrineMiddleware.php deleted file mode 100644 index 649a197..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/AbstractDoctrineMiddleware.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException; -use Symfony\Component\Messenger\Middleware\MiddlewareInterface; -use Symfony\Component\Messenger\Middleware\StackInterface; - -/** - * @author Konstantin Myakshin - * - * @internal - */ -abstract class AbstractDoctrineMiddleware implements MiddlewareInterface -{ - protected ManagerRegistry $managerRegistry; - protected ?string $entityManagerName; - - public function __construct(ManagerRegistry $managerRegistry, ?string $entityManagerName = null) - { - $this->managerRegistry = $managerRegistry; - $this->entityManagerName = $entityManagerName; - } - - final public function handle(Envelope $envelope, StackInterface $stack): Envelope - { - try { - $entityManager = $this->managerRegistry->getManager($this->entityManagerName); - } catch (\InvalidArgumentException $e) { - throw new UnrecoverableMessageHandlingException($e->getMessage(), 0, $e); - } - - return $this->handleForManager($entityManager, $envelope, $stack); - } - - abstract protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope; -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineClearEntityManagerWorkerSubscriber.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineClearEntityManagerWorkerSubscriber.php deleted file mode 100644 index 9fa7ae9..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineClearEntityManagerWorkerSubscriber.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent; -use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent; - -/** - * Clears entity managers between messages being handled to avoid outdated data. - * - * @author Ryan Weaver - */ -class DoctrineClearEntityManagerWorkerSubscriber implements EventSubscriberInterface -{ - public function __construct( - private readonly ManagerRegistry $managerRegistry, - ) { - } - - /** - * @return void - */ - public function onWorkerMessageHandled() - { - $this->clearEntityManagers(); - } - - /** - * @return void - */ - public function onWorkerMessageFailed() - { - $this->clearEntityManagers(); - } - - public static function getSubscribedEvents(): array - { - return [ - WorkerMessageHandledEvent::class => 'onWorkerMessageHandled', - WorkerMessageFailedEvent::class => 'onWorkerMessageFailed', - ]; - } - - private function clearEntityManagers(): void - { - foreach ($this->managerRegistry->getManagers() as $manager) { - $manager->clear(); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineCloseConnectionMiddleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineCloseConnectionMiddleware.php deleted file mode 100644 index b0a96e0..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineCloseConnectionMiddleware.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\ORM\EntityManagerInterface; -use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\Middleware\StackInterface; -use Symfony\Component\Messenger\Stamp\ConsumedByWorkerStamp; - -/** - * Closes connection and therefore saves number of connections. - * - * @author Fuong - */ -class DoctrineCloseConnectionMiddleware extends AbstractDoctrineMiddleware -{ - protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope - { - try { - $connection = $entityManager->getConnection(); - - return $stack->next()->handle($envelope, $stack); - } finally { - if (null !== $envelope->last(ConsumedByWorkerStamp::class)) { - $connection->close(); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineOpenTransactionLoggerMiddleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineOpenTransactionLoggerMiddleware.php deleted file mode 100644 index 7638015..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineOpenTransactionLoggerMiddleware.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\Persistence\ManagerRegistry; -use Psr\Log\LoggerInterface; -use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\Middleware\StackInterface; - -/** - * Middleware to log when transaction has been left open. - * - * @author Grégoire Pineau - */ -class DoctrineOpenTransactionLoggerMiddleware extends AbstractDoctrineMiddleware -{ - private bool $isHandling = false; - - public function __construct( - ManagerRegistry $managerRegistry, - ?string $entityManagerName = null, - private readonly ?LoggerInterface $logger = null, - ) { - parent::__construct($managerRegistry, $entityManagerName); - } - - protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope - { - if ($this->isHandling) { - return $stack->next()->handle($envelope, $stack); - } - - $this->isHandling = true; - $initialTransactionLevel = $entityManager->getConnection()->getTransactionNestingLevel(); - - try { - return $stack->next()->handle($envelope, $stack); - } finally { - if ($entityManager->getConnection()->getTransactionNestingLevel() > $initialTransactionLevel) { - $this->logger?->error('A handler opened a transaction but did not close it.', [ - 'message' => $envelope->getMessage(), - ]); - } - $this->isHandling = false; - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrinePingConnectionMiddleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrinePingConnectionMiddleware.php deleted file mode 100644 index 08e1269..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrinePingConnectionMiddleware.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\Exception as DBALException; -use Doctrine\ORM\EntityManagerInterface; -use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\Middleware\StackInterface; -use Symfony\Component\Messenger\Stamp\ConsumedByWorkerStamp; - -/** - * Checks whether the connection is still open or reconnects otherwise. - * - * @author Fuong - */ -class DoctrinePingConnectionMiddleware extends AbstractDoctrineMiddleware -{ - protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope - { - if (null !== $envelope->last(ConsumedByWorkerStamp::class)) { - $this->pingConnection($entityManager); - } - - return $stack->next()->handle($envelope, $stack); - } - - private function pingConnection(EntityManagerInterface $entityManager): void - { - $connection = $entityManager->getConnection(); - - try { - $this->executeDummySql($connection); - } catch (DBALException) { - $connection->close(); - // Attempt to reestablish the lazy connection by sending another query. - $this->executeDummySql($connection); - } - - if (!$entityManager->isOpen()) { - $this->managerRegistry->resetManager($this->entityManagerName); - } - } - - /** - * @throws DBALException - */ - private function executeDummySql(Connection $connection): void - { - $connection->executeQuery($connection->getDatabasePlatform()->getDummySelectSQL()); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php deleted file mode 100644 index 8e10891..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Messenger; - -use Doctrine\ORM\EntityManagerInterface; -use Symfony\Component\Messenger\Envelope; -use Symfony\Component\Messenger\Exception\HandlerFailedException; -use Symfony\Component\Messenger\Middleware\StackInterface; -use Symfony\Component\Messenger\Stamp\HandledStamp; - -/** - * Wraps all handlers in a single doctrine transaction. - * - * @author Tobias Nyholm - */ -class DoctrineTransactionMiddleware extends AbstractDoctrineMiddleware -{ - protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope - { - $entityManager->getConnection()->beginTransaction(); - - $success = false; - try { - $envelope = $stack->next()->handle($envelope, $stack); - $entityManager->flush(); - $entityManager->getConnection()->commit(); - - $success = true; - - return $envelope; - } catch (\Throwable $exception) { - if ($exception instanceof HandlerFailedException) { - // Remove all HandledStamp from the envelope so the retry will execute all handlers again. - // When a handler fails, the queries of allegedly successful previous handlers just got rolled back. - throw new HandlerFailedException($exception->getEnvelope()->withoutAll(HandledStamp::class), $exception->getWrappedExceptions()); - } - - throw $exception; - } finally { - $connection = $entityManager->getConnection(); - - if (!$success && $connection->isTransactionActive()) { - $connection->rollBack(); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Connection.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Connection.php deleted file mode 100644 index e20510c..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Connection.php +++ /dev/null @@ -1,126 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -use Doctrine\DBAL\Driver\Connection as ConnectionInterface; -use Doctrine\DBAL\Driver\Middleware\AbstractConnectionMiddleware; -use Doctrine\DBAL\Driver\Result; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @author Laurent VOULLEMIER - * @author Alexander M. Turek - * - * @internal - */ -final class Connection extends AbstractConnectionMiddleware -{ - public function __construct( - ConnectionInterface $connection, - private readonly DebugDataHolder $debugDataHolder, - private readonly ?Stopwatch $stopwatch, - private readonly string $connectionName, - ) { - parent::__construct($connection); - } - - public function prepare(string $sql): Statement - { - return new Statement( - parent::prepare($sql), - $this->debugDataHolder, - $this->connectionName, - $sql, - $this->stopwatch, - ); - } - - public function query(string $sql): Result - { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query($sql)); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - return parent::query($sql); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function exec(string $sql): int - { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query($sql)); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - $affectedRows = parent::exec($sql); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - - return $affectedRows; - } - - public function beginTransaction(): void - { - $query = new Query('"START TRANSACTION"'); - $this->debugDataHolder->addQuery($this->connectionName, $query); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - parent::beginTransaction(); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function commit(): void - { - $query = new Query('"COMMIT"'); - $this->debugDataHolder->addQuery($this->connectionName, $query); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - parent::commit(); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function rollBack(): void - { - $query = new Query('"ROLLBACK"'); - $this->debugDataHolder->addQuery($this->connectionName, $query); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - parent::rollBack(); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Connection.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Connection.php deleted file mode 100644 index 8d01c02..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Connection.php +++ /dev/null @@ -1,133 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug\DBAL3; - -use Doctrine\DBAL\Driver\Connection as ConnectionInterface; -use Doctrine\DBAL\Driver\Middleware\AbstractConnectionMiddleware; -use Doctrine\DBAL\Driver\Result; -use Symfony\Bridge\Doctrine\Middleware\Debug\DebugDataHolder; -use Symfony\Bridge\Doctrine\Middleware\Debug\Query; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @author Laurent VOULLEMIER - * - * @internal - */ -final class Connection extends AbstractConnectionMiddleware -{ - private int $nestingLevel = 0; - - public function __construct( - ConnectionInterface $connection, - private readonly DebugDataHolder $debugDataHolder, - private readonly ?Stopwatch $stopwatch, - private readonly string $connectionName, - ) { - parent::__construct($connection); - } - - public function prepare(string $sql): Statement - { - return new Statement( - parent::prepare($sql), - $this->debugDataHolder, - $this->connectionName, - $sql, - $this->stopwatch, - ); - } - - public function query(string $sql): Result - { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query($sql)); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - return parent::query($sql); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function exec(string $sql): int - { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query($sql)); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - return parent::exec($sql); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function beginTransaction(): bool - { - $query = null; - if (1 === ++$this->nestingLevel) { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query('"START TRANSACTION"')); - } - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query?->start(); - - try { - return parent::beginTransaction(); - } finally { - $query?->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function commit(): bool - { - $query = null; - if (1 === $this->nestingLevel--) { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query('"COMMIT"')); - } - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query?->start(); - - try { - return parent::commit(); - } finally { - $query?->stop(); - $this->stopwatch?->stop('doctrine'); - } - } - - public function rollBack(): bool - { - $query = null; - if (1 === $this->nestingLevel--) { - $this->debugDataHolder->addQuery($this->connectionName, $query = new Query('"ROLLBACK"')); - } - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query?->start(); - - try { - return parent::rollBack(); - } finally { - $query?->stop(); - $this->stopwatch?->stop('doctrine'); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Statement.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Statement.php deleted file mode 100644 index cd059f8..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DBAL3/Statement.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug\DBAL3; - -use Doctrine\DBAL\Driver\Middleware\AbstractStatementMiddleware; -use Doctrine\DBAL\Driver\Result as ResultInterface; -use Doctrine\DBAL\Driver\Statement as StatementInterface; -use Doctrine\DBAL\ParameterType; -use Symfony\Bridge\Doctrine\Middleware\Debug\DebugDataHolder; -use Symfony\Bridge\Doctrine\Middleware\Debug\Query; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @author Laurent VOULLEMIER - * - * @internal - */ -final class Statement extends AbstractStatementMiddleware -{ - private readonly Query $query; - - public function __construct( - StatementInterface $statement, - private readonly DebugDataHolder $debugDataHolder, - private readonly string $connectionName, - string $sql, - private readonly ?Stopwatch $stopwatch = null, - ) { - $this->query = new Query($sql); - - parent::__construct($statement); - } - - public function bindParam($param, &$variable, $type = ParameterType::STRING, $length = null): bool - { - $this->query->setParam($param, $variable, $type); - - return parent::bindParam($param, $variable, $type, ...\array_slice(\func_get_args(), 3)); - } - - public function bindValue($param, $value, $type = ParameterType::STRING): bool - { - $this->query->setValue($param, $value, $type); - - return parent::bindValue($param, $value, $type); - } - - public function execute($params = null): ResultInterface - { - if (null !== $params) { - $this->query->setValues($params); - } - - // clone to prevent variables by reference to change - $this->debugDataHolder->addQuery($this->connectionName, $query = clone $this->query); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - return parent::execute($params); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DebugDataHolder.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DebugDataHolder.php deleted file mode 100644 index 4e1052a..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/DebugDataHolder.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -/** - * @author Laurent VOULLEMIER - */ -class DebugDataHolder -{ - private array $data = []; - - public function addQuery(string $connectionName, Query $query): void - { - $this->data[$connectionName][] = [ - 'sql' => $query->getSql(), - 'params' => $query->getParams(), - 'types' => $query->getTypes(), - 'executionMS' => $query->getDuration(...), // stop() may not be called at this point - ]; - } - - public function getData(): array - { - foreach ($this->data as $connectionName => $dataForConn) { - foreach ($dataForConn as $idx => $data) { - if (\is_callable($data['executionMS'])) { - $this->data[$connectionName][$idx]['executionMS'] = $data['executionMS'](); - } - } - } - - return $this->data; - } - - public function reset(): void - { - $this->data = []; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Driver.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Driver.php deleted file mode 100644 index ea1ecfb..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Driver.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -use Doctrine\DBAL\Driver as DriverInterface; -use Doctrine\DBAL\Driver\Connection as ConnectionInterface; -use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @author Laurent VOULLEMIER - * - * @internal - */ -final class Driver extends AbstractDriverMiddleware -{ - public function __construct( - DriverInterface $driver, - private readonly DebugDataHolder $debugDataHolder, - private readonly ?Stopwatch $stopwatch, - private readonly string $connectionName, - ) { - parent::__construct($driver); - } - - public function connect(array $params): ConnectionInterface - { - $connection = parent::connect($params); - - if ('void' !== (string) (new \ReflectionMethod(DriverInterface\Connection::class, 'commit'))->getReturnType()) { - return new DBAL3\Connection( - $connection, - $this->debugDataHolder, - $this->stopwatch, - $this->connectionName - ); - } - - return new Connection( - $connection, - $this->debugDataHolder, - $this->stopwatch, - $this->connectionName - ); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Middleware.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Middleware.php deleted file mode 100644 index 5f8a246..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Middleware.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -use Doctrine\DBAL\Driver as DriverInterface; -use Doctrine\DBAL\Driver\Middleware as MiddlewareInterface; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * Middleware to collect debug data. - * - * @author Laurent VOULLEMIER - */ -final class Middleware implements MiddlewareInterface -{ - public function __construct( - private readonly DebugDataHolder $debugDataHolder, - private readonly ?Stopwatch $stopwatch, - private readonly string $connectionName = 'default', - ) { - } - - public function wrap(DriverInterface $driver): DriverInterface - { - return new Driver($driver, $this->debugDataHolder, $this->stopwatch, $this->connectionName); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Query.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Query.php deleted file mode 100644 index 7bbc8db..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Query.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -use Doctrine\DBAL\ParameterType; - -/** - * @author Laurent VOULLEMIER - * - * @internal - */ -class Query -{ - private array $params = []; - - /** @var array */ - private array $types = []; - - private ?float $start = null; - private ?float $duration = null; - - public function __construct( - private readonly string $sql, - ) { - } - - public function start(): void - { - $this->start = microtime(true); - } - - public function stop(): void - { - if (null !== $this->start) { - $this->duration = microtime(true) - $this->start; - } - } - - public function setParam(string|int $param, mixed &$variable, ParameterType|int $type): void - { - // Numeric indexes start at 0 in profiler - $idx = \is_int($param) ? $param - 1 : $param; - - $this->params[$idx] = &$variable; - $this->types[$idx] = $type; - } - - public function setValue(string|int $param, mixed $value, ParameterType|int $type): void - { - // Numeric indexes start at 0 in profiler - $idx = \is_int($param) ? $param - 1 : $param; - - $this->params[$idx] = $value; - $this->types[$idx] = $type; - } - - /** - * @param array $values - */ - public function setValues(array $values): void - { - foreach ($values as $param => $value) { - $this->setValue($param, $value, ParameterType::STRING); - } - } - - public function getSql(): string - { - return $this->sql; - } - - /** - * @return array - */ - public function getParams(): array - { - return $this->params; - } - - /** - * @return array - */ - public function getTypes(): array - { - return $this->types; - } - - /** - * Query duration in seconds. - */ - public function getDuration(): ?float - { - return $this->duration; - } - - public function __clone() - { - $copy = []; - foreach ($this->params as $param => $valueOrVariable) { - $copy[$param] = $valueOrVariable; - } - $this->params = $copy; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Statement.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Statement.php deleted file mode 100644 index 85e6c35..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Middleware/Debug/Statement.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Middleware\Debug; - -use Doctrine\DBAL\Driver\Middleware\AbstractStatementMiddleware; -use Doctrine\DBAL\Driver\Result as ResultInterface; -use Doctrine\DBAL\Driver\Statement as StatementInterface; -use Doctrine\DBAL\ParameterType; -use Symfony\Component\Stopwatch\Stopwatch; - -/** - * @author Laurent VOULLEMIER - * @author Alexander M. Turek - * - * @internal - */ -final class Statement extends AbstractStatementMiddleware -{ - private Query $query; - - public function __construct( - StatementInterface $statement, - private readonly DebugDataHolder $debugDataHolder, - private readonly string $connectionName, - string $sql, - private readonly ?Stopwatch $stopwatch = null, - ) { - parent::__construct($statement); - - $this->query = new Query($sql); - } - - public function bindValue(int|string $param, mixed $value, ParameterType $type): void - { - $this->query->setValue($param, $value, $type); - - parent::bindValue($param, $value, $type); - } - - public function execute(): ResultInterface - { - // clone to prevent variables by reference to change - $this->debugDataHolder->addQuery($this->connectionName, $query = clone $this->query); - - $this->stopwatch?->start('doctrine', 'doctrine'); - $query->start(); - - try { - return parent::execute(); - } finally { - $query->stop(); - $this->stopwatch?->stop('doctrine'); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/PropertyInfo/DoctrineExtractor.php b/projects/priceservice/vendor/symfony/doctrine-bridge/PropertyInfo/DoctrineExtractor.php deleted file mode 100644 index b895339..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/PropertyInfo/DoctrineExtractor.php +++ /dev/null @@ -1,297 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\PropertyInfo; - -use Doctrine\Common\Collections\Collection; -use Doctrine\DBAL\Types\BigIntType; -use Doctrine\DBAL\Types\Types; -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\Mapping\AssociationMapping; -use Doctrine\ORM\Mapping\ClassMetadata; -use Doctrine\ORM\Mapping\EmbeddedClassMapping; -use Doctrine\ORM\Mapping\FieldMapping; -use Doctrine\ORM\Mapping\JoinColumnMapping; -use Doctrine\ORM\Mapping\MappingException as OrmMappingException; -use Doctrine\Persistence\Mapping\MappingException; -use Symfony\Component\PropertyInfo\PropertyAccessExtractorInterface; -use Symfony\Component\PropertyInfo\PropertyListExtractorInterface; -use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface; -use Symfony\Component\PropertyInfo\Type; - -/** - * Extracts data using Doctrine ORM and ODM metadata. - * - * @author Kévin Dunglas - */ -class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeExtractorInterface, PropertyAccessExtractorInterface -{ - public function __construct( - private readonly EntityManagerInterface $entityManager, - ) { - } - - public function getProperties(string $class, array $context = []): ?array - { - if (null === $metadata = $this->getMetadata($class)) { - return null; - } - - $properties = array_merge($metadata->getFieldNames(), $metadata->getAssociationNames()); - - if ($metadata instanceof ClassMetadata && $metadata->embeddedClasses) { - $properties = array_filter($properties, fn ($property) => !str_contains($property, '.')); - - $properties = array_merge($properties, array_keys($metadata->embeddedClasses)); - } - - return $properties; - } - - public function getTypes(string $class, string $property, array $context = []): ?array - { - if (null === $metadata = $this->getMetadata($class)) { - return null; - } - - if ($metadata->hasAssociation($property)) { - $class = $metadata->getAssociationTargetClass($property); - - if ($metadata->isSingleValuedAssociation($property)) { - if ($metadata instanceof ClassMetadata) { - $associationMapping = $metadata->getAssociationMapping($property); - - $nullable = $this->isAssociationNullable($associationMapping); - } else { - $nullable = false; - } - - return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, $class)]; - } - - $collectionKeyType = Type::BUILTIN_TYPE_INT; - - if ($metadata instanceof ClassMetadata) { - $associationMapping = $metadata->getAssociationMapping($property); - - if (self::getMappingValue($associationMapping, 'indexBy')) { - $subMetadata = $this->entityManager->getClassMetadata(self::getMappingValue($associationMapping, 'targetEntity')); - - // Check if indexBy value is a property - $fieldName = self::getMappingValue($associationMapping, 'indexBy'); - if (null === ($typeOfField = $subMetadata->getTypeOfField($fieldName))) { - $fieldName = $subMetadata->getFieldForColumn(self::getMappingValue($associationMapping, 'indexBy')); - // Not a property, maybe a column name? - if (null === ($typeOfField = $subMetadata->getTypeOfField($fieldName))) { - // Maybe the column name is the association join column? - $associationMapping = $subMetadata->getAssociationMapping($fieldName); - - $indexProperty = $subMetadata->getSingleAssociationReferencedJoinColumnName($fieldName); - $subMetadata = $this->entityManager->getClassMetadata(self::getMappingValue($associationMapping, 'targetEntity')); - - // Not a property, maybe a column name? - if (null === ($typeOfField = $subMetadata->getTypeOfField($indexProperty))) { - $fieldName = $subMetadata->getFieldForColumn($indexProperty); - $typeOfField = $subMetadata->getTypeOfField($fieldName); - } - } - } - - if (!$collectionKeyType = $this->getPhpType($typeOfField)) { - return null; - } - } - } - - return [new Type( - Type::BUILTIN_TYPE_OBJECT, - false, - Collection::class, - true, - new Type($collectionKeyType), - new Type(Type::BUILTIN_TYPE_OBJECT, false, $class) - )]; - } - - if ($metadata instanceof ClassMetadata && isset($metadata->embeddedClasses[$property])) { - return [new Type(Type::BUILTIN_TYPE_OBJECT, false, self::getMappingValue($metadata->embeddedClasses[$property], 'class'))]; - } - - if ($metadata->hasField($property)) { - $typeOfField = $metadata->getTypeOfField($property); - - if (!$builtinType = $this->getPhpType($typeOfField)) { - return null; - } - - $nullable = $metadata instanceof ClassMetadata && $metadata->isNullable($property); - - // DBAL 4 has a special fallback strategy for BINGINT (int -> string) - if (Types::BIGINT === $typeOfField && !method_exists(BigIntType::class, 'getName')) { - return [ - new Type(Type::BUILTIN_TYPE_INT, $nullable), - new Type(Type::BUILTIN_TYPE_STRING, $nullable), - ]; - } - - $enumType = null; - if (null !== $enumClass = self::getMappingValue($metadata->getFieldMapping($property), 'enumType') ?? null) { - $enumType = new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, $enumClass); - } - - switch ($builtinType) { - case Type::BUILTIN_TYPE_OBJECT: - switch ($typeOfField) { - case Types::DATE_MUTABLE: - case Types::DATETIME_MUTABLE: - case Types::DATETIMETZ_MUTABLE: - case 'vardatetime': - case Types::TIME_MUTABLE: - return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateTime')]; - - case Types::DATE_IMMUTABLE: - case Types::DATETIME_IMMUTABLE: - case Types::DATETIMETZ_IMMUTABLE: - case Types::TIME_IMMUTABLE: - return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateTimeImmutable')]; - - case Types::DATEINTERVAL: - return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateInterval')]; - } - - break; - case Type::BUILTIN_TYPE_ARRAY: - switch ($typeOfField) { - case 'array': // DBAL < 4 - case 'json_array': // DBAL < 3 - // return null if $enumType is set, because we can't determine if collectionKeyType is string or int - if ($enumType) { - return null; - } - - return [new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true)]; - - case Types::SIMPLE_ARRAY: - return [new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, new Type(Type::BUILTIN_TYPE_INT), $enumType ?? new Type(Type::BUILTIN_TYPE_STRING))]; - } - break; - case Type::BUILTIN_TYPE_INT: - case Type::BUILTIN_TYPE_STRING: - if ($enumType) { - return [$enumType]; - } - break; - } - - return [new Type($builtinType, $nullable)]; - } - - return null; - } - - public function isReadable(string $class, string $property, array $context = []): ?bool - { - return null; - } - - public function isWritable(string $class, string $property, array $context = []): ?bool - { - if ( - null === ($metadata = $this->getMetadata($class)) - || ClassMetadata::GENERATOR_TYPE_NONE === $metadata->generatorType - || !\in_array($property, $metadata->getIdentifierFieldNames(), true) - ) { - return null; - } - - return false; - } - - private function getMetadata(string $class): ?ClassMetadata - { - try { - return $this->entityManager->getClassMetadata($class); - } catch (MappingException|OrmMappingException) { - return null; - } - } - - /** - * Determines whether an association is nullable. - * - * @param array|AssociationMapping $associationMapping - * - * @see https://github.com/doctrine/doctrine2/blob/v2.5.4/lib/Doctrine/ORM/Tools/EntityGenerator.php#L1221-L1246 - */ - private function isAssociationNullable(array|AssociationMapping $associationMapping): bool - { - if (self::getMappingValue($associationMapping, 'id')) { - return false; - } - - if (!self::getMappingValue($associationMapping, 'joinColumns')) { - return true; - } - - $joinColumns = self::getMappingValue($associationMapping, 'joinColumns'); - foreach ($joinColumns as $joinColumn) { - if (false === self::getMappingValue($joinColumn, 'nullable')) { - return false; - } - } - - return true; - } - - /** - * Gets the corresponding built-in PHP type. - */ - private function getPhpType(string $doctrineType): ?string - { - return match ($doctrineType) { - Types::SMALLINT, - Types::INTEGER => Type::BUILTIN_TYPE_INT, - Types::FLOAT => Type::BUILTIN_TYPE_FLOAT, - Types::BIGINT, - Types::STRING, - Types::TEXT, - Types::GUID, - Types::DECIMAL => Type::BUILTIN_TYPE_STRING, - Types::BOOLEAN => Type::BUILTIN_TYPE_BOOL, - Types::BLOB, - Types::BINARY => Type::BUILTIN_TYPE_RESOURCE, - 'object', // DBAL < 4 - Types::DATE_MUTABLE, - Types::DATETIME_MUTABLE, - Types::DATETIMETZ_MUTABLE, - 'vardatetime', - Types::TIME_MUTABLE, - Types::DATE_IMMUTABLE, - Types::DATETIME_IMMUTABLE, - Types::DATETIMETZ_IMMUTABLE, - Types::TIME_IMMUTABLE, - Types::DATEINTERVAL => Type::BUILTIN_TYPE_OBJECT, - 'array', // DBAL < 4 - 'json_array', // DBAL < 3 - Types::SIMPLE_ARRAY => Type::BUILTIN_TYPE_ARRAY, - default => null, - }; - } - - private static function getMappingValue(array|AssociationMapping|EmbeddedClassMapping|FieldMapping|JoinColumnMapping $mapping, string $key): mixed - { - if ($mapping instanceof AssociationMapping || $mapping instanceof EmbeddedClassMapping || $mapping instanceof FieldMapping || $mapping instanceof JoinColumnMapping) { - return $mapping->$key ?? null; - } - - return $mapping[$key] ?? null; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/README.md b/projects/priceservice/vendor/symfony/doctrine-bridge/README.md deleted file mode 100644 index fb7b1cd..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Doctrine Bridge -=============== - -The Doctrine bridge provides integration for -[Doctrine](http://www.doctrine-project.org/) with various Symfony components. - -Resources ---------- - - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/AbstractSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/AbstractSchemaListener.php deleted file mode 100644 index 6856d17..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/AbstractSchemaListener.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\Exception\TableNotFoundException; -use Doctrine\DBAL\Schema\Table; -use Doctrine\DBAL\Types\Types; -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; - -abstract class AbstractSchemaListener -{ - abstract public function postGenerateSchema(GenerateSchemaEventArgs $event): void; - - protected function getIsSameDatabaseChecker(Connection $connection): \Closure - { - return static function (\Closure $exec) use ($connection): bool { - $schemaManager = method_exists($connection, 'createSchemaManager') ? $connection->createSchemaManager() : $connection->getSchemaManager(); - $checkTable = 'schema_subscriber_check_'.bin2hex(random_bytes(7)); - $table = new Table($checkTable); - $table->addColumn('id', Types::INTEGER) - ->setAutoincrement(true) - ->setNotnull(true); - $table->setPrimaryKey(['id']); - - $schemaManager->createTable($table); - - try { - $exec(sprintf('DROP TABLE %s', $checkTable)); - } catch (\Exception) { - // ignore - } - - try { - $schemaManager->dropTable($checkTable); - - return false; - } catch (TableNotFoundException) { - return true; - } - }; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php deleted file mode 100644 index ee2e427..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaListener.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; -use Symfony\Component\Cache\Adapter\DoctrineDbalAdapter; - -/** - * Automatically adds the cache table needed for the DoctrineDbalAdapter of - * the Cache component. - */ -class DoctrineDbalCacheAdapterSchemaListener extends AbstractSchemaListener -{ - /** - * @param iterable $dbalAdapters - */ - public function __construct( - private readonly iterable $dbalAdapters, - ) { - } - - public function postGenerateSchema(GenerateSchemaEventArgs $event): void - { - $connection = $event->getEntityManager()->getConnection(); - - foreach ($this->dbalAdapters as $dbalAdapter) { - $dbalAdapter->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection)); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriber.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriber.php deleted file mode 100644 index 9aa98eb..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriber.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\Common\EventSubscriber; -use Doctrine\ORM\Tools\ToolEvents; - -trigger_deprecation('symfony/doctrine-bridge', '6.3', 'The "%s" class is deprecated. Use "%s" instead.', DoctrineDbalCacheAdapterSchemaSubscriber::class, DoctrineDbalCacheAdapterSchemaListener::class); - -/** - * Automatically adds the cache table needed for the DoctrineDbalAdapter of - * the Cache component. - * - * @author Ryan Weaver - * - * @deprecated since Symfony 6.3, use {@link DoctrineDbalCacheAdapterSchemaListener} instead - */ -final class DoctrineDbalCacheAdapterSchemaSubscriber extends DoctrineDbalCacheAdapterSchemaListener implements EventSubscriber -{ - public function getSubscribedEvents(): array - { - if (!class_exists(ToolEvents::class)) { - return []; - } - - return [ - ToolEvents::postGenerateSchema, - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/LockStoreSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/LockStoreSchemaListener.php deleted file mode 100644 index c4c3b0b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/LockStoreSchemaListener.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; -use Symfony\Component\Lock\PersistingStoreInterface; -use Symfony\Component\Lock\Store\DoctrineDbalStore; - -final class LockStoreSchemaListener extends AbstractSchemaListener -{ - /** - * @param iterable $stores - */ - public function __construct( - private readonly iterable $stores, - ) { - } - - public function postGenerateSchema(GenerateSchemaEventArgs $event): void - { - $connection = $event->getEntityManager()->getConnection(); - - foreach ($this->stores as $store) { - if (!$store instanceof DoctrineDbalStore) { - continue; - } - - $store->configureSchema($event->getSchema(), $this->getIsSameDatabaseChecker($connection)); - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaListener.php deleted file mode 100644 index ce3f017..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaListener.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\DBAL\Event\SchemaCreateTableEventArgs; -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; -use Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransport; -use Symfony\Component\Messenger\Transport\TransportInterface; - -/** - * Automatically adds any required database tables to the Doctrine Schema. - */ -class MessengerTransportDoctrineSchemaListener extends AbstractSchemaListener -{ - private const PROCESSING_TABLE_FLAG = self::class.':processing'; - - /** - * @param iterable $transports - */ - public function __construct( - private readonly iterable $transports, - ) { - } - - public function postGenerateSchema(GenerateSchemaEventArgs $event): void - { - $connection = $event->getEntityManager()->getConnection(); - - foreach ($this->transports as $transport) { - if (!$transport instanceof DoctrineTransport) { - continue; - } - - $transport->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection)); - } - } - - public function onSchemaCreateTable(SchemaCreateTableEventArgs $event): void - { - $table = $event->getTable(); - - // if this method triggers a nested create table below, allow Doctrine to work like normal - if ($table->hasOption(self::PROCESSING_TABLE_FLAG)) { - return; - } - - foreach ($this->transports as $transport) { - if (!$transport instanceof DoctrineTransport) { - continue; - } - - if (!$extraSql = $transport->getExtraSetupSqlForTable($table)) { - continue; - } - - // avoid this same listener from creating a loop on this table - $table->addOption(self::PROCESSING_TABLE_FLAG, true); - $createTableSql = $event->getPlatform()->getCreateTableSQL($table); - - /* - * Add all the SQL needed to create the table and tell Doctrine - * to "preventDefault" so that only our SQL is used. This is - * the only way to inject some extra SQL. - */ - $event->addSql($createTableSql); - foreach ($extraSql as $sql) { - $event->addSql($sql); - } - $event->preventDefault(); - - return; - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaSubscriber.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaSubscriber.php deleted file mode 100644 index 10b2372..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/MessengerTransportDoctrineSchemaSubscriber.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\Common\EventSubscriber; -use Doctrine\DBAL\Events; -use Doctrine\ORM\Tools\ToolEvents; - -trigger_deprecation('symfony/doctrine-bridge', '6.3', 'The "%s" class is deprecated. Use "%s" instead.', MessengerTransportDoctrineSchemaSubscriber::class, MessengerTransportDoctrineSchemaListener::class); - -/** - * Automatically adds any required database tables to the Doctrine Schema. - * - * @author Ryan Weaver - * - * @deprecated since Symfony 6.3, use {@link MessengerTransportDoctrineSchemaListener} instead - */ -final class MessengerTransportDoctrineSchemaSubscriber extends MessengerTransportDoctrineSchemaListener implements EventSubscriber -{ - public function getSubscribedEvents(): array - { - $subscribedEvents = []; - - if (class_exists(ToolEvents::class)) { - $subscribedEvents[] = ToolEvents::postGenerateSchema; - } - - if (class_exists(Events::class)) { - $subscribedEvents[] = Events::onSchemaCreateTable; - } - - return $subscribedEvents; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/PdoSessionHandlerSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/PdoSessionHandlerSchemaListener.php deleted file mode 100644 index 5035743..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/PdoSessionHandlerSchemaListener.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; -use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler; - -final class PdoSessionHandlerSchemaListener extends AbstractSchemaListener -{ - private PdoSessionHandler $sessionHandler; - - public function __construct(\SessionHandlerInterface $sessionHandler) - { - if ($sessionHandler instanceof PdoSessionHandler) { - $this->sessionHandler = $sessionHandler; - } - } - - public function postGenerateSchema(GenerateSchemaEventArgs $event): void - { - if (!isset($this->sessionHandler)) { - return; - } - - $connection = $event->getEntityManager()->getConnection(); - - $this->sessionHandler->configureSchema($event->getSchema(), $this->getIsSameDatabaseChecker($connection)); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php deleted file mode 100644 index 60027e9..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaListener.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs; -use Symfony\Bridge\Doctrine\Security\RememberMe\DoctrineTokenProvider; -use Symfony\Component\Security\Http\RememberMe\PersistentRememberMeHandler; -use Symfony\Component\Security\Http\RememberMe\RememberMeHandlerInterface; - -/** - * Automatically adds the rememberme table needed for the {@see DoctrineTokenProvider}. - */ -class RememberMeTokenProviderDoctrineSchemaListener extends AbstractSchemaListener -{ - /** - * @param iterable $rememberMeHandlers - */ - public function __construct( - private readonly iterable $rememberMeHandlers, - ) { - } - - public function postGenerateSchema(GenerateSchemaEventArgs $event): void - { - $connection = $event->getEntityManager()->getConnection(); - - foreach ($this->rememberMeHandlers as $rememberMeHandler) { - if ( - $rememberMeHandler instanceof PersistentRememberMeHandler - && ($tokenProvider = $rememberMeHandler->getTokenProvider()) instanceof DoctrineTokenProvider - ) { - $tokenProvider->configureSchema($event->getSchema(), $connection, $this->getIsSameDatabaseChecker($connection)); - } - } - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaSubscriber.php b/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaSubscriber.php deleted file mode 100644 index 82a5a78..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/SchemaListener/RememberMeTokenProviderDoctrineSchemaSubscriber.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\SchemaListener; - -use Doctrine\Common\EventSubscriber; -use Doctrine\ORM\Tools\ToolEvents; -use Symfony\Bridge\Doctrine\Security\RememberMe\DoctrineTokenProvider; - -trigger_deprecation('symfony/doctrine-bridge', '6.3', 'The "%s" class is deprecated. Use "%s" instead.', RememberMeTokenProviderDoctrineSchemaSubscriber::class, RememberMeTokenProviderDoctrineSchemaListener::class); - -/** - * Automatically adds the rememberme table needed for the {@see DoctrineTokenProvider}. - * - * @author Wouter de Jong - * - * @deprecated since Symfony 6.3, use {@link RememberMeTokenProviderDoctrineSchemaListener} instead - */ -final class RememberMeTokenProviderDoctrineSchemaSubscriber extends RememberMeTokenProviderDoctrineSchemaListener implements EventSubscriber -{ - public function getSubscribedEvents(): array - { - if (!class_exists(ToolEvents::class)) { - return []; - } - - return [ - ToolEvents::postGenerateSchema, - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/RememberMe/DoctrineTokenProvider.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Security/RememberMe/DoctrineTokenProvider.php deleted file mode 100644 index 24f56ca..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/RememberMe/DoctrineTokenProvider.php +++ /dev/null @@ -1,216 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Security\RememberMe; - -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\Driver\Result as DriverResult; -use Doctrine\DBAL\ParameterType; -use Doctrine\DBAL\Result; -use Doctrine\DBAL\Schema\Schema; -use Doctrine\DBAL\Types\Types; -use Symfony\Component\Security\Core\Authentication\RememberMe\PersistentToken; -use Symfony\Component\Security\Core\Authentication\RememberMe\PersistentTokenInterface; -use Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface; -use Symfony\Component\Security\Core\Authentication\RememberMe\TokenVerifierInterface; -use Symfony\Component\Security\Core\Exception\TokenNotFoundException; - -/** - * This class provides storage for the tokens that is set in "remember-me" - * cookies. This way no password secrets will be stored in the cookies on - * the client machine, and thus the security is improved. - * - * This depends only on doctrine in order to get a database connection - * and to do the conversion of the datetime column. - * - * In order to use this class, you need the following table in your database: - * - * CREATE TABLE `rememberme_token` ( - * `series` char(88) UNIQUE PRIMARY KEY NOT NULL, - * `value` char(88) NOT NULL, - * `lastUsed` datetime NOT NULL, - * `class` varchar(100) NOT NULL, - * `username` varchar(200) NOT NULL - * ); - * - * @final since Symfony 6.4 - */ -class DoctrineTokenProvider implements TokenProviderInterface, TokenVerifierInterface -{ - public function __construct( - private readonly Connection $conn, - ) { - } - - public function loadTokenBySeries(string $series): PersistentTokenInterface - { - $sql = 'SELECT class, username, value, lastUsed FROM rememberme_token WHERE series=:series'; - $paramValues = ['series' => $series]; - $paramTypes = ['series' => ParameterType::STRING]; - $stmt = $this->conn->executeQuery($sql, $paramValues, $paramTypes); - - // fetching numeric because column name casing depends on platform, eg. Oracle converts all not quoted names to uppercase - $row = $stmt instanceof Result || $stmt instanceof DriverResult ? $stmt->fetchNumeric() : $stmt->fetch(\PDO::FETCH_NUM); - - if ($row) { - [$class, $username, $value, $last_used] = $row; - return new PersistentToken($class, $username, $series, $value, new \DateTimeImmutable($last_used)); - } - - throw new TokenNotFoundException('No token found.'); - } - - /** - * @return void - */ - public function deleteTokenBySeries(string $series) - { - $sql = 'DELETE FROM rememberme_token WHERE series=:series'; - $paramValues = ['series' => $series]; - $paramTypes = ['series' => ParameterType::STRING]; - $this->conn->executeStatement($sql, $paramValues, $paramTypes); - } - - public function updateToken(string $series, #[\SensitiveParameter] string $tokenValue, \DateTimeInterface $lastUsed): void - { - $sql = 'UPDATE rememberme_token SET value=:value, lastUsed=:lastUsed WHERE series=:series'; - $paramValues = [ - 'value' => $tokenValue, - 'lastUsed' => \DateTimeImmutable::createFromInterface($lastUsed), - 'series' => $series, - ]; - $paramTypes = [ - 'value' => ParameterType::STRING, - 'lastUsed' => Types::DATETIME_IMMUTABLE, - 'series' => ParameterType::STRING, - ]; - $updated = $this->conn->executeStatement($sql, $paramValues, $paramTypes); - if ($updated < 1) { - throw new TokenNotFoundException('No token found.'); - } - } - - /** - * @return void - */ - public function createNewToken(PersistentTokenInterface $token) - { - $sql = 'INSERT INTO rememberme_token (class, username, series, value, lastUsed) VALUES (:class, :username, :series, :value, :lastUsed)'; - $paramValues = [ - 'class' => $token->getClass(), - 'username' => $token->getUserIdentifier(), - 'series' => $token->getSeries(), - 'value' => $token->getTokenValue(), - 'lastUsed' => \DateTimeImmutable::createFromInterface($token->getLastUsed()), - ]; - $paramTypes = [ - 'class' => ParameterType::STRING, - 'username' => ParameterType::STRING, - 'series' => ParameterType::STRING, - 'value' => ParameterType::STRING, - 'lastUsed' => Types::DATETIME_IMMUTABLE, - ]; - $this->conn->executeStatement($sql, $paramValues, $paramTypes); - } - - public function verifyToken(PersistentTokenInterface $token, #[\SensitiveParameter] string $tokenValue): bool - { - // Check if the token value matches the current persisted token - if (hash_equals($token->getTokenValue(), $tokenValue)) { - return true; - } - - // Generate an alternative series id here by changing the suffix == to _ - // this is needed to be able to store an older token value in the database - // which has a PRIMARY(series), and it works as long as series ids are - // generated using base64_encode(random_bytes(64)) which always outputs - // a == suffix, but if it should not work for some reason we abort - // for safety - $tmpSeries = preg_replace('{=+$}', '_', $token->getSeries()); - if ($tmpSeries === $token->getSeries()) { - return false; - } - - // Check if the previous token is present. If the given $tokenValue - // matches the previous token (and it is outdated by at most 60seconds) - // we also accept it as a valid value. - try { - $tmpToken = $this->loadTokenBySeries($tmpSeries); - } catch (TokenNotFoundException) { - return false; - } - - if ($tmpToken->getLastUsed()->getTimestamp() + 60 < time()) { - return false; - } - - return hash_equals($tmpToken->getTokenValue(), $tokenValue); - } - - public function updateExistingToken(PersistentTokenInterface $token, #[\SensitiveParameter] string $tokenValue, \DateTimeInterface $lastUsed): void - { - if (!$token instanceof PersistentToken) { - return; - } - - // Persist a copy of the previous token for authentication - // in verifyToken should the old token still be sent by the browser - // in a request concurrent to the one that did this token update - $tmpSeries = preg_replace('{=+$}', '_', $token->getSeries()); - // if we cannot generate a unique series it is not worth trying further - if ($tmpSeries === $token->getSeries()) { - return; - } - - $this->conn->beginTransaction(); - try { - $this->deleteTokenBySeries($tmpSeries); - $lastUsed = \DateTime::createFromInterface($lastUsed); - $this->createNewToken(new PersistentToken($token->getClass(), $token->getUserIdentifier(), $tmpSeries, $token->getTokenValue(), $lastUsed)); - - $this->conn->commit(); - } catch (\Exception $e) { - $this->conn->rollBack(); - throw $e; - } - } - - /** - * Adds the Table to the Schema if "remember me" uses this Connection. - * - * @param \Closure $isSameDatabase - */ - public function configureSchema(Schema $schema, Connection $forConnection/* , \Closure $isSameDatabase */): void - { - if ($schema->hasTable('rememberme_token')) { - return; - } - - $isSameDatabase = 2 < \func_num_args() ? func_get_arg(2) : static fn () => false; - - if ($forConnection !== $this->conn && !$isSameDatabase($this->conn->executeStatement(...))) { - return; - } - - $this->addTableToSchema($schema); - } - - private function addTableToSchema(Schema $schema): void - { - $table = $schema->createTable('rememberme_token'); - $table->addColumn('series', Types::STRING, ['length' => 88]); - $table->addColumn('value', Types::STRING, ['length' => 88]); - $table->addColumn('lastUsed', Types::DATETIME_IMMUTABLE); - $table->addColumn('class', Types::STRING, ['length' => 100]); - $table->addColumn('username', Types::STRING, ['length' => 200]); - $table->setPrimaryKey(['series']); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/EntityUserProvider.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/EntityUserProvider.php deleted file mode 100644 index a4f285a..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/EntityUserProvider.php +++ /dev/null @@ -1,160 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Security\User; - -use Doctrine\Persistence\ManagerRegistry; -use Doctrine\Persistence\Mapping\ClassMetadata; -use Doctrine\Persistence\ObjectManager; -use Doctrine\Persistence\ObjectRepository; -use Doctrine\Persistence\Proxy; -use Symfony\Component\Security\Core\Exception\UnsupportedUserException; -use Symfony\Component\Security\Core\Exception\UserNotFoundException; -use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; -use Symfony\Component\Security\Core\User\PasswordUpgraderInterface; -use Symfony\Component\Security\Core\User\UserInterface; -use Symfony\Component\Security\Core\User\UserProviderInterface; - -/** - * Wrapper around a Doctrine ObjectManager. - * - * Provides provisioning for Doctrine entity users. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - * - * @template TUser of UserInterface - * - * @template-implements UserProviderInterface - */ -class EntityUserProvider implements UserProviderInterface, PasswordUpgraderInterface -{ - private string $class; - - public function __construct( - private readonly ManagerRegistry $registry, - private readonly string $classOrAlias, - private readonly ?string $property = null, - private readonly ?string $managerName = null, - ) { - } - - public function loadUserByIdentifier(string $identifier): UserInterface - { - $repository = $this->getRepository(); - if (null !== $this->property) { - $user = $repository->findOneBy([$this->property => $identifier]); - } else { - if (!$repository instanceof UserLoaderInterface) { - throw new \InvalidArgumentException(sprintf('You must either make the "%s" entity Doctrine Repository ("%s") implement "Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface" or set the "property" option in the corresponding entity provider configuration.', $this->classOrAlias, get_debug_type($repository))); - } - - $user = $repository->loadUserByIdentifier($identifier); - } - - if (null === $user) { - $e = new UserNotFoundException(sprintf('User "%s" not found.', $identifier)); - $e->setUserIdentifier($identifier); - - throw $e; - } - - return $user; - } - - public function refreshUser(UserInterface $user): UserInterface - { - $class = $this->getClass(); - if (!$user instanceof $class) { - throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user))); - } - - $repository = $this->getRepository(); - if ($repository instanceof UserProviderInterface) { - $refreshedUser = $repository->refreshUser($user); - } else { - // The user must be reloaded via the primary key as all other data - // might have changed without proper persistence in the database. - // That's the case when the user has been changed by a form with - // validation errors. - if (!$id = $this->getClassMetadata()->getIdentifierValues($user)) { - throw new \InvalidArgumentException('You cannot refresh a user from the EntityUserProvider that does not contain an identifier. The user object has to be serialized with its own identifier mapped by Doctrine.'); - } - - $refreshedUser = $repository->find($id); - if (null === $refreshedUser) { - $e = new UserNotFoundException('User with id '.json_encode($id).' not found.'); - $e->setUserIdentifier(json_encode($id)); - - throw $e; - } - } - - if ($refreshedUser instanceof Proxy && !$refreshedUser->__isInitialized()) { - $refreshedUser->__load(); - } elseif (\PHP_VERSION_ID >= 80400 && ($r = new \ReflectionClass($refreshedUser))->isUninitializedLazyObject($refreshedUser)) { - $r->initializeLazyObject($refreshedUser); - } - - return $refreshedUser; - } - - public function supportsClass(string $class): bool - { - return $class === $this->getClass() || is_subclass_of($class, $this->getClass()); - } - - /** - * @final - */ - public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void - { - $class = $this->getClass(); - if (!$user instanceof $class) { - throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', get_debug_type($user))); - } - - $repository = $this->getRepository(); - if ($user instanceof PasswordAuthenticatedUserInterface && $repository instanceof PasswordUpgraderInterface) { - $repository->upgradePassword($user, $newHashedPassword); - } - } - - private function getObjectManager(): ObjectManager - { - return $this->registry->getManager($this->managerName); - } - - private function getRepository(): ObjectRepository - { - return $this->getObjectManager()->getRepository($this->classOrAlias); - } - - private function getClass(): string - { - if (!isset($this->class)) { - $class = $this->classOrAlias; - - if (str_contains($class, ':')) { - $class = $this->getClassMetadata()->getName(); - } - - $this->class = $class; - } - - return $this->class; - } - - private function getClassMetadata(): ClassMetadata - { - return $this->getObjectManager()->getClassMetadata($this->classOrAlias); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/UserLoaderInterface.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/UserLoaderInterface.php deleted file mode 100644 index e22e0bf..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Security/User/UserLoaderInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Security\User; - -use Symfony\Component\Security\Core\User\UserInterface; - -/** - * Represents a class that loads UserInterface objects from Doctrine source for the authentication system. - * - * This interface is meant to facilitate the loading of a User from Doctrine source using a custom method. - * If you want to implement your own logic of retrieving the user from Doctrine your repository should implement this - * interface. - * - * @see UserInterface - * - * @author Michal Trojanowski - */ -interface UserLoaderInterface -{ - /** - * Loads the user for the given user identifier (e.g. username or email). - * - * This method must return null if the user is not found. - */ - public function loadUserByIdentifier(string $identifier): ?UserInterface; -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/AbstractUidType.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Types/AbstractUidType.php deleted file mode 100644 index 8efc4df..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/AbstractUidType.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Types; - -use Doctrine\DBAL\Platforms\AbstractPlatform; -use Doctrine\DBAL\Types\ConversionException; -use Doctrine\DBAL\Types\Exception\InvalidType; -use Doctrine\DBAL\Types\Exception\ValueNotConvertible; -use Doctrine\DBAL\Types\Type; -use Symfony\Component\Uid\AbstractUid; - -abstract class AbstractUidType extends Type -{ - /** - * @return class-string - */ - abstract protected function getUidClass(): string; - - public function getSQLDeclaration(array $column, AbstractPlatform $platform): string - { - if ($this->hasNativeGuidType($platform)) { - return $platform->getGuidTypeDeclarationSQL($column); - } - - return $platform->getBinaryTypeDeclarationSQL([ - 'length' => 16, - 'fixed' => true, - ]); - } - - /** - * @throws ConversionException - */ - public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?AbstractUid - { - if ($value instanceof AbstractUid || null === $value) { - return $value; - } - - if (!\is_string($value)) { - $this->throwInvalidType($value); - } - - try { - return $this->getUidClass()::fromString($value); - } catch (\InvalidArgumentException $e) { - $this->throwValueNotConvertible($value, $e); - } - } - - /** - * @throws ConversionException - */ - public function convertToDatabaseValue($value, AbstractPlatform $platform): ?string - { - $toString = $this->hasNativeGuidType($platform) ? 'toRfc4122' : 'toBinary'; - - if ($value instanceof AbstractUid) { - return $value->$toString(); - } - - if (null === $value || '' === $value) { - return null; - } - - if (!\is_string($value)) { - $this->throwInvalidType($value); - } - - try { - return $this->getUidClass()::fromString($value)->$toString(); - } catch (\InvalidArgumentException $e) { - $this->throwValueNotConvertible($value, $e); - } - } - - public function requiresSQLCommentHint(AbstractPlatform $platform): bool - { - return true; - } - - private function hasNativeGuidType(AbstractPlatform $platform): bool - { - // Compatibility with DBAL < 3.4 - $method = method_exists($platform, 'getStringTypeDeclarationSQL') - ? 'getStringTypeDeclarationSQL' - : 'getVarcharTypeDeclarationSQL'; - - return $platform->getGuidTypeDeclarationSQL([]) !== $platform->$method(['fixed' => true, 'length' => 36]); - } - - private function throwInvalidType(mixed $value): never - { - if (!class_exists(InvalidType::class)) { - throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'string', AbstractUid::class]); - } - - throw InvalidType::new($value, $this->getName(), ['null', 'string', AbstractUid::class]); - } - - private function throwValueNotConvertible(mixed $value, \Throwable $previous): never - { - if (!class_exists(ValueNotConvertible::class)) { - throw ConversionException::conversionFailed($value, $this->getName(), $previous); - } - - throw ValueNotConvertible::new($value, $this->getName(), null, $previous); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UlidType.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UlidType.php deleted file mode 100644 index c7c5d6c..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UlidType.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Types; - -use Symfony\Component\Uid\Ulid; - -final class UlidType extends AbstractUidType -{ - public const NAME = 'ulid'; - - public function getName(): string - { - return self::NAME; - } - - protected function getUidClass(): string - { - return Ulid::class; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UuidType.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UuidType.php deleted file mode 100644 index a7a0c2b..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Types/UuidType.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Types; - -use Symfony\Component\Uid\Uuid; - -final class UuidType extends AbstractUidType -{ - public const NAME = 'uuid'; - - public function getName(): string - { - return self::NAME; - } - - protected function getUidClass(): string - { - return Uuid::class; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntity.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntity.php deleted file mode 100644 index 91574a0..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntity.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Validator\Constraints; - -use Symfony\Component\Validator\Constraint; - -/** - * Constraint for the Unique Entity validator. - * - * @Annotation - * @Target({"CLASS", "ANNOTATION"}) - * - * @author Benjamin Eberlei - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -class UniqueEntity extends Constraint -{ - public const NOT_UNIQUE_ERROR = '23bd9dbf-6b9b-41cd-a99e-4844bcf3077f'; - - protected const ERROR_NAMES = [ - self::NOT_UNIQUE_ERROR => 'NOT_UNIQUE_ERROR', - ]; - - public $message = 'This value is already used.'; - public $service = 'doctrine.orm.validator.unique'; - public $em; - public $entityClass; - public $repositoryMethod = 'findBy'; - public $fields = []; - public $errorPath; - public $ignoreNull = true; - - /** - * @deprecated since Symfony 6.1, use const ERROR_NAMES instead - */ - protected static $errorNames = self::ERROR_NAMES; - - /** - * @param array|string $fields The combination of fields that must contain unique values or a set of options - * @param bool|array|string $ignoreNull The combination of fields that ignore null values - */ - public function __construct( - $fields, - ?string $message = null, - ?string $service = null, - ?string $em = null, - ?string $entityClass = null, - ?string $repositoryMethod = null, - ?string $errorPath = null, - bool|string|array|null $ignoreNull = null, - ?array $groups = null, - $payload = null, - array $options = [] - ) { - if (\is_array($fields) && \is_string(key($fields))) { - $options = array_merge($fields, $options); - } elseif (null !== $fields) { - $options['fields'] = $fields; - } - - parent::__construct($options, $groups, $payload); - - $this->message = $message ?? $this->message; - $this->service = $service ?? $this->service; - $this->em = $em ?? $this->em; - $this->entityClass = $entityClass ?? $this->entityClass; - $this->repositoryMethod = $repositoryMethod ?? $this->repositoryMethod; - $this->errorPath = $errorPath ?? $this->errorPath; - $this->ignoreNull = $ignoreNull ?? $this->ignoreNull; - } - - public function getRequiredOptions(): array - { - return ['fields']; - } - - /** - * The validator must be defined as a service with this name. - */ - public function validatedBy(): string - { - return $this->service; - } - - public function getTargets(): string|array - { - return self::CLASS_CONSTRAINT; - } - - public function getDefaultOption(): ?string - { - return 'fields'; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntityValidator.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntityValidator.php deleted file mode 100644 index 8089f82..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/Constraints/UniqueEntityValidator.php +++ /dev/null @@ -1,247 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Validator\Constraints; - -use Doctrine\ORM\Mapping\ClassMetadata as OrmClassMetadata; -use Doctrine\Persistence\ManagerRegistry; -use Doctrine\Persistence\Mapping\ClassMetadata; -use Doctrine\Persistence\ObjectManager; -use Symfony\Component\Validator\Constraint; -use Symfony\Component\Validator\ConstraintValidator; -use Symfony\Component\Validator\Exception\ConstraintDefinitionException; -use Symfony\Component\Validator\Exception\UnexpectedTypeException; -use Symfony\Component\Validator\Exception\UnexpectedValueException; - -/** - * Unique Entity Validator checks if one or a set of fields contain unique values. - * - * @author Benjamin Eberlei - */ -class UniqueEntityValidator extends ConstraintValidator -{ - public function __construct( - private readonly ManagerRegistry $registry, - ) { - } - - /** - * @param object $entity - * - * @return void - * - * @throws UnexpectedTypeException - * @throws ConstraintDefinitionException - */ - public function validate(mixed $entity, Constraint $constraint) - { - if (!$constraint instanceof UniqueEntity) { - throw new UnexpectedTypeException($constraint, UniqueEntity::class); - } - - if (!\is_array($constraint->fields) && !\is_string($constraint->fields)) { - throw new UnexpectedTypeException($constraint->fields, 'array'); - } - - if (null !== $constraint->errorPath && !\is_string($constraint->errorPath)) { - throw new UnexpectedTypeException($constraint->errorPath, 'string or null'); - } - - $fields = (array) $constraint->fields; - - if (0 === \count($fields)) { - throw new ConstraintDefinitionException('At least one field has to be specified.'); - } - - if (null === $entity) { - return; - } - - if (!\is_object($entity)) { - throw new UnexpectedValueException($entity, 'object'); - } - - if ($constraint->em) { - try { - $em = $this->registry->getManager($constraint->em); - } catch (\InvalidArgumentException $e) { - throw new ConstraintDefinitionException(sprintf('Object manager "%s" does not exist.', $constraint->em), 0, $e); - } - } else { - $em = $this->registry->getManagerForClass($entity::class); - - if (!$em) { - throw new ConstraintDefinitionException(sprintf('Unable to find the object manager associated with an entity of class "%s".', get_debug_type($entity))); - } - } - - $class = $em->getClassMetadata($entity::class); - - $criteria = []; - $hasIgnorableNullValue = false; - - foreach ($fields as $fieldName) { - if (!$class->hasField($fieldName) && !$class->hasAssociation($fieldName)) { - throw new ConstraintDefinitionException(sprintf('The field "%s" is not mapped by Doctrine, so it cannot be validated for uniqueness.', $fieldName)); - } - - if (property_exists(OrmClassMetadata::class, 'propertyAccessors')) { - $fieldValue = $class->propertyAccessors[$fieldName]->getValue($entity); - } else { - $fieldValue = $class->reflFields[$fieldName]->getValue($entity); - } - - if (null === $fieldValue && $this->ignoreNullForField($constraint, $fieldName)) { - $hasIgnorableNullValue = true; - - continue; - } - - $criteria[$fieldName] = $fieldValue; - - if (\is_object($criteria[$fieldName]) && $class->hasAssociation($fieldName)) { - /* Ensure the Proxy is initialized before using reflection to - * read its identifiers. This is necessary because the wrapped - * getter methods in the Proxy are being bypassed. - */ - $em->initializeObject($criteria[$fieldName]); - } - } - - // validation doesn't fail if one of the fields is null and if null values should be ignored - if ($hasIgnorableNullValue) { - return; - } - - // skip validation if there are no criteria (this can happen when the - // "ignoreNull" option is enabled and fields to be checked are null - if (empty($criteria)) { - return; - } - - if (null !== $constraint->entityClass) { - /* Retrieve repository from given entity name. - * We ensure the retrieved repository can handle the entity - * by checking the entity is the same, or subclass of the supported entity. - */ - $repository = $em->getRepository($constraint->entityClass); - $supportedClass = $repository->getClassName(); - - if (!$entity instanceof $supportedClass) { - throw new ConstraintDefinitionException(sprintf('The "%s" entity repository does not support the "%s" entity. The entity should be an instance of or extend "%s".', $constraint->entityClass, $class->getName(), $supportedClass)); - } - } else { - $repository = $em->getRepository($entity::class); - } - - $arguments = [$criteria]; - - /* If the default repository method is used, it is always enough to retrieve at most two entities because: - * - No entity returned, the current entity is definitely unique. - * - More than one entity returned, the current entity cannot be unique. - * - One entity returned the uniqueness depends on the current entity. - */ - if ('findBy' === $constraint->repositoryMethod) { - $arguments = [$criteria, null, 2]; - } - - $result = $repository->{$constraint->repositoryMethod}(...$arguments); - - if ($result instanceof \IteratorAggregate) { - $result = $result->getIterator(); - } - - /* If the result is a MongoCursor, it must be advanced to the first - * element. Rewinding should have no ill effect if $result is another - * iterator implementation. - */ - if ($result instanceof \Iterator) { - $result->rewind(); - if ($result instanceof \Countable && 1 < \count($result)) { - $result = [$result->current(), $result->current()]; - } else { - $result = $result->valid() && null !== $result->current() ? [$result->current()] : []; - } - } elseif (\is_array($result)) { - reset($result); - } else { - $result = null === $result ? [] : [$result]; - } - - /* If no entity matched the query criteria or a single entity matched, - * which is the same as the entity being validated, the criteria is - * unique. - */ - if (!$result || (1 === \count($result) && current($result) === $entity)) { - return; - } - - $errorPath = $constraint->errorPath ?? $fields[0]; - $invalidValue = $criteria[$errorPath] ?? $criteria[$fields[0]]; - - $this->context->buildViolation($constraint->message) - ->atPath($errorPath) - ->setParameter('{{ value }}', $this->formatWithIdentifiers($em, $class, $invalidValue)) - ->setInvalidValue($invalidValue) - ->setCode(UniqueEntity::NOT_UNIQUE_ERROR) - ->setCause($result) - ->addViolation(); - } - - private function ignoreNullForField(UniqueEntity $constraint, string $fieldName): bool - { - if (\is_bool($constraint->ignoreNull)) { - return $constraint->ignoreNull; - } - - return \in_array($fieldName, (array) $constraint->ignoreNull, true); - } - - private function formatWithIdentifiers(ObjectManager $em, ClassMetadata $class, mixed $value): string - { - if (!\is_object($value) || $value instanceof \DateTimeInterface) { - return $this->formatValue($value, self::PRETTY_DATE); - } - - if ($value instanceof \Stringable) { - return (string) $value; - } - - if ($class->getName() !== $idClass = $value::class) { - // non unique value might be a composite PK that consists of other entity objects - if ($em->getMetadataFactory()->hasMetadataFor($idClass)) { - $identifiers = $em->getClassMetadata($idClass)->getIdentifierValues($value); - } else { - // this case might happen if the non unique column has a custom doctrine type and its value is an object - // in which case we cannot get any identifiers for it - $identifiers = []; - } - } else { - $identifiers = $class->getIdentifierValues($value); - } - - if (!$identifiers) { - return sprintf('object("%s")', $idClass); - } - - array_walk($identifiers, function (&$id, $field) { - if (!\is_object($id) || $id instanceof \DateTimeInterface) { - $idAsString = $this->formatValue($id, self::PRETTY_DATE); - } else { - $idAsString = sprintf('object("%s")', $id::class); - } - - $id = sprintf('%s => %s', $field, $idAsString); - }); - - return sprintf('object("%s") identified by (%s)', $idClass, implode(', ', $identifiers)); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineInitializer.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineInitializer.php deleted file mode 100644 index bf8a5fe..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineInitializer.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Validator; - -use Doctrine\Persistence\ManagerRegistry; -use Symfony\Component\Validator\ObjectInitializerInterface; - -/** - * Automatically loads proxy object before validation. - * - * @author Fabien Potencier - */ -class DoctrineInitializer implements ObjectInitializerInterface -{ - protected $registry; - - public function __construct(ManagerRegistry $registry) - { - $this->registry = $registry; - } - - /** - * @return void - */ - public function initialize(object $object) - { - $this->registry->getManagerForClass($object::class)?->initializeObject($object); - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php b/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php deleted file mode 100644 index 15916dc..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Validator; - -use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\Mapping\ClassMetadata as OrmClassMetadata; -use Doctrine\ORM\Mapping\FieldMapping; -use Doctrine\ORM\Mapping\MappingException as OrmMappingException; -use Doctrine\Persistence\Mapping\MappingException; -use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; -use Symfony\Component\PropertyInfo\Type; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\Valid; -use Symfony\Component\Validator\Mapping\AutoMappingStrategy; -use Symfony\Component\Validator\Mapping\ClassMetadata; -use Symfony\Component\Validator\Mapping\Loader\AutoMappingTrait; -use Symfony\Component\Validator\Mapping\Loader\LoaderInterface; - -/** - * Guesses and loads the appropriate constraints using Doctrine's metadata. - * - * @author Kévin Dunglas - */ -final class DoctrineLoader implements LoaderInterface -{ - use AutoMappingTrait; - - public function __construct( - private readonly EntityManagerInterface $entityManager, - private readonly ?string $classValidatorRegexp = null, - ) { - } - - public function loadClassMetadata(ClassMetadata $metadata): bool - { - $className = $metadata->getClassName(); - try { - $doctrineMetadata = $this->entityManager->getClassMetadata($className); - } catch (MappingException|OrmMappingException) { - return false; - } - - if (!$doctrineMetadata instanceof OrmClassMetadata) { - return false; - } - - $loaded = false; - $enabledForClass = $this->isAutoMappingEnabledForClass($metadata, $this->classValidatorRegexp); - - /* Available keys: - - type - - scale - - length - - unique - - nullable - - precision - */ - $existingUniqueFields = $this->getExistingUniqueFields($metadata); - - // Type and nullable aren't handled here, use the PropertyInfo Loader instead. - foreach ($doctrineMetadata->fieldMappings as $mapping) { - $enabledForProperty = $enabledForClass; - $lengthConstraint = null; - foreach ($metadata->getPropertyMetadata(self::getFieldMappingValue($mapping, 'fieldName')) as $propertyMetadata) { - // Enabling or disabling auto-mapping explicitly always takes precedence - if (AutoMappingStrategy::DISABLED === $propertyMetadata->getAutoMappingStrategy()) { - continue 2; - } - if (AutoMappingStrategy::ENABLED === $propertyMetadata->getAutoMappingStrategy()) { - $enabledForProperty = true; - } - - foreach ($propertyMetadata->getConstraints() as $constraint) { - if ($constraint instanceof Length) { - $lengthConstraint = $constraint; - } - } - } - - if (!$enabledForProperty) { - continue; - } - - if (true === (self::getFieldMappingValue($mapping, 'unique') ?? false) && !isset($existingUniqueFields[self::getFieldMappingValue($mapping, 'fieldName')])) { - $metadata->addConstraint(new UniqueEntity(['fields' => self::getFieldMappingValue($mapping, 'fieldName')])); - $loaded = true; - } - - if (null === (self::getFieldMappingValue($mapping, 'length') ?? null) || null !== (self::getFieldMappingValue($mapping, 'enumType') ?? null) || !\in_array(self::getFieldMappingValue($mapping, 'type'), ['string', 'text'], true)) { - continue; - } - - if (null === $lengthConstraint) { - if (self::getFieldMappingValue($mapping, 'originalClass') && !str_contains(self::getFieldMappingValue($mapping, 'declaredField'), '.')) { - $metadata->addPropertyConstraint(self::getFieldMappingValue($mapping, 'declaredField'), new Valid()); - $loaded = true; - } elseif (property_exists($className, self::getFieldMappingValue($mapping, 'fieldName')) && (!$doctrineMetadata->isMappedSuperclass || $metadata->getReflectionClass()->getProperty(self::getFieldMappingValue($mapping, 'fieldName'))->isPrivate())) { - $metadata->addPropertyConstraint(self::getFieldMappingValue($mapping, 'fieldName'), new Length(['max' => self::getFieldMappingValue($mapping, 'length')])); - $loaded = true; - } - } elseif (null === $lengthConstraint->max) { - // If a Length constraint exists and no max length has been explicitly defined, set it - $lengthConstraint->max = self::getFieldMappingValue($mapping, 'length'); - } - } - - return $loaded; - } - - private function getExistingUniqueFields(ClassMetadata $metadata): array - { - $fields = []; - foreach ($metadata->getConstraints() as $constraint) { - if (!$constraint instanceof UniqueEntity) { - continue; - } - - if (\is_string($constraint->fields)) { - $fields[$constraint->fields] = true; - } elseif (\is_array($constraint->fields) && 1 === \count($constraint->fields)) { - $fields[$constraint->fields[0]] = true; - } - } - - return $fields; - } - - private static function getFieldMappingValue(array|FieldMapping $mapping, string $key): mixed - { - if ($mapping instanceof FieldMapping) { - return $mapping->$key ?? null; - } - - return $mapping[$key] ?? null; - } -} diff --git a/projects/priceservice/vendor/symfony/doctrine-bridge/composer.json b/projects/priceservice/vendor/symfony/doctrine-bridge/composer.json deleted file mode 100644 index 17828ca..0000000 --- a/projects/priceservice/vendor/symfony/doctrine-bridge/composer.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "symfony/doctrine-bridge", - "type": "symfony-bridge", - "description": "Provides integration for Doctrine with various Symfony components", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1", - "doctrine/event-manager": "^1.2|^2", - "doctrine/persistence": "^2.5|^3.1|^4", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3" - }, - "require-dev": { - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.2|^7.0", - "symfony/doctrine-messenger": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4.38|^6.4.6|^7.0.6", - "symfony/http-kernel": "^6.3|^7.0", - "symfony/lock": "^6.3|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/proxy-manager-bridge": "^6.4", - "symfony/security-core": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0", - "doctrine/collections": "^1.0|^2.0", - "doctrine/data-fixtures": "^1.1|^2", - "doctrine/dbal": "^2.13.1|^3|^4", - "doctrine/orm": "^2.15|^3", - "psr/log": "^1|^2|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "doctrine/lexer": "<1.1", - "doctrine/orm": "<2.15", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/form": "<5.4.38|>=6,<6.4.6|>=7,<7.0.6", - "symfony/http-foundation": "<6.3", - "symfony/http-kernel": "<6.2", - "symfony/lock": "<6.3", - "symfony/messenger": "<5.4", - "symfony/property-info": "<5.4", - "symfony/security-bundle": "<5.4", - "symfony/security-core": "<6.4", - "symfony/validator": "<6.4" - }, - "autoload": { - "psr-4": { "Symfony\\Bridge\\Doctrine\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/dotenv/CHANGELOG.md b/projects/priceservice/vendor/symfony/dotenv/CHANGELOG.md deleted file mode 100644 index f3b7b7c..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/CHANGELOG.md +++ /dev/null @@ -1,45 +0,0 @@ -CHANGELOG -========= - -6.2 ---- - - * Add a new `filter` argument to `debug:dotenv` command to filter variable names - -5.4 ---- - - * Add `dotenv:dump` command to compile the contents of the .env files into a PHP-optimized file called `.env.local.php` - * Add `debug:dotenv` command to list all dotenv files with variables and values - * Add `$overrideExistingVars` on `Dotenv::bootEnv()` and `Dotenv::loadEnv()` - -5.1.0 ------ - - * added `Dotenv::bootEnv()` to check for `.env.local.php` before calling `Dotenv::loadEnv()` - * added `Dotenv::setProdEnvs()` and `Dotenv::usePutenv()` - * made Dotenv's constructor accept `$envKey` and `$debugKey` arguments, to define - the name of the env vars that configure the env name and debug settings - * deprecated passing `$usePutenv` argument to Dotenv's constructor - -5.0.0 ------ - - * using `putenv()` is disabled by default - -4.3.0 ------ - - * deprecated use of `putenv()` by default. This feature will be opted-in with a constructor argument to `Dotenv` - -4.2.0 ------ - - * added `Dotenv::overload()` and `$overrideExistingVars` as optional parameter of `Dotenv::populate()` - * added `Dotenv::loadEnv()` to load a .env file and its corresponding .env.local, .env.$env and .env.$env.local files if they exist - -3.3.0 ------ - - * [BC BREAK] Since v3.3.7, the latest Dotenv files override the previous ones. Real env vars are not affected and are not overridden. - * added the component diff --git a/projects/priceservice/vendor/symfony/dotenv/Command/DebugCommand.php b/projects/priceservice/vendor/symfony/dotenv/Command/DebugCommand.php deleted file mode 100644 index 0315b77..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Command/DebugCommand.php +++ /dev/null @@ -1,226 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Command; - -use Symfony\Component\Console\Attribute\AsCommand; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Completion\CompletionInput; -use Symfony\Component\Console\Completion\CompletionSuggestions; -use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Style\SymfonyStyle; -use Symfony\Component\Dotenv\Dotenv; - -/** - * A console command to debug current dotenv files with variables and values. - * - * @author Christopher Hertel - */ -#[AsCommand(name: 'debug:dotenv', description: 'List all dotenv files with variables and values')] -final class DebugCommand extends Command -{ - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultName = 'debug:dotenv'; - - /** - * @deprecated since Symfony 6.1 - */ - protected static $defaultDescription = 'List all dotenv files with variables and values'; - - private string $kernelEnvironment; - private string $projectDirectory; - - public function __construct(string $kernelEnvironment, string $projectDirectory) - { - $this->kernelEnvironment = $kernelEnvironment; - $this->projectDirectory = $projectDirectory; - - parent::__construct(); - } - - protected function configure(): void - { - $this - ->setDefinition([ - new InputArgument('filter', InputArgument::OPTIONAL, 'The name of an environment variable or a filter.', null, $this->getAvailableVars(...)), - ]) - ->setHelp(<<<'EOT' -The %command.full_name% command displays all the environment variables configured by dotenv: - - php %command.full_name% - -To get specific variables, specify its full or partial name: - - php %command.full_name% FOO_BAR - -EOT - ); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $io = new SymfonyStyle($input, $output); - $io->title('Dotenv Variables & Files'); - - if (!\array_key_exists('SYMFONY_DOTENV_VARS', $_SERVER)) { - $io->error('Dotenv component is not initialized.'); - - return 1; - } - - if (!$filePath = $_SERVER['SYMFONY_DOTENV_PATH'] ?? null) { - $dotenvPath = $this->projectDirectory; - - if (is_file($composerFile = $this->projectDirectory.'/composer.json')) { - $runtimeConfig = (json_decode(file_get_contents($composerFile), true))['extra']['runtime'] ?? []; - - if (isset($runtimeConfig['dotenv_path'])) { - $dotenvPath = $this->projectDirectory.'/'.$runtimeConfig['dotenv_path']; - } - } - - $filePath = $dotenvPath.'/.env'; - } - - $envFiles = $this->getEnvFiles($filePath); - $availableFiles = array_filter($envFiles, 'is_file'); - - if (\in_array(sprintf('%s.local.php', $filePath), $availableFiles, true)) { - $io->warning(sprintf('Due to existing dump file (%s.local.php) all other dotenv files are skipped.', $this->getRelativeName($filePath))); - } - - if (is_file($filePath) && is_file(sprintf('%s.dist', $filePath))) { - $io->warning(sprintf('The file %s.dist gets skipped due to the existence of %1$s.', $this->getRelativeName($filePath))); - } - - $io->section('Scanned Files (in descending priority)'); - $io->listing(array_map(fn (string $envFile) => \in_array($envFile, $availableFiles, true) - ? sprintf('✓ %s', $this->getRelativeName($envFile)) - : sprintf('⨯ %s', $this->getRelativeName($envFile)), $envFiles)); - - $nameFilter = $input->getArgument('filter'); - $variables = $this->getVariables($availableFiles, $nameFilter); - - $io->section('Variables'); - - if ($variables || null === $nameFilter) { - $io->table( - array_merge(['Variable', 'Value'], array_map($this->getRelativeName(...), $availableFiles)), - $variables - ); - - $io->comment('Note that values might be different between web and CLI.'); - } else { - $io->warning(sprintf('No variables match the given filter "%s".', $nameFilter)); - } - - return 0; - } - - public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void - { - if ($input->mustSuggestArgumentValuesFor('filter')) { - $suggestions->suggestValues($this->getAvailableVars()); - } - } - - private function getVariables(array $envFiles, ?string $nameFilter): array - { - $variables = []; - $fileValues = []; - $dotenvVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? '')); - - foreach ($envFiles as $envFile) { - $fileValues[$envFile] = $this->loadValues($envFile); - $variables += $fileValues[$envFile]; - } - - foreach ($variables as $var => $varDetails) { - if (null !== $nameFilter && 0 !== stripos($var, $nameFilter)) { - unset($variables[$var]); - continue; - } - - $realValue = $_SERVER[$var] ?? ''; - $varDetails = [$var, ''.OutputFormatter::escape($realValue).'']; - $varSeen = !isset($dotenvVars[$var]); - - foreach ($envFiles as $envFile) { - if (null === $value = $fileValues[$envFile][$var] ?? null) { - $varDetails[] = 'n/a'; - continue; - } - - $shortenedValue = OutputFormatter::escape($this->getHelper('formatter')->truncate($value, 30)); - $varDetails[] = $value === $realValue && !$varSeen ? ''.$shortenedValue.'' : $shortenedValue; - $varSeen = $varSeen || $value === $realValue; - } - - $variables[$var] = $varDetails; - } - - ksort($variables); - - return $variables; - } - - private function getAvailableVars(): array - { - $filePath = $_SERVER['SYMFONY_DOTENV_PATH'] ?? $this->projectDirectory.\DIRECTORY_SEPARATOR.'.env'; - $envFiles = $this->getEnvFiles($filePath); - - return array_keys($this->getVariables(array_filter($envFiles, 'is_file'), null)); - } - - private function getEnvFiles(string $filePath): array - { - $files = [ - sprintf('%s.local.php', $filePath), - sprintf('%s.%s.local', $filePath, $this->kernelEnvironment), - sprintf('%s.%s', $filePath, $this->kernelEnvironment), - ]; - - if ('test' !== $this->kernelEnvironment) { - $files[] = sprintf('%s.local', $filePath); - } - - if (!is_file($filePath) && is_file(sprintf('%s.dist', $filePath))) { - $files[] = sprintf('%s.dist', $filePath); - } else { - $files[] = $filePath; - } - - return $files; - } - - private function getRelativeName(string $filePath): string - { - if (str_starts_with($filePath, $this->projectDirectory)) { - return substr($filePath, \strlen($this->projectDirectory) + 1); - } - - return basename($filePath); - } - - private function loadValues(string $filePath): array - { - if (str_ends_with($filePath, '.php')) { - return include $filePath; - } - - return (new Dotenv())->parse(file_get_contents($filePath)); - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Command/DotenvDumpCommand.php b/projects/priceservice/vendor/symfony/dotenv/Command/DotenvDumpCommand.php deleted file mode 100644 index cd0fb5d..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Command/DotenvDumpCommand.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Command; - -use Symfony\Component\Console\Attribute\AsCommand; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\DependencyInjection\Attribute\Autoconfigure; -use Symfony\Component\Dotenv\Dotenv; - -/** - * A console command to compile .env files into a PHP-optimized file called .env.local.php. - * - * @internal - */ -#[Autoconfigure(bind: ['$projectDir' => '%kernel.project_dir%', '$defaultEnv' => '%kernel.environment%'])] -#[AsCommand(name: 'dotenv:dump', description: 'Compile .env files to .env.local.php')] -final class DotenvDumpCommand extends Command -{ - private string $projectDir; - private ?string $defaultEnv; - - public function __construct(string $projectDir, ?string $defaultEnv = null) - { - $this->projectDir = $projectDir; - $this->defaultEnv = $defaultEnv; - - parent::__construct(); - } - - protected function configure(): void - { - $this - ->setDefinition([ - new InputArgument('env', null === $this->defaultEnv ? InputArgument::REQUIRED : InputArgument::OPTIONAL, 'The application environment to dump .env files for - e.g. "prod".'), - ]) - ->addOption('empty', null, InputOption::VALUE_NONE, 'Ignore the content of .env files') - ->setHelp(<<<'EOT' -The %command.name% command compiles .env files into a PHP-optimized file called .env.local.php. - - %command.full_name% -EOT - ) - ; - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $config = []; - if (is_file($projectDir = $this->projectDir)) { - $config = ['dotenv_path' => basename($projectDir)]; - $projectDir = \dirname($projectDir); - } - - $composerFile = $projectDir.'/composer.json'; - $config += (is_file($composerFile) ? json_decode(file_get_contents($composerFile), true) : [])['extra']['runtime'] ?? []; - $dotenvPath = $projectDir.'/'.($config['dotenv_path'] ?? '.env'); - $env = $input->getArgument('env') ?? $this->defaultEnv; - $envKey = $config['env_var_name'] ?? 'APP_ENV'; - - if ($input->getOption('empty')) { - $vars = [$envKey => $env]; - } else { - $vars = $this->loadEnv($dotenvPath, $env, $config); - $env = $vars[$envKey]; - } - - $vars = var_export($vars, true); - $vars = <<writeln(sprintf('Successfully dumped .env files in .env.local.php for the %s environment.', $env)); - - return 0; - } - - private function loadEnv(string $dotenvPath, string $env, array $config): array - { - $envKey = $config['env_var_name'] ?? 'APP_ENV'; - $testEnvs = $config['test_envs'] ?? ['test']; - - $dotenv = new Dotenv($envKey); - - $globalsBackup = [$_SERVER, $_ENV]; - unset($_SERVER[$envKey]); - $_ENV = [$envKey => $env]; - $_SERVER['SYMFONY_DOTENV_VARS'] = implode(',', array_keys($_SERVER)); - - try { - $dotenv->loadEnv($dotenvPath, null, 'dev', $testEnvs); - unset($_ENV['SYMFONY_DOTENV_VARS']); - - return $_ENV; - } finally { - [$_SERVER, $_ENV] = $globalsBackup; - } - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Dotenv.php b/projects/priceservice/vendor/symfony/dotenv/Dotenv.php deleted file mode 100644 index 88bda29..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Dotenv.php +++ /dev/null @@ -1,565 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv; - -use Symfony\Component\Dotenv\Exception\FormatException; -use Symfony\Component\Dotenv\Exception\FormatExceptionContext; -use Symfony\Component\Dotenv\Exception\PathException; -use Symfony\Component\Process\Exception\ExceptionInterface as ProcessException; -use Symfony\Component\Process\Process; - -/** - * Manages .env files. - * - * @author Fabien Potencier - * @author Kévin Dunglas - */ -final class Dotenv -{ - public const VARNAME_REGEX = '(?i:_?[A-Z][A-Z0-9_]*+)'; - public const STATE_VARNAME = 0; - public const STATE_VALUE = 1; - - private string $path; - private int $cursor; - private int $lineno; - private string $data; - private int $end; - private array $values = []; - private string $envKey; - private string $debugKey; - private array $prodEnvs = ['prod']; - private bool $usePutenv = false; - - public function __construct(string $envKey = 'APP_ENV', string $debugKey = 'APP_DEBUG') - { - $this->envKey = $envKey; - $this->debugKey = $debugKey; - } - - /** - * @return $this - */ - public function setProdEnvs(array $prodEnvs): static - { - $this->prodEnvs = $prodEnvs; - - return $this; - } - - /** - * @param bool $usePutenv If `putenv()` should be used to define environment variables or not. - * Beware that `putenv()` is not thread safe, that's why it's not enabled by default - * - * @return $this - */ - public function usePutenv(bool $usePutenv = true): static - { - $this->usePutenv = $usePutenv; - - return $this; - } - - /** - * Loads one or several .env files. - * - * @param string $path A file to load - * @param string ...$extraPaths A list of additional files to load - * - * @throws FormatException when a file has a syntax error - * @throws PathException when a file does not exist or is not readable - */ - public function load(string $path, string ...$extraPaths): void - { - $this->doLoad(false, \func_get_args()); - } - - /** - * Loads a .env file and the corresponding .env.local, .env.$env and .env.$env.local files if they exist. - * - * .env.local is always ignored in test env because tests should produce the same results for everyone. - * .env.dist is loaded when it exists and .env is not found. - * - * @param string $path A file to load - * @param string|null $envKey The name of the env vars that defines the app env - * @param string $defaultEnv The app env to use when none is defined - * @param array $testEnvs A list of app envs for which .env.local should be ignored - * @param bool $overrideExistingVars Whether existing environment variables set by the system should be overridden - * - * @throws FormatException when a file has a syntax error - * @throws PathException when a file does not exist or is not readable - */ - public function loadEnv(string $path, ?string $envKey = null, string $defaultEnv = 'dev', array $testEnvs = ['test'], bool $overrideExistingVars = false): void - { - $k = $envKey ?? $this->envKey; - - if (is_file($path) || !is_file($p = "$path.dist")) { - $this->doLoad($overrideExistingVars, [$path]); - } else { - $this->doLoad($overrideExistingVars, [$p]); - } - - if (null === $env = $_SERVER[$k] ?? $_ENV[$k] ?? null) { - $this->populate([$k => $env = $defaultEnv], $overrideExistingVars); - } - - if (!\in_array($env, $testEnvs, true) && is_file($p = "$path.local")) { - $this->doLoad($overrideExistingVars, [$p]); - $env = $_SERVER[$k] ?? $_ENV[$k] ?? $env; - } - - if ('local' === $env) { - return; - } - - if (is_file($p = "$path.$env")) { - $this->doLoad($overrideExistingVars, [$p]); - } - - if (is_file($p = "$path.$env.local")) { - $this->doLoad($overrideExistingVars, [$p]); - } - } - - /** - * Loads env vars from .env.local.php if the file exists or from the other .env files otherwise. - * - * This method also configures the APP_DEBUG env var according to the current APP_ENV. - * - * See method loadEnv() for rules related to .env files. - */ - public function bootEnv(string $path, string $defaultEnv = 'dev', array $testEnvs = ['test'], bool $overrideExistingVars = false): void - { - $p = $path.'.local.php'; - $env = is_file($p) ? include $p : null; - $k = $this->envKey; - - if (\is_array($env) && ($overrideExistingVars || !isset($env[$k]) || ($_SERVER[$k] ?? $_ENV[$k] ?? $env[$k]) === $env[$k])) { - $this->populate($env, $overrideExistingVars); - } else { - $this->loadEnv($path, $k, $defaultEnv, $testEnvs, $overrideExistingVars); - } - - $_SERVER += $_ENV; - - $k = $this->debugKey; - $debug = $_SERVER[$k] ?? !\in_array($_SERVER[$this->envKey], $this->prodEnvs, true); - $_SERVER[$k] = $_ENV[$k] = (int) $debug || (!\is_bool($debug) && filter_var($debug, \FILTER_VALIDATE_BOOL)) ? '1' : '0'; - } - - /** - * Loads one or several .env files and enables override existing vars. - * - * @param string $path A file to load - * @param string ...$extraPaths A list of additional files to load - * - * @throws FormatException when a file has a syntax error - * @throws PathException when a file does not exist or is not readable - */ - public function overload(string $path, string ...$extraPaths): void - { - $this->doLoad(true, \func_get_args()); - } - - /** - * Sets values as environment variables (via putenv, $_ENV, and $_SERVER). - * - * @param array $values An array of env variables - * @param bool $overrideExistingVars Whether existing environment variables set by the system should be overridden - */ - public function populate(array $values, bool $overrideExistingVars = false): void - { - $updateLoadedVars = false; - $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? '')); - - foreach ($values as $name => $value) { - $notHttpName = !str_starts_with($name, 'HTTP_'); - if (isset($_SERVER[$name]) && $notHttpName && !isset($_ENV[$name])) { - $_ENV[$name] = $_SERVER[$name]; - } - - // don't check existence with getenv() because of thread safety issues - if (!isset($loadedVars[$name]) && !$overrideExistingVars && isset($_ENV[$name])) { - continue; - } - - if ($this->usePutenv) { - putenv("$name=$value"); - } - - $_ENV[$name] = $value; - if ($notHttpName) { - $_SERVER[$name] = $value; - } - - if (!isset($loadedVars[$name])) { - $loadedVars[$name] = $updateLoadedVars = true; - } - } - - if ($updateLoadedVars) { - unset($loadedVars['']); - $loadedVars = implode(',', array_keys($loadedVars)); - $_ENV['SYMFONY_DOTENV_VARS'] = $_SERVER['SYMFONY_DOTENV_VARS'] = $loadedVars; - - if ($this->usePutenv) { - putenv('SYMFONY_DOTENV_VARS='.$loadedVars); - } - } - } - - /** - * Parses the contents of an .env file. - * - * @param string $data The data to be parsed - * @param string $path The original file name where data where stored (used for more meaningful error messages) - * - * @throws FormatException when a file has a syntax error - */ - public function parse(string $data, string $path = '.env'): array - { - $this->path = $path; - $this->data = str_replace(["\r\n", "\r"], "\n", $data); - $this->lineno = 1; - $this->cursor = 0; - $this->end = \strlen($this->data); - $state = self::STATE_VARNAME; - $this->values = []; - $name = ''; - - $this->skipEmptyLines(); - - while ($this->cursor < $this->end) { - switch ($state) { - case self::STATE_VARNAME: - $name = $this->lexVarname(); - $state = self::STATE_VALUE; - break; - - case self::STATE_VALUE: - $this->values[$name] = $this->lexValue(); - $state = self::STATE_VARNAME; - break; - } - } - - if (self::STATE_VALUE === $state) { - $this->values[$name] = ''; - } - - try { - return $this->values; - } finally { - $this->values = []; - unset($this->path, $this->cursor, $this->lineno, $this->data, $this->end); - } - } - - private function lexVarname(): string - { - // var name + optional export - if (!preg_match('/(export[ \t]++)?('.self::VARNAME_REGEX.')/A', $this->data, $matches, 0, $this->cursor)) { - throw $this->createFormatException('Invalid character in variable name'); - } - $this->moveCursor($matches[0]); - - if ($this->cursor === $this->end || "\n" === $this->data[$this->cursor] || '#' === $this->data[$this->cursor]) { - if ($matches[1]) { - throw $this->createFormatException('Unable to unset an environment variable'); - } - - throw $this->createFormatException('Missing = in the environment variable declaration'); - } - - if (' ' === $this->data[$this->cursor] || "\t" === $this->data[$this->cursor]) { - throw $this->createFormatException('Whitespace characters are not supported after the variable name'); - } - - if ('=' !== $this->data[$this->cursor]) { - throw $this->createFormatException('Missing = in the environment variable declaration'); - } - ++$this->cursor; - - return $matches[2]; - } - - private function lexValue(): string - { - if (preg_match('/[ \t]*+(?:#.*)?$/Am', $this->data, $matches, 0, $this->cursor)) { - $this->moveCursor($matches[0]); - $this->skipEmptyLines(); - - return ''; - } - - if (' ' === $this->data[$this->cursor] || "\t" === $this->data[$this->cursor]) { - throw $this->createFormatException('Whitespace are not supported before the value'); - } - - $loadedVars = array_flip(explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? $_ENV['SYMFONY_DOTENV_VARS'] ?? '')); - unset($loadedVars['']); - $v = ''; - - do { - if ("'" === $this->data[$this->cursor]) { - $len = 0; - - do { - if ($this->cursor + ++$len === $this->end) { - $this->cursor += $len; - - throw $this->createFormatException('Missing quote to end the value'); - } - } while ("'" !== $this->data[$this->cursor + $len]); - - $v .= substr($this->data, 1 + $this->cursor, $len - 1); - $this->cursor += 1 + $len; - } elseif ('"' === $this->data[$this->cursor]) { - $value = ''; - - if (++$this->cursor === $this->end) { - throw $this->createFormatException('Missing quote to end the value'); - } - - while ('"' !== $this->data[$this->cursor] || ('\\' === $this->data[$this->cursor - 1] && '\\' !== $this->data[$this->cursor - 2])) { - $value .= $this->data[$this->cursor]; - ++$this->cursor; - - if ($this->cursor === $this->end) { - throw $this->createFormatException('Missing quote to end the value'); - } - } - ++$this->cursor; - $value = str_replace(['\\"', '\r', '\n'], ['"', "\r", "\n"], $value); - $resolvedValue = $value; - $resolvedValue = $this->resolveCommands($resolvedValue, $loadedVars); - $resolvedValue = $this->resolveVariables($resolvedValue, $loadedVars); - $resolvedValue = str_replace('\\\\', '\\', $resolvedValue); - $v .= $resolvedValue; - } else { - $value = ''; - $prevChr = $this->data[$this->cursor - 1]; - while ($this->cursor < $this->end && !\in_array($this->data[$this->cursor], ["\n", '"', "'"], true) && !((' ' === $prevChr || "\t" === $prevChr) && '#' === $this->data[$this->cursor])) { - if ('\\' === $this->data[$this->cursor] && isset($this->data[$this->cursor + 1]) && ('"' === $this->data[$this->cursor + 1] || "'" === $this->data[$this->cursor + 1])) { - ++$this->cursor; - } - - $value .= $prevChr = $this->data[$this->cursor]; - - if ('$' === $this->data[$this->cursor] && isset($this->data[$this->cursor + 1]) && '(' === $this->data[$this->cursor + 1]) { - ++$this->cursor; - $value .= '('.$this->lexNestedExpression().')'; - } - - ++$this->cursor; - } - $value = rtrim($value); - $resolvedValue = $value; - $resolvedValue = $this->resolveCommands($resolvedValue, $loadedVars); - $resolvedValue = $this->resolveVariables($resolvedValue, $loadedVars); - $resolvedValue = str_replace('\\\\', '\\', $resolvedValue); - - if ($resolvedValue === $value && preg_match('/\s+/', $value)) { - throw $this->createFormatException('A value containing spaces must be surrounded by quotes'); - } - - $v .= $resolvedValue; - - if ($this->cursor < $this->end && '#' === $this->data[$this->cursor]) { - break; - } - } - } while ($this->cursor < $this->end && "\n" !== $this->data[$this->cursor]); - - $this->skipEmptyLines(); - - return $v; - } - - private function lexNestedExpression(): string - { - ++$this->cursor; - $value = ''; - - while ("\n" !== $this->data[$this->cursor] && ')' !== $this->data[$this->cursor]) { - $value .= $this->data[$this->cursor]; - - if ('(' === $this->data[$this->cursor]) { - $value .= $this->lexNestedExpression().')'; - } - - ++$this->cursor; - - if ($this->cursor === $this->end) { - throw $this->createFormatException('Missing closing parenthesis.'); - } - } - - if ("\n" === $this->data[$this->cursor]) { - throw $this->createFormatException('Missing closing parenthesis.'); - } - - return $value; - } - - private function skipEmptyLines(): void - { - if (preg_match('/(?:\s*+(?:#[^\n]*+)?+)++/A', $this->data, $match, 0, $this->cursor)) { - $this->moveCursor($match[0]); - } - } - - private function resolveCommands(string $value, array $loadedVars): string - { - if (!str_contains($value, '$')) { - return $value; - } - - $regex = '/ - (\\\\)? # escaped with a backslash? - \$ - (? - \( # require opening parenthesis - ([^()]|\g)+ # allow any number of non-parens, or balanced parens (by nesting the expression recursively) - \) # require closing paren - ) - /x'; - - return preg_replace_callback($regex, function ($matches) use ($loadedVars) { - if ('\\' === $matches[1]) { - return substr($matches[0], 1); - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - throw new \LogicException('Resolving commands is not supported on Windows.'); - } - - if (!class_exists(Process::class)) { - throw new \LogicException('Resolving commands requires the Symfony Process component. Try running "composer require symfony/process".'); - } - - $process = Process::fromShellCommandline('echo '.$matches[0]); - - $env = []; - foreach ($this->values as $name => $value) { - if (isset($loadedVars[$name]) || (!isset($_ENV[$name]) && !(isset($_SERVER[$name]) && !str_starts_with($name, 'HTTP_')))) { - $env[$name] = $value; - } - } - $process->setEnv($env); - - try { - $process->mustRun(); - } catch (ProcessException) { - throw $this->createFormatException(sprintf('Issue expanding a command (%s)', $process->getErrorOutput())); - } - - return preg_replace('/[\r\n]+$/', '', $process->getOutput()); - }, $value); - } - - private function resolveVariables(string $value, array $loadedVars): string - { - if (!str_contains($value, '$')) { - return $value; - } - - $regex = '/ - (?\\\\*) # escaped with a backslash? - \$ - (?!\() # no opening parenthesis - (?P\{)? # optional brace - (?P'.self::VARNAME_REGEX.')? # var name - (?P:[-=][^\}]*+)? # optional default value - (?P\})? # optional closing brace - /x'; - - $value = preg_replace_callback($regex, function ($matches) use ($loadedVars) { - // odd number of backslashes means the $ character is escaped - if (1 === \strlen($matches['backslashes']) % 2) { - return substr($matches[0], 1); - } - - // unescaped $ not followed by variable name - if (!isset($matches['name'])) { - return $matches[0]; - } - - if ('{' === $matches['opening_brace'] && !isset($matches['closing_brace'])) { - throw $this->createFormatException('Unclosed braces on variable expansion'); - } - - $name = $matches['name']; - if (isset($loadedVars[$name]) && isset($this->values[$name])) { - $value = $this->values[$name]; - } elseif (isset($_ENV[$name])) { - $value = $_ENV[$name]; - } elseif (isset($_SERVER[$name]) && !str_starts_with($name, 'HTTP_')) { - $value = $_SERVER[$name]; - } elseif (isset($this->values[$name])) { - $value = $this->values[$name]; - } else { - $value = (string) getenv($name); - } - - if ('' === $value && isset($matches['default_value']) && '' !== $matches['default_value']) { - $unsupportedChars = strpbrk($matches['default_value'], '\'"{$'); - if (false !== $unsupportedChars) { - throw $this->createFormatException(sprintf('Unsupported character "%s" found in the default value of variable "$%s".', $unsupportedChars[0], $name)); - } - - $value = substr($matches['default_value'], 2); - - if ('=' === $matches['default_value'][1]) { - $this->values[$name] = $value; - } - } - - if (!$matches['opening_brace'] && isset($matches['closing_brace'])) { - $value .= '}'; - } - - return $matches['backslashes'].$value; - }, $value); - - return $value; - } - - private function moveCursor(string $text): void - { - $this->cursor += \strlen($text); - $this->lineno += substr_count($text, "\n"); - } - - private function createFormatException(string $message): FormatException - { - return new FormatException($message, new FormatExceptionContext($this->data, $this->path, $this->lineno, $this->cursor)); - } - - private function doLoad(bool $overrideExistingVars, array $paths): void - { - foreach ($paths as $path) { - if (!is_readable($path) || is_dir($path)) { - throw new PathException($path); - } - - $data = file_get_contents($path); - - if ("\xEF\xBB\xBF" === substr($data, 0, 3)) { - throw new FormatException('Loading files starting with a byte-order-mark (BOM) is not supported.', new FormatExceptionContext($data, $path, 1, 0)); - } - - $this->populate($this->parse($data, $path), $overrideExistingVars); - } - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Exception/ExceptionInterface.php b/projects/priceservice/vendor/symfony/dotenv/Exception/ExceptionInterface.php deleted file mode 100644 index 140a93f..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Exception; - -/** - * Interface for exceptions. - * - * @author Fabien Potencier - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Exception/FormatException.php b/projects/priceservice/vendor/symfony/dotenv/Exception/FormatException.php deleted file mode 100644 index 684d98c..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Exception/FormatException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Exception; - -/** - * Thrown when a file has a syntax error. - * - * @author Fabien Potencier - */ -final class FormatException extends \LogicException implements ExceptionInterface -{ - private FormatExceptionContext $context; - - public function __construct(string $message, FormatExceptionContext $context, int $code = 0, ?\Throwable $previous = null) - { - $this->context = $context; - - parent::__construct(sprintf("%s in \"%s\" at line %d.\n%s", $message, $context->getPath(), $context->getLineno(), $context->getDetails()), $code, $previous); - } - - public function getContext(): FormatExceptionContext - { - return $this->context; - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Exception/FormatExceptionContext.php b/projects/priceservice/vendor/symfony/dotenv/Exception/FormatExceptionContext.php deleted file mode 100644 index 11db3ab..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Exception/FormatExceptionContext.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Exception; - -/** - * @author Fabien Potencier - */ -final class FormatExceptionContext -{ - private string $data; - private string $path; - private int $lineno; - private int $cursor; - - public function __construct(string $data, string $path, int $lineno, int $cursor) - { - $this->data = $data; - $this->path = $path; - $this->lineno = $lineno; - $this->cursor = $cursor; - } - - public function getPath(): string - { - return $this->path; - } - - public function getLineno(): int - { - return $this->lineno; - } - - public function getDetails(): string - { - $before = str_replace("\n", '\n', substr($this->data, max(0, $this->cursor - 20), min(20, $this->cursor))); - $after = str_replace("\n", '\n', substr($this->data, $this->cursor, 20)); - - return '...'.$before.$after."...\n".str_repeat(' ', \strlen($before) + 2).'^ line '.$this->lineno.' offset '.$this->cursor; - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/Exception/PathException.php b/projects/priceservice/vendor/symfony/dotenv/Exception/PathException.php deleted file mode 100644 index e432b2e..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/Exception/PathException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Dotenv\Exception; - -/** - * Thrown when a file does not exist or is not readable. - * - * @author Fabien Potencier - */ -final class PathException extends \RuntimeException implements ExceptionInterface -{ - public function __construct(string $path, int $code = 0, ?\Throwable $previous = null) - { - parent::__construct(sprintf('Unable to read the "%s" environment file.', $path), $code, $previous); - } -} diff --git a/projects/priceservice/vendor/symfony/dotenv/LICENSE b/projects/priceservice/vendor/symfony/dotenv/LICENSE deleted file mode 100644 index 0223acd..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/dotenv/README.md b/projects/priceservice/vendor/symfony/dotenv/README.md deleted file mode 100644 index 08c90fc..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/README.md +++ /dev/null @@ -1,36 +0,0 @@ -Dotenv Component -================ - -Symfony Dotenv parses `.env` files to make environment variables stored in them -accessible via `$_SERVER` or `$_ENV`. - -Getting Started ---------------- - -``` -$ composer require symfony/dotenv -``` - -```php -use Symfony\Component\Dotenv\Dotenv; - -$dotenv = new Dotenv(); -$dotenv->load(__DIR__.'/.env'); - -// you can also load several files -$dotenv->load(__DIR__.'/.env', __DIR__.'/.env.dev'); - -// overwrites existing env variables -$dotenv->overload(__DIR__.'/.env'); - -// loads .env, .env.local, and .env.$APP_ENV.local or .env.$APP_ENV -$dotenv->loadEnv(__DIR__.'/.env'); -``` - -Resources ---------- - - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/dotenv/composer.json b/projects/priceservice/vendor/symfony/dotenv/composer.json deleted file mode 100644 index 2a65c08..0000000 --- a/projects/priceservice/vendor/symfony/dotenv/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "symfony/dotenv", - "type": "library", - "description": "Registers environment variables from a .env file", - "keywords": ["environment", "env", "dotenv"], - "homepage": "https://symfony.com", - "license" : "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/console": "<5.4", - "symfony/process": "<5.4" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Dotenv\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} diff --git a/projects/priceservice/vendor/symfony/error-handler/BufferingLogger.php b/projects/priceservice/vendor/symfony/error-handler/BufferingLogger.php deleted file mode 100644 index b33e079..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/BufferingLogger.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler; - -use Psr\Log\AbstractLogger; - -/** - * A buffering logger that stacks logs for later. - * - * @author Nicolas Grekas - */ -class BufferingLogger extends AbstractLogger -{ - private array $logs = []; - - public function log($level, $message, array $context = []): void - { - $this->logs[] = [$level, $message, $context]; - } - - public function cleanLogs(): array - { - $logs = $this->logs; - $this->logs = []; - - return $logs; - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - /** - * @return void - */ - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - foreach ($this->logs as [$level, $message, $context]) { - if (str_contains($message, '{')) { - foreach ($context as $key => $val) { - if (null === $val || \is_scalar($val) || (\is_object($val) && \is_callable([$val, '__toString']))) { - $message = str_replace("{{$key}}", $val, $message); - } elseif ($val instanceof \DateTimeInterface) { - $message = str_replace("{{$key}}", $val->format(\DateTimeInterface::RFC3339), $message); - } elseif (\is_object($val)) { - $message = str_replace("{{$key}}", '[object '.get_debug_type($val).']', $message); - } else { - $message = str_replace("{{$key}}", '['.\gettype($val).']', $message); - } - } - } - - error_log(sprintf('%s [%s] %s', date(\DateTimeInterface::RFC3339), $level, $message)); - } - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/CHANGELOG.md b/projects/priceservice/vendor/symfony/error-handler/CHANGELOG.md deleted file mode 100644 index 6a5e8fb..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/CHANGELOG.md +++ /dev/null @@ -1,40 +0,0 @@ -CHANGELOG -========= - -6.4 ---- - - * `FlattenExceptionNormalizer` no longer implements `ContextAwareNormalizerInterface` - -6.3 ---- - - * Display exception properties in the HTML error page - -6.1 ---- - - * Report overridden `@final` constants and properties - * Read environment variable `SYMFONY_IDE` to configure file link format - -5.4 ---- - - * Make `DebugClassLoader` trigger deprecation notices on missing return types - * Add `SYMFONY_PATCH_TYPE_DECLARATIONS='force=2'` mode to `DebugClassLoader` to turn annotations into native return types - -5.2.0 ------ - - * added the ability to set `HtmlErrorRenderer::$template` to a custom template to render when not in debug mode. - -5.1.0 ------ - - * The `HtmlErrorRenderer` and `SerializerErrorRenderer` add `X-Debug-Exception` and `X-Debug-Exception-File` headers in debug mode. - -4.4.0 ------ - - * added the component - * added `ErrorHandler::call()` method utility to turn any PHP error into `\ErrorException` diff --git a/projects/priceservice/vendor/symfony/error-handler/Debug.php b/projects/priceservice/vendor/symfony/error-handler/Debug.php deleted file mode 100644 index b090040..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Debug.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler; - -/** - * Registers all the debug tools. - * - * @author Fabien Potencier - */ -class Debug -{ - public static function enable(): ErrorHandler - { - error_reporting(\E_ALL & ~\E_DEPRECATED & ~\E_USER_DEPRECATED); - - if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { - ini_set('display_errors', 0); - } elseif (!filter_var(\ini_get('log_errors'), \FILTER_VALIDATE_BOOL) || \ini_get('error_log')) { - // CLI - display errors only if they're not already logged to STDERR - ini_set('display_errors', 1); - } - - @ini_set('zend.assertions', 1); - ini_set('assert.active', 1); - ini_set('assert.exception', 1); - - DebugClassLoader::enable(); - - return ErrorHandler::register(new ErrorHandler(new BufferingLogger(), true)); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/DebugClassLoader.php b/projects/priceservice/vendor/symfony/error-handler/DebugClassLoader.php deleted file mode 100644 index 3f2a136..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/DebugClassLoader.php +++ /dev/null @@ -1,1277 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler; - -use Composer\InstalledVersions; -use Doctrine\Common\Persistence\Proxy as LegacyProxy; -use Doctrine\Persistence\Proxy; -use Mockery\MockInterface; -use Phake\IMock; -use PHPUnit\Framework\MockObject\Matcher\StatelessInvocation; -use PHPUnit\Framework\MockObject\MockObject; -use PHPUnit\Framework\MockObject\Stub; -use Prophecy\Prophecy\ProphecySubjectInterface; -use ProxyManager\Proxy\ProxyInterface; -use Symfony\Component\DependencyInjection\Argument\LazyClosure; -use Symfony\Component\ErrorHandler\Internal\TentativeTypes; -use Symfony\Component\VarExporter\LazyObjectInterface; - -/** - * Autoloader checking if the class is really defined in the file found. - * - * The ClassLoader will wrap all registered autoloaders - * and will throw an exception if a file is found but does - * not declare the class. - * - * It can also patch classes to turn docblocks into actual return types. - * This behavior is controlled by the SYMFONY_PATCH_TYPE_DECLARATIONS env var, - * which is a url-encoded array with the follow parameters: - * - "force": any value enables deprecation notices - can be any of: - * - "phpdoc" to patch only docblock annotations - * - "2" to add all possible return types - * - "1" to add return types but only to tests/final/internal/private methods - * - "php": the target version of PHP - e.g. "7.1" doesn't generate "object" types - * - "deprecations": "1" to trigger a deprecation notice when a child class misses a - * return type while the parent declares an "@return" annotation - * - * Note that patching doesn't care about any coding style so you'd better to run - * php-cs-fixer after, with rules "phpdoc_trim_consecutive_blank_line_separation" - * and "no_superfluous_phpdoc_tags" enabled typically. - * - * @author Fabien Potencier - * @author Christophe Coevoet - * @author Nicolas Grekas - * @author Guilhem Niot - */ -class DebugClassLoader -{ - private const SPECIAL_RETURN_TYPES = [ - 'void' => 'void', - 'null' => 'null', - 'resource' => 'resource', - 'boolean' => 'bool', - 'true' => 'true', - 'false' => 'false', - 'integer' => 'int', - 'array' => 'array', - 'bool' => 'bool', - 'callable' => 'callable', - 'float' => 'float', - 'int' => 'int', - 'iterable' => 'iterable', - 'object' => 'object', - 'string' => 'string', - 'self' => 'self', - 'parent' => 'parent', - 'mixed' => 'mixed', - 'static' => 'static', - '$this' => 'static', - 'list' => 'array', - 'class-string' => 'string', - 'never' => 'never', - ]; - - private const BUILTIN_RETURN_TYPES = [ - 'void' => true, - 'array' => true, - 'false' => true, - 'bool' => true, - 'callable' => true, - 'float' => true, - 'int' => true, - 'iterable' => true, - 'object' => true, - 'string' => true, - 'self' => true, - 'parent' => true, - 'mixed' => true, - 'static' => true, - 'null' => true, - 'true' => true, - 'never' => true, - ]; - - private const MAGIC_METHODS = [ - '__isset' => 'bool', - '__sleep' => 'array', - '__toString' => 'string', - '__debugInfo' => 'array', - '__serialize' => 'array', - ]; - - /** - * @var callable - */ - private $classLoader; - private bool $isFinder; - private array $loaded = []; - private array $patchTypes = []; - - private static int $caseCheck; - private static array $checkedClasses = []; - private static array $final = []; - private static array $finalMethods = []; - private static array $finalProperties = []; - private static array $finalConstants = []; - private static array $deprecated = []; - private static array $internal = []; - private static array $internalMethods = []; - private static array $annotatedParameters = []; - private static array $darwinCache = ['/' => ['/', []]]; - private static array $method = []; - private static array $returnTypes = []; - private static array $methodTraits = []; - private static array $fileOffsets = []; - - public function __construct(callable $classLoader) - { - $this->classLoader = $classLoader; - $this->isFinder = \is_array($classLoader) && method_exists($classLoader[0], 'findFile'); - parse_str($_ENV['SYMFONY_PATCH_TYPE_DECLARATIONS'] ?? $_SERVER['SYMFONY_PATCH_TYPE_DECLARATIONS'] ?? getenv('SYMFONY_PATCH_TYPE_DECLARATIONS') ?: '', $this->patchTypes); - $this->patchTypes += [ - 'force' => null, - 'php' => \PHP_MAJOR_VERSION.'.'.\PHP_MINOR_VERSION, - 'deprecations' => true, - ]; - - if ('phpdoc' === $this->patchTypes['force']) { - $this->patchTypes['force'] = 'docblock'; - } - - if (!isset(self::$caseCheck)) { - $file = is_file(__FILE__) ? __FILE__ : rtrim(realpath('.'), \DIRECTORY_SEPARATOR); - $i = strrpos($file, \DIRECTORY_SEPARATOR); - $dir = substr($file, 0, 1 + $i); - $file = substr($file, 1 + $i); - $test = strtoupper($file) === $file ? strtolower($file) : strtoupper($file); - $test = realpath($dir.$test); - - if (false === $test || false === $i) { - // filesystem is case sensitive - self::$caseCheck = 0; - } elseif (str_ends_with($test, $file)) { - // filesystem is case insensitive and realpath() normalizes the case of characters - self::$caseCheck = 1; - } elseif ('Darwin' === \PHP_OS_FAMILY) { - // on MacOSX, HFS+ is case insensitive but realpath() doesn't normalize the case of characters - self::$caseCheck = 2; - } else { - // filesystem case checks failed, fallback to disabling them - self::$caseCheck = 0; - } - } - } - - public function getClassLoader(): callable - { - return $this->classLoader; - } - - /** - * Wraps all autoloaders. - */ - public static function enable(): void - { - // Ensures we don't hit https://bugs.php.net/42098 - class_exists(\Symfony\Component\ErrorHandler\ErrorHandler::class); - class_exists(\Psr\Log\LogLevel::class); - - if (!\is_array($functions = spl_autoload_functions())) { - return; - } - - foreach ($functions as $function) { - spl_autoload_unregister($function); - } - - foreach ($functions as $function) { - if (!\is_array($function) || !$function[0] instanceof self) { - $function = [new static($function), 'loadClass']; - } - - spl_autoload_register($function); - } - } - - /** - * Disables the wrapping. - */ - public static function disable(): void - { - if (!\is_array($functions = spl_autoload_functions())) { - return; - } - - foreach ($functions as $function) { - spl_autoload_unregister($function); - } - - foreach ($functions as $function) { - if (\is_array($function) && $function[0] instanceof self) { - $function = $function[0]->getClassLoader(); - } - - spl_autoload_register($function); - } - } - - public static function checkClasses(): bool - { - if (!\is_array($functions = spl_autoload_functions())) { - return false; - } - - $loader = null; - - foreach ($functions as $function) { - if (\is_array($function) && $function[0] instanceof self) { - $loader = $function[0]; - break; - } - } - - if (null === $loader) { - return false; - } - - static $offsets = [ - 'get_declared_interfaces' => 0, - 'get_declared_traits' => 0, - 'get_declared_classes' => 0, - ]; - - foreach ($offsets as $getSymbols => $i) { - $symbols = $getSymbols(); - - for (; $i < \count($symbols); ++$i) { - if (!is_subclass_of($symbols[$i], MockObject::class) - && !is_subclass_of($symbols[$i], Stub::class) - && !is_subclass_of($symbols[$i], ProphecySubjectInterface::class) - && !is_subclass_of($symbols[$i], Proxy::class) - && !is_subclass_of($symbols[$i], ProxyInterface::class) - && !is_subclass_of($symbols[$i], LazyObjectInterface::class) - && !is_subclass_of($symbols[$i], LegacyProxy::class) - && !is_subclass_of($symbols[$i], MockInterface::class) - && !is_subclass_of($symbols[$i], IMock::class) - && !(is_subclass_of($symbols[$i], LazyClosure::class) && str_contains($symbols[$i], "@anonymous\0")) - ) { - $loader->checkClass($symbols[$i]); - } - } - - $offsets[$getSymbols] = $i; - } - - return true; - } - - public function findFile(string $class): ?string - { - return $this->isFinder ? ($this->classLoader[0]->findFile($class) ?: null) : null; - } - - /** - * Loads the given class or interface. - * - * @throws \RuntimeException - */ - public function loadClass(string $class): void - { - $e = error_reporting(error_reporting() | \E_PARSE | \E_ERROR | \E_CORE_ERROR | \E_COMPILE_ERROR); - - try { - if ($this->isFinder && !isset($this->loaded[$class])) { - $this->loaded[$class] = true; - if (!$file = $this->classLoader[0]->findFile($class) ?: '') { - // no-op - } elseif (\function_exists('opcache_is_script_cached') && @opcache_is_script_cached($file)) { - include $file; - - return; - } elseif (false === include $file) { - return; - } - } else { - ($this->classLoader)($class); - $file = ''; - } - } finally { - error_reporting($e); - } - - $this->checkClass($class, $file); - } - - private function checkClass(string $class, ?string $file = null): void - { - $exists = null === $file || class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false); - - if (null !== $file && $class && '\\' === $class[0]) { - $class = substr($class, 1); - } - - if ($exists) { - if (isset(self::$checkedClasses[$class])) { - return; - } - self::$checkedClasses[$class] = true; - - $refl = new \ReflectionClass($class); - if (null === $file && $refl->isInternal()) { - return; - } - $name = $refl->getName(); - - if ($name !== $class && 0 === strcasecmp($name, $class)) { - throw new \RuntimeException(sprintf('Case mismatch between loaded and declared class names: "%s" vs "%s".', $class, $name)); - } - - $deprecations = $this->checkAnnotations($refl, $name); - - foreach ($deprecations as $message) { - @trigger_error($message, \E_USER_DEPRECATED); - } - } - - if (!$file) { - return; - } - - if (!$exists) { - if (str_contains($class, '/')) { - throw new \RuntimeException(sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class)); - } - - throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file)); - } - - if (self::$caseCheck && $message = $this->checkCase($refl, $file, $class)) { - throw new \RuntimeException(sprintf('Case mismatch between class and real file names: "%s" vs "%s" in "%s".', $message[0], $message[1], $message[2])); - } - } - - public function checkAnnotations(\ReflectionClass $refl, string $class): array - { - if ( - 'Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerForV7' === $class - || 'Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerForV6' === $class - ) { - return []; - } - $deprecations = []; - - $className = str_contains($class, "@anonymous\0") ? (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous' : $class; - - // Don't trigger deprecations for classes in the same vendor - if ($class !== $className) { - $vendor = preg_match('/^namespace ([^;\\\\\s]++)[;\\\\]/m', @file_get_contents($refl->getFileName()), $vendor) ? $vendor[1].'\\' : ''; - $vendorLen = \strlen($vendor); - } elseif (2 > $vendorLen = 1 + (strpos($class, '\\') ?: strpos($class, '_'))) { - $vendorLen = 0; - $vendor = ''; - } else { - $vendor = str_replace('_', '\\', substr($class, 0, $vendorLen)); - } - - $parent = get_parent_class($class) ?: null; - self::$returnTypes[$class] = []; - $classIsTemplate = false; - - // Detect annotations on the class - if ($doc = $this->parsePhpDoc($refl)) { - $classIsTemplate = isset($doc['template']) || isset($doc['template-covariant']); - - foreach (['final', 'deprecated', 'internal'] as $annotation) { - if (null !== $description = $doc[$annotation][0] ?? null) { - self::${$annotation}[$class] = '' !== $description ? ' '.$description.(preg_match('/[.!]$/', $description) ? '' : '.') : '.'; - } - } - - if ($refl->isInterface() && isset($doc['method'])) { - foreach ($doc['method'] as $name => [$static, $returnType, $signature, $description]) { - self::$method[$class][] = [$class, $static, $returnType, $name.$signature, $description]; - - if ('' !== $returnType) { - $this->setReturnType($returnType, $refl->name, $name, $refl->getFileName(), $parent); - } - } - } - } - - $parentAndOwnInterfaces = $this->getOwnInterfaces($class, $parent); - if ($parent) { - $parentAndOwnInterfaces[$parent] = $parent; - - if (!isset(self::$checkedClasses[$parent])) { - $this->checkClass($parent); - } - - if (isset(self::$final[$parent])) { - $deprecations[] = sprintf('The "%s" class is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $parent, self::$final[$parent], $className); - } - } - - // Detect if the parent is annotated - foreach ($parentAndOwnInterfaces + class_uses($class, false) as $use) { - if (!isset(self::$checkedClasses[$use])) { - $this->checkClass($use); - } - if (isset(self::$deprecated[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) && !isset(self::$deprecated[$class])) { - $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait'); - $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses'); - - $deprecations[] = sprintf('The "%s" %s %s "%s" that is deprecated%s', $className, $type, $verb, $use, self::$deprecated[$use]); - } - if (isset(self::$internal[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen)) { - $deprecations[] = sprintf('The "%s" %s is considered internal%s It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $className); - } - if (isset(self::$method[$use])) { - if ($refl->isAbstract()) { - if (isset(self::$method[$class])) { - self::$method[$class] = array_merge(self::$method[$class], self::$method[$use]); - } else { - self::$method[$class] = self::$method[$use]; - } - } elseif (!$refl->isInterface()) { - if (!strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) - && str_starts_with($className, 'Symfony\\') - && (!class_exists(InstalledVersions::class) - || 'symfony/symfony' !== InstalledVersions::getRootPackage()['name']) - ) { - // skip "same vendor" @method deprecations for Symfony\* classes unless symfony/symfony is being tested - continue; - } - $hasCall = $refl->hasMethod('__call'); - $hasStaticCall = $refl->hasMethod('__callStatic'); - foreach (self::$method[$use] as [$interface, $static, $returnType, $name, $description]) { - if ($static ? $hasStaticCall : $hasCall) { - continue; - } - $realName = substr($name, 0, strpos($name, '(')); - if (!$refl->hasMethod($realName) || !($methodRefl = $refl->getMethod($realName))->isPublic() || ($static && !$methodRefl->isStatic()) || (!$static && $methodRefl->isStatic())) { - $deprecations[] = sprintf('Class "%s" should implement method "%s::%s%s"%s', $className, ($static ? 'static ' : '').$interface, $name, $returnType ? ': '.$returnType : '', null === $description ? '.' : ': '.$description); - } - } - } - } - } - - if (trait_exists($class)) { - $file = $refl->getFileName(); - - foreach ($refl->getMethods() as $method) { - if ($method->getFileName() === $file) { - self::$methodTraits[$file][$method->getStartLine()] = $class; - } - } - - return $deprecations; - } - - // Inherit @final, @internal, @param and @return annotations for methods - self::$finalMethods[$class] = []; - self::$internalMethods[$class] = []; - self::$annotatedParameters[$class] = []; - self::$finalProperties[$class] = []; - self::$finalConstants[$class] = []; - foreach ($parentAndOwnInterfaces as $use) { - foreach (['finalMethods', 'internalMethods', 'annotatedParameters', 'returnTypes', 'finalProperties', 'finalConstants'] as $property) { - if (isset(self::${$property}[$use])) { - self::${$property}[$class] = self::${$property}[$class] ? self::${$property}[$use] + self::${$property}[$class] : self::${$property}[$use]; - } - } - - if (null !== (TentativeTypes::RETURN_TYPES[$use] ?? null)) { - foreach (TentativeTypes::RETURN_TYPES[$use] as $method => $returnType) { - $returnType = explode('|', $returnType); - foreach ($returnType as $i => $t) { - if ('?' !== $t && !isset(self::BUILTIN_RETURN_TYPES[$t])) { - $returnType[$i] = '\\'.$t; - } - } - $returnType = implode('|', $returnType); - - self::$returnTypes[$class] += [$method => [$returnType, str_starts_with($returnType, '?') ? substr($returnType, 1).'|null' : $returnType, $use, '']]; - } - } - } - - foreach ($refl->getMethods() as $method) { - if ($method->class !== $class) { - continue; - } - - if (null === $ns = self::$methodTraits[$method->getFileName()][$method->getStartLine()] ?? null) { - $ns = $vendor; - $len = $vendorLen; - } elseif (2 > $len = 1 + (strpos($ns, '\\') ?: strpos($ns, '_'))) { - $len = 0; - $ns = ''; - } else { - $ns = str_replace('_', '\\', substr($ns, 0, $len)); - } - - if ($parent && isset(self::$finalMethods[$parent][$method->name])) { - [$declaringClass, $message] = self::$finalMethods[$parent][$method->name]; - $deprecations[] = sprintf('The "%s::%s()" method is considered final%s It may change without further notice as of its next major version. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className); - } - - if (isset(self::$internalMethods[$class][$method->name])) { - [$declaringClass, $message] = self::$internalMethods[$class][$method->name]; - if (strncmp($ns, $declaringClass, $len)) { - $deprecations[] = sprintf('The "%s::%s()" method is considered internal%s It may change without further notice. You should not extend it from "%s".', $declaringClass, $method->name, $message, $className); - } - } - - // To read method annotations - $doc = $this->parsePhpDoc($method); - - if (($classIsTemplate || isset($doc['template']) || isset($doc['template-covariant'])) && $method->hasReturnType()) { - unset($doc['return']); - } - - if (isset(self::$annotatedParameters[$class][$method->name])) { - $definedParameters = []; - foreach ($method->getParameters() as $parameter) { - $definedParameters[$parameter->name] = true; - } - - foreach (self::$annotatedParameters[$class][$method->name] as $parameterName => $deprecation) { - if (!isset($definedParameters[$parameterName]) && !isset($doc['param'][$parameterName])) { - $deprecations[] = sprintf($deprecation, $className); - } - } - } - - $forcePatchTypes = $this->patchTypes['force']; - - if ($canAddReturnType = null !== $forcePatchTypes && !str_contains($method->getFileName(), \DIRECTORY_SEPARATOR.'vendor'.\DIRECTORY_SEPARATOR)) { - if ('void' !== (self::MAGIC_METHODS[$method->name] ?? 'void')) { - $this->patchTypes['force'] = $forcePatchTypes ?: 'docblock'; - } - - $canAddReturnType = 2 === (int) $forcePatchTypes - || false !== stripos($method->getFileName(), \DIRECTORY_SEPARATOR.'Tests'.\DIRECTORY_SEPARATOR) - || $refl->isFinal() - || $method->isFinal() - || $method->isPrivate() - || ('.' === (self::$internal[$class] ?? null) && !$refl->isAbstract()) - || '.' === (self::$final[$class] ?? null) - || '' === ($doc['final'][0] ?? null) - || '' === ($doc['internal'][0] ?? null) - ; - } - - if (null !== ($returnType = self::$returnTypes[$class][$method->name] ?? null) && 'docblock' === $this->patchTypes['force'] && !$method->hasReturnType() && isset(TentativeTypes::RETURN_TYPES[$returnType[2]][$method->name])) { - $this->patchReturnTypeWillChange($method); - } - - if (null !== ($returnType ??= self::MAGIC_METHODS[$method->name] ?? null) && !$method->hasReturnType() && !isset($doc['return'])) { - [$normalizedType, $returnType, $declaringClass, $declaringFile] = \is_string($returnType) ? [$returnType, $returnType, '', ''] : $returnType; - - if ($canAddReturnType && 'docblock' !== $this->patchTypes['force']) { - $this->patchMethod($method, $returnType, $declaringFile, $normalizedType); - } - if (!isset($doc['deprecated']) && strncmp($ns, $declaringClass, $len)) { - if ('docblock' === $this->patchTypes['force']) { - $this->patchMethod($method, $returnType, $declaringFile, $normalizedType); - } elseif ('' !== $declaringClass && $this->patchTypes['deprecations']) { - $deprecations[] = sprintf('Method "%s::%s()" might add "%s" as a native return type declaration in the future. Do the same in %s "%s" now to avoid errors or add an explicit @return annotation to suppress this message.', $declaringClass, $method->name, $normalizedType, interface_exists($declaringClass) ? 'implementation' : 'child class', $className); - } - } - } - - if (!$doc) { - $this->patchTypes['force'] = $forcePatchTypes; - - continue; - } - - if (isset($doc['return']) || 'void' !== (self::MAGIC_METHODS[$method->name] ?? 'void')) { - $this->setReturnType($doc['return'] ?? self::MAGIC_METHODS[$method->name], $method->class, $method->name, $method->getFileName(), $parent, $method->getReturnType()); - - if (isset(self::$returnTypes[$class][$method->name][0]) && $canAddReturnType) { - $this->fixReturnStatements($method, self::$returnTypes[$class][$method->name][0]); - } - - if ($method->isPrivate()) { - unset(self::$returnTypes[$class][$method->name]); - } - } - - $this->patchTypes['force'] = $forcePatchTypes; - - if ($method->isPrivate()) { - continue; - } - - $finalOrInternal = false; - - foreach (['final', 'internal'] as $annotation) { - if (null !== $description = $doc[$annotation][0] ?? null) { - self::${$annotation.'Methods'}[$class][$method->name] = [$class, '' !== $description ? ' '.$description.(preg_match('/[[:punct:]]$/', $description) ? '' : '.') : '.']; - $finalOrInternal = true; - } - } - - if ($finalOrInternal || $method->isConstructor() || !isset($doc['param']) || StatelessInvocation::class === $class) { - continue; - } - if (!isset(self::$annotatedParameters[$class][$method->name])) { - $definedParameters = []; - foreach ($method->getParameters() as $parameter) { - $definedParameters[$parameter->name] = true; - } - } - foreach ($doc['param'] as $parameterName => $parameterType) { - if (!isset($definedParameters[$parameterName])) { - self::$annotatedParameters[$class][$method->name][$parameterName] = sprintf('The "%%s::%s()" method will require a new "%s$%s" argument in the next major version of its %s "%s", not defining it is deprecated.', $method->name, $parameterType ? $parameterType.' ' : '', $parameterName, interface_exists($className) ? 'interface' : 'parent class', $className); - } - } - } - - $finals = isset(self::$final[$class]) || $refl->isFinal() ? [] : [ - 'finalConstants' => $refl->getReflectionConstants(\ReflectionClassConstant::IS_PUBLIC | \ReflectionClassConstant::IS_PROTECTED), - 'finalProperties' => $refl->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED), - ]; - foreach ($finals as $type => $reflectors) { - foreach ($reflectors as $r) { - if ($r->class !== $class) { - continue; - } - - $doc = $this->parsePhpDoc($r); - - foreach ($parentAndOwnInterfaces as $use) { - if (isset(self::${$type}[$use][$r->name]) && !isset($doc['deprecated']) && ('finalConstants' === $type || substr($use, 0, strrpos($use, '\\')) !== substr($use, 0, strrpos($class, '\\')))) { - $msg = 'finalConstants' === $type ? '%s" constant' : '$%s" property'; - $deprecations[] = sprintf('The "%s::'.$msg.' is considered final. You should not override it in "%s".', self::${$type}[$use][$r->name], $r->name, $class); - } - } - - if (isset($doc['final']) || ('finalProperties' === $type && str_starts_with($class, 'Symfony\\') && !$r->hasType())) { - self::${$type}[$class][$r->name] = $class; - } - } - } - - return $deprecations; - } - - public function checkCase(\ReflectionClass $refl, string $file, string $class): ?array - { - $real = explode('\\', $class.strrchr($file, '.')); - $tail = explode(\DIRECTORY_SEPARATOR, str_replace('/', \DIRECTORY_SEPARATOR, $file)); - - $i = \count($tail) - 1; - $j = \count($real) - 1; - - while (isset($tail[$i], $real[$j]) && $tail[$i] === $real[$j]) { - --$i; - --$j; - } - - array_splice($tail, 0, $i + 1); - - if (!$tail) { - return null; - } - - $tail = \DIRECTORY_SEPARATOR.implode(\DIRECTORY_SEPARATOR, $tail); - $tailLen = \strlen($tail); - $real = $refl->getFileName(); - - if (2 === self::$caseCheck) { - $real = $this->darwinRealpath($real); - } - - if (0 === substr_compare($real, $tail, -$tailLen, $tailLen, true) - && 0 !== substr_compare($real, $tail, -$tailLen, $tailLen, false) - ) { - return [substr($tail, -$tailLen + 1), substr($real, -$tailLen + 1), substr($real, 0, -$tailLen + 1)]; - } - - return null; - } - - /** - * `realpath` on MacOSX doesn't normalize the case of characters. - */ - private function darwinRealpath(string $real): string - { - $i = 1 + strrpos($real, '/'); - $file = substr($real, $i); - $real = substr($real, 0, $i); - - if (isset(self::$darwinCache[$real])) { - $kDir = $real; - } else { - $kDir = strtolower($real); - - if (isset(self::$darwinCache[$kDir])) { - $real = self::$darwinCache[$kDir][0]; - } else { - $dir = getcwd(); - - if (!@chdir($real)) { - return $real.$file; - } - - $real = getcwd().'/'; - chdir($dir); - - $dir = $real; - $k = $kDir; - $i = \strlen($dir) - 1; - while (!isset(self::$darwinCache[$k])) { - self::$darwinCache[$k] = [$dir, []]; - self::$darwinCache[$dir] = &self::$darwinCache[$k]; - - while ('/' !== $dir[--$i]) { - } - $k = substr($k, 0, ++$i); - $dir = substr($dir, 0, $i--); - } - } - } - - $dirFiles = self::$darwinCache[$kDir][1]; - - if (!isset($dirFiles[$file]) && str_ends_with($file, ') : eval()\'d code')) { - // Get the file name from "file_name.php(123) : eval()'d code" - $file = substr($file, 0, strrpos($file, '(', -17)); - } - - if (isset($dirFiles[$file])) { - return $real.$dirFiles[$file]; - } - - $kFile = strtolower($file); - - if (!isset($dirFiles[$kFile])) { - foreach (scandir($real, 2) as $f) { - if ('.' !== $f[0]) { - $dirFiles[$f] = $f; - if ($f === $file) { - $kFile = $file; - } elseif ($f !== $k = strtolower($f)) { - $dirFiles[$k] = $f; - } - } - } - self::$darwinCache[$kDir][1] = $dirFiles; - } - - return $real.$dirFiles[$kFile]; - } - - /** - * `class_implements` includes interfaces from the parents so we have to manually exclude them. - * - * @return string[] - */ - private function getOwnInterfaces(string $class, ?string $parent): array - { - $ownInterfaces = class_implements($class, false); - - if ($parent) { - foreach (class_implements($parent, false) as $interface) { - unset($ownInterfaces[$interface]); - } - } - - foreach ($ownInterfaces as $interface) { - foreach (class_implements($interface) as $interface) { - unset($ownInterfaces[$interface]); - } - } - - return $ownInterfaces; - } - - private function setReturnType(string $types, string $class, string $method, string $filename, ?string $parent, ?\ReflectionType $returnType = null): void - { - if ('__construct' === $method) { - return; - } - - if ('null' === $types) { - self::$returnTypes[$class][$method] = ['null', 'null', $class, $filename]; - - return; - } - - if ($nullable = str_starts_with($types, 'null|')) { - $types = substr($types, 5); - } elseif ($nullable = str_ends_with($types, '|null')) { - $types = substr($types, 0, -5); - } - $arrayType = ['array' => 'array']; - $typesMap = []; - $glue = str_contains($types, '&') ? '&' : '|'; - foreach (explode($glue, $types) as $t) { - $t = self::SPECIAL_RETURN_TYPES[strtolower($t)] ?? $t; - $typesMap[$this->normalizeType($t, $class, $parent, $returnType)][$t] = $t; - } - - if (isset($typesMap['array'])) { - if (isset($typesMap['Traversable']) || isset($typesMap['\Traversable'])) { - $typesMap['iterable'] = $arrayType !== $typesMap['array'] ? $typesMap['array'] : ['iterable']; - unset($typesMap['array'], $typesMap['Traversable'], $typesMap['\Traversable']); - } elseif ($arrayType !== $typesMap['array'] && isset(self::$returnTypes[$class][$method]) && !$returnType) { - return; - } - } - - if (isset($typesMap['array']) && isset($typesMap['iterable'])) { - if ($arrayType !== $typesMap['array']) { - $typesMap['iterable'] = $typesMap['array']; - } - unset($typesMap['array']); - } - - $iterable = $object = true; - foreach ($typesMap as $n => $t) { - if ('null' !== $n) { - $iterable = $iterable && (\in_array($n, ['array', 'iterable']) || str_contains($n, 'Iterator')); - $object = $object && (\in_array($n, ['callable', 'object', '$this', 'static']) || !isset(self::SPECIAL_RETURN_TYPES[$n])); - } - } - - $phpTypes = []; - $docTypes = []; - - foreach ($typesMap as $n => $t) { - if ('null' === $n) { - $nullable = true; - continue; - } - - $docTypes[] = $t; - - if ('mixed' === $n || 'void' === $n) { - $nullable = false; - $phpTypes = ['' => $n]; - continue; - } - - if ('resource' === $n) { - // there is no native type for "resource" - return; - } - - if (!preg_match('/^(?:\\\\?[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)+$/', $n)) { - // exclude any invalid PHP class name (e.g. `Cookie::SAMESITE_*`) - continue; - } - - if (!isset($phpTypes[''])) { - $phpTypes[] = $n; - } - } - $docTypes = array_merge([], ...$docTypes); - - if (!$phpTypes) { - return; - } - - if (1 < \count($phpTypes)) { - if ($iterable && '8.0' > $this->patchTypes['php']) { - $phpTypes = $docTypes = ['iterable']; - } elseif ($object && 'object' === $this->patchTypes['force']) { - $phpTypes = $docTypes = ['object']; - } elseif ('8.0' > $this->patchTypes['php']) { - // ignore multi-types return declarations - return; - } - } - - $phpType = sprintf($nullable ? (1 < \count($phpTypes) ? '%s|null' : '?%s') : '%s', implode($glue, $phpTypes)); - $docType = sprintf($nullable ? '%s|null' : '%s', implode($glue, $docTypes)); - - self::$returnTypes[$class][$method] = [$phpType, $docType, $class, $filename]; - } - - private function normalizeType(string $type, string $class, ?string $parent, ?\ReflectionType $returnType): string - { - if (isset(self::SPECIAL_RETURN_TYPES[$lcType = strtolower($type)])) { - if ('parent' === $lcType = self::SPECIAL_RETURN_TYPES[$lcType]) { - $lcType = null !== $parent ? '\\'.$parent : 'parent'; - } elseif ('self' === $lcType) { - $lcType = '\\'.$class; - } - - return $lcType; - } - - // We could resolve "use" statements to return the FQDN - // but this would be too expensive for a runtime checker - - if (!str_ends_with($type, '[]')) { - return $type; - } - - if ($returnType instanceof \ReflectionNamedType) { - $type = $returnType->getName(); - - if ('mixed' !== $type) { - return isset(self::SPECIAL_RETURN_TYPES[$type]) ? $type : '\\'.$type; - } - } - - return 'array'; - } - - /** - * Utility method to add #[ReturnTypeWillChange] where php triggers deprecations. - */ - private function patchReturnTypeWillChange(\ReflectionMethod $method): void - { - if (\count($method->getAttributes(\ReturnTypeWillChange::class))) { - return; - } - - if (!is_file($file = $method->getFileName())) { - return; - } - - $fileOffset = self::$fileOffsets[$file] ?? 0; - - $code = file($file); - - $startLine = $method->getStartLine() + $fileOffset - 2; - - if (false !== stripos($code[$startLine], 'ReturnTypeWillChange')) { - return; - } - - $code[$startLine] .= " #[\\ReturnTypeWillChange]\n"; - self::$fileOffsets[$file] = 1 + $fileOffset; - file_put_contents($file, $code); - } - - /** - * Utility method to add @return annotations to the Symfony code-base where it triggers self-deprecations. - */ - private function patchMethod(\ReflectionMethod $method, string $returnType, string $declaringFile, string $normalizedType): void - { - static $patchedMethods = []; - static $useStatements = []; - - if (!is_file($file = $method->getFileName()) || isset($patchedMethods[$file][$startLine = $method->getStartLine()])) { - return; - } - - $patchedMethods[$file][$startLine] = true; - $fileOffset = self::$fileOffsets[$file] ?? 0; - $startLine += $fileOffset - 2; - if ($nullable = str_ends_with($returnType, '|null')) { - $returnType = substr($returnType, 0, -5); - } - $glue = str_contains($returnType, '&') ? '&' : '|'; - $returnType = explode($glue, $returnType); - $code = file($file); - - foreach ($returnType as $i => $type) { - if (preg_match('/((?:\[\])+)$/', $type, $m)) { - $type = substr($type, 0, -\strlen($m[1])); - $format = '%s'.$m[1]; - } else { - $format = null; - } - - if (isset(self::SPECIAL_RETURN_TYPES[$type]) || ('\\' === $type[0] && !$p = strrpos($type, '\\', 1))) { - continue; - } - - [$namespace, $useOffset, $useMap] = $useStatements[$file] ??= self::getUseStatements($file); - - if ('\\' !== $type[0]) { - [$declaringNamespace, , $declaringUseMap] = $useStatements[$declaringFile] ??= self::getUseStatements($declaringFile); - - $p = strpos($type, '\\', 1); - $alias = $p ? substr($type, 0, $p) : $type; - - if (isset($declaringUseMap[$alias])) { - $type = '\\'.$declaringUseMap[$alias].($p ? substr($type, $p) : ''); - } else { - $type = '\\'.$declaringNamespace.$type; - } - - $p = strrpos($type, '\\', 1); - } - - $alias = substr($type, 1 + $p); - $type = substr($type, 1); - - if (!isset($useMap[$alias]) && (class_exists($c = $namespace.$alias) || interface_exists($c) || trait_exists($c))) { - $useMap[$alias] = $c; - } - - if (!isset($useMap[$alias])) { - $useStatements[$file][2][$alias] = $type; - $code[$useOffset] = "use $type;\n".$code[$useOffset]; - ++$fileOffset; - } elseif ($useMap[$alias] !== $type) { - $alias .= 'FIXME'; - $useStatements[$file][2][$alias] = $type; - $code[$useOffset] = "use $type as $alias;\n".$code[$useOffset]; - ++$fileOffset; - } - - $returnType[$i] = null !== $format ? sprintf($format, $alias) : $alias; - } - - if ('docblock' === $this->patchTypes['force'] || ('object' === $normalizedType && '7.1' === $this->patchTypes['php'])) { - $returnType = implode($glue, $returnType).($nullable ? '|null' : ''); - - if (str_contains($code[$startLine], '#[')) { - --$startLine; - } - - if ($method->getDocComment()) { - $code[$startLine] = " * @return $returnType\n".$code[$startLine]; - } else { - $code[$startLine] .= <<fixReturnStatements($method, $normalizedType); - } - - private static function getUseStatements(string $file): array - { - $namespace = ''; - $useMap = []; - $useOffset = 0; - - if (!is_file($file)) { - return [$namespace, $useOffset, $useMap]; - } - - $file = file($file); - - for ($i = 0; $i < \count($file); ++$i) { - if (preg_match('/^(class|interface|trait|abstract) /', $file[$i])) { - break; - } - - if (str_starts_with($file[$i], 'namespace ')) { - $namespace = substr($file[$i], \strlen('namespace '), -2).'\\'; - $useOffset = $i + 2; - } - - if (str_starts_with($file[$i], 'use ')) { - $useOffset = $i; - - for (; str_starts_with($file[$i], 'use '); ++$i) { - $u = explode(' as ', substr($file[$i], 4, -2), 2); - - if (1 === \count($u)) { - $p = strrpos($u[0], '\\'); - $useMap[substr($u[0], false !== $p ? 1 + $p : 0)] = $u[0]; - } else { - $useMap[$u[1]] = $u[0]; - } - } - - break; - } - } - - return [$namespace, $useOffset, $useMap]; - } - - private function fixReturnStatements(\ReflectionMethod $method, string $returnType): void - { - if ('docblock' !== $this->patchTypes['force']) { - if ('7.1' === $this->patchTypes['php'] && 'object' === ltrim($returnType, '?')) { - return; - } - - if ('7.4' > $this->patchTypes['php'] && $method->hasReturnType()) { - return; - } - - if ('8.0' > $this->patchTypes['php'] && (str_contains($returnType, '|') || \in_array($returnType, ['mixed', 'static'], true))) { - return; - } - - if ('8.1' > $this->patchTypes['php'] && str_contains($returnType, '&')) { - return; - } - } - - if (!is_file($file = $method->getFileName())) { - return; - } - - $fixedCode = $code = file($file); - $i = (self::$fileOffsets[$file] ?? 0) + $method->getStartLine(); - - if ('?' !== $returnType && 'docblock' !== $this->patchTypes['force']) { - $fixedCode[$i - 1] = preg_replace('/\)(?::[^;\n]++)?(;?\n)/', "): $returnType\\1", $code[$i - 1]); - } - - $end = $method->isGenerator() ? $i : $method->getEndLine(); - $inClosure = false; - $braces = 0; - for (; $i < $end; ++$i) { - if (!$inClosure) { - $inClosure = false !== strpos($code[$i], 'function ('); - } - - if ($inClosure) { - $braces += substr_count($code[$i], '{') - substr_count($code[$i], '}'); - $inClosure = $braces > 0; - - continue; - } - - if ('void' === $returnType) { - $fixedCode[$i] = str_replace(' return null;', ' return;', $code[$i]); - } elseif ('mixed' === $returnType || '?' === $returnType[0]) { - $fixedCode[$i] = str_replace(' return;', ' return null;', $code[$i]); - } else { - $fixedCode[$i] = str_replace(' return;', " return $returnType!?;", $code[$i]); - } - } - - if ($fixedCode !== $code) { - file_put_contents($file, $fixedCode); - } - } - - /** - * @param \ReflectionClass|\ReflectionMethod|\ReflectionProperty $reflector - */ - private function parsePhpDoc(\Reflector $reflector): array - { - if (!$doc = $reflector->getDocComment()) { - return []; - } - - $tagName = ''; - $tagContent = ''; - - $tags = []; - - foreach (explode("\n", substr($doc, 3, -2)) as $line) { - $line = ltrim($line); - $line = ltrim($line, '*'); - - if ('' === $line = trim($line)) { - if ('' !== $tagName) { - $tags[$tagName][] = $tagContent; - } - $tagName = $tagContent = ''; - continue; - } - - if ('@' === $line[0]) { - if ('' !== $tagName) { - $tags[$tagName][] = $tagContent; - $tagContent = ''; - } - - if (preg_match('{^@([-a-zA-Z0-9_:]++)(\s|$)}', $line, $m)) { - $tagName = $m[1]; - $tagContent = str_replace("\t", ' ', ltrim(substr($line, 2 + \strlen($tagName)))); - } else { - $tagName = ''; - } - } elseif ('' !== $tagName) { - $tagContent .= ' '.str_replace("\t", ' ', $line); - } - } - - if ('' !== $tagName) { - $tags[$tagName][] = $tagContent; - } - - foreach ($tags['method'] ?? [] as $i => $method) { - unset($tags['method'][$i]); - - $parts = preg_split('{(\s++|\((?:[^()]*+|(?R))*\)(?: *: *[^ ]++)?|<(?:[^<>]*+|(?R))*>|\{(?:[^{}]*+|(?R))*\})}', $method, -1, \PREG_SPLIT_DELIM_CAPTURE); - $returnType = ''; - $static = 'static' === $parts[0]; - - for ($i = $static ? 2 : 0; null !== $p = $parts[$i] ?? null; $i += 2) { - if (\in_array($p, ['', '|', '&', 'callable'], true) || \in_array(substr($returnType, -1), ['|', '&'], true)) { - $returnType .= trim($parts[$i - 1] ?? '').$p; - continue; - } - - $signature = '(' === ($parts[$i + 1][0] ?? '(') ? $parts[$i + 1] ?? '()' : null; - - if (null === $signature && '' === $returnType) { - $returnType = $p; - continue; - } - - if ($static && 2 === $i) { - $static = false; - $returnType = 'static'; - } - - if (\in_array($description = trim(implode('', \array_slice($parts, 2 + $i))), ['', '.'], true)) { - $description = null; - } elseif (!preg_match('/[.!]$/', $description)) { - $description .= '.'; - } - - $tags['method'][$p] = [$static, $returnType, $signature ?? '()', $description]; - break; - } - } - - foreach ($tags['param'] ?? [] as $i => $param) { - unset($tags['param'][$i]); - - if (\strlen($param) !== strcspn($param, '<{(')) { - $param = preg_replace('{\(([^()]*+|(?R))*\)(?: *: *[^ ]++)?|<([^<>]*+|(?R))*>|\{([^{}]*+|(?R))*\}}', '', $param); - } - - if (false === $i = strpos($param, '$')) { - continue; - } - - $type = 0 === $i ? '' : rtrim(substr($param, 0, $i), ' &'); - $param = substr($param, 1 + $i, (strpos($param, ' ', $i) ?: (1 + $i + \strlen($param))) - $i - 1); - - $tags['param'][$param] = $type; - } - - foreach (['var', 'return'] as $k) { - if (null === $v = $tags[$k][0] ?? null) { - continue; - } - if (\strlen($v) !== strcspn($v, '<{(')) { - $v = preg_replace('{\(([^()]*+|(?R))*\)(?: *: *[^ ]++)?|<([^<>]*+|(?R))*>|\{([^{}]*+|(?R))*\}}', '', $v); - } - - $tags[$k] = substr($v, 0, strpos($v, ' ') ?: \strlen($v)) ?: null; - } - - return $tags; - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Error/ClassNotFoundError.php b/projects/priceservice/vendor/symfony/error-handler/Error/ClassNotFoundError.php deleted file mode 100644 index 8a17745..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Error/ClassNotFoundError.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Error; - -class ClassNotFoundError extends \Error -{ - public function __construct(string $message, \Throwable $previous) - { - parent::__construct($message, $previous->getCode(), $previous->getPrevious()); - - foreach ([ - 'file' => $previous->getFile(), - 'line' => $previous->getLine(), - 'trace' => $previous->getTrace(), - ] as $property => $value) { - $refl = new \ReflectionProperty(\Error::class, $property); - $refl->setValue($this, $value); - } - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Error/FatalError.php b/projects/priceservice/vendor/symfony/error-handler/Error/FatalError.php deleted file mode 100644 index a0657b7..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Error/FatalError.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Error; - -class FatalError extends \Error -{ - private array $error; - - /** - * @param array $error An array as returned by error_get_last() - */ - public function __construct(string $message, int $code, array $error, ?int $traceOffset = null, bool $traceArgs = true, ?array $trace = null) - { - parent::__construct($message, $code); - - $this->error = $error; - - if (null !== $trace) { - if (!$traceArgs) { - foreach ($trace as &$frame) { - unset($frame['args'], $frame['this'], $frame); - } - } - } elseif (null !== $traceOffset) { - if (\function_exists('xdebug_get_function_stack') && \in_array(\ini_get('xdebug.mode'), ['develop', false], true) && $trace = @xdebug_get_function_stack()) { - if (0 < $traceOffset) { - array_splice($trace, -$traceOffset); - } - - foreach ($trace as &$frame) { - if (!isset($frame['type'])) { - // XDebug pre 2.1.1 doesn't currently set the call type key http://bugs.xdebug.org/view.php?id=695 - if (isset($frame['class'])) { - $frame['type'] = '::'; - } - } elseif ('dynamic' === $frame['type']) { - $frame['type'] = '->'; - } elseif ('static' === $frame['type']) { - $frame['type'] = '::'; - } - - // XDebug also has a different name for the parameters array - if (!$traceArgs) { - unset($frame['params'], $frame['args']); - } elseif (isset($frame['params']) && !isset($frame['args'])) { - $frame['args'] = $frame['params']; - unset($frame['params']); - } - } - - unset($frame); - $trace = array_reverse($trace); - } else { - $trace = []; - } - } - - foreach ([ - 'file' => $error['file'], - 'line' => $error['line'], - 'trace' => $trace, - ] as $property => $value) { - if (null !== $value) { - $refl = new \ReflectionProperty(\Error::class, $property); - $refl->setValue($this, $value); - } - } - } - - public function getError(): array - { - return $this->error; - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Error/OutOfMemoryError.php b/projects/priceservice/vendor/symfony/error-handler/Error/OutOfMemoryError.php deleted file mode 100644 index d685c3d..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Error/OutOfMemoryError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Error; - -class OutOfMemoryError extends FatalError -{ -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedFunctionError.php b/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedFunctionError.php deleted file mode 100644 index 5063b73..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedFunctionError.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Error; - -class UndefinedFunctionError extends \Error -{ - public function __construct(string $message, \Throwable $previous) - { - parent::__construct($message, $previous->getCode(), $previous->getPrevious()); - - foreach ([ - 'file' => $previous->getFile(), - 'line' => $previous->getLine(), - 'trace' => $previous->getTrace(), - ] as $property => $value) { - $refl = new \ReflectionProperty(\Error::class, $property); - $refl->setValue($this, $value); - } - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedMethodError.php b/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedMethodError.php deleted file mode 100644 index 35f1545..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Error/UndefinedMethodError.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Error; - -class UndefinedMethodError extends \Error -{ - public function __construct(string $message, \Throwable $previous) - { - parent::__construct($message, $previous->getCode(), $previous->getPrevious()); - - foreach ([ - 'file' => $previous->getFile(), - 'line' => $previous->getLine(), - 'trace' => $previous->getTrace(), - ] as $property => $value) { - $refl = new \ReflectionProperty(\Error::class, $property); - $refl->setValue($this, $value); - } - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php deleted file mode 100644 index b4623cf..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php +++ /dev/null @@ -1,183 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorEnhancer; - -use Composer\Autoload\ClassLoader; -use Symfony\Component\ErrorHandler\DebugClassLoader; -use Symfony\Component\ErrorHandler\Error\ClassNotFoundError; -use Symfony\Component\ErrorHandler\Error\FatalError; - -/** - * @author Fabien Potencier - */ -class ClassNotFoundErrorEnhancer implements ErrorEnhancerInterface -{ - public function enhance(\Throwable $error): ?\Throwable - { - // Some specific versions of PHP produce a fatal error when extending a not found class. - $message = !$error instanceof FatalError ? $error->getMessage() : $error->getError()['message']; - if (!preg_match('/^(Class|Interface|Trait) [\'"]([^\'"]+)[\'"] not found$/', $message, $matches)) { - return null; - } - $typeName = strtolower($matches[1]); - $fullyQualifiedClassName = $matches[2]; - - if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedClassName, '\\')) { - $className = substr($fullyQualifiedClassName, $namespaceSeparatorIndex + 1); - $namespacePrefix = substr($fullyQualifiedClassName, 0, $namespaceSeparatorIndex); - $message = sprintf('Attempted to load %s "%s" from namespace "%s".', $typeName, $className, $namespacePrefix); - $tail = ' for another namespace?'; - } else { - $className = $fullyQualifiedClassName; - $message = sprintf('Attempted to load %s "%s" from the global namespace.', $typeName, $className); - $tail = '?'; - } - - if ($candidates = $this->getClassCandidates($className)) { - $tail = array_pop($candidates).'"?'; - if ($candidates) { - $tail = ' for e.g. "'.implode('", "', $candidates).'" or "'.$tail; - } else { - $tail = ' for "'.$tail; - } - } - $message .= "\nDid you forget a \"use\" statement".$tail; - - return new ClassNotFoundError($message, $error); - } - - /** - * Tries to guess the full namespace for a given class name. - * - * By default, it looks for PSR-0 and PSR-4 classes registered via a Symfony or a Composer - * autoloader (that should cover all common cases). - * - * @param string $class A class name (without its namespace) - * - * Returns an array of possible fully qualified class names - */ - private function getClassCandidates(string $class): array - { - if (!\is_array($functions = spl_autoload_functions())) { - return []; - } - - // find Symfony and Composer autoloaders - $classes = []; - - foreach ($functions as $function) { - if (!\is_array($function)) { - continue; - } - // get class loaders wrapped by DebugClassLoader - if ($function[0] instanceof DebugClassLoader) { - $function = $function[0]->getClassLoader(); - - if (!\is_array($function)) { - continue; - } - } - - if ($function[0] instanceof ClassLoader) { - foreach ($function[0]->getPrefixes() as $prefix => $paths) { - foreach ($paths as $path) { - $classes[] = $this->findClassInPath($path, $class, $prefix); - } - } - - foreach ($function[0]->getPrefixesPsr4() as $prefix => $paths) { - foreach ($paths as $path) { - $classes[] = $this->findClassInPath($path, $class, $prefix); - } - } - } - } - - return array_unique(array_merge([], ...$classes)); - } - - private function findClassInPath(string $path, string $class, string $prefix): array - { - $path = realpath($path.'/'.strtr($prefix, '\\_', '//')) ?: realpath($path.'/'.\dirname(strtr($prefix, '\\_', '//'))) ?: realpath($path); - if (!$path || !is_dir($path)) { - return []; - } - - $classes = []; - $filename = $class.'.php'; - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) { - if ($filename == $file->getFileName() && $class = $this->convertFileToClass($path, $file->getPathName(), $prefix)) { - $classes[] = $class; - } - } - - return $classes; - } - - private function convertFileToClass(string $path, string $file, string $prefix): ?string - { - $candidates = [ - // namespaced class - $namespacedClass = str_replace([$path.\DIRECTORY_SEPARATOR, '.php', '/'], ['', '', '\\'], $file), - // namespaced class (with target dir) - $prefix.$namespacedClass, - // namespaced class (with target dir and separator) - $prefix.'\\'.$namespacedClass, - // PEAR class - str_replace('\\', '_', $namespacedClass), - // PEAR class (with target dir) - str_replace('\\', '_', $prefix.$namespacedClass), - // PEAR class (with target dir and separator) - str_replace('\\', '_', $prefix.'\\'.$namespacedClass), - ]; - - if ($prefix) { - $candidates = array_filter($candidates, fn ($candidate) => str_starts_with($candidate, $prefix)); - } - - // We cannot use the autoloader here as most of them use require; but if the class - // is not found, the new autoloader call will require the file again leading to a - // "cannot redeclare class" error. - foreach ($candidates as $candidate) { - if ($this->classExists($candidate)) { - return $candidate; - } - } - - // Symfony may ship some polyfills, like "Normalizer". But if the Intl - // extension is already installed, the next require_once will fail with - // a compile error because the class is already defined. And this one - // does not throw a Throwable. So it's better to skip it here. - if (str_contains($file, 'Resources/stubs')) { - return null; - } - - try { - require_once $file; - } catch (\Throwable) { - return null; - } - - foreach ($candidates as $candidate) { - if ($this->classExists($candidate)) { - return $candidate; - } - } - - return null; - } - - private function classExists(string $class): bool - { - return class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ErrorEnhancerInterface.php b/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ErrorEnhancerInterface.php deleted file mode 100644 index 7c3f4ef..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/ErrorEnhancerInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorEnhancer; - -interface ErrorEnhancerInterface -{ - /** - * Returns an \Throwable instance if the class is able to improve the error, null otherwise. - */ - public function enhance(\Throwable $error): ?\Throwable; -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php deleted file mode 100644 index 0458c26..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedFunctionErrorEnhancer.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorEnhancer; - -use Symfony\Component\ErrorHandler\Error\FatalError; -use Symfony\Component\ErrorHandler\Error\UndefinedFunctionError; - -/** - * @author Fabien Potencier - */ -class UndefinedFunctionErrorEnhancer implements ErrorEnhancerInterface -{ - public function enhance(\Throwable $error): ?\Throwable - { - if ($error instanceof FatalError) { - return null; - } - - $message = $error->getMessage(); - $messageLen = \strlen($message); - $notFoundSuffix = '()'; - $notFoundSuffixLen = \strlen($notFoundSuffix); - if ($notFoundSuffixLen > $messageLen) { - return null; - } - - if (0 !== substr_compare($message, $notFoundSuffix, -$notFoundSuffixLen)) { - return null; - } - - $prefix = 'Call to undefined function '; - $prefixLen = \strlen($prefix); - if (!str_starts_with($message, $prefix)) { - return null; - } - - $fullyQualifiedFunctionName = substr($message, $prefixLen, -$notFoundSuffixLen); - if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedFunctionName, '\\')) { - $functionName = substr($fullyQualifiedFunctionName, $namespaceSeparatorIndex + 1); - $namespacePrefix = substr($fullyQualifiedFunctionName, 0, $namespaceSeparatorIndex); - $message = sprintf('Attempted to call function "%s" from namespace "%s".', $functionName, $namespacePrefix); - } else { - $functionName = $fullyQualifiedFunctionName; - $message = sprintf('Attempted to call function "%s" from the global namespace.', $functionName); - } - - $candidates = []; - foreach (get_defined_functions() as $type => $definedFunctionNames) { - foreach ($definedFunctionNames as $definedFunctionName) { - if (false !== $namespaceSeparatorIndex = strrpos($definedFunctionName, '\\')) { - $definedFunctionNameBasename = substr($definedFunctionName, $namespaceSeparatorIndex + 1); - } else { - $definedFunctionNameBasename = $definedFunctionName; - } - - if ($definedFunctionNameBasename === $functionName) { - $candidates[] = '\\'.$definedFunctionName; - } - } - } - - if ($candidates) { - sort($candidates); - $last = array_pop($candidates).'"?'; - if ($candidates) { - $candidates = 'e.g. "'.implode('", "', $candidates).'" or "'.$last; - } else { - $candidates = '"'.$last; - } - $message .= "\nDid you mean to call ".$candidates; - } - - return new UndefinedFunctionError($message, $error); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php deleted file mode 100644 index 80eaec9..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorEnhancer/UndefinedMethodErrorEnhancer.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorEnhancer; - -use Symfony\Component\ErrorHandler\Error\FatalError; -use Symfony\Component\ErrorHandler\Error\UndefinedMethodError; - -/** - * @author Grégoire Pineau - */ -class UndefinedMethodErrorEnhancer implements ErrorEnhancerInterface -{ - public function enhance(\Throwable $error): ?\Throwable - { - if ($error instanceof FatalError) { - return null; - } - - $message = $error->getMessage(); - preg_match('/^Call to undefined method (.*)::(.*)\(\)$/', $message, $matches); - if (!$matches) { - return null; - } - - $className = $matches[1]; - $methodName = $matches[2]; - - $message = sprintf('Attempted to call an undefined method named "%s" of class "%s".', $methodName, $className); - - if ('' === $methodName || !class_exists($className) || null === $methods = get_class_methods($className)) { - // failed to get the class or its methods on which an unknown method was called (for example on an anonymous class) - return new UndefinedMethodError($message, $error); - } - - $candidates = []; - foreach ($methods as $definedMethodName) { - $lev = levenshtein($methodName, $definedMethodName); - if ($lev <= \strlen($methodName) / 3 || str_contains($definedMethodName, $methodName)) { - $candidates[] = $definedMethodName; - } - } - - if ($candidates) { - sort($candidates); - $last = array_pop($candidates).'"?'; - if ($candidates) { - $candidates = 'e.g. "'.implode('", "', $candidates).'" or "'.$last; - } else { - $candidates = '"'.$last; - } - - $message .= "\nDid you mean to call ".$candidates; - } - - return new UndefinedMethodError($message, $error); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorHandler.php b/projects/priceservice/vendor/symfony/error-handler/ErrorHandler.php deleted file mode 100644 index 052baf2..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorHandler.php +++ /dev/null @@ -1,747 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler; - -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; -use Symfony\Component\ErrorHandler\Error\FatalError; -use Symfony\Component\ErrorHandler\Error\OutOfMemoryError; -use Symfony\Component\ErrorHandler\ErrorEnhancer\ClassNotFoundErrorEnhancer; -use Symfony\Component\ErrorHandler\ErrorEnhancer\ErrorEnhancerInterface; -use Symfony\Component\ErrorHandler\ErrorEnhancer\UndefinedFunctionErrorEnhancer; -use Symfony\Component\ErrorHandler\ErrorEnhancer\UndefinedMethodErrorEnhancer; -use Symfony\Component\ErrorHandler\ErrorRenderer\CliErrorRenderer; -use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer; -use Symfony\Component\ErrorHandler\Exception\SilencedErrorContext; - -/** - * A generic ErrorHandler for the PHP engine. - * - * Provides five bit fields that control how errors are handled: - * - thrownErrors: errors thrown as \ErrorException - * - loggedErrors: logged errors, when not @-silenced - * - scopedErrors: errors thrown or logged with their local context - * - tracedErrors: errors logged with their stack trace - * - screamedErrors: never @-silenced errors - * - * Each error level can be logged by a dedicated PSR-3 logger object. - * Screaming only applies to logging. - * Throwing takes precedence over logging. - * Uncaught exceptions are logged as E_ERROR. - * E_DEPRECATED and E_USER_DEPRECATED levels never throw. - * E_RECOVERABLE_ERROR and E_USER_ERROR levels always throw. - * Non catchable errors that can be detected at shutdown time are logged when the scream bit field allows so. - * As errors have a performance cost, repeated errors are all logged, so that the developer - * can see them and weight them as more important to fix than others of the same level. - * - * @author Nicolas Grekas - * @author Grégoire Pineau - * - * @final - */ -class ErrorHandler -{ - private array $levels = [ - \E_DEPRECATED => 'Deprecated', - \E_USER_DEPRECATED => 'User Deprecated', - \E_NOTICE => 'Notice', - \E_USER_NOTICE => 'User Notice', - \E_WARNING => 'Warning', - \E_USER_WARNING => 'User Warning', - \E_COMPILE_WARNING => 'Compile Warning', - \E_CORE_WARNING => 'Core Warning', - \E_USER_ERROR => 'User Error', - \E_RECOVERABLE_ERROR => 'Catchable Fatal Error', - \E_COMPILE_ERROR => 'Compile Error', - \E_PARSE => 'Parse Error', - \E_ERROR => 'Error', - \E_CORE_ERROR => 'Core Error', - ]; - - private array $loggers = [ - \E_DEPRECATED => [null, LogLevel::INFO], - \E_USER_DEPRECATED => [null, LogLevel::INFO], - \E_NOTICE => [null, LogLevel::WARNING], - \E_USER_NOTICE => [null, LogLevel::WARNING], - \E_WARNING => [null, LogLevel::WARNING], - \E_USER_WARNING => [null, LogLevel::WARNING], - \E_COMPILE_WARNING => [null, LogLevel::WARNING], - \E_CORE_WARNING => [null, LogLevel::WARNING], - \E_USER_ERROR => [null, LogLevel::CRITICAL], - \E_RECOVERABLE_ERROR => [null, LogLevel::CRITICAL], - \E_COMPILE_ERROR => [null, LogLevel::CRITICAL], - \E_PARSE => [null, LogLevel::CRITICAL], - \E_ERROR => [null, LogLevel::CRITICAL], - \E_CORE_ERROR => [null, LogLevel::CRITICAL], - ]; - - private int $thrownErrors = 0x1FFF; // E_ALL - E_DEPRECATED - E_USER_DEPRECATED - private int $scopedErrors = 0x1FFF; // E_ALL - E_DEPRECATED - E_USER_DEPRECATED - private int $tracedErrors = 0x77FB; // E_ALL - E_STRICT - E_PARSE - private int $screamedErrors = 0x55; // E_ERROR + E_CORE_ERROR + E_COMPILE_ERROR + E_PARSE - private int $loggedErrors = 0; - private \Closure $configureException; - private bool $debug; - - private bool $isRecursive = false; - private bool $isRoot = false; - /** @var callable|null */ - private $exceptionHandler; - private ?BufferingLogger $bootstrappingLogger = null; - - private static ?string $reservedMemory = null; - private static array $silencedErrorCache = []; - private static int $silencedErrorCount = 0; - private static int $exitCode = 0; - - /** - * Registers the error handler. - */ - public static function register(?self $handler = null, bool $replace = true): self - { - if (null === self::$reservedMemory) { - self::$reservedMemory = str_repeat('x', 32768); - register_shutdown_function(self::handleFatalError(...)); - } - - if ($handlerIsNew = null === $handler) { - $handler = new static(); - } - - if (null === $prev = set_error_handler([$handler, 'handleError'])) { - restore_error_handler(); - // Specifying the error types earlier would expose us to https://bugs.php.net/63206 - set_error_handler([$handler, 'handleError'], $handler->thrownErrors | $handler->loggedErrors); - $handler->isRoot = true; - } - - if ($handlerIsNew && \is_array($prev) && $prev[0] instanceof self) { - $handler = $prev[0]; - $replace = false; - } - if (!$replace && $prev) { - restore_error_handler(); - $handlerIsRegistered = \is_array($prev) && $handler === $prev[0]; - } else { - $handlerIsRegistered = true; - } - if (\is_array($prev = set_exception_handler([$handler, 'handleException'])) && $prev[0] instanceof self) { - restore_exception_handler(); - if (!$handlerIsRegistered) { - $handler = $prev[0]; - } elseif ($handler !== $prev[0] && $replace) { - set_exception_handler([$handler, 'handleException']); - $p = $prev[0]->setExceptionHandler(null); - $handler->setExceptionHandler($p); - $prev[0]->setExceptionHandler($p); - } - } else { - $handler->setExceptionHandler($prev ?? [$handler, 'renderException']); - } - - $handler->throwAt(\E_ALL & $handler->thrownErrors, true); - - return $handler; - } - - /** - * Calls a function and turns any PHP error into \ErrorException. - * - * @throws \ErrorException When $function(...$arguments) triggers a PHP error - */ - public static function call(callable $function, mixed ...$arguments): mixed - { - set_error_handler(static function (int $type, string $message, string $file, int $line) { - if (__FILE__ === $file) { - $trace = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 3); - $file = $trace[2]['file'] ?? $file; - $line = $trace[2]['line'] ?? $line; - } - - throw new \ErrorException($message, 0, $type, $file, $line); - }); - - try { - return $function(...$arguments); - } finally { - restore_error_handler(); - } - } - - public function __construct(?BufferingLogger $bootstrappingLogger = null, bool $debug = false) - { - if (\PHP_VERSION_ID < 80400) { - $this->levels[\E_STRICT] = 'Runtime Notice'; - $this->loggers[\E_STRICT] = [null, LogLevel::WARNING]; - } - - if ($bootstrappingLogger) { - $this->bootstrappingLogger = $bootstrappingLogger; - $this->setDefaultLogger($bootstrappingLogger); - } - $traceReflector = new \ReflectionProperty(\Exception::class, 'trace'); - $this->configureException = \Closure::bind(static function ($e, $trace, $file = null, $line = null) use ($traceReflector) { - $traceReflector->setValue($e, $trace); - $e->file = $file ?? $e->file; - $e->line = $line ?? $e->line; - }, null, new class() extends \Exception { - }); - $this->debug = $debug; - } - - /** - * Sets a logger to non assigned errors levels. - * - * @param LoggerInterface $logger A PSR-3 logger to put as default for the given levels - * @param array|int|null $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants - * @param bool $replace Whether to replace or not any existing logger - */ - public function setDefaultLogger(LoggerInterface $logger, array|int|null $levels = \E_ALL, bool $replace = false): void - { - $loggers = []; - - if (\is_array($levels)) { - foreach ($levels as $type => $logLevel) { - if (empty($this->loggers[$type][0]) || $replace || $this->loggers[$type][0] === $this->bootstrappingLogger) { - $loggers[$type] = [$logger, $logLevel]; - } - } - } else { - $levels ??= \E_ALL; - foreach ($this->loggers as $type => $log) { - if (($type & $levels) && (empty($log[0]) || $replace || $log[0] === $this->bootstrappingLogger)) { - $log[0] = $logger; - $loggers[$type] = $log; - } - } - } - - $this->setLoggers($loggers); - } - - /** - * Sets a logger for each error level. - * - * @param array $loggers Error levels to [LoggerInterface|null, LogLevel::*] map - * - * @throws \InvalidArgumentException - */ - public function setLoggers(array $loggers): array - { - $prevLogged = $this->loggedErrors; - $prev = $this->loggers; - $flush = []; - - foreach ($loggers as $type => $log) { - if (!isset($prev[$type])) { - throw new \InvalidArgumentException('Unknown error type: '.$type); - } - if (!\is_array($log)) { - $log = [$log]; - } elseif (!\array_key_exists(0, $log)) { - throw new \InvalidArgumentException('No logger provided.'); - } - if (null === $log[0]) { - $this->loggedErrors &= ~$type; - } elseif ($log[0] instanceof LoggerInterface) { - $this->loggedErrors |= $type; - } else { - throw new \InvalidArgumentException('Invalid logger provided.'); - } - $this->loggers[$type] = $log + $prev[$type]; - - if ($this->bootstrappingLogger && $prev[$type][0] === $this->bootstrappingLogger) { - $flush[$type] = $type; - } - } - $this->reRegister($prevLogged | $this->thrownErrors); - - if ($flush) { - foreach ($this->bootstrappingLogger->cleanLogs() as $log) { - $type = ThrowableUtils::getSeverity($log[2]['exception']); - if (!isset($flush[$type])) { - $this->bootstrappingLogger->log($log[0], $log[1], $log[2]); - } elseif ($this->loggers[$type][0]) { - $this->loggers[$type][0]->log($this->loggers[$type][1], $log[1], $log[2]); - } - } - } - - return $prev; - } - - public function setExceptionHandler(?callable $handler): ?callable - { - $prev = $this->exceptionHandler; - $this->exceptionHandler = $handler; - - return $prev; - } - - /** - * Sets the PHP error levels that throw an exception when a PHP error occurs. - * - * @param int $levels A bit field of E_* constants for thrown errors - * @param bool $replace Replace or amend the previous value - */ - public function throwAt(int $levels, bool $replace = false): int - { - $prev = $this->thrownErrors; - $this->thrownErrors = ($levels | \E_RECOVERABLE_ERROR | \E_USER_ERROR) & ~\E_USER_DEPRECATED & ~\E_DEPRECATED; - if (!$replace) { - $this->thrownErrors |= $prev; - } - $this->reRegister($prev | $this->loggedErrors); - - return $prev; - } - - /** - * Sets the PHP error levels for which local variables are preserved. - * - * @param int $levels A bit field of E_* constants for scoped errors - * @param bool $replace Replace or amend the previous value - */ - public function scopeAt(int $levels, bool $replace = false): int - { - $prev = $this->scopedErrors; - $this->scopedErrors = $levels; - if (!$replace) { - $this->scopedErrors |= $prev; - } - - return $prev; - } - - /** - * Sets the PHP error levels for which the stack trace is preserved. - * - * @param int $levels A bit field of E_* constants for traced errors - * @param bool $replace Replace or amend the previous value - */ - public function traceAt(int $levels, bool $replace = false): int - { - $prev = $this->tracedErrors; - $this->tracedErrors = $levels; - if (!$replace) { - $this->tracedErrors |= $prev; - } - - return $prev; - } - - /** - * Sets the error levels where the @-operator is ignored. - * - * @param int $levels A bit field of E_* constants for screamed errors - * @param bool $replace Replace or amend the previous value - */ - public function screamAt(int $levels, bool $replace = false): int - { - $prev = $this->screamedErrors; - $this->screamedErrors = $levels; - if (!$replace) { - $this->screamedErrors |= $prev; - } - - return $prev; - } - - /** - * Re-registers as a PHP error handler if levels changed. - */ - private function reRegister(int $prev): void - { - if ($prev !== ($this->thrownErrors | $this->loggedErrors)) { - $handler = set_error_handler(static fn () => null); - $handler = \is_array($handler) ? $handler[0] : null; - restore_error_handler(); - if ($handler === $this) { - restore_error_handler(); - if ($this->isRoot) { - set_error_handler([$this, 'handleError'], $this->thrownErrors | $this->loggedErrors); - } else { - set_error_handler([$this, 'handleError']); - } - } - } - } - - /** - * Handles errors by filtering then logging them according to the configured bit fields. - * - * @return bool Returns false when no handling happens so that the PHP engine can handle the error itself - * - * @throws \ErrorException When $this->thrownErrors requests so - * - * @internal - */ - public function handleError(int $type, string $message, string $file, int $line): bool - { - if (\E_WARNING === $type && '"' === $message[0] && str_contains($message, '" targeting switch is equivalent to "break')) { - $type = \E_DEPRECATED; - } - - // Level is the current error reporting level to manage silent error. - $level = error_reporting(); - $silenced = 0 === ($level & $type); - // Strong errors are not authorized to be silenced. - $level |= \E_RECOVERABLE_ERROR | \E_USER_ERROR | \E_DEPRECATED | \E_USER_DEPRECATED; - $log = $this->loggedErrors & $type; - $throw = $this->thrownErrors & $type & $level; - $type &= $level | $this->screamedErrors; - - // Never throw on warnings triggered by assert() - if (\E_WARNING === $type && 'a' === $message[0] && 0 === strncmp($message, 'assert(): ', 10)) { - $throw = 0; - } - - if (!$type || (!$log && !$throw)) { - return false; - } - - $logMessage = $this->levels[$type].': '.$message; - - if (!$throw && !($type & $level)) { - if (!isset(self::$silencedErrorCache[$id = $file.':'.$line])) { - $lightTrace = $this->tracedErrors & $type ? $this->cleanTrace(debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 5), $type, $file, $line, false) : []; - $errorAsException = new SilencedErrorContext($type, $file, $line, isset($lightTrace[1]) ? [$lightTrace[0]] : $lightTrace); - } elseif (isset(self::$silencedErrorCache[$id][$message])) { - $lightTrace = null; - $errorAsException = self::$silencedErrorCache[$id][$message]; - ++$errorAsException->count; - } else { - $lightTrace = []; - $errorAsException = null; - } - - if (100 < ++self::$silencedErrorCount) { - self::$silencedErrorCache = $lightTrace = []; - self::$silencedErrorCount = 1; - } - if ($errorAsException) { - self::$silencedErrorCache[$id][$message] = $errorAsException; - } - if (null === $lightTrace) { - return true; - } - } else { - if (PHP_VERSION_ID < 80303 && str_contains($message, '@anonymous')) { - $backtrace = debug_backtrace(false, 5); - - for ($i = 1; isset($backtrace[$i]); ++$i) { - if (isset($backtrace[$i]['function'], $backtrace[$i]['args'][0]) - && ('trigger_error' === $backtrace[$i]['function'] || 'user_error' === $backtrace[$i]['function']) - ) { - if ($backtrace[$i]['args'][0] !== $message) { - $message = $backtrace[$i]['args'][0]; - } - - break; - } - } - } - - if (false !== strpos($message, "@anonymous\0")) { - $message = $this->parseAnonymousClass($message); - $logMessage = $this->levels[$type].': '.$message; - } - - $errorAsException = new \ErrorException($logMessage, 0, $type, $file, $line); - - if ($throw || $this->tracedErrors & $type) { - $backtrace = $errorAsException->getTrace(); - $backtrace = $this->cleanTrace($backtrace, $type, $file, $line, $throw); - ($this->configureException)($errorAsException, $backtrace, $file, $line); - } else { - ($this->configureException)($errorAsException, []); - } - } - - if ($throw) { - throw $errorAsException; - } - - if ($this->isRecursive) { - $log = 0; - } else { - try { - $this->isRecursive = true; - $level = ($type & $level) ? $this->loggers[$type][1] : LogLevel::DEBUG; - $this->loggers[$type][0]->log($level, $logMessage, $errorAsException ? ['exception' => $errorAsException] : []); - } finally { - $this->isRecursive = false; - } - } - - return !$silenced && $type && $log; - } - - /** - * Handles an exception by logging then forwarding it to another handler. - * - * @internal - */ - public function handleException(\Throwable $exception): void - { - $handlerException = null; - - if (!$exception instanceof FatalError) { - self::$exitCode = 255; - - $type = ThrowableUtils::getSeverity($exception); - } else { - $type = $exception->getError()['type']; - } - - if ($this->loggedErrors & $type) { - if (str_contains($message = $exception->getMessage(), "@anonymous\0")) { - $message = $this->parseAnonymousClass($message); - } - - if ($exception instanceof FatalError) { - $message = 'Fatal '.$message; - } elseif ($exception instanceof \Error) { - $message = 'Uncaught Error: '.$message; - } elseif ($exception instanceof \ErrorException) { - $message = 'Uncaught '.$message; - } else { - $message = 'Uncaught Exception: '.$message; - } - - try { - $this->loggers[$type][0]->log($this->loggers[$type][1], $message, ['exception' => $exception]); - } catch (\Throwable $handlerException) { - } - } - - $exception = $this->enhanceError($exception); - - $exceptionHandler = $this->exceptionHandler; - $this->exceptionHandler = [$this, 'renderException']; - - if (null === $exceptionHandler || $exceptionHandler === $this->exceptionHandler) { - $this->exceptionHandler = null; - } - - try { - if (null !== $exceptionHandler) { - $exceptionHandler($exception); - - return; - } - $handlerException ??= $exception; - } catch (\Throwable $handlerException) { - } - if ($exception === $handlerException && null === $this->exceptionHandler) { - self::$reservedMemory = null; // Disable the fatal error handler - throw $exception; // Give back $exception to the native handler - } - - $loggedErrors = $this->loggedErrors; - if ($exception === $handlerException) { - $this->loggedErrors &= ~$type; - } - - try { - $this->handleException($handlerException); - } finally { - $this->loggedErrors = $loggedErrors; - } - } - - /** - * Shutdown registered function for handling PHP fatal errors. - * - * @param array|null $error An array as returned by error_get_last() - * - * @internal - */ - public static function handleFatalError(?array $error = null): void - { - if (null === self::$reservedMemory) { - return; - } - - $handler = self::$reservedMemory = null; - $handlers = []; - $previousHandler = null; - $sameHandlerLimit = 10; - - while (!\is_array($handler) || !$handler[0] instanceof self) { - $handler = set_exception_handler('is_int'); - restore_exception_handler(); - - if (!$handler) { - break; - } - restore_exception_handler(); - - if ($handler !== $previousHandler) { - array_unshift($handlers, $handler); - $previousHandler = $handler; - } elseif (0 === --$sameHandlerLimit) { - $handler = null; - break; - } - } - foreach ($handlers as $h) { - set_exception_handler($h); - } - if (!$handler) { - if (null === $error && $exitCode = self::$exitCode) { - register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); }); - } - - return; - } - if ($handler !== $h) { - $handler[0]->setExceptionHandler($h); - } - $handler = $handler[0]; - $handlers = []; - - if ($exit = null === $error) { - $error = error_get_last(); - } - - if ($error && $error['type'] &= \E_PARSE | \E_ERROR | \E_CORE_ERROR | \E_COMPILE_ERROR) { - // Let's not throw anymore but keep logging - $handler->throwAt(0, true); - $trace = $error['backtrace'] ?? null; - - if (str_starts_with($error['message'], 'Allowed memory') || str_starts_with($error['message'], 'Out of memory')) { - $fatalError = new OutOfMemoryError($handler->levels[$error['type']].': '.$error['message'], 0, $error, 2, false, $trace); - } else { - $fatalError = new FatalError($handler->levels[$error['type']].': '.$error['message'], 0, $error, 2, true, $trace); - } - } else { - $fatalError = null; - } - - try { - if (null !== $fatalError) { - self::$exitCode = 255; - $handler->handleException($fatalError); - } - } catch (FatalError) { - // Ignore this re-throw - } - - if ($exit && $exitCode = self::$exitCode) { - register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); }); - } - } - - /** - * Renders the given exception. - * - * As this method is mainly called during boot where nothing is yet available, - * the output is always either HTML or CLI depending where PHP runs. - */ - private function renderException(\Throwable $exception): void - { - $renderer = \in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? new CliErrorRenderer() : new HtmlErrorRenderer($this->debug); - - $exception = $renderer->render($exception); - - if (!headers_sent()) { - http_response_code($exception->getStatusCode()); - - foreach ($exception->getHeaders() as $name => $value) { - header($name.': '.$value, false); - } - } - - echo $exception->getAsString(); - } - - public function enhanceError(\Throwable $exception): \Throwable - { - if ($exception instanceof OutOfMemoryError) { - return $exception; - } - - foreach ($this->getErrorEnhancers() as $errorEnhancer) { - if ($e = $errorEnhancer->enhance($exception)) { - return $e; - } - } - - return $exception; - } - - /** - * Override this method if you want to define more error enhancers. - * - * @return ErrorEnhancerInterface[] - */ - protected function getErrorEnhancers(): iterable - { - return [ - new UndefinedFunctionErrorEnhancer(), - new UndefinedMethodErrorEnhancer(), - new ClassNotFoundErrorEnhancer(), - ]; - } - - /** - * Cleans the trace by removing function arguments and the frames added by the error handler and DebugClassLoader. - */ - private function cleanTrace(array $backtrace, int $type, string &$file, int &$line, bool $throw): array - { - $lightTrace = $backtrace; - - for ($i = 0; isset($backtrace[$i]); ++$i) { - if (isset($backtrace[$i]['file'], $backtrace[$i]['line']) && $backtrace[$i]['line'] === $line && $backtrace[$i]['file'] === $file) { - $lightTrace = \array_slice($lightTrace, 1 + $i); - break; - } - } - if (\E_USER_DEPRECATED === $type) { - for ($i = 0; isset($lightTrace[$i]); ++$i) { - if (!isset($lightTrace[$i]['file'], $lightTrace[$i]['line'], $lightTrace[$i]['function'])) { - continue; - } - if (!isset($lightTrace[$i]['class']) && 'trigger_deprecation' === $lightTrace[$i]['function']) { - $file = $lightTrace[$i]['file']; - $line = $lightTrace[$i]['line']; - $lightTrace = \array_slice($lightTrace, 1 + $i); - break; - } - } - } - if (class_exists(DebugClassLoader::class, false)) { - for ($i = \count($lightTrace) - 2; 0 < $i; --$i) { - if (DebugClassLoader::class === ($lightTrace[$i]['class'] ?? null)) { - array_splice($lightTrace, --$i, 2); - } - } - } - if (!($throw || $this->scopedErrors & $type)) { - for ($i = 0; isset($lightTrace[$i]); ++$i) { - unset($lightTrace[$i]['args'], $lightTrace[$i]['object']); - } - } - - return $lightTrace; - } - - /** - * Parse the error message by removing the anonymous class notation - * and using the parent class instead if possible. - */ - private function parseAnonymousClass(string $message): string - { - return preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', static fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php deleted file mode 100644 index 04b3edb..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/CliErrorRenderer.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorRenderer; - -use Symfony\Component\ErrorHandler\Exception\FlattenException; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use Symfony\Component\VarDumper\Dumper\CliDumper; - -// Help opcache.preload discover always-needed symbols -class_exists(CliDumper::class); - -/** - * @author Nicolas Grekas - */ -class CliErrorRenderer implements ErrorRendererInterface -{ - public function render(\Throwable $exception): FlattenException - { - $cloner = new VarCloner(); - $dumper = new class() extends CliDumper { - protected function supportsColors(): bool - { - $outputStream = $this->outputStream; - $this->outputStream = fopen('php://stdout', 'w'); - - try { - return parent::supportsColors(); - } finally { - $this->outputStream = $outputStream; - } - } - }; - - return FlattenException::createFromThrowable($exception) - ->setAsString($dumper->dump($cloner->cloneVar($exception), true)); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/ErrorRendererInterface.php b/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/ErrorRendererInterface.php deleted file mode 100644 index 2e28962..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/ErrorRendererInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorRenderer; - -use Symfony\Component\ErrorHandler\Exception\FlattenException; - -/** - * Formats an exception to be used as response content. - * - * @author Yonel Ceruto - */ -interface ErrorRendererInterface -{ - public const IDE_LINK_FORMATS = [ - 'textmate' => 'txmt://open?url=file://%f&line=%l', - 'macvim' => 'mvim://open?url=file://%f&line=%l', - 'emacs' => 'emacs://open?url=file://%f&line=%l', - 'sublime' => 'subl://open?url=file://%f&line=%l', - 'phpstorm' => 'phpstorm://open?file=%f&line=%l', - 'atom' => 'atom://core/open/file?filename=%f&line=%l', - 'vscode' => 'vscode://file/%f:%l', - ]; - - /** - * Renders a Throwable as a FlattenException. - */ - public function render(\Throwable $exception): FlattenException; -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php b/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php deleted file mode 100644 index ca793b0..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorRenderer; - -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\RequestStack; -use Symfony\Component\Routing\Generator\UrlGeneratorInterface; - -/** - * Formats debug file links. - * - * @author Jérémy Romey - * - * @final - */ -class FileLinkFormatter -{ - private array|false $fileLinkFormat; - private ?RequestStack $requestStack = null; - private ?string $baseDir = null; - private \Closure|string|null $urlFormat; - - /** - * @param string|\Closure $urlFormat The URL format, or a closure that returns it on-demand - */ - public function __construct(string|array|null $fileLinkFormat = null, ?RequestStack $requestStack = null, ?string $baseDir = null, string|\Closure|null $urlFormat = null) - { - $fileLinkFormat ??= $_ENV['SYMFONY_IDE'] ?? $_SERVER['SYMFONY_IDE'] ?? ''; - - if (!\is_array($f = $fileLinkFormat)) { - $f = (ErrorRendererInterface::IDE_LINK_FORMATS[$f] ?? $f) ?: \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l'; - $i = strpos($f, '&', max(strrpos($f, '%f'), strrpos($f, '%l'))) ?: \strlen($f); - $fileLinkFormat = [substr($f, 0, $i)] + preg_split('/&([^>]++)>/', substr($f, $i), -1, \PREG_SPLIT_DELIM_CAPTURE); - } - - $this->fileLinkFormat = $fileLinkFormat; - $this->requestStack = $requestStack; - $this->baseDir = $baseDir; - $this->urlFormat = $urlFormat; - } - - /** - * @return string|false - */ - public function format(string $file, int $line): string|bool - { - if ($fmt = $this->getFileLinkFormat()) { - for ($i = 1; isset($fmt[$i]); ++$i) { - if (str_starts_with($file, $k = $fmt[$i++])) { - $file = substr_replace($file, $fmt[$i], 0, \strlen($k)); - break; - } - } - - return strtr($fmt[0], ['%f' => $file, '%l' => $line]); - } - - return false; - } - - /** - * @internal - */ - public function __sleep(): array - { - $this->fileLinkFormat = $this->getFileLinkFormat(); - - return ['fileLinkFormat']; - } - - /** - * @internal - */ - public static function generateUrlFormat(UrlGeneratorInterface $router, string $routeName, string $queryString): ?string - { - try { - return $router->generate($routeName).$queryString; - } catch (\Throwable) { - return null; - } - } - - private function getFileLinkFormat(): array|false - { - if ($this->fileLinkFormat) { - return $this->fileLinkFormat; - } - - if ($this->requestStack && $this->baseDir && $this->urlFormat) { - $request = $this->requestStack->getMainRequest(); - - if ($request instanceof Request && (!$this->urlFormat instanceof \Closure || $this->urlFormat = ($this->urlFormat)())) { - return [ - $request->getSchemeAndHttpHost().$this->urlFormat, - $this->baseDir.\DIRECTORY_SEPARATOR, '', - ]; - } - } - - return false; - } -} - -if (!class_exists(\Symfony\Component\HttpKernel\Debug\FileLinkFormatter::class, false)) { - class_alias(FileLinkFormatter::class, \Symfony\Component\HttpKernel\Debug\FileLinkFormatter::class); -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php deleted file mode 100644 index 2572a8a..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php +++ /dev/null @@ -1,357 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorRenderer; - -use Psr\Log\LoggerInterface; -use Symfony\Component\ErrorHandler\Exception\FlattenException; -use Symfony\Component\HttpFoundation\RequestStack; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\Log\DebugLoggerConfigurator; -use Symfony\Component\VarDumper\Cloner\Data; -use Symfony\Component\VarDumper\Dumper\HtmlDumper; - -/** - * @author Yonel Ceruto - */ -class HtmlErrorRenderer implements ErrorRendererInterface -{ - private const GHOST_ADDONS = [ - '02-14' => self::GHOST_HEART, - '02-29' => self::GHOST_PLUS, - '10-18' => self::GHOST_GIFT, - ]; - - private const GHOST_GIFT = 'M124.00534057617188,5.3606138080358505 C124.40059661865234,4.644828304648399 125.1237564086914,3.712414965033531 123.88127899169922,3.487462028861046 C123.53517150878906,3.3097832053899765 123.18894958496094,2.9953975528478622 122.8432846069336,3.345616325736046 C122.07421112060547,3.649444565176964 121.40750122070312,4.074306473135948 122.2164306640625,4.869479164481163 C122.57514953613281,5.3830065578222275 122.90142822265625,6.503447040915489 123.3077621459961,6.626829609274864 C123.55027770996094,6.210384353995323 123.7774658203125,5.785196766257286 124.00534057617188,5.3606138080358505 zM122.30630493164062,7.336987480521202 C121.60028076171875,6.076864704489708 121.03211975097656,4.72498320043087 120.16796875,3.562500938773155 C119.11695098876953,2.44033907353878 117.04605865478516,2.940566048026085 116.57544708251953,4.387995228171349 C115.95028686523438,5.819030746817589 117.2991714477539,7.527640804648399 118.826171875,7.348545059561729 C119.98493194580078,7.367936596274376 121.15027618408203,7.420116886496544 122.30630493164062,7.336987480521202 zM128.1732177734375,7.379541382193565 C129.67486572265625,7.17823551595211 130.53842163085938,5.287807449698448 129.68344116210938,4.032590612769127 C128.92578125,2.693056806921959 126.74605560302734,2.6463639587163925 125.98509216308594,4.007616028189659 C125.32617950439453,5.108129009604454 124.75428009033203,6.258124336600304 124.14962768554688,7.388818249106407 C125.48638916015625,7.465229496359825 126.8357162475586,7.447416767477989 128.1732177734375,7.379541382193565 zM130.6601104736328,8.991325363516808 C131.17202758789062,8.540884003043175 133.1543731689453,8.009847149252892 131.65304565429688,7.582054600119591 C131.2811279296875,7.476506695151329 130.84751892089844,6.99234913289547 130.5132598876953,7.124847874045372 C129.78744506835938,8.02728746831417 128.67140197753906,8.55669592320919 127.50616455078125,8.501235947012901 C127.27806091308594,8.576229080557823 126.11459350585938,8.38720129430294 126.428955078125,8.601900085806847 C127.25099182128906,9.070617660880089 128.0523223876953,9.579657539725304 128.902587890625,9.995706543326378 C129.49813842773438,9.678531631827354 130.0761260986328,9.329126343131065 130.6601104736328,8.991325363516808 zM118.96446990966797,9.246344551444054 C119.4022445678711,8.991325363516808 119.84001922607422,8.736305221915245 120.27779388427734,8.481284126639366 C118.93965911865234,8.414779648184776 117.40827941894531,8.607666000723839 116.39698791503906,7.531384453177452 C116.11186981201172,7.212117180228233 115.83845520019531,6.846597656607628 115.44329071044922,7.248530372977257 C114.96995544433594,7.574637398123741 113.5140609741211,7.908811077475548 114.63501739501953,8.306883797049522 C115.61112976074219,8.883499130606651 116.58037567138672,9.474181160330772 117.58061218261719,10.008124336600304 C118.05723571777344,9.784612640738487 118.50651550292969,9.5052699893713 118.96446990966797,9.246344551444054 zM125.38018035888672,12.091858848929405 C125.9474868774414,11.636047348380089 127.32159423828125,11.201767906546593 127.36749267578125,10.712632164359093 C126.08487701416016,9.974547371268272 124.83960723876953,9.152772888541222 123.49772644042969,8.528907760977745 C123.03594207763672,8.353693947196007 122.66152954101562,8.623294815421104 122.28982543945312,8.857431396842003 C121.19065856933594,9.51122473180294 120.06505584716797,10.12446115911007 119.00167083740234,10.835315689444542 C120.39238739013672,11.69529627263546 121.79983520507812,12.529837593436241 123.22095489501953,13.338589653372765 C123.94580841064453,12.932025894522667 124.66128540039062,12.508862480521202 125.38018035888672,12.091858848929405 zM131.07164001464844,13.514615997672081 C131.66018676757812,13.143282875418663 132.2487335205078,12.771927818655968 132.8372802734375,12.400571808218956 C132.8324737548828,11.156818374991417 132.8523406982422,9.912529930472374 132.81829833984375,8.669195160269737 C131.63046264648438,9.332009300589561 130.45948791503906,10.027913078665733 129.30828857421875,10.752535805106163 C129.182373046875,12.035354599356651 129.24623107910156,13.33940313756466 129.27359008789062,14.628684982657433 C129.88104248046875,14.27079389989376 130.4737548828125,13.888019546866417 131.07164001464844,13.514640793204308 zM117.26847839355469,12.731024727225304 C117.32825469970703,11.67083452641964 117.45709991455078,10.46224020421505 116.17853546142578,10.148179039359093 C115.37110900878906,9.77159021794796 114.25194549560547,8.806716904044151 113.62991333007812,8.81639002263546 C113.61052703857422,10.0110072940588 113.62078857421875,11.20585821568966 113.61869049072266,12.400571808218956 C114.81139373779297,13.144886955618858 115.98292541503906,13.925040230154991 117.20137023925781,14.626662239432335 C117.31951141357422,14.010867103934288 117.24227905273438,13.35805033147335 117.26847839355469,12.731024727225304 zM125.80937957763672,16.836034759879112 C126.51483917236328,16.390663132071495 127.22030639648438,15.945291504263878 127.92576599121094,15.49991987645626 C127.92250061035156,14.215868934988976 127.97560119628906,12.929980263113976 127.91757202148438,11.647302612662315 C127.14225769042969,11.869626984000206 126.25550079345703,12.556857094168663 125.43866729736328,12.983742699027061 C124.82704162597656,13.342005714774132 124.21542358398438,13.700271591544151 123.60379028320312,14.05853746831417 C123.61585235595703,15.429577812552452 123.57081604003906,16.803131088614464 123.64839172363281,18.172149643301964 C124.37957000732422,17.744937881827354 125.09130859375,17.284801468253136 125.80937957763672,16.836034759879112 zM122.8521499633789,16.115344032645226 C122.8521499633789,15.429741844534874 122.8521499633789,14.744139656424522 122.8521499633789,14.05853746831417 C121.43595123291016,13.230924591422081 120.02428436279297,12.395455345511436 118.60256958007812,11.577354416251183 C118.52394104003906,12.888403877615929 118.56887817382812,14.204405769705772 118.55702209472656,15.517732605338097 C119.97289276123047,16.4041957706213 121.37410736083984,17.314891800284386 122.80789947509766,18.172149643301964 C122.86368560791016,17.488990768790245 122.84332275390625,16.800363525748253 122.8521499633789,16.115344032645226 zM131.10684204101562,18.871450409293175 C131.68399047851562,18.48711584508419 132.2611541748047,18.10278509557247 132.8383026123047,17.718475326895714 C132.81423950195312,16.499977096915245 132.89776611328125,15.264989838004112 132.77627563476562,14.05993078649044 C131.5760040283203,14.744719490408897 130.41763305664062,15.524359688162804 129.23875427246094,16.255397781729698 C129.26707458496094,17.516149505972862 129.18060302734375,18.791316971182823 129.3108367919922,20.041303619742393 C129.91973876953125,19.667551025748253 130.51010131835938,19.264152511954308 131.10684204101562,18.871450409293175 zM117.2557373046875,18.188333496451378 C117.25104522705078,17.549470886588097 117.24633026123047,16.91058538854122 117.24163055419922,16.271720871329308 C116.04924774169922,15.525708183646202 114.87187957763672,14.75476549565792 113.66158294677734,14.038097366690636 C113.5858383178711,15.262084946036339 113.62901306152344,16.49083898961544 113.61761474609375,17.717010483145714 C114.82051086425781,18.513254150748253 116.00987243652344,19.330610260367393 117.22888946533203,20.101993545889854 C117.27559661865234,19.466014847159386 117.25241088867188,18.825733169913292 117.2557373046875,18.188333496451378 zM125.8398666381836,22.38675306737423 C126.54049682617188,21.921453461050987 127.24110412597656,21.456151947379112 127.94172668457031,20.99083136022091 C127.94009399414062,19.693386062979698 127.96646118164062,18.395381912589073 127.93160247802734,17.098379120230675 C126.50540924072266,17.97775076329708 125.08877563476562,18.873308166861534 123.68258666992188,19.78428266942501 C123.52366638183594,21.03710363805294 123.626708984375,22.32878302037716 123.62647247314453,23.595300659537315 C124.06291198730469,23.86113165318966 125.1788101196289,22.68297766149044 125.8398666381836,22.38675306737423 zM122.8521499633789,21.83134649693966 C122.76741790771484,20.936696991324425 123.21651458740234,19.67745779454708 122.0794677734375,19.330633148550987 C120.93280029296875,18.604360565543175 119.7907485961914,17.870157226920128 118.62899780273438,17.16818617284298 C118.45966339111328,18.396427139639854 118.63676452636719,19.675991043448448 118.50668334960938,20.919256195425987 C119.89984130859375,21.92635916173458 121.32942199707031,22.88914106786251 122.78502655029297,23.803510650992393 C122.90177917480469,23.1627406924963 122.82917022705078,22.48402212560177 122.8521499633789,21.83134649693966 zM117.9798355102539,21.59483526647091 C116.28416442871094,20.46288488805294 114.58848571777344,19.330957397818565 112.892822265625,18.199007019400597 C112.89473724365234,14.705654129385948 112.84647369384766,11.211485847830772 112.90847778320312,7.718807205557823 C113.7575912475586,7.194885239005089 114.66117858886719,6.765397056937218 115.5350341796875,6.284702762961388 C114.97061157226562,4.668964847922325 115.78496551513672,2.7054970115423203 117.42159271240234,2.1007001250982285 C118.79354095458984,1.537783369421959 120.44731903076172,2.0457767099142075 121.32200622558594,3.23083733022213 C121.95732116699219,2.9050118774175644 122.59264373779297,2.5791852325201035 123.22796630859375,2.253336176276207 C123.86669921875,2.5821153968572617 124.50543975830078,2.9108948558568954 125.1441650390625,3.23967407643795 C126.05941009521484,2.154020771384239 127.62747192382812,1.5344576686620712 128.986328125,2.1429056972265244 C130.61741638183594,2.716217741370201 131.50650024414062,4.675290569663048 130.9215545654297,6.2884936183691025 C131.8018341064453,6.78548763692379 132.7589111328125,7.1738648265600204 133.5660400390625,7.780336365103722 C133.60182189941406,11.252970680594444 133.56637573242188,14.726140961050987 133.5631103515625,18.199007019400597 C130.18914794921875,20.431867584586143 126.86984252929688,22.74994657933712 123.44108581542969,24.897907242178917 C122.44406127929688,24.897628769278526 121.5834732055664,23.815067276358604 120.65831756591797,23.37616156041622 C119.76387023925781,22.784828171133995 118.87168884277344,22.19007681310177 117.9798355102539,21.59483526647091 z'; - private const GHOST_HEART = 'M125.91386369681868,8.305165958366445 C128.95033202169043,-0.40540639102854037 140.8469835342744,8.305165958366445 125.91386369681868,19.504526138305664 C110.98208663272044,8.305165958366445 122.87795231771452,-0.40540639102854037 125.91386369681868,8.305165958366445 z'; - private const GHOST_PLUS = 'M111.36824226379395,8.969108581542969 L118.69175148010254,8.969108581542969 L118.69175148010254,1.6455793380737305 L126.20429420471191,1.6455793380737305 L126.20429420471191,8.969108581542969 L133.52781105041504,8.969108581542969 L133.52781105041504,16.481630325317383 L126.20429420471191,16.481630325317383 L126.20429420471191,23.805158615112305 L118.69175148010254,23.805158615112305 L118.69175148010254,16.481630325317383 L111.36824226379395,16.481630325317383 z'; - - private bool|\Closure $debug; - private string $charset; - private FileLinkFormatter $fileLinkFormat; - private ?string $projectDir; - private string|\Closure $outputBuffer; - private ?LoggerInterface $logger; - - private static string $template = 'views/error.html.php'; - - /** - * @param bool|callable $debug The debugging mode as a boolean or a callable that should return it - * @param string|callable $outputBuffer The output buffer as a string or a callable that should return it - */ - public function __construct(bool|callable $debug = false, ?string $charset = null, string|FileLinkFormatter|null $fileLinkFormat = null, ?string $projectDir = null, string|callable $outputBuffer = '', ?LoggerInterface $logger = null) - { - $this->debug = \is_bool($debug) ? $debug : $debug(...); - $this->charset = $charset ?: (\ini_get('default_charset') ?: 'UTF-8'); - $this->fileLinkFormat = $fileLinkFormat instanceof FileLinkFormatter ? $fileLinkFormat : new FileLinkFormatter($fileLinkFormat); - $this->projectDir = $projectDir; - $this->outputBuffer = \is_string($outputBuffer) ? $outputBuffer : $outputBuffer(...); - $this->logger = $logger; - } - - public function render(\Throwable $exception): FlattenException - { - $headers = ['Content-Type' => 'text/html; charset='.$this->charset]; - if (\is_bool($this->debug) ? $this->debug : ($this->debug)($exception)) { - $headers['X-Debug-Exception'] = rawurlencode(substr($exception->getMessage(), 0, 2000)); - $headers['X-Debug-Exception-File'] = rawurlencode($exception->getFile()).':'.$exception->getLine(); - } - - $exception = FlattenException::createWithDataRepresentation($exception, null, $headers); - - return $exception->setAsString($this->renderException($exception)); - } - - /** - * Gets the HTML content associated with the given exception. - */ - public function getBody(FlattenException $exception): string - { - return $this->renderException($exception, 'views/exception.html.php'); - } - - /** - * Gets the stylesheet associated with the given exception. - */ - public function getStylesheet(): string - { - if (!$this->debug) { - return $this->include('assets/css/error.css'); - } - - return $this->include('assets/css/exception.css'); - } - - public static function isDebug(RequestStack $requestStack, bool $debug): \Closure - { - return static function () use ($requestStack, $debug): bool { - if (!$request = $requestStack->getCurrentRequest()) { - return $debug; - } - - return $debug && $request->attributes->getBoolean('showException', true); - }; - } - - public static function getAndCleanOutputBuffer(RequestStack $requestStack): \Closure - { - return static function () use ($requestStack): string { - if (!$request = $requestStack->getCurrentRequest()) { - return ''; - } - - $startObLevel = $request->headers->get('X-Php-Ob-Level', -1); - - if (ob_get_level() <= $startObLevel) { - return ''; - } - - Response::closeOutputBuffers($startObLevel + 1, true); - - return ob_get_clean(); - }; - } - - private function renderException(FlattenException $exception, string $debugTemplate = 'views/exception_full.html.php'): string - { - $debug = \is_bool($this->debug) ? $this->debug : ($this->debug)($exception); - $statusText = $this->escape($exception->getStatusText()); - $statusCode = $this->escape($exception->getStatusCode()); - - if (!$debug) { - return $this->include(self::$template, [ - 'statusText' => $statusText, - 'statusCode' => $statusCode, - ]); - } - - $exceptionMessage = $this->escape($exception->getMessage()); - - return $this->include($debugTemplate, [ - 'exception' => $exception, - 'exceptionMessage' => $exceptionMessage, - 'statusText' => $statusText, - 'statusCode' => $statusCode, - 'logger' => null !== $this->logger && class_exists(DebugLoggerConfigurator::class) ? DebugLoggerConfigurator::getDebugLogger($this->logger) : null, - 'currentContent' => \is_string($this->outputBuffer) ? $this->outputBuffer : ($this->outputBuffer)(), - ]); - } - - private function dumpValue(Data $value): string - { - $dumper = new HtmlDumper(); - $dumper->setTheme('light'); - - return $dumper->dump($value, true); - } - - private function formatArgs(array $args): string - { - $result = []; - foreach ($args as $key => $item) { - if ('object' === $item[0]) { - $formattedValue = sprintf('object(%s)', $this->abbrClass($item[1])); - } elseif ('array' === $item[0]) { - $formattedValue = sprintf('array(%s)', \is_array($item[1]) ? $this->formatArgs($item[1]) : $item[1]); - } elseif ('null' === $item[0]) { - $formattedValue = 'null'; - } elseif ('boolean' === $item[0]) { - $formattedValue = ''.strtolower(var_export($item[1], true)).''; - } elseif ('resource' === $item[0]) { - $formattedValue = 'resource'; - } elseif (preg_match('/[^\x07-\x0D\x1B\x20-\xFF]/', $item[1])) { - $formattedValue = 'binary string'; - } else { - $formattedValue = str_replace("\n", '', $this->escape(var_export($item[1], true))); - } - - $result[] = \is_int($key) ? $formattedValue : sprintf("'%s' => %s", $this->escape($key), $formattedValue); - } - - return implode(', ', $result); - } - - private function formatArgsAsText(array $args): string - { - return strip_tags($this->formatArgs($args)); - } - - private function escape(string $string): string - { - return htmlspecialchars($string, \ENT_COMPAT | \ENT_SUBSTITUTE, $this->charset); - } - - private function abbrClass(string $class): string - { - $parts = explode('\\', $class); - $short = array_pop($parts); - - return sprintf('%s', $class, $short); - } - - private function getFileRelative(string $file): ?string - { - $file = str_replace('\\', '/', $file); - - if (null !== $this->projectDir && str_starts_with($file, $this->projectDir)) { - return ltrim(substr($file, \strlen($this->projectDir)), '/'); - } - - return null; - } - - /** - * Formats a file path. - * - * @param string $file An absolute file path - * @param int $line The line number - * @param string $text Use this text for the link rather than the file path - */ - private function formatFile(string $file, int $line, ?string $text = null): string - { - $file = trim($file); - - if (null === $text) { - $text = $file; - if (null !== $rel = $this->getFileRelative($text)) { - $rel = explode('/', $rel, 2); - $text = sprintf('%s%s', $this->projectDir, $rel[0], '/'.($rel[1] ?? '')); - } - } - - if (0 < $line) { - $text .= ' at line '.$line; - } - - if (!file_exists($file)) { - return $text; - } - - $link = $this->fileLinkFormat->format($file, $line); - - return sprintf('%s', $this->escape($link), $text); - } - - /** - * Returns an excerpt of a code file around the given line number. - * - * @param string $file A file path - * @param int $line The selected line number - * @param int $srcContext The number of displayed lines around or -1 for the whole file - */ - private function fileExcerpt(string $file, int $line, int $srcContext = 3): string - { - if (is_file($file) && is_readable($file)) { - // highlight_file could throw warnings - // see https://bugs.php.net/25725 - $code = @highlight_file($file, true); - if (\PHP_VERSION_ID >= 80300) { - // remove main pre/code tags - $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); - // split multiline span tags - $code = preg_replace_callback('#]++)>((?:[^<\\n]*+\\n)++[^<]*+)#', function ($m) { - return "".str_replace("\n", "\n", $m[2]).''; - }, $code); - $content = explode("\n", $code); - } else { - // remove main code/span tags - $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); - // split multiline spans - $code = preg_replace_callback('#]++)>((?:[^<]*+
)++[^<]*+)
#', fn ($m) => "".str_replace('
', "

", $m[2]).'', $code); - $content = explode('
', $code); - } - - $lines = []; - if (0 > $srcContext) { - $srcContext = \count($content); - } - - for ($i = max($line - $srcContext, 1), $max = min($line + $srcContext, \count($content)); $i <= $max; ++$i) { - $lines[] = ''.$this->fixCodeMarkup($content[$i - 1]).''; - } - - return '
    '.implode("\n", $lines).'
'; - } - - return ''; - } - - private function fixCodeMarkup(string $line): string - { - // ending tag from previous line - $opening = strpos($line, ''); - if (false !== $closing && (false === $opening || $closing < $opening)) { - $line = substr_replace($line, '', $closing, 7); - } - - // missing tag at the end of line - $opening = strrpos($line, ''); - if (false !== $opening && (false === $closing || $closing < $opening)) { - $line .= ''; - } - - return trim($line); - } - - private function formatFileFromText(string $text): string - { - return preg_replace_callback('/in ("|")?(.+?)\1(?: +(?:on|at))? +line (\d+)/s', fn ($match) => 'in '.$this->formatFile($match[2], $match[3]), $text) ?? $text; - } - - private function formatLogMessage(string $message, array $context): string - { - if ($context && str_contains($message, '{')) { - $replacements = []; - foreach ($context as $key => $val) { - if (\is_scalar($val)) { - $replacements['{'.$key.'}'] = $val; - } - } - - if ($replacements) { - $message = strtr($message, $replacements); - } - } - - return $this->escape($message); - } - - private function addElementToGhost(): string - { - if (!isset(self::GHOST_ADDONS[date('m-d')])) { - return ''; - } - - return ''; - } - - private function include(string $name, array $context = []): string - { - extract($context, \EXTR_SKIP); - ob_start(); - - include is_file(\dirname(__DIR__).'/Resources/'.$name) ? \dirname(__DIR__).'/Resources/'.$name : $name; - - return trim(ob_get_clean()); - } - - /** - * Allows overriding the default non-debug template. - * - * @param string $template path to the custom template file to render - */ - public static function setTemplate(string $template): void - { - self::$template = $template; - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php b/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php deleted file mode 100644 index b09a6e0..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\ErrorRenderer; - -use Symfony\Component\ErrorHandler\Exception\FlattenException; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\RequestStack; -use Symfony\Component\Serializer\Exception\NotEncodableValueException; -use Symfony\Component\Serializer\SerializerInterface; - -/** - * Formats an exception using Serializer for rendering. - * - * @author Nicolas Grekas - */ -class SerializerErrorRenderer implements ErrorRendererInterface -{ - private SerializerInterface $serializer; - private string|\Closure $format; - private ErrorRendererInterface $fallbackErrorRenderer; - private bool|\Closure $debug; - - /** - * @param string|callable(FlattenException) $format The format as a string or a callable that should return it - * formats not supported by Request::getMimeTypes() should be given as mime types - * @param bool|callable $debug The debugging mode as a boolean or a callable that should return it - */ - public function __construct(SerializerInterface $serializer, string|callable $format, ?ErrorRendererInterface $fallbackErrorRenderer = null, bool|callable $debug = false) - { - $this->serializer = $serializer; - $this->format = \is_string($format) ? $format : $format(...); - $this->fallbackErrorRenderer = $fallbackErrorRenderer ?? new HtmlErrorRenderer(); - $this->debug = \is_bool($debug) ? $debug : $debug(...); - } - - public function render(\Throwable $exception): FlattenException - { - $headers = ['Vary' => 'Accept']; - $debug = \is_bool($this->debug) ? $this->debug : ($this->debug)($exception); - if ($debug) { - $headers['X-Debug-Exception'] = rawurlencode(substr($exception->getMessage(), 0, 2000)); - $headers['X-Debug-Exception-File'] = rawurlencode($exception->getFile()).':'.$exception->getLine(); - } - - $flattenException = FlattenException::createFromThrowable($exception, null, $headers); - - try { - $format = \is_string($this->format) ? $this->format : ($this->format)($flattenException); - $headers['Content-Type'] = Request::getMimeTypes($format)[0] ?? $format; - - $flattenException->setAsString($this->serializer->serialize($flattenException, $format, [ - 'exception' => $exception, - 'debug' => $debug, - ])); - } catch (NotEncodableValueException) { - $flattenException = $this->fallbackErrorRenderer->render($exception); - } - - return $flattenException->setHeaders($flattenException->getHeaders() + $headers); - } - - public static function getPreferredFormat(RequestStack $requestStack): \Closure - { - return static function () use ($requestStack) { - if (!$request = $requestStack->getCurrentRequest()) { - throw new NotEncodableValueException(); - } - - return $request->getPreferredFormat(); - }; - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Exception/FlattenException.php b/projects/priceservice/vendor/symfony/error-handler/Exception/FlattenException.php deleted file mode 100644 index f8ec1fa..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Exception/FlattenException.php +++ /dev/null @@ -1,440 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Exception; - -use Symfony\Component\HttpFoundation\Exception\RequestExceptionInterface; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; -use Symfony\Component\VarDumper\Caster\Caster; -use Symfony\Component\VarDumper\Cloner\Data; -use Symfony\Component\VarDumper\Cloner\Stub; -use Symfony\Component\VarDumper\Cloner\VarCloner; - -/** - * FlattenException wraps a PHP Error or Exception to be able to serialize it. - * - * Basically, this class removes all objects from the trace. - * - * @author Fabien Potencier - */ -class FlattenException -{ - private string $message; - private string|int $code; - private ?self $previous = null; - private array $trace; - private string $traceAsString; - private string $class; - private int $statusCode; - private string $statusText; - private array $headers; - private string $file; - private int $line; - private ?string $asString = null; - private Data $dataRepresentation; - - public static function create(\Exception $exception, ?int $statusCode = null, array $headers = []): static - { - return static::createFromThrowable($exception, $statusCode, $headers); - } - - public static function createFromThrowable(\Throwable $exception, ?int $statusCode = null, array $headers = []): static - { - $e = new static(); - $e->setMessage($exception->getMessage()); - $e->setCode($exception->getCode()); - - if ($exception instanceof HttpExceptionInterface) { - $statusCode = $exception->getStatusCode(); - $headers = array_merge($headers, $exception->getHeaders()); - } elseif ($exception instanceof RequestExceptionInterface) { - $statusCode = 400; - } - - $statusCode ??= 500; - - if (class_exists(Response::class) && isset(Response::$statusTexts[$statusCode])) { - $statusText = Response::$statusTexts[$statusCode]; - } else { - $statusText = 'Whoops, looks like something went wrong.'; - } - - $e->setStatusText($statusText); - $e->setStatusCode($statusCode); - $e->setHeaders($headers); - $e->setTraceFromThrowable($exception); - $e->setClass(get_debug_type($exception)); - $e->setFile($exception->getFile()); - $e->setLine($exception->getLine()); - - $previous = $exception->getPrevious(); - - if ($previous instanceof \Throwable) { - $e->setPrevious(static::createFromThrowable($previous)); - } - - return $e; - } - - public static function createWithDataRepresentation(\Throwable $throwable, ?int $statusCode = null, array $headers = [], ?VarCloner $cloner = null): static - { - $e = static::createFromThrowable($throwable, $statusCode, $headers); - - static $defaultCloner; - - if (!$cloner ??= $defaultCloner) { - $cloner = $defaultCloner = new VarCloner(); - $cloner->addCasters([ - \Throwable::class => function (\Throwable $e, array $a, Stub $s, bool $isNested): array { - if (!$isNested) { - unset($a[Caster::PREFIX_PROTECTED.'message']); - unset($a[Caster::PREFIX_PROTECTED.'code']); - unset($a[Caster::PREFIX_PROTECTED.'file']); - unset($a[Caster::PREFIX_PROTECTED.'line']); - unset($a["\0Error\0trace"], $a["\0Exception\0trace"]); - unset($a["\0Error\0previous"], $a["\0Exception\0previous"]); - } - - return $a; - }, - ]); - } - - return $e->setDataRepresentation($cloner->cloneVar($throwable)); - } - - public function toArray(): array - { - $exceptions = []; - foreach (array_merge([$this], $this->getAllPrevious()) as $exception) { - $exceptions[] = [ - 'message' => $exception->getMessage(), - 'class' => $exception->getClass(), - 'trace' => $exception->getTrace(), - 'data' => $exception->getDataRepresentation(), - ]; - } - - return $exceptions; - } - - public function getStatusCode(): int - { - return $this->statusCode; - } - - /** - * @return $this - */ - public function setStatusCode(int $code): static - { - $this->statusCode = $code; - - return $this; - } - - public function getHeaders(): array - { - return $this->headers; - } - - /** - * @return $this - */ - public function setHeaders(array $headers): static - { - $this->headers = $headers; - - return $this; - } - - public function getClass(): string - { - return $this->class; - } - - /** - * @return $this - */ - public function setClass(string $class): static - { - $this->class = str_contains($class, "@anonymous\0") ? (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous' : $class; - - return $this; - } - - public function getFile(): string - { - return $this->file; - } - - /** - * @return $this - */ - public function setFile(string $file): static - { - $this->file = $file; - - return $this; - } - - public function getLine(): int - { - return $this->line; - } - - /** - * @return $this - */ - public function setLine(int $line): static - { - $this->line = $line; - - return $this; - } - - public function getStatusText(): string - { - return $this->statusText; - } - - /** - * @return $this - */ - public function setStatusText(string $statusText): static - { - $this->statusText = $statusText; - - return $this; - } - - public function getMessage(): string - { - return $this->message; - } - - /** - * @return $this - */ - public function setMessage(string $message): static - { - if (str_contains($message, "@anonymous\0")) { - $message = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)?[0-9a-fA-F]++/', fn ($m) => class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0], $message); - } - - $this->message = $message; - - return $this; - } - - /** - * @return int|string int most of the time (might be a string with PDOException) - */ - public function getCode(): int|string - { - return $this->code; - } - - /** - * @return $this - */ - public function setCode(int|string $code): static - { - $this->code = $code; - - return $this; - } - - public function getPrevious(): ?self - { - return $this->previous; - } - - /** - * @return $this - */ - public function setPrevious(?self $previous): static - { - $this->previous = $previous; - - return $this; - } - - /** - * @return self[] - */ - public function getAllPrevious(): array - { - $exceptions = []; - $e = $this; - while ($e = $e->getPrevious()) { - $exceptions[] = $e; - } - - return $exceptions; - } - - public function getTrace(): array - { - return $this->trace; - } - - /** - * @return $this - */ - public function setTraceFromThrowable(\Throwable $throwable): static - { - $this->traceAsString = $throwable->getTraceAsString(); - - return $this->setTrace($throwable->getTrace(), $throwable->getFile(), $throwable->getLine()); - } - - /** - * @return $this - */ - public function setTrace(array $trace, ?string $file, ?int $line): static - { - $this->trace = []; - $this->trace[] = [ - 'namespace' => '', - 'short_class' => '', - 'class' => '', - 'type' => '', - 'function' => '', - 'file' => $file, - 'line' => $line, - 'args' => [], - ]; - foreach ($trace as $entry) { - $class = ''; - $namespace = ''; - if (isset($entry['class'])) { - $parts = explode('\\', $entry['class']); - $class = array_pop($parts); - $namespace = implode('\\', $parts); - } - - $this->trace[] = [ - 'namespace' => $namespace, - 'short_class' => $class, - 'class' => $entry['class'] ?? '', - 'type' => $entry['type'] ?? '', - 'function' => $entry['function'] ?? null, - 'file' => $entry['file'] ?? null, - 'line' => $entry['line'] ?? null, - 'args' => isset($entry['args']) ? $this->flattenArgs($entry['args']) : [], - ]; - } - - return $this; - } - - public function getDataRepresentation(): ?Data - { - return $this->dataRepresentation ?? null; - } - - /** - * @return $this - */ - public function setDataRepresentation(Data $data): static - { - $this->dataRepresentation = $data; - - return $this; - } - - private function flattenArgs(array $args, int $level = 0, int &$count = 0): array - { - $result = []; - foreach ($args as $key => $value) { - if (++$count > 1e4) { - return ['array', '*SKIPPED over 10000 entries*']; - } - if ($value instanceof \__PHP_Incomplete_Class) { - $result[$key] = ['incomplete-object', $this->getClassNameFromIncomplete($value)]; - } elseif (\is_object($value)) { - $result[$key] = ['object', get_debug_type($value)]; - } elseif (\is_array($value)) { - if ($level > 10) { - $result[$key] = ['array', '*DEEP NESTED ARRAY*']; - } else { - $result[$key] = ['array', $this->flattenArgs($value, $level + 1, $count)]; - } - } elseif (null === $value) { - $result[$key] = ['null', null]; - } elseif (\is_bool($value)) { - $result[$key] = ['boolean', $value]; - } elseif (\is_int($value)) { - $result[$key] = ['integer', $value]; - } elseif (\is_float($value)) { - $result[$key] = ['float', $value]; - } elseif (\is_resource($value)) { - $result[$key] = ['resource', get_resource_type($value)]; - } else { - $result[$key] = ['string', (string) $value]; - } - } - - return $result; - } - - private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value): string - { - $array = new \ArrayObject($value); - - return $array['__PHP_Incomplete_Class_Name']; - } - - public function getTraceAsString(): string - { - return $this->traceAsString; - } - - /** - * @return $this - */ - public function setAsString(?string $asString): static - { - $this->asString = $asString; - - return $this; - } - - public function getAsString(): string - { - if (null !== $this->asString) { - return $this->asString; - } - - $message = ''; - $next = false; - - foreach (array_reverse(array_merge([$this], $this->getAllPrevious())) as $exception) { - if ($next) { - $message .= 'Next '; - } else { - $next = true; - } - $message .= $exception->getClass(); - - if ('' != $exception->getMessage()) { - $message .= ': '.$exception->getMessage(); - } - - $message .= ' in '.$exception->getFile().':'.$exception->getLine(). - "\nStack trace:\n".$exception->getTraceAsString()."\n\n"; - } - - return rtrim($message); - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Exception/SilencedErrorContext.php b/projects/priceservice/vendor/symfony/error-handler/Exception/SilencedErrorContext.php deleted file mode 100644 index ac19e63..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Exception/SilencedErrorContext.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Exception; - -/** - * Data Object that represents a Silenced Error. - * - * @author Grégoire Pineau - */ -class SilencedErrorContext implements \JsonSerializable -{ - public $count = 1; - - private int $severity; - private string $file; - private int $line; - private array $trace; - - public function __construct(int $severity, string $file, int $line, array $trace = [], int $count = 1) - { - $this->severity = $severity; - $this->file = $file; - $this->line = $line; - $this->trace = $trace; - $this->count = $count; - } - - public function getSeverity(): int - { - return $this->severity; - } - - public function getFile(): string - { - return $this->file; - } - - public function getLine(): int - { - return $this->line; - } - - public function getTrace(): array - { - return $this->trace; - } - - public function jsonSerialize(): array - { - return [ - 'severity' => $this->severity, - 'file' => $this->file, - 'line' => $this->line, - 'trace' => $this->trace, - 'count' => $this->count, - ]; - } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Internal/TentativeTypes.php b/projects/priceservice/vendor/symfony/error-handler/Internal/TentativeTypes.php deleted file mode 100644 index 1e8afe3..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Internal/TentativeTypes.php +++ /dev/null @@ -1,1643 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ErrorHandler\Internal; - -/** - * This class has been generated by extract-tentative-return-types.php. - * - * @internal - */ -class TentativeTypes -{ - public const RETURN_TYPES = [ - 'CURLFile' => [ - 'getFilename' => 'string', - 'getMimeType' => 'string', - 'getPostFilename' => 'string', - 'setMimeType' => 'void', - 'setPostFilename' => 'void', - ], - 'DateTimeInterface' => [ - 'format' => 'string', - 'getTimezone' => 'DateTimeZone|false', - 'getOffset' => 'int', - 'getTimestamp' => 'int', - 'diff' => 'DateInterval', - '__wakeup' => 'void', - ], - 'DateTime' => [ - '__wakeup' => 'void', - '__set_state' => 'DateTime', - 'createFromImmutable' => 'static', - 'createFromFormat' => 'DateTime|false', - 'getLastErrors' => 'array|false', - 'format' => 'string', - 'modify' => 'DateTime|false', - 'add' => 'DateTime', - 'sub' => 'DateTime', - 'getTimezone' => 'DateTimeZone|false', - 'setTimezone' => 'DateTime', - 'getOffset' => 'int', - 'setTime' => 'DateTime', - 'setDate' => 'DateTime', - 'setISODate' => 'DateTime', - 'setTimestamp' => 'DateTime', - 'getTimestamp' => 'int', - 'diff' => 'DateInterval', - ], - 'DateTimeImmutable' => [ - '__wakeup' => 'void', - '__set_state' => 'DateTimeImmutable', - 'createFromFormat' => 'DateTimeImmutable|false', - 'getLastErrors' => 'array|false', - 'format' => 'string', - 'getTimezone' => 'DateTimeZone|false', - 'getOffset' => 'int', - 'getTimestamp' => 'int', - 'diff' => 'DateInterval', - 'modify' => 'DateTimeImmutable|false', - 'add' => 'DateTimeImmutable', - 'sub' => 'DateTimeImmutable', - 'setTimezone' => 'DateTimeImmutable', - 'setTime' => 'DateTimeImmutable', - 'setDate' => 'DateTimeImmutable', - 'setISODate' => 'DateTimeImmutable', - 'setTimestamp' => 'DateTimeImmutable', - 'createFromMutable' => 'static', - ], - 'DateTimeZone' => [ - 'getName' => 'string', - 'getOffset' => 'int', - 'getTransitions' => 'array|false', - 'getLocation' => 'array|false', - 'listAbbreviations' => 'array', - 'listIdentifiers' => 'array', - '__wakeup' => 'void', - '__set_state' => 'DateTimeZone', - ], - 'DateInterval' => [ - 'createFromDateString' => 'DateInterval|false', - 'format' => 'string', - '__wakeup' => 'void', - '__set_state' => 'DateInterval', - ], - 'DatePeriod' => [ - 'getStartDate' => 'DateTimeInterface', - 'getEndDate' => '?DateTimeInterface', - 'getDateInterval' => 'DateInterval', - 'getRecurrences' => '?int', - '__wakeup' => 'void', - '__set_state' => 'DatePeriod', - ], - 'DOMNode' => [ - 'C14N' => 'string|false', - 'C14NFile' => 'int|false', - 'getLineNo' => 'int', - 'getNodePath' => '?string', - 'hasAttributes' => 'bool', - 'hasChildNodes' => 'bool', - 'isDefaultNamespace' => 'bool', - 'isSameNode' => 'bool', - 'isSupported' => 'bool', - 'lookupNamespaceURI' => '?string', - 'lookupPrefix' => '?string', - 'normalize' => 'void', - ], - 'DOMImplementation' => [ - 'getFeature' => 'never', - 'hasFeature' => 'bool', - ], - 'DOMDocumentFragment' => [ - 'appendXML' => 'bool', - ], - 'DOMNodeList' => [ - 'count' => 'int', - ], - 'DOMCharacterData' => [ - 'appendData' => 'bool', - 'insertData' => 'bool', - 'deleteData' => 'bool', - 'replaceData' => 'bool', - ], - 'DOMAttr' => [ - 'isId' => 'bool', - ], - 'DOMElement' => [ - 'getAttribute' => 'string', - 'getAttributeNS' => 'string', - 'getElementsByTagName' => 'DOMNodeList', - 'getElementsByTagNameNS' => 'DOMNodeList', - 'hasAttribute' => 'bool', - 'hasAttributeNS' => 'bool', - 'removeAttribute' => 'bool', - 'removeAttributeNS' => 'void', - 'setAttributeNS' => 'void', - 'setIdAttribute' => 'void', - 'setIdAttributeNS' => 'void', - 'setIdAttributeNode' => 'void', - ], - 'DOMDocument' => [ - 'createComment' => 'DOMComment', - 'createDocumentFragment' => 'DOMDocumentFragment', - 'createTextNode' => 'DOMText', - 'getElementById' => '?DOMElement', - 'getElementsByTagName' => 'DOMNodeList', - 'getElementsByTagNameNS' => 'DOMNodeList', - 'normalizeDocument' => 'void', - 'registerNodeClass' => 'bool', - 'save' => 'int|false', - 'saveHTML' => 'string|false', - 'saveHTMLFile' => 'int|false', - 'saveXML' => 'string|false', - 'schemaValidate' => 'bool', - 'schemaValidateSource' => 'bool', - 'relaxNGValidate' => 'bool', - 'relaxNGValidateSource' => 'bool', - 'validate' => 'bool', - 'xinclude' => 'int|false', - ], - 'DOMText' => [ - 'isWhitespaceInElementContent' => 'bool', - 'isElementContentWhitespace' => 'bool', - ], - 'DOMNamedNodeMap' => [ - 'getNamedItem' => '?DOMNode', - 'getNamedItemNS' => '?DOMNode', - 'item' => '?DOMNode', - 'count' => 'int', - ], - 'DOMXPath' => [ - 'evaluate' => 'mixed', - 'query' => 'mixed', - 'registerNamespace' => 'bool', - 'registerPhpFunctions' => 'void', - ], - 'finfo' => [ - 'file' => 'string|false', - 'buffer' => 'string|false', - ], - 'IntlPartsIterator' => [ - 'getBreakIterator' => 'IntlBreakIterator', - 'getRuleStatus' => 'int', - ], - 'IntlBreakIterator' => [ - 'createCharacterInstance' => '?IntlBreakIterator', - 'createCodePointInstance' => 'IntlCodePointBreakIterator', - 'createLineInstance' => '?IntlBreakIterator', - 'createSentenceInstance' => '?IntlBreakIterator', - 'createTitleInstance' => '?IntlBreakIterator', - 'createWordInstance' => '?IntlBreakIterator', - 'current' => 'int', - 'first' => 'int', - 'following' => 'int', - 'getErrorCode' => 'int', - 'getErrorMessage' => 'string', - 'getLocale' => 'string|false', - 'getPartsIterator' => 'IntlPartsIterator', - 'getText' => '?string', - 'isBoundary' => 'bool', - 'last' => 'int', - 'next' => 'int', - 'preceding' => 'int', - 'previous' => 'int', - 'setText' => '?bool', - ], - 'IntlRuleBasedBreakIterator' => [ - 'getBinaryRules' => 'string|false', - 'getRules' => 'string|false', - 'getRuleStatus' => 'int', - 'getRuleStatusVec' => 'array|false', - ], - 'IntlCodePointBreakIterator' => [ - 'getLastCodePoint' => 'int', - ], - 'IntlCalendar' => [ - 'createInstance' => '?IntlCalendar', - 'equals' => 'bool', - 'fieldDifference' => 'int|false', - 'add' => 'bool', - 'after' => 'bool', - 'before' => 'bool', - 'fromDateTime' => '?IntlCalendar', - 'get' => 'int|false', - 'getActualMaximum' => 'int|false', - 'getActualMinimum' => 'int|false', - 'getAvailableLocales' => 'array', - 'getDayOfWeekType' => 'int|false', - 'getErrorCode' => 'int|false', - 'getErrorMessage' => 'string|false', - 'getFirstDayOfWeek' => 'int|false', - 'getGreatestMinimum' => 'int|false', - 'getKeywordValuesForLocale' => 'IntlIterator|false', - 'getLeastMaximum' => 'int|false', - 'getLocale' => 'string|false', - 'getMaximum' => 'int|false', - 'getMinimalDaysInFirstWeek' => 'int|false', - 'getMinimum' => 'int|false', - 'getNow' => 'float', - 'getRepeatedWallTimeOption' => 'int', - 'getSkippedWallTimeOption' => 'int', - 'getTime' => 'float|false', - 'getTimeZone' => 'IntlTimeZone|false', - 'getType' => 'string', - 'getWeekendTransition' => 'int|false', - 'inDaylightTime' => 'bool', - 'isEquivalentTo' => 'bool', - 'isLenient' => 'bool', - 'isWeekend' => 'bool', - 'roll' => 'bool', - 'isSet' => 'bool', - 'setTime' => 'bool', - 'setTimeZone' => 'bool', - 'toDateTime' => 'DateTime|false', - ], - 'IntlGregorianCalendar' => [ - 'setGregorianChange' => 'bool', - 'getGregorianChange' => 'float', - 'isLeapYear' => 'bool', - ], - 'Collator' => [ - 'create' => '?Collator', - 'compare' => 'int|false', - 'sort' => 'bool', - 'sortWithSortKeys' => 'bool', - 'asort' => 'bool', - 'getAttribute' => 'int|false', - 'setAttribute' => 'bool', - 'getStrength' => 'int', - 'getLocale' => 'string|false', - 'getErrorCode' => 'int|false', - 'getErrorMessage' => 'string|false', - 'getSortKey' => 'string|false', - ], - 'IntlIterator' => [ - 'current' => 'mixed', - 'key' => 'mixed', - 'next' => 'void', - 'rewind' => 'void', - 'valid' => 'bool', - ], - 'UConverter' => [ - 'convert' => 'string|false', - 'fromUCallback' => 'string|int|array|null', - 'getAliases' => 'array|false|null', - 'getAvailable' => 'array', - 'getDestinationEncoding' => 'string|false|null', - 'getDestinationType' => 'int|false|null', - 'getErrorCode' => 'int', - 'getErrorMessage' => '?string', - 'getSourceEncoding' => 'string|false|null', - 'getSourceType' => 'int|false|null', - 'getStandards' => '?array', - 'getSubstChars' => 'string|false|null', - 'reasonText' => 'string', - 'setDestinationEncoding' => 'bool', - 'setSourceEncoding' => 'bool', - 'setSubstChars' => 'bool', - 'toUCallback' => 'string|int|array|null', - 'transcode' => 'string|false', - ], - 'IntlDateFormatter' => [ - 'create' => '?IntlDateFormatter', - 'getDateType' => 'int|false', - 'getTimeType' => 'int|false', - 'getCalendar' => 'int|false', - 'setCalendar' => 'bool', - 'getTimeZoneId' => 'string|false', - 'getCalendarObject' => 'IntlCalendar|false|null', - 'getTimeZone' => 'IntlTimeZone|false', - 'setTimeZone' => '?bool', - 'setPattern' => 'bool', - 'getPattern' => 'string|false', - 'getLocale' => 'string|false', - 'setLenient' => 'void', - 'isLenient' => 'bool', - 'format' => 'string|false', - 'formatObject' => 'string|false', - 'parse' => 'int|float|false', - 'localtime' => 'array|false', - 'getErrorCode' => 'int', - 'getErrorMessage' => 'string', - ], - 'NumberFormatter' => [ - 'create' => '?NumberFormatter', - 'format' => 'string|false', - 'parse' => 'int|float|false', - 'formatCurrency' => 'string|false', - 'parseCurrency' => 'float|false', - 'setAttribute' => 'bool', - 'getAttribute' => 'int|float|false', - 'setTextAttribute' => 'bool', - 'getTextAttribute' => 'string|false', - 'setSymbol' => 'bool', - 'getSymbol' => 'string|false', - 'setPattern' => 'bool', - 'getPattern' => 'string|false', - 'getLocale' => 'string|false', - 'getErrorCode' => 'int', - 'getErrorMessage' => 'string', - ], - 'Locale' => [ - 'getDefault' => 'string', - 'getPrimaryLanguage' => '?string', - 'getScript' => '?string', - 'getRegion' => '?string', - 'getKeywords' => 'array|false|null', - 'getDisplayScript' => 'string|false', - 'getDisplayRegion' => 'string|false', - 'getDisplayName' => 'string|false', - 'getDisplayLanguage' => 'string|false', - 'getDisplayVariant' => 'string|false', - 'composeLocale' => 'string|false', - 'parseLocale' => '?array', - 'getAllVariants' => '?array', - 'filterMatches' => '?bool', - 'lookup' => '?string', - 'canonicalize' => '?string', - 'acceptFromHttp' => 'string|false', - ], - 'MessageFormatter' => [ - 'create' => '?MessageFormatter', - 'format' => 'string|false', - 'formatMessage' => 'string|false', - 'parse' => 'array|false', - 'parseMessage' => 'array|false', - 'setPattern' => 'bool', - 'getPattern' => 'string|false', - 'getLocale' => 'string', - 'getErrorCode' => 'int', - 'getErrorMessage' => 'string', - ], - 'Normalizer' => [ - 'normalize' => 'string|false', - 'isNormalized' => 'bool', - 'getRawDecomposition' => '?string', - ], - 'ResourceBundle' => [ - 'create' => '?ResourceBundle', - 'get' => 'mixed', - 'count' => 'int', - 'getLocales' => 'array|false', - 'getErrorCode' => 'int', - 'getErrorMessage' => 'string', - ], - 'Spoofchecker' => [ - 'isSuspicious' => 'bool', - 'areConfusable' => 'bool', - 'setAllowedLocales' => 'void', - 'setChecks' => 'void', - 'setRestrictionLevel' => 'void', - ], - 'IntlTimeZone' => [ - 'countEquivalentIDs' => 'int|false', - 'createDefault' => 'IntlTimeZone', - 'createEnumeration' => 'IntlIterator|false', - 'createTimeZone' => '?IntlTimeZone', - 'createTimeZoneIDEnumeration' => 'IntlIterator|false', - 'fromDateTimeZone' => '?IntlTimeZone', - 'getCanonicalID' => 'string|false', - 'getDisplayName' => 'string|false', - 'getDSTSavings' => 'int', - 'getEquivalentID' => 'string|false', - 'getErrorCode' => 'int|false', - 'getErrorMessage' => 'string|false', - 'getGMT' => 'IntlTimeZone', - 'getID' => 'string|false', - 'getOffset' => 'bool', - 'getRawOffset' => 'int', - 'getRegion' => 'string|false', - 'getTZDataVersion' => 'string|false', - 'getUnknown' => 'IntlTimeZone', - 'getWindowsID' => 'string|false', - 'getIDForWindowsID' => 'string|false', - 'hasSameRules' => 'bool', - 'toDateTimeZone' => 'DateTimeZone|false', - 'useDaylightTime' => 'bool', - ], - 'Transliterator' => [ - 'create' => '?Transliterator', - 'createFromRules' => '?Transliterator', - 'createInverse' => '?Transliterator', - 'listIDs' => 'array|false', - 'transliterate' => 'string|false', - 'getErrorCode' => 'int|false', - 'getErrorMessage' => 'string|false', - ], - 'IntlChar' => [ - 'hasBinaryProperty' => '?bool', - 'charAge' => '?array', - 'charDigitValue' => '?int', - 'charDirection' => '?int', - 'charFromName' => '?int', - 'charMirror' => 'int|string|null', - 'charName' => '?string', - 'charType' => '?int', - 'chr' => '?string', - 'digit' => 'int|false|null', - 'enumCharNames' => '?bool', - 'enumCharTypes' => 'void', - 'foldCase' => 'int|string|null', - 'forDigit' => 'int', - 'getBidiPairedBracket' => 'int|string|null', - 'getBlockCode' => '?int', - 'getCombiningClass' => '?int', - 'getFC_NFKC_Closure' => 'string|false|null', - 'getIntPropertyMaxValue' => 'int', - 'getIntPropertyMinValue' => 'int', - 'getIntPropertyValue' => '?int', - 'getNumericValue' => '?float', - 'getPropertyEnum' => 'int', - 'getPropertyName' => 'string|false', - 'getPropertyValueEnum' => 'int', - 'getPropertyValueName' => 'string|false', - 'getUnicodeVersion' => 'array', - 'isalnum' => '?bool', - 'isalpha' => '?bool', - 'isbase' => '?bool', - 'isblank' => '?bool', - 'iscntrl' => '?bool', - 'isdefined' => '?bool', - 'isdigit' => '?bool', - 'isgraph' => '?bool', - 'isIDIgnorable' => '?bool', - 'isIDPart' => '?bool', - 'isIDStart' => '?bool', - 'isISOControl' => '?bool', - 'isJavaIDPart' => '?bool', - 'isJavaIDStart' => '?bool', - 'isJavaSpaceChar' => '?bool', - 'islower' => '?bool', - 'isMirrored' => '?bool', - 'isprint' => '?bool', - 'ispunct' => '?bool', - 'isspace' => '?bool', - 'istitle' => '?bool', - 'isUAlphabetic' => '?bool', - 'isULowercase' => '?bool', - 'isupper' => '?bool', - 'isUUppercase' => '?bool', - 'isUWhiteSpace' => '?bool', - 'isWhitespace' => '?bool', - 'isxdigit' => '?bool', - 'ord' => '?int', - 'tolower' => 'int|string|null', - 'totitle' => 'int|string|null', - 'toupper' => 'int|string|null', - ], - 'JsonSerializable' => [ - 'jsonSerialize' => 'mixed', - ], - 'mysqli' => [ - 'autocommit' => 'bool', - 'begin_transaction' => 'bool', - 'change_user' => 'bool', - 'character_set_name' => 'string', - 'commit' => 'bool', - 'connect' => 'bool', - 'dump_debug_info' => 'bool', - 'get_charset' => '?object', - 'get_client_info' => 'string', - 'get_connection_stats' => 'array', - 'get_server_info' => 'string', - 'get_warnings' => 'mysqli_warning|false', - 'kill' => 'bool', - 'multi_query' => 'bool', - 'more_results' => 'bool', - 'next_result' => 'bool', - 'ping' => 'bool', - 'poll' => 'int|false', - 'prepare' => 'mysqli_stmt|false', - 'query' => 'mysqli_result|bool', - 'real_connect' => 'bool', - 'real_escape_string' => 'string', - 'reap_async_query' => 'mysqli_result|bool', - 'escape_string' => 'string', - 'real_query' => 'bool', - 'release_savepoint' => 'bool', - 'rollback' => 'bool', - 'savepoint' => 'bool', - 'select_db' => 'bool', - 'set_charset' => 'bool', - 'options' => 'bool', - 'set_opt' => 'bool', - 'stat' => 'string|false', - 'stmt_init' => 'mysqli_stmt|false', - 'store_result' => 'mysqli_result|false', - 'thread_safe' => 'bool', - 'use_result' => 'mysqli_result|false', - 'refresh' => 'bool', - ], - 'mysqli_result' => [ - 'close' => 'void', - 'free' => 'void', - 'data_seek' => 'bool', - 'fetch_field' => 'object|false', - 'fetch_fields' => 'array', - 'fetch_field_direct' => 'object|false', - 'fetch_all' => 'array', - 'fetch_array' => 'array|null|false', - 'fetch_assoc' => 'array|null|false', - 'fetch_object' => 'object|null|false', - 'fetch_row' => 'array|null|false', - 'field_seek' => 'bool', - 'free_result' => 'void', - ], - 'mysqli_stmt' => [ - 'attr_get' => 'int', - 'attr_set' => 'bool', - 'bind_param' => 'bool', - 'bind_result' => 'bool', - 'data_seek' => 'void', - 'execute' => 'bool', - 'fetch' => '?bool', - 'get_warnings' => 'mysqli_warning|false', - 'result_metadata' => 'mysqli_result|false', - 'more_results' => 'bool', - 'next_result' => 'bool', - 'num_rows' => 'int|string', - 'send_long_data' => 'bool', - 'free_result' => 'void', - 'reset' => 'bool', - 'prepare' => 'bool', - 'store_result' => 'bool', - 'get_result' => 'mysqli_result|false', - ], - 'OCILob' => [ - 'save' => 'bool', - 'import' => 'bool', - 'saveFile' => 'bool', - 'load' => 'string|false', - 'read' => 'string|false', - 'eof' => 'bool', - 'tell' => 'int|false', - 'rewind' => 'bool', - 'seek' => 'bool', - 'size' => 'int|false', - 'write' => 'int|false', - 'append' => 'bool', - 'truncate' => 'bool', - 'erase' => 'int|false', - 'flush' => 'bool', - 'setBuffering' => 'bool', - 'getBuffering' => 'bool', - 'writeToFile' => 'bool', - 'export' => 'bool', - 'writeTemporary' => 'bool', - 'close' => 'bool', - 'free' => 'bool', - ], - 'OCICollection' => [ - 'free' => 'bool', - 'append' => 'bool', - 'getElem' => 'string|float|null|false', - 'assign' => 'bool', - 'assignElem' => 'bool', - 'size' => 'int|false', - 'max' => 'int|false', - 'trim' => 'bool', - ], - 'PDO' => [ - 'beginTransaction' => 'bool', - 'commit' => 'bool', - 'errorCode' => '?string', - 'errorInfo' => 'array', - 'exec' => 'int|false', - 'getAttribute' => 'mixed', - 'getAvailableDrivers' => 'array', - 'inTransaction' => 'bool', - 'lastInsertId' => 'string|false', - 'prepare' => 'PDOStatement|false', - 'query' => 'PDOStatement|false', - 'quote' => 'string|false', - 'rollBack' => 'bool', - 'setAttribute' => 'bool', - ], - 'PDOStatement' => [ - 'bindColumn' => 'bool', - 'bindParam' => 'bool', - 'bindValue' => 'bool', - 'closeCursor' => 'bool', - 'columnCount' => 'int', - 'debugDumpParams' => '?bool', - 'errorCode' => '?string', - 'errorInfo' => 'array', - 'execute' => 'bool', - 'fetch' => 'mixed', - 'fetchAll' => 'array', - 'fetchColumn' => 'mixed', - 'fetchObject' => 'object|false', - 'getAttribute' => 'mixed', - 'getColumnMeta' => 'array|false', - 'nextRowset' => 'bool', - 'rowCount' => 'int', - 'setAttribute' => 'bool', - ], - 'PDO_PGSql_Ext' => [ - 'pgsqlCopyFromArray' => 'bool', - 'pgsqlCopyFromFile' => 'bool', - 'pgsqlCopyToArray' => 'array|false', - 'pgsqlCopyToFile' => 'bool', - 'pgsqlLOBCreate' => 'string|false', - 'pgsqlLOBUnlink' => 'bool', - 'pgsqlGetNotify' => 'array|false', - 'pgsqlGetPid' => 'int', - ], - 'PDO_SQLite_Ext' => [ - 'sqliteCreateFunction' => 'bool', - 'sqliteCreateAggregate' => 'bool', - 'sqliteCreateCollation' => 'bool', - ], - 'Phar' => [ - 'addEmptyDir' => 'void', - 'addFile' => 'void', - 'addFromString' => 'void', - 'buildFromDirectory' => 'array', - 'buildFromIterator' => 'array', - 'compressFiles' => 'void', - 'compress' => '?Phar', - 'decompress' => '?Phar', - 'convertToExecutable' => '?Phar', - 'convertToData' => '?PharData', - 'count' => 'int', - 'extractTo' => 'bool', - 'getAlias' => '?string', - 'getPath' => 'string', - 'getMetadata' => 'mixed', - 'getModified' => 'bool', - 'getSignature' => 'array|false', - 'getStub' => 'string', - 'getVersion' => 'string', - 'hasMetadata' => 'bool', - 'isBuffering' => 'bool', - 'isCompressed' => 'int|false', - 'isFileFormat' => 'bool', - 'isWritable' => 'bool', - 'offsetExists' => 'bool', - 'offsetGet' => 'SplFileInfo', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'setAlias' => 'bool', - 'setDefaultStub' => 'bool', - 'setMetadata' => 'void', - 'setSignatureAlgorithm' => 'void', - 'startBuffering' => 'void', - 'stopBuffering' => 'void', - ], - 'PharData' => [ - 'addEmptyDir' => 'void', - 'addFile' => 'void', - 'addFromString' => 'void', - 'buildFromDirectory' => 'array', - 'buildFromIterator' => 'array', - 'compressFiles' => 'void', - 'compress' => '?PharData', - 'decompress' => '?PharData', - 'convertToExecutable' => '?Phar', - 'convertToData' => '?PharData', - 'count' => 'int', - 'extractTo' => 'bool', - 'getAlias' => '?string', - 'getPath' => 'string', - 'getMetadata' => 'mixed', - 'getModified' => 'bool', - 'getSignature' => 'array|false', - 'getStub' => 'string', - 'getVersion' => 'string', - 'hasMetadata' => 'bool', - 'isBuffering' => 'bool', - 'isCompressed' => 'int|false', - 'isFileFormat' => 'bool', - 'isWritable' => 'bool', - 'offsetExists' => 'bool', - 'offsetGet' => 'SplFileInfo', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'setAlias' => 'bool', - 'setDefaultStub' => 'bool', - 'setMetadata' => 'void', - 'setSignatureAlgorithm' => 'void', - 'startBuffering' => 'void', - 'stopBuffering' => 'void', - ], - 'PharFileInfo' => [ - 'chmod' => 'void', - 'getCompressedSize' => 'int', - 'getCRC32' => 'int', - 'getContent' => 'string', - 'getMetadata' => 'mixed', - 'getPharFlags' => 'int', - 'hasMetadata' => 'bool', - 'isCompressed' => 'bool', - 'isCRCChecked' => 'bool', - 'setMetadata' => 'void', - ], - 'Reflection' => [ - 'getModifierNames' => 'array', - ], - 'ReflectionFunctionAbstract' => [ - 'inNamespace' => 'bool', - 'isClosure' => 'bool', - 'isDeprecated' => 'bool', - 'isInternal' => 'bool', - 'isUserDefined' => 'bool', - 'isGenerator' => 'bool', - 'isVariadic' => 'bool', - 'isStatic' => 'bool', - 'getClosureThis' => '?object', - 'getClosureCalledClass' => '?ReflectionClass', - 'getClosureScopeClass' => '?ReflectionClass', - 'getDocComment' => 'string|false', - 'getEndLine' => 'int|false', - 'getExtension' => '?ReflectionExtension', - 'getExtensionName' => 'string|false', - 'getFileName' => 'string|false', - 'getName' => 'string', - 'getNamespaceName' => 'string', - 'getNumberOfParameters' => 'int', - 'getNumberOfRequiredParameters' => 'int', - 'getParameters' => 'array', - 'getShortName' => 'string', - 'getStartLine' => 'int|false', - 'getStaticVariables' => 'array', - 'returnsReference' => 'bool', - 'hasReturnType' => 'bool', - 'getReturnType' => '?ReflectionType', - ], - 'ReflectionFunction' => [ - 'isDisabled' => 'bool', - 'invoke' => 'mixed', - 'invokeArgs' => 'mixed', - 'getClosure' => 'Closure', - 'getExecutingLine' => 'int', - 'getExecutingFile' => 'string', - 'getTrace' => 'array', - 'getFunction' => 'ReflectionFunctionAbstract', - 'getThis' => '?object', - 'getExecutingGenerator' => 'Generator', - ], - 'ReflectionMethod' => [ - 'isPublic' => 'bool', - 'isPrivate' => 'bool', - 'isProtected' => 'bool', - 'isAbstract' => 'bool', - 'isFinal' => 'bool', - 'isConstructor' => 'bool', - 'isDestructor' => 'bool', - 'getClosure' => 'Closure', - 'getModifiers' => 'int', - 'invoke' => 'mixed', - 'invokeArgs' => 'mixed', - 'getDeclaringClass' => 'ReflectionClass', - 'getPrototype' => 'ReflectionMethod', - 'setAccessible' => 'void', - ], - 'ReflectionClass' => [ - 'getName' => 'string', - 'isInternal' => 'bool', - 'isUserDefined' => 'bool', - 'isAnonymous' => 'bool', - 'isInstantiable' => 'bool', - 'isCloneable' => 'bool', - 'getFileName' => 'string|false', - 'getStartLine' => 'int|false', - 'getEndLine' => 'int|false', - 'getDocComment' => 'string|false', - 'getConstructor' => '?ReflectionMethod', - 'hasMethod' => 'bool', - 'getMethod' => 'ReflectionMethod', - 'getMethods' => 'array', - 'hasProperty' => 'bool', - 'getProperty' => 'ReflectionProperty', - 'getProperties' => 'array', - 'hasConstant' => 'bool', - 'getConstants' => 'array', - 'getReflectionConstants' => 'array', - 'getConstant' => 'mixed', - 'getReflectionConstant' => 'ReflectionClassConstant|false', - 'getInterfaces' => 'array', - 'getInterfaceNames' => 'array', - 'isInterface' => 'bool', - 'getTraits' => 'array', - 'getTraitNames' => 'array', - 'getTraitAliases' => 'array', - 'isTrait' => 'bool', - 'isAbstract' => 'bool', - 'isFinal' => 'bool', - 'getModifiers' => 'int', - 'isInstance' => 'bool', - 'newInstance' => 'object', - 'newInstanceWithoutConstructor' => 'object', - 'newInstanceArgs' => '?object', - 'getParentClass' => 'ReflectionClass|false', - 'isSubclassOf' => 'bool', - 'getStaticProperties' => '?array', - 'getStaticPropertyValue' => 'mixed', - 'setStaticPropertyValue' => 'void', - 'getDefaultProperties' => 'array', - 'isIterable' => 'bool', - 'isIterateable' => 'bool', - 'implementsInterface' => 'bool', - 'getExtension' => '?ReflectionExtension', - 'getExtensionName' => 'string|false', - 'inNamespace' => 'bool', - 'getNamespaceName' => 'string', - 'getShortName' => 'string', - ], - 'ReflectionProperty' => [ - 'getName' => 'string', - 'getValue' => 'mixed', - 'setValue' => 'void', - 'isInitialized' => 'bool', - 'isPublic' => 'bool', - 'isPrivate' => 'bool', - 'isProtected' => 'bool', - 'isStatic' => 'bool', - 'isDefault' => 'bool', - 'getModifiers' => 'int', - 'getDeclaringClass' => 'ReflectionClass', - 'getDocComment' => 'string|false', - 'setAccessible' => 'void', - 'getType' => '?ReflectionType', - 'hasType' => 'bool', - 'getDefaultValue' => 'mixed', - ], - 'ReflectionClassConstant' => [ - 'getName' => 'string', - 'getValue' => 'mixed', - 'isPublic' => 'bool', - 'isPrivate' => 'bool', - 'isProtected' => 'bool', - 'getModifiers' => 'int', - 'getDeclaringClass' => 'ReflectionClass', - 'getDocComment' => 'string|false', - ], - 'ReflectionParameter' => [ - 'getName' => 'string', - 'isPassedByReference' => 'bool', - 'canBePassedByValue' => 'bool', - 'getDeclaringFunction' => 'ReflectionFunctionAbstract', - 'getDeclaringClass' => '?ReflectionClass', - 'getClass' => '?ReflectionClass', - 'hasType' => 'bool', - 'getType' => '?ReflectionType', - 'isArray' => 'bool', - 'isCallable' => 'bool', - 'allowsNull' => 'bool', - 'getPosition' => 'int', - 'isOptional' => 'bool', - 'isDefaultValueAvailable' => 'bool', - 'getDefaultValue' => 'mixed', - 'isDefaultValueConstant' => 'bool', - 'getDefaultValueConstantName' => '?string', - 'isVariadic' => 'bool', - ], - 'ReflectionType' => [ - 'allowsNull' => 'bool', - ], - 'ReflectionNamedType' => [ - 'getName' => 'string', - 'isBuiltin' => 'bool', - ], - 'ReflectionExtension' => [ - 'getName' => 'string', - 'getVersion' => '?string', - 'getFunctions' => 'array', - 'getConstants' => 'array', - 'getINIEntries' => 'array', - 'getClasses' => 'array', - 'getClassNames' => 'array', - 'getDependencies' => 'array', - 'info' => 'void', - 'isPersistent' => 'bool', - 'isTemporary' => 'bool', - ], - 'ReflectionZendExtension' => [ - 'getName' => 'string', - 'getVersion' => 'string', - 'getAuthor' => 'string', - 'getURL' => 'string', - 'getCopyright' => 'string', - ], - 'SessionHandlerInterface' => [ - 'open' => 'bool', - 'close' => 'bool', - 'read' => 'string|false', - 'write' => 'bool', - 'destroy' => 'bool', - 'gc' => 'int|false', - ], - 'SessionIdInterface' => [ - 'create_sid' => 'string', - ], - 'SessionUpdateTimestampHandlerInterface' => [ - 'validateId' => 'bool', - 'updateTimestamp' => 'bool', - ], - 'SessionHandler' => [ - 'open' => 'bool', - 'close' => 'bool', - 'read' => 'string|false', - 'write' => 'bool', - 'destroy' => 'bool', - 'gc' => 'int|false', - 'create_sid' => 'string', - ], - 'SimpleXMLElement' => [ - 'xpath' => 'array|null|false', - 'registerXPathNamespace' => 'bool', - 'asXML' => 'string|bool', - 'saveXML' => 'string|bool', - 'getNamespaces' => 'array', - 'getDocNamespaces' => 'array|false', - 'children' => '?SimpleXMLElement', - 'attributes' => '?SimpleXMLElement', - 'addChild' => '?SimpleXMLElement', - 'addAttribute' => 'void', - 'getName' => 'string', - 'count' => 'int', - 'rewind' => 'void', - 'valid' => 'bool', - 'current' => 'SimpleXMLElement', - 'key' => 'string', - 'next' => 'void', - 'hasChildren' => 'bool', - 'getChildren' => '?SimpleXMLElement', - ], - 'SNMP' => [ - 'close' => 'bool', - 'setSecurity' => 'bool', - 'get' => 'mixed', - 'getnext' => 'mixed', - 'walk' => 'array|false', - 'set' => 'bool', - 'getErrno' => 'int', - 'getError' => 'string', - ], - 'SoapServer' => [ - 'fault' => 'void', - 'addSoapHeader' => 'void', - 'setPersistence' => 'void', - 'setClass' => 'void', - 'setObject' => 'void', - 'getFunctions' => 'array', - 'addFunction' => 'void', - 'handle' => 'void', - ], - 'SoapClient' => [ - '__call' => 'mixed', - '__soapCall' => 'mixed', - '__getFunctions' => '?array', - '__getTypes' => '?array', - '__getLastRequest' => '?string', - '__getLastResponse' => '?string', - '__getLastRequestHeaders' => '?string', - '__getLastResponseHeaders' => '?string', - '__doRequest' => '?string', - '__setCookie' => 'void', - '__getCookies' => 'array', - '__setSoapHeaders' => 'bool', - '__setLocation' => '?string', - ], - 'ArrayObject' => [ - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'append' => 'void', - 'getArrayCopy' => 'array', - 'count' => 'int', - 'getFlags' => 'int', - 'setFlags' => 'void', - 'asort' => 'bool', - 'ksort' => 'bool', - 'uasort' => 'bool', - 'uksort' => 'bool', - 'natsort' => 'bool', - 'natcasesort' => 'bool', - 'unserialize' => 'void', - 'serialize' => 'string', - '__serialize' => 'array', - '__unserialize' => 'void', - 'getIterator' => 'Iterator', - 'exchangeArray' => 'array', - 'setIteratorClass' => 'void', - 'getIteratorClass' => 'string', - '__debugInfo' => 'array', - ], - 'ArrayIterator' => [ - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'append' => 'void', - 'getArrayCopy' => 'array', - 'count' => 'int', - 'getFlags' => 'int', - 'setFlags' => 'void', - 'asort' => 'bool', - 'ksort' => 'bool', - 'uasort' => 'bool', - 'uksort' => 'bool', - 'natsort' => 'bool', - 'natcasesort' => 'bool', - 'unserialize' => 'void', - 'serialize' => 'string', - '__serialize' => 'array', - '__unserialize' => 'void', - 'rewind' => 'void', - 'current' => 'mixed', - 'key' => 'string|int|null', - 'next' => 'void', - 'valid' => 'bool', - 'seek' => 'void', - '__debugInfo' => 'array', - ], - 'RecursiveArrayIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => '?RecursiveArrayIterator', - ], - 'SplFileInfo' => [ - 'getPath' => 'string', - 'getFilename' => 'string', - 'getExtension' => 'string', - 'getBasename' => 'string', - 'getPathname' => 'string', - 'getPerms' => 'int|false', - 'getInode' => 'int|false', - 'getSize' => 'int|false', - 'getOwner' => 'int|false', - 'getGroup' => 'int|false', - 'getATime' => 'int|false', - 'getMTime' => 'int|false', - 'getCTime' => 'int|false', - 'getType' => 'string|false', - 'isWritable' => 'bool', - 'isReadable' => 'bool', - 'isExecutable' => 'bool', - 'isFile' => 'bool', - 'isDir' => 'bool', - 'isLink' => 'bool', - 'getLinkTarget' => 'string|false', - 'getRealPath' => 'string|false', - 'getFileInfo' => 'SplFileInfo', - 'getPathInfo' => '?SplFileInfo', - 'openFile' => 'SplFileObject', - 'setFileClass' => 'void', - 'setInfoClass' => 'void', - '__debugInfo' => 'array', - '_bad_state_ex' => 'void', - ], - 'DirectoryIterator' => [ - 'getFilename' => 'string', - 'getExtension' => 'string', - 'getBasename' => 'string', - 'isDot' => 'bool', - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'mixed', - 'current' => 'mixed', - 'next' => 'void', - 'seek' => 'void', - ], - 'FilesystemIterator' => [ - 'rewind' => 'void', - 'key' => 'string', - 'current' => 'string|SplFileInfo|FilesystemIterator', - 'getFlags' => 'int', - 'setFlags' => 'void', - ], - 'RecursiveDirectoryIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => 'RecursiveDirectoryIterator', - 'getSubPath' => 'string', - 'getSubPathname' => 'string', - ], - 'GlobIterator' => [ - 'count' => 'int', - ], - 'SplFileObject' => [ - 'rewind' => 'void', - 'eof' => 'bool', - 'valid' => 'bool', - 'fgets' => 'string', - 'fread' => 'string|false', - 'fgetcsv' => 'array|false', - 'fputcsv' => 'int|false', - 'setCsvControl' => 'void', - 'getCsvControl' => 'array', - 'flock' => 'bool', - 'fflush' => 'bool', - 'ftell' => 'int|false', - 'fseek' => 'int', - 'fgetc' => 'string|false', - 'fpassthru' => 'int', - 'fscanf' => 'array|int|null', - 'fwrite' => 'int|false', - 'fstat' => 'array', - 'ftruncate' => 'bool', - 'current' => 'string|array|false', - 'key' => 'int', - 'next' => 'void', - 'setFlags' => 'void', - 'getFlags' => 'int', - 'setMaxLineLen' => 'void', - 'getMaxLineLen' => 'int', - 'hasChildren' => 'false', - 'getChildren' => 'null', - 'seek' => 'void', - 'getCurrentLine' => 'string', - ], - 'SplDoublyLinkedList' => [ - 'add' => 'void', - 'pop' => 'mixed', - 'shift' => 'mixed', - 'push' => 'void', - 'unshift' => 'void', - 'top' => 'mixed', - 'bottom' => 'mixed', - '__debugInfo' => 'array', - 'count' => 'int', - 'isEmpty' => 'bool', - 'setIteratorMode' => 'int', - 'getIteratorMode' => 'int', - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'rewind' => 'void', - 'current' => 'mixed', - 'key' => 'int', - 'prev' => 'void', - 'next' => 'void', - 'valid' => 'bool', - 'unserialize' => 'void', - 'serialize' => 'string', - '__serialize' => 'array', - '__unserialize' => 'void', - ], - 'SplQueue' => [ - 'enqueue' => 'void', - 'dequeue' => 'mixed', - ], - 'SplFixedArray' => [ - '__wakeup' => 'void', - 'count' => 'int', - 'toArray' => 'array', - 'fromArray' => 'SplFixedArray', - 'getSize' => 'int', - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - ], - 'SplPriorityQueue' => [ - 'compare' => 'int', - 'setExtractFlags' => 'int', - 'top' => 'mixed', - 'extract' => 'mixed', - 'count' => 'int', - 'isEmpty' => 'bool', - 'rewind' => 'void', - 'current' => 'mixed', - 'key' => 'int', - 'next' => 'void', - 'valid' => 'bool', - 'isCorrupted' => 'bool', - 'getExtractFlags' => 'int', - '__debugInfo' => 'array', - ], - 'SplHeap' => [ - 'extract' => 'mixed', - 'insert' => 'bool', - 'top' => 'mixed', - 'count' => 'int', - 'isEmpty' => 'bool', - 'rewind' => 'void', - 'current' => 'mixed', - 'key' => 'int', - 'next' => 'void', - 'valid' => 'bool', - 'recoverFromCorruption' => 'bool', - 'compare' => 'int', - 'isCorrupted' => 'bool', - '__debugInfo' => 'array', - ], - 'SplMinHeap' => [ - 'compare' => 'int', - ], - 'SplMaxHeap' => [ - 'compare' => 'int', - ], - 'EmptyIterator' => [ - 'current' => 'never', - 'next' => 'void', - 'key' => 'never', - 'valid' => 'false', - 'rewind' => 'void', - ], - 'CallbackFilterIterator' => [ - 'accept' => 'bool', - ], - 'RecursiveCallbackFilterIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => 'RecursiveCallbackFilterIterator', - ], - 'RecursiveIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => '?RecursiveIterator', - ], - 'RecursiveIteratorIterator' => [ - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'mixed', - 'current' => 'mixed', - 'next' => 'void', - 'getDepth' => 'int', - 'getSubIterator' => '?RecursiveIterator', - 'getInnerIterator' => 'RecursiveIterator', - 'beginIteration' => 'void', - 'endIteration' => 'void', - 'callHasChildren' => 'bool', - 'callGetChildren' => '?RecursiveIterator', - 'beginChildren' => 'void', - 'endChildren' => 'void', - 'nextElement' => 'void', - 'setMaxDepth' => 'void', - 'getMaxDepth' => 'int|false', - ], - 'OuterIterator' => [ - 'getInnerIterator' => '?Iterator', - ], - 'IteratorIterator' => [ - 'getInnerIterator' => '?Iterator', - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'mixed', - 'current' => 'mixed', - 'next' => 'void', - ], - 'FilterIterator' => [ - 'accept' => 'bool', - 'rewind' => 'void', - 'next' => 'void', - ], - 'RecursiveFilterIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => '?RecursiveFilterIterator', - ], - 'ParentIterator' => [ - 'accept' => 'bool', - ], - 'SeekableIterator' => [ - 'seek' => 'void', - ], - 'LimitIterator' => [ - 'rewind' => 'void', - 'valid' => 'bool', - 'next' => 'void', - 'seek' => 'int', - 'getPosition' => 'int', - ], - 'CachingIterator' => [ - 'rewind' => 'void', - 'valid' => 'bool', - 'next' => 'void', - 'hasNext' => 'bool', - 'getFlags' => 'int', - 'setFlags' => 'void', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'offsetExists' => 'bool', - 'getCache' => 'array', - 'count' => 'int', - ], - 'RecursiveCachingIterator' => [ - 'hasChildren' => 'bool', - 'getChildren' => '?RecursiveCachingIterator', - ], - 'NoRewindIterator' => [ - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'mixed', - 'current' => 'mixed', - 'next' => 'void', - ], - 'AppendIterator' => [ - 'append' => 'void', - 'rewind' => 'void', - 'valid' => 'bool', - 'current' => 'mixed', - 'next' => 'void', - 'getIteratorIndex' => '?int', - 'getArrayIterator' => 'ArrayIterator', - ], - 'InfiniteIterator' => [ - 'next' => 'void', - ], - 'RegexIterator' => [ - 'accept' => 'bool', - 'getMode' => 'int', - 'setMode' => 'void', - 'getFlags' => 'int', - 'setFlags' => 'void', - 'getRegex' => 'string', - 'getPregFlags' => 'int', - 'setPregFlags' => 'void', - ], - 'RecursiveRegexIterator' => [ - 'accept' => 'bool', - 'hasChildren' => 'bool', - 'getChildren' => 'RecursiveRegexIterator', - ], - 'RecursiveTreeIterator' => [ - 'key' => 'mixed', - 'current' => 'mixed', - 'getPrefix' => 'string', - 'setPostfix' => 'void', - 'setPrefixPart' => 'void', - 'getEntry' => 'string', - 'getPostfix' => 'string', - ], - 'SplObserver' => [ - 'update' => 'void', - ], - 'SplSubject' => [ - 'attach' => 'void', - 'detach' => 'void', - 'notify' => 'void', - ], - 'SplObjectStorage' => [ - 'attach' => 'void', - 'detach' => 'void', - 'contains' => 'bool', - 'addAll' => 'int', - 'removeAll' => 'int', - 'removeAllExcept' => 'int', - 'getInfo' => 'mixed', - 'setInfo' => 'void', - 'count' => 'int', - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'int', - 'current' => 'object', - 'next' => 'void', - 'unserialize' => 'void', - 'serialize' => 'string', - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - 'getHash' => 'string', - '__serialize' => 'array', - '__unserialize' => 'void', - '__debugInfo' => 'array', - ], - 'MultipleIterator' => [ - 'getFlags' => 'int', - 'setFlags' => 'void', - 'attachIterator' => 'void', - 'detachIterator' => 'void', - 'containsIterator' => 'bool', - 'countIterators' => 'int', - 'rewind' => 'void', - 'valid' => 'bool', - 'key' => 'array', - 'current' => 'array', - 'next' => 'void', - '__debugInfo' => 'array', - ], - 'SQLite3' => [ - 'open' => 'void', - 'version' => 'array', - 'lastInsertRowID' => 'int', - 'lastErrorCode' => 'int', - 'lastExtendedErrorCode' => 'int', - 'lastErrorMsg' => 'string', - 'changes' => 'int', - 'busyTimeout' => 'bool', - 'loadExtension' => 'bool', - 'backup' => 'bool', - 'escapeString' => 'string', - 'prepare' => 'SQLite3Stmt|false', - 'exec' => 'bool', - 'query' => 'SQLite3Result|false', - 'querySingle' => 'mixed', - 'createFunction' => 'bool', - 'createAggregate' => 'bool', - 'createCollation' => 'bool', - 'enableExceptions' => 'bool', - 'enableExtendedResultCodes' => 'bool', - 'setAuthorizer' => 'bool', - ], - 'SQLite3Stmt' => [ - 'bindParam' => 'bool', - 'bindValue' => 'bool', - 'clear' => 'bool', - 'close' => 'bool', - 'execute' => 'SQLite3Result|false', - 'getSQL' => 'string|false', - 'paramCount' => 'int', - 'readOnly' => 'bool', - 'reset' => 'bool', - ], - 'SQLite3Result' => [ - 'numColumns' => 'int', - 'columnName' => 'string|false', - 'columnType' => 'int|false', - 'fetchArray' => 'array|false', - 'reset' => 'bool', - ], - 'Directory' => [ - 'close' => 'void', - 'rewind' => 'void', - 'read' => 'string|false', - ], - 'php_user_filter' => [ - 'filter' => 'int', - 'onCreate' => 'bool', - 'onClose' => 'void', - ], - 'tidy' => [ - 'getOpt' => 'string|int|bool', - 'cleanRepair' => 'bool', - 'parseFile' => 'bool', - 'parseString' => 'bool', - 'repairString' => 'string|false', - 'repairFile' => 'string|false', - 'diagnose' => 'bool', - 'getRelease' => 'string', - 'getConfig' => 'array', - 'getStatus' => 'int', - 'getHtmlVer' => 'int', - 'getOptDoc' => 'string|false', - 'isXhtml' => 'bool', - 'isXml' => 'bool', - 'root' => '?tidyNode', - 'head' => '?tidyNode', - 'html' => '?tidyNode', - 'body' => '?tidyNode', - ], - 'XMLReader' => [ - 'getAttribute' => '?string', - 'getAttributeNo' => '?string', - 'getAttributeNs' => '?string', - 'getParserProperty' => 'bool', - 'isValid' => 'bool', - 'lookupNamespace' => '?string', - 'moveToAttribute' => 'bool', - 'moveToAttributeNo' => 'bool', - 'moveToAttributeNs' => 'bool', - 'moveToElement' => 'bool', - 'moveToFirstAttribute' => 'bool', - 'moveToNextAttribute' => 'bool', - 'read' => 'bool', - 'next' => 'bool', - 'readInnerXml' => 'string', - 'readOuterXml' => 'string', - 'readString' => 'string', - 'setSchema' => 'bool', - 'setParserProperty' => 'bool', - 'setRelaxNGSchema' => 'bool', - 'setRelaxNGSchemaSource' => 'bool', - 'expand' => 'DOMNode|false', - ], - 'XMLWriter' => [ - 'openUri' => 'bool', - 'openMemory' => 'bool', - 'setIndent' => 'bool', - 'setIndentString' => 'bool', - 'startComment' => 'bool', - 'endComment' => 'bool', - 'startAttribute' => 'bool', - 'endAttribute' => 'bool', - 'writeAttribute' => 'bool', - 'startAttributeNs' => 'bool', - 'writeAttributeNs' => 'bool', - 'startElement' => 'bool', - 'endElement' => 'bool', - 'fullEndElement' => 'bool', - 'startElementNs' => 'bool', - 'writeElement' => 'bool', - 'writeElementNs' => 'bool', - 'startPi' => 'bool', - 'endPi' => 'bool', - 'writePi' => 'bool', - 'startCdata' => 'bool', - 'endCdata' => 'bool', - 'writeCdata' => 'bool', - 'text' => 'bool', - 'writeRaw' => 'bool', - 'startDocument' => 'bool', - 'endDocument' => 'bool', - 'writeComment' => 'bool', - 'startDtd' => 'bool', - 'endDtd' => 'bool', - 'writeDtd' => 'bool', - 'startDtdElement' => 'bool', - 'endDtdElement' => 'bool', - 'writeDtdElement' => 'bool', - 'startDtdAttlist' => 'bool', - 'endDtdAttlist' => 'bool', - 'writeDtdAttlist' => 'bool', - 'startDtdEntity' => 'bool', - 'endDtdEntity' => 'bool', - 'writeDtdEntity' => 'bool', - 'outputMemory' => 'string', - 'flush' => 'string|int', - ], - 'XSLTProcessor' => [ - 'importStylesheet' => 'bool', - 'transformToDoc' => 'DOMDocument|false', - 'transformToUri' => 'int', - 'transformToXml' => 'string|null|false', - 'setParameter' => 'bool', - 'getParameter' => 'string|false', - 'removeParameter' => 'bool', - 'hasExsltSupport' => 'bool', - 'registerPHPFunctions' => 'void', - 'setSecurityPrefs' => 'int', - 'getSecurityPrefs' => 'int', - ], - 'ZipArchive' => [ - 'open' => 'bool|int', - 'setPassword' => 'bool', - 'close' => 'bool', - 'count' => 'int', - 'getStatusString' => 'string', - 'addEmptyDir' => 'bool', - 'addFromString' => 'bool', - 'addFile' => 'bool', - 'replaceFile' => 'bool', - 'addGlob' => 'array|false', - 'addPattern' => 'array|false', - 'renameIndex' => 'bool', - 'renameName' => 'bool', - 'setArchiveComment' => 'bool', - 'getArchiveComment' => 'string|false', - 'setCommentIndex' => 'bool', - 'setCommentName' => 'bool', - 'setMtimeIndex' => 'bool', - 'setMtimeName' => 'bool', - 'getCommentIndex' => 'string|false', - 'getCommentName' => 'string|false', - 'deleteIndex' => 'bool', - 'deleteName' => 'bool', - 'statName' => 'array|false', - 'statIndex' => 'array|false', - 'locateName' => 'int|false', - 'getNameIndex' => 'string|false', - 'unchangeArchive' => 'bool', - 'unchangeAll' => 'bool', - 'unchangeIndex' => 'bool', - 'unchangeName' => 'bool', - 'extractTo' => 'bool', - 'getFromName' => 'string|false', - 'getFromIndex' => 'string|false', - 'setExternalAttributesName' => 'bool', - 'setExternalAttributesIndex' => 'bool', - 'getExternalAttributesName' => 'bool', - 'getExternalAttributesIndex' => 'bool', - 'setCompressionName' => 'bool', - 'setCompressionIndex' => 'bool', - 'setEncryptionName' => 'bool', - 'setEncryptionIndex' => 'bool', - 'registerProgressCallback' => 'bool', - 'registerCancelCallback' => 'bool', - ], - 'Exception' => [ - '__wakeup' => 'void', - ], - 'Error' => [ - '__wakeup' => 'void', - ], - 'IteratorAggregate' => [ - 'getIterator' => 'Traversable', - ], - 'Iterator' => [ - 'current' => 'mixed', - 'next' => 'void', - 'key' => 'mixed', - 'valid' => 'bool', - 'rewind' => 'void', - ], - 'ArrayAccess' => [ - 'offsetExists' => 'bool', - 'offsetGet' => 'mixed', - 'offsetSet' => 'void', - 'offsetUnset' => 'void', - ], - 'Countable' => [ - 'count' => 'int', - ], - ]; -} diff --git a/projects/priceservice/vendor/symfony/error-handler/LICENSE b/projects/priceservice/vendor/symfony/error-handler/LICENSE deleted file mode 100644 index f37c76b..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/projects/priceservice/vendor/symfony/error-handler/README.md b/projects/priceservice/vendor/symfony/error-handler/README.md deleted file mode 100644 index 12c0bfa..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/README.md +++ /dev/null @@ -1,44 +0,0 @@ -ErrorHandler Component -====================== - -The ErrorHandler component provides tools to manage errors and ease debugging PHP code. - -Getting Started ---------------- - -``` -$ composer require symfony/error-handler -``` - -```php -use Symfony\Component\ErrorHandler\Debug; -use Symfony\Component\ErrorHandler\ErrorHandler; -use Symfony\Component\ErrorHandler\DebugClassLoader; - -Debug::enable(); - -// or enable only one feature -//ErrorHandler::register(); -//DebugClassLoader::enable(); - -// If you want a custom generic template when debug is not enabled -// HtmlErrorRenderer::setTemplate('/path/to/custom/error.html.php'); - -$data = ErrorHandler::call(static function () use ($filename, $datetimeFormat) { - // if any code executed inside this anonymous function fails, a PHP exception - // will be thrown, even if the code uses the '@' PHP silence operator - $data = json_decode(file_get_contents($filename), true); - $data['read_at'] = date($datetimeFormat); - file_put_contents($filename, json_encode($data)); - - return $data; -}); -``` - -Resources ---------- - - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/error.css b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/error.css deleted file mode 100644 index 332d818..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/error.css +++ /dev/null @@ -1,4 +0,0 @@ -body { background-color: #fff; color: #222; font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; } -.container { margin: 30px; max-width: 600px; } -h1 { color: #dc3545; font-size: 24px; } -h2 { font-size: 18px; } diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception.css b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception.css deleted file mode 100644 index 8c36907..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception.css +++ /dev/null @@ -1,359 +0,0 @@ -/* This file is based on WebProfilerBundle/Resources/views/Profiler/profiler.css.twig. - If you make any change in this file, verify the same change is needed in the other file. */ -:root { - --font-sans-serif: Helvetica, Arial, sans-serif; - --page-background: #f9f9f9; - --color-text: #222; - /* when updating any of these colors, do the same in toolbar.css.twig */ - --color-success: #4f805d; - --color-warning: #a46a1f; - --color-error: #b0413e; - --color-muted: #999; - --tab-background: #f0f0f0; - --tab-border-color: #e5e5e5; - --tab-active-border-color: #d4d4d4; - --tab-color: #444; - --tab-active-background: #fff; - --tab-active-color: var(--color-text); - --tab-disabled-background: #f5f5f5; - --tab-disabled-color: #999; - --selected-badge-background: #e5e5e5; - --selected-badge-color: #525252; - --selected-badge-shadow: inset 0 0 0 1px #d4d4d4; - --selected-badge-warning-background: #fde496; - --selected-badge-warning-color: #785b02; - --selected-badge-warning-shadow: inset 0 0 0 1px #e6af05; - --selected-badge-danger-background: #FCE9ED; - --selected-badge-danger-color: #83122A; - --selected-badge-danger-shadow: inset 0 0 0 1px #F5B8C5; - --metric-value-background: #fff; - --metric-value-color: inherit; - --metric-unit-color: #999; - --metric-label-background: #e0e0e0; - --metric-label-color: inherit; - --table-border: #e0e0e0; - --table-background: #fff; - --table-header: #e0e0e0; - --trace-selected-background: #F7E5A1; - --tree-active-background: #F7E5A1; - --exception-title-color: var(--base-2); - --shadow: 0px 0px 1px rgba(128, 128, 128, .2); - --border: 1px solid #e0e0e0; - --background-error: var(--color-error); - --highlight-comment: #969896; - --highlight-default: #222222; - --highlight-keyword: #a71d5d; - --highlight-string: #183691; - --base-0: #fff; - --base-1: #f5f5f5; - --base-2: #e0e0e0; - --base-3: #ccc; - --base-4: #666; - --base-5: #444; - --base-6: #222; -} - -.theme-dark { - --page-background: #36393e; - --color-text: #e0e0e0; - --color-muted: #777; - --color-error: #f76864; - --tab-background: #404040; - --tab-border-color: #737373; - --tab-active-border-color: #171717; - --tab-color: var(--color-text); - --tab-active-background: #d4d4d4; - --tab-active-color: #262626; - --tab-disabled-background: var(--page-background); - --tab-disabled-color: #a3a3a3; - --selected-badge-background: #555; - --selected-badge-color: #ddd; - --selected-badge-shadow: none; - --selected-badge-warning-background: #fcd55f; - --selected-badge-warning-color: #785b02; - --selected-badge-warning-shadow: inset 0 0 0 1px #af8503; - --selected-badge-danger-background: #B41939; - --selected-badge-danger-color: #FCE9ED; - --selected-badge-danger-shadow: none; - --metric-value-background: #555; - --metric-value-color: inherit; - --metric-unit-color: #999; - --metric-label-background: #777; - --metric-label-color: #e0e0e0; - --trace-selected-background: #5d5227cc; - --table-border: #444; - --table-background: #333; - --table-header: #555; - --info-background: rgba(79, 148, 195, 0.5); - --tree-active-background: var(--metric-label-background); - --exception-title-color: var(--base-2); - --shadow: 0px 0px 1px rgba(32, 32, 32, .2); - --border: 1px solid #666; - --background-error: #b0413e; - --highlight-comment: #dedede; - --highlight-default: var(--base-6); - --highlight-keyword: #de8986; - --highlight-string: #70a6fd; - --base-0: #2e3136; - --base-1: #444; - --base-2: #666; - --base-3: #666; - --base-4: #666; - --base-5: #e0e0e0; - --base-6: #f5f5f5; - --card-label-background: var(--tab-active-background); - --card-label-color: var(--tab-active-color); -} - -html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}summary{cursor: pointer} - -html { - /* always display the vertical scrollbar to avoid jumps when toggling contents */ - overflow-y: scroll; -} -body { background-color: var(--page-background); color: var(--base-6); font: 14px/1.4 Helvetica, Arial, sans-serif; padding-bottom: 45px; } - -a { cursor: pointer; text-decoration: none; } -a:hover { text-decoration: underline; } -abbr[title] { border-bottom: none; cursor: help; text-decoration: none; } - -code, pre { font: 13px/1.5 Consolas, Monaco, Menlo, "Ubuntu Mono", "Liberation Mono", monospace; } - -table, tr, th, td { background: var(--base-0); border-collapse: collapse; vertical-align: top; } -table { background: var(--base-0); border: var(--border); box-shadow: 0px 0px 1px rgba(128, 128, 128, .2); margin: 1em 0; width: 100%; } -table th, table td { border: solid var(--base-2); border-width: 1px 0; padding: 8px 10px; } -table th { background-color: var(--base-2); font-weight: bold; text-align: left; } - -.m-t-5 { margin-top: 5px; } -.hidden-xs-down { display: none; } -.block { display: block; } -.full-width { width: 100%; } -.hidden { display: none; } -.prewrap { white-space: pre-wrap; } -.nowrap { white-space: nowrap; } -.newline { display: block; } -.break-long-words { word-wrap: break-word; overflow-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; min-width: 0; } -.text-small { font-size: 12px !important; } -.text-muted { color: #999; } -.text-bold { font-weight: bold; } -.empty { border: 4px dashed var(--base-2); color: #999; margin: 1em 0; padding: .5em 2em; } - -.status-success { background: rgba(94, 151, 110, 0.3); } -.status-warning { background: rgba(240, 181, 24, 0.3); } -.status-error { background: rgba(176, 65, 62, 0.2); } -.status-success td, .status-warning td, .status-error td { background: transparent; } -tr.status-error td, tr.status-warning td { border-bottom: 1px solid var(--base-2); border-top: 1px solid var(--base-2); } -.status-warning .colored { color: #A46A1F; } -.status-error .colored { color: var(--color-error); } - -.sf-toggle { cursor: pointer; position: relative; } -.sf-toggle-content { -moz-transition: display .25s ease; -webkit-transition: display .25s ease; transition: display .25s ease; } -.sf-toggle-content.sf-toggle-hidden { display: none; } -.sf-toggle-content.sf-toggle-visible { display: block; } -thead.sf-toggle-content.sf-toggle-visible, tbody.sf-toggle-content.sf-toggle-visible { display: table-row-group; } -.sf-toggle-off .icon-close, .sf-toggle-on .icon-open { display: none; } -.sf-toggle-off .icon-open, .sf-toggle-on .icon-close { display: block; } - -.tab-navigation { - background-color: var(--tab-background); - border-radius: 6px; - box-shadow: inset 0 0 0 1px var(--tab-border-color), 0 0 0 5px var(--page-background); - display: inline-flex; - flex-wrap: wrap; - margin: 0 0 15px; - padding: 0; - user-select: none; - -webkit-user-select: none; -} -.sf-tabs-sm .tab-navigation { - box-shadow: inset 0 0 0 1px var(--tab-border-color), 0 0 0 4px var(--page-background); - margin: 0 0 10px; -} -.tab-navigation .tab-control { - background: transparent; - border: 0; - box-shadow: none; - transition: box-shadow .05s ease-in, background-color .05s ease-in; - cursor: pointer; - font-size: 14px; - font-weight: 500; - line-height: 1.4; - margin: 0; - padding: 4px 14px; - position: relative; - text-align: center; - z-index: 1; -} -.sf-tabs-sm .tab-navigation .tab-control { - font-size: 13px; - padding: 2.5px 10px; -} -.tab-navigation .tab-control:before { - background: var(--tab-border-color); - bottom: 15%; - content: ""; - left: 0; - position: absolute; - top: 15%; - width: 1px; -} -.tab-navigation .tab-control:first-child:before, -.tab-navigation .tab-control.active + .tab-control:before, -.tab-navigation .tab-control.active:before { - width: 0; -} -.tab-navigation .tab-control .badge { - background: var(--selected-badge-background); - box-shadow: var(--selected-badge-shadow); - color: var(--selected-badge-color); - display: inline-block; - font-size: 12px; - font-weight: bold; - line-height: 1; - margin-left: 8px; - min-width: 10px; - padding: 2px 6px; - text-align: center; - white-space: nowrap; -} -.tab-navigation .tab-control.disabled { - color: var(--tab-disabled-color); -} -.tab-navigation .tab-control.active { - background-color: var(--tab-active-background); - border-radius: 6px; - box-shadow: inset 0 0 0 1.5px var(--tab-active-border-color); - color: var(--tab-active-color); - position: relative; - z-index: 1; -} -.theme-dark .tab-navigation li.active { - box-shadow: inset 0 0 0 1px var(--tab-border-color); -} -.tab-content > *:first-child { - margin-top: 0; -} -.tab-navigation .tab-control .badge.status-warning { - background: var(--selected-badge-warning-background); - box-shadow: var(--selected-badge-warning-shadow); - color: var(--selected-badge-warning-color); -} -.tab-navigation .tab-control .badge.status-error { - background: var(--selected-badge-danger-background); - box-shadow: var(--selected-badge-danger-shadow); - color: var(--selected-badge-danger-color); -} - -.sf-tabs .tab:not(:first-child) { display: none; } - -[data-filters] { position: relative; } -[data-filtered] { cursor: pointer; } -[data-filtered]:after { content: '\00a0\25BE'; } -[data-filtered]:hover .filter-list li { display: inline-flex; } -[class*="filter-hidden-"] { display: none; } -.filter-list { position: absolute; border: var(--border); box-shadow: var(--shadow); margin: 0; padding: 0; display: flex; flex-direction: column; } -.filter-list :after { content: ''; } -.filter-list li { - background: var(--tab-disabled-background); - border-bottom: var(--border); - color: var(--tab-disabled-color); - display: none; - list-style: none; - margin: 0; - padding: 5px 10px; - text-align: left; - font-weight: normal; -} -.filter-list li.active { - background: var(--tab-background); - color: var(--tab-color); -} -.filter-list li.last-active { - background: var(--tab-active-background); - color: var(--tab-active-color); -} - -.filter-list-level li { cursor: s-resize; } -.filter-list-level li.active { cursor: n-resize; } -.filter-list-level li.last-active { cursor: default; } -.filter-list-level li.last-active:before { content: '\2714\00a0'; } -.filter-list-choice li:before { content: '\2714\00a0'; color: transparent; } -.filter-list-choice li.active:before { color: unset; } - -.container { max-width: 1024px; margin: 0 auto; padding: 0 15px; } -.container::after { content: ""; display: table; clear: both; } - -header { background-color: #222; color: rgba(255, 255, 255, 0.75); font-size: 13px; height: 33px; line-height: 33px; padding: 0; } -header .container { display: flex; justify-content: space-between; } -.logo { flex: 1; font-size: 13px; font-weight: normal; margin: 0; padding: 0; } -.logo svg { height: 18px; width: 18px; opacity: .8; vertical-align: -5px; } - -.help-link { margin-left: 15px; } -.help-link a { color: inherit; } -.help-link .icon svg { height: 15px; width: 15px; opacity: .7; vertical-align: -2px; } -.help-link a:hover { color: #EEE; text-decoration: none; } -.help-link a:hover svg { opacity: .9; } - -.exception-summary { background: var(--background-error); border-bottom: 2px solid rgba(0, 0, 0, 0.1); border-top: 1px solid rgba(0, 0, 0, .3); flex: 0 0 auto; margin-bottom: 15px; } -.exception-metadata { background: rgba(0, 0, 0, 0.1); padding: 7px 0; } -.exception-metadata .container { display: flex; flex-direction: row; justify-content: space-between; } -.exception-metadata h2, .exception-metadata h2 > a { color: rgba(255, 255, 255, 0.8); font-size: 13px; font-weight: 400; margin: 0; } -.exception-http small { font-size: 13px; opacity: .7; } -.exception-hierarchy { flex: 1; } -.exception-hierarchy .icon { margin: 0 3px; opacity: .7; } -.exception-hierarchy .icon svg { height: 13px; width: 13px; vertical-align: -2px; } - -.exception-without-message .exception-message-wrapper { display: none; } -.exception-message-wrapper .container { display: flex; align-items: flex-start; min-height: 70px; padding: 10px 15px 8px; } -.exception-message { flex-grow: 1; } -.exception-message, .exception-message a { color: #FFF; font-size: 21px; font-weight: 400; margin: 0; } -.exception-message.long { font-size: 18px; } -.exception-message a { border-bottom: 1px solid rgba(255, 255, 255, 0.5); font-size: inherit; text-decoration: none; } -.exception-message a:hover { border-bottom-color: #ffffff; } - -.exception-properties-wrapper { margin: .8em 0; } -.exception-properties { background: var(--base-0); border: var(--border); box-shadow: 0px 0px 1px rgba(128, 128, 128, .2); } -.exception-properties pre { margin: 0; padding: 0.2em 0; } - -.exception-illustration { flex-basis: 111px; flex-shrink: 0; height: 66px; margin-left: 15px; opacity: .7; } - -.trace + .trace { margin-top: 30px; } -.trace-head { background-color: var(--base-2); padding: 10px; position: relative; } -.trace-head .trace-class { color: var(--base-6); font-size: 18px; font-weight: bold; line-height: 1.3; margin: 0; position: relative; } -.trace-head .trace-namespace { color: #999; display: block; font-size: 13px; } -.trace-head .icon { position: absolute; right: 0; top: 0; } -.trace-head .icon svg { fill: var(--base-5); height: 24px; width: 24px; } - -.trace-details { background: var(--base-0); border: var(--border); box-shadow: 0px 0px 1px rgba(128, 128, 128, .2); margin: 0 0 1em; table-layout: fixed; } - -.trace-message { font-size: 14px; font-weight: normal; margin: .5em 0 0; } - -.trace-line { position: relative; padding-top: 8px; padding-bottom: 8px; } -.trace-line + .trace-line { border-top: var(--border); } -.trace-line:hover { background: var(--base-1); } -.trace-line a { color: var(--base-6); } -.trace-line .icon { opacity: .4; position: absolute; left: 10px; } -.trace-line .icon svg { fill: var(--base-5); height: 16px; width: 16px; } -.trace-line .icon.icon-copy { left: auto; top: auto; padding-left: 5px; display: none } -.trace-line:hover .icon.icon-copy:not(.hidden) { display: inline-block } -.trace-line-header { padding-left: 36px; padding-right: 10px; } - -.trace-file-path, .trace-file-path a { color: var(--base-6); font-size: 13px; } -.trace-class { color: var(--color-error); } -.trace-type { padding: 0 2px; } -.trace-method { color: var(--color-error); font-weight: bold; } -.trace-arguments { color: #777; font-weight: normal; padding-left: 2px; } - -.trace-code { background: var(--base-0); font-size: 12px; margin: 10px 10px 2px 10px; padding: 10px; overflow-x: auto; white-space: nowrap; } -.trace-code ol { margin: 0; float: left; } -.trace-code li { color: #969896; margin: 0; padding-left: 10px; float: left; width: 100%; } -.trace-code li + li { margin-top: 5px; } -.trace-code li.selected { background: var(--trace-selected-background); margin-top: 2px; } -.trace-code li code { color: var(--base-6); white-space: pre; } - -.trace-as-text .stacktrace { line-height: 1.8; margin: 0 0 15px; white-space: pre-wrap; } - -@media (min-width: 575px) { - .hidden-xs-down { display: initial; } - .help-link { margin-left: 30px; } -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception_full.css b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception_full.css deleted file mode 100644 index fa77cb3..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/css/exception_full.css +++ /dev/null @@ -1,128 +0,0 @@ -.sf-reset .traces { - padding-bottom: 14px; -} -.sf-reset .traces li { - font-size: 12px; - color: #868686; - padding: 5px 4px; - list-style-type: decimal; - margin-left: 20px; -} -.sf-reset #logs .traces li.error { - font-style: normal; - color: #AA3333; - background: #f9ecec; -} -.sf-reset #logs .traces li.warning { - font-style: normal; - background: #ffcc00; -} -/* fix for Opera not liking empty
  • */ -.sf-reset .traces li:after { - content: "\00A0"; -} -.sf-reset .trace { - border: 1px solid #D3D3D3; - padding: 10px; - overflow: auto; - margin: 10px 0 20px; -} -.sf-reset .block-exception { - -moz-border-radius: 16px; - -webkit-border-radius: 16px; - border-radius: 16px; - margin-bottom: 20px; - background-color: #f6f6f6; - border: 1px solid #dfdfdf; - padding: 30px 28px; - word-wrap: break-word; - overflow: hidden; -} -.sf-reset .block-exception div { - color: #313131; - font-size: 10px; -} -.sf-reset .block-exception-detected .illustration-exception, -.sf-reset .block-exception-detected .text-exception { - float: left; -} -.sf-reset .block-exception-detected .illustration-exception { - width: 152px; -} -.sf-reset .block-exception-detected .text-exception { - width: 670px; - padding: 30px 44px 24px 46px; - position: relative; -} -.sf-reset .text-exception .open-quote, -.sf-reset .text-exception .close-quote { - font-family: Arial, Helvetica, sans-serif; - position: absolute; - color: #C9C9C9; - font-size: 8em; -} -.sf-reset .open-quote { - top: 0; - left: 0; -} -.sf-reset .close-quote { - bottom: -0.5em; - right: 50px; -} -.sf-reset .block-exception p { - font-family: Arial, Helvetica, sans-serif; -} -.sf-reset .block-exception p a, -.sf-reset .block-exception p a:hover { - color: #565656; -} -.sf-reset .logs h2 { - float: left; - width: 654px; -} -.sf-reset .error-count, .sf-reset .support { - float: right; - width: 170px; - text-align: right; -} -.sf-reset .error-count span { - display: inline-block; - background-color: #aacd4e; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - border-radius: 6px; - padding: 4px; - color: white; - margin-right: 2px; - font-size: 11px; - font-weight: bold; -} - -.sf-reset .support a { - display: inline-block; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - border-radius: 6px; - padding: 4px; - color: #000000; - margin-right: 2px; - font-size: 11px; - font-weight: bold; -} - -.sf-reset .toggle { - vertical-align: middle; -} -.sf-reset .linked ul, -.sf-reset .linked li { - display: inline; -} -.sf-reset #output-content { - color: #000; - font-size: 12px; -} -.sf-reset #traces-text pre { - white-space: pre; - font-size: 12px; - font-family: monospace; -} diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/chevron-right.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/chevron-right.svg deleted file mode 100644 index 6837aff..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/chevron-right.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/favicon.png.base64 b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/favicon.png.base64 deleted file mode 100644 index fb076ed..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/favicon.png.base64 +++ /dev/null @@ -1 +0,0 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAYAAAABtRhCAAADVUlEQVRIx82XX0jTURTHLYPyqZdefQx66CEo80+aYpoIkqzUikz6Z5klQoWUWYRIJYEUGpQ+lIr9U5dOTLdCtkmWZis3rbnC5fw/neYW002307mX/cZvP3/7o1PwwOdh95x7vnf39zvnd29AgBer2xO6DclAXiMqZAqxIiNIN/IYSUS2BPhjmGATchUxI+ADWiRhpWK7HKuHFVBFdmU5YvnI4grFGCaReF/EBH4KsZlGgj2JBTuCYBWRIYF8YoEOJ6wBt/gEs7mBbyOjQXruPLSdOgPCiEiPSUUHDoL8Ug5IUo9B/d5wrt+G7OAKNrODPuVdB6vRCIzN6SdBlpW9RIgk/1FeAXabzRlrUPVCS/JhbmwudztnGeeH9AyXBIwtmM3wLinZJZHifjHw2V+NBoRh+9ixQrbgbnaSIcl7cGea6hoXQbNe7za241oeO5Z0p42M4BV2EqP2D50wo+6HzvwC6C4sApNOR8cmOrtcnhtj2kYRyC9eBvXzKrBZrXSs72kFd1t3MoKVbMekQkEnSNKOO8fac3LpmK6l1TlGtsxmsdKFsecPYgwxst0cwROMYDXboSotg0WLBRqjY51jLYcENElXwW2XJKPydvoI2GN9T8rBtrAArYIUruBJXkFheCQYlCpQP6uk5dAQFQNaUROMSGVQFxLmkoQsxDJrhLbTZ+nvVsERME9MgPJRKV/58AsyomTSzE813WLFvWK++qI0xSfQl8k8Pg46sYRuv5t6dS+4RqxDwaa4BGjYH+NTQvKScIp9+YL/hoZh3jDtLRHtt2C3g6bmhX+CpsFBWg7ilDSPgj0lD2ncr5ev/BP8VvyAJhqVyZeUhPOrEhEFxgEtjft846Z/guQTNT89Q5P9flMLoth4F7808wKtWWKzAwNQHxrh/1vaid2F+XpYTSbQf1XA2McOmOpROnvpvMEA4tSjq1cW0sws2gCYxswY6TKkvzYnJq1NHZLnRU4BX+4U0uburvusu8Kv8iHY7qefkM4IFngJHEOUXmLEPgiGsI8YnlZILit3vSSLRTQe/MPIZva5pshNIEmyFQlCvruJKXPkCEfmePzkphXHdzZNQdoRI9KPlBAxlj/I8U97ERPS5bjGbWDFbEdqHVe5caTBeZZx2H/IMvzeN15yoQAAAABJRU5ErkJggg== diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-book.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-book.svg deleted file mode 100644 index 498a74f..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-book.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-copy.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-copy.svg deleted file mode 100644 index 844a4f9..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-copy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square-o.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square-o.svg deleted file mode 100644 index be534ad..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square-o.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square.svg deleted file mode 100644 index 471c274..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-minus-square.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square-o.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square-o.svg deleted file mode 100644 index b2593a9..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square-o.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square.svg deleted file mode 100644 index 2f5c3b3..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-plus-square.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-support.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-support.svg deleted file mode 100644 index 03fd8e7..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/icon-support.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-ghost.svg.php b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-ghost.svg.php deleted file mode 100644 index 4b2f9c1..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-ghost.svg.php +++ /dev/null @@ -1 +0,0 @@ -addElementToGhost(); ?> diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-logo.svg b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-logo.svg deleted file mode 100644 index f10824a..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/images/symfony-logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/js/exception.js b/projects/priceservice/vendor/symfony/error-handler/Resources/assets/js/exception.js deleted file mode 100644 index 89c0083..0000000 --- a/projects/priceservice/vendor/symfony/error-handler/Resources/assets/js/exception.js +++ /dev/null @@ -1,286 +0,0 @@ -/* This file is based on WebProfilerBundle/Resources/views/Profiler/base_js.html.twig. - If you make any change in this file, verify the same change is needed in the other file. */ -/* .tab'); - var tabNavigation = document.createElement('div'); - tabNavigation.className = 'tab-navigation'; - tabNavigation.setAttribute('role', 'tablist'); - - var selectedTabId = 'tab-' + i + '-0'; /* select the first tab by default */ - for (var j = 0; j < tabs.length; j++) { - var tabId = 'tab-' + i + '-' + j; - var tabTitle = tabs[j].querySelector('.tab-title').innerHTML; - - var tabNavigationItem = document.createElement('button'); - addClass(tabNavigationItem, 'tab-control'); - tabNavigationItem.setAttribute('data-tab-id', tabId); - tabNavigationItem.setAttribute('role', 'tab'); - tabNavigationItem.setAttribute('aria-controls', tabId); - if (hasClass(tabs[j], 'active')) { selectedTabId = tabId; } - if (hasClass(tabs[j], 'disabled')) { - addClass(tabNavigationItem, 'disabled'); - } - tabNavigationItem.innerHTML = tabTitle; - tabNavigation.appendChild(tabNavigationItem); - - var tabContent = tabs[j].querySelector('.tab-content'); - tabContent.parentElement.setAttribute('id', tabId); - } - - tabGroups[i].insertBefore(tabNavigation, tabGroups[i].firstChild); - addClass(document.querySelector('[data-tab-id="' + selectedTabId + '"]'), 'active'); - } - - /* display the active tab and add the 'click' event listeners */ - for (i = 0; i < tabGroups.length; i++) { - tabNavigation = tabGroups[i].querySelectorAll(':scope > .tab-navigation .tab-control'); - - for (j = 0; j < tabNavigation.length; j++) { - tabId = tabNavigation[j].getAttribute('data-tab-id'); - var tabPanel = document.getElementById(tabId); - tabPanel.setAttribute('role', 'tabpanel'); - tabPanel.setAttribute('aria-labelledby', tabId); - tabPanel.querySelector('.tab-title').className = 'hidden'; - - if (hasClass(tabNavigation[j], 'active')) { - tabPanel.className = 'block'; - tabNavigation[j].setAttribute('aria-selected', 'true'); - tabNavigation[j].removeAttribute('tabindex'); - } else { - tabPanel.className = 'hidden'; - tabNavigation[j].removeAttribute('aria-selected'); - tabNavigation[j].setAttribute('tabindex', '-1'); - } - - tabNavigation[j].addEventListener('click', function(e) { - var activeTab = e.target || e.srcElement; - - /* needed because when the tab contains HTML contents, user can click */ - /* on any of those elements instead of their parent '